Идентификатор работы в UNIX сомнения - PullRequest
2 голосов
/ 02 октября 2009

Я задал связанный вопрос ' Разница между идентификатором группы процессов и идентификатором задания в Unix ', но у меня есть сомнение, что не было ответа. В этом ответе было написано, что идентификатор задания встроен в данные, относящиеся к оболочке (ядро не имеет к этому никакого отношения), поэтому передний план / фон - это понимание оболочки, но когда мы делаем «ps x», тогда он отображается в статистике. как "R+" или "R" как передний план и фоновый процесс соответственно, но ps выполняется ядром, так как же ядро ​​узнает, что задание вернулось / передний план.

Ответы [ 2 ]

1 голос
/ 02 октября 2009

Идентификаторы заданий - это определенно функции оболочки.

Однако операционная система имеет понятие текущего идентификатора группы процессов терминала, которое также используется оболочкой для облегчения управления заданиями. Процессы, которые имеют тот же идентификатор группы процессов, что и текущий процесс терминала, получают сигнал клавиатуры, такой как SIGINT, и могут выполнять ввод / вывод на терминале. Эти процессы являются приоритетными. Если идентификатор группы процессов отличается, то этот процесс является фоновым процессом. Команда ps отображает +, когда процесс является приоритетным процессом в этом понятии. Ему все еще не нужно ничего знать об управлении заданиями, реализованном в оболочке.

0 голосов
/ 02 октября 2009

Я бы не сказал, что «ядро не имеет к этому никакого отношения», поскольку оболочка использует подпрограммы в ядре для достижения своих целей.

Оболочка решает , является ли процесс передним или фоновым, но ядро ​​также должно знать о нем и может сообщать о состоянии процессов при запросе оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...