
- •Понятия «процесс» и «поток». Создание процессов и потоков. Состояния потока
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Системные вызовы
- •Цели и средства синхронизации. Необходимость синхронизации и гонки
- •Критическая секция
- •Блокирующие переменные
- •Семафоры
- •Функции ос по управлению памятью
- •Типы адресов
- •Алгоритмы распределения памяти
- •Распределение памяти с фиксированными разделами
- •Распределение памяти с динамическими разделами
- •Свопинг и виртуальная память
- •Страничное распределение
- •Сегментное распределение
- •Сегментно-страничное распределение
- •Иерархия запоминающих устройств
- •Задачи ос по управлению файлами и устройствами
- •Многослойная модель подсистемы ввода-вывода
- •Многоуровневые драйверы
- •Цели и задачи файловой системы
- •Файловая система unix. Общая структура. Монтирование фс.
- •Имена файлов. Атрибуты файлов.
- •Структура магнитного дискового накопителя. Блоки (кластеры).
- •Безопасность ос. Основные виды угроз и аспекты безопасности ос. Принцип адекватности защиты.
- •Безопасность ос. Понятие сервисов и механизмов защиты ос. Сервисы идентификации и автентификации пользователей. Маркер доступа
- •Понятия «процесс» и «поток». Создание процессов и потоков. Состояния потока
Понятия «процесс» и «поток». Создание процессов и потоков. Состояния потока
Процесс (задача) - программа, находящаяся в режиме выполнения.
С каждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данные.
Адресное пространство содержит:
саму программу
данные к программе
стек программы
С каждым процессом связывается набор регистров
Каждому процессу соответствует адресное пространство и одиночный поток исполняемых команд. В многопользовательских системах, при каждом обращении к одному и тому же сервису, приходится создавать новый процесс для обслуживания клиента. Это менее выгодно, чем создать квазипараллельный поток внутри этого процесса с одним адресным пространством
С каждым потоком связывается:
Счетчик выполнения команд
Регистры для текущих переменных
Стек
Состояние
Потоки делят между собой элементы своего процесса:
Адресное пространство
Глобальные переменные
Открытые файлы
Таймеры
Семафоры
Создание процесса включает загрузку кодов и данных исполняемой программы данного процесса с диска в оперативную память. Для этого ОС должна обнаружить местоположение такой программы на диске, перераспределить оперативную память и выделить память исполняемой программе нового процесса. Затем необходимо считать программу в выделенные для нее участки памяти и, возможно, изменить параметры программы в зависимости от размещения в памяти. В многопоточной системе при создании процесса ОС создает для каждого процесса как минимум один поток выполнения. При создании потока так же, как и при создании процесса, операционная система генерирует специальную информационную структуру — описатель потока, который содержит идентификатор потока, данные о правах доступа и приоритете, о состоянии потока и другую информацию. В исходном состоянии поток (или процесс, если речь идет о системе, в которой понятие «поток» не определяется) находится в приостановленном состоянии. Момент выборки потока на выполнение осуществляется в соответствии с принятым в данной системе правилом предоставления процессорного времени и с учетом всех существующих в данный момент потоков и процессов. В случае если коды и данные процесса находятся в области подкачки, необходимым условием активизации потока процесса является также наличие места в оперативной памяти для загрузки его исполняемого модуля.
ОС выполняет планирование потоков, принимая во внимание их состояние. В мультипрограммной системе поток может находиться в одном из трех основных состояний:
выполнение — активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
ожидание — пассивное состояние потока, находясь в котором, поток заблокирован по своим внутренним причинам (ждет осуществления некоторого события, например завершения операции ввода-вывода, получения сообщения от другого потока или освобождения какого-либо необходимого ему ресурса);
готовность — также пассивное состояние потока, но в этом случае поток заблокирован в связи с внешним по отношению к нему обстоятельством (имеет все требуемые для него ресурсы, готов выполняться, однако процессор занят выполнением другого потока).