Эмуляция работы параллельных процессов на примере схемы “производитель–потребитель

Цена:
40 руб.

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

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

Описание

Постановка задачи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сдано 2012г.
Лабораторная работа №4 Эмуляция работы параллельных процессов на примере схемы «производитель–потребитель»
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему «производитель – потребитель». Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
User Ruslanks : 2 апреля 2018
150 руб.
Операционные системы Лабораторная работа №3 Эмуляция работы параллельных процессов на примере схемы “производитель–потребитель”
Задание для выполнения лаб. работы №3 Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (п
User svladislav987 : 23 августа 2023
200 руб.
Операционные системы. Лабораторная работа № 4. Эмуляция работы параллельных процессов на примере схемы «производитель–потребитель»
1. Постановка задачи Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забира
User nik200511 : 11 марта 2014
41 руб.
Операционные системы. Лабораторная работа № 4. Эмуляция работы параллельных процессов на примере схемы “производитель-потребитель” . Turbo Pascal. СибГУТИ
Задание для выполнения лаб. работы №4 Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (п
User РешуВашуРаботу : 27 апреля 2018
450 руб.
Лояльность потребителей
Введение. Понятие лояльности потребителей. Понятие лояльности потребителей и её значение. Связь между уровнем удовлетворенности и лояльностью. Критерии и методы оценки лояльности потребителей. Клиентская лояльность: три модели поведения. Критерии оценки лояльности потребителей. Методика "SERVQUAL". Другие методики оценки лояльности потребителей. программы повышения лояльности. Общие сведения о программах повышения лояльности. Дисконтная программа и розыгрыши призов. Бонусные программы поощрения
User evelin : 19 июля 2015
42 руб.
Управление взаимоотношениями с потребителями.
Технологии работы с возражениями покупателей Практическая часть. 1) Краткое описание ситуации любой организации (1 стр). Вид деятельности любой. Источники информации: личный опыт работы, публикации, сайты организаций. Задания по деятельности организации: А) Какие признаки сегментирования рынка использует организация? Стратегия охвата (сегментирования) рынка? Б) Какие исследования можно провести для проверки гипотез о профилях сегментов?В) Определите возможные признаки позиционирования компании
User studypro3 : 8 февраля 2019
400 руб.
Управление взаимоотношениями с потребителями.
Технологии работы с возражениями покупателей Практическая часть. 1) Краткое описание ситуации любой организации (1 стр). Вид деятельности любой. Источники информации: личный опыт работы, публикации, сайты организаций. Задания по деятельности организации: А) Какие признаки сегментирования рынка использует организация? Стратегия охвата (сегментирования) рынка? Б) Какие исследования можно провести для проверки гипотез о профилях сегментов? ) Определите возможные признаки позиционирования компании
User studypro3 : 27 марта 2018
500 руб.
Модели поведения потребителей
В работе рассмотрены основные модели поведения потребителей, их классификация,описан процесс принятия решений, приведены особенности поведения организаций–потребителей и конечных потребителей. В практической части рассчитана сегментация рынка потребителей ООО "Лэтуаль" в г. Тула (на основе критерия Фишера) и маркетинговые исследования.
User evelin : 19 июля 2015
41 руб.
Экзамен по дисциплине: Математическая логика и теория алгоритмов. Билет №12
Билет №12 - Дата отправки 25.05.19 А – день даты (от 1 до 31) отправки экзаменационного задания, В – месяц даты (от 1 до 12) отправки экзаменационного задания. 1. Функция получена операцией примитивной рекурсии из функций и . Вычислить , если , 2. Функция получена операцией примитивной рекурсии из константы и функции . Вычислить , если , 3. Проверить правильность рассуждения (метод любой) Если щегол поет, то либо на улице солнечно, либо щегол сытый. На улице пасмурно и в к
User IT-STUDHELP : 29 мая 2019
350 руб.
Экзамен по дисциплине: Математическая логика и теория алгоритмов. Билет №12 promo
Теплотехника 19.03.04 КубГТУ Задача 1 Вариант 46
В идеальный поршневой компрессор поступает М, кг/c воздуха с начальными параметрами р1=0,1 МПа и t1=27 ºC. Воздух сжимается до давления р2. Определить начальный υ1 и конечный υ2 удельные объемы, м³/кг, конечную температуру t2, ºC, изменение энтропии Δs, кДж/(кг·К), l — удельную работу сжатия, кДж/кг, мощность компрессии, N, кВт, а также количество теплоты, участвующее в процессе сжатия Q, кВт и при изобарном охлаждении воздуха в промежуточных охладителях Q0, кВт. Расчет произвести последов
User Z24 : 20 января 2026
400 руб.
Теплотехника 19.03.04 КубГТУ Задача 1 Вариант 46
Контрольная работа. Химия радиоматериалов. Вариант №5
задача 3.1.1 Определить падение напряжения в линии электропередач длиной L при температуре То1 , То2 , То3 , если провод имеет сечение S и по нему течет ток I. задача 3.1.2 Определить длину проволоки для намотки проволочного резистора с номиналом R, и допустимой мощностью рассеяния P. задача 3.2.1 ,задача 3.2.2 ,задача 3.2.3 ,задача 3.3.1 ,задача 3.3.2 ,задача 3.3.3 ,задача 3.4.1 ,задача 3.4.2 Уважаемый слушатель, дистанционного обучения, Оценена Ваша работа по предмету: Химия радиоматериалов
User Screen : 28 января 2014
150 руб.
Коллекторный электродвигатель
История возникновения коллекторного электродвигателя Важнейшие сдвиги в развитии энергетической баз промышленного производства были связаны с изобретением и применением электрических двигателей. В 1831 году английский физик М. Фарадей открыл явление электромагнитной индукции, а в 1834 русский ученый Б.С. Якоби создал первый электродвигатель постоянного тока, пригодный для практических целей. Однако только с 70х гг. 19в двигатели постоянного тока получают широкое применение благодаря созданию ис
User evelin : 19 октября 2013
13 руб.
up Наверх