Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Full_OS (1).doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
6.1 Mб
Скачать

2. Модели процессов и потоков. Управление процессами и потоками. Основные функции управления и их содержание.

Одной из основных подсистем мультипрограммной ОС, непосредственно влияю­щей на функционирование вычислительной машины, является подсистема управ­ления процессами и потоками, которая занимается:

    1. их созданием и уничтожени­ем;

    2. поддерживает изоляцию и взаимодействие между ними;

    3. распределяет ресурсы системы между несколькими одновременно существующими в системе процес­сами и потоками.

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 мс

В. не знаю

Еще одно решение

А) алгоритм обслуживания в порядке поступления запросов, цилиндры расположены следующим образом: 20, 10, 22, 20, 2, 40, 6, 38.

Перемещение блока головок с одного цилиндра на соседний занимает 6 мс. Следовательно, время перемещения головки с 20 на 10 цилиндр займет (20-10)*6 мс.

Таким образом, получаем:

t = (20-10)*6 + (22-10)*6 + (22-20)*6 +…+ (38-6)*6 = (10+12+2+18+38+34+32)*6 = 876 мс.

Б) элеваторного алгоритма (сначала блок головок движется вверх), цилиндры расположены следующим образом: 20, 22, 38, 40, 10, 6, 2.

Аналогично с пунктом А. Получаем:

t = (2+16+2+30+4+4)*6 = 348 мс.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]