1. Операция создания процессов. Создать процесс значит : создать информационные структуры его описывающие – включить дескриптор нового процесса в очередь готовых – загрузить кодовый сегмент в ОП.
2. Приостановка процесса. Переход из состояния исполнения в состояние готовности. При этому сохраняется счётчик команд и регистр стека исполняемого процесса.
3. Запуск процесса – обратное приостановке процесса.
4. Блокировка процесса (переход из исполнения в ожидание). При этом возникает системный вызов, при необходимости сохраняется контекст и происходит смена процесса на выполнение.
5. Разблокировка – обратное блокировке (из ожидания в готовность).
6. Завершения процесса – уничтожение описывающих структур и освобождение памяти.
Рисунок 1 – Переключение процессов
Планирование включает в себя решение задач:
1. Определение момента времени для смены выполняемого процесса
2. Выбор процесса на выполнение из очереди готовых
3. Переключение контекстов
Классификация алгоритмов планирования:
1. Бесприоритетные – на квантование
a. Линейные
i. В порядке очереди
ii. Случайно
b. Циклические
2. Приоритетные
a. С фиксированными приоритетами
i. Относительные приоритеты
ii. Абсолютные приоритеты
iii. Адаптивное обслуживание
b. С динамическими приоритетами
i. Приоритет зависит от времени ожидания
ii. Приоритет зависит от времени обслуживания
Алгоритм, основанный на квантовании, меняет выполняющийся процесс при его завершении, ошибке, переходе в состояние ожидания или завершении кванта времени, отведенному ему.
Кванты могут быть одинаковыми для всех процессов или различными, фиксированными или динамическими.
Приоритетные алгоритмы могут снимать процесс с выполнения при появлении более приоритетной заявки (абсолютный приоритет). Относительный приоритет влияет только на порядок выбора из очереди.
Приоритет может назначаться директивно или вычисляться ОС по заданными правилам. Может быть фиксированным или динамическим.
Thread (поток) – это часть процесса, способная выполняться квазипараллельно с другими потоками одного процесса. Каждый поток имеет свой собственный программный счётчик, стек, регистры, потомков и состояния. В рамках процесса потоки разделяют адресное пространство, глобальные переменные, открытые файлы, таймеры, семафоры и статистическую информацию.
Как может быть организован вычислительный процесс с помощью потоков:
1. Модель «Диспетчер»
2. Модель «Команда»
3. Модель «Конвейер»
Потоки могут быть реализованы статически, когда их количество и задачи определяются на этапе написания программы, или динамически, по ходу выполнения. Завершаются потоки по своей инициативе или извне (например, породивший их процесс завершен).
Многопоточная обработка может быть реализована в пользовательском пространстве или в пространстве ядра.
Категории обмена информации:
1. Сигнальный - передается минимальное количество данных, используется для извещения о наступлении события. Степень воздействия на поведение процессов получателя – минимальна.
2. Канальные средства – взаимодействие происходит через линии связи, предоставленные ОС. Объем данных зависит от пропускной способности линий связи. Степень воздействия на получателя прямо пропорционально количеству получаемой информации.
3. Разделяемая память – это область АП, выделенная ОС для совместного использования. Наиболее быстрый способ
При установлении связи различают разные способы адресации:
1. Прямая адресация – взаимодействующие процессы непосредственно обращаются друг к другу, явно указывая имя или номер процесса, устанавливается автоматически. Может быть симметричной (если оба указывают имена или номера) и асимметричной (когда один процесс явно указывает имя партнера, а другой рассматривает в этом качестве любой процесс системы).
2. Непрямая адресация – данные помещаются в промежуточный объект хранения, имеющий свой адрес. Здесь необходимо знать только объекты хранения, файлы.
Количество процессов, которое может быть одновременно ассоциировано с конкретным средством связи, называется валентностью этого средства связи. При прямой адресации – в основном валентность 1-2, а при непрямой – больше.
Связь может быть однонаправленной (симплексной) и двунаправленной (дуплексной), а так же полудуплексной. Адресация не имеет отношения к типу связи.