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

Операции над процессами в unix (fork, exec, exit).

Fork – единственный способ создания пользователем нового процесса

Возвращает родительскому процессу идентификатор порождённого процесса, а дочернему – 0.

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

Выполнение:

  1. Отводит место в таблице процессов под новый процесс

  2. Присваивает порождаемому процессу уникальный код идентификации

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

  4. Увелич значение счетчика числа файлов, связанных с процессом, как в таблице ф-лов, так и в таблице индексов.

  5. Возвращает родительскому процессу идентификатор порождённого, а порождённому ноль.

Exec-изменение пользовательского контекста процесса

  1. Проверка наличия, формата и прав доступа к файлу

  2. Отсоединение областей памяти, ранее присоединённых к процессу

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

  4. Выделяется и присоединяется к процессу область стека и отводит пространство памяти для хранения параметров функции exec

  5. В пространстве процесса стираются адреса пользовательских функций обработки сигналов. Рекомендации игнорирования остаются в силе.

  6. Ядро устанавливает начальные значения в регистрах для режима задания значения из сохранённого регистрового контекста

  7. При выходе из функции процесс исполняет текст новой программы. Процесс остаётся тем же() ид и место в иерархии то же)

Exit – процесс завершает своё выполнение

  1. Ядро отменяет обработку всех сигналов, посылаемых процессу

  2. Ядро просматривает дескрипторы открытых файлов, закрывает каждый из этих файлов

  3. Освобождает индексы текущего каталога и корня(если он изменялся)

  4. Ядро освобождает всю выделенную задаче память вместе с соответствующими областями и переводит процесс в состояние прекращения существования

  5. Ядро сохраняет в таблице процессов код возврата и суммарное время исполнения процесса и его потомков в режиме ядра и режиме задачи.

Переключение контекста.

-сохранение/восстановление работоспособности процесса

Нити исполнения.

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

Модель потока и понятие нити исполнения.

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

Состояния нитей и их связь с состояниями процесса.

Аналогичны состояниям процесса.

Из состояния «создание» процесс возвращается содержащим 1 нить, остальные нити – потомки первой.

Процесс в состоянии ГОТОВ если хотя бы одна из нитей в состоянии ГОТОВ и ни одной в состоянии ВЫПОЛНЯЕТСЯ. Процесс в состоянии ВЫПОЛНЯЕТСЯ, если одна из его нитей в состоянии ВЫПОЛНЯЕТСЯ. Процесс в ОЖИДАНИЕ, если все его нити в сост ОЖИДАНИЕ. Процесс в сост ЗАВЕРШЕН, если все его нити в ЗАВЕРШЕН

Методы реализации нитей.

  1. В пространстве пользователя

Ядро управляет обычными однопоточными процессами. Система поддержки нитей, содержащая набор процедур для управления. Необходим каждому процессу свой планировщик и таблица нитей

  1. В ядре

2 управляющих блока.

Блок управления нити в ядре. Содержит регистры, состояние и другую инф-цию о кажд нити

Единая таблица потоков всей системы

Преимущества и проблемы различных методов реализации

На уровне пользователя(+)

  1. Можно реализовать в ос, котор не поддерживает нити

  2. Переключение состояний нити быстрее

  3. Каждый процесс может иметь собств алгоритм планирования

На уровне пользователя(-)

  1. Проблема реализации блокирующих системных запросов

  2. При запуске одной нити ни одна другая не будет запущена, пока первая не отдаст проц

  3. Нити использ в приложениях, где они часто блокируются

На уровне ядра(+)

  1. Когда нить блокируется, ядро запускает другую

  2. Управление потоков не требует новых неблокирующих системных запросов

На уровне ядра(-)

  1. Существенные затраты на системные запросы

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

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

Уровни планирования.

3 вида планирования:

  1. Заданий – выбор очередного задания для загрузки в память и порождение соотв процесса. Долгосрочное планирование.

  2. Подкачки – регулировка загрузки памяти путем временной выгрузки выполняющегося процесса из оп на диск (свопинг). Среднесрочное планирование.

  3. Использования процессора – процедура выбора одного процесса, который будет переведен в состояние исполнение. Краткосрочное планирование.

Требования к алгоритмам.

  1. Справедливость(невозможность захвата 1 процессом непропорционально большого интервала процессорного времени)

  2. Эффективность(повышение степени загрузки процессора)

  3. Сокращение полного времени выполнения(уменьшение времени между стартом процесса или постановкой задания в очередь и его завершением)

  4. Сокращение времени ожидания(уменьшение времени , которое процессы проводят в состоянии ГОТОВ и задания в очереди для загрузки)

  5. Сокращение времени отклика(минимизация времени для ответа на запрос пользователя)

Желательно:

  1. Предсказуемость

  2. Минимальные накладные расходы, связ с работой алгоритма

  3. Равномерная загрузка ресурсов

  4. Обладание масштабируемостью(нормальная работа при увеличении нагрузки)

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

Характеристики процессов в системе, заданий в очереди и состояния вычислит системы

Статические и динамические параметры планирования и их использование при краткосрочном и долгосрочном планировании.

Статические – не изменяются в процессе работы вычисл системы. Предельные значения ресурсов системы

Динамические – изменяются. Количество свободных ресурсов в данный момент времени

Стат параметры:

  1. Пользователь запистивший процесс или сформировавший задание

  2. Степень важности задачи(приоритет)

  3. Количество процессорного времени, запрошенного пользователем

  4. Соотношение процессорного времени и времени на ввод-вывод

  5. Требования к ресурсам выч системы

Алгоритмы долгосрочного планирования используют статические и динамические параметры выч системы и статические параметры процессов

Алгоритмы краткосрочного и среднесрочного планирования дополнительно учитывают и динамические хар-ки процессов. Для среднесрочного планирования динамич хар-ки:

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

  2. Объём оп для работы процесса

  3. Кол-во процессорного времени, выделенного процессу к моменту планирования

Для краткосрочного еще 2 динамич параметра:

  1. Промежуток времени непрерывного использования процессора

  2. Промежуток времени непрерывного ожидания ввода-вывода

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