В. Столлингс - Операционные системы (1114679), страница 24
Текст из файла (страница 24)
в Готовыи — в ыполияю В олняющийся. Когда наступает момент выбора нового процесса для запуска, операцион ная система выбирает один из готовых для выполнения процессов. Принцип этого выбора обсуждается в четвертой части книги. в Выполняющийся — э Завершающийся. Если процесс сигнализирует об окончании своей работы или происходит его аварийное завершение, операционная система прекращает его выполнение.
в Выполняющийся -+ Готовый. Этот переход чаще всего происходит из-за того, что процесс выполняется в течение максимального промежутка времени, отведенного для непрерывной работы одного процесса. Подобная стратегия планирования используется практически во всех многозадачных операционных системах. Такой переход возможен и по некоторым другим причинам, зависящим от конкретной операционной системы. Например, если операционная система назначает разным процессам различные приоритеты, то может случиться так, что процесс будет выгружен из-за появления процесса с более высоким приоритетом. Предположим, что выполняется процесс А, имекнций определенный приоритет, а процесс В, приоритет которого выше, блокирован. Когда операционная система обнаружит, что произошло событие, ожидаемое процессом В, она переведет этот процесс в состояние готовности, в результате роц ате чего п цесс А может быть прерван и управление перейдет к процессу В.
Говорят, что операционная система вытесняет (ргеешр1) процесс А.' Наконец, процесс сам по себе может отказаться от использования процессора. Выполняющийся -+ Блокированный. Процесс переводится в заблокированное состояние, если для продолжения работы требуется наступление некоторого события. Посылаемый операционной системе запрос обычно имеет вид вызова есс лишается неноторого ~>ообсце говоря, термин вытеснение означает, что проц ресурсо до того, как он завершит свою работу с ним. В данном слувае ресурсом являетс " "роцессор — выполняющийся процесс лог бы продолжаться„о „но его выполнение преры'тся ив.ва другого процесса. Часть 2, Процес "ана 3.
Описание процессов и управление ими а) Схема с одной очередьв олокированнмх процессов Процесс А Яфф~-'.-:,:: "::„,-;,:; .::::е'":;-.;Ф~,е.=":-'файв ' -Зв.",: гвй(Ф""„' Процесс С Часть 2. Проц какой-нибудь системной службы, т.е. щвзпва процедуры, являющейся кода операционной системы.
Процесс может запросить Р~сурс (например, нли совместно используемую ячейку виртуальной памяти), который о временно недоступным, и потребуется подождать его освобождения. Кром,. го, возможна ситуация, в которой для продолжения процесса требуется в нить некоторое действие, например операцию вводи-вывода.
Если процессьй меннваются информацией друг с другом, один из них может быть блок сосгоянии ожидания ввода или сообщения от другого процесса. е Блокированный -ь Готовый. Заблокированный процесс переходит в с ние готовности к выполнению в тот момент, когда происходит ожила ' им событие. ь Готовый — а Завершающийся.
Чтобы не усложнять картину, этот перех диаграмме состояний не показан. В некоторых системах родительский "- цесс может в любой момент прервать выполнение дочернего процесса. ме того, дочерние процессы могут прекратиться при завершении роди ского процесса.
ь Блокированный — ь Завершающийся. См. комментарии к предыд пункту. Возвратимся к нашему простому примеру. На рис. 3.4 показаны переходы дого из трех рассматриваемых процессов в различные состояния. На рис. З.б,а. ложен один из способов реализации порядка очередности. Имеется две очереди.",' редь готовых к выполнению процессов и очередь заблокированных процессов., дый процесс, поступающий в систему для обработки, помещается в очередь го к выполнению процессов. Когда операционной системе приходит время выбрать выполнения другой процесс, она выбирает его из этой очереди. Если схема тетов отсутствует, эта очередь может работать по принципу "первым вошел —:,, вым вышел".
Когда выполнение процесса прерывается, он, в зависимости от тельств, может либо завершиться, либо попасть в одну из двух очередей (гото выполнению или блокированных процессов). И, наконец, после того как прои событие, все ожидающие его процессы из очереди заблокированных переме очередь готовых к выполнению процессов. Выполняющийся (- '," ',) ~ отовмй ЯЯ Блокированный ИВ Рис. 3.4. Состояния процессов из листинга 3.2 б~ Схема с несколькими очередями блокированных процессов Рис. 3Я. Модель. представленная на рис. 3.3, с использованием очередей Такая организация приводит к тому, что после любого события операционная система должна сканировать всю очередь блокированных процессов, отыскивая среди них те, которые ожидают именно этого события.
В большой операционной системе в подобной очереди может пребывать несколько сотен или даже ть'сяч процессов. Поэтому эффективнее организовать несколько очередей, для каждого события — свою. Тогда при каком-то событии все процессы из соответствующей очереди можно будет перевести в очередь готовых к выполнению процессов (см. Рис. 3.5,6). И последнее усовершенствование: если диспетчеризация осуществляется с спользованием приоритетов, то было бы удобно организовать несколько очереде" готовых к выполнению процессов. В такой схеме каждая очередь соответствов ~вала бы своему уровню приоритета. Тогда операционной системе легко было к ла лава 3.
Описание процессов и управление ими е определять готовый для выполнения процесс с наивысшим приорите рый ждет своей очереди дольше всех остальных. [рностановленные процессы Необходимость свопинга Три основных состояния процессов, описанные в предьтдутцем разделе ( еполняющийся и блокированный), позволяют смоделировать поведение прот получить представление о реализации операционной системы. Многие опер ае системы разработаны на основе только этих трех состояний. Можно привести убедительные аргументы в пользу добавления в модель «х состояний. Чтобы понять, какие выгоды могут дать эти новые состоянитг' ютрим систему, не использующую виртуальную память, в которой каждыЕ!. ,«сс перед выполнением нужно загрузить н основнуто память.
Таким об «оцессы, представленные на рис. 3.5,б, должны находиться н основной п Теперь вспомним, что причиной разработки всех этих схем послужилот дленное, по сравнению с вычислениями, выполнение операций ввода-вынод ' «дящее к простоям процессора в однозадачной системе. Однако организация соответствии со схемой, помещенной на рис. 3.5,б, полностью эту проблему ает. Конечно, при работе в соответствии с такой моделью в памяти наход :олько процессов„и пока одни процессы ожидают окончания операций евода, процессор может перейти к выполнению других процессов.
Но проц ~тает настолько быстрее выполнения операций ввода-вывода, что вскоре нее:, «щиеся н памяти процессы оказываются в состоянии ожидания. Таким об юцессор может простаивать даже н многозадачной системе Что же делать? Можно увеличить емкость основной памяти, чтобы " «мещалось больше процессов. Но в таком подходе есть два недостат .'рных, это ведет к резкому повышению стоимости памяти системы н «ете на один бит. Во-вторых, аппетит программиста в использовании ' т для своих программ возрастает пропорционально падению ее стон ' «к что увеличение объема памяти приводит к увеличению размера |н, а не к росту их числа. Другим решением проблемы является снопинг, который включает н:, ;ренос части процессов из основной памяти на диск.
Если в основной .т ни одного готового к выполнению процесса, операционная система пе ~ин из блокированных процессов на диск (осуществляет его свопинг), по ' о в очередь приостановленных процессов, которые временно извлечены «аной памяти, Затем операционная система загружает другой процесс из «приостановленных, после чего продолжает его выполнение. Тем не менее свопинг сам по себе является операцией ввода-вывода, ть Риск ухудшить ситуацию, вместо того чтобы улучшить ее.
Однако бл му что обмен информацией с диском обычно происходит быстрее прочих оп ода-вывода (например, запись-считывание с ленты или вывод на принтер), с ще всего повышает производительность работы системы н целом. Если в модель поведения процессов ввести описанный свопинг, т '-. «идется внести и новое состояние — состояние приостановленного и 3.б,а).
Когда все процессы в основной памяти находятся в блоки 'м состоянии, операционная система может приостановить один из п , пере еведя его н приостановленное состояние и сбросив на диск. Оснобоптееся н н основной памяти пространство можно будет использовать для заузк тт другого процесса. е «С одним приостансеяеннмм состоянием б) С двумя приостановленными состояниями ри "с- аб Лиаграм.тта переходов с учетом ириостановленнь«х процессов -'«осле того как операционная система выгрузила один из процессов на диск, "ее есть две возможности выбора процесса для загрузки в основную память: 4 а может либо создать новый процесс, либо загрузить процесс, который был р"остановлен перед этим.