728x90
시간남으면 그림그려서 추가 ... + 강의자료
프로그램 실행 과정
프로세스 생성과 동시에 프로세스 그룹도 생성된다. 프로세스 그룹은 커널이 터미널 제어권을 관리하기 위한 목적으로 사용하는 프로세스들의 집합으로 쉘(shell)에서 실행된 프로세스와 자식 프로세스들이 하나의 프로세스 그룹으로 관리된다.
터미널 제어권이란 터미널로부터 입력되는 데이터와 터미널로부터 발생하는 시그널에 대한 제어권으로 프로세스 그룹 단위로 제어권이 부여된다.
커널이 프로세스 그룹을 식별하기 위한 식별자로 PGID를 부여하며, PGID는 해당 그룹의 리더 프로세스(쉘로부터 실행된 프로세스)의 PID를 PGID로 설정한다.
- Foreground mode : 터미널에 대한 제어권을 가지고 동작하는 모드
- Background mode : 터미널에 대한 제어권 없이 동작하는 모드
터미널과 연결되어 세션이 생성되면, 해당 세션 내에서는 하나의 포그라운드 프로세스 그룹과 하나 이상의 백그라운드 프로세스 그룹이 생성된다
프로세스 관련 식별자
- PID : 커널 내에서 프로세스를 식별하기 위한 고유ID
- PPID : 부모 프로세스를 식별하기 위한 ID
- PGID : 프로세스 그룹을 식별하기 위한 ID
쉘에서 실행된 프로세스와 그 자식 프로세스들이 그룹으로 관리되며 해당 프로세스의 리더 프로세스(쉘로부터 실행된 프로세스)의 PID가 PGID로 설정된다. - SID : 세션을 식별하기 위한 ID
SID는 해당 세션의 리더 프로세스(일반적으로 로그인 쉘) PID가 된다.
ps 명령어
ps
명령어는 시스템에서 동작하는 프로세스 정보를 확인할 때 사용
-f
: 프로세스 정보를 f 형식으로 출력-l
: 프로세스 정보를 l 형식으로 출력-e
: 현재 시스템에서 동작 중인 모든 프로세스 정보 출력 (명시하지 않으면 현재 쉘에서 동작 중인 프로세스 정보만 출력)
ps -ef
: UID, PID, PPID, STIME 등 필드 존재
ps -el
: S 필드 ( Z : 좀비, R : Ready/Running )
시그널 SIGNAL
시그널은 프로세스 간 통신 기법(IPC) 중 하나로 커널 또는 프로세스가 다른 프로세스에 약속된 신호를 전달하여 통신하는 목적으로 사용한다.
IPC : Pipe, Signal, Message Queue, Shared MEmory, Semaphore
kill [-시그널번호 | -시그널명 ] PID
이름 | 번호 | 의미 |
SIGKILL | 9 | 시그널을 받은 프로세스는 무조건 종료한다. |
SIGSTOP | 19 | 시그널을 받은 프로세스는 무조건 정지한다. |
SIGKILL과 SIGSTOP은 무시하거나 임의로 처리할 수 없는 시그널로 관리 목적의 시그널이다.
728x90
'Linux' 카테고리의 다른 글
[Linux] cron 작업 스케줄 관리 (0) | 2024.04.17 |
---|---|
[Linux] 사용자 및 그룹 관리 (0) | 2024.04.17 |
[Linux] 프로세스 응용 (0) | 2024.04.16 |
[Linux] 파일 검색 find (0) | 2024.03.28 |
[Linux] 파일과 접근 권한 관리 (0) | 2024.03.20 |