Билеты (Graur) (1114774), страница 12
Текст из файла (страница 12)
Модели жизненного цикла процесса. Контекстпроцесса.Рассмотрим типовые этапы обработки процесса в системе, совокупность этихэтапов будем назвать жизненным циклом процесса в системе. Традиционно,жизненный цикл процесса содержит этапы: образование (порождение) процесса; обработка (выполнение) процесса; ожидание (по тем или иным причинам) постановки на выполнение; завершение процесса.Однако жизненные циклы процессов в реальных системах могут иметь свою,системно-ориентированную совокупность этапов.Рассмотрим модельную ОС.Пусть имеется специальный буфер ввода процессов (БВП) – пространство, вкотором размещаются и хранятся сформированные процессы от момента ихобразования, до момента начала выполнения. На данном этапе происходитформирование всех необходимых структур данных, соответствующих процессу.
Вчастности, на данном этапе ОС формирует информацию о предварительнозаказанных данным процессом ресурсах. Основная задача БВП – «подпитка»системы новыми процессами, готовыми к исполнению.После начала выполнения процесса он попадает в буфер обрабатываемыхпроцессов (БОП). В данном буфере размещаются все процессы, находящиеся всистеме в мультипрограммной обработке.Обобщенный жизненный цикл процесса можно представить в этом случае графомсостояний. Рассмотрим, кратко, переходы процесса из состояния в состояние.701Ожидаетначалаб бЦПОбрабатывается ЦП4Ожидаетзавершениеоперацииввода/вывода35Ожидаетпродолженияобработки ЦП26Заверше0.
После формирования процесс поступает в очередь на начало обработки ЦП(попадает в БВП).1. В БВП выбирается наиболее приоритетный процесс для начала обработкиЦП (попадает в БОП).2. Процесс прекращает обработку ЦП по причине ожидания операции в/в,поступает в очередь завершения операции обмена (БОП).3. Процесс прекращает обработку ЦП, но в любой момент может бытьпродолжен (например, истек квант времени ЦП, выделенный процессу).Поступает в очередь процессов, ожидающих продолжения выполненияцентральным процессором (БОП).4. Наиболее приоритетный процесс продолжает выполнение ЦП (БОП).5. Операция обмена завершена и процесс поступает в очередь ожиданияпродолжения выполнения ЦП (БОП).6. Переход из очереди готовых к продолжению процессов в очередь процессов,ожидающих завершения обмена (например, ОС откачала содержимоеадресного пространства процесса из ОЗУ во внешнюю память) (БОП).7.
Завершение процесса, освобождение системных ресурсов. Корректноезавершение работы процесса, разгрузка информационных буферов,освобождение ресурсов (например, реальный вывод информации наустройство печати).Текущее состояние любого процесса из БОП изменяется во времени взависимости от самого процесса и состояния ОС. С каждым из процессов из БОПсистема ассоциирует совокупность данных, характеризующих актуальноесостояние процесса – контекст процесса. (в общем случае контекст процессасодержит информацию о текущем состоянии процесса, включая информацию орежимах работы процессора, содержимом регистровой памяти, используемойпроцессом, системной информации ОС, ассоциированной с данным процессом).Процессы, находящиеся в одном из состояний ожидания в своих контекстахсодержат всю информацию, необходимую для продолжения выполнения состояние процесса в момент прерывания (копии регистров, режимы ОП,настройки аппарата виртуальной памяти и т.
д.). Соответственно при сменевыполняемого процесса ОС осуществляет «перенастройку» внутренних ресурсовЦП, происходит смена контекстов выполняемых процессов.На этапе выполнения процесса ОС обеспечивает возможность корректноговзаимодействия процессов от передачи сигнальных воздействий от процесса кпроцессу до организации корректной работы с разделяемыми ресурсами.Итак, контекст процесса может состоять из:пользовательской составляющей – состояние программы, как совокупностимашинных команд и данных, размещенных в ОЗУ;системной составляющей – содержимое регистров и режимов работыпроцессора, настройки аппарата защиты памяти, виртуальной памяти,принадлежащие процессу ресурсы (как физические, так и виртуальные).Типы процессовВ различных системах используются различные трактовки определения терминапроцесс.
Рассмотрим уточнение понятия процесса.Полновесные процессы - это процессы, выполняющиеся внутри защищенныхучастков памяти операционной системы, то есть имеющие собственныевиртуальные адресные пространства для статических и динамических данных. Вмультипрограммной среде управление такими процессами тесно связано суправлением и защитой памяти, поэтому переключение процессора с выполненияодного процесса на выполнение другого является достаточно дорогой операцией. Вдальнейшем, используя термин процесс будем подразумевать полновесныйпроцесс.Легковесные процессы, называемые еще как нити или сопрограммы, не имеютсобственных защищенных областей памяти.
Они работают в мультипрограммномрежиме одновременно с активировавшей их задачей и используют ее виртуальноеадресное пространство, в котором им при создании выделяется участок памяти поддинамические данные (стек), то есть они могут обладать собственнымилокальными данными. Нить описывается как обычная функция, которая можетиспользовать статические данные программы. Для одних операционных системможно сказать, что нити являются некоторым аналогом процесса, а в других нитипредставляют собой части процессов. Таким образом, обобщая можно сказать – влюбой операционной системе понятие «процесс» включает в себя следующее: исполняемый код; собственное адресное пространство, которое представляет собойсовокупность виртуальных адресов, которые может использовать процесс; ресурсы системы, которые назначены процессу ОС; хотя бы одну выполняемую нить.При этом подчеркнем – понятие процесса может включать в себя понятиеисполняемой нити, т.
е. однонитевую организацию – «один процесс – одна нить». Вданном случае понятие процесса жестко связано с понятием отдельной инедоступной для других процессов виртуальной памяти. С другой стороны, впроцессе может несколько нитей, т. е.
процесс может представлять собоймногонитевую организацию.Нить также имеет понятие контекста – это информация, которая необходима ОСдля того, чтобы продолжить выполнение прерванной нити. Контекст нитисодержит текущее состояние регистров, стеков и индивидуальной областипамяти, которая используется подсистемами и библиотеками. Как видно, вданном случае характеристики нити во многом аналогичны характеристикампроцесса. С точки зрения процесса, нить можно определить как независимыйпоток управления, выполняемый в контексте процесса. При этом каждая нить, всвою очередь, имеет свой собственный контекст.Принципы организации свопинга.Проблема планирования определяет эксплуатационные качества системы.
Этопланирование времени, памяти. Это организация стратегий очередей.Планирование дает тип ОС. Рассмотрим ОС разделения времени. ОС разделениявремени может быть с разными квантами времени, от чего меняются качестваработы ОС. Большой квант времени – выполняются много мелких программ;маленький квант времени – многопользовательский режим работы. В ОС реальноговремени должна быть гарантия обработки времени за некоторое время.Проблема организации свопинга. Мультипрограммные ОС используют свопинг.Элементом планирования является планирование свопинга.
Пример: простейшаяоперационная система типа UNIX: полная откачка процесса в свопинговую память.Сейчас все делается по частям. Правила откачки: в контексте процесса былапеременная p_time – время непрерывного размещения процесса в область свопингаи обратно. Сначала p_time обнулилась и считала время, сколько процесс находитсяв этой области. Затем по определению расписания в ОС запускалась функцияобработки, которая анализировала область свопинга и выбирала процесс смаксимальным p_time, затем система анализировала наличие свободнойоперативной памяти. Если ее достаточно, то процесс в нее загружался, иначеоперационная система смотрела процесс, который закрыт по обмену и имеетмаксимальный p_time, и его откачивала в область свопинга.
Затем вновь анализоперативной памяти, если недостаточно, то далее анализировались процессы воперативной памяти, затем отыскивался процесс с максимальным p_time иосвобождал память. Он мешал в последнюю очередь тем процессам, которыенормально читались, однако мешал процессу в обмене. Это лишает ОСвозможности сразу закончить обмен. Это простейшая схема.БИЛЕТ 23 Процесс в UnixОпределение процесса.