본문 바로가기

공부 기록/OS

[OS/공룡책] Chapter 1. 서론 - 컴퓨터 시스템의 구성, 인터럽트, 저장장치 구조

컴퓨터 시스템의 구성

- 현대의 범용 컴퓨터 시스템은 하나 이상의 CPU와, 구성요소와, 공유 메모리 사이의 액세스를 제공하는 공통 버스를 통해 연결된 여러 장치 컨트롤러로 구성된다.

- 일반적으로 운영체제에는 각 장치 컨트롤러마다 장치 드라이버가 있다.

- 장치 드라이버는 장치 컨트롤러의 작동을 잘 알고 있고, 나머지 운영체제에 장치에 대한 일관된 인터페이스를 제공한다.

 

인터럽트(Interrupts)

- 컨트롤러는 인터럽트를 통해 장치 드라이버에게 작업을 완료했다는 사실을 알린다.

- 하드웨어는 어느 순간이든 시스템 버스를 통해 CPU에 신호를 보내 인터럽트를 발생시킬 수 있다.

- 인터럽트는 운영체제와 하드웨어의 상호 작용 방식의 핵심 부분이다.

- 각 컴퓨터 설계는 자신의 인터럽트 메커니즘을 가지고 있으며, 몇 가지 기능은 공통적이다.

- 인터럽트가 요청되면, 인터럽트를 유발한 장치를 위한 인터럽트 서비스 루틴의 주소를 제공하기 위해 이 주소의 배열, 즉 인터럽트 벡터가 인터럽트 요청과 함께 주어진 고유의 유일한 장치 번호로 색인된다.

- 인터럽트 구조는 인터럽트된 모든 정보를 저장해야 한다. => 인터럽트를 처리한 후 이 정보를 복원할 수 있다.

 

구현

- 장치 컨트롤러가 인터럽트 요청 라인에 신호를 선언하여 인터럽트를 발생(raise)시키고 >>> CPU는 인터럽트를 포착(catch)하여 인터럽트 핸들러로 디스패치(dispatch)하고 >>> 핸들러는 장치를 서비스하여 인터럽트를 지운다(clear).

- 대부분의 CPU에는 2개의 인터럽트 요청 라인이 있다. => 마스크 불가능/가능 인터럽트

- 마스크 불가능 인터럽트(Nonmaskable interrupt) : 복구할 수 없는 메모리 오류와 같은 이벤트를 위해 예약됨

- 마스킹 가능 인터럽트(Maskable interrupt) : 인터럽트 되어서는 안 되는 중요한 명령 시퀀스를 실행하기 전에 CPU에 의해 꺼질 수 있다. 장치 컨트롤러가 서비스를 요청하기 위해 사용된다.

- 인터럽트 기법은 인터럽트 우선순위 레벨을 구현한다.

- 인터럽트는 최신 운영체제에서 비동기 이벤트를 처리하기 위해 사용된다.


저장장치 구조

- CPU는 메모리에서만 명령을 적재할 수 있다. => 실행하려면 프로그램을 먼저 메모리에 적재해야 한다.

- 범용 컴퓨터는 프로그램 대부분을 메인 메모리(RAM)라 불리는 재기록 가능한 메모리에서 가져온다.

- 메인 메모리는 DRAM(Dynamic Random-access Memory)라 불리는 반도체 기술로 구현된다.

- 모든 형태의 메모리는 바이트의 배열을 제공한다.

- 메모리 장치는 단지 일련의 메모리 주소만을 인식한다.

- 컴퓨터는 전기적으로 소거 가능한 프로그램 가능 읽기 전용 메모리(EEPROM) 및 기타 형태의 펌웨어 등 다른 형태의 메모리도 사용한다.

- 폰 노이만 구조 시스템에서 실행되는 전형적인 명령-실행 사이클 : 메모리로부터 명령 인출 > 명령 레지스터에 저장 > 명령 해독 > 명령 실행 > 메모리에 결과 저장

 

저장장치의 단위

- 비트 : 0 또는 1

- 바이트 : 8비트, 대부분의 컴퓨터의 가장 작은 저장 단위

- 워드 : 컴퓨터 구조의 본연의 데이터 단위. 컴퓨터는 많은 연산을 본연의 워드 단위로 실행한다.

 

보조 저장장치

- 메인 메모리의 확장

- 대량의 데이터를 영구히 보존할 수 있어야 한다.

- 가장 일반적인 보조저장장치는 하드 디스크 드라이브(HDD), 비휘발성 메모리(NVM) 장치로, 프로그램과 데이터 모두를 위한 저장소를 제공한다.

- 3차 저장장치 : 다른 장치에 저장된 자료의 백업 사본을 저장하기 위해 특수 목적으로만 사용하는, 매우 느리고 충분히 큰 장치

- 다양한 저장장치 시스템 간의 주요 차이점은 속도, 크기 및 휘발성에 있다.

 

저장장치 계층 구조

레지스터 - 캐시 - 메인 메모리 - 비휘발성 메모리 - 하드 디스크 드라이브 - 광학 디스크 - 자기 테이프

휘발성 저장장치(메모리) : 레지스터, 캐시, 메인 메모리

비휘발성 저장장치(NVS) : 비휘발성 메모리, 하드 디스크 드라이브, 광학 디스크, 자기 테이프

 

- 완전한 저장장치 시스템의 설계 : 가능한 한 많은 저렴한 비휘발성 저장장치를 제공하는 동시에 필요한 만큼만 비싼 메모리를 사용해야 한다. 캐시는 두 구성요소 간에 액세스 시간이나 전송 속도의 차이가 큰 경우 성능 향상을 위해 설치할 수 있다.

 

입출력 구조(I/O Structure)

- 인터럽트 구동 I/O의 형태는 소량의 데이터를 이동하는 데는 좋지만 NVS I/O와 같은 대량 데이터 이동에 사용될 때 높은 오버헤드를 유발할 수 있다. 이때 직접 메모리 액세스(DMA)가 사용된다.