Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
355 Кб
Скачать
☆
  1. Закрытие

А) по значению дескриптора ф-ла выбирается соответствующий индекс в индексном пуле и уменьшается на 1 значение счетчика ссылок. Если оно становится =0, то индекс копируется на диск, а буфер освобождается.

Б) уменьшается на 1 значение счетчика ссылок в соотв эл-те таблицы откр ф-лов. Если становится=0, то эл-т освобождается

В) освобождается эл-т таблицы дескрипторов

Принципы реализации процессов.

Ресурсы.

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

Учет ресурсов.

Ведётся централизовано и раздельно. Занятые ресурсы связаны с теми программами, которые их используют.

Управление работой программы.

Ос должна обеспечить:

  1. Запуск программы по требованию пользователя

  2. Приостановление и возобновление программы

  3. Динамическое перераспределение ресурсов в ответ на требования программы

  4. Освобождение ресурсов

Понятие процесса.

Процесс – объект распределения и владения ресурсами. Объект, которым управляет ОС.

Абстрактное определение: совокупность данных и действий над ними

  1. Нет взаимно однозначного соответствия между программой, ресурсами и процессом

  2. В рамках 1 процесса могут выполняться команды ядра и команды пользователя

  3. Процесс может состоять только из одних ресурсов некоторое время

Принципы реализации процессов.

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

Концепция состояний.

Можно описать работу процесса некоторым множеством состояний и переходов между ними

Как минимум 2 состояния:

  1. Остановлен

  2. Выполняется

Как минимум 2 перехода:

  1. Выбор на выполнение

  2. Приостановка

Состояния процессов.

  1. Создание

  2. Готов

  3. Выполняется

  4. Ожидание

  5. Завершение

Переходы

  1. Выбор на выполнение(планирование)(готов - выполняется)

  2. Прерывание (выполняется - готов)

  3. Ожидание события (выполняется – ожидание)

  4. Событие произошло (ожидание - готов)

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

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

Служебные структуры данных.

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

  2. Пространство процессов

    1. Статическая часть

    2. Динамическая часть

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

  1. Идентификатор процесса

  2. Состояние

  3. Идентификатор пользователя

  4. Параметры планирования

  5. Адреса других структур данных БУП

  6. Информация об ожидаемом событии

Пространство процесса (статическая и динамическая части).

Статическая часть(ресурсы)

  1. Таблица дескрипторов открытых файлов

  2. Текущий и корневой каталог

  3. Возвращаемое значение системного вызова

  4. Поле ошибок

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

  1. Состояние регистров на момент приостановки

  2. IP, PSW, общие регистры

  3. Указатель стека

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

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

Пользовательский – код и данные, расположенные в адресном пространстве процесса.

  1. Инициализируемые неизменяемые данные(напр константы)

  2. Инициализируемые изменяемые данные(переменные, нач знач котор присваиваются на этапе компиляции)

  3. Не инициализируемые изменяемые данные(статич переменные, которым не присвоены нач знач на этапе компил)

  4. Стек пользователя и данные, располож в динамичемки выделяемой памяти

К. ядра

1. Системный

1. состояние

2. учетные данные

3. статистические данные для планирования

4. данные, необх для управл памятью

5. инф об ус-вах вв/выв

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

2. регистровый

1. программгый счетчик процесса

2. регистн состояния процессора

3. содержимое общих регистров

4. указатель стека

Операции над процессами.

  1. Создание процесса — завершение процесса;

  2. Приостановка процесса (перевод из состояния исполнение в состояние готовность) — запуск процесса (перевод из состояния готовность в состояние исполнение);

  3. Блокирование процесса (перевод из состояния исполнение в состояние ожидание) — разблокирование процесса (перевод из состояния ожидание в состояние готовность);

  4. Сущ-ет ещё 1 операция, не имеющая пару: изменение приоритета процесса.

Одноразовые операции, их свойства и методы реализации, создание и завершение процесса.

Можно применить к процессу не более одного раза

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

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

Три основных события, приводящие к созданию процессов:

инициализация системы,

работающий процесс подает системный запрос на создание процесса,

запрос пользователя на создание процесса.

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

