Страницу Назад
Поискать другие аналоги этой работы
150 Лабораторная работа №3 по дисциплине «Операционные системы».ID: 221898Дата закачки: 22 Ноября 2021 Продавец: boeobq (Напишите, если есть вопросы) Посмотреть другие работы этого продавца Тип работы: Работа Лабораторная Форматы файлов: Исполняемые фалы (EXE), Microsoft Word, TurboPascal Сдано в учебном заведении: ДО СИБГУТИ Описание: Тема работы: Эмуляция работы параллельных процессов на примере схемы “производитель–потребитель” 1. Постановка задачи Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности. На экране параллельная работа потоков может быть представлена следующим образом: Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки. Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки. В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала. Отдельной строкой или в углу экрана отображать процент заполненности буфера. Предусмотреть обработку критических ситуаций: 1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени. 2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично. Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки. Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться. Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском. Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована. Разделы отчета: 2. Краткие теоретические сведения, использованные для выполнения работы 3. Описание входных данных программы и её результатов 4. Описание основных переменных, а также основных блоков и подпрограмм 5 . Алгоритм решения задачи 6. Текст программы с комментариями строк 7. Ответы на контрольные вопросы Объем отчета составляет 40 страниц формата А4. К отчету прилагается 3 исходных текста программы на языке TurboPascal и 3 исполняемых файла. Некоторые данные из отчета приведены на мини скиншотах. Комментарии: Год сдачи: 2019 Преподаватель: Бах О.А. Работа зачтена без замечаний. Рекомендую использовать представленные материалы в качестве методической помощи для выполнения своих работ. Размер файла: 145,2 Кбайт Фаил: (.zip)
Скачано: 5 Коментариев: 0 |
||||
Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них. Опять не то? Мы можем помочь сделать! Некоторые похожие работы:Лабораторная работа №1 по дисциплине: Операционные системы. Для всех вариантов.Лабораторные работы №1,2,3 по дисциплине: Операционные системы. Без вариантов. Лабораторные работы №2 по дисциплине: Введение в операционную систему UNIX. Для всех вариантов Лабораторные работы №1 по дисциплине: Введение в операционную систему UNIX. Для всех вариантов Лабораторная работа по дисциплине: Операционные системы реального времени. Вариант №03 Лабораторная работа по дисциплине: Операционные системы реального времени. Вариант №9 Лабораторная работа №3 по дисциплине: Операционные системы. Вариант общий Ещё искать по базе с такими же ключевыми словами. |
||||
Не можешь найти то что нужно? Мы можем помочь сделать! От 350 руб. за реферат, низкие цены. Спеши, предложение ограничено ! |
Вход в аккаунт:
Страницу Назад
Cодержание / Операционные системы / Лабораторная работа №3 по дисциплине «Операционные системы».
Вход в аккаунт: