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

1.2. Операционная и программная среды

В любой операционной системе имеется некоторая самая главная программа, которая управляет всеми другими выполняющимися программами. Эта программа называется супервизором.

Все программы пользователей для получения доступа к различным ресурсам обращаются к супервизору. Обращения программ для получения системных функций и сервисов называются системными запросами. Совокупность системных вызовов и правил их применения называется интерфейсом прикладного программирования (API).

Набор функций и сервисов, предоставляемых операционной системой, а также правил обращения к ним называется операционной средой. Программа, созданная для работы в некоторой операционной системе, вряд ли будет работать в другой. Причина отказа от работы в том, что, скорее всего, у неё будет другой API. Однако программным способом можно создать в другой операционной системе необходимое подмножество программ, которые будут посредниками между переносимой программой и операционной системой и создадут промежуточный API. Такое подмножество программ называется программной средой. Именно за счёт множества программных сред операционная система Windows XP способна выполнять 16-разрядные приложения, написанные под MS DOS, Windows 3.х и первую версию OS/2.

1.3. Очередь и стек

Очередь и стек – это особые формы организации памяти с автоматическим определением адресов записи чтения данных. Для их организации используются ячейки памяти со смежными адресами, т.е. расположенные в запоминающем устройстве одна за другой, и специальные ячейки для хранения адресов размещаемых в них и извлекаемых из них данных (рис. 1.2). Цифрам в таблице обозначены данные, помещённые в очередь или стек, Д1 – записываемые данные, Д2 – извлекаемые данные, А1 и А2 – адреса начала и конца очереди или стека, L – длина очереди в байтах.

Очередь организуется по принципу первым "пришёл – первым ушёл", т.е. записываемые данные ставятся в конец очереди, а читаемые – в начало. По мере чтения данных происходит продвижение оставшихся данных на одну позицию вправо. Это напоминает обычную очередь на обслуживание, например, живую очередь в кассу магазина. В специальных ячейках памяти хранятся адреса начала очереди и её конца. Возможно вычисление адреса извлекаемых данных по адресу начала очереди А1 и длине очереди в байтах L.

а)

б)

Рис. 1.2. Организация очереди (а) и стека (б)

Стек организуется по принципу "последний пришёл – первый ушёл" и напоминает детскую пирамидку – основание и перпендикулярный к нему стержень, на который надеваются кольца. Адрес А1 называется вершиной стека. При записи данных в стек адрес увеличивается на длину данных и стек наращивается в сторону увеличения адреса, т.е. длина стека растёт влево.

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