Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
voprosy_1.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
215.65 Кб
Скачать

Операционные системы.

  1. Структура операционной системы. Понятия ядра, пользовательского пространства, системных вызовов.

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

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

На практике в разных системах применяется несколько типов моделей.

  1. Монолитные системы.

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

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

  1. Многоуровневые системы.

Обобщением предыдущего подхода является организация ОС как иерархии уровней.

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

  1. Виртуальные машины.

Разделение реальной машины на несколько виртуальных с предоставлением каждому пользователю своей машины.

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

  1. Экзоядро.

Вариант виртуальной машины. В этой системе реализован принцип обеспечения каждого пользователя абсолютной копией реального компьютера, но с подмножеством ресурсов. Например, одна виртуальная машина может получить блоки на диске с номерами от 0 до 1023, следующая – от 1024 до 2047 и т. д. На нижнем уровне в режиме ядра работает программа – экзоядро (exokernel), в задачу которой входит распределение ресурсов для виртуальных машин и проверка их использования (отслеживание попыток машин использовать чужой ресурс).

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

  1. Модель клиент-сервер.

На машине пользователя работает так называемое «микроядро», обеспечивающее минимальный набор функций, необходимый для общения с серверным процессом (в основном функции ввода-вывода).

Остальные задачи выполняет серверный процесс в режиме разделения времени.

Понятия ядра, пользовательского пространства, системных вызовов.

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

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

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

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

Примеры системных вызовов:

Сети.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]