Файл: Практические задания.Тема 1. Моделирование работы планировщика потоковpdf.pdf

Добавлен: 20.10.2018

Просмотров: 425

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Практические задания 

Общие требования 

Во всех заданиях необходимо разработать программу, которая моделирует 

работу одного из механизмов многозадачных ОС. Программы могут быть как 

оконными,  так  и  консольными  (с  простейшим  диалогом  на  основе  меню). 

Язык реализации – любой по выбору:  C/C++,  C#,  Java,  Pascal/Delphi. 

 

Тема 1. Моделирование работы планировщика потоков

 

Задание 1  

Написать 

программу, 

моделирующую 

работу 

простейшего 

бесприоритетного  циклического  планировщика  потоков  в  соответствии  со 

следующими условиями: 

1)  каждый  поток  может  находиться  в  одном  из  трех  состояний  – 

готовности к выполнению, выполнения, ожидания; 

2)  приоритеты потоков не используются; 

3)  все имеющиеся в системе ресурсы условно перенумерованы от 1 до 5; 

4)  основные  события:  создание  нового  потока,  завершение  активного 

потока,  блокирование  активного  потока,  разблокирование  одного  или 

нескольких потоков, завершение кванта времени для активного потока; 

5)  создание  нового  потока:  вывод  информационного  сообщения  и 

добавление идентификатора потока в конец списка готовых потоков; 

6)  завершение  активного  потока:  вывод  информационного  сообщения  и 

активизация первого готового к выполнению потока; 

7)  блокирование активного потока: имитация запроса занятого ресурса со 

случайным  номером,  изменение  состояния  потока  и  активизация 

нового потока; 

8)  разблокирование  потоков:  имитация  освобождения  ресурса  со 

случайным  номером  и  изменение  состояния  всех  потоков,  ждущих 

освобождения данного ресурса; 


background image

9)  завершение  кванта  активного  потока:  включение  его  в  конец  списка  и 

активизация нового потока; 

10) 

события  задаются пользователем с выводом текущего состояния 

системы; 

11) 

если готовых к выполнению потоков нет, выводится сообщение о 

бездействии системы. 

 

Задание 2 

Написать 

программу, 

моделирующую 

работу 

простейшего 

приоритетного  планировщика  потоков  в  соответствии  со  следующими 

условиями: 

1)  потоки  могут  находиться  только  в  двух  состояниях    готовности  к 

выполнению и выполнения; 

2)  каждый  поток  имеет  приоритет  от  1  (max)  до  5  (min),  генерируемый 

случайным образом при создании потока; 

3)  запросы ресурсов потоками не производятся; 

4)  все  готовые  к  выполнению  потоки  находятся  в  своих  приоритетных 

очередях; 

5)  для  выполнения  выбирается  первый  по  порядку  поток  в  наиболее 

приоритетной непустой очереди; 

6)  при  появлении  нового  потока  с  более  высоким  приоритетом 

выполнение текущего потока приостанавливается; 

7)  при  приостановке  выполнения  текущего  потока по причине  истечения 

кванта  его  приоритет  уменьшается  на  1  и  он  помещается  в  конец 

соответствующей очереди; 

8)  при приостановке выполнения текущего потока  по причине появления 

более  приоритетного  потока  его  приоритет  увеличивается  на  1  и  он 

помещается в конец соответствующей очереди; 


background image

9)  все  события  (запуск  нового  потока,  завершение  кванта  времени  для 

текущего  активного  потока,  полное  завершение  выполнения  потока) 

задаются пользователем с выводом текущего состояния системы. 

 

Алгоритм обработки события создания нового потока: 

 

сравнить приоритет нового потока с приоритетом выполняемого 

потока; 

 

при необходимости переключить потоки или поместить новый поток в 

конец соответствующей очереди. 

Алгоритм обработки события завершения текущего активного потока: 

 

выбрать для выполнения очередной поток; 

 

если все очереди пусты, вывести сообщение о бездействии системы. 

Алгоритм обработки события истечения кванта времени: 

 

поместить прерываемый поток в конец соответствующей очереди; 

 

выбрать для выполнения очередной поток. 

 

Задание 3 

Написать  программу,  объединяющую  оба  предыдущих  задания  и 

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

состояниями потоков.