시분할 시스템
- 다중 프로그래밍을 기본
- 여러 개의 작업들이 메모리에 있고 CPU는 이들 사이를 오가며 실행
프로세스란?
- 수행 중인 프로그램(A program in execution)
- 프로그램, 레지스터, 스택 등의 데이터와, PC 값 등으로 표현되어 커널에 등록되어 있는 것을 의미
- 실행을 위해 필요한 환경을 시스템으로 부여받은 상태
프로세스 제어 블록이란?
- PCB(Process Control Block)
- 프로세스에 대한 정보를 담고 있는 테이블 모양의 자료구조
프로세스의 상태(Process State)와 변화
- 생성(Created) 상태
- 준비(Ready) 상태
- CPU만 주어지면 실행할 준비가 되어 있는 상태
- 준비 상태의 프로세스들의 실행 순서를 결정해 주는 것을 CPU 스케쥴링이라고 한다.
- 준비 상태에 있는 프로세스는 준비 큐 또는 리스트에 들어간다.
- 실행(Running) 상태
- CPU를 할당 받아 실행중인 상태
- 다중처리
- 여러개의 CPU가 각각 프로세스를 하나씩 실행시키는 것
- 대기(Blocked) 상태
- 입출력 처리를 요청하거나, 바로 확보될 수 없는 자원을 요청하면 CPU를 양도하고 기다리는 상태
- 요청한 일이 완료되면 실행 상태를 위해 준비 상태로 바뀌며 준비 큐에 들어간다,
- 입출력 완료는 인터럽트를 통해 알 수 있다
- 보류 준비(Suspended Ready) 상태
- 보류 대기(Suspended Block) 상태
- 종료(Terminated) 상태
- 프로세스가 종료될 때 잠시 거치는 상태
- 할당되었던 모든 자원 회수
- PCB는 커널에 남아 있음
- 운영체제가 프로세스의 흔적들을 최정 정리 후 PCB를 삭제하면 프로세스가 완전히 사라지게 된다.
- 활성 상태
- 준비. 실행, 대기 상태
- 실행될 프로그램과 데이터 등을 위해 메모리 공간의 일정량을 부여 받음
- 메모리가 부족하거나 다른 이유에 의해서 활성 상태의 프로세스로부터 메모리를 회수하는 경우가 있는데 이때를 보류(Suspension) 시킨다라고 한다.
출처. 누워서 보는 운영체제 이야기
'CS' 카테고리의 다른 글
[OS] 스케쥴링 (0) | 2020.03.03 |
---|---|
[OS] Thread 상태 제어 (0) | 2020.03.03 |
[OS] 운영체제(OS)란? (0) | 2020.02.29 |
OS? Yes! 누워서 보는 운영체제 이야기 (0) | 2019.02.13 |
[OS] 쓰레드(Thread) (0) | 2018.04.18 |
댓글