Хелпикс

Главная

Контакты

Случайная статья





Задание 1: Модель планирования процессов



Задание 1: Модель планирования процессов

Описание задания:

Процесс – специальный объект операционной системы, с помощью которого исполняются программы. Процесс также изолирует одни программы от других.

В любой многозадачной системе центральный процессор быстро переключается между процессами, предоставляя каждому из них десятки или сотни миллисекунд. При этом хотя в каждый конкретный момент времени центральный процессор работает только с одним процессом, в течение 1 секунды он может успеть поработать с несколькими из них, создавая иллюзию параллельной работы. Иногда в этом случае говорят о псевдопараллелизме в отличие от настоящего аппаратного параллелизма в многопроцессорных системах (у которых имеется не менее двух центральных процессоров, использующих одну и ту же физическую память). Людям довольно трудно отслеживать несколько действий, происходящих параллельно. Поэтому разработчики операционных систем за прошедшие годы создали концептуальную модель последовательных процессов, упрощающую работу с параллельными вычислениями.

Целью проекта будет разработка упрощенной версии этой модели.

Исходные данные:

Реализуемая модель может содержать в себе несколько следующих классов:

· модель процесса;

· модель менеджера процессов;

· модель планировщика;

· модель операционной системы в целом.

Класс Process

Базовый класс Process моделирует процесс операционной системы. Основные поля класса, необходимые для его построения:

ü IDProcess − идентификатор процесса. Присваивается при активизации процесса в менеджере процессов;

ü Name − название процесса;

ü Status − состояние процесса. Задается перечислением (enum) − ProcessStatus. Принимает одно из четырех значений: Ready, Active, Waiting, Zombie.

ü TimeUsed − время работы процессов - число квантов времени (тиков), на которых процесс был активен;

ü BasePriority − базовый приоритет процесса;

ü CurrentPriority − текущий приоритет процесса;

 Объект класса имеет единственный метод Go(). Он вызывается из класса планировщика (Scheduler), когда процесс получает статус Active. В первой версии его тело примитивно: TimeUsed++.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.