======================
[Process]
파일로 작성 된 프로그램은 로더(Loader)에 희해 주기억 장치에 상주되어 CPU에 의해서 처리된다. 이때 주기억 장치에 상주된 프로그램이 CPU에 의해서 처리되는 상태를 프로세스라고 한다.
1. CPU에 의해서 현재 실행되고 있는 프로그램
2. PCB(Process Control Block, 프로세스 제어 블록)의 존재로서 명시되는 것
3. 프로세서가 할당되는 개체로서 디스패치(Dispatch)가 가능한 단위
4. 비동기적 행위를 일으키는 주체
5. CPU가 할당되는 실체
6. 운영체제가 관리하는 최고 단위의 작업(프로그램)
7. task란 용어와 함께 사용되며, 다양한 정의를 가짐
8. 프로그램과 달리 메모리에 주소 공간을 갖는 능동적인 객체
하나의 프로세스는 다음과 같이 3가지 주요 상태로 존재하게 된다. 실행(CPU사용)을 위해 준비(Ready)하고 있는 상태에 있다가 실행(Run)되며, 실행중에 있다가도 필요에 따라서
대기(Block) 하고있는 상태로 있게 된다.
1. PCB(Printed Circuit Board)가 생성되면 OS가 실행한 프로그램의 코드를 읽어들여 프로세스에 할당된 메모리의 Text segment에 저장한다
2. 초기화된 전역 변수 및 static 변수를 data segment에 할당
3. HEAP과 Stack은 초기 메모리 주소만 초기화됨
4. PCB에 여러 정보가 기록되면 Ready Queue에서 CPU를 할당받기까지 대기한다.