2011. Машбук (1114722), страница 29

Файл №1114722 2011. Машбук (2011. Машбук) 29 страница2011. Машбук (1114722) страница 292019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 29)

Структурно для этого достаточно добавить возможность перехода изсостояния обработки центральным процессором в очередь готовых на выполнениепроцессов. Т.е. система имеет возможность прервать выполнение текущего процесса (еслиисчерпался выделенный квант времени) и поместить процесс в указанную очередь. Нотакая модель не предполагает свопинга, или механизма откачки процесса во внешнююпамять. В принципе, такую возможность можно также добавить в модель системы(Рис.

80) – тогда появляется еще одно состояние, характеризующее процесс, какоткачанный во внешнюю память. Заметим, что в новое состояние могут переходитьпроцессы лишь из очереди готовых на выполнение процессов, а процессы, ожидающиеокончания ввода-вывода, свопироваться не могут, иначе в системе будут «зависать»заказы на обмен.0Ожиданиеначалаобработки1ОбработкаЦП5Завершение4БВП2БОП6Ожиданиеоперацииввода-выводаОчередь навыполнение3Рис. 79. Модель ОС с разделением времени.

6 — процесс прекращает обработкуЦП, но в любой момент может быть продолжен (истек квант времени ЦП,выделенный процессу). Поступает в очередь процессов, ожидающихпродолжения выполнения центральным процессором (БОП).0Ожиданиеначалаобработки1ОбработкаЦП5Завершение4БВП2БОП6Ожиданиеоперацииввода-вывода3Очередь навыполнениесвопингДискРис.

80. Модель ОС с разделением времени (модификация). Заблокированныйпроцесс может быть откачан (свопирован) на внешний носитель, а наосвободившееся место может быть подкачен процесс с внешнего носителя,который был откачен ранее, либо взят новый.1012.1.2 Типы процессовДо данного момента мы рассматривали процессы как некоторые субъекты ОС,которые владеют ресурсами и являются объектами планирования. На самом деле, внутрипроцесса может быть не один объект планирования, а два и более (т.е. в одном процессеможет быть две и более нити, или потока). При этом мы как бы вводим ещё один уровеньопределения процесса (Рис. 81). Процесс (или полновесный процесс) – является объектомпланирования и выполняется внутри защищённой области памяти.

Альтернативойявляются т.н. легковесные процессы, известные также как нити (или потоки), — этопроцессы, которые могут активироваться внутри полновесного процесса, могут бытьобъектами планирования, и при этом они могут функционировать внутри общей (т.е.незащищённой от других нитей) области памяти. Обратим внимание, что мы говорим олегковесных процессах, как о процессах другого иерархического уровня, нежелиполновесных (т.е. легковесные процессы реализуются внутри полновесного процесса).Причём нити, которые функционируют внутри одного полновесного процесса, работают ведином адресном пространстве, и они незащищены друг от друга.

При этом планированиюподвергается каждая нить, т.е. планировщик может осуществлять переключение с нити нанить.Основная причина использования многонитевой организации – это минимизациянакладных расходов. Мультипроцессирование внутри полновесного процесса получаетсяочень эффективным, благодаря уменьшению количества смен контекстов.а.нитьнитьнитьпроцесснитьнитьпроцессб.Рис. 81. Типы процессов: однонитевая (а) и многонитевая (б) организациипроцессов.Также отметим, что многонитевые процессы хорошо ложатся на современныемногопроцессорные системы (например, SMP-системы), т.е.

в некоторых случаях притакой организации повышается эффективность системы.Кроме того, механизм нитевой организации позволяет осуществлятьвзаимодействие нитей в рамках одного процесса, причем адресное пространство,посредством которого они взаимодействуют, остается защищенным от других процессов всистеме.Соответственно, перед операционной системой, помимо управления полновеснымипроцессами, планирования и выделения им ресурсов, возникает задача управлениянитями.Тогда определение процесса можно обобщить – понятие «процесса» включает всебя следующее:исполняемый код;собственное адресное пространство, представляющее собой множествовиртуальных адресов, которые может использовать процесс;ресурсы системы, которые назначены процессу операционной системой;хотя бы одну выполняемую нить.102В заключение отметим, что многие современные операционные системы (каксемейства Unix, так и Windows-системы, и др.) обеспечивают работу с нитями.2.1.3 Контекст процессаРассмотрим теперь, какая поддержка операционной системы необходима дляфункционирования процессов.

Здесь в первую очередь следует обратить внимание напонятие контекста процесса. Под контекстом процесса будем понимать совокупностьданных, характеризующих актуальное состояние процесса. Обычно контекст процессасостоит из трёх компонент:пользовательская составляющая — это текущее состояние программы (т.е.совокупность машинных команд и данных, размещённых в ОЗУ и характеризующихвыполнение данного процесса);аппаратная составляющая – отражает актуальное состояние центральногопроцессора в момент выполнения данного процесса (т.е. это актуальное состояниерегистров, настроек процессора и т.д.);системная составляющая – это структуры данных операционной системы,содержащие характеристики процесса.

Эти структуры данных содержат информациюидентификационного характера (PID процесса, PID «родителя» и т.д.); информацию осодержимом регистров (РОН, индексные регистры, флаги и т.д.); а такжеинформацию, необходимую для управления процессом (состояние процесса,приоритет и т.д.). Отметим, что системная составляющая процесса содержит копиюаппаратной составляющей, если процесс остановлен.Таким образом, когда процесс выполняется на процессоре, то актуальна аппаратнаясоставляющая, когда процесс отложен — актуальна системная составляющая.2.2Реализация процессов в ОС Unix2.2.1 Процесс ОС UnixМеханизм управления и взаимодействия процессов в ОС Unix послужил во многомосновой для развития операционных систем в целом, и логического блока управленияпроцессами в частности.

