Главная » Просмотр файлов » Ю. Вахалия - UNIX изнутри (2003)

Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 14

Файл №1114670 Ю. Вахалия - UNIX изнутри (2003) (Ю. Вахалия - UNIX изнутри (2003)) 14 страницаЮ. Вахалия - UNIX изнутри (2003) (1114670) страница 142019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Режим и контекст выполнения Мы отметили основные различия между режимами задачи и ядра, пространством процесса и системы, контекстом процесса и системы. На рис. 2.2 проиллюстрированы все эти определения. Код приложения выполняется в режиме задачи и контексте процесса и может иметь доступ только к про- используемых последовательностью функций ядра, инициированной вызовом из процесса. Многие реализации 13М1Х располагают стек ядра в адресном пространстве каждого процесса, но при этом запрещают к нему доступ в режиме задачи.

Концептуально область и и стек ядра хоть и создаются для каждого процесса отдельно и хранятся в его адресном пространстве, они, тем не менее, являются собственностью ядра. Еще одним важным понятием является контекст выполнения. Функции ядра могут выполняться только в контексте процесса или в азстлемиом контексте.

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

Такие задачи не зависят от какого-либо конкретного процесса и, следовательно, обрабатываются в системном контексте (также называемом контекстом прерываний). Если ядро функционирует в системном контексте, то оно не должно иметь доступа к адресному пространству, области и и стеку ядра текущего процесса. Ядро также не должно в этом режиме блокировать процессы, так как это приведет к блокировке «невинного» процесса.

64 Глава 2, Ядро и процессы странству процесса. Системные вызовы и исключения обрабатываются в режиме ядра, но в контексте процесса, однако эти задачи могут иметь доступ к пространству процесса и системы. Прерывания обрабатываются в режиме ядра и системном контексте и могут иметь доступ только к пространству системы, 2.3. Определение процесса Так что же такое процесс в системе !))ч1Х? Наиболее часто встречающийся ответ на этот вопрос таков: «Процесс — это экземпляр выполняемой программы».

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

Он также запрашивает системные службы, которые выполняются для него и от его имени ядром. Каждый процесс имеет определенное время жизни. Большинство процессов создаются при помощи системного вызова !ой или Фог1 и работают до тех пор, пока не будут завершены вызовом ех11. Во время функционирования процесс может запускать одну или несколько программ. Для запуска программ процесс использует системный вызов ехес. В системе !.1!ч1Х процессы иерархически строго упорядочены. Каждый процесс имеет одного родителя (рагепг, или родительский процесс) и может иметь также одного или нескольких потомков (с)п!д, или процесс-потомок). Иерархия процессов может быть представлена как перевернутое дерево, в вершине (основании) которого находится процесс !п1б Процесс йпг (названный так в силу того, что он запускает программу /е1с/1п1г) является первым прикладным процессом, создаваемым во время загрузки системы.

Этот процесс порождает все остальные прикладные процессы. Во время запуска системы создаются несколько различных процессов, например зваррег или радедаешоп (называемого также раяеоцг даепюп), которые не являются потомками !п1!. Если какой-либо процесс завершен и после него остаются функционирующие процессы-потомки, то они становятся «осиротеааими» (огрЬап) и наследуются процессом 1п1Е 2.3.1. Состояние процессе В системе 11)ч'!Х процессы всегда имели строго определенное состояние.

Переход от одного состояния к другому осуществляется вследствие различных событий. На рис. 2.3 показаны важнейшие состояния процесса в системе !Ж1Х, а также события, являющиеся причиной перехода в иное состояние. 2.3. Определение процесса 65 Системный вызов Готя создает процесс, который начинает свой жизненный цикл в начальном состоянии, также называемом перелоднььн (Ы1е). После тОго как создание процесса завершится, вызов 1ой переводит его в состояние готовности к работе (геаг1у то гцп), в котором процесс ожидает своей очереди на обслуживание.

В какой-то момент времени ядро выбирает этот процесс для выполнения и инициирует переключение контекста. Это производится вызовом процедуры ядра (обычно называемой зтттс1т), которая загружает аппаратный контекст процесса (см. раздел 2.3.2) в системные регистры и передает ему управление. Начиная с этого момента новый процесс ведет себя так же, как и любой другой. Последующие изменения его состояния описаны ниже. Остановлен Остановлен 1 ', Продолжение Пробуждение Рис. 2.3.

Состояния процесса и переходы процесса в иные состояния Процесс, функционирующий в режиме задачи, переходит в режим ядра в результате системного вызова или прерывания и возвращается обратно в ре- 66 Глава 2. Ядро и процессы жим задачи после завершения процедуры обработки'.

Пока обрабатывается системный вызов или прерывание, процессу иногда необходимо ждать некоторого события или освобождения ресурса, недоступного в данный момент времени. Такое ожидание реализуется вызовом Меер(), который помещает процесс в очередь «спящих» процессов и переводит его в спяигее, или ожидающее (аь1еер), состояние. После того как необходимое событие произойдет или ресурс станет доступен, ядро «разбудит» процесс, который с этого момента снова станет готов к работе и перейдет в очередь на выполнение. Когда процесс планируется на выполнение, он изначально выполняется в режиме ядра (состояние выполнения ядролг), где происходит переключение его контекста. Следующее.

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

главу 4). В любом случае ядро освобождает все ресурсы завершаемого процесса (сохраняя информацию о статусе вьпода и использовании ресурсов) и оставляет процесс в состоянии зомби (гошЬ1е). Процесс остается в этом состоянии до тех пор, пока его процесс-родитель не вызовет процедуру втаб (или один из ее вариантов), которая уничтожит процесс и передаст статус выхода родительскому процессу (см. раздел 2.8.6).

В системе 4ВЯЭ определены дополнительные состояния, не поддерживаемые в системах 5УК2 или 5УКЗ. Процесс может быть остановлен (згоррес1) или переведен в состояние ожидания при помощи сигнала остановки (5165ТОР, 516Т5ТР, 516ТТВт' или 516ТТОП). В отличие от других сигналов, которые отрабатываются только во время выполнения процесса, сигнал остановки изменяет состояние процесса немедленно. Если процесс находится в состоянии работы или готовности к работе, то его состояние изменяется на остановленное.

Если процесс находился в спящем режиме, когда поступил сигнал, его состояние изменится на спящее и остановленное. Остановленный процесс может продолжить работу при помощи сигнала продолжения (516СОМТ), который возвратит его в состояние готовности к работе. Если процесс был остановлен, находясь в спящем режиме, сигнал 516СОМТ возвратит его обратно в этот режим. Позже такие возможности были добавлены и в БЧК4 (см.

раздел 4.5)'. ' Прерывания могут произойти и тогда, когда система находится в режиме ядра. В этом случае система будет оставаться в этом режиме после завершения обработки прерывания. т Система 5ЧКЗ поддерживает состояние остановки для процесса только с целью проведения процедуры трассировки нроиесса (см. раздел б.2.4). Если трассируемый процесс получит любой сигнал, он перейдет в состояние остановки, а его родитель будет «разбужен» ядром. 2.3. Определение процесса 67 2.3.2. Контекст процесса Каждый процесс имеет-четко определенный контекст, включающий всю информацию, необходимуго для его описания. Ниже перечислены компоненты контекста: + Адресное пространство задачи, Обычно делится на несколько составляющих: текст программы (выполняемый код), данные, стек задачи, совместно используемые области памяти и т. д.

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

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

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

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