Process란?
"Process is a program in execution"
프로세스란 실행 중인 프로그램이다.
프로그램이란 기본적으로 명령어(Instruction)의 목록이다.
따라서 프로그램 실행이란 주어진 명령어의 목록(코드)을 메모리를 할당하여 그 위에 올려놓고 수행하는 것이다.
이렇게 실행중인 프로그램을 프로세스라고 한다.
Process 실행 과정
1. 코드와 데이터를 디스크로부터 메모리로 불러온다(Fetch).
2. 스택(Stack), 힙(Heap) 메모리를 할당(Allocate)한다.
3. I/O Setup 등의 사전 작업을 수행한다.
4. 시작점(main)으로 진입한다.
5. 명령어를 해석(Decode)하여 수행(Execute)하는 작업을 반복한다.
Process의 상태
프로세스의 상태는 Ready, Running, Blocked 세 가지로 구분할 수 있다.
Ready 상태는 프로세스가 실행을 위한 준비중인 단계이고,
Running 상태는 프로세서 위에서 실행중인 단계이며,
Blocked 상태는 프로세스가 다른 프로세스나 여러 가지 이유로 멈춰있는 상태이다.
Process API란?
Process API란 OS가 Application에게 제공하는 Interface이다.
프로세스를 생성, 종료하거나 정지, 재개 또는 프로세스의 상태를 알려주는 등의 기능을 제공한다.
※ 보편적으로 System Call이라고 부르는데, 차이점은 모르겠다.
System Call에 대한 자세한 내용은 다음 글에서.
'Computer Science > Operating System' 카테고리의 다른 글
Segmentation이란? (0) | 2019.04.23 |
---|---|
Virtual Address Space와 Address Translation (0) | 2019.04.23 |
Memory API란? (0) | 2019.04.22 |
CPU Scheduling 기법 (0) | 2019.04.22 |
System Call이란? (0) | 2019.04.22 |