스레드(thread)를 가지고 있는데, 보통 스레드 단위로 스케줄링을 함프로세스가 되는 과정 : 하드디스크에 있는 프로그램 실행 → 실행을 위한 메모리 할당이 이루어짐 → 할당된 메모리 공간으로 바이너리 코드가 올라감Code 영역 : 프로그램을 실행시키는 실행 파일 내의 명령어들이 올라감Data 영역T 구조를 가지고 있음
New : 프로세스가 막 생성된 상태Ready : 프로세스가 CPU에 실행 되기 위해 대기하는 상태Running : 프로세스에 포함된 명령어가 실행되고 있는 상태Waiting : 프로세스가 특정 자원이나 이벤트를 기다리는 상태Terminated : 프로세스가 실행을 완료한 상태| 동작 | 설명 |
|---|---|
| Ready → Running (Dispatch) | 우선순위가 높은 프로세스 선정하여 명령어 실행 |
| Running → Ready (Timer runout) | 클럭이 인터럽트를 발생시켜 선점권을 빼앗음 |
| Running → Waiting (Block) | 프로세스가 입출력, 자원 등을 기다리기 위해 대기로 전환 |
| Waiting → Ready (Wake up) | 입출력이 완료되거나 자원이 할당되어 다시 실행 |
위 내용은 다음 블로그를 참고하였습니다.