1 билет прошлый год - chrislvt/OS GitHub Wiki

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

Определение ОС

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

Из лекции 1: Для того, чтобы поддерживать переключение с одной программы на другую понадобилась специальная программа. Эту программу назвали операционная система, потому что она заменяла работу оператора. Операционные системы появились во втором поколении машин для сокращения простоя процессора - для более эффективного использования процессорного времени, для того чтобы переключаться между заданиями. Это судьбоносный момент.

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

  • ОС пакетной обработки;
  • ОС разделения времени;
  • ОС для обработки транзакций.

Ресурсы вычислительной системы

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

К ресурсам относятся:

  • процессорное время (не процесс)
  • объём оперативной памяти
  • устройства ввода / вывода
  • вторичная память (средства долговременного хранения данных) (Например, файл - структура, позволяющая осуществлять долговременное хранение информации.) таймеры
  • ключи защиты
  • средства взаимоисключения (mutex etc)
  • сообщения
  • программные каналы
  • разделяемая память
  • таймеры
  • системные таблицы(?)
  • реентирабельные коды(?) и тд.

ОС – определение ОС. Ресурсы вычислительной системы. Режимы ядра и задачи: переключение в режим ядра – классификация событий.Ответ в лекциях

Режимы ядра и задачи: переключение в режим ядра – классификация событий

Ответ в лекциях

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

это из прошлогоднего файла Пользовательский режим ‐ наименее привилегированный режим, поддерживаемый NT; он не имеет прямого доступа к оборудованию и у него ограниченный доступ к памяти. Режим ядра ‐ привилегированный режим. Те части NT, которые исполняются в режиме ядра, такие как драйверы устройств и подсистемы типа Диспетчера Виртуальной Памяти, имеют прямой доступ ко всей аппаратуре и памяти. Различия в работе программ пользовательского режима и режима ядра поддерживаются аппаратными средствами компьютера (а именно ‐ процессором).

Три события, переводящих систему в режим ядра.

  1. Системные вызовы (программные прерывания). Процесс переключается в режим ядра и выполняется реентерабельный код системы, после обслуживания переключается в режим задачи. Ни одна операционная система не позволяет процессу на прямую обратиться к устройствам ввода/вывода. Если бы обращались напрямую, то такая система была бы незащищенной. Для обслуживания системного вызова, процесс должен перейти в режим ядра, в режиме ядра выполняется реентерабельный код ОС. Реентерабельный код – код чистой процедуры (чистая процедура не модифицирует саму себя (вынесены все данные)). Коды ядра работают с системными таблицами. Процедуры ядра сами являются ресурсами, которые могут запрашивать процессы, разные процессы могут находиться в разных точках одной и той же процедуры.
  2. Исключения (exception) Системные вызовы и исключения – синхронные события по отношению к вашему процессу. Возникают в процессе выполнения программного кода. Исключения возникают в результате ошибок в про грамме (не устранимым, например - деление на ноль). Устранимое – страничное прерывание, необходимая страница будет загружена в память и программа продолжит выполнение.
  3. Аппаратные прерывания (прерывания, поступившие от устройств) Асинхронные события в системе. Также имеют различный характер в системе. Самое массовое – прерывания от внешних устройств. Второй тип – прерывание от системного таймера, которое выполняется по тику(выделенный импульс) 18,3 раз в секунду. Третий тип – прерывание от действий оператора (ctrl+alt+del , ctrl+C = завершение процесса в unix)

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

Базовым понятием любой современной ОС являет процесс (главная абстракция системы). Процесс (по Дейтлу) - это программа в стадии выполнения. Процесс владеет ресурсами, имеет защищенное адресное пространство.

Диаграмма состояний процесса

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

  2. Готовность - ожидание выделения кванта времени процессу (система приоритетов, организуется очередь программ)

  3. Выполнение - выполнение команд процесса за отведенный квант времени.

  4. Блокировка - ожидание, когда процесс сможет получить необходимые ресурсы.

  5. Завершение - освобождение ресурсов и возврат их в пулл свободных ресурсов.

В состоянии готовности находится очередь из программ => выполнение программ в соответствии с приоритетом.

Три режима работы компьютера на базе процессоров Intel (X86). Адресация аппаратных прерываний в защищенном режиме: таблица дескрипторов

прерываний (IDT) – формат дескриптора прерываний, типы шлюзов. Пример заполнения IDT из лабораторной работы.