본문 바로가기

운영체제/프로세스(process)

운영체제 - 프로세스(process)란?

운영체제 - 프로세스(process) -1


- 프로세스(process)는 운영체제(operating system)에서 프로그램(program)을 수행시키는 주체이다.

- 또한, 운영체제의 복잡성을 해결하는 무기이다. 운영체제는 매우 복잡한 개념이기 때문에 1) abstraction, 2) decomposition을 통해 문제를 해결한다.

* decomposition? 복잡한 문제를 단순한 여러개의 문제로 만드는 방법론

- 운영체제라는 큰 개념의 부분을 프로세스(process)라고 정의하여 문제를 단순화시켰다.


프로세스(process)의 정의

  1.  program in execution.
  2.  An execution stream in the context of a particular process state.

* execution stream?

- 프로세스가 지금까지 수행한 명령어의 순서


* process state?

- 프로그램이 수행하는 데 기억하고 있어야 할 정보

  1. Memory context
    • code(RO data), data(RW data), stack, heap // segment 정보
  2. Hardware context
    • CPU register value
  3. System context
    • per-process kernel info. // PCB(process control block)

프로그램 vs. 프로세스

프로그램 : 기억장치에 저장된 code sequence.

프로세스 : DRAM에 로드되어 CPU, I/O device를 사용하는 프로그램


프로세스로 운영체제를 나누는 분류법

  1. uni-program
    • 메인 메모리에 하나의 active process가 존재
  2. multi-program
    • 메인 메모리에 여러개의 active process가 존재
  3. multi-processing
    • 여러개의 프로세스가 동시에 실행됨.(단, 반드시 multi-program일 필요는 없음. *swapping)
* Swapping
- 메모리 부족 문제를 해결하기 위해 CPU를 사용하지 않는 프로세서의 데이터를 메모리에서 다른 저장장치로 내보내고 CPU를 사용할 프로세스의 데이터를 메인 메모리로 로드하는 것.

Q. 프로세스의 개념은 왜 유용한가?


S/W 설꼐신 정의한 Task가 process로 1:1 매핑되므로 과정을 단순화 시킬 수 있다.