Н.В. Вдовикина, А.В. Казунин, И.В. Машечкин, А.Н. Техехин - Системное программное обеспечение - взаимодействие процессов, страница 2
Описание файла
PDF-файл из архива "Н.В. Вдовикина, А.В. Казунин, И.В. Машечкин, А.Н. Техехин - Системное программное обеспечение - взаимодействие процессов", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Одним из важнейших таких понятий является понятиепроцесса. В общем случае процесс можно определить каксовокупность данных и машинных команд, исполняющуюся врамках ВС и обладающую правами на владение некоторым наборомресурсов. Эти права могут носить эксклюзивный характер, когдаресурс принадлежит только одному процессу, либо ресурс можетодновременно принадлежать нескольким процессам – в этом случаересурс называется разделяемым.ВовсехсовременныхВСподдерживаетсярежиммультипрограммирования, поэтому одной из основных функций ОСявляется задача управления процессами в ВС. Эта задача включает всебя:- обеспечение жизненного цикла процессов (порождение,выполнение и уничтожение процессов);- распределение ресурсов ВС;- синхронизацию процессов;- организацию межпроцессного взаимодействия.2 Понятие процесса.Нетрудно найти целый ряд “синонимов” понятия типа“процесс” – процесс, нить, задача, задание или программа, причем в5различных ОС могут присутствовать только часть понятий из этогонабора, и их интерпретацияво многом будет зависеть отконкретной вычислительной среды, где они используются.
Такимобразом, разные операционные системы оперируют с разнымипонятиями относительно базовой сущности, с которой работает ОС .Более того эти понятия могут переплетаться, т.е. задача можетсостоять из нескольких процессов, а процесс имеет многонитевуюструктуру.Для каждого процесса определена структура данных,фиксирующая текущее состояние процесса. Такую структуруназывают контекстом процесса. Она существует с моментасоздания процесса и до момента завершения его работы. Взависимости от конкретной операционной системы, даннаяинформационная структура может включать в себя содержимоепользовательского адресного пространства (т.е. содержимоесегментов программного кода, данных, стека, разделяемыхсегментов и сегментов файлов, отображаемых в виртуальнуюпамять) – пользовательский контекст, содержимое аппаратныхрегистров (таких, как регистр счетчика команд, регистр состоянияпроцессора, регистр указателя стека и регистров общего назначения)– регистровый контекст, а также структуры данных ядра ОС,связанные с этим процессом (контекст системного уровня).
Вобщем случае данная информация может дополняться или менятьсяпо ходу исполнения процесса в зависимости от того, чем в данныймомент процесс занимался.Одной из целей создания и поддержания такой структурыявляется возможность продолжения корректной работы процессапосле приостановки его функционирования на процессоре. В моментвыделения следующему процессу вычислительных ресурсовпроисходит так называемое переключение контекста, в результатекоторого происходит сохранение контекста текущего процесса ипередача управления новому.2.1 Некоторые типы процессов.2.1.1 «Полновесные процессы»Существует понятие «полновесные процессы» - это процессы,выполняющиесявнутризащищенныхучастковпамятиоперационной системы, то есть имеющие собственные виртуальныеадресные пространства для статических и динамических данных.Для «полновесных процессов» можно сказать, что операционнаясистема поддерживает их обособленность: у каждого процесса6имеется свое виртуальное адресное пространство, каждому процессуназначаются свои ресурсы - файлы, окна, семафоры и т.д.
Такаяобособленность нужна для того, чтобы защитить один процесс отдругого, поскольку они, совместно используя все ресурсы ВС,конкурируют с друг другом. В общем случае процессы принадлежатразным пользователям, разделяющим один компьютер, и ОС беретна себя все функции, связанные с распределением ресурсов междуконкурирующими процессами. В операционных системахуправление такими процессами тесно связанно с управлением изащитой памяти, поэтому переключение процессора с выполненияодного процесса на выполнение другого является достаточнодорогой операцией по времени.2.1.2 «Легковесные процессы»Наряду с «полновесными процессами» существуют и«легковесные процессы», они же нити, которые в той или инойстепени присутствуют в различных операционных системах.
Примультипрограммировании повышается пропускная способностьсистемы, но отдельный процесс никогда не может быть выполненбыстрее, чем если бы он выполнялся в однопрограммном режиме.Однако задача, решаемая в рамках одного процесса, может обладатьвнутренним параллелизмом, который позволяет ускорить еевыполнение. Например, в ходе выполнения задачи происходитобращение к внешнему устройству, и на время этой операции можноне блокировать полностью выполнение процесса, а продолжитьвычисления по другой "ветви" процесса.
Для этих целейсовременные ОС предлагают использовать механизм многонитевойобработки (multithreading). При этом вводится новое понятие "нить"(thread). Нити, относящиеся к одному процессу, не настолькоизолированы друг от друга, как процессы в традиционноймногозадачной системе, между ними легко организовать тесноевзаимодействие. Нити, или «легковесные процессы», во многихотношениях схожи с процессами. Каждая нить выполняется строгопоследовательно и имеет свой собственный программный счетчик истек. Нити, как и процессы, могут, например, порождать нитипотомки, могут переходить из состояния в состояние. Подобнотрадиционным процессам (то есть процессам, состоящим из однойнити), нити могут находится в одном из следующих состояний:ВЫПОЛНЕНИЕ, ОЖИДАНИЕ и ГОТОВНОСТЬ.
Пока одна нитьзаблокирована, другая нить того же процесса может выполняться.Нити разделяют процессор так, как это делают процессы, всоответствии с различными вариантами планирования.7Однако различные нити в рамках одного процесса ненастолько независимы, как отдельные процессы. Все такие нитиимеют одно и то же адресное пространство. Это означает, что ониразделяют одни и те же глобальные переменные. Поскольку каждаянить может иметь доступ к каждому виртуальному адресу, одна нитьможет использовать стек другой нити.
Все нити одного процессавсегда решают общую задачу одного пользователя, и аппарат нитейиспользуется для более быстрого решения задачи путем еераспараллеливания. При этом программисту очень важно получить всвое распоряжения удобные средства организации взаимодействиячастей одной задачи. Кроме разделения адресного пространства, всенити разделяют также набор открытых файлов, таймеров, сигналов ит.п.Итак, нити имеют собственные: программный счетчик, стек,регистры, нити-потомки, состояние. В то же время все нити одногопроцессаразделяют: адресное пространство, глобальныепеременные,открытыефайлы,таймеры,статистическуюинформацию.В рамках одной ОС понятия полновесного и легковесногопроцесса (нити) могут как взаимозаменяться (например, в случае ОСс однонитевой организацией процесса, когда каждый процесс можетиметь лишь одну исполняемую нить), так и дополнять друг друга (вслучае многонитевой организации процесса, когда каждый процесспредставляет собой совокупность исполняемых нитей).Обобщая сказанное, отметим, что понятие процесса в любойОС включает в себя:- исполняемый код;- собственное виртуальное адресное пространство;- совокупность ресурсов, выделенных данному процессуоперационной системой;- хотя бы одну исполняемую нить.2.2 Жизненный цикл процесса.С момента запуска и до завершения выполнения процесс можетнаходиться в различных активных или пассивных состояниях,которые в совокупности описывают жизненный цикл процесса ввычислительной системе.
Количество и характеристики такихсостояний может меняться в зависимости от конкретнойвычислительной системы. Можно выделить несколько основныхсостояний процесса:81. ПОРОЖДЕНИЕ – состояние процесса, когда он уже создан,но не готов к запуску, при этом создаютсяинформационные структуры, описывающие данныйпроцесс; загружается кодовый сегмент процесса воперативную память или в область свопинга.2. ВЫПОЛНЕНИЕ - активное состояние процесса, во времякоторого процесс обладает всеми необходимыми ресурсамии непосредственно выполняется процессором;3. ОЖИДАНИЕ - пассивное состояние процесса, процессзаблокирован, он не может выполняться по своимвнутренним причинам, т.е. он ждет осуществлениянекоторого события, например, завершения операцииввода-вывода, получения сообщения от другого процесса,освобождения какого-либо необходимого ему ресурса;4. ГОТОВНОСТЬ - также пассивное состояние процесса:процесс имеет все требуемые для него ресурсы, он готоввыполняться, однако процессор занят выполнением другогопроцесса.5.
ЗАВЕРШЕНИЕ – конечное состояние в жизненном циклепроцесса, процесс выгружается из памяти и разрушаютсявсе структуры данных, связанные с ним.Жизненный цикл процессаНачало обработки процессаОбработка процесса ЦПЗавершениеОжиданиеГотовностьРис. 1 Общая схема состояний процесса.В общем случае жизненный цикл процесса представлен на Рис. 1.Жизненный цикл любого процесса начинается с момента егосоздания, когда он попадает в очередь готовых к выполнениюпроцессов. Жизненный цикл процесса во всех состояниях, кроме9собственно выполнения, всегда связан с той или иной очередью,количество которых также зависит от операционной системы (см.Рис.
1). Основной причиной попадания процесса в ту или инуюочередь является невозможность взаимодействия с тем или инымустройством (это может быть как центральный процессор, так илюбое устройство ввода-вывода) в данный момент времени.Поэтому основные состояния процесса описываются наборомочередей в операционной системе: очередь на начало обработки,очередь готовых процессов, очередь заблокированных процессов.Последняя есть совокупность очередей, связанных с ожиданиемиспользования конкретных ресурсов в вычислительной системе.Количество таких очередей меняется в зависимости от конкретнойархитектуры или операционной системы.
Это множество очередейможет состоять из очередей распределения процессов пофункциональным устройствам, времени ЦП, доступа к внешним иливнутренним устройствам ввода вывода, памяти. Итак, жизненныйцикл процесса есть совокупность состояний, которые в основномхарактеризуются либо работой процесса, либо ожиданием в какойлибо очереди.Как видно из Рис. 1, начальным этапом обработки процесса воперационной системе является очередь на запуск. Существование идлина такой очереди зависит от конкретной операционной системы.Если это однозадачная ОС, то длина такой очереди равна нулю, илипопросту говоря ее не существует.
Если ОС являетсямультизадачной, то длина такой очереди определяется конкретнойОС. Движение в этой очереди может быть организовано как спомощью элементарных алгоритмов типа FIFO, так и с помощьюболее сложных алгоритмов с использованием понятия приоритета идинамического планирования.Из очереди на запуск, если такая существует, процесс переходитв стадию выполнения.