[OS] 운영체제(1장) 운영체제 소개 - 2
I/O 구조
- I/O device와 CPU간의 데이터 전송은 device controller를 통하여 수행됨
Device comtroller
- 각 device controller는 특정 유형의 device 동작 제어를 담당함
- 여러개의 device를 부착가능한 device controller도 존재
Device Driver
많은 부분의 OS 코드는 I/O 동작 관리에 할애됨
- I/O동작 관리가 시스템의 안정성과 성능에 중요하고 장치의 특성이 종류에 따라서 다양하기 때문
Programmed I/O (Polling)
특정한 장치나 파일의 상태를 지속적으로 체크하면서 그 상태가 변화할 때마다 입출력을 수행하는 방식
- CPU는 status register 정보를 반복하여 조사하는 프로그램을 실행하면서 I/O전송이 완료되기를 기다림 → Polling을 바쁜 대기라고도 부른다.
- I/O전송이 완료되면 CPU는 device controller와 memory간의 데이터 전송을 수행하는 프로그램을 실행함.
- 프로그램 만 사용하여 입출력을 수행하므로 Programmed I/O라고 함
단점
- I/O 동작이 진행되는 동안 CPU는 다른 작업을 수행할 수 없음
→ 해결방법: Interrupt-driven I/O
Interrupt-driven I/O
- I/O 전송 완료를 interrupt를 통하여 CPU에게 알림
- CPU는 I/O전송을 시작한 후에 다른 작업 수행 가능
I/O 전송 완료 후
- device comtroller는 interrupt 경유하여 CPU에게 알림
- CPU는 device driver에 포함된 interrupt handler 프로그램을 수행하여 device comtroller와 memory 간에 데이터를 전송함
단점
- Interrupt-driven I/O는 적은 양의 데이터 전송에 적합
- Disk I/O와 같은 대량의 블록 데이터 전송에는 빈번한 interrupt로 인해 overhead가 큼
→ 해결방법: DMA (direct memory access)
Direct Memory Access (DMA)
- CPU 개입 없이 device controller의 제어에 의해 device controller의 local buffer와 memory 간에 직접(directly) 데이터 전송을 수행
- 메모리 속도에 근접한 속도로 전송 가능 → 고속 I/O device전송에 사용
Interrupt driven I/O와 DMA 방식의 비교
- DMA : 블록 전송 당 1번의 interrupt
- Interrupt-driven I/O : byte(word) 전송 당 1번의 interrupt
3. 컴퓨터 시스템 구조
Single-Processor 시스템
- 한 개의 processor(general pupose CPU)를 사용하는 시스템
- 대부분의 시스템은 special purpose processor도 갖고 있음
Multiprocessor 시스템
- 두 개 이상의 processor를 사용하는 시스템
- Processor들은 bus, memory, peripheral을 공유 → tightly coupled system
- 장점 : throughput(단위 시간당 처리량) 증가
- N개 프로세서에 대해서 N배보다는 작게 증가
Multiprocessor 시스템 사용 방식
(1) Symmetric multiprocessing (SMP)- 대칭형
각 프로세서가 모든 task들(사용자와 운영체제 포함)을 수행
- 일반적으로 더 많이 사용됨
(캐시 메모리는 분리된채로 사용함)
(2) Asymmetric multiprocessing - 비대칭형
각 프로세서에 특정 작업이 부여되고, 마스터 프로세서가 전체 시스템을 제어
Multi-core processor
단일 칩에 여러 개의 core(CPU)를 포함한 프로세서
- Core : instruction을 수행하는 기본 연산 처리 장치
현재의 Multiprocessor 시스템 정의에 muti-core 시스템이 포함됨
NUMA (Non-uniform memory access) 시스템
Multiprocessor 시스템은 CPU 개수 증가에 한계가 있음
CPU 수가 증가할수록 BUS에 대한 경합으로 인한 병목 현상 → 성능 저하
대안으로 NUMA 시스템
- CPU와 자신의 local memory로 구성되는 node들을 shared system interconnect(공유 시스템 상호 연결)로 연결하여 구성
- 모든 node는 단일 physical address space를 공유한다.
Clustered Systems - 클러스터형 시스템
- 여러 개의 시스템이 네트워크로 연결되어 함께 계산작업을 수행함
- LAN 또는 faster interconnect (예: InfiniBand)로 연결됨
- 고가용성 서비스 제공 : fault-tolerant
- high-performance computing(HPC)에 사용 가능 : 병렬실행
- Storage 공유 : storage-area network(SAN)과 같은 전용 네트워크로 연결하여 공유하기도 함.
- CPU를 많이 사용함
댓글남기기