Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Блок управления процессом

ОС должна хранить сведения о процессе, достаточно полные для работы системы.

PCB – Process Control Block – блок управления, включающий в себя данные о процессах. Т.е. это такое подмножество данных, которое регулирует процессы и должно быть доступно ОС независимо от того, в каком состоянии пргоцесс пребывает.

PCB включает в себя:

Таблица процессов.

Каждому процессу соответствует запись с данными для ядра ОС для постоянного доступа.

Остальные данные требуются ОС если процесс находится в состоянии выполнения. В области памяти, размещаемой в области памяти ядра для всех выполняемых процессов выделяется пространство процесса.

Таблица процессов содержит сведения, идентифицирующие процесс, в частности сведения, которые изменяются асинхронно, например, процесс остановлен, а сведения изменяются.

Для любого процесса ОС создает PIO – Process Identifier – идентификатор, целое число, генерируемое ядром при создании процесса. Он обязательно сохраняется в таблице. В зависимости от реализации ОС процессор может сохранять другие данные, такие как:

- Parent PID – идентификатор родительского процесса

- идентификаторы пользователя, запустившего процесс

- указание текущего состояния процесса

- параметры, которые позволяют ядру выбрать, какой процесс будет запущен после освобождения процессора – параметры планирования

- счетчики сигналов, посланных ОС и не обработанных. На каждый сигнал свой счетчик

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

Для пространства процесса:

- сведения о выделенной для выполнения программы памяти

- таблица дескрипторов открытых файлов (не доступна напрямую процессу)

Работа с файлами

- информация о правах доступа, по умолчанию для создаваемого файла используется маска

-сохраняются ссылки на текущий каталог и на корневой каталог (на корневой каталог текущего устройства)

-поле возвращаемого значения для системного вызова

- поле записи ошибок системного вызова

- вспомогательные данные (завися от реализации, например, таймеры)

- использованное время процессора

-другое

Для обработки сигналов поступивших процессу, ОС испозует конструкцию, содержащую адреса обработчиков сигналов

Так как процесс должен переходить из одного состояния в другое и более соответственно не выполняться, то ОС должна сохранять данные, по которым можно восстановить работу с процессом – контекст процесса

Контекст процесса:

Содержит множество данных, которые позволяют охарактеризовать работу процесса

Его разновидности:

- регистровый контекст – сохранение текущего состояния процесса: счетчик команд, слово состояния процесса, РОН, указатель вершины текущего стека, необходимых при сохранении и восстановлении состояния процесса

Хранение данных о реализации процессов и другого органиуется в виде стека.

Место под хранение этой информации выделяется в пространстве процесса

Системный контекст процесса:

-запись в таблице процессов, пространство процесса, пользовательский дескриптор и т.д.

-содержимое стека и ядра

-системная часть для регистрации

Пользовательский контекст процесса

- полная характеристика программы-текущее состояние области кода, стека, данных, различных выделенных специально для процесса областей памяти

Основные операции (соответствуют переходам между состояниями процесса)

-создание и завершение процесса

-блокирование и разблокирование (состояние ожидания – состояние гоов

- выгрузка на диск –загрузка в память (swapping –загрузка: 0готов на диске –готов в памяти; выгрузка: ожидается в памяти – ожидается на диске)

Операции делятся на одноразовые и многоразовые.

К одноразовым относятся создание и завершение.

Создание будет произведено:

1) инициализация системs;о создания процесса

- высокоприоритетные –взаимодействия с пользователем

- фоновые или daemon - функции

2) выполнение системным процессом системного вызова, приводящего к созданию процесса

3) запрос пользователя на создание процесса (создается процессом оболочкам)

процесс, инициализирующий создание процесса – родительский. Созданный процесс – дочерний, процесс-ребенок.

ОС может сохранять или не сохранять, какой процесс каким создан. Первый процесс запускается при инициализации системы. Возможно построить генеалогическое дерево процессов. Если при инициализации ОС запускается множество процессов, то можно построить генеалогический лес.

При создании процесса ОС

- вырабатывает уникальный идентификатор процесса

-выделяет процессу ресурсы

Существуют следующие варианты

- дочерний процесс получает ресурсы за счет родительского процесса – существеннее ограничение числа порождаемых процессов

- процесс-ребенок получает ресурсы непосредственно от ОС

В любом случае, запись в таблице процессов так же является ограниченным ресурсом

-подготавливает область памяти

В области памяти загружается информация: данные, стек, код.

- устанавливает начальное значение программного счетчика (формируется регистровый контекст)

Далее процесс переходит в состояние готов

 

Существуeт два подхода заполнения областей памяти: путем копирования соответствующих областей родительского процесса, то есть создается точная копия настоящего процесса, кроме IP или происходит чтение из файла данных для загрузи, имя файла указано в системном вызове. ОС Unix – полное копирование родительского процесса ОС Windows – только вторым способом, данные считываются из файла с исполняемым кодом.

При создании процесса ему выделяются ресурсы.

Завершение процесса:

При завершении процесса требуется освободить ресурсы.

Завершение инициализруется, если

- выполнена последняя команда

-выход в связи с обработанной в программе ошибкой

-выход по неисправимой ошибке

-процесс уничтожен другим процессом

Освобождаются выделенные ресурсы, а именно области памяти, пространство процесса, запись в таблице процессов.

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

Многоразовые операции – выполняются неоднократно,не связаны с выделением памяти.

Выбор на выполнение – планирование процессов (переход состояний готов-выполняется)

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

Разблокирование – после того, как произошло требуемое событие, находится из таблицы по дескриптору.

Выгрузка процесса – копирование на диск содержимого областей памяти – ожидание на диске (выгружается пользовательский контекст).

Загрузка – просматриваются процессы в состоянии «готов на диске», выделяется тот, который можно разместить в освободившуюся часть ОП.

Процессы в ОС Unix

9 состояний процесса:

-выполнение

-готовность

-ожидание

-создание

-завершение

-ожидание на диске

-готовность на диске

+ выполняется:

-выполняется в режиме ядра

-выполняется в режиме задачи

Переход только из «выполняется в режиме ядра» в «выполняется в режиме задачи», по окончанию опять возвращается в режим ядр, из которого может перейти в состояние «готов» или «ожидается».

 

Поддержка сигналов.

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

Пр каждом переходе «выполняется в режиме ядра»->»выполняется в режиме задачи» при ненулевом значении счетчиков сигналов запускается обработка сигналов. Только после обработки сигналов происходит обащение к задаче.

 

Добавляется состояние процесса – зарезервирован.

Когда процесс находится при работе и происходит прерывание, то проиходит пееключени в режим ядра и процессс переходит в режим «зарезервирован». Это дает процессу возможность до конца использовать выделенный квант времени

 

<== предыдущая лекция | следующая лекция ==>
Процессы | Структуры данных
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 1242; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.