Process Management
프로세스 상태
프로세스는 다음 상태 중 하나에 있다.
- New - 새로 생성된 프로세스 또는 생성 중인 프로세스
- Ready - New에서 생성된 프로세스가 준비 상태로 이동한 후, 즉 프로세스를 실행할 준비가 된 상태
- Run - 현재 CPU에서 실행 중인 프로세스
- Wait(or Block) - 프로세스가 I/O에 의한 액세스를 요청할 때
- Complete(or Terminated) - 프로세스가 실행을 완료했을 때
- Suspended Ready - Ready queue가 가득 차면 일부 프로세스가 일시 중단 준비 상태로 이동
- Suspended Block - 대기 queue가 가득 찼을 때
Context switching
한 프로세스의 컨텍스트를 저장하고 다른 프로세스의 컨텍스트를 로드하는 프로세스를 컨텍스트 스위칭이라고 한다. 예를 들어 실행 상태에서 준비 상태로 프로세스를 올리거나 내리는 것을 말한다.
컨텍스트 스위칭이 발생할 때는 아래와 같다.
- 우선 순위가 높은 프로세스가 준비 상태가 될 때(실행 중인 프로세스보다 우선순위가 높을 때)
- 인터럽트가 발생(I/O 요청 등)
- 사용자 및 커널 모드 전환(필요한 경우에)
- 선점형 CPU 스케줄링 사용
멀티 프로그래밍
실행할 준비가 된 많은 프로세스가 있을 때 두 가지 유형이 있다.
선점 - 프로세스가 CPU에서 강제로 제거되며 시간 공유, 멀티태스킹이라고도 한다.
비선점 - 프로세스가 실행을 완료할 때까지 CPU에서 제거되지 않는다.
학부 때 컴공이 아님에도 반학기 정도 지독하게 강의를 들었던 경험에 기억나는 것들을 작성했다. 그 외에 스케줄링 전략들이나 인터럽트도 중요하고 폴링이 일어나고 PC가 올라가는 등 자세히 설명하기 위해서는 잘못된 정보만 전달할 것 같아서 여기까지만 작성한다. 다 알면 좋겠지만 솔직히 평범한 2년 차인 입장에서 당장에 자세하게 필요한 지식은 아닌 것 같다.
[출처] - https://www.geeksforgeeks.org/introduction-of-process-management/
'Roadmap' 카테고리의 다른 글
OS and General Knowledge - 5 (0) | 2022.02.07 |
---|---|
OS and General Knowledge - 4 (0) | 2022.02.04 |
OS and General Knowledge - 2 (0) | 2022.01.26 |
OS and General Knowledge - 1 (0) | 2022.01.25 |
Basic Frontend Knowledge - JavaScript (0) | 2022.01.24 |