[운영체제] 컴퓨터 시스템 구조

컴퓨터 시스템 구조 🍳

image

컴퓨터 시스템 구조

CPU: 매 Clock Cycle 마다 메모리에서 기계어를 하나씩 읽어와 실행시킨다.

Register : CPU 안에 메모리보다 더 빠른 정보를 저장할 수 있는 공간

mode bit : CPU에서 실행되는 것이 운영체제인지 사용자 프로그램인지를 구분해주는 역할을 한다.

Timer : 정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 인터럽트를 발생시킨다.

Interrupt line : Device가 한 작업을 마쳤는지에 대한 경계선 같은 것이다.

DMA Controller : 작업 완료 후 local buffer의 내용을 직접 Memory로 복사 후 CPU 에 interrupt

CPU에 계속 interrupt가 걸려 효율이 떨어지는 것을 방지하기 위한 것이다.

Memory: CPU 의 작업 공간


DISK: 데이터를 Memory로부터 읽어들이기도 하고 (Input) 처리 결과를 File System에 저장(Output)하기도 한다.

각각의 I/O Device들은 Device controller 라는 device를 전담하는 CPU 같은 것들이 붙어있다.

Device Controller는 I/O 가 끝났을 경우 interrupt로 CPU에 그 사실을 알린다.

ex) Disk의 내부를 통제하는 것은 CPU가 아니라 controller

Device controller에게도 작업 공간이 필요한데, 이것을 local buffer라고 부른다.


입출력(I/O)의 수행

사용자 프로그램은 시스템 콜을 통해 I/O를 수행한다.

🎈 trap을 사용해 인터럽트 벡터의 특정 위치로 이동

🎈 제어권이 인터럽트 벡터가 가리키는 인터럽트 서비스 루틴으로 이동

🎈 올바른 I/O 요청인지 확인 후 I/O 수행

🎈 I/O 완료 시 제어권을 시스템콜 다음 명령으로 옮김


인터럽트 (Interrupt)

인터럽트 당한 시점의 레지스터와 program counter를 save 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다.

interrupt (하드웨어 인터럽트) : 하드웨어가 발생시킨 인터럽트

trap (소프트웨어 인터럽트)


📑용어 정리

인터럽트 벡터 : 해당 인터럽트의 처리 루틴 주소를 가지고 있는 것. (인터럽트 번호, 주소) 의 쌍을 가지고 있음

인터럽트 처리 루틴 : 해당 인터럽트를 처리하는 커널 함수


동기식 입출력 (Synchronous I/O)

I/O 장치의 상태를 직접 가서 보고 오는 것

I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감

(I/O 요청 후 완료 후에야 instruction을 실행할 수 있음)

구현 방법 1

구현 방법 2


비동기식 입출력 (Asynchronous I/O)

I/O 장치의 상태를 직접 확인하지 않는 것

I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감

(I/O 요청 후 instruction을 실행할 수 있음)


DMA (Direct Memory Access)

빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용

CPU의 중재 없이 device controller가 device buffer storage의 내용을 메모리에 block 단위로 직접 전송

바이트 단위가 아니라 block 단위로 인터럽트를 발생 시킴


저장장치 계층 구조

image

Primary는 CPU 가 직접 접근 및 실행 가능, Secondary는 불가능

위로 올라갈수록 용량이 작고, 가격이 높고, 속도가 빠르며 휘발성

캐싱: 빠른 매체로 정보를 읽어들여 쓰는 것 (재사용을 목적으로)