Диаграмма переходов процесса
• Переход из «новый» в «готовый». ОС осуществляет переход, когда будет готова к обработке дополнительных процессов. В большинстве систем существует ограничения на количество выполняющихся процессов или на объем памяти. • Переход из «готовый» в «выполняющийся». Происходит, когда ОС выбирает новый процесс для его выполнения процессором. Выбор процесса происходит по определенным правилам. • Переход из «выполняющийся» в «готовый». Чаще всего происходит, когда процесс отрабатывает максимальный промежуток времени, отведенный для непрерывной работы одного процесса. • Переход из «выполняющийся» в «блокированный». Процесс переводится в заблокированное состояние, если для продолжения его работы требуется какое-либо событие, необходимое для продолжения работы процесса. (например, медленная операцию ввода-вывода). • Переход «заблокированный»-«готовый». Осуществляется, когда происходит ожидаемое событие. • Переход из «выполняющийся» в «завершающийся». Выполняется тогда, когда процесс сигнализирует об окончании своей работы, или ОС прекращает его выполнение в силу каких-то причин.
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 Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (316)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |