Операционные системы, лабораторная работа № 4, вариант № 3

Цена:
75 руб.

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

material.view.file_icon
material.view.file_icon LAB4V3.EXE
material.view.file_icon Lab4v3.pas
material.view.file_icon ЛР №4 - Кулинич А.А - ПБТ 26.doc

Необходимые программы

Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

Задание для выполнения лаб. работы №4

Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.

На экране параллельная работа потоков может быть представлена следующим образом:

Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.

Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.

В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.

Отдельной строкой или в углу экрана отображать процент заполненности буфера.

Предусмотреть обработку критических ситуаций:

1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.

2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.

Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.

Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.

Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.

Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.

Контрольные вопросы

1.Как поведет себя программа, если первым будет выбираться на выполнение поток-потребитель?


2.Каким образом можно создать приоритет тому или другому потоку? Используя только датчик случайных чисел? Добавьте возможность задания приоритета в форме параметра командной строки.


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

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

Работа сдана в 2014 году, сделана самостоятельно студентом, сдана со 2-го раза, поэтому содержит первоначальное решение и работу над ошибками.
Лабораторная работа №4 по дисциплине "Операционные системы". Вариант №3.
Постановка задачи: Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает
User hunter911 : 15 сентября 2012
100 руб.
Операционные системы. Лабораторная работа №4
1. Постановка задачи Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забира
User gnv1979 : 30 декабря 2016
30 руб.
Операционные системы. Лабораторная работа № 4
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему «производитель – потребитель». Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
User jashma28 : 20 мая 2012
800 руб.
Лабораторная работа №4 по дисциплине: «Операционные системы»
Задание Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из э
User Мария114 : 24 мая 2017
100 руб.
Операционные системы. Лабораторная работа № 4. Все варианты!
№4: Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого
User rt : 2 марта 2015
30 руб.
ЛАБОРАТОРНАЯ РАБОТА №4 по дисциплине «Операционные системы»
1. Постановка задачи. Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”.
User mike_vorn : 30 сентября 2014
680 руб.
Лабораторная работа № 4 по дисциплине "Операционные системы".
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
User Greenberg : 11 марта 2012
79 руб.
Операционные системы. Лабораторная работа №4 (СИБГУТИ)
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему «производитель – потребитель». Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
User JulDir : 8 октября 2011
99 руб.
Вопросы к гос. экзамену 2019. Радиоприемные устройства
Ответы на экзаменационные вопросы по Радиоприемным устройствам (теоритические вопросы). Предназначен для студентов Дистанционной формы обучения СибГУТИ по предмету Радиоприемные устройства. Преподаватель - Шушнов М.Г. Перечень вопросов ГОС экзамена для студентов заочной формы обучения направление: 11.03.02 Инфокоммуникационные технологии и системы связи» квалификация (степень) бакалавр, профиль: «Системы радиосвязи и радиодоступа»
User l337krew : 5 февраля 2019
100 руб.
Технологии транспортных сетей. Вариант №02
Аннотация Контрольная работа выполнена в программе Cisco Packet Tracer. Состоит из архива, содержащего два документа: 1. Пояснительную записку к контрольной работе. 2. Файл Cisco Packet Tracer в формате .pkt. Пояснительная записка состоит из: 1. Содержания 2. Задания в соответствии с вариантом. 3. Краткого описания моделируемой сети 4. Выполнения задания. 5. Результатов выполнения 6. Выводов по проделанной работе. 7. Кратких ответов на контрольные вопросы. Пояснительная записка содержит 10 г
User IT-STUDHELP : 30 декабря 2021
480 руб.
promo
Курсовая работа. Модернизация электрогидравлического двух стоечного подъемника на 5,5 тонн. Техническая эксплуатация автомобилей. Средства технического оснащения автосервиса.
Модернизация электрогидравлического двухстоечного подъемника на 5,5 т. на основе модели Rotary SPOA40E-5-EH2GR. Техническая эксплуатация автомобилей. Средства технического оснащения автосервиса. В ходе выполнения курсовой работы необходимо ознакомиться с технологическим оборудованием, заданным в задании, с особенностями его конструкции и принципом работы, рассмотреть виды работ и операции, для выполнения которых предназначено данное оборудование. Целью курсовой работы является модернизация элкт
User DiKey : 15 июня 2022
350 руб.
Курсовая работа. Модернизация электрогидравлического двух стоечного подъемника на 5,5 тонн. Техническая эксплуатация автомобилей. Средства технического оснащения автосервиса.
ЭКЗАМЕН по дисциплине: «Программное обеспечение цифровых систем коммутации». Билет 15.
1. Взаимодействия программ ПСК1 и ПСК2. 2. Назначение и структура систем программ технического обслуживания (СПТО) 3. Задача: Изобразить КП если оно имеет следующие параметры nа=5, ma=3, ka=4, mв=4. На выходе КП включены комплекты приема номера Nткпн=6, Nдкпн=6. ДКПН включены в выходы: 1, 3, 5, 7, 9, 11. ТКПН включены в выходы: 2, 4, 6, 8, 10, 12. Заданы массивы состояния ПЛ и выходов в КП. ТП МС ПЛ МС вых. ДДТТД 01
User teacher-sib : 25 ноября 2016
100 руб.
promo
up Наверх