Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ НА ОС(полные).doc
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
631.81 Кб
Скачать
  1. Микроядерная архитектура операционной системы.

2. Микроядерная

Servers of processes, memory, print) and apps

^

|| //типа двусторонняя стрелочка

V

Базовые механизмы

HAL

|| Hard Что значит перезагрузить ОС? Выгрузить из памяти и загрузить назад ядро

Soft app____ __app_ __app_

OS \______/ \_______/

Ядро ядро

Микроядерная менее надежна и менее безопасна, чем монолитная

FreeBDSM – пример микроядерной архитектуры

  1. Понятие процесса, потока, нити, задания.

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

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

Процессы могут быть объединены в задание (task - win)/ Control group (linux). Задания могут быть ограниченны ресурсами и временем исполнения, etc.

Мы считаем, что один процесс реализован в рамках одного потока.

Особенности реализации Windows

Используется четыре понятия:

  • Задание - набор процессов с общими квотами и лимитами

  • Процесс - контейнер ресурсов (память ...), содержит как минимум один поток.

  • Поток - именно исполняемая часть, планируемая ядром.

  • Волокно - облегченный поток, управляемый полностью в пространстве пользователя. Один поток может содержать несколько волокон.

Потоки работают в режиме пользователя, но при системных вызовах переключаются в режим ядра. Из-за переключения в режим ядра и обратно, очень замедляется работа системы. Поэтому было введено понятие волокна. У каждого потока может быть несколько волокон.)

  1. Функции подсистемы управления процессами.

Система управления задачами; функции: (Подсистема управления процессами и ее функции)

  1. Создание процессов.

  2. Обеспечение процесса необходимыми ресурсами – изначальное и динамическое.

  3. Изоляция процессов.

  4. Планирование выполнения процессов.

  5. Диспетчеризация процессов.

  6. Организация межпроцесного взаимодействия.

  7. Синхронизация процессов.

  8. Завершение и уничтожение процессов.

  1. Методы создания процессов.

(Linux) Процесс порождается с помощью системного вызова fork(). При этом вызове происходит проверка на наличие свободной памяти, доступной для размещения нового процесса. Если требуемая память доступна, то создается процесс-потомок текущего процесса, представляющий собой точную копию вызывающего процесса. Этому процессу присваивается новый уникальный идентификатор, а идентификатор родительского процесса запоминается в блоке управления процессом (PCB).

Создание Win32 процесса осуществляется вызовом одной из таких функций, как CreateProcess, CreateProcessAsUser (для Win NT/2000) и CreateProcessWithLogonW (начиная с Win2000) и происходит в несколько этапов:

- Открывается файл образа (EXE), который будет выполняться в процессе. Если исполняемый файл не является Win32 приложением, то ищется образ поддержки (support image) для запуска этой программы. Например, если исполняется файл с расширением .bat, запускается cmd.exe и т.п.

- Создается объект Win32 "процесс".

- Создается первичный поток (стек, контекст и объект "поток").

- Подсистема Win32 уведомляется о создании нового процесса и потока.

- Начинается выполнение первичного потока.

  • В контексте нового процесса и потока инициализируется адресное пространство (например, загружаются требуемые DLL) и начинается выполнение программы.