Управление процессором и состояния процесса

Основными объектами в многозадачной среде являются процессы или задачи, описываемые своим контекстом. На одном процессоре в любой мо­мент времени может исполняться только одна задача. Контекст исполняемой задачи всегда можно "заморозить", сохранив содержимое регистров процессора. При оста­новке текущей задачи процессор продолжает исполнение других задач. Таким образом, процессор есть ограниченный ресурс, который распределяется между всеми за­дачами.

На одном процессоре для организации многозадачного режима выполнение каждой задачи разбивается на несколько коротких интервалов (рис. 4.). Процессор выполняет часть первой задачи, затем второй, третьей и т. д. Временной интервал, выделенный для каждой задачи, составляет, например, 10 миллисекунд.

 
 

 

 


Внешний эффект разделения процессорного времени между задачами состоит в параллельном выполнении п задач. Когда п задач выполняются в системе параллельно каждая из них в среднем монопольно "располагает" процессором с производительностью 1/n, т. е. работает (развивается) на виртуальном процессоре, производительность которого в п раз меньше, чем у реального физического процессора. Если вместе 1 используется несколько процессоров, то это просто другая реализация, того же логического принципа. В первом случае процессы разделены во времени, во втором в пространстве. Если исключить накладные расходы на планирование и межзадачное взаимодействие, то при выполнении п процессов на k одинаковых процессорах каждому процессу в среднем выделяется виртуальный процессор с производительностью равной k/n части от производительности одного физического процессора.

Простейшая многозадачная однопроцессорная система состоит из процедуры сохраняющей контекст текущего процесса в стеке или в определенной области памяти и восстанавливающей контекст другого процесса, исполнение которого, возобновляется с того места, где он был прерван. Системная программа, выбирающая один из готовых для исполнения процессов, называется планировщиком Стратегии выбора достаточно разнообразны и меняются от одной операционной системы к другой, однако чаще всего используется какой-либо механизм на основе приоритетов. Планировщик работает как один из процессов, который автоматически получает управление после каждого прерывания текущего процесса.

Операции по переключению процессов критичны по времени и должны осуществляться с максимальной эффективностью. На, процессорах, первоначально не разработанных для многозадачного режима, процедура сохранения и восстановления контекста — переключение процессов — реализуется, длинной последовательностью стандартных инструкций процессора. В набор команд процессора, спроектированного для работы в многозадачном режиме, входят специальные инструкции для сохранения и восстановления контекста. Заметим; что переменные процесса не входят в состав контекста и сохранять их специально нет необходимости, поскольку они хранятся в памяти, выделенной процессу и защищенной операционной системой от доступа других процессов.

Планировщик вызывается обычно после обработки каждого прерывания. Если используется стратегия переключения процессов на основе квантования времени (рис. 4), необходимо иметь внешний по отношению к процессору интервальный таймер, вырабатывающий прерывания по истечении кванта времени вы­
деленного процессу. При возникновении прерывания исполнение текущего процесса приостанавливается и проверяется, должен ли быть прерван текущий процесс и за­гружен новый. Принудительная приостановка текущего процесса для передачи уп­равления другому процессу называется вытеснением.

Продолжительность кванта времени влияет на производительность, системы. При коротком кванте улучшается общее время обслуживания коротких процессов. Если ве­личина кванта сопоставима со временем, необходимым для переключения процессов, то большая часть ресурсов процессора будет уходить на планирование и переключе­ние. Если величина кванта слишком большая, увеличивается время ожидания процес­сов и, соответственно, время реакции.

Процесс исполняется до тех пор, пока не произойдет одно из следующих событий:

- истек выделенный ему квант времени;

- процесс заблокирован, например ждет завершения операции ввода/вывода;

- процесс завершился;

- вытеснен другим процессом, имеющим более высокий приоритет, например обработчиком прерываний.

В многозадачной среде процесс может находиться в одном из трех состояний (рис.5.).

 
 

 


• Готов. Процесс может начать исполнение, как только освободится процессор.

• Исполнение. Процесс исполняется в данный, момент, т; е. про­цессор исполняет его код.

• Ожидание, заблокирован. Для продолжения работы процессу не хватает какого-либо ресурса, за исключением ЦП, либо он ждет наступления
внешнего события.

На (рис. 5)также показаны возможные переходы из одного состояния в другое:

1. От "Загрузочный модуль на диске" к "Готов". Программа загружается
в оперативную память, настраиваются относительные адреса, выделяются рабочие области для данных, кучи и стека с соответствующими указателями и создается контекст процесса.

2. От "Готов" к "Исполнение". Планировщик выбирает первый в очереди готовых процессов и передает ему управление.

3. От "Исполнение" к "Готов". Процесс либо исчерпал свой квант времени, либо появился готовый для исполнения процесс с более высоким приоритетом

4. От "Исполнение" к "Ожидание". Для дальнейшего развития процесс должен ждать наступления какого-либо внешнего события (завершения операции вво­да/вывода или освобождения ресурса, например доступа к памяти, заблокиро­ванной другим процессом, или сигнала от другого процесса и т. п.). Иногда процесс переводится в состояние ожидания до истечения некоторого интервала времени с помощью явной инструкции в его программе.

5. От "Ожидание" к "Готов". Когда ожидаемое событие произошло или истекло заданное время, процесс переводится в состояние "Готов" и помещается в оче­редь готовых процессов, откуда затем выбирается планировщиком.

6. После выполнения последней инструкции программы операционная система удаляет процесс из памяти и освобождает все выделенные ему ресурсы, включая память.








Дата добавления: 2016-02-09; просмотров: 1239;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.