2.1.1 Понятие процесса
Процесс (задача) - программа,
находящаяся в режиме выполнения.
С каждым процессом связывается его адресное
пространство, из которого он может читать и в которое он может писать
данные.
Адресное пространство содержит:
·
саму программу
·
данные к программе
·
стек программы
С каждым процессом связывается набор регистров, например:
·
счетчика команд (в процессоре) - регистр в котором содержится адрес
следующей, стоящей в очереди на выполнение команды. После того как команда
выбрана из памяти, счетчик команд корректируется и указатель переходит к
следующей команде.
·
указатель стека
·
и д.р.
Во многих операционных системах вся информация о
каждом процессе, дополнительная к содержимому его собственного адресного
пространства, хранится в таблице процессов операционной
системы.
|
Управление процессом
|
Управление памятью
|
Управление файлами
|
|
Регистры
Счетчик
команд
Указатель
стека
Состояние
процесса
|
Указатель
на текстовый сегмент
Указатель
на сегмент данных
Указатель
на сегмент стека
|
Корневой
каталог
Рабочий
каталог
Дескрипторы
файла
Идентификатор
пользователя
Идентификатор
группы
|
Три основных события, приводящие к созданию
процессов (вызов fork или CreateProcess):
· Загрузка системы
· Работающий процесс
подает системный вызов на создание процесса
· Запрос пользователя на
создание процесса
Четыре события,
приводящие к остановке процесса (вызов exit или ExitProcess):
· Плановое завершение
(окончание выполнения)
· Плановый выход по
известной ошибке (например, отсутствие файла)
· Выход по неисправимой
ошибке (ошибка в программе)
· Уничтожение другим процессом
Три состояния
процесса:
· Выполнение (занимает
процессор)
· Готовность (процесс
временно приостановлен, чтобы позволить выполняться другому процессу)
· Ожидание (процесс не
может быть запущен по своим внутренним причинам, например, ожидая операции
ввода/вывода)
Каждому процессу соответствует адресное пространство и одиночный поток исполняемых
команд.
|