둘셋 개발!

[운영체제] 메모리의 필요성(+폰노이만 구조), 종류, 부팅 본문

운영체제

[운영체제] 메모리의 필요성(+폰노이만 구조), 종류, 부팅

23 2023. 8. 4. 12:41

본격적인 메모리에 대해 이야기 하기 전에, 메모리를 왜 사용하기 시작했는지부터 설명해보고자 한다.

 

원래는 메모리라는 개념이 없었고 CPU를 포함하여 프로그램과 데이터 처리에 필요한 기능이 물리적인 회로로 구성되어 있었다.

그래서 수정및 업데이트를 하려면 회로를 다시 설계해야하는 불편함을 겪었다.

 

이를 해결하기 위해 폰 노이만은 아이디어를 내었다.

 

모든 프로그램은 메모리에 올라와야 실행할 수 있다.

- 폰노이만 구조

메모리를 이용해서 프로그래밍이 가능한 컴퓨터 구조, 즉 하드웨어의 변경 없이 프로그램만 교체해서 메모리에 올리는 방식을 선택했다.

이로써 편의성이 크게 증가하였고 다양한 목적으로 사용이 가능해져 범용성이 향상되었다.

 

메모리는 CPU와 저장장치의 일종의 인터페이스 역할을 하는 것이다.

자바에서도 인터페이스가 없다면, 구현체를 바꿔야 하는 상황이면 그에 맞춰 코드를 전부 수정해야하지만 인터페이스가 존재하면 인터페이스에 맞게 갈아끼우면 되듯이..!

 

또한 메모리를 사용하면 속도가 훨씬 빠르다.

메모리는 전기신호로 처리하지만 저장장치는 ARM이 움직이면서 데이터를 읽고 쓰기 때문이다.

 


메모리 종류

메모리의 종류는 크게 RAM (Random Access Memory)와 ROM(Read Only Memory)로 나뉠 수 있다.

RAM은 읽거나 쓸수 있고, ROM은 읽기만 가능한다. 

 

종류 이름 뜻 특징
RAM 무작위로 데이터를 읽어도 같은 속도로 데이터를 읽을 수 있기 때문에 Random Access라는 말이 붙었음 - 현재 실행 중인 프로그램이나 데이터를 저장
- 일반적으로 메모리라고 부르는게 RAM임
ROM 읽기만 가능하기 때문에 Read Only라는 말이 붙었음 - 데이터를 한 번 저장하면 변경 불가능
- 변경 가능성이 없는 입출력 시스템 (바이오스), 자가 진단 프로그램이 있음

 

RAM 중에서 DRAM, SRAM을 더 추가로 설명하고 싶다.

DRAM은 동적램, SRAM은 정적 램이다. (D: Dynamic, S: Static)

DRAM은  일정 시간이 지나면 사라지기 때문에 일정시간마다 다시 재생해야한다. (하지만 큰 용량 + 가격이 저렴)

그에 반해 SRAM은 전력이 있는 동안에는 사라지지 않는다. 때문에 속도가 빠르다. (하지만 가격이 비쌈)

 

이러한 이유 때문에 SRAM은 캐시 같은 고속 메모리로 사용하고, DRAM은 메인 메모리로 사용한다.

(메인 메모리는 큰 용량이 필요하기도 하고 일정시간마다 사라지지만 프로그램 실행이 끝나면 비휘발성 장치에 저장함으로 휘발성 특성을 보안할 수 있음)

 


부 팅

프로그램을 실행하려면 운영체제가 메모리에 프로그램을 올려서 실행해야 하는 것 까지 알았다.

그런데 운영체제도 프로그램이다. 따라서 운영체제도 메모리에 올려한다.

누가 운영체제를 메모리에 올려줄까?

 

바로 부트스트랩 코드이다.

 

1. 사용자가 전원을 켠다

2. ROM에 저장된 바이오스(기본 입출력 시스템)이 주요 하드웨어가 정상적을 작동이 되는지 확인한다.

3. 확인이 끝나면 하드디스크의 마스터 부트 레코드(Master Boot Record)에 저장된 부트스트랩 코드를 메모리에 가져와서 실행

4. 부트 스트랩 코드는 하드디스크에 있는 운영체제를 메모리로 가져와 실행

5. 운영체제가 메모리로 로드됨


ref

쉽게 배우는 운영체제 

https://ssd0908.tistory.com/entry/%EB%A1%ACROM%EA%B3%BC-%EB%9E%A8RAM%EC%9D%98-%ED%8A%B9%EC%A7%95-%EB%B0%8F-%EC%B0%A8%EC%9D%B4%EC%A0%90

https://m.blog.naver.com/with_msip/221981730449