Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы операционных систем.doc
Скачиваний:
282
Добавлен:
01.05.2014
Размер:
2.22 Mб
Скачать

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

В процессе эволюции возникло несколько важных концепций, которые стали неотъемлемой частью теории и практики ОС. Рассматриваемые в данном разделе понятия будут встречаться и разъясняться на протяжении всего курса. Здесь дается их краткое описание.

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

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

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

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

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

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

Прерывания

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