Слайд 2Требования к ОС
Чередовать выполнение нескольких задач для повышения степени использования ЦП.
Распределять ресурсы
между задачами в соответствие с заданной стратегией.
Обеспечивать обмен данными между задачами и запуск новых задач пользователями.
Слайд 3Концепции
Компьютерная система представляется набором аппаратных ресурсов.
Компьютерные приложения создаются для выполнения некоторых задач
Прямой
доступ к аппаратным ресурсам со стороны приложений является неэффективным
Операционная система представляет удобный в использовании, богатый функционально, безопасный и целостный интерфейс для использования приложениями.
ОС обеспечивает единообразное, абстрактное представление ресурсов, которые могут выделятся приложениям по их запросу.
Слайд 4Управление выполнением приложений
Ресурсы должны быть доступны множеству приложений
Процессор распределяется среди множества приложений
Процессор
и устройства ввода-вывода эффективно используются множеством приложений.
Слайд 5Процессы и потоки
Процесс (Process) и поток (Thread) являются единицами работы в операционной
системе.
Процесс рассматривается операционной системой как заявка на потребление всех видов ресурсов, кроме одного – процессорного времени. Процессор распределяется операционной системой между другими единицами выполнения – потоками.
В простейшем случае процесс состоит из одного потока. Если ОС не поддерживает потоков, то поведение потока полностью поглощается поведением процесса.
Слайд 6Элементы процесса
Идентификатор
Состояние
Приоритет
Счётчик команд
Таблицы распределения памяти
Контекст
Статус операций ввода-вывода
Статистические данные
Слайд 7Блок Управления Процессом (PCB – Process Control Block)
Содержит элементы процесса
Создаётся и управляется
операционной системой
Единая структура для поддержки различными процессами.
Слайд 13Создание процесса
Создать процесс – это подготовить новый PCB.
Порождение нового процесса другим
Создание операционной
системой процесса для работы служб
Вход в систему в интерактивном режиме
Новое пакетное задание
Слайд 15Завершение процессов
Обычное завершение
Превышение лимита времени
Недостаток памяти
Нарушение доступа к памяти
Ошибка доступа к ресурсу
Арифметическая
ошибка
Ошибка ввода-вывода
Неверная команда
Команда с недоступными привилегиями
Неправильное использование данных
Вмешательство ОС
Завершение всех потоков (для многопоточных систем)
Запрос со стороны другого процесса.
Слайд 16Состояния процесса. Модель с двумя состояниями
Слайд 18Состояния процесса. Модель с пятью состояниями
Слайд 20Схема с одной очередью блокированных процессов
Слайд 21Схема с множеством очередей блокированных процессов
Слайд 22Приостановленные процессы
Перемещение (Swap) процессов на диск для освобождения памяти под другие процессы
Блокированное
состояние становится приостановленным при переносе процесса на диск
Новые состояния:
Блокирован/приостановлен
Готов/приостановлен
Слайд 23Диаграмма состояний процесса с одним приостановленным состоянием
Слайд 24Диаграмма состояний процесса с двумя приостановленным состоянием
Слайд 25API - Application Programming Interface управления процессами (POSIX)
POSIX 1003.1: fork(), exec(), kill()
Клонирование
процесса
int pid;
switch (pid = fork())
{
case 0: /*Порождённый процесс*/
…
case -1: /*Ошибка создания процесса*/
default: /*Родительский процесс*/
}
Порождение нового процесса ls
int pid;
switch (pid = fork())
{
case 0: /*Порождённый процесс*/
ret = execl ("/bin/ls", "ls", "-1", (char *)0); case -1: /*Ошибка создания процесса*/
default: /*Родительский процесс*/
}