Backend/OS

[OS] Process Management (1) _ 프로세스, 멀티프로그래밍

lakelight 2022. 7. 26. 11:12
728x90
반응형

프로세스 (Process)

메인 메모리에 할당되어 실행 상태(running)인 프로그램을 말합니다. 보조기억장치에 있는 프로그램이 메인 메모리로 적재되었을 때 프로세스라고 부릅니다.

 

프로세스 상태 (Process Status)

  • new - 메인 메모리에 올라오는 상태입니다.
  • ready - CPU 할당을 받는 것을 기다리는 상태입니다.
  • running - CPU가 할당되어 작업 수행 중인 상태입니다.
  • waiting - 입출력 장치와 같은 CPU 외의 할당을 받아 기다리는 상태입니다.
  • termimated - 모든 작업이 끝난 상태입니다.

이미지 출처: https://yoongrammer.tistory.com/51

 

PCB (Process Control Block)

각 프로세스마다 존재하며 프로세스 상태, 프로세스 번호(PID), PC value, MMU info, CPU time, register value 등 프로세스에 관련된 모든 사항을 기록합니다. CPU는 수행중인 프로세스를 나갈 때, 이 프로세스의 정보를 어딘가에 저장하고 있어야 다음에 동일한 프로세스 작업 수행 시 이어서 작업을 할 수 있기 때문에 이 때 필요한 정보를 저장하는 곳이 PCB 입니다.

*MMU - 물리적 메모리와 가상 메모리 사이에서 주소 변환 역할을 수행합니다.
*PC - 다음에 수행할 명령어의 주소 

 

프로세스 큐 (Process Queue)

프로세스는 작업을 수행할 때 상태가 변화하고 상태에 따라 서비스 적용 대상이 다릅니다. 또한 프로세스는 일반적으로 여러 개가 한 번에 수행되기 때문에 수행 순서가 정해져 있어야 합니다. 이러한 순서를 대기하는 곳을 큐(Queue)라고 합니다.

프로세스 큐 종류

  • Job Queue - 하드디스크에 있는 프로그램이 실행되기 위해서 메인 메모리의 할당 순서를 기다리는 큐 입니다. (long-term scheduler)
  • Ready Queue - CPU 점유 순서를 기다리른 큐 입니다. (short-term scheduler)
  • Device Queue - 입력과 출력을 위한 여러 장치를 기다리는 큐 입니다. 

 

멀티프로그래밍 (Multiprogramming)

CPU 환경에서 여러 개의 프로세스가 동시에 실행되는 것을 말합니다. 여러 프로세스가 실행되려면 모든 프로세스가 메인 메모리에 존재해야 합니다.

  • Degree of multiprogramming
    현재 메모리에 할당되어 있는 프로세스의 개수를 의미합니다.
  • I/O bound process(입출력 작업 비중이 높은 프로세스) VS CPU bound process(CPU 작업 비중이 높은 프로세스)
    Job Scheduler는 I/O bound process와 CPU bound process를 적절히 분배해서 메모리에 할당해주어야 합니다.
  • Medium-term scheduler
    운영체제가 실행하는 동안 주기적으로 메인 메모리에 있는 전체 프로세스를 검사하여 보조기억장치로 옮길 프로세스를 찾아서 옮깁니다.
  • Context Switching
    CPU가 한 프로세스에서 다른 프로세스로 옮겨가는 것을 말합니다. 즉, 한 프로세스가 실행중인 것을 멈추고 다른 프로세스가 실행되는 것입니다.

 

[참고]

1. 프로세스 관리 - 의식적으로 코딩하자 !

2. 운영체제 4장 - 프로세스 관리 (1) - ITstory

 

 

 

728x90
반응형