Разработка операционных системРефераты >> Программирование и компьютеры >> Разработка операционных систем
3. завершение операции ввода - вывода
4. неправильное обращение к памяти
Каждое прерывание обрабатывается соответственно обработчиком прерываний (Interrupt handler), входящим в состав ОС.
Главные функции механизма прерываний — это:
1. распознавание или классификация прерываний
2. передача управления соответственно обработчику прерываний
3. корректное возвращение к прерванной программе
Переход от прерываемой программы к обработчику и обратно должен выполняться как можно быстрей. Одним из быстрых методов является использование таблицы, содержащей перечень всех допустимых для компьютера прерываний и адреса соответствующих обработчиков. Такая таблица называется вектором прерываний (Interrupt vector) и хранится в начале адресного пространства основной памяти (UNIX/MS DOS).
Для корректного возвращения к прерванной программе перед передачей управления обработчику прерываний, содержимое регистров процессора запоминается либо в памяти с прямым доступом либо в системном стеке — System Stack.
Обычно запрещаются прерывания обработчика прерываний. Однако, в некоторых ОС прерывания снабжаются приоритетами, то есть работа обработчика прерывания с более низким приоритетом может быть прервана, если произошло прерывание с более высоким приоритетом.
1. Управление процессами.
Процесс — это программный модуль, выполняемый в CPU. Операционная система контролирует следующую деятельность, связанную с процессами:
1. создание и удаление процессов
2. планирование процессов
3. синхронизация процессов
4. коммуникация процессов
5. разрешение тупиковых ситуаций
1.1 Понятие Процесс. Состояния процесса.
Не следует смешивать понятия процесс и программа. Программа - это план действий, а процесс — это само действие. Понятие процесс включает:
1. программный код
2. данные
3. содержимое стека
4. содержимое адресного и других регистров CPU.
Таким образом, для одной программы могут быть созданы несколько процессов, в том случае, если с помощью одной программы в компьютере выполняется несколько несовпадающих последовательностей команд. За время существования процесс многократно изменяет свое состояние.
|
Различают следующие состояния процесса:
1. новый (new, процесс только что создан)
2. выполняемый (running, команды программы выполняются в CPU)
3. ожидающий (waiting, процесс ожидает завершения некоторого события, чаще всего операции ввода - вывода)
4. готовый (ready, процесс ожидает освобождения CPU)
5. завершенный (terminated, процесс завершил свою работу)
Переход из одного состояния в другое не может выполняться произвольным образом. На рисунке приведена типовая диаграмма переходов для состояний процессора.
Выполняемый |
ожидаемый, готовый |
Выполняемый | ||||||
| ||||||||
готовый |
Выполняемый |
готовый | ||||||
| ||||||||
ожидаемый, готовый |
Выполняемый |
ожидаемый | ||||||
|
time |
Каждый процесс представлен в операционной системе набором данных, называемых process control block . В process control block процесс описывается набором значений, параметров, характеризующих его текущее состояние и используемых операционной системой для управления прохождением процесса через компьютер.
На рисунке схематически показано, каким образом операционная система использует process control block для переключения процессора с одного процесса на другой.
Заголовок | ||||||||
Процессы |
первый |
PCB7 |
PCB8 | |||||
в состоянии | ||||||||
“готовый” |
последний | |||||||
| ||||||||
Очередь к |
первый | |||||||
магнитной | ||||||||
ленте |
последний | |||||||
Очередь |
первый |
PCB3 |
PCB14 |
PCB6 | ||||
к | ||||||||
диску №1 |
последний | |||||||
| ||||||||
Очередь к |
первый |
PCB5 | ||||||
терминалу | ||||||||
№ 1 |
последний |