<Linux Chapter 5> - 프로세스와 시그널 1

심우열·2023년 1월 26일
0

Linux OS

목록 보기
7/10

프로세스

  1. 프로세스란 현재 실행중인 프로그램
  2. 프로그램은 하드디스크에, 프로세스는 메모리에

1. 프로세스 스케쥴링

  1. 여러 프로그램이 동시에 실행되는 상황에서 모두를 만족시키기 위한 방법
  2. CPU가 처리할 프로세스의 스케쥴을 정하는 것

2. 프로세스 상태

프로세스 상태 관리를 위한 프로세스 전이 다이어그램

3. 프로세스의 계층구조

1. PID(Process ID)

1. 프로세스 별로 고유한 ID를 갖고 있음
2. 번호 자체에는 의미가 없음

2. 부모 프로세스와 자식 프로세스

1. 한개의 프로세스가 다른 프로세스를 만들 수 있음
2. init 프로세스를 제외한 모든 프로세스는 부모프로세스를 갖고 있음

3. init 프로세스

1. OS 가 부팅 될 때, 커널이 생성하는 최초의 프로세스
2. PID 는 1번
3. 모든 프로세스는 init 프로세스의 자식
4. 이로써 프로세스의 계층구조가 형성됨

4. 프로세스의 종료 처리

1. 프로세스가 계층구조를 갖는 이유 중 하나 
2. 프로세스가 종료 될 때, 부모 프로세스가 해당 프로세스가 사용하던 자원을 정리해주어야 함

5. 고아 프로세스와 좀비 프로세스

1. 프로세스의 종료 처리가 잘 되지 않았을 경우 생성됨
2. 자식 프로세스가 종료되기 전에 부모 프로세스가 먼저 종료되었을 경우 고아 프로세스 생성
3. 고아 프로세스는, 고아 프로세스가 종료될 때 종료 처리를 해줄 부모프로세스가 없기에 문제가 발생함
4. 고아 프로세스가 발생 시, init 프로세스가 부모 프로세스로 설정 됨
5. 자식 프로세스가 종료될 때, 부모 프로세스에 종료 시그널을 보내지만, 부모 프로세스가 제대로 종료처리를 해주지 않을 경우 제대로 종료 처리 되지 않은 프로세스가 남게 되는데 이를 좀비 프로세스라고 함
6. 좀비 프로세스는 자원을 낭비하는 원인이 됨

4. 프로세스의 종료 상태(exit status)

1. 프로세스 종료 상태란

1. 프로세스가 종료될 때 넘겨주는 정보
2. 부모 프로세스에게 정보를 넘겨줌

2. 상태 정보

1. integer 값으로 받음(0:성공, else:실패)
2. 정상 종료 여부
3. 시그널을 받아 종료되었는지 여부 및 시그널의 종류
4. 코어 덤프(core dump)를 생성했는지 여부
**텍스트**
profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글