diff --git a/2 курс/2 семестр/Операционные системы/Введение.md b/2 курс/2 семестр/Операционные системы/Введение.md index 0e7a177..7212a7a 100644 --- a/2 курс/2 семестр/Операционные системы/Введение.md +++ b/2 курс/2 семестр/Операционные системы/Введение.md @@ -1,76 +1,200 @@ -1. **Операционная система** - программное обеспечение, управляющее аппаратными ресурсами и предоставляющее прикладным программам удобные абстракции ^bd03ae - - Как *менеджер ресурсов* - управляет ресурсами, отслеживая их состояние и планируя их использование. - Виды ресурсов: - - вычислительные ресурсы (ЦП) - - оперативная память и уст-ва долговременного хранения данных (жесткий диск и т.д.) - - устройства ввода/вывода - - сетевые соединения - - Как *виртуальная машина* - выполняет абстрагирование аппаратного обеспечения до уровня логических ресурсов ОС с четко определенными интерфейсами. Поддерживает абстракции, которых не существует на аппаратном уровне. - - Аппаратные ресурсы - абстракции ОС - - Жёсткий диск - ФС - - Принтеры - очередь печати - - ЦП - поток - - ОЗУ - процесс +**Операционная система** - программное обеспечение, управляющее аппаратными ресурсами и предоставляющее прикладным программам удобные абстракции ^bd03ae +- Как *менеджер ресурсов* - управляет ресурсами, отслеживая их состояние и планируя их использование. + Виды ресурсов: + - вычислительные ресурсы (ЦП) + - оперативная память и уст-ва долговременного хранения данных (жесткий диск и т.д.) + - устройства ввода/вывода + - сетевые соединения +- Как *виртуальная машина* - выполняет абстрагирование аппаратного обеспечения до уровня логических ресурсов ОС с четко определенными интерфейсами. Поддерживает абстракции, которых не существует на аппаратном уровне. + - Аппаратные ресурсы - абстракции ОС + - Жёсткий диск - ФС + - Принтеры - очередь печати + - ЦП - поток + - ОЗУ - процесс -2. [[#^bd03ae|ОС]] формирует **операционную среду** - среду выполнения ПО +[[#^bd03ae|ОС]] формирует **операционную среду** - среду выполнения ПО Условия выполнения программ: ^ed3cc0 - Мн. команд ЦП, доступное ПО - Мн. сис. функ. ОС, доступное ПО - Тип и структура ВАП (Виртуальное Адресное Пространство) ПО, использующей модель адресации -3. **Spool** - одновременное выполнение нескольких операций в переферии +**Spool** - одновременное выполнение нескольких операций в переферии -4. **Многозадачность** - свойство ОС, позволяющее обрабатывать несколько задач параллельно. - В ОЗУ загружаются несколько процессов. IO одного процесса выполняется параллельно с вычислениями другой - Цель - оптимизация пропускной способности системы +**Многозадачность** - свойство ОС, позволяющее обрабатывать несколько задач параллельно. - **ОС разделения времени** - подход, который требуется для интерактивной работы, при котором у одной ЭВМ несколько терминалов и каждый пользователь считает, что ему польностью выделена вычислительная система - Для её реализации, была создана идея разделения времени - *Timeslicing*. Задачи: - - Распределение времени ЦП равномерно между пользователями - - Если задача интерактивная, нужно переключаться между пользователями и ПО быстрее, чем пользователи производят ввод - - Пользователи могут интерактивно просматривать, редактировать и отдаэивать выполняющиеся программы +В ОЗУ загружаются несколько процессов. IO одного процесса выполняется параллельно с вычислениями другой +Цель - оптимизация пропускной способности системы -5. Классификация ОС по назначению: - - Системы пакетной обработки (максимальная пропускная способность) - - Системы разделения времени (удобство и эффективность работы пользователя) - - ОС реального времени (способность выдерживать заданные интервалы времени между возникновением события и завершения его обработки) +**ОС разделения времени** - подход, который требуется для интерактивной работы, при котором у одной ЭВМ несколько терминалов и каждый пользователь считает, что ему польностью выделена вычислительная система +Для её реализации, была создана идея разделения времени - *Timeslicing*. Задачи: + - Распределение времени ЦП равномерно между пользователями + - Если задача интерактивная, нужно переключаться между пользователями и ПО быстрее, чем пользователи производят ввод + - Пользователи могут интерактивно просматривать, редактировать и отдаэивать выполняющиеся программы -6. По режиму обработки задач: - - По поддержке многозадачности - - однозадачные - - многозадачные - - По поддержке многопоточности - - По поддержке многопроцессорной обработки +Классификация ОС по назначению: +- Системы пакетной обработки (максимальная пропускная способность) +- Системы разделения времени (удобство и эффективность работы пользователя) +- ОС реального времени (способность выдерживать заданные интервалы времени между возникновением события и завершения его обработки) -7. По организации пользовательской работы - - Однопользовательские и многопользовательские - - Односессионные и многосессионные +По режиму обработки задач: +- По поддержке многозадачности + - однозадачные + - многозадачные +- По поддержке многопоточности +- По поддержке многопроцессорной обработки -8. **Монолитная архитектура ОС** - система, построенная с помощью монолитного ядра - **Монолитное ядро** - множество процедур, которые - - выполняются на одном уровне привелегий - - используют одно множество данных - - вызывают друг друга непосредственно (без спец. механизмов) +По организации пользовательской работы +- Однопользовательские и многопользовательские +- Односессионные и многосессионные -9. **Многослойная (уровневая) архитектура ОС** - ОС разбивается на несколько компонентов, между которыми выстраивается вертикальная архитектура (каждый компонент может взаимодействовать только со своими соседями) +**Монолитная архитектура ОС** - система, построенная с помощью монолитного ядра +**Монолитное ядро** - множество процедур, которые + - выполняются на одном уровне привелегий + - используют одно множество данных + - вызывают друг друга непосредственно (без спец. механизмов) -10. **Микроядерная архитектура ОС** - архитектура, основная идея которой минимизация объёма кода, выполняющегося на уровне ядра. На микроядре реализуют минимальный функционал ОС. Всё остальное - прикладные программы - *Плюсы*: - - понятная архитектура - - устойчивая система - - возможность скомпоновать ОС под определённые нужны - - *Минусы*: - - низкая производительность - - медленная работа из-за переходов между компонентами через ядро +**Многослойная (уровневая) архитектура ОС** - ОС разбивается на несколько компонентов, между которыми выстраивается вертикальная архитектура (каждый компонент может взаимодействовать только со своими соседями) -11. **Архитектура, основанная на ВМ** - архитектура, основная идея которой является то, что ОС поддерживает отдельные копии [[#^ed3cc0|операционных сред]] для разных работающих приложений (для разделение работы) - Позже появилась поддержка аппаратного виртуального обеспечения, которое произволится с помощью специального ПО - *Плюсы*: - - падение одного приложение не повлечёт отказ остальных - *Минусы*: - - низкая производительность реальной ОС при IO-операциях +**Микроядерная архитектура ОС** - архитектура, основная идея которой минимизация объёма кода, выполняющегося на уровне ядра. На микроядре реализуют минимальный функционал ОС. Всё остальное - прикладные программы +*Плюсы*: +- понятная архитектура +- устойчивая система +- возможность скомпоновать ОС под определённые нужны - **Паравиртуализация** - идея, суть которой в том, что при выполнении некоторого набора операций ОС, работающая на ВМ, напрямую вызывает хостовую ОС, которая работает с реальным аппаратным обеспечением - *Ограничение*: хостовая и гостевая ОС должны быть одинаковыми -12. \ No newline at end of file +*Минусы*: +- низкая производительность +- медленная работа из-за переходов между компонентами через ядро + +**Архитектура, основанная на ВМ** - архитектура, основная идея которой является то, что ОС поддерживает отдельные копии [[#^ed3cc0|операционных сред]] для разных работающих приложений (для разделение работы) +Позже появилась поддержка аппаратного виртуального обеспечения, которое произволится с помощью специального ПО +*Плюсы*: + - падение одного приложение не повлечёт отказ остальных +*Минусы*: + - низкая производительность реальной ОС при IO-операциях + +**Паравиртуализация** - идея, суть которой в том, что при выполнении некоторого набора операций ОС, работающая на ВМ, напрямую вызывает хостовую ОС, которая работает с реальным аппаратным обеспечением +*Ограничение*: хостовая и гостевая ОС должны быть одинаковыми + +**Расширяемость** - возможность модификации, ничего не сломав (модульность, объектная и микроядерная архитектура) + +**Переносимость** - возможность переноса кода на другую аппаратную платформу. Повысить переносимость можно: +- использовав ЯВУ +- оптимизировав код +- локализировав и изолировав код + +**Совместимость** - способность выполнять программы, написанные для других ОС (или более старых версий себя), а также другой архитектуры + +**Безопасность** - защиты ресурсов пользователей друг от друга. Категории: +- D - нет требований +- C - наличие подсистемы учёта событий безопасности + - C2 = есть средство входа, права к объектам, аудит безопасности, защита памяти +- B - использование помеченных данных и распределение пользователей по категориям +- A - наличие формального доказательства соответствия системы требованиям безопасности + +**Windows NT** +*Уровень аппаратной абстракции* - обеспечивает вышележащим уровням приемлимые абстракции hardware +*Ядро* - планирование, обработка прерываний и исключений, многопроцессорность, обработка сбоев +*Менеджер объектов* - создаёт, удаляет и управляет объектами (выделение памяти, управление дескрипторами, каталогами объектов) +*Монитор безопасности* - устанавливает правила защиты на локальный компьютер +*Менеджер процессор* - управляет процессами и потоками +*Средства LPC* - оптимизированный вариант более общего средства - удалённого вызова процедур (передача коротких и длинных сообщений) +*Менеджер виртуальной памяти* - управление физической памятью, поддержка АП ядра и процессов +*Менеджер IO* - представляет средства IO, независимо от их устройств + +**UNIX** +*Аппаратный контроль* - обеспечивает вышележащим уровням приемлимые абстракции hardware +*Взаимодействие процессов* - реализация механизмов IPC +*Планировщик* - управление (распределение) временем ЦП +*Управление памятью* - управление физической памятью, поддержка АП ядра и процессов + +**Поток** - абстракция: последовательное выполнение команд программы во времени ^308759 + +Совместно используют глобальные и статические переменные, динамическую память и системные ресурсы, выданную [[#^c7de0d|процессу]] +Имеет собственные счётчик (IP), значения регистров и локальные переменные + + +**Процесс** - абстракция: программа во время выполнения; совокупность потоков и ресурсов ^c7de0d + +ОС выделяет процессу ресурсы: +- Адресное пространство +- Файлы +- IO + +**Многопоточные процессы** - процессы с несколькими потоками + +**Контекст** - множество информации, полностью описывающее состояние состояние объекта +*Контекст [[#^c7de0d|процесса]]*: +- Информация о процессе +- АП процесса +- Структура и содержимое пользовательской части АП процесса +- Множество ресурсов, выделенных процессу, и их состояние + +*Контекст [[#^308759|потока]]*: +- Информация о потоке +- Множество ресурсов, выделенных потоку, и их состояние +- Аппаратные контекст исполнения потока + +**Переключение контекста** происходит при переходе к исполнению другого потока + +При переключении необходимо: +1. Сохранить контекст текущего потока +2. Если следующий поток принадлежит другому процессу: + 1. Сохранить контекст текущего процесса + 2. Загрузить контекст следующего процесса +3. Загрузить контекст следующего потока + +**Диаграмма состояний потока в однозадачной среде** +*Создание* - ОС обслуживает запрос на создание потока +*Завершение* - ОС обслуживает запрос на завершение потока +*Выполнение* - состояние работающего потока, выполняющегося на ЦП +*Ожидание* - выполнение потока заблокировано до наступление некого внешнего события + +**Диаграмма состояний потока во многозадачной среде** +*Выполнение* - состояние работающего потока, обладающими всеми необходимыми ресурсами, в т.ч. возможностью использования ЦП +*Готов к выполнению* - поток обладает всеми нелюходимыми для выполнения ресурсами, кроме времени ЦП + +**Дескриптор [[#^c7de0d|процесса]]** - структура данных, которая используется для описания процесса Включает в себя: ^6b0413 +- Идентификатор процесса +- Групповые параметры процесса +- Состояние процесса +- Статистические данные +- Описание АП процесса +- Контекст IO +- Контекст безопасности +- Текущие системные параметры выполнения +- Код завершения процесса +- Параметры, используемые в случае конкуренции между процессами за ресурс для определения приоритета + +**Дескриптор [[#^308759|потока]]** - структура данных, которая используется для описания процесса. Включает в себя: +- Идентификатор потока +- Идентификатор владельца - процесса +- Параметры, используемые в случае конкуренции между потоками за ресурс для определения приоритета +- Статистические данные +- Аппаратные контекст выполнения потока +- Код завершения потока + +**Создание процесса в Windows** +1. Создание и инициализация (всех полей) дескриптора +2. Создание и заполнение необходимыми данными ВАП +3. Выделение ресурсов, которые он может использовать сразу после создания +4. Оповещение подсистем, занимающимися управлением процессов, о создании нового процесса +5. Создание первичного потока + +**Завершение процесса в Windows** +1. Завершение выполнения всех потоков процесса +2. Сохранение статистических данных и кода возврата процессора в дескрипторе +3. Перевод всех ресурсов, принадлежащих процессу, в стабильное и непротиворечивое состояние +4. Освобождение этих ресурсов +5. Освобождение ВАП, а затем его уничтожение +6. Оповещение подсистем, занимающимися управлением процессов, о завершении процесса +7. Установка состояние процесса `завершён` +Остаётся только [[#^6b0413|дескриптор]]. Его уничтожение зависит от реализации + +**Создание потока в Windows** +1. Создание и инициализация (всех полей) дескриптора +2. Создание структур данных, необходимых потоку +3. Инициализация аппаратного контекста +4. Оповещение подсистем, занимающимися управлением потоков, о создании нового потока +5. Установка состояние потока `готов к исполнению` + +**Завершение потока в Windows**