Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: платный | ВУЗ: Санкт-Петербургский государственный университет
Лекция 8:

Управление процессами. Планирование и диспетчеризация процессов

< Лекция 7 || Лекция 8: 1234 || Лекция 9 >

Ключевые термины

Блок управления процессом (Process Control Block – PCB) – системная структура данных, используемая ОС для управления процессом.

Готовый к выполнению (ready) – Состояние процесса, при котором он ожидает получения ресурсов процессора для его исполнения.

Диспетчеризация – поочередное выделение процессам планировщиком операционной системы квантов процессорного времени.

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

Допущен (admitted) - статус процесса, который он получает от ОС после его допуска в систему (включения в очередь всех процессов).

Завершен (terminated) – состояние процесса, при котором исполнение его программы завершено.

Запись активации ( другие названия: activation record, стековый фрейм - stack frame, область локальных данных - local data area) – область памяти в стеке, в которой хранятся локальные данные текущего поколения (запуска) процедуры.

Исполняемый (running) - Состояние процесса, при котором исполняются его команды на процессоре или процессорах компьютерной системы под управлением ОС.

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

Кратковременный планировщик (планировщик процессора) планировщик ОС, определяющий, какие процессы должны быть выполнены следующими и каким процессам должен быть предоставлен процессор.

Новый (new) - Состояние процесса, при котором он создан операционной системой, но еще не начал выполняться.

Ожидающий (waiting) – состояние процесса, при котором он ожидает наступления некоторого события, например, завершения ввода-вывода. В состоянии ожидания процесс не занимает процессор.

Ориентированный на ввод-вывод (I/O-bound) – процесс, который тратит больше времени на ввод-вывод, чем на вычисления.

Ориентированный на использование процессора (CPU-bound) – процесс, который тратит основное время на вычисления.

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

Очередь готовых процессов (ready queue) очередь, содержащая множество всех процессов, находящихся в основной памяти и готовых к выполнению.

Очередь заданий (job queue) очередь, содержащая множество всех процессов в системе.

Переключение контекста (context switch) – действия ОС при переключении с одного процесса на другой по сохранению состояния старого процесса и загрузки сохраненного состояния для нового процесса.

Планировщик (scheduler) - компонента ОС, планирующая и осуществляющая перевод процессов из состояния готовности в состояние выполнения.

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

Поток управления (control flow) – последовательность выполняемых процессом команд.

Процесс (process)– программа пользователя при ее выполнении.

Процесс-демон - процесс, постоянно находящийся в системе до ее перезапуска.

Секция данных ( data section ) – статическая (постоянно выделенная, неизменного размера) область основной памяти, выделяемая операционной системой процессу, в которой хранятся его глобальные переменные, массивы, структуры, объекты.

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

Степень (коэффициент) мультипрограммирования – число процессов, которое обслуживает система в единицу времени.

Счетчик команд (program counter - PC) адрес текущей выполняемой команды процесса; обычно хранится в специальном системном регистре аппаратуры.

Краткие итоги

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

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

Для управления процессами ОС использует следующие очереди: очередь заданий (всех процессов в системе), очередь готовых к выполнению процессов, очереди (к каждому устройству) процессов, ожидающих ввода-вывода.

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

По их поведению процессы можно классифицировать как ориентированные на ввод-вывод и ориентированные на вычисления (использование процессора).

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

При создании процессов процессы-родители создают дочерние процессы, которые затем создают свои дочерние процессы, и т.д. В результате формируется дерево процессов в системе. При создании процесса процесс-родитель и дочерний процесс могут разделять все ресурсы, разделять подмножество ресурсов или не иметь общих ресурсов. Процесс-родитель может исполняться совместно с дочерним процессом или ожидать завершения дочернего процесса. При создании дочернего процесса может создаваться новое адресное пространство, копируемое с процесса-родителя; облегченный дочерний процесс работает в том же адресном пространстве, что и процесс-родитель. В системе UNIX эти действия реализуются системными вызовами fork и exec.

