Лабораторная работа №4 по дисциплине: «Операционные системы»

Цена:
100 руб.

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

material.view.file_icon
material.view.file_icon Лабораторная работа 4.doc
material.view.file_icon
material.view.file_icon LAB4.EXE
material.view.file_icon LAB4.PAS
material.view.file_icon Лабораторная работа 4 рецензия.doc

Необходимые программы

Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

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

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

Уважаемый студент, дистанционного обучения,
Оценена Ваша работа по предмету: Операционные системы
Вид работы: Лабораторная работа 4
Оценка:Зачет
Дата оценки: 08.02.2017
Рецензия:

Бах Ольга Анатольевна
ЛАБОРАТОРНАЯ РАБОТА №4 по дисциплине «Операционные системы»
1. Постановка задачи. Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”.
User mike_vorn : 30 сентября 2014
680 руб.
Лабораторная работа № 4 по дисциплине "Операционные системы".
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
User Greenberg : 11 марта 2012
79 руб.
Лабораторная работа №4 по дисциплине: Операционные системы. Для всех вариантов.
Лабораторная работа №4: Эмуляция работы параллельных процессов на примере схемы “производитель–потребитель” Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности
User IT-STUDHELP : 23 апреля 2017
38 руб.
Лабораторная работа №4 по дисциплине: Операционные системы. Для всех вариантов. promo
Лабораторная работа №4 по дисциплине: Операционные системы. Вариант №7
Задание Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из э
User Jack : 28 января 2014
300 руб.
Лабораторная работа № 4 по дисциплине: Операционные системы. Вариант №1
Постановка задачи. Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему «производитель – потребитель». Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает
User xtrail : 2 апреля 2013
200 руб.
Лабораторная работа №4 по дисциплине "Операционные системы". Вариант №3.
Постановка задачи: Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает
User hunter911 : 15 сентября 2012
100 руб.
Лабораторная работа № 4 по дисциплине: «Операционные системы, среды и оболочки»
«Управление доступом к файловым ресурсам» Цель работы: Освоение навыков управления доступом пользователей к файлам и папкам с целью защиты информации от несанкционированного доступа 1. Создадим папку, в которую поместите текстовый файл и приложение в виде файла с расширением exe. Например, одну из стандартных программ Windows, такую как notepad.exe (Блокнот).
User gargona : 2 мая 2012
Лабораторная работа №4 по дисциплине: Операционные системы. 3-й семестр
Написать программу, которая будет эмулировать параллельную работу некоторых потоков. Потоки должны работать циклически. В качестве модели использовать схему “производитель – потребитель”. Один поток (производитель) может помещать случайные (или какие-то определенные – например, только четные числа или квадраты целых чисел и т.п.) числа в буфер (массив заданного размера), для наглядности поток-производитель должен эти числа выводить на экран. Другой поток (потребитель) забирает числа из этого буф
User saharok : 13 января 2014
69 руб.
Программирование на языке высокого уровня (часть 2). Лабораторная работа № 4. Вариант № 9
Задание1. Создать массив структур и выполнить задание согласно своему варианту Вариант задания Дана информация о шести студентах. Структура имеет вид: фамилия, год рождения, место рождения, факультет. Вывести данные о старших по возрасту студентах, предполагая, что год рождения может быть одинаков.
User TechUser : 29 октября 2013
50 руб.
Программирование (часть 2). Программирование на языках высокого уровня. Контрольная (Курсовая) работа. Вариант №5
Тема: Двусвязные списки Задание Разработать программу для создания и работы с двусвязным списком, состоящим из структур. Для работы со списком создать меню со следующими пунктами: 1. Создание списка. 2. Просмотр списка. 3. Добавление в список новой записи. 4. Поиск и корректировка записи в списке. 5. Удаление записи из списка. 6. Сохранение списка в файле. 7. Загрузка списка из файла. 8. Выход. Структура содержит название товара, цену единицы товара, количество товара. Удалять из списка заданный
User sibguter : 5 июня 2018
49 руб.
Философия. Контрольная работа. (1-й семестр)
1."Материалистами называются философы, которые признают лишь существование материальных вещей и тел" /Вольф Х./ Можно ли согласиться с этим определением? 2. Проанализируйте приведенные ниже высказывания о предмете философии 1.Какое содержание вкладывается философией в понятие "бытие"? 2. Эквивалентны ли суждения? Обоснуйте свой ответ. Определите, против каких философских течений направлены различные части определения материи: Философ утверждает, что мир состоит из элементов, причем элементы по
User IvanDivan : 9 февраля 2015
125 руб.
Разработка автоматизированной системы управления "Трехмерная печать"
Содержание Введение Системный анализ и анализ требований Рамки системы Исполнители и задачи Дополнительная спецификация Словарь терминов Модель предметной области Модель проектирования Диаграмма деятельности Диаграмма взаимодействия Диаграмма последовательностей Диаграмма сотрудничества (кооперации) Диаграмма классов Модель данных Модель реализации Заключение Введение В рамках курсового проектирования необходимо разработать и реализовать автоматизированную информационную систему
User Slolka : 7 октября 2013
10 руб.
up Наверх