Лабораторная работа №3 по дисциплине «Операционные системы».
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Тема работы: Эмуляция работы параллельных процессов на примере схемы “производитель–потребитель”
1. Постановка задачи
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Разделы отчета:
2. Краткие теоретические сведения, использованные для выполнения работы
3. Описание входных данных программы и её результатов
4. Описание основных переменных, а также основных блоков и подпрограмм
5 . Алгоритм решения задачи
6. Текст программы с комментариями строк
7. Ответы на контрольные вопросы
Объем отчета составляет 40 страниц формата А4.
К отчету прилагается 3 исходных текста программы на языке TurboPascal и 3 исполняемых файла.
Некоторые данные из отчета приведены на мини скиншотах.
1. Постановка задачи
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Разделы отчета:
2. Краткие теоретические сведения, использованные для выполнения работы
3. Описание входных данных программы и её результатов
4. Описание основных переменных, а также основных блоков и подпрограмм
5 . Алгоритм решения задачи
6. Текст программы с комментариями строк
7. Ответы на контрольные вопросы
Объем отчета составляет 40 страниц формата А4.
К отчету прилагается 3 исходных текста программы на языке TurboPascal и 3 исполняемых файла.
Некоторые данные из отчета приведены на мини скиншотах.
Дополнительная информация
Год сдачи: 2019
Преподаватель: Бах О.А.
Работа зачтена без замечаний.
Рекомендую использовать представленные материалы в качестве методической помощи для выполнения своих работ.
Преподаватель: Бах О.А.
Работа зачтена без замечаний.
Рекомендую использовать представленные материалы в качестве методической помощи для выполнения своих работ.
Похожие материалы
ЛАБОРАТОРНАЯ РАБОТА №3 по дисциплине «Операционные системы»
mike0307
: 24 января 2023
Задание к лабораторной работе №3
Цель занятия: знакомство с сетевыми командами.
Изучаемые команды: ifconfig, route, traceroute, ping.
1. Создать файл, содержащий MAC–адрес сетевого интерфейса eth0 и
статистику переданных и принятых пакетов для этого интерфейса.
2. Создать файл, содержащий cписок доступных IP–адресов локальной
сети.
3. Создать файл, содержащий IP–адрес и сетевое имя шлюза по
умолчанию для выхода в Интернет.
4. Создать файл, содержащий перечень имен и IP-адресов узлов,
входящих в
200 руб.
Лабораторная работа №3 по дисциплине: Операционные системы
dralex
: 5 апреля 2020
Лабораторная работа №3
по дисциплине: Операционные системы
Цель занятия: знакомство с сетевыми командами.
Изучаемые команды: ifconfig, route, traceroute, ping.
1. Создать файл, содержащий MAC–адрес сетевого интерфейса eth0 и статистику переданных и принятых пакетов для этого интерфейса.
2. Создать файл, содержащий cписок доступных IP–адресов локальной сети.
3. Создать файл, содержащий IP–адрес и сетевое имя шлюза по умолчанию для выхода в Интернет.
4. Создать файл, содержащий перечень имен
100 руб.
Лабораторная работа №3 по дисциплине: «Операционные системы»
Мария114
: 24 мая 2017
Задание
Написать программу “часы”, которая будет однократно перехватывать показания системных часов и от них вести отсчет времени, используя собственный счетчик прерываний таймера (в качестве основы может быть использован обработчик прерываний таймера из предыдущей работы). Показания времени – часы, минуты, секунды – следует выводить в заданном месте экрана. Формат вывода: xx:xx:xx. Обновление показаний времени выполнять дискретно, через заданное количество секунд.
Программа должна работать рез
100 руб.
Лабораторная работа № 3 по дисциплине "Операционные системы".
Greenberg
: 11 марта 2012
Написать программу “часы”, которая будет однократно перехватывать показания системных часов и от них вести отсчет времени, используя собственный счетчик прерываний таймера (в качестве основы может быть использован обработчик прерываний таймера из предыдущей работы). Показания времени – часы, минуты, секунды – следует выводить в заданном месте экрана. Формат вывода: xx:xx:xx. Обновление показаний времени выполнять дискретно, через заданное количество секунд.
Программа должна работать резидентно.
79 руб.
Лабораторная работа №3 по дисциплине: Операционные системы. Для всех вариантов.
IT-STUDHELP
: 23 апреля 2017
Лабораторная работа №3: Работа с экраном (“часы”)
Написать программу “часы”, которая будет однократно перехватывать показания системных часов и от них вести отсчет времени, используя собственный счетчик прерываний таймера (в качестве основы может быть использован обработчик прерываний таймера из предыдущей работы). Показания времени – часы, минуты, секунды – следует выводить в заданном месте экрана. Формат вывода: xx:xx:xx. Обновление показаний времени выполнять дискретно, через заданное количе
38 руб.
Лабораторная работа 3 по дисциплине: Операционные системы. Вариант 3
xtrail
: 20 июля 2025
Лабораторная работа 3
Управляющие конструкции командной оболочки. Обработка параметров командной строки, передаваемых в скрипт
Цель работы: Изучить управляющие (условные, циклические) конструкций управления командной оболочкой. Изучить способы взаимодействия командной оболочки и скриптов.
Вариант 3:
Написать скрипт, анализирующий параметры командной строки с помощью специальных переменных и с помощью команды getopts.
Скрипт должен выполнять следующую работу:
а) используя соответствующую спецп
450 руб.
Лабораторная работа № 3 по дисциплине "Операционные системы". Вариант №3.
hunter911
: 15 сентября 2012
Постановка задачи:
Написать программу “часы”, которая будет однократно перехватывать показания системных часов и от них вести отсчет времени, используя собственный счетчик прерываний таймера (в качестве основы может быть использован обработчик прерываний таймера из предыдущей работы). Показания времени – часы, минуты, секунды – следует выводить в заданном месте экрана. Формат вывода: xx:xx:xx. Обновление показаний времени выполнять дискретно, через заданное количество секунд.
Программа должна ра
100 руб.
Лабораторная работа №3 по дисциплине: Операционные системы. Вариант №5
xtrail
: 21 сентября 2024
Цель работы: получить базовые знания языка shell. Научиться писать скрипты.
Вариант 5
Написать скрипт, анализирующий параметры командной строки с помощью специальных переменных и с помощью команды getopts.
Скрипт должен выполнять следующую работу:
а) используя соответствующую спецпеременную вывести все параметры, каждый заключен в двойные кавычки
б) если есть- значение третьего параметра.
Скрипту возможна передача опций –d (c дополнительным параметром) и –f (c дополнительным параметром). При
350 руб.
Другие работы
SEO – оптимизация сайтов. МФПУ «Синергия», МОИ, МОСАП
kolonokus1
: 23 июня 2025
1. Какое определение можно дать термину “сайты-аффилиаты”?
небольшие сайты на том же хостинге, что и основной сайт, продвигаемые по тем же ключам,
содержащие тот же контент;
сайты-одностраничники на отдельном хостинге и домене, которые содержат оптимизированный
по SEO, сложный для восприятия пользователями текст;
сайты-одностраничники на отдельном хостинге и домене;
многостраничные сайты
2. Какому типу структуры сайта соответствует описание: “страницы можно просматривать только последовательно;
300 руб.
Электротехника и электроника (часть 2). ВАРИАНТ №5. Контрольная работа.
holm4enko87
: 4 февраля 2025
Задание 1
По выходным характеристикам полевого транзистора (приложение 2,
см. стр. 6-12)
построить передаточную характеристику при указанном напряжении стока. Определить дифференциальные параметры S, Ri, m полевого транзистора и построить их зависимости от напряжения на затворе.
Сделать выводы о зависимости параметров транзистора от режима работы.
Исходные данные для задачи берутся из таблицы П.1.1 приложения 1.
Задание 2
Используя характеристики заданного биполярного (приложение 2,
см. стр. 12
270 руб.
Физика. Лабораторная работа №2. вариант №3. Измерение удельного заряда электрона методом магнетрона
Romashka23
: 30 апреля 2020
Оценка: Зачет.
ОПРЕДЕЛЕНИЕ УДЕЛЬНОГО ЗАРЯДА ЭЛЕКТРОНА МЕТОДОМ МАГНЕТРОНА
1. ЦЕЛЬ РАБОТЫ
1. Ознакомиться с законами движения заряженных частиц в электрическом и магнитном полях.
2. Определить удельный заряд электрона с помощью цилиндрического магнетрона.
Согласно заданию варианта № 3, на лампу подано анодное напряжение Ua=20 В, значение анодного тока Ia=0.58340 mA.
200 руб.
Метод контурных токов, метод узловых потенциалов
SNF
: 5 сентября 2009
МЕТОД КОНТУРНЫХ ТОКОВ
Ранее рассматривались простейшие одноконтурные (двухконтурные) электрические цепи и схемы с двумя узлами. Были описаны способы преобразования схем, с помощью которых в ряде случаев удаётся упростить расчёт разветвлённой электрической цепи.
В случае, когда электрическая схема достаточно сложна и не приводится к схеме одноконтурной цепи, пользуются более общими методами расчёта. Описанные ниже методы применимы для цепей постоянного и переменного тока.
МЕТОД УЗЛОВЫХ ПОТЕНЦИАЛО