Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
NewОтветыОС_1.doc
Скачиваний:
37
Добавлен:
07.02.2015
Размер:
2.67 Mб
Скачать
  1. Планиpование в интеpактивных системах: Лотеpейное планиpование. Спpаведливое планиpование.

«Лотерейное планирование»

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

Более важным процессам можно раздать дополнительные билеты, чтобы увеличить вероятность выигрыша. Если всего 100 билетов и 20 из них находятся у одного процесса, то ему достанется 20 % времени процессора. Каждый процесс получит процент ресурсов, примерно равный проценту имеющихся у него билетов. Взаимодействующие процессы могут при необходимости обмениваться билетами.

Предоставив процессам соответственно 10, 20 и 25 билетов, можно реализовать загрузку процессора в желаемой пропорции 10:20:25.

«Справедливое планирование»

Некоторые системы обращают внимание на хозяина процесса перед планированием. В таких моделях каждому пользователю достается некоторая доля процессора, и планировщик выбирает процесс в соответствии с этим фактом. Если в нашем примере каждому из пользователей было обещано по 50 % процессора, то им достанется по 50 % процессора, независимо от количества процессов.

В качестве примера рассмотрим систему и двух пользователей, каждому из которых отведено по 50 % процессора. У первого пользователя четыре процесса: А, В,

С и D, у второго один процесс Е. Если используется циклическое планирование, цепочка процессов, удовлетворяющая всем требованиям, будет выглядеть следующим образом: AEBECEDEAEBECEDE... С другой стороны, если первому пользователю положено вдвое больше ресурсов, чем второму, мы получим ABECDEABECDE...

  1. Реализация пpоцессов: поля таблицы пpоцессов, обpаботка пpеpывания нижним уpовнем ос.

Для реализации модели процессов операционная система содержит таблицу (массив структур), называемую таблицей процессов, с одним элементом для каждого процесса.

Управление процессом

Регистры, счетчик команд, слово состояния программы, указатель стека, состояние процесса, приоритет, параметры планирования, идентификатор процесса, родительский процесс, группа процесса, сигналы, время начала процесса, использованное процессорное время, процессорное время дочернего процесса, время следующего аварийного сигнала

Управление памятью

Указатель на текстовый сегмент, указатель на сегмент данных, указатель на сегмент стека.

Управление файлами

Корневой каталог, рабочий каталог, дескрипторы файла, идентификатор пользователя, идентификатор группы.

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

Схема обработки прерывания нижним уровнем операционной системы

1. Аппаратное обеспечение сохраняет в стеке счетчик команд и т. п.

2. Аппаратное обеспечение загружает новый счетчик команд из вектора прерываний

3. Процедура на ассемблере сохраняет регистры

4. Процедура на ассемблере устанавливает новый стек

5. Запускается программа обработки прерываний на С. (Она обычно считывает и буферизирует входные данные)

6. Планировщик выбирает следующий процесс

7. Программа на С передает управление процедуре на ассемблере

8. Процедура на ассемблере запускает новый процесс

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]