Во многом организация управления процессами в ОС Unixявляется эталонной, поэтому мы рассмотрим ее теперь более детально.С точки зрения понимания термина процесса в ОС Unix, данное понятие можноопределить двояко. С одной стороны, процесс можно определить как объект,зарегистрированный в таблице процессов операционной системы. Таблица процессов –одна из специальных системных таблиц, которая является программной таблицей. Второеопределение объявляет процессом объект, порожденный системным вызовом fork(). Обаопределения являются корректными и равносильными (если учесть, что в системесуществуют два особых процесса с нулевым и первым номерами, и об их особенностяхречь пойдет ниже).Остановимся сначала на первой трактовке процесса.

В операционной системеимеется таблица процессов, предназначенная для регистрации всех существующих вданный момент процессов в системе. Размер этой таблицы является параметромнастройки ОС, и, соответственно, количество процессов в системе является системнымресурсом. Таблица процессов обеспечивает уникальное именование процессов: онаустроена позиционным образом, т.е. именование процесса осуществляется посредствомномера записи таблицы, соответствующей данному процессу (нумерация строится от нулядо некоторого фиксированного значения). Этот номер записи называетсяидентификатором процесса (PID — Process Identifier).

Как только что отмечалось, двепервые записи таблицы предопределены и используются для системных нужд. Каждая103запись таблицы процессов (Рис. 82) имеет ссылку на контекст процесса, которыйструктурно состоит из пользовательской, системной и аппаратной составляющих.Пользовательская (программная) составляющая — это тело процесса. Обычнотело процесса состоит из двух частей: сегмент кода и сегмент данных. Сегмент кодасодержит машинные команды и неизменяемые константы; сегмент кода — это обычно неизменяемая программным способом часть тела процесса (отметим, что в принципеизменение может осуществляться посредством системных вызовов). Также впользовательскую составляющую входит сегмент данных, включающий областьстатических данных процесса (в т.ч.

статические переменные), область разделяемойпамяти (т.е. область памяти, которая может принадлежать двум и более процессамодновременно), а также область стека. На стеке в системе реализуется передачафактических параметров функциям, реализуются автоматические и регистровыепеременные, а также в этой области организуется динамическая память (т.н. куча).Таблица процессовКонтекст процессаПользовательский(тело процесса)адресное пространствопроцессаPIDАппаратныйСистемныйадресное пространство ядраРис. 82. Таблица процессов в ОС Unix.В ОС Unix реализована такая возможность, как разделение сегмента кода(Рис. 83).

Эта возможность предназначена для оптимизации использования ОП. Допустим,в системе работает несколько (пусть 100) пользователей, каждый из которых помимопрочего работает с одним и тем же текстовым редактором. Таким образом, в системеобрабатываются 100 копий текстового редактора. Ставится вопрос о необходимостидержать в ОЗУ все сегменты кода для этих 100 процессов. Для оптимизации подобныхситуаций в ОС Unix используется указанный механизм разделения сегмента кода. Тогдакаждый обрабатываемый в системе процесс текстового редактора в пользовательскойсоставляющей хранит ссылку на единственную копию сегмента кода редактора, а сегментданных у каждого из процессов свой.

Соответственно, в приведенном примере в памятибудут находиться один сегмент кода и 100 сегментов данных. Но рассмотренныймеханизм может иметь место в ОС только в том случае, когда сегмент кода нельзяизменить: он закрыт на запись.104Сегментданных 1Сегмент кодатекстовогоредактораСегментданных 2Процесс1Процесс2…Сегментданных NПроцессNРис. 83. Разделение сегмента кода.Аппаратная составляющая включает в себя все регистры, аппаратные таблицыпроцессора и т.д., характеризующие актуальное состояние процесса в момент еговыполнения на процессоре. Конкретная структура аппаратной составляющей зависит отконкретного процессора; обычно она включает счётчик команд, регистр состоянияпроцессора, аппарат виртуальной памяти, регистры общего назначения и т.д.Системная составляющая содержит системную информацию об идентификациипроцесса (т.е. идентификация пользователя, сформировавшего процесс), системнуюинформацию об открытых и используемых в процессе файлах и пр., а также сохраненныезначения аппаратной составляющей.

Итак, в системной составляющей контекста процессасодержатся различные атрибуты процесса, такие как:•идентификатор родительского процесса;•текущее состояние процесса;•приоритет процесса;•реальный идентификатор пользователя-владельца (идентификатор пользователя,сформировавшего процесс);•эффективныйидентификаторпользователя-владельца(идентификаторпользователя, по которому определяются права доступа процесса к файловойсистеме);•реальный идентификатор группы, к которой принадлежит владелец(идентификатор группы, к которой принадлежит пользователь, сформировавшийпроцесс);•эффективный идентификатор группы, к которой принадлежит владелец(идентификатор группы «эффективного» пользователя, по которому определяютсяправа доступа процесса к файловой системе);•список областей памяти;•таблица дескрипторов открытых файлов процесса (именно дескрипторов, т.к. одини тот же файл может быть открыт в системе многократно); файловый дескриптор –это системная структура данных, отражающая актуальное состояние работыпроцесса с файлом;•информация о том, какая реакция установлена на тот или иной сигнал (аппаратсигналов позволяет передавать воздействия от ядра системы процессу и отпроцесса к процессу);•информация о сигналах, ожидающих доставки в данный процесс;105•сохраненные значения аппаратной составляющей (когда выполнение процессаприостановлено).Рассмотрим более подробно такие атрибуты системной составляющей, какреальный и эффективный идентификаторы пользователя-владельца.

Характеристики

Тип файла
PDF-файл
Размер
3,79 Mb
Материал
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6489
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее