728x90
Process
프로세스는 실행중인 프로그램이다
프로세스의 Context
프로세스에서는 문맥이 중요하다. CPU 수행 상태를 나타낸다.
- 하드웨어 문맥 : register가 현재 어떤 값을 가지고 있었는지, Program Counter 값
- 프로세스의 주소 공간 : code, data, stack에 어떤 내용이 들어있는지
- 프로세스 관련 커널 자료 구조 : PCB (Process Control Block), Kernel stack
이러한 프로세스 정보를 가지고 있으면 프로세스가 어떤 상태에 있는지 알 수 있다. 컴퓨터 시스템에서는 multi-tasking이 이루어진다. 즉 , 프로세스들이 번갈아 가면서 실행된다. 따라서, 현재 프로세스의 문맥을 알지 못하면 다음번에 CPU 자원을 사용할 때 실행할 수 없을 것이다.
프로세스의 상태
- Running : CPU를 잡고 명령어를 수행중인 상태
- Ready : CPU를 기다리는 상태. 다른 모든 준비는 끝난 상태이다.
- Blocked (Wait, Sleep) : CPU를 주어도 당장 명령어를 수행할 수 없는 상태. Process 자신이 요청한 event가 즉시 만족되지 않아서 기다리는 상태 ex) I/O 작업이 오래 걸리는 경우 , 디스크에서 file을 읽어와야 하는 경우
- New : 프로세스가 생성중인 상태
- Terminated : 수행이 끝난 상태
process 가 ready 상태가 되었을 때 최소한의 memory를 가지고 있어야 하므로 memory 상에 올라와 있는 상태이다. CPU를 얻게 되면 running 상태가 된다.
728x90
'Computer Science > 운영체제' 카테고리의 다른 글
[OS] 운영체제 6 Process Synchronization & Race Condition (0) | 2023.05.28 |
---|---|
[OS] 운영체제 5.2 CPU Scheduling (0) | 2023.05.28 |
[OS] 운영체제 4. 시스템의 구조와 프로그램의 실행 (0) | 2023.05.21 |
[OS] 운영체제 3. 컴퓨터 시스템 구조 (0) | 2023.05.20 |
메모리의 구조 (Memory Structure) (0) | 2023.04.03 |