프로그램, 프로세스, 스레드
* 프로그램 : 바이너리, 코드 이미지, 응용 프로그램, Application, 또는 실행 파일
* 프로세스 : 실행 중인 프로그램 (메모리 적재 + 프로세스 상태 정보 포함)
* 스레드
- 리눅스 프로세스는 기본 스레드 포함
- 싱글스레드 프로세스 : 기본 프로세스
- 멀티스레드 프로세스 : 여러 스레드 존재
프로세스 ID
* pid(process id), 각 프로세스는 해당 시점에 unique한 pid를 가짐
* pid 최대 값은 32768
* 부호형(signed) 16비트 정수값 사용
* 최근 할당된 pid가 200이라면, 그 이후는 201, 202… 식으로 할당된다
프로세스 계층
* 최초 프로세스 : init 프로세스, pid 1
* init 프로세스는 운영체제가 생성
* 다른 프로세스는 또 다른 프로세스로부터 생성 : 부모 프로세스, 자식 프로세스
* ppid 값이 부모 프로세스틔 pid를 뜻함
프로세스와 소유자(owner) 관리
* 리눅스 내부에서는 프로세스의 소유자(사용자)와 그룹을 UID/GID (정수)로 관리
* 사용자에 보여줄때에만 UID와 사용자이름 매핑 정보를 기반으로 사용자 이름으로 제공
출처 : 제로베이스
'공부 Note > 시스템 프로그래밍' 카테고리의 다른 글
Chapter 04 시스템 프로그래밍 (4) (0) | 2022.02.07 |
---|---|
Chapter 04 시스템 프로그래밍 (3) (0) | 2022.02.07 |
Chapter 04 시스템 프로그래밍 (1) (0) | 2022.02.07 |
Chapter 03 쉘로 시작하는 시스템 프로그래밍 (5) (0) | 2022.02.07 |
Chapter 03 쉘로 시작하는 시스템 프로그래밍 (4) (0) | 2022.02.07 |