Эмуляция работы параллельных процессов на примере схемы “производитель–потребитель
Состав работы
|
|
|
|
|
|
|
|
|
|
Необходимые программы
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Постановка задачи
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Дополнительная информация
Сдано 2012г.
Похожие материалы
Лабораторная работа №4 Эмуляция работы параллельных процессов на примере схемы «производитель–потребитель»
Ruslanks
: 2 апреля 2018
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему «производитель – потребитель». Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
150 руб.
Операционные системы Лабораторная работа №3 Эмуляция работы параллельных процессов на примере схемы “производитель–потребитель”
svladislav987
: 23 августа 2023
Задание для выполнения лаб. работы №3
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (п
200 руб.
Операционные системы. Лабораторная работа № 4. Эмуляция работы параллельных процессов на примере схемы «производитель–потребитель»
nik200511
: 11 марта 2014
1. Постановка задачи
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забира
41 руб.
Операционные системы. Лабораторная работа № 4. Эмуляция работы параллельных процессов на примере схемы “производитель-потребитель” . Turbo Pascal. СибГУТИ
РешуВашуРаботу
: 27 апреля 2018
Задание для выполнения лаб. работы №4
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (п
450 руб.
Лояльность потребителей
evelin
: 19 июля 2015
Введение.
Понятие лояльности потребителей.
Понятие лояльности потребителей и её значение.
Связь между уровнем удовлетворенности и лояльностью.
Критерии и методы оценки лояльности потребителей.
Клиентская лояльность: три модели поведения.
Критерии оценки лояльности потребителей. Методика "SERVQUAL".
Другие методики оценки лояльности потребителей.
программы повышения лояльности.
Общие сведения о программах повышения лояльности.
Дисконтная программа и розыгрыши призов.
Бонусные программы поощрения
42 руб.
Управление взаимоотношениями с потребителями.
studypro3
: 8 февраля 2019
Технологии работы с возражениями покупателей
Практическая часть.
1) Краткое описание ситуации любой организации (1 стр). Вид деятельности любой. Источники информации: личный опыт работы, публикации, сайты организаций.
Задания по деятельности организации:
А) Какие признаки сегментирования рынка использует организация? Стратегия охвата (сегментирования) рынка?
Б) Какие исследования можно провести для проверки гипотез о профилях сегментов?В) Определите возможные признаки позиционирования компании
400 руб.
Управление взаимоотношениями с потребителями.
studypro3
: 27 марта 2018
Технологии работы с возражениями покупателей
Практическая часть.
1) Краткое описание ситуации любой организации (1 стр). Вид деятельности любой. Источники информации: личный опыт работы, публикации, сайты организаций.
Задания по деятельности организации:
А) Какие признаки сегментирования рынка использует организация? Стратегия охвата (сегментирования) рынка?
Б) Какие исследования можно провести для проверки гипотез о профилях сегментов?
) Определите возможные признаки позиционирования компании
500 руб.
Модели поведения потребителей
evelin
: 19 июля 2015
В работе рассмотрены основные модели поведения потребителей, их классификация,описан процесс принятия решений, приведены особенности поведения организаций–потребителей и конечных потребителей.
В практической части рассчитана сегментация рынка потребителей ООО "Лэтуаль" в г. Тула (на основе критерия Фишера) и маркетинговые исследования.
41 руб.
Другие работы
Региональная экономическая интеграция
alfFRED
: 23 ноября 2013
Оглавление.
Введение…………..…………………………………………...……………..……3
1. Сущность региональной экономической интеграции………………………..4
1.1. Причины и цели региональной экономической интеграции……………....5
1.2. Теории интеграции……………………………………………………...........6
2. Роль региональной экономической интеграции в развитии мирового производственного процесса…………………………………..............................9
2.1. Типы развития региональной экономической интеграции…………........10
2.2. Формы развития региональной экономическ
10 руб.
Чертеж детали каплеуловителя экспанзера 10Е-2б (Лист1)-Чертеж-Машины и аппараты нефтехимических производств-Курсовая работа-Дипломная работа
lesha.nakonechnyy.92@mail.ru
: 13 июня 2018
Чертеж детали каплеуловителя экспанзера 10Е-2б (Лист1)-(Формат Компас-CDW, Autocad-DWG, Adobe-PDF, Picture-Jpeg)-Чертеж-Машины и аппараты нефтехимических производств-Курсовая работа-Дипломная работа
276 руб.
Твердотельная модель и чертеж детали. Вариант 2 - Корпус
.Инженер.
: 29 марта 2026
В.П. Большаков. Создание трехмерных моделей и конструкторской документации в системе КОМПАС-3D. Практикум. Задание 13. По заданным проекциям создать ассоциативный чертеж. Вариант 2 - Корпус
1. Построить твердотельную модель детали с нанесением в эскизах управляющих параметрических размеров по ГОСТ 6636-69.
2. В трехпроекционном ассоциативном чертеже выполнить необходимые разрезы и завершить его оформление.
3. В ассоциативный чертеж включить дополнительный вид с аксонометрией детали (с вы-
150 руб.
Контрольная работа по дисциплине: Сети и системы радиосвязи. Вариант 15
Учеба "Под ключ"
: 24 декабря 2024
Содержание
Задание контрольной работы 3
1. Подбор оборудования базовой станции стандарта WiMAX 4
1.1 Климатические характеристики 4
1.2 Оборудование базовой станции стандарта WiMAX 6
2. Разработка структурной схемы сети 14
3. Места для размещения БС в городе 15
4. Частотно-территориальный план сети 17
Список использованных источников 18
Задание контрольной работы
Вариант выбирается по двум последним цифрам пароля:
1) если предпоследняя цифра пароля нечетная, то по последней цифре пароля выби
1000 руб.