Современные операционные системы

Современные операционные системы
Процессы и потоки  Функции Win32 CreateProcess

Функции Win32 CreateProcess

В Windows все происходит иначе: одним вызовом функции Win32 CreateProcess создается процесс, и в него загружается нужная программа. У этого вызова имеется 10 параметров, включая выполняемую программу, параметры командной строки для этой программы, различные параметры безопасности, биты, управляющие наследованием открытых файлов, информацию о приоритетах, спецификацию окна, создаваемого для процесса (если оно используется), и указатель на структуру, в которой вызывающей программе будет возвращена информация о только что созданном процессе. В дополнение к функции CreateProcess в Win32 имеется около 100 других функций для управления процессами и их синхронизации, а также всем, что с этим связано.

Функции Win32 CreateProcess читать полное описание.


Процессы и потоки  Завершение процесса

Завершение процесса

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

1) обычного выхода (добровольно);.

2) выхода при возникновении ошибки (добровольно);

3) возникновения фатальной ошибки (принудительно);

4) уничтожения другим процессом (принудительно).

Завершение процесса читать полное описание.


Процессы и потоки  Иерархии процессов

Иерархии процессов

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

В UNIX процесс, все его дочерние процессы и более отдаленные потомки образуют группу процессов. Когда пользователь отправляет сигнал с клавиатуры, тот достигает всех участников этой группы процессов, связанных на тот момент времени с клавиатурой (обычно это все действующие процессы, которые были созданы в текущем окне).

Иерархии процессов читать полное описание.


Процессы и потоки  Состояния процессов

Состояния процессов

Несмотря на самостоятельность каждого процесса, наличие собственного счетчика команд и внутреннего состояния, процессам зачастую необходимо взаимодействовать с другими процессами. Один процесс может генерировать выходную ин4юрмацию, используемую другими процессами в качестве входной информации. В команде оболочки cat chapterl chapter2 chapter3 | grep tree

первый процесс, запускающий программу cat, объединяет и выдает на выходе содержимое трех файлов. Второй процесс, запускающий программу grep, выбирает все строки, в которых содержится слово «tree». В зависимости от относительной скорости этих двух процессов (которая зависит от двух факторов: относительной сложности программ и количества выделяемого каждому из них времени работы центрального процессора) может получиться так, что программа grep готова к работе, но ожидающие ее входные данные отсутствуют. Тогда она должна блокироваться до поступления входных данных.

Состояния процессов читать полное описание.


Процессы и потоки  Реализация процессов

Реализация процессов

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

Реализация процессов читать полное описание.