Операционные системы. Лабораторная работа №4. Вариант №10.

Цена:
20 руб.

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

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

Описание

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

На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.

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

Вариант 10

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

Уважаемый слушатель, дистанционного обучения,
Оценена Ваша работа по предмету: Операционные системы
Вид работы: Лабораторная работа 4
Оценка:Зачет
Дата оценки: 20.09.2016
Рецензия:Уважаемый ,
Бах Ольга Анатольевна
Операционные системы. Лабораторная работа №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 руб.
Операционные системы. Вариант №10
Задание. Необходимо написать программу, реализующую параллельную работу нескольких процессов. Каждый процесс может состоять из одного или нескольких потоков. Любой из потоков, работающих в составе этих процессов, может быть приостановлен и вновь запущен некоторой определенной клавишей (можно использовать буквенные или цифровые клавиши). Нажатия клавиш обрабатывать с помощью прерывания от клавиатуры (по материалам лаб. работы №1). Окончание работы программы должно происходить при приостановке вс
User AlexBrookman : 29 января 2019
160 руб.
Проект пункта технического обслуживания энергонасыщенных тракторов в условиях ОАО «Чердаклинское РТП»
СОДЕРЖАНИЕ стр. ВВЕДЕНИЕ 1 АНАЛИЗ ПРОИЗВОДСТВЕННОЙ ДЕЯТЕЛЬНОСТИ ПРЕДПРИЯТИЯ 1.1 Характеристика Чердаклинского района 1.2 История и характеристика ОАО Чердаклинское РТП 1.3 Анализ парка тракторов Чердаклинского района 1.4 Характеристика ремонтно-обслуживающей базы 2 ОПРЕДЕЛЕНИЕ ОБЪЕМОВ РАБОТ ПО РЕМОНТУ И ТЕХНИЧЕСКОМУ ОБСЛУЖИВАНИЮ ТРАКТОРОВ ЧЕРДАКЛИНСКОГО РАЙОНА 2.1 Расчет количества ремонтов и технических обслуживаний тракторов по маркам 2.2 Определение объема работ по ремонту и техническ
User Рики-Тики-Та : 4 января 2013
825 руб.
Гидравлика АКАДЕМИЯ ГРАЖДАНСКОЙ ЗАЩИТЫ Задача 9 Вариант 84
К лафетному стволу с насадком dH1 подача воды осуществляется от двух пожарных автомобилей АНР-40(130) и АА-40(131). От автомобиля АНР-40(130) проложена рукавная линия диаметром di из прорезиненных рукавов длиной L1, от автомобиля АА-40(131) — из прорезиненных рукавов диаметром d2 и длиной L2. Ствол поднят на высоту Z. Определить подачу каждого из пожарных насосов.
User Z24 : 12 марта 2026
180 руб.
Гидравлика АКАДЕМИЯ ГРАЖДАНСКОЙ ЗАЩИТЫ Задача 9 Вариант 84
КУРСОВАЯ РАБОТА по дисциплине « Программирование на языках высокого уровня». Вариант №4.
Задание: Разработать программу для создания и работы с двусвязным списком, состоящим из структур. Для работы со списком создать меню со следующими пунктами: 1. Создание списка. 2. Просмотр списка. 3. Добавление в список новой записи. 4. Поиск и корректировка записи в списке. 5. Удаление записи из списка. 6. Сохранение списка в файле. 7. Загрузка списка из файла. 8. Выход. Структура содержит название книги, ф.и.о. автора, год издания. Удалять из списка издания с годом меньше заданного. Изменять
User freelancer : 21 марта 2016
100 руб.
promo
Математический анализ. Экзамен. Билет №5.
1. Производная сложной функции. Производная обратной функции. Производная неявной функции. Производная параметрически заданной функции. 2. Вычислить производные функций а) б) в) 3. Провести полное исследование функции и построить её график 4. Исследовать на экстремум функцию двух переменных 5. Найти неопределенные интегралы
User radioden666 : 23 января 2015
110 руб.
Математический анализ. Экзамен. Билет №5.
up Наверх