Лабораторная работа №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 руб.
Другие работы
Особливості територіально–галузевої структури Автономної Республіки Крим
DocentMark
: 28 сентября 2013
Зміст
Вступ
1. Аналіз і оцінка природно-ресурсного і соціально-економічного потенціалу
1.1 Природно-ресурсний потенціал
1.2 Населення та трудові ресурси
1.3 Науково-технічний потенціал
2. Аналіз розвитку і розміщення основних галузей господарського комплексу
2.1 Загальна характеристика господарства та його структура
2.2 Розвиток та розміщення промисловості
2.3 Розвиток та розміщення сільського господарства
2.4 Розвиток та розміщення транспорту
2.5 Зовнішньоекономічна діяльні
5 руб.
Анализ и оценка эффективности использования основных средств ООО РЦ Проектирование
DocentMark
: 5 ноября 2013
Содержание
Введение……………………………………………………………………………..3
1. Производственно-хозяйственная деятельность ООО «РЦ «Проектирование и строительство»………………………………………………………………………5
1.1. Краткая экономическая характеристика предприятия ООО «РЦ «Проектирование и строительство»
1.2. Анализ структуры актива и пассива баланса…………………………..11
1.3. Финансовые показатели деятельности предприятия ООО «РЦ «Проектирование и строительство»……………………………………………....17
2. Анализ и оценка эффективности использования основных
5 руб.
Чертежи-Графическая часть-Курсовая работа-Агрегат А-50-Ленточный тормоз
https://vk.com/aleksey.nakonechnyy27
: 4 мая 2016
Перед спуском колонн бурильных и обсадных труб, при достижении нагрузки на крюке 10 т, необходимо всегда включать гидродинамический тормоз. Перед подключением гидротормоза следует открыть вентиль подвода холодной воды и установить необходимый уровень воды в баке
Гидротормоз включают рычагом управления на лебедке, переводя его из положения «отключено» в положение «гидротормоз», и вставляют фиксатор рычага
Нагрев воды в работающем тормозе не должен превышать 80 °С. Превышение указанного предела
596 руб.
Технические вопросы реконструкции зданий
evelin
: 2 августа 2015
Содержание.
Введение.
Заключение по обследованию технического состояния объекта.
Фотографии.
Анализ причин дефектов и повреждений.
Библиографический список.
30 руб.