I/O

유석현(SeokHyun Yu)·2023년 6월 15일
0

운영체제

목록 보기
17/22
post-thumbnail

1. 시스템 구조

CPU와 주메모리가 메모리 버스로 연결되어 있다.

몇 가지 장치들이 범용 I/O 버스에 연결이 되어 있는데, 많은 현대의 시스템에서는 PCI를 사용하고 있다.

마지막으로, 그 아래에는 SCSI나 SATA 또는 USB와 같은 주변장치용 버스가 있다.

이 버스들을 통해 디스크, 마우스, 키보드와 같은 느린 장치들이 연결된다.

시스템 설계자들은 이러한 계층 구조를 택하여 고성능 장치들을 CPU에 가깝게 배치하여고 느린 성능의 장치들은 그보다 멀리 배치하였다.

디스크처럼 느린 장치를 주변 I/O 버스에 연결하여 얻는 이득이 많은데, 그 중 하나는 많은 장치들을 연결할 수 있다는 것이다.


2. 표준 장치

이번에는 가상의 표준 장치를 살펴보고, 이 장치를 효율적으로 활용하기 위해 필요한 것은 무엇인지 알아보자.

두 개의 중요한 요소가 있다.

첫 번째는 시스템의 다른 구성 요소에게 제공하는 하드웨어 인터페이스이다.

소프트웨어가 인터페이스를 제공하듯이 하드웨어도 인터페이스를 제공하여 시스템 소프트웨어가 동작을 제어할 수 있도록 해야 한다.

그렇기 때문에 모든 하드웨어 장치들은 특정한 상호 동작을 위한 방식과 명시적인 인터페이스를 갖고 있다.

장치가 갖고 있어야 하는 두 번째 요소는 내부 구조이다.

구현 방법에 따라 다르지만, 장치의 기능추상화하여 시스템에 제공하는 책임을 갖고 있다.


위에서 보인 그림에서 장치의 인터페이스는 3개의 레지스터로 구성되어 있는 것을 보았다.

상태(status) 레지스터는 장치의 현재 상태를 읽을 수 있으며 명령어(command) 레지스터는 장치가 특정 동작을 수행하도록 요청할 때, 그리고 데이터(data) 레지스터는 장치에 데이터를 보내거나 받거나 할 때 사용한다.

이 레지스터들을 읽거나 쓰는 것을 통해 운영체제는 장치의 동작을 제어할 수 있다.

profile
Backend Engineer

0개의 댓글