Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В операционной системе UNIX процессы создаются с помощью вызова системной функции ядра под названием fork (). При вызове этой функции процессом операционная система выполняет следующие действия [ВАСН86].
1. Выделяет в таблице процессов место для нового процесса.
2. Назначает этому процессу уникальный идентификатор.
3. Создает копию образа родительского процесса, за исключением совместно используемых областей памяти.
4. Увеличивает показания счетчиков всех файлов, принадлежащих родительскому процессу, что отражает тот факт, что новый процесс также владеет этими файлами.
5. Назначает процессу состояние готовности к выполнению.
Возвращает родительскому процессу идентификатор дочернего процесса, а дочернему процессу — значение 0.
Возможно, такой метод создания процессов трудно изобразить наглядно, потому что и родительский и дочерний процессы в момент создания выполняют один и тот же проход по коду. Различаются они возвращаемым функцией fork () значением: если оно равно нулю, то это дочерний процесс. Таким образом, можно выполнить команду ветвления, которая приведет к выполнению дочерней программы или продолжению выполнения основной ветви.
РЕЗЮМЕ, КЛЮЧЕВЫЕ И КОНТРОЛЬНЫЕ ВОПРОСЫ
Фундаментальным строительным блоком современных операционных систем является процесс. Основная функция операционной системы состоит в создании, управлении и завершении процессов. Операционная система должна следить за тем, чтобы каждому активному процессу выделялось время для выполнения на процессоре, координировать деятельность процессов, разрешать конфликтные ситуации и выделять процессам системные ресурсы.
Чтобы операционная система имела возможность управлять процессами, она поддерживает описание каждого процесса или образ процесса. В образ процесса входит адресное пространство, в котором этот процесс выполняется, и управляющий блок процесса. В управляющем блоке содержится вся информация, которая требуется операционной системе для управления процессом, включая его текущее состояние, выделенные ресурсы, приоритет и другие необходимые данные.
Во время своего существования процесс может переходить из одного состояния в другое. Наиболее важными из всех состояний являются состояние готовности, состояние выполняющегося процесса и блокированное состояние. Готовый к выполнению процесс — это процесс, который не выполняется в данный момент, но его выполнение может начаться сразу же, как только операционная система передаст ему управление. Выполняющийся процесс — это процесс, который в настоящее время выполняется процессором. В многопроцессорной системе в этом состоянии может находиться сразу несколько процессов. Блокированный процесс •— это такой, который ожидает наступления какого-то события, например завершения операции ввода-вывода.
Выполнение процессов время от времени прерывается. Прерывание наступает либо вследствие какого-то внешнего по отношению к процессу события, которое распознается процессором, либо вследствие вызова управляющей программы операционной системы. В любом из этих случаев происходит переключение процессора в другой режим работы и передача управления подпрограмме операционной системы. После выполнения своих функций операционная система может продолжить выполнение прерванного процесса или переключиться на выполнение другого процесса.
Дата публикования: 2014-11-04; Прочитано: 195 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!