Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы и стреды лекции.doc
Скачиваний:
78
Добавлен:
16.11.2019
Размер:
180.22 Кб
Скачать

3.Смешанные алгоритмы планирования

В современных ОС планирование основано на квантовании и приоритетном алгоритмах (Windows NT/2000/XP, Unix)

На выполнение выбирается поток с наивысшим приоритетом, которому выделяется квант. Если появляется поток с более высоким приоритетом, то текущий вытесняется

Приоритет потока повышается, если поток не использовал квант (например, при выполнении ввода-вывода).

5.Назначение и типы прерываний.

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

Различают следующие типы прерываний:

  • внешние (аппаратные),

  • внутренние (исключения -exception),

  • программные

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

Программные прерывания не являются "истинными" прерываниями. Они возникают при выполнении определенной команды процессора и применяются в том случае, когда необходимо выполнить некоторые привилегированные действия (например обратится к порту компьютера).

Прерываниям равного значения приписываются уровни приоритетов (уровни - IRQ)

Каждое из прерываний обслуживается обработчиком прерываний (Interrupt Service Routine).

Внешние – обрабатываются драйверами, внутренние – модулями ядра, программные – процедурами из API

Механизм прерываний

Механизм прерываний поддерживается аппаратными и программными средствами ОС Различают векторный (vectored) и опрашиваемый (polled) типы прерываний. В обоих способах процессору передается информация об уровне приоритета.

При векторном типе прерывания в процессор передается также адрес обработчика прерывания

Для векторного типа схема обработки такова: электрический сигнал - запрос на подтверждение - вектор - обработчик (например, для шины VMEbus)

Для опрашиваемого схема обработки такова: сигнал - запрос на подтверждение - уровень приоритета (например, шина ISA). Каждый уровень связан с несколькими устройствами. Вызываются все обработчики данного уровня. Один опознает свое устройство. (Примеры шин: ISA, EISA, MCA, PCi, SBus)

Приоритеты обслуживания могут быть: относительные (обработка прерывания не прекращается при появлении более приоритетного прерывания) и абсолютные.

6.Алгоритмы распределения памяти.

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

1. Алгоритмы распределения памяти без использования внешней памяти

1.1. Самым простым способом управления оперативной памятью является разделение ее на несколько разделов фиксированной величины. Это может быть выполнено вручную оператором во время старта системы или во время ее генерации. Очередная задача, поступившая на выполнение, помещается либо в общую очередь (рисунок 1,а), либо в очередь к некоторому разделу (рисунок 1,б).

Рис. Распределение памяти фиксированными разделами: а - с общей очередью; б - с отдельными очередями

Подсистема управления памятью в этом случае выполняет следующие задачи:

  • сравнивая размер программы, поступившей на выполнение, и свободных разделов, выбирает подходящий раздел,

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

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