728x90
반응형
프로세스 (Process)
메인 메모리에 할당되어 실행 상태(running)인 프로그램을 말합니다. 보조기억장치에 있는 프로그램이 메인 메모리로 적재되었을 때 프로세스라고 부릅니다.
프로세스 상태 (Process Status)
- new - 메인 메모리에 올라오는 상태입니다.
- ready - CPU 할당을 받는 것을 기다리는 상태입니다.
- running - CPU가 할당되어 작업 수행 중인 상태입니다.
- waiting - 입출력 장치와 같은 CPU 외의 할당을 받아 기다리는 상태입니다.
- termimated - 모든 작업이 끝난 상태입니다.
PCB (Process Control Block)
각 프로세스마다 존재하며 프로세스 상태, 프로세스 번호(PID), PC value, MMU info, CPU time, register value 등 프로세스에 관련된 모든 사항을 기록합니다. CPU는 수행중인 프로세스를 나갈 때, 이 프로세스의 정보를 어딘가에 저장하고 있어야 다음에 동일한 프로세스 작업 수행 시 이어서 작업을 할 수 있기 때문에 이 때 필요한 정보를 저장하는 곳이 PCB 입니다.
*MMU - 물리적 메모리와 가상 메모리 사이에서 주소 변환 역할을 수행합니다.
*PC - 다음에 수행할 명령어의 주소
프로세스 큐 (Process Queue)
프로세스는 작업을 수행할 때 상태가 변화하고 상태에 따라 서비스 적용 대상이 다릅니다. 또한 프로세스는 일반적으로 여러 개가 한 번에 수행되기 때문에 수행 순서가 정해져 있어야 합니다. 이러한 순서를 대기하는 곳을 큐(Queue)라고 합니다.
프로세스 큐 종류
- Job Queue - 하드디스크에 있는 프로그램이 실행되기 위해서 메인 메모리의 할당 순서를 기다리는 큐 입니다. (long-term scheduler)
- Ready Queue - CPU 점유 순서를 기다리른 큐 입니다. (short-term scheduler)
- Device Queue - 입력과 출력을 위한 여러 장치를 기다리는 큐 입니다.
멀티프로그래밍 (Multiprogramming)
CPU 환경에서 여러 개의 프로세스가 동시에 실행되는 것을 말합니다. 여러 프로세스가 실행되려면 모든 프로세스가 메인 메모리에 존재해야 합니다.
- Degree of multiprogramming
현재 메모리에 할당되어 있는 프로세스의 개수를 의미합니다. - I/O bound process(입출력 작업 비중이 높은 프로세스) VS CPU bound process(CPU 작업 비중이 높은 프로세스)
Job Scheduler는 I/O bound process와 CPU bound process를 적절히 분배해서 메모리에 할당해주어야 합니다. - Medium-term scheduler
운영체제가 실행하는 동안 주기적으로 메인 메모리에 있는 전체 프로세스를 검사하여 보조기억장치로 옮길 프로세스를 찾아서 옮깁니다. - Context Switching
CPU가 한 프로세스에서 다른 프로세스로 옮겨가는 것을 말합니다. 즉, 한 프로세스가 실행중인 것을 멈추고 다른 프로세스가 실행되는 것입니다.
[참고]
2. 운영체제 4장 - 프로세스 관리 (1) - ITstory
728x90
반응형
'Backend > OS' 카테고리의 다른 글
[OS] Process Management (3) _ 쓰레드, 쓰레드 동기화, 세마포어 (0) | 2022.07.31 |
---|---|
[OS] Process Management (2) _ CPU 스케줄링 (0) | 2022.07.27 |
[OS] How OSs work in General (0) | 2022.07.22 |
[OS] Terminal Usage (2) _ Terminal 명령어 (0) | 2022.07.19 |
[OS] Terminal Usage (1) _ CLI, Terminal, Shell (0) | 2022.07.19 |