17 KiB
Операционная система - программное обеспечение, управляющее аппаратными ресурсами и предоставляющее прикладным программам удобные абстракции ^bd03ae
- Как менеджер ресурсов - управляет ресурсами, отслеживая их состояние и планируя их использование.
Виды ресурсов:
- вычислительные ресурсы (ЦП)
- оперативная память и уст-ва долговременного хранения данных (жесткий диск и т.д.)
- устройства ввода/вывода
- сетевые соединения
- Как виртуальная машина - выполняет абстрагирование аппаратного обеспечения до уровня логических ресурсов ОС с четко определенными интерфейсами. Поддерживает абстракции, которых не существует на аппаратном уровне.
- Аппаратные ресурсы - абстракции ОС
- Жёсткий диск - ФС
- Принтеры - очередь печати
- ЦП - поток
- ОЗУ - процесс
#^bd03ae формирует операционную среду - среду выполнения ПО Условия выполнения программ: ^ed3cc0 - Мн. команд ЦП, доступное ПО - Мн. сис. функ. ОС, доступное ПО - Тип и структура ВАП (Виртуальное Адресное Пространство) ПО, использующей модель адресации
Spool - одновременное выполнение нескольких операций в переферии
Многозадачность - свойство ОС, позволяющее обрабатывать несколько задач параллельно.
В ОЗУ загружаются несколько процессов. IO одного процесса выполняется параллельно с вычислениями другой Цель - оптимизация пропускной способности системы
ОС разделения времени - подход, который требуется для интерактивной работы, при котором у одной ЭВМ несколько терминалов и каждый пользователь считает, что ему польностью выделена вычислительная система Для её реализации, была создана идея разделения времени - Timeslicing. Задачи:
- Распределение времени ЦП равномерно между пользователями
- Если задача интерактивная, нужно переключаться между пользователями и ПО быстрее, чем пользователи производят ввод
- Пользователи могут интерактивно просматривать, редактировать и отдаэивать выполняющиеся программы
Классификация ОС по назначению:
- Системы пакетной обработки (максимальная пропускная способность)
- Системы разделения времени (удобство и эффективность работы пользователя)
- ОС реального времени (способность выдерживать заданные интервалы времени между возникновением события и завершения его обработки)
По режиму обработки задач:
- По поддержке многозадачности
- однозадачные
- многозадачные
- По поддержке многопоточности
- По поддержке многопроцессорной обработки
По организации пользовательской работы
- Однопользовательские и многопользовательские
- Односессионные и многосессионные
Монолитная архитектура ОС - система, построенная с помощью монолитного ядра Монолитное ядро - множество процедур, которые
- выполняются на одном уровне привелегий
- используют одно множество данных
- вызывают друг друга непосредственно (без спец. механизмов)
Многослойная (уровневая) архитектура ОС - ОС разбивается на несколько компонентов, между которыми выстраивается вертикальная архитектура (каждый компонент может взаимодействовать только со своими соседями)
Микроядерная архитектура ОС - архитектура, основная идея которой минимизация объёма кода, выполняющегося на уровне ядра. На микроядре реализуют минимальный функционал ОС. Всё остальное - прикладные программы Плюсы:
- понятная архитектура
- устойчивая система
- возможность скомпоновать ОС под определённые нужны
Минусы:
- низкая производительность
- медленная работа из-за переходов между компонентами через ядро
Архитектура, основанная на ВМ - архитектура, основная идея которой является то, что ОС поддерживает отдельные копии #^ed3cc0 для разных работающих приложений (для разделение работы) Позже появилась поддержка аппаратного виртуального обеспечения, которое произволится с помощью специального ПО Плюсы:
- падение одного приложение не повлечёт отказ остальных Минусы:
- низкая производительность реальной ОС при IO-операциях
Паравиртуализация - идея, суть которой в том, что при выполнении некоторого набора операций ОС, работающая на ВМ, напрямую вызывает хостовую ОС, которая работает с реальным аппаратным обеспечением Ограничение: хостовая и гостевая ОС должны быть одинаковыми
Расширяемость - возможность модификации, ничего не сломав (модульность, объектная и микроядерная архитектура)
Переносимость - возможность переноса кода на другую аппаратную платформу. Повысить переносимость можно:
- использовав ЯВУ
- оптимизировав код
- локализировав и изолировав код
Совместимость - способность выполнять программы, написанные для других ОС (или более старых версий себя), а также другой архитектуры
Безопасность - защиты ресурсов пользователей друг от друга. Категории:
- D - нет требований
- C - наличие подсистемы учёта событий безопасности
- C2 = есть средство входа, права к объектам, аудит безопасности, защита памяти
- B - использование помеченных данных и распределение пользователей по категориям
- A - наличие формального доказательства соответствия системы требованиям безопасности
Windows NT Уровень аппаратной абстракции - обеспечивает вышележащим уровням приемлимые абстракции hardware Ядро - планирование, обработка прерываний и исключений, многопроцессорность, обработка сбоев Менеджер объектов - создаёт, удаляет и управляет объектами (выделение памяти, управление дескрипторами, каталогами объектов) Монитор безопасности - устанавливает правила защиты на локальный компьютер Менеджер процессор - управляет процессами и потоками Средства LPC - оптимизированный вариант более общего средства - удалённого вызова процедур (передача коротких и длинных сообщений) Менеджер виртуальной памяти - управление физической памятью, поддержка АП ядра и процессов Менеджер IO - представляет средства IO, независимо от их устройств
UNIX Аппаратный контроль - обеспечивает вышележащим уровням приемлимые абстракции hardware Взаимодействие процессов - реализация механизмов IPC Планировщик - управление (распределение) временем ЦП Управление памятью - управление физической памятью, поддержка АП ядра и процессов
Поток - абстракция: последовательное выполнение команд программы во времени ^308759
Совместно используют глобальные и статические переменные, динамическую память и системные ресурсы, выданную #^c7de0d Имеет собственные счётчик (IP), значения регистров и локальные переменные
Процесс - абстракция: программа во время выполнения; совокупность потоков и ресурсов ^c7de0d
ОС выделяет процессу ресурсы:
- Адресное пространство
- Файлы
- IO
Многопоточные процессы - процессы с несколькими потоками
Контекст - множество информации, полностью описывающее состояние состояние объекта Контекст #^c7de0d:
- Информация о процессе
- АП процесса
- Структура и содержимое пользовательской части АП процесса
- Множество ресурсов, выделенных процессу, и их состояние
Контекст #^308759:
- Информация о потоке
- Множество ресурсов, выделенных потоку, и их состояние
- Аппаратные контекст исполнения потока
Переключение контекста происходит при переходе к исполнению другого потока
При переключении необходимо:
- Сохранить контекст текущего потока
- Если следующий поток принадлежит другому процессу:
- Сохранить контекст текущего процесса
- Загрузить контекст следующего процесса
- Загрузить контекст следующего потока
Диаграмма состояний потока в однозадачной среде Создание - ОС обслуживает запрос на создание потока Завершение - ОС обслуживает запрос на завершение потока Выполнение - состояние работающего потока, выполняющегося на ЦП Ожидание - выполнение потока заблокировано до наступление некого внешнего события
Диаграмма состояний потока во многозадачной среде Выполнение - состояние работающего потока, обладающими всеми необходимыми ресурсами, в т.ч. возможностью использования ЦП Готов к выполнению - поток обладает всеми нелюходимыми для выполнения ресурсами, кроме времени ЦП
Дескриптор #^c7de0d - структура данных, которая используется для описания процесса Включает в себя: ^6b0413
- Идентификатор процесса
- Групповые параметры процесса
- Состояние процесса
- Статистические данные
- Описание АП процесса
- Контекст IO
- Контекст безопасности
- Текущие системные параметры выполнения
- Код завершения процесса
- Параметры, используемые в случае конкуренции между процессами за ресурс для определения приоритета
Дескриптор #^308759 - структура данных, которая используется для описания процесса. Включает в себя:
- Идентификатор потока
- Идентификатор владельца - процесса
- Параметры, используемые в случае конкуренции между потоками за ресурс для определения приоритета
- Статистические данные
- Аппаратные контекст выполнения потока
- Код завершения потока
Создание процесса в Windows
- Создание и инициализация (всех полей) дескриптора
- Создание и заполнение необходимыми данными ВАП
- Выделение ресурсов, которые он может использовать сразу после создания
- Оповещение подсистем, занимающимися управлением процессов, о создании нового процесса
- Создание первичного потока
Завершение процесса в Windows
- Завершение выполнения всех потоков процесса
- Сохранение статистических данных и кода возврата процессора в дескрипторе
- Перевод всех ресурсов, принадлежащих процессу, в стабильное и непротиворечивое состояние
- Освобождение этих ресурсов
- Освобождение ВАП, а затем его уничтожение
- Оповещение подсистем, занимающимися управлением процессов, о завершении процесса
- Установка состояние процесса
завершён
Остаётся только #^6b0413. Его уничтожение зависит от реализации
Создание потока в Windows
- Создание и инициализация (всех полей) дескриптора
- Создание структур данных, необходимых потоку
- Инициализация аппаратного контекста
- Оповещение подсистем, занимающимися управлением потоков, о создании нового потока
- Установка состояние потока
готов к исполнению
Завершение потока в Windows