Программа по параллельной работе потоков “производитель – потребитель”
Состав работы
|
|
|
|
|
|
|
|
Необходимые программы
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
ЛАБОРАТОРНАЯ РАБОТА №4
по дисциплине
«Операционные системы»
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
по дисциплине
«Операционные системы»
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Дополнительная информация
Коментарии: Год сдачи - 2011
Оценка - Зачет
Замечаний нет
Оценка - Зачет
Замечаний нет
Похожие материалы
Программа по параллельной работе потоков “производитель – потребитель”
uksne
: 14 мая 2010
ЛАБОРАТОРНАЯ РАБОТА №4
по дисциплине
«Операционные системы»
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на
150 руб.
Лояльность потребителей
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). Нарушение равновесия - это, говоря иными словами, потребность. Покупка - это заключительная фаза акта, началом которого была осознанная потребность (осознание нарушения равновес
Другие работы
Билет №9 экзамен по Английскому языку ДО СИБГУТИ
romanovpavel
: 3 декабря 2018
Билет №9
Задание 1. Выберите правильный ответ.
1. Today polymers ______ to as materials of vital importance.
a. refers b. are referred c. is referring
2. Much attention______now to the use of polymers because they have many desirable properties.
a. is being paid b. is paid c. was paid
3. I _____ never_____to London.
a. had visited b. was gone c. have been
4. Einstein was the physicist who_____ the theory of relativity.
a. developed
75 руб.
Сетевые базы данных. Лабораторная работа №2. Основные конструкции языка PHP.
zhekaersh
: 20 февраля 2015
Задание
№ 1
Используя переменные $color и $size сформировать php-скрипт z2-1.php, который выводит на экран строку текста заданным цветом и размером.
№ 2
В скрипте z2-2.php имеется переменная $breakfast со значением "gamburger" и динамическая переменная $$breakfast со значением " and tea".
Объяснить, что будет выведено на экран в случаях (а), (б), (в) и почему:
(а) print "$breakfast $gamburger";
(б) print "$breakfast"; print "$$breakfast";
(в) print $breakfast; print $$breakfast;
№ 3
Выполни
35 руб.
Гидростатика и гидродинамика ТИУ Задача 1.2 Вариант 14
Z24
: 31 декабря 2026
В вертикальной цилиндрической емкости диаметром D находится углеводородсодержащая жидкость, масса которой составляет m, тонн, температура жидкости равна t, ºС, плотность ρ = 870 кг/м³. Определить на какую величину изменится уровень углеводородсодержащей жидкости в емкости и минимальную допустимую высоту этой емкости с целью недопущения перелива жидкости через верх, приводящего к загрязнению окружающей среды, если температура ее изменится от 0ºС до 35ºС. Расширением стенок емкости пренебречь. Коэ
150 руб.
Перспективная технология и комплекс машин для возделывания картофеля в филиале «Зеленочи» с модернизацией ботвоуборочной машины МБУ-3,0 (Дипломный проект)
Shloma
: 2 июня 2025
Дипломный проект
Пояснительная записка включает 87 с., в том числе таблиц 14, рисунков 8, приложения, 9 листов графической части.
Ключевые слова: машинно-тракторный парк, растениеводство, животноводство, ремонтно-обслуживающая база, эффективность, машинно-тракторный агрегат, производительность, затраты, ботвоуборочная машина, экономический эффект, эксплуатация, картофель.
В дипломном проекте представлен анализ хозяйственной деятельности филиала «Зеленочи» ОАО «Калинковичский мясокомбинат»,
1590 руб.