[운영체제] 프로세스 생성 과정
2022. 4. 13. 12:28ㆍ코딩공부/ComputerScience
프로세스란?
CPU에 의해서 현재 실행되고 있는 프로그램
프로세스의 상태
Ready 상태
- 프로세스가 처리기(CPU)를 사용하지 있지는 않지만 언제든 사용할 수 있는 상태
- 프로세스가 처리기의 배정을 기다리고 있는 상태
- 다른 프로세스 실행을 위해서 일시적으로 정지해 있는 상태
- CPU에 의해 처리되기 위해 주기억 장치에 존재하는 상태
Run 상태
- 프로세스가 CPU를 차지하고 있는 상태
- 프로세스의 명령이 실행되고 있는 상태
Block, Wait, 보류 상태
- 프로세스가 어떤 사건이 일어나기를 기다리고 있는 상태
- 처리속도가 느린 I/O(입출력) 작업 중인 상태
- 외부적인 사건이 생길 떄까지 실행할 수 없는 상태
프로세스 생성과정
- 먼저 프로세스가 생성이 되려면 파일 시스템의 그 대상이 되는 exe파일이 있어야 한다. 이 exe파일의 Path를 OS에게 전달 해야한다.
- OS는 실행 가능한 파일들의 코드를 읽어 들인다. -> 즉 Memory Context의 한 부분인 Code 세그먼트로 exe 파일의 코드들을 읽어 들인다.
- 또 exe파일에는 전역 변수의 선언과 정보 들이 있다. 이 정보들을 기반으로 Data 세그먼트에 알맞게 영역을 잡아준다.
- 이렇게 Code 세그먼트와, Data 세그먼트로 exe파일들을 불러들이는이 작업을 프로그램을 로드 한다고 말한다.
- 스택 세그먼트와, 힙 세그먼트는 아직 아무것도 없으므로 초기화만 시킨다.
- 그리고 그 프로세스의 정보를 담은 PCB(Process control block)를 Malloc 해서 필요한 정보를 채워 넣는다.
- 이렇게 생성돤 PCB를 레디큐에 장착시킨다.

'코딩공부 > ComputerScience' 카테고리의 다른 글
쓰레드(Thread)란 무엇인가?(단일 스레드/멀티 스레드 장단점) (0) | 2022.04.20 |
---|---|
HTTPS란? (0) | 2022.04.13 |
[한권으로 읽는 컴퓨터 구조와 프로그래밍] 저수준 I/O(~p.237), 네트워킹 (0) | 2022.02.08 |
[한권으로 읽는 컴퓨터 구조와 프로그래밍] 인터럽트, 상대 주소 지정 (0) | 2022.02.02 |
[한권으로 읽는 컴퓨터 구조와 프로그래밍] 비트를 처리하기 위한 하드웨어 (0) | 2022.01.26 |