Операционные системы Лабораторная работа №3 Эмуляция работы параллельных процессов на примере схемы “производитель–потребитель”
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Задание для выполнения лаб. работы №3
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Контрольные вопросы
Как поведет себя программа, если первым будет выбираться на выполнение поток-потребитель?
Каким образом можно создать приоритет тому или другому потоку? Используя только датчик случайных чисел? Добавьте возможность задания приоритета в форме параметра командной строки.
Возможно ли добавление в ту же программу новых потоков? Измените программу таким образом, чтобы можно было при ее запуске указывать требуемое количество потоков. При этом функции каждого потока определяются случайным образом. Т.е. может получиться несколько потребителей и один производитель, или наоборот… В крайней ситуации – все производители или все потребители. Как поведёт себя программа в подобном случае?
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Контрольные вопросы
Как поведет себя программа, если первым будет выбираться на выполнение поток-потребитель?
Каким образом можно создать приоритет тому или другому потоку? Используя только датчик случайных чисел? Добавьте возможность задания приоритета в форме параметра командной строки.
Возможно ли добавление в ту же программу новых потоков? Измените программу таким образом, чтобы можно было при ее запуске указывать требуемое количество потоков. При этом функции каждого потока определяются случайным образом. Т.е. может получиться несколько потребителей и один производитель, или наоборот… В крайней ситуации – все производители или все потребители. Как поведёт себя программа в подобном случае?
Дополнительная информация
зачет
Похожие материалы
Лояльность потребителей
evelin
: 19 июля 2015
Введение.
Понятие лояльности потребителей.
Понятие лояльности потребителей и её значение.
Связь между уровнем удовлетворенности и лояльностью.
Критерии и методы оценки лояльности потребителей.
Клиентская лояльность: три модели поведения.
Критерии оценки лояльности потребителей. Методика "SERVQUAL".
Другие методики оценки лояльности потребителей.
программы повышения лояльности.
Общие сведения о программах повышения лояльности.
Дисконтная программа и розыгрыши призов.
Бонусные программы поощрения
42 руб.
Управление взаимоотношениями с потребителями.
studypro3
: 8 февраля 2019
Технологии работы с возражениями покупателей
Практическая часть.
1) Краткое описание ситуации любой организации (1 стр). Вид деятельности любой. Источники информации: личный опыт работы, публикации, сайты организаций.
Задания по деятельности организации:
А) Какие признаки сегментирования рынка использует организация? Стратегия охвата (сегментирования) рынка?
Б) Какие исследования можно провести для проверки гипотез о профилях сегментов?В) Определите возможные признаки позиционирования компании
400 руб.
Управление взаимоотношениями с потребителями.
studypro3
: 27 марта 2018
Технологии работы с возражениями покупателей
Практическая часть.
1) Краткое описание ситуации любой организации (1 стр). Вид деятельности любой. Источники информации: личный опыт работы, публикации, сайты организаций.
Задания по деятельности организации:
А) Какие признаки сегментирования рынка использует организация? Стратегия охвата (сегментирования) рынка?
Б) Какие исследования можно провести для проверки гипотез о профилях сегментов?
) Определите возможные признаки позиционирования компании
500 руб.
Модели поведения потребителей
evelin
: 19 июля 2015
В работе рассмотрены основные модели поведения потребителей, их классификация,описан процесс принятия решений, приведены особенности поведения организаций–потребителей и конечных потребителей.
В практической части рассчитана сегментация рынка потребителей ООО "Лэтуаль" в г. Тула (на основе критерия Фишера) и маркетинговые исследования.
41 руб.
Выигрыш потребителя и производителя
ostah
: 24 сентября 2013
1. Рынок труда в условиях совершенной конкуренции
Одним из основных факторов производства является труд. Конечно, труд, как производственный ресурс имеет свои особенности. Главная из них состоит в том, что труд неотделим от человека и несет социальный и политический аспект. У рабочих, в отличие от машин, есть права, и на защите этих прав в современной рыночной экономике стоят профсоюзы и государство.
Вместе с тем, несмотря на отмеченную выше специфику труда, при его исследовании как фактора п
5 руб.
Защита прав потребителей
Aronitue9
: 18 ноября 2012
Экономические трудности середины 80-х годов привели к тому, что из лексикона практически исчезло слово "купить". Потребление представляло собой одну сплошную и непрервыную трудность, выразимую лишь одним роковым вопросом: "где достать".
Затем пришли рыночные реформы, вслед за ними - законы, защищаюшие интересы потребителей. Казалось, достаточно добиться появления справедливых законов, предоставляющих потребителям реальную возможность защитить себя от произвола производителей и продавцов и все из
5 руб.
Типы поведения потребителя
elementpio
: 15 ноября 2012
Социальное действие и поведение
Единицей поведения является социальный акт, действие. "Поведение человека может быть представлено как ряд функциональных единиц, каждая из которых начинается с нарушения равновесия внутри организма и кончается восстановлением равновесия. Такая единица называется актом" (Шибутани 1969: 60). Нарушение равновесия - это, говоря иными словами, потребность. Покупка - это заключительная фаза акта, началом которого была осознанная потребность (осознание нарушения равновес
Электроснабжение потребителей цеха
GnobYTEL
: 3 февраля 2012
СОДЕРЖАНИЕ
Введение……………………………………………………………………………………………..… .4
1. Выбор электродвигателей, их коммутационных и защитных аппаратов……………………….… 5
2. Определение электрических нагрузок цеха …………………………………………………………17
3. Выбор схемы и расчет внутрицеховой электрической сети………………………………..……… 20
4. Определение уровня напряжения на зажимах электрически наиболее удаленного электроприемника………………………………………………………………………………………….22
5. Расчет токов короткого замыкания………………………………………………………………….24
6.
10 руб.
Другие работы
Контрольная работа по дисциплине: Теория телетрафика. Вариант №
IT-STUDHELP
: 9 декабря 2022
Контрольная работа
по дисциплине:
«Теория телетрафика»
Задачи:
1. На однолинейную СМО поступает простейший поток вызовов с параметром 39 выз/час. Вызовы обслуживаются с ожиданием. Время обслуживания вызовов распределено:
а) показательно со средним значением 80 c; модель обслуживания М/М/1;
б) постоянно с h=t ; модель обслуживания М/Д/1. Допустимое время ожидания начала обслуживания - 160 с. Определить: для модели М/М/1 и М/Д/1 - функцию распределения времени ожидания начала обслуживания;сред
600 руб.
Анализ и оценка рентабельности деятельности предприятия ОАО "Барнаульский пивоваренный завод"
Lokard
: 9 ноября 2013
Введение
Глава 1. Теоретические основы анализа и оценки рентабельности
1.1 Показатели оценки рентабельности инвестиций и рентабельности капитала
1.2 Показатели оценки рентабельности продаж
1.3 Показатели рентабельности активов, методика анализа и оценка их динамики
Глава 2. Анализ рентабельности деятельности ОАО «БПЗ»
2.1 Краткая характеристика ОАО «БПЗ»
2.2 Анализ рентабельности ОАО «БПЗ»
2.3 Анализ и оценка динамики рентабельности всех активов
2.4 Анализ и оценка динамики рентабельнос
10 руб.
Интернет технологии. Лабораторная работа №3
ivansherbakov
: 12 марта 2013
Лабораторная работа N 3
Первая часть задания. Таблицы
Создать документ, в котором в заголовке окна браузера должна быть надпись "Лабораторная 3-1". С использованием команд создания таблицы сформировать таблицу по указанному варианту.
Обратить внимание на ширину первого столбца (задать в процентах от ширины таблицы), шрифт (курсив, Courier New, Arial) и расположение текста (по центру, слева, справа).
Вторая часть задания. Фреймы
Используя описанные команды, создать документ, в котором в за
50 руб.
Организация обеспечения безопасности предприятия. Тест с ответами Синергия.
Nogav
: 14 сентября 2022
1. Внезапные проверки и снятие остатков в баре …
• гарантированно предотвращают злоупотребления и воровство барменов
• наряду с другими мерами содействуют предотвращению воровства
• никак не влияют на возможное воровство
• предотвращают злоупотребления с алкогольной продукцией, отпускаемой через официантов
2. В предприятиях гостинично-ресторанного бизнеса правила пожарной безопасности (ППБ) регламентируются документом …
• ППБ-99
• ППБ 01-93
• ПББ-03
• ППБ 03-01
3. В случае поступления на прои
250 руб.