Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Формулировка задания на разработку программы

Теоретическая часть

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

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

Существует четыре основных события для создания процесса [4]:

·   инициализация системы

·   создание процессом

·   создание пользователем

·   инициализация пакетного задания

При запуске операционной системы сразу создается несколько процессов. Некоторые из них являются высокоприоритетными, взаимодействующими с пользователем и выполняющие для него определенную работу. Остальные являются фоновыми процессами и выполняют ряд специфических функций. Фоновые процессы называются демонами. У больших систем насчитываются десятки демонов.

В системах Unix для создания процесса существует единственный системный вызов fork. В системе Windows для этого используется функция CreateProcess.

Завершение процесса происходит после одного из следующих событий[2]:

·   обычного выхода (добровольно)

·   при возникновении ошибки (добровольно)

·   возникновение фатальной ошибки (принудительно)

·   уничтожение другим процессом (принудительно)

За время своего существования процесс может находиться в различных состояниях:

·   выполняемый (команды программы выполняются в процессоре)

·   ожидающий (процесс ожидает завершения некоторого события, чаще всего операции ввода - вывода)

·   готовый (процесс ожидает освобождения процессора, занятого другим процессом)

·   завершенный (процесс завершил свою работу)

Планирование процессов

Для реализации процессов операционные системы используют таблицу, называемую таблицей процессов, в которой каждая запись соответствует одному из процессов. Эти записи содержат данные по каждому из процессов, такие как: приоритет, внутренний счетчик команд, состояние процесса, указатель стека, распределение памяти, состояние открытых им файлов и всю остальную информацию, относящуюся к процессу, для возможности быстрого переключения процесса в различные состояния.

При работе компьютера возникает необходимость в планировщике - программе, отвечающей за создание очереди процессов, находящихся в состоянии готовности. Основная цель планировщика заключается в распределении времени процессоров между выполняющимися процессами. Поскольку процессорное время является дефицитным ресурсом, то к разработке алгоритма планирования подходят очень серьезно, т. к. от его эффективности зависит производительность системы.

Планировщик, кроме выбора процесса, должен также эффективно распределять загрузку центрального процессора.

В операционных системах универсального назначения планирование является динамическим, т.е. решение принимается во время работы системы на основе анализа текущей ситуации. В данном случае, найденное решение почти ни когда не бывает оптимальным.

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

При планировании процессов применяются следующие алгоритмы:

«Первый пришел - первым обслужен», является наипростейшим из всех алгоритмов. Приоритет процесса не учитывается. Центральный процессор предоставляется каждому из процессов в порядке поступления запросов. При блокировке выполняемого процесса, запускается следующий процесс, стоящий в очереди. Когда заблокированный процесс переходит в состояние готовности, он поступает в конец очереди.

«Наименьший срок исполнения», является неприоритетным алгоритмом, учитывающим время исполнения процесса. При поступлении заявок, в первую очередь обрабатываются процессы с наименьшим временем исполнения. Данный алгоритм оптимален, если все задания доступны одновременно.

«Циклическое планирование». Каждому процессу назначается определенный квант времени для использования процессора. При истечении кванта времени выполняемый процесс блокируется, управление передается следующему процессу.

«Приоритетное планирование». Каждому процессу присваивается определенный приоритет, в зависимости от которого, он занимает место в очереди. В данной курсовой работе используется приоритетное планирование.

 


Описание программы

Процесс программа приоритет квант

Формулировка задания на разработку программы

 

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

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

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

·   поток заявок на выполнение процессов (имя заявки, время поступления, приоритет, время исполнения).

2. Результаты работы модели, отображаемые на дисплее, должны для каждого момента времени, когда состояние системы изменяется, включать номер обслуживаемого процесса или фиксировать режим ожидания, а так же список процессов, составляющих очередь. Кроме этого возможна графическая интерпретация результатов работы программы, например в виде диаграммы выполнения процессов.


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...