- •Операционные системы
- •Введение в операционные системы
- •Определение ОС
- •Уровни ВС
- •Уровни ВС
- •Микроархитектура
- •Машинный язык
- •Системное и прикладное ПО
- •Основная функция ОС
- •Основные ресурсы ВС
- •Дополнительная функция ОС
- •Введение в операционные системы
- •Мультипрограммирование
- •Процессы и потоки
- •Варианты
- •Пример многопоточного приложения: текстовый процессор с 3-мя нитями
- •Пример многопоточного приложения: Web-сервер
- •Состояния процессов и потоков
- •Состояния процессов и потоков
- •Введение в операционные системы
- •Признаки классификации
- •Классификация ОС
- •Поддержка многозадачности
- •Многозадачность
- •Вытесняющая и не вытесняющая многозадачность
- •Классификация дисциплин обслуживания
- •Дисциплины обслуживания
- •Приоритетное обслуживание
- •Динамический приоритет
- •Поддержка многопользовательского режима
- •Многопроцессорная обработка
- •Виды мультипроцессирования
- •Состояния процессов и потоков при мультипроцессировании
- •Особенности алгоритмов управления ресурсами
- •Классификация ОС
- •Типы многозадачных ОС
- •Системы пакетной обработки
- •Системы пакетной обработки
- •Системы пакетной обработки
- •Системы разделения времени
- •Системы разделения времени
- •Системы реального времени
- •Гибридные системы
- •Операционные системы
- •Структурная организация
- •Монолитная структура
- •Многоуровневая структура
- •Многоуровневая структура
- •Понятие ядра
- •Уровни привилегий (защиты)
- •Ядро в привилегированном (защищенном) режиме
- •Ядро в привилегированном (защищенном) режиме
- •Пример ядра в непривилегированном режиме
- •Монолитное ядро
- •Модульное ядро
- •Микроядро
- •Реализация системного вызова в микроядерной архитектуре
- •Смена режимов при выполнении системного вызова к микроядру
- •Достоинства и недостатки микроядра
- •Микроядро Mach
- •Модификации ядерного и микроядерного подходов
- •Гибридное ядро
- •Наноядро
- •Наноядро
- •Поддержка виртуализации
- •Типы виртуализации
- •Гипервизор
- •Виртуализация на базе гипервизора
- •Типы архитектуры гипервизора
- •Монолитная модель гипервизора
- •Микроядерная модель гипервизора
- •Объектно-ориентированный подход
- •ООП: достоинства и недостатки
- •Классификация ОС
- •Особенности аппаратных платформ
- •Примеры специализированных систем
- •Высокопроизводительные системы
- •Планы Intel
- •Многоядерные процессоры
- •Перспективы многоядерных процессоров
- •NUMA
- •Сетевые операционные системы
- •Сетевые операционные системы
- •Операционные системы
- •Появление ОС
- •Появление ОС
- •Первый “баг”
- •Этапы эволюции
- •1 этап (1940-60)
- •1 этап (1940-60)
- •Ранние системы пакетной обработки (1 этап)
- •Ранние системы пакетной обработки (1 этап)
- •2 этап (1965-75)
- •2 этап – многотерминальные системы
- •2 этап – разделение времени
- •2 этап – многотерминальные системы
- •3 этап (1970-80)
- •3 этап – объединение удаленных мэйнфреймов с помощью SNA
- •4 этап (1980-90)
- •4 этап – мини-ЭВМ и ЛВС
- •5 этап (1990 – …)
- •5 этап – сетевые и распределенные ОС
- •5 этап – сетевые и распределенные ОС
- •5 этап – сетевые и распределенные ОС
- •5 этап – сетевые и распределенные ОС
- •Три эпохи программирования
- •Операционные системы
- •Предшественники
- •Разработчики
- •Unix
- •Первые версии UNIX
- •Раскол
- •Современность
- •Свободные UNIX системы
- •Свободные UNIX системы
- •Свободные UNIX системы
- •Свободные UNIX системы
Дополнительная функция ОС
Кроме основной функции управления ресурсами ВС, от ОС зачастую требуется решение еще одной важной задачи – предоставления программного интерфейса доступа к аппаратным ресурсам в виде некоторой виртуальной машины (программного и визуального интерфейсов), которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальную машину.
Введение в операционные системы
Базовые концепции и термины
Мультипрограммирование
Мультипрограммирование (многозадачность и многопоточность), метод “одновременного” выполнения на одной ЭВМ нескольких программ или различных ветвей одной и той же программы.
В настоящее время в большинстве ОС определены два типа единиц работы, между которыми разделяется процессор и другие ресурсы компьютера: процесс и поток.
Процессы и потоки
Процесс – абстракция, описывающая выполняющуюся программу. Для ОС процесс представляет собой единицу работы, заявку на потребление системных ресурсов.
Одним из основных ресурсов является адресное пространство процесса.
Поток (нить, thread) – последовательность выполнения инструкций процессора. Процесс в этом случае рассматривается как заявка на потребление всех видов ресурсов, кроме одного – процессорного времени, которое ОС распределяет между потоками. Таким образом, поток
представляет собой мини-процесс, который работает в адресном пространстве породившего его процесса.
В простейшем случае процесс состоит из одного потока, именно таким образом трактовалось понятие «процесс» до середины 80-х годов (например, в ранних версиях UNIX).
Варианты
мультипрограммирования
(a)Три однопоточных процесса
(b)Один процесс с тремя потоками
Пример многопоточного приложения: текстовый процессор с 3-мя нитями
Пример многопоточного приложения: Web-сервер
Состояния процессов и потоков
Выделяют 3 основных дискретных состояния процесса (потока):
Готов к выполнению – ждет ЦП
Выполняется – выделен ЦП
Приостановлен (блокирован) – ждет некоторого события (например, окончания ввода-вывода)
Состояния процессов и потоков
Вытеснение и постановка на выполнение происходит на основе выбранной дисциплины обслуживания.
Введение в операционные системы
Классификация ОС
