OS: new
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
1. **Операционная система** - программное обеспечение, управляющее аппаратными ресурсами и предоставляющее прикладным программам удобные абстракции ^bd03ae
|
**Операционная система** - программное обеспечение, управляющее аппаратными ресурсами и предоставляющее прикладным программам удобные абстракции ^bd03ae
|
||||||
- Как *менеджер ресурсов* - управляет ресурсами, отслеживая их состояние и планируя их использование.
|
- Как *менеджер ресурсов* - управляет ресурсами, отслеживая их состояние и планируя их использование.
|
||||||
Виды ресурсов:
|
Виды ресурсов:
|
||||||
- вычислительные ресурсы (ЦП)
|
- вычислительные ресурсы (ЦП)
|
||||||
@ -12,15 +12,16 @@
|
|||||||
- ЦП - поток
|
- ЦП - поток
|
||||||
- ОЗУ - процесс
|
- ОЗУ - процесс
|
||||||
|
|
||||||
2. [[#^bd03ae|ОС]] формирует **операционную среду** - среду выполнения ПО
|
[[#^bd03ae|ОС]] формирует **операционную среду** - среду выполнения ПО
|
||||||
Условия выполнения программ: ^ed3cc0
|
Условия выполнения программ: ^ed3cc0
|
||||||
- Мн. команд ЦП, доступное ПО
|
- Мн. команд ЦП, доступное ПО
|
||||||
- Мн. сис. функ. ОС, доступное ПО
|
- Мн. сис. функ. ОС, доступное ПО
|
||||||
- Тип и структура ВАП (Виртуальное Адресное Пространство) ПО, использующей модель адресации
|
- Тип и структура ВАП (Виртуальное Адресное Пространство) ПО, использующей модель адресации
|
||||||
|
|
||||||
3. **Spool** - одновременное выполнение нескольких операций в переферии
|
**Spool** - одновременное выполнение нескольких операций в переферии
|
||||||
|
|
||||||
|
**Многозадачность** - свойство ОС, позволяющее обрабатывать несколько задач параллельно.
|
||||||
|
|
||||||
4. **Многозадачность** - свойство ОС, позволяющее обрабатывать несколько задач параллельно.
|
|
||||||
В ОЗУ загружаются несколько процессов. IO одного процесса выполняется параллельно с вычислениями другой
|
В ОЗУ загружаются несколько процессов. IO одного процесса выполняется параллельно с вычислениями другой
|
||||||
Цель - оптимизация пропускной способности системы
|
Цель - оптимизация пропускной способности системы
|
||||||
|
|
||||||
@ -30,31 +31,31 @@
|
|||||||
- Если задача интерактивная, нужно переключаться между пользователями и ПО быстрее, чем пользователи производят ввод
|
- Если задача интерактивная, нужно переключаться между пользователями и ПО быстрее, чем пользователи производят ввод
|
||||||
- Пользователи могут интерактивно просматривать, редактировать и отдаэивать выполняющиеся программы
|
- Пользователи могут интерактивно просматривать, редактировать и отдаэивать выполняющиеся программы
|
||||||
|
|
||||||
5. Классификация ОС по назначению:
|
Классификация ОС по назначению:
|
||||||
- Системы пакетной обработки (максимальная пропускная способность)
|
- Системы пакетной обработки (максимальная пропускная способность)
|
||||||
- Системы разделения времени (удобство и эффективность работы пользователя)
|
- Системы разделения времени (удобство и эффективность работы пользователя)
|
||||||
- ОС реального времени (способность выдерживать заданные интервалы времени между возникновением события и завершения его обработки)
|
- ОС реального времени (способность выдерживать заданные интервалы времени между возникновением события и завершения его обработки)
|
||||||
|
|
||||||
6. По режиму обработки задач:
|
По режиму обработки задач:
|
||||||
- По поддержке многозадачности
|
- По поддержке многозадачности
|
||||||
- однозадачные
|
- однозадачные
|
||||||
- многозадачные
|
- многозадачные
|
||||||
- По поддержке многопоточности
|
- По поддержке многопоточности
|
||||||
- По поддержке многопроцессорной обработки
|
- По поддержке многопроцессорной обработки
|
||||||
|
|
||||||
7. По организации пользовательской работы
|
По организации пользовательской работы
|
||||||
- Однопользовательские и многопользовательские
|
- Однопользовательские и многопользовательские
|
||||||
- Односессионные и многосессионные
|
- Односессионные и многосессионные
|
||||||
|
|
||||||
8. **Монолитная архитектура ОС** - система, построенная с помощью монолитного ядра
|
**Монолитная архитектура ОС** - система, построенная с помощью монолитного ядра
|
||||||
**Монолитное ядро** - множество процедур, которые
|
**Монолитное ядро** - множество процедур, которые
|
||||||
- выполняются на одном уровне привелегий
|
- выполняются на одном уровне привелегий
|
||||||
- используют одно множество данных
|
- используют одно множество данных
|
||||||
- вызывают друг друга непосредственно (без спец. механизмов)
|
- вызывают друг друга непосредственно (без спец. механизмов)
|
||||||
|
|
||||||
9. **Многослойная (уровневая) архитектура ОС** - ОС разбивается на несколько компонентов, между которыми выстраивается вертикальная архитектура (каждый компонент может взаимодействовать только со своими соседями)
|
**Многослойная (уровневая) архитектура ОС** - ОС разбивается на несколько компонентов, между которыми выстраивается вертикальная архитектура (каждый компонент может взаимодействовать только со своими соседями)
|
||||||
|
|
||||||
10. **Микроядерная архитектура ОС** - архитектура, основная идея которой минимизация объёма кода, выполняющегося на уровне ядра. На микроядре реализуют минимальный функционал ОС. Всё остальное - прикладные программы
|
**Микроядерная архитектура ОС** - архитектура, основная идея которой минимизация объёма кода, выполняющегося на уровне ядра. На микроядре реализуют минимальный функционал ОС. Всё остальное - прикладные программы
|
||||||
*Плюсы*:
|
*Плюсы*:
|
||||||
- понятная архитектура
|
- понятная архитектура
|
||||||
- устойчивая система
|
- устойчивая система
|
||||||
@ -64,7 +65,7 @@
|
|||||||
- низкая производительность
|
- низкая производительность
|
||||||
- медленная работа из-за переходов между компонентами через ядро
|
- медленная работа из-за переходов между компонентами через ядро
|
||||||
|
|
||||||
11. **Архитектура, основанная на ВМ** - архитектура, основная идея которой является то, что ОС поддерживает отдельные копии [[#^ed3cc0|операционных сред]] для разных работающих приложений (для разделение работы)
|
**Архитектура, основанная на ВМ** - архитектура, основная идея которой является то, что ОС поддерживает отдельные копии [[#^ed3cc0|операционных сред]] для разных работающих приложений (для разделение работы)
|
||||||
Позже появилась поддержка аппаратного виртуального обеспечения, которое произволится с помощью специального ПО
|
Позже появилась поддержка аппаратного виртуального обеспечения, которое произволится с помощью специального ПО
|
||||||
*Плюсы*:
|
*Плюсы*:
|
||||||
- падение одного приложение не повлечёт отказ остальных
|
- падение одного приложение не повлечёт отказ остальных
|
||||||
@ -73,4 +74,127 @@
|
|||||||
|
|
||||||
**Паравиртуализация** - идея, суть которой в том, что при выполнении некоторого набора операций ОС, работающая на ВМ, напрямую вызывает хостовую ОС, которая работает с реальным аппаратным обеспечением
|
**Паравиртуализация** - идея, суть которой в том, что при выполнении некоторого набора операций ОС, работающая на ВМ, напрямую вызывает хостовую ОС, которая работает с реальным аппаратным обеспечением
|
||||||
*Ограничение*: хостовая и гостевая ОС должны быть одинаковыми
|
*Ограничение*: хостовая и гостевая ОС должны быть одинаковыми
|
||||||
12.
|
|
||||||
|
**Расширяемость** - возможность модификации, ничего не сломав (модульность, объектная и микроядерная архитектура)
|
||||||
|
|
||||||
|
**Переносимость** - возможность переноса кода на другую аппаратную платформу. Повысить переносимость можно:
|
||||||
|
- использовав ЯВУ
|
||||||
|
- оптимизировав код
|
||||||
|
- локализировав и изолировав код
|
||||||
|
|
||||||
|
**Совместимость** - способность выполнять программы, написанные для других ОС (или более старых версий себя), а также другой архитектуры
|
||||||
|
|
||||||
|
**Безопасность** - защиты ресурсов пользователей друг от друга. Категории:
|
||||||
|
- 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**
|
||||||
|
Reference in New Issue
Block a user