Одной из основных подсистем мультипрограммной ОС, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами и потоками, которая занимается:
- их созданием и уничтожением;
- поддерживает изоляцию и взаимодействие между ними;
- распределяет ресурсы системы между несколькими одновременно существующими в системе процессами и потоками.
1. К созданию процесса приводят 5 основных событий: инициализация, выполнение запроса работающего процесса, запрос пользователя, инициирование пакетного задания, создание операционной системой процесса, необходимого для работы каких-либо служб.
В многопоточной системе при создании процесса ОС создает для каждого процесса как минимум один поток выполнения. При создании потока так же, как и при создании процесса, операционная система генерирует специальную информационную структуру — описатель потока, который содержит идентификатор потока, данные о правах доступа и приоритете, о состоянии потока и другую информацию.
Каждый раз, когда процесс завершается, ОС предпринимает шаги, чтобы «зачистить следы» его пребывания в системе. Подсистема управления процессами закрывает все файлы, с которыми работал процесс, освобождает области оперативной памяти, отведенные под коды, данные и системные информационные структуры процесса. Выполняется коррекция всевозможных очередей ОС и списков ресурсов, в которых имелись ссылки на завершаемый процесс.
2. Когда в системе одновременно выполняется несколько независимых задач, то возникают дополнительные проблемы. Хотя потоки возникают и выполняются асинхронно, у них может возникнуть необходимость во взаимодействии, например при обмене данными. Согласование скоростей потоков также очень важно для предотвращения эффекта «гонок» (когда несколько потоков пытаются изменить один и тот же файл), взаимных блокировок или других коллизий, которые возникают при совместном использовании ресурсов.
3. Подсистема управления процессами и потоками ответственна за обеспечение процессов необходимыми ресурсами. ОС поддерживает в памяти специальные информационные структуры, в которые записывает, какие ресурсы выделены каждому процессу. Она может назначить процессу ресурсы в единоличное пользование или в совместное пользование с другими процессами. Некоторые из ресурсов выделяются процессу при его создании, а некоторые — динамически по запросам во время выполнения. Ресурсы могут быть приписаны процессу на все время его жизни или только на определенный период. При выполнении этих функций подсистема управления процессами взаимодействует с другими подсистемами ОС, ответственными за управление ресурсами, такими как подсистема управления памятью, подсистема ввода-вывода, файловая система.
Для того чтобы процессы не могли вмешаться в распределение ресурсов, а также не могли повредить коды и данные друг друга, важнейшей задачей ОС является изоляция одного процесса от другого. Для этого операционная система обеспечивает каждый процесс отдельным виртуальным адресным пространством, так что ни один процесс не может получить прямого доступа к командам и данным другого процесса
Задача
Драйвер диска получает запросы на чтение-запись к цилиндрам 10, 22, 20, 2, 40, 6 и 38. Перемещение головок с одного цилиндра на соседний занимает 6 мс. Сколько потребуется времени на перемещение головок при использовании алгоритма:
А) обслуживания в порядке поступления запросов;
Б) обслуживания в первую очередь ближайшего цилиндра;
В) элеваторного алгоритма (сначала блок головок двигается вверх).
Во всех случаях начальное положение блока головок на цилиндре 20.
Решение (МОЕ а значит не факт что правильное =)
А. обслуживание в порядке 10 à 22 à 20à 2 à 40 à 6 à 38
(10 (чтобы попасть в 10) +12+2+18+38+34+32)* 6 мс = 876 мс
Б. 2 à 6à 10 à 20 à 22 à 38 à 40
(18+ 4+4+10+2+16+2) * 6 мс = 336 мс
В. не знаю