반응형
Notice
Recent Posts
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Today
Total
관리 메뉴

오식랜드

[운영체제] 입출력장치 본문

dev-log/cs

[운영체제] 입출력장치

개발하는 오식이 2023. 10. 1. 14:21
반응형

주변장치

  1. 저속 주변장치
    • 키보드, 마우스 등
  2. 고속 주변장치
    • 그래픽카드, 하드디스크 등

채널 공유와 분리

  • 여러개 버스 묶어서 사용 → 데이터가 다니는 통로 “채널”
  • 전송 속도가 비슷한 장치끼리 묶어서 채널 할당

입출력 버스의 구조

  • 초기
    • 폴링 방식 이용
    • CPU가 모두 처리 → 느림
    • 입출력 제어기 사용 → 메인 버스 / 입출력 버스 사이에 존재
      • IO Interface
      • IO controller
      • IO module
    • CPU가 할 일이 줄어서 전체 작업 효율 향상현재

입출력 버스 분리

  • 메인/고속/저속/그래픽 으로 분리
  • 버스 사이 데이터 전송 → 채널 선택기
  • 그래픽카드는 너무빨라서 입출력 제어기가 아닌, 메인버스에 바로 연결

직접 메모리 접근 (DMA)

  • 입출력장치 - 메모리 직접 접근
  • 입출력 제어기에게 부여된 권한 (CPU 도움 없이 접근 가능)
  • 채널선택기가 보낼 데이터 선택

메모리 공간 분할

  • CPU가 접근하는 공간 / DMC 제어기가 접근하는 공간 분리
  • DMC 제어기가 접근하는 메모리 → ‘입출력 메모리’
  • 분할 방식
    1. 별도 메모리 사용 (IO Mapped)
    2. : 메모리가 0번지부터 시작해서 어떤 메모리에 갈지 표기가 필요함
    3. 하나의 메모리 안에서 분리하여 사용 (Memory Mapped)메모리 공간이 뺏기긴 하지만 가상메모리 등의 기술이 발전해서 ㄱㅊ
    4. : 같은 메모리 내레서 0-900, 90`-1023 이런식으로 나눠서 씀

인터럽트

  • 주변장치의 입출력 요구 신호
  • 하드웨어 이상 현상 신호
  • CPU가 받는 신호
  • IRQ : 장치마다 갖고있는 인터럽트 고유 번호

인터럽트 종류

  1. 외부 인터럽트 (하드웨어 인터럽트)
    • 입출력 장치, 하드웨어, 전원 이상, 기계 오류
  2. 내부 인터럽트 (예외상황 인터럽트 : exception)
    • TRAP이라고도 함
    • 프로세스 잘못으로 발생
  3. 시그널
    • 사용자가 발생시기는 인터럽트

인터럽트 벡터 (인터럽트 벡터 테이블)

  • 인터럽트 발생 시 제일 먼저 도착
  • 어떤 인터럽트인지 확인 (1이면 이상 발생)
  • 인터럽트 핸들러 (오류를 해결할 함수)의 시작 위치를 저장함

인터럽트 핸들러

  • 인터럽트 서비스 루틴 이라고도 함
  • 운영체제가 호출
  • 시그널(사용자 인터럽트)은 인터럽트 핸들러 등록 가능

버퍼

  • 단일 버퍼
  • 이중 버퍼 : 데이터를 담고 가져가는 등 기능 나눌 수 있어서 더 효율적임
반응형

'dev-log > cs' 카테고리의 다른 글

[운영체제] 포트 (port)  (0) 2023.10.01
[운영체제] 하드디스크  (0) 2023.10.01
[운영체제] 가상메모리  (0) 2023.10.01
[운영체제] 메모리  (0) 2023.10.01
[운영체제] 교착 상태  (0) 2023.10.01
Comments