오식랜드
[운영체제] 입출력장치 본문
반응형
주변장치
- 저속 주변장치
- 키보드, 마우스 등
- 고속 주변장치
- 그래픽카드, 하드디스크 등
채널 공유와 분리
- 여러개 버스 묶어서 사용 → 데이터가 다니는 통로 “채널”
- 전송 속도가 비슷한 장치끼리 묶어서 채널 할당
입출력 버스의 구조
- 초기
- 폴링 방식 이용
- CPU가 모두 처리 → 느림
- 입출력 제어기 사용 → 메인 버스 / 입출력 버스 사이에 존재
- IO Interface
- IO controller
- IO module
- CPU가 할 일이 줄어서 전체 작업 효율 향상현재
입출력 버스 분리
- 메인/고속/저속/그래픽 으로 분리
- 버스 사이 데이터 전송 → 채널 선택기
- 그래픽카드는 너무빨라서 입출력 제어기가 아닌, 메인버스에 바로 연결
직접 메모리 접근 (DMA)
- 입출력장치 - 메모리 직접 접근
- 입출력 제어기에게 부여된 권한 (CPU 도움 없이 접근 가능)
- 채널선택기가 보낼 데이터 선택
메모리 공간 분할
- CPU가 접근하는 공간 / DMC 제어기가 접근하는 공간 분리
- DMC 제어기가 접근하는 메모리 → ‘입출력 메모리’
- 분할 방식
- 별도 메모리 사용 (IO Mapped)
- : 메모리가 0번지부터 시작해서 어떤 메모리에 갈지 표기가 필요함
- 하나의 메모리 안에서 분리하여 사용 (Memory Mapped)메모리 공간이 뺏기긴 하지만 가상메모리 등의 기술이 발전해서 ㄱㅊ
- : 같은 메모리 내레서 0-900, 90`-1023 이런식으로 나눠서 씀
인터럽트
- 주변장치의 입출력 요구 신호
- 하드웨어 이상 현상 신호
- CPU가 받는 신호
- IRQ : 장치마다 갖고있는 인터럽트 고유 번호
인터럽트 종류
- 외부 인터럽트 (하드웨어 인터럽트)
- 입출력 장치, 하드웨어, 전원 이상, 기계 오류
- 내부 인터럽트 (예외상황 인터럽트 : exception)
- TRAP이라고도 함
- 프로세스 잘못으로 발생
- 시그널
- 사용자가 발생시기는 인터럽트
인터럽트 벡터 (인터럽트 벡터 테이블)
- 인터럽트 발생 시 제일 먼저 도착
- 어떤 인터럽트인지 확인 (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