В. Столлингс - Операционные системы (1114679), страница 25
Текст из файла (страница 25)
Может показаться, что лучше было бы загрузить для Часть 2. Про Гла ава 3. Описание процессов и управление ими ~~люавзмдаъм умнее приостановленный процесс что не приведет К увеличе рузки на систему. Однако это не совсем так. Все процессы перед тем как они были ювлены, находились в блокированном состоянии. Ясно, что возвращени " ~ять блокированного процесса не даст никаких результатов, потому что- ' ~режнему не готов к выполнению. Вспомним также, что каждый процесс становленном состоянии блокирован в ожидании какого-то определенного,: ия, и если это событие происходит, процесс перестает быть блокиро южно продолжить ега выполнение.
Это следует учесть при разработке операционной системы. Мы имеем вумя независимыми ситуациями: ожидает ли процесс какого-либо событ~ц~. локирован ан или нет), и выгружен ли процесс из основной памяти (т.е. ановлен ан или нет). Чтобы учесть 2х2 возможных комбинации, нужны еречисленных ниже состояния. е Готовый.
Процесс, который находится в основной памяти и готов к нению. ° Блокированный. Процесс, находящийся в основной памяти и ож какога-то события. е Блокированный/Приостановленный. Процесс, находящийся во вто памяти ~на диске) и ожидающий какого-то события. ° Готовый/Приостановленный. Процесс, находящийся во вторичной и на уже готовый к выполнению; для этога его нужно только загрузить,' новную память. Й Перед тем как составлять диаграмму переходов состояний, в которой:" деваются два новых приостановленных состояния, следует упомянуть еще стаятельства. Да сих пор мы не учитывали существование виртуальной (; считалось, что процесс находится либо полностью в основной памяти,:" ~лностью вне ее.
При наличии виртуальной памяти появляется возмо шалнять процесс, который загружен в основную память лишь частично.' |аисходит обращение к отсутствующему в основной памяти адресу проц, а часть процесса может быть загружена. Казалась бы, использование ьной памяти избавляет от необходимости явного свопинга, потому что . жный адрес любого процесса можно перенести в основную память или из.' мощью аппаратного обеспечения процессора, управляющего памятью.
к мы увидим в главе 8, "Виртуальная память'*, при наличии достаточно >го количества активных процессов, которые полностью или частично тся в основной памяти, производительность виртуальной памяти может: Гься недостаточной. Поэтому даже при наличии виртуальной памяти апе най системе время от времени требуется явно и полностью выгр эцессы из основной памяти ради повышения общей производительности. А теперь рассмотрим модель переходов состояний, представленную на рис.. 'нктирными линиями показаны переходы, которые возможны, но не явл ~зательными). Среди новых переходов наиболее важными являются следую Блокированный -э Блокированный/Приостановленный.
Если к выполне гатов ни один процесс, то по крайней мере один блокированный процесс гружается из памяти, чтобы освободить места для другого процесса, кото Часть 2. Проц блокированным Этот переход можно выполнять и при наличии гото,' является к выполнению процессов, если операционная система определит, дл елит чта я вых к вы авление к ковыполняю щегося в настоящее время процесса или процесса, управле ~рому перейдет в л йд б ижайшее время, нужно увеличить обьем основной памяти я обеспечения адекватной производительности.
для а /Приостановленный -+ Готовый/Приостановленныи. р/ иоста . " " ". П оБлокированныи/ иоста есс в состоянии ло ~о б кир ванного приостановленного переходит в состояние атаваго к выпа лнению приостановленного процесса, если происходит собыжидал этот процесс. Заметим, что для такого перехода опетие которого ожидал э рацианная система до ма должна иметь доступ к информации о состоянии приостановленных процессов. ° Готовый/Приостановле "/ю~ тановленный — ~ Готовый.
Когда в основной памяти нет готовых к выполнению про роцессов операционной системе для продолжения вычислений 1 требуется загруз узить процесс в память. Может случиться и так, чта у готового к выполнению пр приостановленного процесса окажется более высокий приоритет, чем ул огод юб го другого из готовых к выполнению процессов.
В такой ситуации разра отч б ик операционной системы может решить, что важнее обеспечить приоритет процесса, чем минимизировать свопинг. ° Готовый -э Готовым/Приостановленный. Обычно операционная система предпочитает приостанавливать не готовый, а заблокированный процесс, поскольку к выполнению готового процесса можно приступить немедленно, а блокированный процесс только зря занимает основную память, поскольку не может быть выполнен.
Однако иногда оказывается, чта единственный способ освободить достаточно большой блок основной памяти — эта приостановить готовый к выполнению процесс. Операционная система может также вместо блокированного процесса с более высоким приоритетом приостановить готовый к выполнению процесс с более низким приоритетом, если блокированный процесс достаточно скоро будет готов к выполнению. Кроме того, заслуживают рассмотрения и другие переходы.
° Новый -+ Готовый/Приостановленный и Новый -~ Готовый. После создания нового процесса этот процесс может быть добавлен либо в очередь готовых к выполнению, либо в очередь готовых к выполнению приостановленных процессов. В любом из этих случаев операционная система должна создать таблицы для управления процессом и выделить ему адресное пространство. Лучше выполнить зти действия на ранних этапах, чтобы иметь больший запас неблокираванных процессов.
Однако если придерживаться этой стратегии, то в основной памяти может ие хватить места для нового процесса. По этой причине предусмотрен переход нового процесса в состояние приостановленного готового к выполнению. С другой стороны, создание процесса в "последний момент" приводит к уменьшению непроизводительных затрат и позволяет операционно ой ~истеме выполнять свои обязанности по созданию процессов даже тогда, когда ана переполнена блокированными процессами. Блокированный/Приостановленный -+ Блокированный. На первый взгляд может показаться, что Учитывать такой переход бессмысленно. Зачем, в конце концов, загружать в память процесс„который не готов к выполнеОднако рассмотрим такой сценарий: завершился некоторый процесс, Ф,. лава 3.
Описание процессов и УпРавление ими освободив при этом определенную часть основной памяти. В очереди кированных приостановленных процессов находится процесс, приори торого выше, чем у любого процесса из очереди готовых к выполнен приостановленных процессов. Кроме того, операционная система раси ет аргументами в пользу того, что довольно скоро произойдет сабы тарос снимет блокировку с этого высокоприоритетного процесса. При обстоятельствах резонно отдать предпочтение блокированному му проц ред готовыми к выполнению, загрузив в основную память именно его.
Выполняющийся — + Готовый/Приостановленный. Обычно выполняю процесс, у которого вышло отведенное ему время, переходит в состоя тового к выполнению. Однако при наличии процесса с более вы о ее высоким-: аритетом, который находился в очереди блокированных приостановл процессов и только что был разблокирован, операционная система отдать предпочтение именно ему.
Чтобы освободить часть основной она может перевести выполняющийся процесс непосредственно в сос готового к выполнению приостановленного процесса. 'ъ Произвольное состояние — > Завершение. Обычно завершается вып щийся в настоящий момент процесс — это происходит либо из-за того' он выполнен да конца, либо из-за ошибок при его работе. Однако в н рых операционных системах процесс может завершаться создавши:: процессом или вместе с завершением родительского процесса. Такое шение возможно при условии, что процессы из любого состояния мо реходить в состояние завершения. Другие использования приостановки До сих пор концепция временной остановки процесса ассоциировалась го отсутствием в основной памяти.
Процесс, который отсутствует в осн мяти, не может быть запущен немедленно, независимо от того, ожидает хога-то события или нет. Однако концепцию приостановленного процесса можно обобщить. и приостановленный процесс как такой, который удовлетворяет следу итериям. .. Этот процесс не может быть запущен в данный момент. . Этот процесс может как ожидать какога-то события, так и не наход состоянии ожидания. Если он находится в состоянии ожидания, то б' Рующее событие не связано с условием приостановки, а наступление тия не означает, что процесс мажет быть выполнен. ° Процесс приостанавливается самостоятельно, операционной системой',.; родительским процессом.
° Процесс не мажет выйти из состояния приостановленного до тех пор, ' не б ет уд явно выведен из этого состояния приостановившим его агентами" В табл. 3.3 .3 перечислены некоторые причины, по которым процессы могут ~остановлены. Одной из ранее обсуждавшихся причин является неабхо грузить о пр цесс на диск, чтобы вместо него можно было загрузить готовый ~нению и роцесс или проста ослабить нагрузку на виртуальную память, 1 кажда му из оставшихся процессов дополнительную порцию основной п Часть 2.