1 CPU의 구성과 동작
1.1 CPU의 기본 구성
CPU는 명령어를 해석하여 실행하는 장치로 산술논리 연산장치, 제어장치, 레지스터로 구성된다.
산술논리 연산장치(ALU : Arithmetic and Logic Unit) : 데이터를 연산하는 장치로 덧셈, 뺄셈, 곱셈과 같은 산술 연산과 AND, OR같은 논리 연산을 수행한다.
제어장치(Control Unit) : CPU에서 작업을 지시하는 부분이다.
레지스터(Register) : CPU내에 데이터를 임시로 보관하는 곳이다.
1.3 레지스터의 종류
데이터 레지스터(DR) : 메모리에서 가져온 데이터를 임시로 보관할 때 사용한다. 대부분의 레지스터가 DR이다.
주소 레지스터(AR) : 데이터 또는 명령어가 저장된 메모리의 주소를 저장한다.
이 두 레지스터는 사용자의 프로그램에 의해 변경되기 때문에 사용자 가시 레지스터라고 부른다.
프로그램 카운터(PC) : 다음에 실행할 명령어의 주소를 기억하고 있다가 제어장치에 알려준다.
명령어 레지스터(IR) : 현재 실행 중인 명령어를 저장한다.
메모리 주소 레지스터(MAR) : 메모리에서 데이터를 가져오거나 보낼 때 주소를 지정하기 위해 사용한다.
메모리 버퍼 레지스터(MBR) : 메모리에서 가져온 데이터나 메모리로 갈 데이터를 임시로 저장한다.
이 레지스터들을 특수 레지스터라고하고, 사용자 불가시 레지스터라고 부른다.
1.4 버스의 종류
버스는 CPU와 메모리, 주변장치 간의 데이터를 주고받을 때 사용한다. 다음 작업을 지시하는 제어 신호, 메모리의 위치 정보를 알려주는 주소, 처리할 데이터가 오고 가며 각각 제어 버스, 주소 버스, 데이터 버스에 실린다.
제어 버스 : 다음에 어떤 작업을 할지 지시하는 제어 신호가 오고간다. 제어 버스는 CPU, 메모리, 주변장치와 양방향으로 오고간다.
주소 버스 : 메모리의 데이터를 읽거나 쓸 때 어느 위치에서 작업할 것인지를 알려주는 위치 정보가 오고 간다. 주소 버스는 메모리 주소 레지스터와 연결되어 있으며 단방향이다.
데이터 버스 : 데이터가 데이터 버스에 실려 목적지까지 이동한다. 메모리 버퍼 레지스터와 연결되어 있고 양방향이다.
버스의 대역폭은 한 번에 전달할 수 있는 데이터의 최대 크기를 말한다. 보통 32bit, 64bit CPU라고 한다. CPU가 한 번에 처리할 수 있는 최대 크기를 워드라고 하며 32bit CPU에서 1워드는 32bit이다.
2 메모리의 종류와 부팅
2.1 메모리의 종류
메모리는 읽거나 쓸 수 있는 램(RAM), 읽기만 가능한 롬(ROM)으로 구분된다.
램은 전력이 끊기면 데이터가 사라지는 휘발성 메모리와, 전력이 끊겨도 보관할 수 있는 비휘발성 메모리로 나뉜다.
휘발성 메모리 : DRAM(동적 램)과 SRAM(정적 램)이 있다.
DRAM은 0과 1의 데이터가 일정 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 한다.
SRAM은 전력이 공급되는 동안에는 데이터를 보관할 수 있어 재생할 필요가 없어 속도는 빠르지만 가격이 비싸다.
비휘발성 메모리 : 플래시 메모리, FRAM, PRAM이 있다.
롬은 전력이 끊겨도 보관할 수 있지만 한 번 저장하면 바꿀 수 없다. CD가 그 예다. 따라서 바이오스를 롬에 저장한다.
2.2 메모리 보호
메모리 보호는 사용자 영역의 작업이 운영체제 영역으로 침범하지 못하도록 막는 것이다.
다른 프로그램 영역으로 침범하려는 악성 소프트웨어를 바이러스라고 한다.
메모리를 보호하기 위해 CPU는 현재 진행중인 작업의 메모리 시작 주소를 경계 레지스터(bound register)에 저장한 후 작업한다. 또한 작업이 차지하고 있는 메모리 크기, 즉 마지막 주소까지의 차이를 한계 레지스터(limit register)에 저장한다. 사용자의 작업이 진행되는 동안 두 레지스터의 범위를 벗어나는지 점검함으로써 메모리를 보호한다.
만약 두 레지스터의 값을 벗어난다면 메모리 오류와 관련된 인터럽트가 발생해 모든 작업이 중단되고, CPU는 운영체제를 깨워서 인터럽트를 처리하도록 한다.
2.3 부팅
컴퓨터를 켰을 떄 운영체제를 메모리에 올리는 과정을 부팅이라고 한다.
컴퓨터의 전원을 켜면 롬에 저장된 바이오스가 실행된다. 바이오스는 하드웨어가 제대로 작동하는지 확인하고 이상이 없다면 하드디스크의 마스터 부트 레코드(Master Boot Record, MBR)에 저장된 작은 프로그램을 메모리로 가져와 실행한다.
마스터 부트 레코드는 하드디스크의 첫 번째 섹터를 가리키며 운영체제를 실행하기 위한 부트스트랩이 저장되어 있다.
부트스트랩 코드는 운영체제를 메모리로 가져와 실행하는 역할을 하는 작은 프로그램이다.
부트스트랩이 메모리에 올라오면 하드디스크에 저장된 운영체제를 메모리로 불러온다. 따라서 MBR이 손상되면 운영체제를 실행할 수 없다.
'프로그래밍 이론 & 책 > 운영체제' 카테고리의 다른 글
[운영체제] 2.4 병렬 처리 (0) | 2020.05.21 |
---|---|
[운영체제] 2.3 컴퓨터 성능 향상 기술 (0) | 2020.05.21 |
[운영체제] 2.1 컴퓨터의 기본 구성 (0) | 2020.05.21 |
[운영체제] 1.3 운영체제의 구조 (0) | 2020.05.20 |
[운영체제] 1.2 운영체제의 역사 (0) | 2020.05.20 |