Лабораторная работа №4 по дисциплине: Операционные системы. Вариант №7

Цена:
300 руб.

Состав работы

material.view.file_icon
material.view.file_icon
material.view.file_icon LAB4.EXE
material.view.file_icon LAB4.PAS
material.view.file_icon Отчет.doc
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

Задание
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Описание параметров программы
Описание переменных и подпрограмм
Алгоритм программы
Листинг программы
Копия экрана программы

Ответы на контрольные вопросы
1) Как поведет себя программа, если первым будет выбираться на выполнение поток-потребитель?
2) Каким образом можно создать приоритет тому или другому потоку? Используя только датчик случайных чисел? Добавьте возможность задания приоритета в форме параметра командной строки.
3) Возможно ли добавление в ту же программу новых потоков? Измените программу таким образом, чтобы можно было при ее запуске указывать требуемое количество потоков. При этом функции каждого потока определяются случайным образом. Т.е. может получиться несколько потребителей и один производитель, или наоборот… В крайней ситуации – все производители или все потребители. Как поведёт себя программа в подобном случае?

Дополнительная информация

Работа зачтена!
В архиве отчет + программа.
Преподаватель: Бах О.А.
ПОВТиАС
Лабораторная работа №4 по дисциплине: «Операционные системы»
Задание Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из э
User Мария114 : 24 мая 2017
100 руб.
ЛАБОРАТОРНАЯ РАБОТА №4 по дисциплине «Операционные системы»
1. Постановка задачи. Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”.
User mike_vorn : 30 сентября 2014
680 руб.
Лабораторная работа № 4 по дисциплине "Операционные системы".
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
User Greenberg : 11 марта 2012
79 руб.
Лабораторная работа №4 по дисциплине: Операционные системы. Для всех вариантов.
Лабораторная работа №4: Эмуляция работы параллельных процессов на примере схемы “производитель–потребитель” Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности
User IT-STUDHELP : 23 апреля 2017
38 руб.
Лабораторная работа №4 по дисциплине: Операционные системы. Для всех вариантов. promo
Лабораторная работа № 4 по дисциплине: Операционные системы. Вариант №1
Постановка задачи. Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему «производитель – потребитель». Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает
User xtrail : 2 апреля 2013
200 руб.
Лабораторная работа №4 по дисциплине "Операционные системы". Вариант №3.
Постановка задачи: Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает
User hunter911 : 15 сентября 2012
100 руб.
Лабораторная работа № 4 по дисциплине: «Операционные системы, среды и оболочки»
«Управление доступом к файловым ресурсам» Цель работы: Освоение навыков управления доступом пользователей к файлам и папкам с целью защиты информации от несанкционированного доступа 1. Создадим папку, в которую поместите текстовый файл и приложение в виде файла с расширением exe. Например, одну из стандартных программ Windows, такую как notepad.exe (Блокнот).
User gargona : 2 мая 2012
Лабораторная работа №4 по дисциплине: Операционные системы. 3-й семестр
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
User saharok : 13 января 2014
69 руб.
Философский анализ трансформаций свободы (логико-исторический аспект)
Оглавление стр. Введение 2-13 Глава 1.Анализ трансформаций свободы в истории классических философских учений: 14-58 §1.Онтологические компоненты свободы. 14-32 §2. Гносеологические аспекты и трансформации свободы. 33-58 Глава 2. Анализ социаль
User evelin : 16 ноября 2013
10 руб.
Теплотехника Задача 24.16
Над горизонтальной поверхностью воды, имеющей форму прямоугольника размером 0,15×1 м, в поперечном направлении движется воздух со скоростью ω=2,5 м/c. Температура воды на поверхности t=30 ºC, температура вдали от поверхности воды 20 ºC, относительная влажность φ=40%. Барометрическое давление В=750 мм рт. ст. Определить количество воды, испарившейся за час.
User Z24 : 20 октября 2025
200 руб.
Теплотехника Задача 24.16
Метрология стандартизация и сертификация
1. Цель работы. Ознакомление с упрощенной процедурой обработки результатов прямых измерений с многократными наблюдениями. Получение, применительно к упрощенной процедуре, навыков обработки результатов наблюдений, оценка погрешностей результатов измерений и планирование количества наблюдений. 2. Программа лабораторной работы. 3.1.Выполненить многократные независимые наблюдения в автоматическом режиме. 3.2.Произвести автоматизированную упрощенную процедуру обработки результатов многократных нез
User Kurmet : 13 марта 2018
250 руб.
Метрология стандартизация и сертификация
Проект технического обслуживания МТП
Содержание. Введение………………………………………………………………………...3 1. Производственно-техническая характеристика……………………………4 1.1. Основные сведения о хозяйстве…………………………………………..4 1.2. Анализ использования машинно-тракторного парка…………………….7 1.3. Техническое обслуживание машин……………………………………….9 1.4. Хранение машин…………………………………………………………..10 2. Расчёт состава и планирование использования машинно-тракторного парка…………………………………………………………………………….10 2.1. Интенсивная технология возделывания ячменя………………………...10 2.2. Рас
User GnobYTEL : 9 сентября 2011
44 руб.
up Наверх