Уничтожение процесса происходит, когда его программа завершается системным вызовом exit, либо он как дочерний процесс автоматически уничтожается при завершении или уничтожении процесса-родителя (каскадное уничтожение процессов). Дочерний процесс может быть уничтожен, если он превысил выделенные ему ресурсы, превысил свой квант времени, либо его выполнение больше не требуется.

Набор для практики

Вопросы

  1. Что такое процесс?
  2. Что такое пакетный процесс?
  3. Что такое интерактивный процесс?
  4. Что такое счетчик команд процесса?
  5. Что такое стек процесса?
  6. Что такое секция данных процесса?
  7. В каких состояниях может находится процесс?
  8. Дайте определение состояния новый.
  9. Дайте определение состояния готовый к выполнению.
  10. Дайте определение состояния выполняемый.
  11. Дайте определение состояния ожидающий.
  12. Дайте определение состояния завершенный.
  13. Что такое блок управления процессом и какая информация хранится в нем?
  14. Как используется блок управления процессом при переключении с одного процесса на другой?
  15. Какие очереди использует ОС для управления процессами?
  16. Что такое очередь заданий?
  17. Что такое очередь готовых процессов?
  18. Что такое очереди на ввод-вывод?
  19. Что такое планировщик?
  20. Какие функции выполняет долговременный планировщик?
  21. Какие функции выполняет кратковременный планировщик?
  22. Какие функции выполняет планировщик откачки и подкачки?
  23. Какой из планировщиков определяет степень мультипрограммирования ОС?
  24. Как можно классифицировать процессы, с точки зрения выполнения ими вычислений на процессоре и ввода-вывода?
  25. Что такое переключение контекста?
  26. Как происходит создание процесса?
  27. Что такое дерево процессов?
  28. Какими способами может быть организовано разделение ресурсов процессом-родителем и дочерним процессом?
  29. Каким образом может быть организовано исполнение родительского и дочернего процессов?
  30. Какое адресное пространство используют родительский и дочерний процессы?
  31. Что такое облегченный процесс?
  32. Какие системные вызовы используются в UNIX при создании процессов?
  33. Из каких основных процессов состоит дерево процессов в системе UNIX?
  34. Как и в каких случаях происходит уничтожение процесса?
  35. Что такое каскадное уничтожение процессов?

Упражнения

  1. Реализуйте представление данных о состоянии процесса и алгоритмы переключения процесса из одного состояния в другое в типовых ситуациях (диаграмму состояний процесса).
  2. Реализуйте блок управления процессом и основные операции над ним.
  3. Реализуйте алгоритм переключения контекста.
  4. Реализуйте системные очереди и основные операции над ними.
  5. Предложите и реализуйте стратегию выбора из системных очередей долговременным планировщиком процесса, который должен быть перемещен в очередь готовых процессов.
  6. Предложите и реализуйте стратегию выбора кратковременным планировщиком процесса, которому должен быть в данный момент предоставлен квант процессорного времени.
  7. Реализуйте алгоритм создания процесса – его PCB, стека и статической области данных.
  8. Запустите систему UNIX (Linux) и исследуйте информацию, выдаваемую на терминал, о процессах, создаваемых операционной системой при ее запуске.
  9. Реализуйте алгоритм уничтожения процесса.
  10. Реализуйте алгоритм каскадного уничтожения процессов.

Темы для курсовых работ, рефератов, эссе

  1. Понятие процесса, виды процессов и его состояния (реферат).
  2. Реализация системных структур ОС для управления процессами (блок управления процессом, системные очереди) и операций над ними (курсовая работа).
  3. Реализация алгоритма переключения контекста (курсовая работа).
  4. Реализация стратегий кратковременного и долговременного планировщиков ОС (курсовая работа).
  5. Реализация алгоритмов создания и уничтожения процессов (курсовая работа).
  6. Обзор подходов к созданию дочерних процессов и разделению ресурсов дочерним и родительским процессами в операционных системах (реферат).
< Лекция 7 || Лекция 8: 1234 || Лекция 9 >
Василий Четвертаков
Василий Четвертаков
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Константин Леденев
Константин Леденев
Россия
Олег Равков
Олег Равков
Россия