농장/독&필 <쉽게 배우는 운영체제>

2-2 CPU와 메모리

귤발자 2021. 8. 3. 15:42
728x90
반응형

크오아아아아아아아ㅏㅇ아아아아(아무일 없음, 취준생, 가끔 급발진함)

 

 

CPU의 기본 구성

  • 산술논리 연산장치(Arithmetic and Logic Unit, ALU): 데이터를 연산하는 장치로, 산술연산과 논리연산을 수행한다.
  • 제어장치(control unit): CPU에게 작업을 지시한다.
  • 레지스터(register): CPU 내에 데이터를 임시로 보관하는 곳이다. 연산을 위해 필요한 데이터를 메모리에서 CPU로 가져와 임시로 보관하고, 연산 결과를 메모리에 저장하기 전 보관한다.
    • 사용자 가시 레지스터(user-visible register): 사용자에 의해 내용이 변경된다.
      • 데이터 레지스터(DR): 메모리에서 가져온 데이터를 임시로 보관한다. CPU에서 주로 사용되며, 일반 레지스터 또는 범용 레지스터라고 부른다.
      • 주소 레지스터(AR): 데이터 또는 명령어의 메모리 주소를 저장한다.
    • 사용자 불가시 레지스터(user-invisible register): 사용자가 임의로 변경할 수 없는 특수 레지스터이다.
      • 프로그램 카운터(PC): 다음에 실행할 명령어의 주소를 제어장치에게 알려주며, 명령어 포인터(instruction pointer)라고도 한다.
      • 명령어 레지스터(IR): 현재 실행중인 명령어를 저장하며, 제어장치는 이곳에 저장된 명령을 해석하여 제어 신호를 만든다.
      • 메모리 주소 레지스터(MAR): 메모리에 데이터를 저장하고 가져오기 위한 메모리 주소를 지정한다.
      • 메모리 버퍼 레지스터(MBR): 메모리에서 가져왔거나 저장할 데이터를 임시로 저장한다. MAR과 함께 동작한다.
      • 프로그램 상태 레지스터(PSR): 연산 결과에 대한 정보를 저장한다.
  • 버스
    • 제어 버스: 다음 작업을 지시하는 제어 신호가 이동한다. CPU의 제어장치, 메모리, 주변장치와 양방향으로 정보를 주고받는다. CPU에겐 오류 신호와 작업 상태를, 메모리에겐 읽기/쓰기 신호를, 주변 장치에겐 동장 신호를 보낸다.
    • 주소 버스: 사용할 메모리 위치의 정보(주소)가 이동한다. 단방향으로 정보를 주고받으며, CPU의 MAR에게 메모리 주소를 받고, 메모리와 주변장치에 주소를 전달한다.
    • 데이터 버스: 데이터가 목적지로 이동한다. 양방향으로 정보를 주고받으며, CPU의 MBR에게 데이터를 받아 메모리와 주변장치로 전달한다.
    • 대역폭(bandwidth): 버스에서 한번에 전달할 수 있는 데이터의 최대 크기로, *CPU가 한번에 처리할 수 있는 데이터의 크기와 같다.
* 워드(word): CPU가 한번에 처리할 수 있는 데이터의 최대 크기. 대역폭도 워드라고 볼 수 있다.

 

 

 

메모리

메모리에는 실행에 필요한 프로그램과 데이터가 존재하며, CPU와 협업하여 작업한다. 메모리 주소는 바이트 단위로, 데이터는 워드 단위로 움직인다.

 종류로는 RAM과 ROM이 있다.

RAM

Ramdom access memory, 읽기/쓰기만 가능하다.

  • 휘발성 메모리(volatility memory)
    • DRAM(Dynamic RAM): 일정 시간마다 데이터가 사라지기 때문에 재생이 필요하다. 주로 메인메모리에 사용한다.
    • SRAM(Static RAM): 전력이 공급되는 동안에는 데이터를 보관할 수 있어 재생할 필요가 없다. 속도는 빠르나 가격이 비싸다. 주로 캐시와 같은 고속메모리에 사용한다.
    • SDRAM(Synchronous Dynamic RAM): DRAM이 발전된 형태로, 클록틱이 발생할 때마다 데이터를 저장하는 동기식 DRAM이다. 자동 재생을 나타내는 것 같다!
  • 비휘발성
    • 플래시 메모리: 전력이 없어도 데이터를 보관한다. 디지털카메라, MP3 플레이어, USB 드라이버 등에 사용하며, 메모리의 각 소자는 사용횟수 제한이 있어 언젠간 원래의 기능을 잃을 수 있다.
    • 대표적인 플래시 메모리만 설명했다. 요즘 많이 사용되는 SSD는 하드디스크 대용으로 만들어졌다. 고가이나 높은 속도와 내구성으로 많은 기기에 사용되고 있다.

ROM

Read only memory, 전력이 끊켜도 데이터를 보관할 수 있으나 저장된 데이터는 읽기만 가능하다(수정이 불가). 때문에 수정하면 안되는 또는 수정이 필요없는 프로그램을 저장한다. BIOS를 롬에 저장한다.

  • Mask ROM: 공장에서부터 데이터가 입력이 되어 데이터를 지우거나 쓸 수 없다.
  • PROM(Programmable ROM): 전용 기계를 이용해 데이터를 1회만 저장할 수 있다.
  • EPROM(Erasable Programmable ROM): 데이터를 여러번 쓰고 지울 수 있다. 플래시 메모리와 유사하나 고가이다.

 

 

 

메모리 보호

일괄작업 시스템에선 메모리가 운영체제 영역과 사용자 영역으로 구분되어 있는데, 사용자 영역이 운영체제 영역을 접근하지 못하게 막음으로써 메모리를 보호한다.

시분할 기법에선 사용자 영역이 여러 작업공간으로 나누어져 메모리 보호가 더욱 중요하다.

바이러스: 운영체제 영역이나 다른 프로그램 영역으로 침범하는 악성 소프트웨어

CPU는 메모리 보호를 위해 경계 레지스터(bound register)와 한계 레지스터(limit register)를 사용한다. 이 두 레지스터를 통해 작업이 사용하는 메모리 범위를 저장하고, 사용자의 작업이 진행될 때 이 주소 범위를 벗어나는지 하드웨어적으로 점검한다. 주소 범위를 벗어나면 메모리 오류에 관련한 인터럽트가 발생한다.

 

 

 

부팅

컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정이다.

  1. 컴퓨터 전원이 켜진다.
  2. 롬에 저장된 바이오스가 실행된다.
    1. 주요 하드웨어의 정상작동을 확인한다.
    2. 이상이 없으면 하드디스크 내 마스터 부트 레코드(MBR)의 *부트스트랩을 실행시킨다.
* 마스터 부트 레코드: 하드디스크의 첫번째 섹터(저장 단위)이다. 마스터 부트 레코드가 손상되면 운영체제를 실행할 수 없다. 
* 부트스트랩(bootstrap): 운영체제를 메모리로 가져와 실행하는 작은 프로그램. 운영체제마다 전용 부트스트랩을 가진다.

운영체제(부트스트랩)은 하드디스크에, 바이오스는 롬에 저장된다.

728x90
반응형