Files
University-notes/2 курс/2 семестр/Операционные системы/Введение.md
2025-06-22 19:34:46 +03:00

17 KiB
Raw Blame History

Операционная система - программное обеспечение, управляющее аппаратными ресурсами и предоставляющее прикладным программам удобные абстракции ^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:

  • Информация о потоке
  • Множество ресурсов, выделенных потоку, и их состояние
  • Аппаратные контекст исполнения потока

Переключение контекста происходит при переходе к исполнению другого потока

При переключении необходимо:

  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