В UNIX-подобных системах сужествует только один запрос, направленный на создание нового процесса: fork(). Этот запрос создает дубликат вызываемого процесса. После этого запроса двум процессам, родительскому и дочернему, соответствуют одинаковые образы памяти, строки окружения, и одни и те же открытые файлы. Обычно дочерний процесс выполняет системный вызов execve() для изменения своего образа памяти и запуска новой программы.

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

Четыре события, приводящие к остановке процесса:

плановое завершение (окончание выполнения),

плановый выход по известной ошибке (например, отсутствие файла),

выход по неисправимой ошибке (ошибка в программе),

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

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

Вторая причина — неустранимая ошибка. Примером может служить попытка скомпилировать несуществующий исходник.

Третья причина — выход по неисправимой ошибке, такой ошибкой может быть обращение к несуществующей памяти или деление на ноль.

Четвертая причина — системный запрос, выполненный другим процессом на завершение процесса. В UNIX такой запрос — kill().

Процессы-зомби.

Процессы, находящиеся в состоянии «Завершение»

Многоразовые операции.

Многоразовые операции, напротив, не приводят к изменению количества процессов в операционной системе и не обязаны быть связанными с выделением или освобождением ресурсов. 1)Запуск процесса. Из числа процессов, находящихся в состоянии готовность, операционная система выбирает один процесс для последующего исполнения. Для избранного процесса операционная система обеспечивает наличие в оперативной памяти информации, необходимой для его дальнейшего выполнения. Далее состояние процесса изменяется на исполнение, восстанавливаются значения регистров для данного процесса, и управление передается команде, на которую указывает счетчик команд процесса. Все данные, необходимые для этого восстановления контекста, извлекаются из PCB процесса, над которым совершается операция. 2)Приостановка процесса. Работа процесса, находящегося в состоянии исполнение, приостанавливается в результате какого-либо прерывания. Процессор автоматически сохраняет счетчик команд и, возможно, один или несколько регистров в стеке исполняемого процесса и передает управление по специальному адресу обработки данного прерывания. На этом деятельность hardware по обработке прерывания завершается. По указанному адресу обычно располагается одна из частей операционной системы. Она сохраняет динамическую часть системного и регистрового контекстов процесса в его PCB, переводит процесс в состояние готовность и приступает к обработке прерывания, то есть к выполнению определенных действий, связанных с возникшим прерыванием. 3)Блокирование процесса. Процесс блокируется, когда он не может продолжать свою работу, не дождавшись возникновения какого-либо события в вычислительной системе. Для этого он обращается к операционной системе с помощью определенного системного вызова. Операционная система обрабатывает системный вызов и, при необходимости, сохранив необходимую часть контекста процесса в его PCB, переводит процесс из состояния исполнение в состояние ожидание. 4)Разблокирование процесса. После возникновения в системе какого-либо события, операционной системе нужно точно определить какое именно событие произошло. Затем операционная система проверяет: находился ли некоторый процесс в состоянии ожидание для данного события и, если находился, переводит его в состояние готовность, выполняя необходимые действия, связанные с наступлением события.

Управление процессами в UNIX.

На основе общих принципов

Состояния процессов в UNIX.

9 состояний:

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

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

  3. Зарезервирован(приостановлен на время обработки прерывания)

  4. Готов в памяти(готов для выполнения и находится в оп)

  5. Ожидание в памяти(заблокирован и находится в оп)

  6. Готов на диске(готов к запуску, выгружен на диск)

  7. Ожидание на диске(заблокирован и выгружен на диск, чтобы освободить место в оп)

  8. Создание

  9. Завершение

Управляющие структуры данных.

Блок управления процессом, данные которого распределены между таблицей процессов и пространством процессов

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

  1. Поле состояния

  2. Поля, используемые ядром при размещении процесса в основной или внешней памяти

  3. Пользовательские идентификаторы

  4. Идентификаторы процесса

  5. Дескриптор события

  6. Параметры планирования

  7. Поле сигналов(необработанные)

  8. Таймеры

Пространство процессов:

  1. Указатель на таблицу процессов, идентиф запись, соотв. Процессу

  2. Вектор, опис реакцию на сигналы

  3. Поле терминала, идентиф терминал

  4. Поле ошибок

  5. Поле возвращенного значения

  6. Имена текущего и корневого каталога

  7. Таблица польз дескрипторов ф-ла

  8. Поле маски создания ф-ла

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]