- •Структура и основные компоненты вычислительной системы
- •Структура эвм:
- •Система прерываний.
- •Алгоритм чтения из оперативной памяти следующий:
- •Понятие ос
- •1. Классификация операционных систем
- •2. Особенности областей использования операционных систем
- •3. Управление процессами
- •3.1. Состояние процессов
- •3.2. Алгоритмы планирования процессов
- •3.3. Вытесняющие и невытесняющие алгоритмы планирования
- •3.4. Функции планировщика-диспетчера
- •3.4.1 Приостановка процесса
- •3.4.2. Отсрочка процесса
- •3.4.3. Активизация процесса
- •3.4.4. Ведущие и разделяемые процессами планировщики-диспетчеры
- •4. Средства синхронизации и взаимодействия процессов
- •4.1. Проблема синхронизации
- •4.2. Критическая секция
- •4.3. Синхронизация процессов на основе семафорных операций
- •5. Управление памятью
- •5.1. Типы адресов
- •5.2. Методы распределения памяти с использованием дискового пространства. Виртуальная память
- •5.3. Страничное распределение
- •5.4. Сегментное распределение
- •5.5. Сегментно-страничное распределение
- •5.6. Свопинг
- •5.7. Процессы и нити в распределенных системах
- •Машинные языки Какие у машинных языков достоинства и недостатки?
- •Что такое язык ассемблера?
- •В чем преимущества алгоритмических языков перед машинными?
- •Формализация типов ос (классификация) ос
3.4. Функции планировщика-диспетчера
Во многих ОС эти функции могут быть представлены неразрывной последовательностью, поэтому введем термин планировщик-диспетчер.
Планировщик - это программа, ответственная за постановку процессов в очередь-на-выполнение и управляющая этой очередью.
Диспетчер - это программа, которая выбирает процессы из очереди-на-выполнение, переводит их в активное состояние и передает им контроль над CPU.
Основная функция - возможность управлять действиями большого числа процессов.
3.4.1 Приостановка процесса
В ходе своего выполнения системный процесс может установить, что требуемый ресурс занят или в данный момент процессу не требуется производить каких-либо действий. Тогда процесс может "сознательно"приостановить свое выполнение до момента активизации его другим процессом. При этой процедуре адрес блока управления процессом (БУП) записывается в стек, затем для активизации другого процесса вызывается системный планировщик. Результатом этого действия является то, что "приостановленный" процесс не помещается в очередь-на-выполнение, т.е. не активизируется.
Алгоритм "Приостановить процесс"
-
НАЧАЛО
-
Анализ прерывания
-
procedure "ПРИОСТ"
-
IF1<приостанавлемй процесс не является системным и находится в ОП>
-
блокировать процесс по условию выгрузки из ОП
-
IF2<есть свободный блок запроса в очереди приостановок>
-
создать блок запроса в очереди приостановок
-
разблокировать процесс "откачки"
-
формровать код возврата по удачному завершению
-
передать управление диспетчеру
-
FI2
-
формирование кода возврата по перегрузке системы
-
передать управление диспетчеру
-
FI1
-
формировать код возврата по невозможности приостановки
-
передать управление диспетчеру
-
КОНЕЦ
Рис. 3. Схемы очередей блоков управления процессами до а. и после б. "приостановки".
3.4.2. Отсрочка процесса
При выполнении длинных кодовых инструкций процесс может надолго занять CPU. Это означает, что за исключением прерываний никакой другой процесс не имеет доступ к CPU. Для облегчения доступа к CP процесс может осуществить повторное планирование, тем самым "отсрочить" свое выполнение.
При отсрочке процесса адрес блока управления помещается в стек процесса. Затем процесс выдает запрос на планирование, вызывая процедуру "Активизировть", с указанием адреса собственного БУП (блока управления процессом). Планировщик- диспетчер выбирает на выполнение следующий процесс из очереди.
-
НАЧАЛО
-
Анализ прерывания
-
procedure "ВОЗОБНОВИТЬ"
-
IF1<процесс не системный и был выгружен из ОП>
-
IF2<есть свободные блоки запросов в очереди возобновлений>
-
поместить блок запроса в очередь возобновлений
-
разблокировать процесс подкачек
-
блокировать процесс по условию загрузки в ОП
-
формировать код возврата по удачному завершению
-
переход к диспетчеру
-
FI2
-
формирование кода возврата по перегрузке системы
-
переход к диспетчеру
-
FI1
-
формировать код возврата по невозможности приостановки
-
переход к диспетчеру
-
КОНЕЦ