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