Архитектура современных операционных систем
37 В случае работы в фоновом режиме прикладной процесс не взаимодей- ствует с консолью, поэтому Shell может параллельно с запущенным процессом воспринимать команды и выполнять их (рис. 2.18.). Для того, чтобы посмотреть состояние запущенного пользовательского процесса используется команда ps [PID]. Если PID не указан, то выводится состояния всех запущенных пользова- тельских процессов. Функции работы с процессами В Unix используется в основном 4 функции работы с процессами: 1. fork() – функция создания нового процесса, с новым идентификато- ром и копирования в него контекста вызывающего процесса. Функция выпол- няется следующим образом: a. В системной таблице процессов создается новый элемент для со- здаваемого процесса. b. Новому процессу выделяется память. c. В выделенную память нового процесса копируется контекст вызы- вающего процесса. d. Увеличивается счетчик во всех таблица работы с файлами для фай- лов вызывающего процесса (на единицу). e. Возвращается код завершения Рис. 2.19. Два идентичных процесса (рис. 2.19.), счетчики команд указывают на следующие команды после fork(). Отличие состоит в том, что fork() родителя возвращает идентификатор дочернего процесса, а fork дочернего процесса воз- вращает 0.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy