
- •Раздел II. Задачи и функции ос
- •Управление заданиями (процессами, задачами)
- •Классификация процессов
- •Планирование процессов
- •Взаимодействие процессов
- •Управление данными
- •Страничная и сегментная организация памяти
- •Свопинг (swapping)
- •Управление виртуальной памятью
- •Управление внешней памятью. Файлы.
- •Разделение доступа к данным в ос
Раздел II. Задачи и функции ос
3 основных задачи, тесно связанных между собой:
Управление задачами (заданиями, процессами)
Создание и удаление процессов
Планирование процессов
Синхронизация процессов
Коммуникация процессов
Разрешение тупиковых ситуаций (тупиков)
Управление данными
Долговременное планирование – организация размещения данных на ВЗУ, их выборка и предоставление пользовательским программам
Оперативное планирование – распределение оперативной памяти под программы и данные, обмен между оперативной и внешней памятью.
Связь с оператором
Пользовательский интерфейс (управление пользовательскими процессами)
Командный интерфейс (управление системными процессами)
При взаимодействии этих функций ОС между собой используются различные интерфейсы:
Задачи-данные (интерфейс управления памятью и данными)
Данные-оператор (Интерфейсы ввода-вывода данных)
Оператор-задачи (командный интерфейс)
Общий принцип взаимодействия подсистем:
Управление заданиями (процессами, задачами)
Процесс – это минимальный программный объект (часть кода), обладающий собственными системными ресурсами, выполняемый в CPU(запущенная программа).
Программа – это последовательность команд, представляющая собой план действий. Процесс же – это непосредственно выполняемое действие, которое в себя включает:
Программный код
Данные
Содержимое стека
Содержимое адресного и др. регистров CPU
Для одной программы могут быть созданы несколько процессов в том случае, если с помощью одной программы в CPUвыполняется несколько несовпадающих последовательностей команд.
Классификация процессов
По генеалогическому признаку – порождающие (родители) и порожденные (дети).
По принадлежности к ОС – системные и пользовательские.
По месту выполнения – внутренние (на CPU) и внешние (на внешних процессорах).
По связанности – взаимосвязанные, изолированные, взаимодействующие (имеют общие структуры данных), конкурирующие.
За время существования процесс многократно меняет свое состояние. Различают следующие состояния процесса:
Новый (процесс только что создан)
Выполняемый (команды программы выполняются в CPU)
Ожидающий (процесс ожидает завершения некоторого события, чаще всего операции ввода-вывода)
Готовый (процесс ожидает освобождения CPU)
Завершенный (процесс выполнился)
Переход из одного состояния в другое не может быть выполнен произвольно. Он происходит в соответствии с таблицей управления процессом (PCB=ProcessControlBlock). В этой таблице процесс описывается набором значений, параметров, характеризующих его текущее состояние и используемых ОС для управления прохождением процесса через компьютер.
В зависимости от состояния процесса ему должен быть предоставлен какой-либо ресурс.
Содержимое регистров процессора, а также код и данные в адресном пространстве процесса называются контекстом процесса, который переключается наCPUпри смене выполняемой им задачи.
В зависимости от того, является ли процесс родителем или ребенком, он может получить отдельные ресурсы или использовать родительские. Для запуска новой программы в Unixсначала содеется копию процесса-родителя, а затем процесс-ребенок должен заменить свой контекст, чтобы стать родителем. Помимо такого способаWindowsNTтакже поддерживает загрузку процесса-ребенка новой программой из какого-либо файла.
При смерти процесса-родителя в Unixребенок сиротеет, но не умирает. Его усыновляет один из системных процессов.