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전송에 사용

image

Interrupt driven I/O와 DMA 방식의 비교

  • DMA : 블록 전송 당 1번의 interrupt
  • Interrupt-driven I/O : byte(word) 전송 당 1번의 interrupt

image

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들(사용자와 운영체제 포함)을 수행

  • 일반적으로 더 많이 사용됨

image

(캐시 메모리는 분리된채로 사용함)

(2) Asymmetric multiprocessing - 비대칭형

각 프로세서에 특정 작업이 부여되고, 마스터 프로세서가 전체 시스템을 제어

Multi-core processor

단일 칩에 여러 개의 core(CPU)를 포함한 프로세서

  • Core : instruction을 수행하는 기본 연산 처리 장치

현재의 Multiprocessor 시스템 정의에 muti-core 시스템이 포함됨

image

NUMA (Non-uniform memory access) 시스템

Multiprocessor 시스템은 CPU 개수 증가에 한계가 있음

CPU 수가 증가할수록 BUS에 대한 경합으로 인한 병목 현상 → 성능 저하

대안으로 NUMA 시스템

  • CPU와 자신의 local memory로 구성되는 node들을 shared system interconnect(공유 시스템 상호 연결)로 연결하여 구성
  • 모든 node는 단일 physical address space를 공유한다.

image

Clustered Systems - 클러스터형 시스템

  • 여러 개의 시스템이 네트워크로 연결되어 함께 계산작업을 수행함
  • LAN 또는 faster interconnect (예: InfiniBand)로 연결됨
  • 고가용성 서비스 제공 : fault-tolerant
  • high-performance computing(HPC)에 사용 가능 : 병렬실행
  • Storage 공유 : storage-area network(SAN)과 같은 전용 네트워크로 연결하여 공유하기도 함.
  • CPU를 많이 사용함

image

태그: ,

카테고리:

업데이트:

댓글남기기