Главная » Просмотр файлов » А. Робачевский - Операционная система UNIX

А. Робачевский - Операционная система UNIX (1114671), страница 46

Файл №1114671 А. Робачевский - Операционная система UNIX (А. Робачевский - Операционная система UNIX) 46 страницаА. Робачевский - Операционная система UNIX (1114671) страница 462019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

По этой же причине,обработка прерываний не должна блокироваться, поскольку это вызоветблокирование выполнения независимого процесса.Напротив, особые ситуации вызваны самим процессом, и связаны с вы!полнением тех или иных инструкций, например, деление на ноль или об!ращение к несуществующей странице памяти.

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

Эта реализация существенным образом зависит от аппаратнойархитектуры системы. Например, для систем на базе процессоров Intel ис!пользуются шлюзы (gate). Имеются два типа шлюзов: шлюзы ловушек (trapgate) и шлюзы вызовов (call gate). Для осуществления вызова через шлюзловушки процесс выполняет команду прерывания, а при работешлюз вызова — команду межсегментного вызова.www.books-shop.com234Глава 3.процессамиВыполнение системного вызова происходит в режиме ядра, но в контекстепроцесса, сделавшего системный вызов. Таким образом, открыт доступ кадресному пространству процесса и используется стек ядра процесса.Сон и пробуждениеПроцесс обычно переводится в состояние сна при обработке системнойфункции. Если для завершения обработки запроса требуется недоступныйресурс, процесс снимается с процессора и переводится в состояние сна.Недоступность ресурса может быть связана с запуском операции вво!да/вывода с диска, ожиданием выделения (освобождения) буфера, ожида!нием ввода или вывода на терминал или ожиданием завершения дочернегопроцесса.

К недоступным ресурсам можно также отнестивпамяти страницу, к виртуальному адресу которой обратился процесс. Влюбом случае процесс переходит в состояние сна до наступления события,делающего ресурс доступным. Во время сна процесс не потребляет вычис!лительные ресурсы системы. При этом выполняется переключение кон!текста на другой, высокоприоритетный процесс для выполнения. Такимобразом, процесс, ожидающий ввода с клавиатуры, не занимает процес!сор, циклически опрашивая терминальную линию, а процесс, считываю!щий данные с диска, не блокирует выполнение других задач.Состояние сна — это логическое состояние процесса, при этом он не пе!ремещается физически в памяти. Переход в состояние сна в первую оче!редь определяется занесением в системную таблицу процессов соответст!вующего флага состояния и события, пробуждающего процесс.События возвещают о доступности того или иного ресурса.

Как правилособытия связаны с работой периферийных устройств, таких как диск, тер!минал и принтер, поэтому об их наступлении сигнализируют соответст!вующие аппаратные прерывания. Наступления одного и того же событияможет ожидать несколько процессов. Поскольку переход из состояния всостояние акт скорее логический, то и пробуждаются все эти процессыодновременно.

Однако это не означает, что какой!либо один из них сразуначнет выполняться. Это лишь приводит к тому, что их состояние меняет!ся от "сна" к "готов к выполнению", и они помещаются в очередь на за!пуск. Задачу выбора процесса для запуска затем решает планировщик про!цессов.События, в ожидании которых "засыпают" процессы, не являются равно!ценными.Во!первых, они различаются по вероятности наступления. Например со!бытие, связанное с завершением операции ввода с диска или освобожде!нием буфера, имеет высокую вероятность. Как правило, подобные опера!ции имеют конечное время выполнения, в противном случае система ока!www.books-shop.comЗавершение выполнения процесса235залась бы заблокированной.

С другой стороны, вероятность наступлениясобытия, связанного с вводом с терминала, может быть весьма низкой.Пользователь может надолго оставить терминал, не завершив сеанса рабо!ты с системой. В длительном ожидании события нет ничего опасного —процесс не занимает ресурсы процессора, однако без специальных мервыключение терминала приведет к блокировке этого устройства. Для тогочтобы избежатьситуации, должна существовать возможностьвывести процесс из состояния сна, несмотря на отсутствие ожидаемогособытия. В этом случае используется стандартное решение — отправлениепроцессу сигнала. В противоположность этому, отправление сигнала про!цессу, ожидающему операции ввода с диска, может привести к ухудшениюпроизводительности системы. Поэтому все события и связанные с н и м иресурсы разделяются на две категории по вероятности их наступления: надопускающие прерывание сигналом и на не допускающие таковых.Во!вторых, процессы, разбуженные событием, должны иметь различнуювероятность запуска.

Это, в первую очередь, связано с тем, что несколькоресурсов могут отображаться на одно событие. Например, процесс А, ожи!дающий завершения операции ввода с диска, и процесс В, ожидающийосвобождения буфера ввода, будут связаны с одним и тем же событием.Они оба окажутся "разбуженными" и затем "готовыми к запуску" после за!вершения этой операции. Если процесс В будет запущен первым, он всеравно не сможет выполняться, так как буфер не освобожден процессом А.Даже в случае, когдапроцессы связаны с различными событиями,необходимо отдавать предпочтение процессу с более ценным ресурсом.Например, освобождение буфера ввода безусловно предпочтительнее за!вершения ввода с терминала.Поскольку планировщик принимает решение о запуске процесса, основы!ваясь на приоритетах, единственным способом установить "справедливый"порядок запуска процессов является присвоение определенного приорите!та каждому событию.

