Организация и функционирование компьютеров
bf1271d8

Принципы работы операционной системы


Любая операционная система предполагает, что всеми ее действиями управляет основная программа операционной системы – ядро операционной системы. Ее также называют диспетчером операционной системы. Эта программа всегда хранится в специальной области внешнего носителя (на ПК – на винчестере). При включении компьютера начинают работать зашитые в ПЗУ программы начальной загрузки компьютера, которые после тестирования основных устройств компьютера считывают диспетчер в оперативную память и передают ему управление. С этого момента вплоть до выключения компьютера его работа определяется диспетчером. Механизм этого управления однотипен.

Диспетчер операционной системы получает команды из внешней среды. Это могут быть текстовые команды, набранные на  клавиатуре (как в случае системы MS DOS), или щелчки мышью, как в Windows, или сообщения, полученные от работающих программ. В любом случае диспетчер анализирует команду (или сообщение), находит субъекта этой команды или сообщения (а именно: служебную программу операционной системы (утилиту) или какую-либо пользовательскую программу) и определяет характеристики команды, передающие особенности ее выполнения.

После этого диспетчер команд запускает соответствующую служебную программу ОС или пользовательскую программу, передав ей полученные характеристики в качестве параметров. Термин «запускает» означает следующее. Сначала диспетчер, пользуясь своими таблицами состояния вычислительной системы, определяет, загружена ли эта программа уже в оперативную память или еще нет. Если нет, то в оперативной памяти ищется незанятое место, выделяется участок необходимого размера и затем программа (или ее фрагмент) считывается из внешней памяти в данный участок ОЗУ. Для этого используются таблицы размещения файлов (и в том числе программ) на внешних носителях. При этом загруженная программа снабжается дополнительными программными блоками, которые должны обеспечить возвращение управления к диспетчеру операционной системы после временного или окончательного прекращения работы программы.
После этого управление передается на загруженную программу (с технической точки зрения для этого необходимо всего лишь занести в счетчик команд процессора адрес начала участка, где была размещена загруженная команда).

Подавляющее большинство действий операционная система выполняет по запросам работающих программ. Схема выполнения такого запроса следующая. В том месте программы, где ей необходимо выполнить, например, операцию ввода – вывода или выделения дополнительной оперативной памяти, ставится специальная команда, посылающая процессору так называемое программное прерывание. После этого процессор передает управление на блок обработки прерываний, который входит в состав диспетчера операционной системы, и последний в свою очередь, передает управление собственно диспетчеру. Диспетчер выполняет все вспомогательные действия (поиск или загрузка нужной утилиты, формирование параметров вызова, заполнение стека возврата), после чего передает управление утилите. Утилита выполняет нужные операции, после чего возвращает управление диспетчеру операционной системы. Диспетчер заканчивает операцию (при этом модифицируются таблицы описания текущего состояния вычислительного процесса и файловой системы) и передает управление основной программе, которая продолжает свою работу.

В операционной системе MS DOS диспетчером является программа с именем  COMMAND.COM. На самом деле действие собствено диспетчера не слишком разнообразно и сама программа очень невелика. То же относится к диспетчеру системы Windows (программа с названием WIN.COM).


Содержание раздела