- •3) Архитектура unix. Режимы задачи ядра и процесса
- •Массив адресов блоков данных.
- •Структура каталогов.
- •Буферный кэш
- •Заголовок буфера
- •Состояния буферов
- •Пять механизмов операции getblk
- •Преимущества и недостатки кэширования диска
- •1) Вытесняющее (permit)
- •2) Не вытесняющее (non-permit) (Корпоративная многозадачность)
- •(14) Уровни и слои контекста
- •Системные операции, связанные со временем
- •Управление пространством в свопе
- •Выгрузка процесса в своп
- •Загрузка или подкачка процесса
- •Выгрузка
- •Системы смешанного типа со свопингом и подкачкой по запросу
- •Рабочее множество процесса
- •Откачка страниц
- •Процесс старения
- •Обработка ошибок
- •Системы смешанного типа со свопингом и подкачкой по запросу
- •24) Именованные каналы
(14) Уровни и слои контекста
Это вся информация необходимая для его описания.
В контекст процесса не входят текст ядра и глобально-информационные структуры операционной системы.
Слои контекста
Ядро помещает контекстный слой, когда возникает прерывание, или программа делает системный вызов.
Ядро выталкивает контекстный слой, когда происходит завершение обработки прерывания либо возврат в режим задачи, т.е. в состояние 1.
Пять уровней прерываний: машинный сбой (самый высокий уровень); системный таймер; дисковые прерывания; сетевые прерывания; терминальные прерывания; программные прерывания (самый низкий уровень).
(15) Сохранение контекста процесса
Сохранение контекста происходит в следующих случаях:
возникает прерывание
делают системный вызов
происходит переключение контекста
Системный вызов можно рассматривать как внутреннее прерывание операционной системы.
Алгоритм системного вызова:
найти запись в таблице системных функций;
определить число параметров и скопировать их из адресного пространства задачи;
сохранение контекста;
запуск системного вызова;
№ ошибки записывается в регистр общего назначения;
возврат;
восстановление контекста.
Переключение контекста:
процесс переходит в состояние сна ( состояние №4 );
процесс делает системный вызов txit и завершает работу;
процесс переходит в режим задачи после обработки прерывания;
процесс переходит в режим задачи после системного вызова.
Алгоритм переключения контекста:
принять решение о необходимости и допустимости переключения контекста;
сохранить контекст;
выбрать подходящий процесс;
восстановить его контекст.
(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) Работа в режиме реального времени.Системные операции со временем.Таймер
Когда процессы ждут прерывания, они находятся в режиме сна. Приходит прерывание => процессы переходят в режим готовности к запуску.
Режим реального времени подразумевает возможность обеспечения достаточной скорости при обработке внешних прерываний и выполнении отдельных процессов в темпе, соизмеримом с частотой возникновения вызывающих прерывания событий.
Пример режима реального времени: система жизнеобеспечения больного.
Пример режима нереального времени: текстовый редактор.
