Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дудкин А.К. Конспект лекций по ОСиС / Раздел I. Основы и классификация ОС.doc
Скачиваний:
90
Добавлен:
02.05.2014
Размер:
195.07 Кб
Скачать

2.2. Общий принцип работы ос

Когда ОС запускается, прежде всего, стартует ядро, которое копируется в оперативную память (ОЗУ,RAM). Оно инициализирует все оборудование и загружает остальные модули ОС, которые затем перехватывают управление. Эти составляющие также являются системными программами, которые и выполняют основные функции ОС, перечисленные выше.

Таким образом, основная часть двоичного системного кода находится в оперативной памяти. Все остальные сервисы вызываются по мере необходимости пользователем или другими системными сервисами, например, по расписанию. Пользователь своими действиями может порождать события, воспринимаемые ОС как системный вызов. Системный вызовобращается к ядру, запрашивая у него тот или иной сервис, например, сервис ввода-вывода, то есть доступ к подсистеме ввода-вывода. Так, например, происходит при открытии любого файла.

Общий принцип взаимодействия подсистем:

При работе с периферийными устройствами(к ним относятся и устройства ввода-вывода [input/output], УВВ) ОС в оперативной памяти создает соответствующие буферы, в которые временно помещается обрабатываемый код и данные. Так происходит, например, при обращении к файлам, которые считываются с внешнего запоминающего устройства (ВЗУ) и помещаются в файловый буфер в ОЗУ. Кроме этого, файл помещается в таблицу открытых файлов и ему присевается дескриптор, по которому к нему может обращаться пользовательская программа.

При этом работает часть ядра, называемая подсистемой ввода-вывода. Также происходит и при печати.

2.3. Основные понятия, концепции ос

  1. Системные вызовы

В любой операционной системе поддерживается механизм, который позволяет пользовательским программам обращаться к услугам ядра ОС. В операционных системах наиболее известной советской вычислительной машины БЭСМ-6 соответствующие средства "общения" с ядром назывались экстракодами, в операционных системах IBM они назывались системными макрокомандами и т.д. В ОС Unix такие средства называют системными вызовами.

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

Основное отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode).Поэтому системные вызовы иногда еще называютпрограммными прерываниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.

В этом режиме работает код ядра операционной системы, причем исполняется он в адресном пространстве и в контексте вызвавшей его задачи. Таким образом, ядро операционной системы имеет полный доступ к памяти пользовательской программы, и при системном вызове достаточно передать адреса одной или нескольких областей памяти с параметрами вызова и адреса одной или нескольких областей памяти для результатов вызова.

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