멀티 프로세서: 한 시스템 내에 여러 개의 프로세서 (CPU)
멀티 코어: 하나의 칩 내에 여러 개의 코어 (CPU)
CPU가 하나일 때는 적합하지 않음
병렬 프로그래밍, 멀티 스레딩.. 등 영역을 나누어 수행 후 결과를 합치는 방식으로 이용
멀티 프로세서 구조에 따른 문제 + 캐시 일관성
캐시가 접근이 가장 빠르므로, 캐시 접근을 주로 다룸
싱글 CPU의 경우, 캐시와 데이터 일관성 문제가 없다.
멀티 프로세서 구조에서 캐시 ?
캐시 일관성 문제가 발생함
CPU 0이 메모리에서 데이터를 읽어와 캐시에 적재 후 내용을 바꿈
→ 이러면 메모리에도 다시 내용을 바꿔줘야 하는데 CPU 1이 메모리에 접근 중임
→ 그러면 CPU 0과 CPU 1이 갖는 데이터가 다르게 됨
캐시 일관성 주요 해결 방법
동기화 문제 - 여러 CPU가 데이터를 공유할 때,
병행성 예제와 같은 문제 발생
배타적 접근(접근 중인 프로세스가 있으면 접근 X)을 보장
캐시 친화성 문제
한 번 수행한 CPU의 캐시에 많은 정보가 있을 거임
그럼 스케줄링 시, 이전에 쓴 CPU를 선택하는게 유리함
SQMS 특징 및 장단점 (단일 큐 멀티프로세서 스케줄링)
여러 CPU가 하나의 큐를 공유함
장점
- 단순함
단점
- 캐시 친화성 고려
- 확장성 고려
어느 스케줄러에 배치할지 ?
MQMS 특징 및 장단점 (멀티 큐 멀티프로세서 스케줄링)
여러 개의 큐를 사용하게 됨
각 큐마다 독립적인 스케줄링 동작
각 큐마다 하나의 CPU 연결 → 캐시 친화성 보장
장점
- 캐시 친화성 용이함
- 동기화 부담 감소
단점
- 부하 불균등
부하 불균등 해결책
이주
CPU 작업을 이리저리 옮겨다님두 가지 방법이 있음
Sender-initiation
CPU가 다른 CPU에게 작업을 보냄
Receiver-initiation
스케줄러가 놀면, 바쁜 CPU를 가져옴
작업 가로채기
큐를 감시하다가 자신보다 많은 작업 큐가 있으면 가져옴
지속적 감시와 판단은 운영 오버헤드
감시를 많이 하면 오버헤드가 발생함
그러나, 불균등으로 성능 저하 vs 많은 감시로 오버헤드
'🖥️ Computer Science > Operating System' 카테고리의 다른 글
[OS] 13장: Memory Virtualization (0) | 2024.06.26 |
---|---|
[OS] Cuncurrency: 동시성 개요 (0) | 2024.05.06 |
[OS] Proportional Share (비례 배분) (1) | 2024.05.04 |
[OS] MLFQ (Multi-Level Feedback Queue) (0) | 2024.05.03 |
[OS] 운영체제 스케줄링 개요 (1) | 2024.05.02 |