Операционные системы Лекция 2 - 1 Типы ОС. Мультипрограммирование; режим разделения времени; многопользовательский режим работы; режим работы и ОС реального времени. Способы реализации мультипрограммирования Типы ОС Однозадачные (MS-DOS) Многозадачные (Unix, OS/2, Windows) Пакетные системы - запуск одной программы из пакета за другой Системы разделения времени (time-sharing) – процессор переключается между задачами не только на время операций ввода – вывода но и по прошествии определенного времени, что позволяет пользователю интерактивно взаимодействовать с программой Системы реального времени – для управления различными технологическими процессами – система должна обрабатывать данные быстрее, чем они могут поступать, причем от разных источников => влияние на архитектуру, например может не быть виртуальной памяти, так как она дает непредсказуемые задержки в выполнении программ Типы ОС Поддержка многопользовательского режима: Многопользовательские (Windows NT, Unix) –механизмы защиты персональных данных каждого пользователя Однопользовательские (MS-DOS, Windows 3.x) Многопроцессорная обработка: Многопроцессорные ОС (Linux, Solaris, Windows NT) Симметричные – на каждом процессоре функционирует одно и то же ядро, и задача может быть выполнена на любом процессоре, т.е. обработка децентрализована Ассиметричные – процессоры не равноправны (master и slave) – загрузку и характер работы определяет главный процессор Мультипрограммирование - пока одна программа выполняет операцию ввода-вывода, процессор не простаивает как при однопрограммном режиме, а выполняет другую программу При мультипрограммировании повышается пропускная способность системы, но отдельный процесс никогда не сможет быть выполнен быстрее, чем бы он был выполнен при однопрограммном режиме. ВС для реализации режима мультипрограммирования: Программы не должны иметь самостоятельного доступа к распределению ресурсов, что приводит к появлению привилегированных и непривилегированных команд Наличие прерываний: -Внешних (оповещение ОС о том что произошло асинхронное событие, например завершилась операция ввода-вывода) -Внутренних (ситуации) возникают когда выполнение программы требует вмешательства ОС, например деление на 0 или попытка нарушения защиты Параллелизм в архитектуре: прямой доступ к памяти и организация каналов ввода-вывода ОС для реализации режима мультипрограммирования: Организация интерфейса между прикладным ПО и ОС реализуется при помощи системных вызовов Организация очереди из заданий в памяти требует планирования использования процессора Переключение с одного задания на другое требует сохранения содержимого регистров и структур данных (контекста) Поскольку память – ограниченный ресурс, используются стратегии управления памятью Для обеспечения санкционированного обмена данными между программами – средства коммуникации Для разрешения конфликтных ситуаций – средства синхронизации Операционные системы Лекция 2 - 2 Понятие процесса и ядра ОС; ресурсы ВС, управление процессами; структура контекста процесса; идентификатор и дескриптор процесса; иерархия процессов. Понятие процесса и ресурсы ВС Процесс – программа во время исполнения или объект, которому выделяются ресурсы ВС (процессор, память и ….) Процесс – динамический объект Программа и задание – статические объекты Процесс характеризует: • • • • • • • • Набор исполняемых команд Выделенная для исполнения память (адресное пространство) Адрес и состояние стеков Используемые файлы Устройства ввода-вывода Значения регистров Программный счетчик Значение переменных Программа и процесс программа процесс не существует взаимно-однозначного соответствия Одна программа - несколько процессов Один процесс – исполняет последовательно несколько программ И даже в случае обработки только одной программы в рамках одного процесса: процесс – не просто динамическое описание кода исполняемого файла, данных и выделенных для них ресурсов. Процесс находится под управлением операционной системы , поэтому в нем может выполнятся часть кода ее ядра, не находящегося в исполняемом файле (предусмотренные случаи: системные вызовы, непредусмотренные: внешние прерывания) Состояния процесса Порождение – создаются условия для первого запуска Готовность – у процесса есть все необходимые ресурсы, кроме ЦП Активное – выделение процессора Ожидание – (блокировка) нужный ресурс занят, процесс ждет его освобождения Завершение – штатное или аварийное окончание работы программы Основная функция ОС - управление процессами. ОС должна обеспечить контроль над процессами в любом из возможных состояний. Текущее состояние процесса описывается в системе с помощью PCB (Process Control Block) Структура PCB • PCB –хранит информацию: • Уникальный идентификатор процесса, пользователь • Состояние в котором находится процесс • Текущий приоритет • Программный счетчик процесса - IP (адрес команды которая должна быть выполнена для него следующей) • Содержимое регистров процесса • Адресное пространство (и стеки) • Связанные устройства ввода-вывода (файлы) • Область хранения регистров (для рестарта) Граф состояний процесса Порождение Допуск к планированию Прерывание по таймеру (Δ t) Выбран для исполнения Готовность Активное Активное Событие произошло Ожидание события Ожидание Завершение работы Time - out Завершение Управление процессами • На однопроцессорных системах в каждый момент времени выполняется только один процесс • В мультипроцессорных системах процессоры могут исполнять как общий, так и различные процессы Операции над процессами • • • • Создание / Завершение Приостановка / Запуск Блокирование / Разблокирование Изменение приоритета процесса Граф состояний процесса (2) Порождение Допуск к планированию Прерывание по таймеру (Δ t) Завершение работы Выбран для исполнения Завершение Активное Готовность Time - out Ожидание события Ожидание Активное Приостановленное Приостановлен готов Событие произошло Приостановлен блокирован Резюме • Существует несколько типов ОС ……. • Основная функция ОС – управление процессами • Для описания процесса в ОС используется PCB • Основные состояния процесса отображаются на графе состояний • ОС управляет всеми переходами на этом графе