Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БИЛЕТ- ОТВЕТ.doc
Скачиваний:
7
Добавлен:
24.09.2019
Размер:
417.79 Кб
Скачать

2. Архитектура и структура операционных систем: Системные вызовы, привилегированный режим, режим ядра, пользовательский режим, posix, ieee.

Интерфейс между операционной системой и программами пользователя определяется набором системных вызовов, представляемых операционной системой.

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

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

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

В целях унификации программного интерфейса для различ­ных реализаций (клонов) операционной системы UNIX был разра­ботан интерфейс POSIX (Portable System Interface for Computing Environment - интерфейс переносимой операционной системы для вычислительной среды). Разработанный стандарт POSIX 1003.1-1988 определил интерфейс приложений (Application Programming Interface, API). Позже он был принят как стандарт IEEE 1003.1-1990. Наиболее современная версия стандарта POSIX в редакции 2003 г. является стандартом ISO/IES 9945. Этот стандарт нашел широкое применение во многих операционных системах, в том числе и с архитектурой, отличной от UNIX. Надо заметить, что он не делает различия между системными вызовами и библиотечными функ­циями, называя все элементы программного интерфейса просто функциями.

3. Управление вводом-выводом: Структура системы ввода-вывода, типичные функции hal.

Сверху вниз:

1)програмное обеспечение ввода-вывода уровня пользователя,

2)аппаратно-независимая часть подсистемы ввода-вывода ОС

3)драйверы устройств

4)обработчики прерываний

5)аппаратура

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

(не обязательно) Вот перечень лишь нескольких направлений (далеко не пол­ный), по которым различаются устройства:

  • скорость обмена данных может варьироваться в диапазоне от нескольких байт в секунду (клавиатура) до нескольких гига­байт в секунду (сетевые карты);

  • некоторые устройства могут быть использованы параллельно несколькими процессами (являются разделяемыми), в то время как другие требуют монопольного захвата процессом;

  • устройства могут запоминать выведенные данные для ее по­следующего ввода или не обладать этой функцией. Устройст­ва, запоминающие данные, в свою очередь, могут дифферен­цироваться по формам доступа к сохраненным данным: обес­печивать к ней последовательный доступ в жестко заданном порядке или уметь находить и передавать только необходи­мую порцию данных;

  • часть устройств умеет передавать данные только по одному байту последовательно (символьные устройства), а часть уст­ройств умеет передавать блок байтов как единое целое (блоч­ные устройства);

  • существуют устройства, предназначенные только для ввода данных, устройства, предназначенные только для вывода дан­ных, и устройства, которые могут совершать и ввод и вывод.

Hardware Abstraction Layer (HAL, Слой аппаратных абстракций) — слой абстрагирования, реализованный в программном обеспечении, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, запускаемом на этом компьютере. HAL предназначен для скрытия различий в аппаратном обеспечении от основной части ядра операционной системы, таким образом чтобы большая часть кода, работающая в режиме ядра не нуждалась в изменении при её запуске на системах с различным аппаратным обеспечением. На персональных компьютерах HAL, по существу, может рассматриваться как драйвер материнской платы, позволяющий взаимодействовать инструкциям высокоуровневых языков программирования с низкоуровневыми компонентами, такими как аппаратное обеспечение.

БИЛЕТ №4