운영체제_입출력 관리와 디스크 스케줄링_입출력 장치, 입출력 기능 구성

미뇽·2024년 6월 8일
0

운영체제(강의)

목록 보기
30/43
post-thumbnail

입출력 장치

외부 장치의 범주

구분설명
인간인식 장치(Human readable)컴퓨터 사용자가 컴퓨터와 대화하는데 적합한 장치
디스플레이, 키보드, 마우스 등
기계인식 장치(Machine readable)전자 장비와의 통신에 적합한 장치
디스크, 테이프 드라이브, 센서, 제어기, 작동 장치 등
통신 장치(Communication)원격 장치와 통신하는데 적합한 장치
디지털 라인 드라이버와 모뎀 등

범주 내의 차이점

  • 데이터 전송률(Data rate)
  • 응용(Application)
    - 장치의 용도에 따라 운영체제의 소프트웨어와 정책, 지원 유틸리티에 영향
  • 제어 복잡성(Complexity of control)
    - 각 장치 간의 제어 인터페이스 복잡도
    - 제어 복잡성의 차이점이 운영체제에 미치는 영향은 장치 제어 입출력 모듈의 복잡성에 의해 어느정도까지는 여과됨
  • 전송 단위(Unit of transfer)
    - 전송 데이터는 일련의 바이트나 문자들의 스트림(stream)형태로 전송될 수 있고, 보다 큰 블록 단위로도 가능
  • 데이터 표현(Data representation)
    - 문자 코드와 패리티 규약(parity conventions) 상의 차이점 등 데이터 인코딩 체계
  • 에러 조건(Error conditions)
    - 에러읜 본질, 보고되는 방식, 결과, 응답 가능 범위는 장치들마다 다름

입출력 기능 구성

구분설명
프로그램된 입출력(Programmed I/O)처리기는 프로세스를 대신하여 입출력 모듈에게 입출력 명령을 보냄
해당 프로세스는 진행을 멈추고 요청된 입출력 작업이 완료될 때까지 바쁜 대기(busy wait)상태
인터럽트 구동 입출력(Interrupt-driven I/O)처리기는 한 프로세스를 대신하여 입출력 명령을 보냄
입출력 명령이 블록형인 경우 -> 운영체제의 명령을 실행, 현 프로세스를 블록 상태로 전이시키고 다른 프로세스 스케줄
입출력 명령이 비블록형인 경우-> 명령을 내린 프로세스의 명령어를 계속 실행
직접 메모리 접근(DMA: Direct Memory Access)DMA모듈이 주기억장치와 입출력 모듈간의 데이터 교환 제어

입출력 기능의 발달

구분인터럽트 없음인터럽트 사용
처리기를 통한 입출력 장치와 메모리 사이의 전송프로그램된 입출력인터럽트 구동 입출력
입출력 장치와 메모리 사이의 직접전송직접 메모리 접근(DMA)

✔️ 입출력 기능이 발달하면서 점점 더 많은 입출력 기능이 처리기 개입 없이 수행

직접 메모리 접근

DMA 장치는 처리기를 흉내낼 수 있고, 실제로 처리기처럼 시스템 버스를 제어할 수 있음
=> 시스템 버스를 거쳐 메모리로 데이터를 주고받는 데 필요

  • DMA 모듈에게 입출력 연산을 위임하고 처리기는 다른 작업을 계속함
  • DMA 모듈은 처리기를 거치지 않고 한 번에 한 워드씩 데이터 블록 전체를 전송한 후, 처리기에 인터럽트 신호를 보냄
    => 처리기는 전송의 시작과 마지막에만 관여

DMA 모듈에게 명령을 내리는 정보

  • 읽기/쓰기 여부
    - 처리기와DMA 모듈 사이의 읽기/쓰기 제어 라인 사용
  • 입출력 장치의 주소
    - 데이터 라인 통해 전송
  • 읽기 혹은 쓰기가 시작될 메모리 위치
    - 데이터 라인 통해 전송
    - DMA 모듈의 주소 레지스터에 저장
  • 읽거나 쓸 워드 수
    - 데이터 라인 통해 전송
    - 데이터 카운트 레지스터에 저장

DMA 구성 방안

단일 버스, 분리된 DMA


✔️ 모든 모듈이 동일한 시스템 버스 공유
✔️ DMA 모듈은 대행처리기로서 메모리와 입출력 모듈 간에 데이터를 교환하기 위해 프로그램된 입출력 사용
✔️ 처리기 제어 하의 프로그램된 입출력처럼 한 단어를 전송시킬 때마다 두 개의 버스 사이클 필요(전송 요청 후 데이터 전송) => 비효율적

단일 버스, 통합된 DMA 입출력


✔️ DMA 모듈과 하나 이상의 입출력 모듈 사이에 시스템 버스가 아닌 통로가 존재
✔️ 입출력 버스를 통해 입출력 모듈들을 DMA 모듈에 연결하는 방식으로 한 단계 진전
✔️ DMA 모듈의 입출력 인터페이스 수를 하나로 줄여 주고 확장성 높은 구성 제공

시스템 버스 & 입출력 버스


✔️ DMA 모듈이 처리기나 주기억장치와 함께 공유하는 시스템 버스
=>메모리와 데이터를 교환하거나 처리기와 제어 신호를 교환할 때 DMA 모듈에 의해서만 사용됨
✔️ DMA와 입출력 모듈 간의 데이터 교환은 시스템 버스 밖에서 일어남

profile
문이과 통합형 인재(人災)

0개의 댓글