В. Столлингс - Операционные системы (1114679), страница 23
Текст из файла (страница 23)
Создание операционной системой процесса по явному запросу другага процесса называется порождением процесса (ргосеаз зраигп1пд). Когда один процесс порождает другой, то порождающий процесс называется родительским, или предком (рагеп$), а порождаемый процесс — дочерним, или потомком (сЫ16). Обычно "родственные" процессы обмениваютс" между собой информацией и взаимодействуют друг с другом.
Организация *акага взаимодействия является достаточно трудной задачей для программиста та (эта тема рассматривается в главе 5, "Параллельные вычисления: взаимаи аисключения и многозадачность"). Завершение процессов бай к, абч 3 2 перечислены типичные причины завершения процессов В лю компьютерной системе должны быть средства, позволяющие определить, закончи "илась выполнение процесса или нет.
Пакетное задание должно включать в г, ава 3 Описание процессов и управление ими Завершение родитель- ского процесса Запрос со стороны ро- дительского процесса зычное завершение ревышеиие лимита веденского программе ~емени вдостаточный объем ~мяти вход зз пределы отвепзой области памяти пибка защиты арифметическая ошибка влишиее ожидание пибкз ввода-вывода .верная команда ~мнила с недоступны- ~ привилегиями .правильное испольваиие данных вмешательство опера- ра или операционной стемы Часть 2. Процес ;бя команду типа Наяд (останов) зли какой..то явный вызов службы операц ой системы, приводящий к заверпению процесса. В первом случае генерир в прерывание для извещения опврационной системы о завершении проц .апример, в системе с разделением времени процесс пользователя должен б явершен, когда пользователь выхвдит из системы или выключает терминал. ерсональном компьютере или рвЬчей станции пользователь может выйтириложения (например, закрыть программу обработки текста или электрон яблицу).
Все эти действия в конечном счете приведут к тому, что будет выз яужба операционной системы, заввршающая процесс. аблица 3.2. Причины завершения процессов Процесс вытмвает службу операционной системы, чтобы е общить, чтав~ завершил свою работу Общее время выполнения процесса превышает заданное дельное зниение. Это время может измеряться иескольк способами. 6яыим из иих является учет полного времени, траченного яа выполнение ("по настенным часам"); при полнении интерактивного процесса время можно отсчитыв с момента пмледнего ввода данных пользователем Для работы процесса требуется больше памяти, чем имеется-.' системе Процесс пытвется получить доступ и ячейке памяти, к к рой у него ввт прав доступа Процесс пытвется использовать недоступный для него рес или Файл, вяв пытается сделать это недопустимым образом .
например, производит попытку записи в файл, открыт только для ятепия Процесс пьгввтся выполнить запрещенную арифметическую рацито, например, деление на ноль, или пытается использо число, превышающее возможности аппаратного обеспечения Процесс ждвт наступления определенного события доль чем задано в параметрах системы Во время ввца или вывода происходит ошибка. Например, удается иай"и нужный файл или выполнить чтение или пись за мавтамально возможное количество попыток (ког например, и магнитном носителе попался дефектный у сток) или производится попытка выполнить недопустим операцию (ввпример, чтение с печатающего устройства) Процесс питается выполнить несуществующую кома (часто это бивпет, если процесс переходит в область данных пытается ивтврпретировать их как команду) Процесс пытвется использовать команду, зарезервирован для оперэцивпной системы Честь давввтт принадлежит не к тому типу или не иницизли зировапа По какой-лито причине операционная система может заве шить процес (взпример, в случае взэимоблокировки) При ершевии родительского процессе операционная системз может автоматически прекращать все его дочерние процессы Обычно родительский процесс имеет право прекращать любой из своих дочерних процессов Кроме того, к завершению процессов могут привести и другие ошибки или условия отказа.
каза. В табл. 3.2 перечислены некоторые из наиболее часто возникающих условий.4 Наконец, в некоторых операционных системах процесс может быть заверп1ен процессом, который его породил, а также при завершении самого родительского процесса. Модель с пятью состояниями Если бы все процессы всегда были готовы к выполнению, то очередь на рис. 3.2,б могла бы работать вполне эффективно.
Такая очередь работает по принципу обработки в порядке поступления, а процессор обслуживает имеющиеся в наличии процессы круговым (гоипй-гоЫп)э методом (каждому процессу в очереди отводится определенный промежуток времени, по истечении которого процесс возвращается обратно в очередь, если он не был блокирован). Однако даже в таком простом примере, который был описан выше, подобная реализация не является адекватной: некоторые из не выполняющихся процессов готовы к выполнению, в то время как другие являются заблокированными и ждут окончания операции ввода-вывода. Таким образом, при наличии только одной очереди диспетчер не может просто выбрать для выполнения первый процесс из очереди. Перед этим он должен будет просмотреть весь список, отыскивая незаблокированный процесс, который находится в очереди дольше других.
Естественнее было бы разделить все не выполняющиеся процессы на два типа: готовые к выполнению и заблокированные. Такая схема показана на рис. 3.3. Здесь добавлены еще два состояния, которые окажутся полезными в дштьнейшем. Опишем каждое из пяти состояний процессов, представленных на диаграмме. Выполнякпцийся.
Процесс, который выполняется в текущий момент времени. В настоящей главе предполагается, что на компьютере установлен только один процессор, поэтому в этом состоянии может находиться только один процесс. Готовый к выполнению. Процесс, который может быть запущен, как только для этого представится возможность. Блокированный. Процесс, который не может выполняться до тех пор, пока не произойдет некоторое событие, например завершение операции ввода-вывода. ~ Снисходительиал операционная система е нетготпарых случаях .мажет ио.тволлть "ользователю восстаиовить работу тврамесса.
в котором возникли условия отназа, ве ттрсиращая его. Налримср, если пользователь запросил доступ к файлу„тг моторолту у ме~с метл доступа, операционная система может вростло сообщить пользователю, чттто елву оптиазамо е доступе. лредастттаеие процессу возможность продолжать свою работу. Иногда исаолыуеттвся ттвермик "коруссльний метод". — Прим. перев. Глана 3. Описание процессов и управление ими в п.овый. Только что с озданный процесс, который еще не помещен онной системой в п л ул выполнимых процессов. Обычно это новый который еще не загружен в основную память.
° Завершающийся. П щи - Процесс, удаленный операционной системой из полнимых процессов. ,. Освобождение вв1йс~> -; >воФ> Рис. З.З. Иодель с яятьн> состояниями Состояния "новый" и "завершающийся" пред редставляют собой полез >укции для управления процессами. Первое и рвое из них соответствует и горый был только что определен. Например е , если новы пользователь й войти в систему с разделением времени или в систему поступает новое ' . задание, операционная система может определи ть новы процесс в Во-первых, она выполняет всю необходимую рутинную работу: и цес ивается идентификато ф втор, формируются все необходимые для упр ра оту: процес щессом таблицы. В этот пе риод времени процесс находится в состоянии ' Это означает, что опе а р ционная система выполнила необходимые для" ~ процесса действия, но еще не приготовилась к к его запуску. Например> >% ~ионная система может иметь ограничения по количеству одновремен к ..и р р,, .няющихся и о ессов.
Т р ц . акие ограничения устанавливаются, например, снижать произво ительн д ость системы (или не переполнять основную п лицы управления новыми и процессами с необходимой операционной юрмацией со е ж д р атся в основной памяти, однако самих процессов т , т.е. код программы, которую нужно выполнить, не загружен в п ным, относящимся к этой и программе, не выделено пространство. Отвеч ему процессу и ог амма р р остается во вторичной памяти (обычно это диск)= Выход и о есса р ц.
из системы также происходит в два этапа. Во-первых, : переходит в состояние заве ершающегося при достижении точки естестве .ршения, а также ког а он д останавливается из-за возникновения неустр юбки или когда его останавливает другой процесс, обладающий необход этого полномочиями. После е этого момента процесс больше не может в 'ся. Опе ион рац ная система временно сохраняет таблицы ы и другую ин од В - р лЫели нонцеяция виртуальной аалсяти во внимание не и В рассмат иваемой . од системах„яодде лсиваю их ви с~ -, р щ ртуальную память, при переходе процесса ив имание не нр ар ояерационных сис ра обсуждение виртуальной памяти можно и Й но нативг ых систем", а с>алее подрооное — в главе 8, "Виртуальная намять".
~вязанную с этим заданием, так что вспомогательные программы могут пот„все необходимые сведения о завершившемся процессе (например, эти данбиться программе, ведущей учет использования процессорного огут понадо итьс е м и и других ресурсов). осле ). П того как эти программы извлекут всю необхоемена Г истеме больше не нужно хранить данные, ю ин информацию, операционно ~ с и цессом, и он полностью удаляется из системы. На рис.
3.3 показань1 типы событий, соответствующие кажд у нные с процесс ом из возможеходов из одного состояния ния в другое. Возможны следующие переходы. ных пере" ° Нулевое состояние — э овыи. Д. Н ". Для выполнения программы создается новыи процесс. Это со ытие б может быть вызвано одной из причин, перечисленных в табл. 3.1. ° Новый -+ Готовыи. п . О ерационная система переводит процесс из состояния нового в состояние готово вого к выполнению, когда она будет готова к обработке дополнительных пр процессов. В большинстве систем устанавливается ограничение на кол ичество существующих процессов или на объем выделяемо для про й ля п цессов виртуальной памяти. Таким образом предотвращается снижение произ водительности которое может произойти, если будет за> груж ужено слишком много активных процессов.