Операционные системы. Лабораторная работа №3 (2019). Для всех вариантов.
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
Необходимые программы
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Лабораторная работа №3: Эмуляция работы параллельных процессов на примере схемы “производитель–потребитель”
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буфера. Для контроля также выполнять вывод на экран чисел, взятых потоком-потребителем из буфера. Вывод разными потоками выполнять в разные строки и/или разным цветом; дополнительно выводить на экран индикатор того, какой именно поток работает в настоящий момент, а также содержимое буфера и текущий процент его заполненности.
На экране параллельная работа потоков может быть представлена следующим образом:
Верхняя строка (производитель): ячейка для вывода текущего сгенерированного числа, признак активности потока (слово, символ, цвет), сообщение о переполнении буфера в случае этого события. Возможно, ещё какая-то полезная информация, например, номер заполняемой ячейки.
Нижняя (или вторая) строка (потребитель): ячейка для вывода текущего прочитанного числа, признак активности потока (слово, символ, цвет), сообщение о пустом буфере в случае этого события. Возможно, информация о номере считываемой из буфера ячейки.
В середине экрана: сам буфер, в который числа добавляются потоком-производителем и из которого считываются (удаляются или перекрашиваются, попадая при этом в его ячейку в нижней строке экрана) потоком-потребителем. Считывание чисел можно производить по принципу стека или очереди. При считывании по принципу очереди после завершения работы потребителя какое-то количество чисел из начала буфера исчезнет, следовательно, буфер будет перемещаться по экрану и в какой-то момент его потребуется переписать заново, от начала.
Отдельной строкой или в углу экрана отображать процент заполненности буфера.
Предусмотреть обработку критических ситуаций:
1) Случай, когда потребителю предоставлено управление, а буфер данных пуст – тогда активный поток должен напрямую отдать управление производителю, а сам уйти в режим ожидания. При этом вопрос с квантом времени для производителя может быть решён по-разному. Например, остаток недоработанного потребителем кванта может быть передан производителю, либо ему может быть выделен новый квант времени.
2) Случай, когда управление предоставлено производителю, а буфер полон и записывать результаты некуда – поток-производитель должен заблокироваться до появления свободного места в буфере и запустить поток-потребитель. Вопрос с квантом может решаться аналогично.
Для того чтобы было возможно пронаблюдать работу потоков в замедленном режиме, в каждом из потоков следует поставить дополнительную задержку (стандартный delay), величину которой задавать с клавиатуры при запуске программы, в качестве параметра командной строки. При запуске без параметров выводить сообщение примерного вида: “Программа запущена со стандартной задержкой, величина которой =…” и формат запуска программы для задания желаемой задержки.
Потоки при работе чередуются случайным образом; регламентировать их работу с помощью таймера (выделять каждому кванты времени, величина которых тоже случайна – в некотором диапазоне). При этом может складываться ситуация, что один и тот же поток несколько раз подряд получит управление. Таймер по окончании выделенного потоку кванта времени изменяет статус этого потока с активного на пассивный, в результате чего внутренний цикл этого потока должен завершиться.
Внутри обработчика прерываний таймера не может находиться вызовов процедур – потоков! Вызовы процедур должны происходить в бесконечном цикле в основной программе. В обработчик прерываний таймера вообще нельзя включать никакие действия, требующие длительного выполнения, например, вызовы циклических процедур, или процедур, работающих с графикой или с диском.
Для выхода из программы предусмотреть какую-то специальную клавишу или комбинацию клавиш (выбор по желанию программиста), информация о ней должна быть известна пользователю – помещена на экране. При нажатии этой клавиши происходит окончание работы потока-производителя, а поток-потребитель закончит свою работу, только когда буфер будет исчерпан, т.е. выработанная информация будет полностью использована.
Дополнительная информация
Работы сдавались в ноябре 2018, зачтены без замечаний.
Внимание! В программе вместо "Студент ФИО" нужно вставить свои данные.
Внимание! В программе вместо "Студент ФИО" нужно вставить свои данные.
Похожие материалы
Операционные системы. Лабораторная работа № 3. Все варианты!
rt
: 2 марта 2015
№3: Написать программу «часы», которая будет однократно перехватывать показания системных часов и от них вести отсчет времени, используя собственный счетчик прерываний таймера (в качестве основы может быть использован обработчик прерываний таймера из предыдущей работы). Показания времени – часы, минуты, секунды – следует выводить в заданном месте экрана. Формат вывода: xx:xx:xx. Обновление показаний времени выполнять дискретно, через заданное количество секунд.
Программа должна работать резидент
30 руб.
Операционные системы Лабораторная работа 3
ilya22ru
: 12 декабря 2024
Задание к лабораторной работе №3
Цель занятия: знакомство с сетевыми командами.
Изучаемые команды: ifconfig, route, traceroute, ping.
1. Создать файл, содержащий MAC–адрес сетевого интерфейса eth0 и
статистику переданных и принятых пакетов для этого интерфейса.
2. Создать файл, содержащий cписок доступных IP–адресов локальной
сети.
3. Создать файл, содержащий IP–адрес и сетевое имя шлюза по
умолчанию для выхода в Интернет.
4. Создать файл, содержащий перечень имен и IP-адресов узлов,
входящих
410 руб.
Операционные системы. Лабораторная работа №3.
Fockus
: 7 июля 2023
1. Создать файл, содержащий MAC–адрес сетевого интерфейса eth0 и статистику переданных и принятых пакетов для этого интерфейса.
2. Создать файл, содержащий список доступных IP–адресов локальной сети.
3. Создать файл, содержащий IP–адрес и сетевое имя шлюза по умолчанию для выхода в Интернет.
4. Создать файл, содержащий перечень имен и IP-адресов узлов, входящих в маршрут до вашего почтового сервера (например, mail.ru, yandex.ru).
5. Определить, какие из этих узлов доступны для связи в данны
200 руб.
Лабораторная работа №3 "Операционные системы"
Daniil2001
: 12 февраля 2023
Лабораторная работа №3. Вариант 8.
Эмуляция работы параллельных процессов на примере
схемы «производитель–потребитель»
50 руб.
Операционные системы. Лабораторная работа №3
1973830311asd
: 26 сентября 2020
Управляющие конструкции командной оболочки
Обработка параметров командной строки, передаваемых в скрипт
Цель работы: Изучить управляющие (условные, циклические) конструкций управления командной оболочкой. Изучить способы взаимодействия командной оболочки и скриптов.
Задание.
Написать скрипт, анализирующий параметры командной строки с помощью специальных переменных и с помощью команды getopts.
Скрипт должен выполнять следующую работу:
а) используя соответствующую спецпеременную вывести всю
650 руб.
Операционные системы. Лабораторная работа № 3
gnv1979
: 30 декабря 2016
1. Постановка задачи
Написать программу «часы», которая будет однократно перехватывать показания системных часов и от них вести отсчет времени, используя собственный счетчик прерываний таймера (в качестве основы может быть использован обработчик прерываний таймера из предыдущей работы). Показания времени – часы, минуты, секунды – следует выводить в заданном месте экрана. Формат вывода: xx:xx:xx. Обновление показаний времени выполнять дискретно, через заданное количество секунд.
Программа должна
30 руб.
Операционные системы Лабораторная работа № 3
jashma28
: 20 декабря 2012
Написать программу “часы”, которая будет однократно перехватывать показания системных часов и от них вести отсчет времени, используя собственный счетчик прерываний таймера (в качестве основы может быть использован обработчик прерываний таймера из предыдущей работы). Показания времени – часы, минуты, секунды – следует выводить в заданном месте экрана. Формат вывода: xx:xx:xx. Обновление показаний времени выполнять дискретно, через заданное количество секунд.
Программа должна работать резидентно.
800 руб.
Операционные системы. Лабораторная работа №3. ВАРИАНТ №3
DmitryK
: 14 мая 2020
Управляющие конструкции командной оболочки
Обработка параметров командной строки, передаваемых в скрипт
Цель работы: Изучить управляющие (условные, циклические) конструкций управления командной оболочкой. Изучить способы взаимодействия командной оболочки и скриптов.
ВАРИАНТ-3
задание:
Написать скрипт, анализирующий параметры командной строки с помощью специальных переменных и с помощью команды getopts.
Скрипт должен выполнять следующую работу:
а) используя соответствующую спецпеременную вывес
100 руб.
Другие работы
Иностранный язык (английский) (часть 1)
banderas0876
: 7 февраля 2023
Описание:
Контрольная работа включает в себя 5 заданий:
I. Переведите следующие предложения, выбирая правильный артикль: определённый, неопределённый или нулевой (отсутствие артикля).
II. Переведите следующие предложения, обращая внимание на модальные глаголы.
III. Переведите следующие предложения, обращая внимание на степени сравнения прилагательных и наречий.
IV. Переведите следующие предложения на русский язык, выпишите глаголы-сказуемые и определите их время и залог.
V. Переведите следующие
40 руб.
Зачетная работа по дисциплине: Сети связи и системы коммутации. Билет №1
Roma967
: 11 января 2024
Дисциплина: Сети связи и системы коммутации
Билет 1
1. Охарактеризуйте структуру единой сети электросвязи РФ
2. Определите функции современных систем сигнализации
3. Виды соединений в сети IP – телефонии
ПРИ ОТВЕТЕ ГЛАВЫ ИЗ ЛЕКЦИЙ НЕ КОПИРОВАТЬ!
ОСМЫСЛИТЬ И НАПИСАТЬ ОСНОВНЫЕ ТЕЗИСЫ, отвечающие на вопрос
600 руб.
Стилистические особенности прозы И. С. Шмелева и Б. Акунина
alfFRED
: 2 сентября 2013
Стилистические особенности прозы И. С. Шмелева и Б. Акунина
имеют общую особенность: оба писателя восстанавливают реальность ушедшей эпохи, будь то семья московского капиталиста с купеческим укладом или громкие преступления и загадочные события конца XIX века.
И. С. Шмелев в эмиграции, как и многие другие писатели-эмигранты, например, Бунин с его знаменитыми «Антоновскими яблоками», пытался поймать дух навсегда ушедшего времени, запечатлеть ушедшую дореволюционную Россию, идеализированную в в
Экзамен по дисциплине «Базы данных» 4 семестр Билет № 6
mastar
: 5 октября 2012
Экзамен
Билет №6
1. Нормализация отношений: понятие, назначение, описание этапов. (привести примеры)
Нормализация БД - получение ее оптимальной структуры путем приведения к виду, обеспечивающему минимальную избыточность и уменьшение потенциальной противоречивости хранимой информации. Устранение избыточности производится за счет декомпозиции отношений - в каждом из них (таблице) должны храниться только первичные факты.
Нормализация БД выполняется пошагово путем преобразования к восьми нормальн
125 руб.