본문 바로가기

Roadmap

OS and General Knowledge - 3

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