- 프로세스(process)
프로세스는 사전적 의미로 과정, 절차라는 뜻이다.
컴퓨터 용어에서의 프로세스는 메모리 상에서 실행되는 작업 단위이다.
프로그램은 일반적으로 하드디스크 등에 저장되어있는 실행코드, 리소스 등이 집합되어있는 파일을 뜻하고,
프로세스는 프로그램을 구동하여 프로그램 그 자체와 상태가 메모리 상에서 실행되는 작업 단위를 지칭한다.
조금 더 쉽게 생각해보자면 프로세스는 특정 목적을 수행하기 위해 나열된 작업의 목록이라고 생각하면 편하다.
하나의 프로그램을 여러 번 구동하면 여러 개의 프로세스가 메모리 상에서 실행된다.
- 프로세스의 상태 전이
프로세스가 생성되어 소멸되기까지의 과정이다.
생성 (Created)
↓
준비 (Ready) ← 대기 (Block), (Wait)
↕
실행 (Run)
↓
종료 (Terminated)
▷ 준비 -> 실행 (DisPatch) : 우선순위가 높은 프로세스를 선정하여 명령어를 실행한다.
▷ 실행 -> 준비 (Timer Runout) : 클럭이 인터럽트를 발생시켜 제어권을 빼앗는다. ( Preemption, 독점방지)
▷ 실행 -> 대기 (Block), (Wait) : 프로세스가 입출력, 자원 등을 기다리기 위해 대기상태로 전환한다.
▷ 대기 -> 준비 (Wake Up) : 입출력이 완료되거나 자원이 할당되어 다시 실행한다.
※ 지연상태는 표를 그리기 어려워 생략.
▶ 생성 (Created) : 프로세스가 생성되는 중이다.
▶ 실행 (Running) : 프로세스가 CPU를 차지하여 명령어들이 실행되고 있다.
▶ 준비 (Ready) : 프로세스가 CPU를 사용하고 있지 않지만 언제든지 사용할 수 있는 상태로,
CPU가 할당되기를 기다리고 있다. 일반적으로 준비상태의 프로세스 중
우선순위가 높은 프로세스가 CPU를 할당받는다.
▶대기 (Waiting) : 보류(Block)라고 부르기도 한다. 프로세스가 입출력 완료, 시그널 수신 등
어떤 사건을 기다리고 있는 상태를 말한다.
'IT' 카테고리의 다른 글
NFT (Non-Fungible Token)란? NFT의 장점과 단점 (0) | 2022.03.24 |
---|---|
블록체인(Block Chain)이란? (0) | 2022.03.23 |
메타버스 (Metaverse)란 ? (0) | 2022.03.13 |
C++ 언어의 특징 (0) | 2022.02.04 |
인터페이스(Interface) 란? (0) | 2022.01.30 |