Операционные системы. Лабораторная работа №4 (СИБГУТИ)
Состав работы
|
|
|
|
|
|
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему «производитель – потребитель». Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: «Программа запущена со стандартной задержкой, величина которой =…» и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: «Программа запущена со стандартной задержкой, величина которой =…» и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Дополнительная информация
Работа была успешно сдана преподавателю (Бах О.А.).
Похожие материалы
Операционные системы. Лабораторная работа №4
gnv1979
: 30 декабря 2016
1. Постановка задачи
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забира
30 руб.
Операционные системы. Лабораторная работа № 4
jashma28
: 20 мая 2012
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему «производитель – потребитель». Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
800 руб.
Операционные системы (СибГУТИ)
Lost
: 15 февраля 2012
Дисциплина Операционные системы
1) Основные характеристики и особенности систем пакетной обработки, систем разделения времени и систем реального времени. Критерии эффективности.
2) Сегментное преобразование памяти – достоинства и недостатки. Дескриптор сегмента. Сравнить с дескриптором страниц – общее и различия.
3) Привести пример программной реализации семафорных примитивов. Использовать семафоры для синхронизации процессов, один из которых в процессе своей работы посылает другому сообщение,
80 руб.
Лабораторная работа №4 по дисциплине: «Операционные системы»
Мария114
: 24 мая 2017
Задание
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из э
100 руб.
Операционные системы. Лабораторная работа № 4. Все варианты!
rt
: 2 марта 2015
№4: Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого
30 руб.
ЛАБОРАТОРНАЯ РАБОТА №4 по дисциплине «Операционные системы»
mike_vorn
: 30 сентября 2014
1. Постановка задачи.
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”.
680 руб.
Лабораторная работа № 4 по дисциплине "Операционные системы".
Greenberg
: 11 марта 2012
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
79 руб.
Операционные системы. Лабораторная работа № 4. Вариант 4
maxgalll
: 15 ноября 2011
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему «производитель – потребитель». Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
65 руб.
Другие работы
Курсовая работа по дисциплине: Управление качеством инфокоммуникационных услуг. Вариант 16
SibGOODy
: 20 ноября 2018
Вариант задания № 16
1. Сообщение №1
0000: 00 00 0c 90 10 20 08 00 09 e8 10 8e 08 00 45 00
0010: 01 1a 0b 25 00 00 10 11 00 09 c0 45 95 74 c2 15
0020: c3 d8 c0 7c 00 a1 01 06 4a 51 30 81 fb 02 01 00
0030: 04 06 64 65 73 2d 31 36 a0 81 ed 02 04 35 97 ac
0040: 55 02 01 00 02 01 00 30 81 de 30 0c 06 08 2b 06
0050: 01 02 01 01 03 00 05 00 30 0e 06 0a 2b 06 01 02
0060: 01 02 02 01 05 01 05 00 30 0e 06 0a 2b 06 01 02
0070: 01 02 02 01 08 01 05 00
800 руб.
Термодинамика и теплопередача. Техническая термодинамика ОмГУПС Задача 11 Вариант 0
Z24
: 8 февраля 2026
Азот расширяется в политропном процессе от начального объема V1 = 4 м³ и от начального абсолютного давления р1 и температуры t1 = 127ºС до давления р2. В конце расширения газ занимает объем V2. Определить показатель политропы, массу азота, произведенную газом работу и теплоту процесса. Процесс изобразить в pV— и Ts-диаграммах.
150 руб.
Вариант 1. Системы сигнализации и коммутации в беспроводных сетях. Контрольная работа.
CameronCarmona
: 7 февраля 2023
Содержание
Задание на контрольную работу 3
1 Задание 1 4
1.1 Вопрос 1 4
1.2 Вопрос 2 10
2 Задача 2 13
2.1 Схема прохождения трафика 13
2.2 Профили протоколов в плоскости C 13
2.3 Профили протоколов в плоскости U 14
2.4 Назначение и функции каждого устройства 14
2.5 Назначение и функции каждого протокола и интерфейса 15
3 Задача 3 17
Список использованных источников 19
600 руб.
Экзамен «Бухгалтерский учет и анализ». Билет №2
helen1105
: 9 марта 2015
Вопрос № 1: Активы по источникам формирования подразделяются на __________.
1. собственные и заемные
2. собственные и оборотные
3. заемные и оборотные
4. собственные и специального назначения
Вопрос № 2: Способ исчисления в денежном выражении фактической себестоимости продукции называется
1. двойной записью,
2. документацией,
3. отчетностью
4. калькуляцией
Вопрос № 3: По способу отражения документы подразделяются на
1. разовые и накопительные
2. распорядительные и оправдательные
3. перви
110 руб.