
- •3) Архитектура unix. Режимы задачи ядра и процесса
- •Массив адресов блоков данных.
- •Структура каталогов.
- •Буферный кэш
- •Заголовок буфера
- •Состояния буферов
- •Пять механизмов операции getblk
- •Преимущества и недостатки кэширования диска
- •(14) Уровни и слои контекста
- •1) Вытесняющее (permit)
- •2) Не вытесняющее (non-permit) (Корпоративная многозадачность)
- •Системные операции, связанные со временем
- •Управление пространством в свопе
- •Выгрузка процесса в своп
- •Загрузка или подкачка процесса
- •Выгрузка
- •Системы смешанного типа со свопингом и подкачкой по запросу
- •Рабочее множество процесса
- •Откачка страниц
- •Процесс старения
- •Обработка ошибок
- •Системы смешанного типа со свопингом и подкачкой по запросу
- •24) Именованные каналы
Системные операции, связанные со временем
stime — устанавливает системное время в секундах, начиная с семидесятого года;
time — выдать время в секундах, начиная с семидесятого года;
times — возвращает суммарное время выполнения процесса и всех его потомков. Нужна для профилирования системы.
alarm — с помощью этого системного вызова процесс посылает себе сигнал будильника;
Пример будильника:
main ( )
{
extern wakeup ( ) ;
signal (SIGALARM, wakeup) ;
while (1) ;
{
alarm (5) ;
pause ( ) ;
}
}
Опишем wakeup, обрабатывающий сигнал будильника:
wakeup ( )
{
printf (“Я проснулся”) ;
}
В цикле заряжаем будильник на пять секунд. Процесс приостанавливается. Через пять секунд приходит сигнал будильника SIGALARM, и мы вызываем wakeup.
Таймер
Функции программы обработки прерываний по таймеру:
Перезапуск часов для выполнения следующего тика.
Вызов на выполнение функций ядра, использующих встроенные часы.
Поддержка возможности выполнения процессов.
time prog1
Программа prog1 вызывается на выполнение, и после выполнения выдаётся сколько секунд она выполнялась.
Сбор статистики о системе и протекающих в ней процессах.
Слежение за временем.
Посылка процессом сигналов будильника по запросу.
Периодическое возобновление процесса подкачки.
Управление диспетчеризацией процессов.
(18) Управление памятью
Рассмотрим как в системе происходит операция свопирования.
Функции подсистемы управления памятью:
Решает какие процессы следует размещать в памяти.
Управляет участниками виртуального пространства.
Переписывает процессы во внешнюю память.
Помещает данные с устройства выгрузки в основную память.
Две стратегии управления памятью:
Свопинг ( swap )
Подкачка по обращению ( demand paging )
Своп — это устройство блочного типа, чаще всего раздел диска.
Если в файловой системе используются суперблоки, то в свопе используется карта памяти устройства.
Карта состоит из строк, в которых содержится адрес распределяемого ресурса и количество единиц этого ресурса. Рассмотрим три основных функции свопинга :
Управление пространством в свопе ( на устройстве выгрузки ).
Выгрузка процессов.
Подкачка процессов.
Demand paging
Основная память обменивается с внешней памятью не процессами, а страницами.
Этот способ должен иметь аппаратную поддержку : страничную организацию памяти и центральный процессор, имеющий прерываемые команды.
Отсутствуют ограничения на размер процесса, обусловленные объёмом физической памяти.
Системы смешанного типа со свопингом и подкачкой по запросу
Несмотря на то, что подкачка по запросу отличается гибкостью, возможна ситуация, когда сборщик страниц не сможет достаточно быстро освободить место в памяти из-за того, что все страницы принадлежат рабочему множеству процессов. Выход из этого в том, чтобы комбинировать подкачку по запросу и свопинг.
Когда ядро не может выделить процессу страницы памяти, оно возобновляет работу процесса подкачки и переводит процесс в состояние эквивалентное готовности к запуску будучи зарезервированным.
(19) Свопинг
Рассмотрим три основных функции свопинга :
Управление пространством в свопе ( на устройстве выгрузки ).
Выгрузка процессов.
Подкачка процессов.