테크 로그포스 Tech Log Force
[OS] Multi-processing, Multi-programming, Multi-threading 본문
세가지 방식 모두 여러 Process나 Thread에 동시 실행을 제공하는 방식이다.
1. Multi-processing
여러 개의 processor(CPU)를 이용해서 여러 프로세스를 물리적으로 동시에 실행하는 방식을 의미한다.
진정한 병렬 실행 방식이다.
2. Multi-programming
프로세스가 I/O event wait를 위해 block되었을 때, CPU를 다른 프로세스에게 할당하여 CPU의 활용률을 높이는 방식이다. 즉, cpu가 I/O wait등 대기하는 상태가 됐을 때 다른 프로그램이 돌아갈 수 있도록 실행 권한을 넘겨주는 것.
시간적으로 여러 프로세스에게 번갈아 가며 CPU를 할당하는 방식으로 동시 실행을 제공하게 된다.
또한, I/O event wait가 아니더라도 일정시간(quantum)시간 만큼만 할당한 후 대기중인 다른 프로세스에게 CPU 자원을 할당하여 동시 실행을 제공하는 방식도 multi-programming 방식이다.
3. Multi-threading
한 프로세스 내에 여러 thread를 생성하고 이들 thread에 multiprogramming과 같은 방식으로 thread간 동시 실행을 제공하는 방식이다.
애플리케이션을 실행하는 프로세스를 동시에 실행할 수 있는 쓰레드로 나눌 수 있는 기술이다.
Multi-threading은 해당 프로세스가 running 상태일 때에만 thread간 동시 실행이 이루어진다.
'CS > OS' 카테고리의 다른 글
[OS] Conditions for Deadlock (0) | 2023.02.26 |
---|---|
[OS] PCB(Process Control Block (0) | 2023.02.26 |
[OS] Interrupt (0) | 2023.02.26 |
[OS] Process와 Thread의 차이, Time-sharing, Context Switching (0) | 2023.02.26 |
[OS] 운영체제의 역할 (0) | 2023.02.26 |
Comments