반응형

목차

01. 운영체제의 개요
02. 컴퓨터의 구조와 성능 향상
03. 프로세스와 스레드
04. CPU 스케줄링
05. 프로세스 동기화
06. 교착 상태
07. 물리 메모리 관리
08. 가상 메모리의 기초
09. 가상 메모리 관리
10. 입출력 시스템과 저장장치
11. 파일 시스템
12. 네트워크와 분산 시스템


입출력 시스템

 

주변장치

  • 주변장치는 저속 주변장치(마우스, 키보드)와 고속 주변장치(그래픽카드, 하드디스크)등으로 나뉜다.
  • 하나의 버스로 주변 장치를 묶으면 저속장치가 고속장치의 데이터 이동을 방해함
  • 속도는 ( 그래픽카드 > 하드디스크 > USB메모리 > 프린터 > 키보드, 마우스) 순이다.

 

채널

  • 데이터가 지나다니는 하나의 통로

 

채널 공유와 채널 분리

  • 채널을 모든 주변장치가 공유하면 전체적으로 데이터 전송 속도가 느려짐
  • 전송 속도가 비슷한 장치끼리 묶어서 장치별로 채널을 할당하면 전체 데이터 전송 속도를 향상할 수 있음

 

초기의 구조

  • 모든 장치가 하나의 버스로 연결
  • CPU가 작업을 진행하다가 입출력 명령을 만나면 직접 입출력 장치에서 데이터를 가져오는 폴링 방식 이용(CPU가 이동하는 것)

 

입출력 제어기를 사용한 구조

  • 버스는 메인버스와 입출력 버스로 나뉨
    • 메인 버스 : 고속으로 작동하는 CPU와 메모리 사용
    • 입출력 버스 : 주변 장치가 이용
  • 입출력 제어기를 사용하면 느린 입출력장치로 인해 CPU와 메모리의 작업이 느려지는 것을 막을 수 있어 전체 작업 효율 향상

 

입출력버스의 분리

  • 입출력 제어기를 사용하면 작업 효율을 높일 수 있지만, 저속 주변장치 때문에 고속 주변장치의 데이터 전송이 느려지는 문제가 있음
  • 이를 해결하기 위해서 입출력 버스를 고속 입출력 버스와 저속 입출력 버스로 분리하여 운영
  • 고속 입출력 버스에서는 고속 주변장치를 연결하고 저속 입출력 버스에서는 저속 주변장치를 연결
  • 두 버스 사이의 데이터 전송은 채널 선택기가 관리
  • 입출력 버스로 감당하기 어려워진 그래픽카드는 입출력버스에서 분리하고 메인버스에 바로 연결하여 사용
  • 결론적으로 현대의 컴퓨터는 CPU와 메모리를 연결하는 메인버스, CPU와 그래픽카드를 연결하는 그래픽버스, 고속, 저속 입출력버스를 사용
  • GPU: CPU와 같은 일을 하는데 굉장히 빠르게 일을 해결할 수 있음. 주로 단순 반복적인 그래픽 작업을 함

 

직접 메모리 접근(중요)

  • CPU의 도움 없이도 메모리에 접근할 수 있도록 입출력 제어기에 부여된 권한
  • 입출력 제어기에는 직접 메모리에 접근하기 위한 DMA제어기가 마련되어 있음
  • 여러채널에 연결된 주변 장치로부터 전송된 데이터를 적절히 배분하여 하나의 데이터 흐름을 만듦
  • 채널 선택기는 여러 채널에서 전송된 데이터 중 어떤 것을 메모리로 보낼지 결정

 

메모리 공간 분할

  • CPU작업 공간과 DMA의 작업 공간이 겹치는 것을 방지하기 위해 과거에는 DMA제어기가 전송하는 데이터를 '입출력 메모리'라는 별도의 메모리에 보관
  • 현재는 CPU가 작업하는 공간과 DMA제어기가 데이터를 옮기는 공간을 분리하여 메인 메모리를 운영하는데, 이를 메모리 맵 입출력 이라고 부름

 

입출력과 인터럽트

  • 인터럽트는 주변장치의 입출력 요구나 하드웨어의 이상 현상을 CPU에 알려주는 역할을 하는 신호
  • 각 장치에는 IRQ라는 고유의 인터럽트 번호가 존재
  • 인터럽트가 발생하면 CPU는 IRQ를 보고 어떤 장치에서 인터럽트가 발생했는지 파악

 

인터럽트 종류

  • 외부 인터럽트 : 입출력 장치로부터 오는 인터럽트 뿐만아니라 전원 이상이나 기계적인 오류때문에 발생하는 인터럽트 포함
  • 내부 인터럽트 :프로세스의 잘못이나 예상치 못한 문제 때문에 발생하는 인터럽트
  • 시그널 : 사용자가 직접 발생시키는 인터럽트

 

인터럽트 벡터

  • 여러 인터럽트 중 어떤 인터럽트가 발생했는지 파악하기 위해 사용하는 자료구조
  • 인터럽트 벡터의 값이 1이면 인터럽트가 발생했다는 의미

 

인터럽트 핸들러

  • 인터럽트의 처리 방법을 함수 형태로 만들어 놓은것(Ctrl+c, Ctrl+v 같은 것들)
  • 운영체제는 인터럽트가 발생하면 인터럽트 핸들러를 호출하여 작업함
  • 사용자 인터럽트인 시그널의 경우 자신이 만든 인터럽트 핸들러를 등록할 수도 있음

 

버퍼

  • 속도가 다른 두 장치 속도 차이를 완화하는 역할을하는 저장공간
  • 이중 버퍼를 사용하면 한 버퍼는 데이터를 담는 용도로 쓰고 또 한 버퍼는 데이터를 가져가는 용도로 쓸 수 있음

 

하드웨어 안전 제거

  • 버퍼가 다 차지 않으면 버퍼가 다 찰 때 까지 입출력 장치에 자료가 전송되지 않는데, 이 상태에서 저장장치를 제거하면 버퍼안의 데이터가 저장되지 않는 문제 발생
  • 하드웨어 안전제거를 사용하면 버퍼가 다 차지 않아도 강제로 버퍼의 내용이 저장장치로 옮겨짐

 

 

반응형

'Operating System' 카테고리의 다른 글

디스크 스케줄링  (0) 2022.06.14
디스크 장치  (0) 2022.06.13
스레싱  (0) 2022.06.10
페이지 교체 알고리즘  (0) 2022.06.08
요구 페이징 (Demand Paging)  (0) 2022.06.07