Приоритет процесса и его влияние на планированиедостаточно подробно обсуждались в разделе "Контекст процесса".Завершение выполнения процессаПроцесс завершает свое выполнение с помощью функции exitЭтафункция может быть вызвана системным вызовома если заверше!ние процесса вызвано получением сигнала, функциювызываетсамо ядро. Функция exitвыполняет следующие действия:Отключает все сигналы.Закрывает все открытые файлы.Сохраняет статистикукод возврата в записиресурсов итаблицы процессов.www.books-shop.com236ППППГлава 3.управления процессамиИзменяет состояние процесса на "зомби".Делает процессродительским для всех потомков данногопроцесса.Освобождает адресное пространство процесса, u!area, карты отобра!жения и области свопинга, связанные с процессом.Отправляет сигналродительскому процессу, уведомляя егоо "смерти" потомка.Пробуждает родительский процесс, если тот ожидает завершения по!томка.Запускает функцию переключения контекста, в результате чего вы!сокоприоритетный процесс получает доступ к вычислительным ре!сурсам.После завершения выполнения функции exitпроцесс находится в со!стоянии "зомби".

При этом от процесса остается записьв таблицепроцессов, содержащая статистику использования вычислительных ресур!сов и код возврата. Эта информация может потребоваться родительскомупроцессу, поэтому освобождение структурыпроизводит родитель спомощью системного вызовавозвращающего статистику и код воз!врата потомка. Если родительский процесс заканчивает свое выполнениераньше потомка, "родительские права" переходят к процессуВэтом случае после смерти потомкаделает системный вызови освобождает структуруДругая ситуация возникает, если потомок заканчивает свое выполнениераньше родителя, а родительский процесс не производит вызоваВэтом случае структурапотомка не освобождается и процесс продол!жает находиться в состоянии "зомби" до перезапуска операционной систе!мы.

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

Мы уже рассмотрели в преды!дущих главах сигналы с точки зрения пользователя и программиста. Те!перь мы остановимся на обслуживании сигналов операционной системой.Группы и сеансыГруппы процессов и сеансы уже обсуждались в главе 2. Такое представле!ние набора процессов используется в UNIX для управления доступом кwww.books-shop.comСигналы237терминалу и поддержки пользовательских сеансов работы в системе.

Пере!числим еще раз наиболее важные понятия, связанные с группами и сеан!сами.Группа процессов. Каждый процесс принадлежит определенной груп!пе процессов. Каждая группа имеет уникальный идентификатор.Группа может иметь в своем составе лидера группы — процесс, чейидентификатор PID равен идентификатору группы. Обычно процесснаследует группу от родителя, но может покинуть ее и организоватьсобственную группу.Управляющий терминал. Процесс может быть связан с терминалом,который называется управляющим. Все процессы группы имеютодин и тот же управляющий терминал.Специальный файл устройства /dev/tty. Этот файл связан с управ!ляющим терминалом процесса.

Драйвер для этого псевдоустройствапо существу перенаправляет запросы на фактический терминальныйдрайвер, который может быть различным для различных процессов.Например, два процесса, принадлежащие различным сеансам, от!крывая файл /dev/tty, получат доступ к различным терминалам.Управление сигналамиСигналы обеспечивают механизм вызова определенной процедуры принаступлении некоторого события.

Каждое событие имеет свой идентифи!катор и символьную константу. Некоторые из этих событий имеют асин!хронный характер, например, когда пользователь нажимает клавишу <Del>или <Ctrl>+<C> для завершения выполнения процесса, другие являютсяуведомлением об ошибках и особых ситуациях, например, при попыткедоступа к недопустимому адресу или вызовы недопустимой инструкции.Различные события, соответствующие тем или иным сигналам, подробнорассматривались в главе 2.Говоря о сигналах необходимо различать две фазы этого механизма — ге!нерация или отправление сигнала и его доставка и обработка.

Сигнал от!правляется, когда происходит определенное событие, о наступлении кото!рого должен быть уведомлен процесс. Сигнал считаетсякогда процесс, которому был отправлен сигнал, получает его и выполняетего обработку. В промежутке между этими двумя моментами сигнал ожи!даетОтправление сигналаЯдро генерирует и отправляет процессу сигнал в ответ на ряд событий,которые могут быть вызваны самим процессом, другим процессом, преры!ванием или какими!либо внешними событиями. Можно выделить основ!ные причины отправки сигнала:www.books-shop.com238Глава 3.управления процессамиОсобые ситуацииКогда выполнение процесса вызывает особуюситуацию, например, деление на ноль, процессполучает соответствующий сигнал.ТерминальныепрерыванияНажатие некоторых клавиш терминала, напри!мер,<Ctrl>+<C> или <Ctrl>+<\>, вызы!вает отправление сигнала текущему процессу,связанному с терминалом.Другие процессыПроцесс может отправить сигнал другому про!цессу или группе процессов с помощью систем!ного вызова kill(2).

В этом случае сигналы яв!ляются элементарной формой межпроцессноговзаимодействия.УправлениезаданиямиКомандные интерпретаторы, поддерживающиесистему управления заданиями, используютсигналы для манипулирования фоновым и те!кущими задачами. Когда процесс, выполняю!щийся в фоновом режиме делает попытку чте!ния или записи на терминал, ему отправляетсясигнал останова. Когда дочерний процесс за!вершает свою работу, родитель уведомляется обэтом также с помощью сигнала.КвотыКогда процесс превышает выделенную ему кво!ту вычислительных ресурсов или ресурсов фай!ловой системы, ему отправляется соответст!вующий сигнал.УведомленияПроцесс может запросить уведомление о насту!плении тех или иных событий, например, го!товности устройства и т.

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

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

Список файлов книги

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