ТЕОРИЯ ОПЕРАЦИОННЫХ СИСТЕМ
Введение. Основные понятия и определения.
Операционная система - это программа, которая выполняет функции посредника между пользователем и компьютером.
ОС, выполняя роль посредника, служит двум целям:
эффективно использовать компьютерные ресурсы.
создавать условия для эффективной работы пользователя
В качестве ресурсов компьютера обычно рассматривают:
время работы процессора
адресное пространство основной памяти
оборудование ввода - вывода
файлы, хранящиеся во внешней памяти
На рисунке приведены основные компоненты ОС как системы разделения ресурсов.
Таким образом, основные компоненты ОС:
управление процессами (распределяет ресурс процессорное время);
управление памятью (распределяет ресурс адресное пространство основной памяти);
управление устройствами (распределяет ресурсы) оборудование ввода-вывода;
управление данными (распределяет ресурс данные или файлы).
Функционирование компьютера после включения питания начинается с запуска программы первоначальной загрузки Boot Track. Программа Boot Track инициализирует основные аппаратные блоки компьютера и регистры процессора (CPU), накопитель памяти, контроллеры периферийного оборудования. Затем загружается ядро ОС, то бишь Operating System Kernel. Дальнейшее функционирование ОС осуществляется как реакция на события, происходящие в компьютере. Наступление того или иного события сигнализируется прерываниями - Interrupt. Источниками прерываний могут быть как аппаратура (HardWare), так и программы (SoftWare).
Аппаратура сообщает о прерывании асинхронно (в любой момент времени) путем пересылки в CPU через общую шину сигналов прерываний. Программа сообщает о прерывании путем выполнения операции SystemCall. Примеры событий, вызывающих прерывания:
попытка деления на 0
запрос на системное обслуживание
завершение операции ввода - вывода
неправильное обращение к памяти
Каждое прерывание обрабатывается соответственно обработчиком прерываний (Interrupt handler), входящим в состав ОС.
Главные функции механизма прерываний это:
распознавание или классификация прерываний
передача управления соответственно обработчику прерываний
корректное возвращение к прерванной программе
Переход от прерываемой программы к обработчику и обратно должен выполняться как можно быстрей. Одним из быстрых методов является использование таблицы, содержащей перечень всех допустимых для компьютера прерываний и адреса соответствующих обработчиков. Такая таблица называется вектором прерываний (Interrupt vector) и хранится в начале адресного пространства основной памяти (UNIX/MSDOS).
Для корректного возвращения к прерванной программе перед передачей управления обработчику прерываний, содержимое регистров процессора запоминается либо в памяти с прямым доступом либо в системном стеке SystemStack.
Обычно запрещаются прерывания обработчика прерываний. Однако, в некоторых ОС прерывания снабжаются приоритетами, то есть работа обработчика прерывания с более низким приоритетом может быть прервана, если произошло прерывание с более высоким приоритетом.
1. УПРАВЛЕНИЕ ПРОЦЕССАМИ.
Процесс это программный модуль, выполняемый в CPU. Операционная система контролирует следующую деятельность, связанную с процессами:
создание и удаление процессов
планирование процессов
синхронизация процессов
коммуникация процессов
разрешение тупиковых ситуаций
1.1 ПОНЯТИЕ ПРОЦЕСС. СОСТОЯНИЯ ПРОЦЕССА
Не следует смешивать понятия процесс и программа. Программа это план действий, а процесс это само действие. Понятие процесс включает:
программный код
данные
содержимое стека
содержимое адресного и других регистров CPU.
Таким образом, для одной программы могут быть созданы несколько процессов, в том случае, если с помощью одной программы в компьютере выполняется несколько несовпадающих последовательностей команд. За время существования процесс многократно изменяет свое состояние.
Различают следующие состояния процесса:
новый (new, процесс только что создан)
выполняемый (running, команды программы выполняются в CPU)
ожидающий (waiting, процесс ожидает завершения некоторого события, чаще всего операции ввода - вывода)
готовый (ready, процесс ожидает освобождения CPU)
завершенный (terminated, процесс завершил свою работу)
Переход из одного состояния в другое не может выполняться произвольным образом. На рисунке приведена типовая диаграмма переходов для состояний процессора.
Каждый процесс представлен в операционной системе набором данных, называемых process control block . В process control block процесс описывается набором значений, параметров, характеризующих его текущее состояние и используемых операционной системой для управления прохождением процесса через компьютер.
На рисунке схематически показано, каким образом операционная система использует process control block для переключения процессора с одного процесса на другой