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

(14) Уровни и слои контекста

Это вся информация необходимая для его описания.

В контекст процесса не входят текст ядра и глобально-информационные структуры операционной системы.

Слои контекста

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

Ядро выталкивает контекстный слой, когда происходит завершение обработки прерывания либо возврат в режим задачи, т.е. в состояние 1.

Пять уровней прерываний: машинный сбой (самый высокий уровень); системный таймер; дисковые прерывания; сетевые прерывания; терминальные прерывания; программные прерывания (самый низкий уровень).

(15) Сохранение контекста процесса

Сохранение контекста происходит в следующих случаях:

  • возникает прерывание

  • делают системный вызов

  • происходит переключение контекста

Системный вызов можно рассматривать как внутреннее прерывание операционной системы.

Алгоритм системного вызова:

  1. найти запись в таблице системных функций;

  2. определить число параметров и скопировать их из адресного пространства задачи;

  3. сохранение контекста;

  4. запуск системного вызова;

  5. № ошибки записывается в регистр общего назначения;

  6. возврат;

  7. восстановление контекста.

Переключение контекста:

  • процесс переходит в состояние сна ( состояние №4 );

  • процесс делает системный вызов txit и завершает работу;

  • процесс переходит в режим задачи после обработки прерывания;

  • процесс переходит в режим задачи после системного вызова.

Алгоритм переключения контекста:

  1. принять решение о необходимости и допустимости переключения контекста;

  2. сохранить контекст;

  3. выбрать подходящий процесс;

  4. восстановить его контекст.

(16) Диспетчеризация процессов

Планирование процессов бывает 2 типов:

1) Вытесняющее (permit)

дальше написано

2) Не вытесняющее (non-permit) (Корпоративная многозадачность)

Процесс использует ресурсы ЦП столько, сколько ему нужно.

Решение о том, что нужно включить планировщик, который выберет другой процесс, принимается самими процессом ; либо процесс переходит в состояние сна (планировщик включается автоматически)

+ простота реализации

+ малые накладные расходы на /хз че написано/

- при зависании или заклинивании процесса система останавливается полностью

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

Квант времени (~10 мс) отмеряется с помощью таймера (входит в состав чипсета

От таймера приходит прерывание на ЦП (тики). У таймера прерывание №1

+ приемлемое время отклика для пользователя в диалоговом режиме

+ предотвращает зависание системы из-за заклинивания приложения

Алгоритмы планирования:

* First Come First Served (первый пришел первый обработан) FCFS

Готовые процессы объединяются в очередь FIFD (первый пришел первый ушел)

Применяется для корпоративной многозадачности

Процессы выполняются по очереди, процесс выполняется пока не исчерпывается его CPU Burst время

--------- ------ ------ (10+15+17)/3=4 - среднее время выполнения

----| 10 |----| 5 |----| 2 |------ (0+10+15)/3=8 - среднее время ожидания

--------- ------ ------

* Round Robin (Карусель)

В

*Готовые к выполнению процессы помещаются в карусель, каждый выполняется квант времени

*Если квант времени будет слишком большим, система вырождается в FIFO

*Если квант времени делать очень маленьким, то получится, что каждому достается кусочек и производительность упадет в 4 раза

ычисляющая многозадачность

* Shortest Job First (Короткий вперед)

/CPU Burst/ - время между засыпаниями. У кого меньше, тот процесс и планируется первым. Будут в основном работать медленнее процессы, т.к они чаще засыпают.

2 5 10 (0+2+7)/3=3 – среднее время ожидания

* Гарантированное планирование

Процессорное время равномерно распределяется между всеми процессами

*Приоритетное планирование

Каждому процессу присваивается приоритет, в соответствии с которым выделяется время ЦП

В Unix используется nice для повышения приоритета

Выставление системой приоритетов зависит от: 1) СPU Burst; 2) Число открытых файлов; 3) Состав устройств ввода-вывода, с которыми работает процесс; 4) Требования к оперативной памяти

*Многоуровневая очередь

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

Для разных групп могут применяться разные алгоритмы планирования

Пример: (RR-round robin) |пр0 сиcтемные процессы RR|---|пр1 процессы ректората RR|---|пр2 пр. препод. RR|---|пр3 фоновые пр. FCFS|---|пр4 процессы студентов RR|

Переключение между группами никак не происходит, т.е пока очереди высшего уровня, на нижний не переходим.

Многоуровневые очереди с обр. связью – в зависимости от поведения процессы могут мигрировать из одной очереди в другую

*Системы реального времени

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

Примеры: жизнеобеспечение больных, система управления самолетами, управление атомными реакторами

(17) Работа в режиме реального времени.Системные операции со временем.Таймер

Когда процессы ждут прерывания, они находятся в режиме сна. Приходит прерывание => процессы переходят в режим готовности к запуску.

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

Пример режима реального времени: система жизнеобеспечения больного.

Пример режима нереального времени: текстовый редактор.