- •1)Основные функции операционных систем, сред и оболочек
- •2) Классификация ос
- •3) Требования к современным ос
- •4) Мультипрограммирование и распределение ресурсов
- •5) Понятие процессов и потоков
- •6) Алгоритмы планирования процессов и потоков
- •7) Синхронизация процессов
- •9) Функции ос по управлению памятью
- •10) Виртуализация памяти. Классы виртуальной памяти
- •11) Кэширование данных
5) Понятие процессов и потоков
Управление процессами состоит в их создании и уничтожении; приостановлении и
возобновлении; изменении приоритета; переключении состояний.
При управлении процессами ОС использует два основных типа информационных
структур: дескриптор процесса и контекст процесса.
Дескриптор процесса (это термин, используемый в Unix, но ставший обще-
употребительным. Аналогичная структура в Windows называется объект-процессом)
содержит информацию о процессе, которая необходима ядру ОС в течение всего жиз-
ненного цикла процесса независимо от его состояния.
Дескриптор содержит:
- идентификатор процесса;
- информацию о состоянии процесса;
- данные о степени привилегированности процесса;
- местоположение кодового сегмента;
- данные о родственных процессах;
- данные о событиях, которые ожидает процесс и др.
Дескрипторы отдельных процессов объединены в таблицу (очередь) процессов,
на основе которой ОС осуществляет планирование и синхронизацию процессов. Па-
мять для таблицы отводится динамически в области ядра ОС.
Контекст процесса содержит информацию, необходимую для возобновления вы-
полнения процесса после прерывания и поэтому сохраняемую перед прерыванием. Это:
- состояние аппаратуры компьютера:
- значение счетчика команд; содержимое регистров общего назначения;
- режим работы процессора;
- флаги;
- маски прерываний и др.;
- параметры операционной системы:
- указатели на открытые файлы;
- информация о незавершенных операциях ввода-вывода;
- коды ошибок выполняемых процессом системных вызовов и др.
Контекст, как и дескриптор, доступен только программам ядра, но хранится не в
области ядра, а непосредственно примыкает к образу (совокупности кода и данных)
процесса и может быть перемещен вместе с ним (из ОП на диск и наоборот).
Программный код начинает выполняться, когда для него создан процесс.
Создать процесс – это означает:
- создать информационные структуры, описывающие процесс, т.е. его дескриптор и
контекст;
- включить дескриптор нового процесса в очередь готовых процессов;
- загрузить кодовый сегмент процесса в Оперативную память или область свопинга.
В многопоточных системах (с возможностью распараллеливания процессов) для
каждого процесса должен создаться как минимум один поток выполнения. При этом
ОС генерирует описатель (дескриптор) потока.
Момент выборки процесса на выполнение осуществляется в соответствии с при-
нятой в ОС дисциплиной обслуживания.
Процесс может порождать процессы – потомки, в результате чего организуется
иерархическая структура процессов. Отношения между потомками и родителями стро-
ятся по-разному в различных ОС.
В мультипрограммной системе процесс может находиться в одном из трех основ-
ных состояний:
· выполнение – активное состояние, во время которого процесс обладает всеми
необходимыми ресурсами и непосредственно выполняется процессором;
· ожидание – пассивное состояние; процесс заблокирован, он не может выполняться
по своим внутренним причинам, ждет осуществления некоторого события, например,
завершения операции ввода-вывода, получения сообщения от другого процесса, ос-
вобождения какого-либо необходимого ему ресурса;
· готовность – также пассивное состояние; но в этом случае процесс заблокиро-
ван в связи с внешними по отношению к нему обстоятельствами: процесс имеет все
требуемые для него ресурсы, он готов выполняться, однако процессор занят выпол-
нением другого процесса.
В течение своей жизни каждый процесс переходит из одного состояния в другое
в соответствии с алгоритмом планирования процессов, принятым в данной опера-
ционной системе. Жизненный цикл процесса начинается с состояния готовность, когда процесс го-
тов к выполнению и ждет своей очереди. При активизации процесс переходит в со-
стояние выполнение и находится в нем до тех пор, пока либо он сам не освободит
Выполнение
Готовность Ожидание
Только что созданный процесс
Процесс выбран на
выполнение
Процесс завершен
или произошла ошибка
Процесс ожидает ввода-вывода
(или другого события)
Ввод-вывод завершен
(событие произошло)
Процесс
вытеснен
процессор, перейдя в состояние ожидания какого-нибудь события, либо будет насильно
вытеснен из процессора (например, вследствие истечения отведенного данному про-
цессу кванта процессорного времени). В последнем случае процесс возвращается в
состояние готовность. В это же состояние процесс переходит из состояния ожида-
ния после того, как ожидаемое событие произойдет.
В состоянии выполнение в однопроцессорной системе может находиться только
один процесс, а в каждом из состояний ожидание и готовность – несколько процес-
сов. Эти процессы образуют очереди ожидающих и готовых процессов соответственно.
Очереди процессов представляют собой дескрипторы отдельных процессов, объе-
диненные в списки. Таким образом, каждый элемент списка содержит по крайней мере
один указатель на другой элемент, соседствующий с ним в очереди. Такая организа-
ция очередей позволяет легко переупорядочивать, включать и исключать процессы,
переводить их из одного состояния в другое (удалять из одной и ставить в другую
очередь)