728x90
Process 정의
- 실행중인 프로그램을 뜻함
- 주기억장치에 저장된 프로그램
- 작업 스케줄러에 의해서 생성되어 주기억장치에 진입함을 뜻함
- 프로세스 내부에는 최소 하나의 스레드를 가지고 있으며, 실제로 스레드 단위로 스케쥴링을 함
Process 메모리 구조
- Heap : 동적할당을 위한 메모리 영역
- Data : 전역변수, static 변수 할당
- Stack : 지역변수, 함수 호출시 전달되는 파라미터를 위한 메모리 영역
Process 상태
- 신규 (new)
- 실행 (Run) : 준비 상태에 있는 프로세스가 CPU를 얻어 실제 작업을 수행하는 상태
- 준비 (Ready) :하나의 프로세스가 중앙처리장치를 사용할 수 잇는 상태
- 대기 (Waiting) : 프로세스가 어떤 사건이 일어나기를 기다리는 상태
- 완료 (Termnated) : 프로세스가 CPU를 할당 받아 주어진 시간내에 완전히 수행을 종료한 상태
프로세스는 5가지 상태를 가지고 있으며, 각각의 상태가 다른상태로 변경됨
Process 상태 전이
- 디스패치 (준비상태 -> 실행상태) : 준비상태의 프로세스들 중에서 우선순위가 가장 높은 프로세스를 선정하여 CPU를 할당
- 할당시간 초과 (실행상태 -> 준비상태) : 지정된 CPU의 할당시간을 모두 사용한 프로세스는 다른 프로세스를 위해 CPU가 선정되고 그 프로세스는 준비상태로 전환
- 대기 (실행상태 -> 대기상태) : 실행중인 프로세스가 입출력명령을 만나면 인터럽트가 발생하여 CPU를 반환하고, 대기상태로 전환
- 깨움 (대기상태 -> 준비상태) : 입출력 완료를 기다리다가 입출력 완료 신호과 들어오면, 대기중인 프로세스는 준비상태로 전환
'OS' 카테고리의 다른 글
[OS] Thread Safe (0) | 2021.11.06 |
---|---|
[OS] 데드락 (0) | 2021.11.06 |
[OS] Thread (쓰레드) (0) | 2021.10.03 |
[OS] 뮤텍스 / 세마포어 (0) | 2021.06.13 |
[OS] PCB(Process Control Block) (0) | 2021.06.12 |