Диаграмма переходов процесса
• Переход из «новый» в «готовый». ОС осуществляет переход, когда будет готова к обработке дополнительных процессов. В большинстве систем существует ограничения на количество выполняющихся процессов или на объем памяти. • Переход из «готовый» в «выполняющийся». Происходит, когда ОС выбирает новый процесс для его выполнения процессором. Выбор процесса происходит по определенным правилам. • Переход из «выполняющийся» в «готовый». Чаще всего происходит, когда процесс отрабатывает максимальный промежуток времени, отведенный для непрерывной работы одного процесса. • Переход из «выполняющийся» в «блокированный». Процесс переводится в заблокированное состояние, если для продолжения его работы требуется какое-либо событие, необходимое для продолжения работы процесса. (например, медленная операцию ввода-вывода). • Переход «заблокированный»-«готовый». Осуществляется, когда происходит ожидаемое событие. • Переход из «выполняющийся» в «завершающийся». Выполняется тогда, когда процесс сигнализирует об окончании своей работы, или ОС прекращает его выполнение в силу каких-то причин.
15. Системный, регистровый и пользовательский контекст процесса и его размещение в памяти. Управление процессами состоит в их создании и уничтожении; приостановлении и возобновлении; изменении приоритета; переключении состояний. При управлении процессами ОС использует два основных типа информационных структур: -дескриптор процесса; -контекст процесса. Дескриптор процесса Системный контекст процесса Системный контекст процесса имеет "статическую часть" и "динамическую часть". На протяжении всего времени выполнения процесс постоянно располагает одной статической частью системного контекста. Динамическую часть системного контекста можно представить в виде стека, элементами которого являются контекстные уровни. Системный контекст включает в себя следующие компоненты:
Дескриптор процесса (системный контекст) хранится в области ядра (системной области) и доступен только ядру, приложение не может самостоятельно напрямую модифицировать его. Контекст процесса Регистровый контекст процесса Регистровый контекст состоит из следующих компонент:
Регистровый контекст хранится в области памяти ядра.
Пользовательский контекст процесса Пользовательский контекст состоит из команд и данных процесса, стека задачи и содержимого совместно используемого пространства памяти в виртуальных адресах процесса. В пользовательском контексте хранится:
Пользовательский контекст процесса хранится в пользовательской области памяти процесса и перемещается при необходимости вместе с ним. 16. Размещение образа процесса в памяти В образ процесса в памяти входит следующая информация: 1. Данные программы; 2. Код программы - пользовательская программа; 3. Пользовательский стек. С каждым процессом связаны один или несколько стеков. Стек используется для хранения параметров, адресов вызовов процедур и системных функций; 4. Область памяти куда пользовательская программа может сохранять динамические данные, т.е. данные, которые появляются во время её работы (например, элементы списка, программного стека); 5. Общую разделяемую память могут использовать все процессы; 4. Управляющий блок процесса – данные нужные ОС для управления процессом; 5. Системный стек процесса; 6. Регистровый контекст – в нем хранится содержимое регистров процессора. 17. Особенности создания процесса в Linux(Unix) и Windows. Особенности создания процесса в Linux(Unix) В UNIX/Linux существует только один системный вызов для создания нового процесса — fork. § Этот вызов создает точную копию вызывающего процесса. § После выполнения системного вызова fork два процесса, родительский и дочерний, имеют одинаковые образ памяти, одинаковые строки описания конфигурации и одни и те же открытые файлы. § По возвращаемому функцией fork () значению процесс может узнать, дочерний он (fork () возвращает 0) или родительский (fork () возвращает число больше 0). Функции wait () и waitpid (). • Для запуска (загрузки) программы в созданном системным вызовом fork () процессе применяется системный вызов exec (). Вызов exec () заменяет пользовательский контекст текущего процесса (образ процесса) на содержимое некоторого исполняемого файла и устанавливает начальные значения регистров процессора. • функция wait () - приостанавливает родительский процесс до тех пор, пока один из его дочерних процессов не будет остановлен или не завершится, после чего возвращает информацию о том, какой процесс завершился и что стало причиной его завершения. • Если запущено несколько процессов, то для того чтобы дождаться выполнения конкретного процесса используется функция waitpid (). • void exit (int status) прекращает процесс, из которого эта функция была вызвана. Кодом возврата этого процесса становиться значение status. Особенности создания процесса в Windows Процессы Windows NT имеют следующие особенности: • Процессы Windows NT реализованы в форме объектов - EPROCESS, которые создает менеджер объектов; • Объект-процесс, содержит заголовок (PCB), который создает менеджер объектов. Заголовок инициализирует (заполняет) диспетчер процессов; • Менеджер процессов Windows NT не поддерживает между процессами отношений типа «родитель-потомок», т.е. родительский процесс не может создать дочерний процесс; • Вместо этого в процессе Windows сразу создается начальный поток, в котором выполняется программа процесса; • Начальный поток может порождать дочерние потоки. 18. Функции ОС по управлению процессами. Последовательность создания процесса. Завершение процесса. Функции ОС по управлению процессами создание и уничтожение; планирование и диспетчеризация; переключение; синхронизация(взаимодействие); организация управления блокировкой. Последовательность создания процесса Для создания нового процесса операционной системе необходимо: 1. Присвоить новому процессу уникальный идентификатор, т.е. занести новую запись в таблицу процессов; 2. Выделить пространство для процесса, т.е. выделить адресное пространство для всех элементов образа процесса; 3. Загрузить часть кодов и данных процесса в оперативную память. 4. Инициализировать управляющий блок процесса; 5. Поместить процесс в список “готовых” или “готовых приостановленных процессов”. Завершение процесса Основные причины завершения процессов следующие: 1. Обычное завершение (добровольно). 2. Превышение процессом времени, отведенной для его выполнения (принудительно). 3. Недостаточный объем памяти (принудительно). 4. Ошибки в самом процессе (коде программы) - деление на ноль; использование чисел, выходящих за разрядную сетку, неверная команда (принудительно). 5. Ошибки ввода-вывода. 6. Завершение другим процессом. 7. Вмешательство оператора. 19. Синхронизация процессов (критические секции, блокирующие переменные). Критические секции Та часть программы (процесса), в которой используется доступ к общей памяти (общим переменным), называется критической областью или критической секцией. Для избежания состязаний необходимо, что бы никакие два процесса не находились одновременно в своих критических секциях. Для задания режима взаимного исключения используется запрещение прерываний. В этом случае запрещаются прерывания по таймеру. И процессор не может переключится по таймеру на другой процесс (недостаток – запрещение прерываний может привести к краху всей системы). Блокирующие переменный Когда процессу требуется войти в свою критическую область, сначала он проверяет значение блокирующей переменной. Если оно равно 0, процесс устанавливает его в 1 и входит в критическую область (т.е. сначала устанавливает, потом входит). Если значение уже равно 1, процесс просто ждет, пока оно не станет равно нулю. Таким образом, 0 означает, что ни один из процессов не находится в своей критической области, а 1 означает, что какой-то процесс находится в своей критической области. 20. Основные механизмы межпроцессорного взаимодействия (общие файлы, общая и разделяемая память, сигналы, каналы, семафоры).
Общие файлы Термином «общие файлы» обычно называют совместный доступ к файлам, преимущественно в контексте операционных систем или служб локальных компьютерных сетей. Общая и разделяемая память Общая память В модели программирования с общей памяти для управления доступом к общей памяти используются всевозможные механизмы синхронизации типа семафоров и блокировок процессов. Преимущество этой модели с точки зрения программирования состоит в том, что не нужно явно задавать обмен данными между производителями и потребителями. Разделяемая память В других средствах межпроцессового взаимодействия обмен информацией между процессами проходит через ядро, что приводит к переключению контекста между процессом и ядром, т.е. к потерям производительности. Техника разделяемой памяти позволяет осуществлять обмен информацией через общий для процессов сегмент памяти без использования системных вызовов ядра. Сегмент разделяемой памяти подключается в свободную часть виртуального адресного пространства процесса. Сигналы Сигналы сообщают процессам о возникновении асинхронных событий. Существуют сигналы, которые можно классифицировать следующим образом: · Сигналы, посылаемые в случае завершения выполнения процесса; · Сигналы, посылаемые в случае возникновения вызываемых процессом особых ситуаций; · Сигналы, посылаемые во время выполнения системной функции при возникновении неисправимых ошибок. Каналы Каналы – это пары из входного и выходного портов, которые соединяются очередями сообщений. Каналы можно создавать и удалять.
Семафоры Инициализация семафора (задать начальное значение счётчика): • Захват семафора (ждать пока счётчик станет больше 0, после этого уменьшить счётчик на единицу); • Освобождение семафора (увеличить счётчик на единицу); • Бывает бинарный семафор и семафор счетчик. Семафор — неотрицательная целая переменная, над которой возможны два вида операций: P-операция. Если перед выполнением P-операции значение семафора было больше 0, то P-операция выполняется без задержек. Если перед выполнением P-операции значение семафора было равным 0, то процесс, выполняющий P-операцию, переводится в состояние ожидания до тех пор, пока значение семафора не станет большим 0. V-операция. Если при этом имеются процессы, задержанные на выполнении P-операции на данном семафоре, один из этих процессов выходит из состояния ожидания и может выполнить свою P-операцию. 21. Планирование процессов. Виды планирования процессов(среднесрочное, краткосрочное; вытесняющее, невытесняющее), круговое(циклическое) краткосрочное планирование. Для организации многозадачности ОС осуществляет планирование процессов. 1. Долгосрочное планирование – когда будет создан новый процесс. Определяет сколько процессов может работать одновременно (степень мультипрограммирования). Такое событие происходит редко (раз в несколько(десятки) минут); Среднесрочное планирование определяет какой из процессов будет загружен в память для выполнения вместо выгруженного на диск процесса (переход новый – готовый, миллисекунды); Краткосрочное планирование (диспетчер процессов) это планирование какой процесс будет выполняться на процессоре. (переход готовый – выполняющийся, единицы миллисекунд). Краткосрочное планирование процессов – задачи: Определение момента времени для смены выполняемого процесса – когда выбирать; Выбор процесса на выполнение из очереди готовых процессов кого выбирать; Переключение контекстов "старого" и "нового" процессов. 2. Алгоритмы планирования делятся на две группы: – вытесняющие (может прерываться); – невытесняющие (не может прерываться). Вытесняющие алгоритмы планирования
Не вытесняющие алгоритмы планирования
3. Наиболее часто встречающиеся алгоритмы (когда выбирать): • алгоритмы, основанные на квантовании; • алгоритмы, основанные на приоритетах. Алгоритм квантования (Циклический алгоритм. Круговое планирование) Алгоритм квантования: 1.Таймер генерирует прерывания через определенные интервалы времени. 2. При каждом прерывании исполняющийся в настоящий момент процесс помещается в очередь готовых к выполнению процессов, и начинает выполняться очередной процесс. 3. Эта методика известна также как квантование времени, поскольку перед тем как оказаться вытесненным, каждый процесс получает квант времени для выполнения. 22. Приоритетное планирование. Приоритет - это число, характеризующее степень привилегированности процесса при использовании ресурсов вычислительной машины: чем выше приоритет, тем выше привилегии.
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (290)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |