⏱️ 3. 프로그램을 처리하는 발전 흐름
프로세스는 활동 단위다.
- 운영체제로부터 시스템 자원을 할당받는 활동의 단위
프로세스는 운영체제에 의해 메모리 공간과 CPU 자원을 할당 받는다.
📄 1. 프로세스 처리 발전흐름
① 다중 프로그래밍 시스템 (Multi Programming)
- 여러 프로세스를 메모리에 올려놓을 수 있지만 동시또는 병렬적이지는 않음.
한 프로세스가 모두 실행되야 다음 프로세스가 실행된다. #1 대기시, #2 실행
#1 에 I/O 작업실행시 대기상태로 가지만, 그래도 Non-Blocking I/O (파일, 네트워크통신, 마우스키보드 입출력 장치)
② 시분할 처리 시스템 (Multi Tasking)
- 드디어 프로세스의 동시성(Concurrency) 실행 가능하고 빠른 응답성의 장점을 얻음
점유시간을 정해 프로세스 시분할 처리가 가능하다.
점유 시간으로 잘개 쪼개진 프로세스간 작업 교환을 컨텍스트 스위칭이라 함.
하지만 아직도 단일 CPU에서 벗어나지 못했다.
③ 다중 프로세스 처리 시스템 (Multi Processing)
- 지금부터 여러개의 CPU 코어에게 병렬(Parallel) 처리가 가능해
실제로 성능(Throughput & Latency) 증가한다.
병렬 처리의 단위는 "Process" 아직은 작업 수행 최소 단위는 아니다.
프로세스간 통신(IPC) 에는 두가지 방법이 있다
1 "공유 메모리" / 2. "메세지 패싱 : (파이프, 파일, 소켓)"
④ 다중 스레드 처리 시스템 (Multi Threading)
- 하나의 프로세스에 들어있는 여러 "Thread"란 수행의 최소 단위로
병렬(Parallel) 처리를 수행한다 마찬가지로 실제로 성능(Throughput & Latency) 증가한다.
하지만 스텍 제외 메모리를 공유하기 때문에 "동기화 처리" 가 중요해 진다.
테이블
특징 | Single Process | Multi Programming | Multi Tasking | Multi Processing | Multi Threading |
---|---|---|---|---|---|
① 여러 프로세스 실행 및 대기 Non-Blocking I/O |
❌ | ✅ | ✅ | ✅ | ✅ |
② 프로세스 시분할 처리 & 작업 스위칭(Context_Switcing) & 동시성 |
❌ | ❌ | ✅ | ✅ | ✅ |
③ 프로그램 병렬성 & 병렬 작업 처리 가능성 | ❌ | ❌ | ❌ | ✅ | ✅ |
④ 자원(메타데이터, 코드, 파일) 공유가능성 | ❌ | ❌ | ❌ | ⚠️ : IPC (파이프,소켓) |
✅ : 스택제외 |
📄 2. 멀티스레드를 알아야 하는 이유
① 응답성 (대기, Blocking 해결, UI 반응성, Concurrency, 동시에 작업되는것 처럼 보이는 환상이다.)
② 성능 (실제로 작업을 여러개 실행, 같은 시간에 많은 작업을 함)
📄 3. Concurrency(동시성) & Parallelism(병렬성)
- Concurrency and Parallelism : many tasks are executed on signle or multiple core.
동시성(Concurrency) 병행성(Parallelism) 동시에 실행되는것 처럼 보임 (응답성)
ContextSwitching 작업을 수행하여 프로그램의 응답성을 높일 수 있음실제로 동시에 실행 (성능)
병렬 수행을 통해 여러 코어에 테스크를 배분할 수 있으므로 높은 성능을 기대할 수 있음.
단 I/O 작업인지, CPU 작업인지 두가지를 고려해 스레드의 개수를 상정하는것이 좋다.단일 코어만으로도 가능 멀티코어에서만 가능 Context_Switcing Race Condition
참조
'CS > OS' 카테고리의 다른 글
| 니앙팽이 - 멀티스레딩 | 5 | 성능 평가 척도 (0) | 2025.01.18 |
---|---|
| 니앙팽이 - 멀티스레딩 | 4 | 프로세스 (0) | 2025.01.18 |
| 니앙팽이 - 멀티스레딩 | 2 | OS가 메모리를 관리하는 방법 (0) | 2025.01.18 |
| 니앙팽이 - 멀티스레딩 | 1 | 스택과 힙 (0) | 2025.01.18 |
| 니앙팽이 - 멀티스레딩 | 0 | 하드웨어와 캐시 메모리 (0) | 2025.01.18 |