본문 바로가기
Computer Science

[컴퓨터구조] CPU와 운영체제 그리고 메모리

by DuncanKim 2022. 6. 27.
728x90

[컴퓨터구조] CPU와 운영체제 그리고 메모리

 

1. CPU의 구조

CPU는 Control unit, ALU, 레지스터 세 가지로 구성되어 있다.

Control unit은 어떤 일을 진행하는 것을 계획하는 등 총괄하는 것
ALU는 계산만 한다. 빠르게 처리. 레지스터는 기억력을 담당한다. 
cpu에 내장되어 있는 용량이 작은 기억장치이라고 보면 된다.

 

상세 구성, 비유

Control Unit : 매니저
ALU : 계산
레지스터, 프로그램 카운터 : 현재 실행중인 소스코드 라인을 가리킴.
레지스터, 명령어 레지스터 : 현재 실행중인 명령어를 실질적으로 가져온다.
레지스터, 메모리 주소 레지스터 : 타켓(목표하는 데이터가 있는 메모리의 주소)
레지스터, 메모리 데이터 레지스터 : 타겟에서 가져온 데이터 혹은, 타겟에 넣을 데이터
레지스터, 어큐뮬레이터 : 계산값 

 

2. PC를 관리하는 소프트웨어 : 운영체제

 

OS는 메모리를 관리한다.

우리가 만든 C 프로그램 코드는 운영체제의 관리하에 실행된다. 즉 우리가 만든 프로그램은 운영체제에 메모리를 요청하게 된다. 그렇게 되면, 메모리에 프로그램이 할당된다. 즉 우리가 변수에 숫자 10을 넣으면, 그것은 메모리 어딘가에 저장된다.

 

이 전 과정을 OS가 관여하는 것이다.

 

왜 램을 관리하는 것일까? 그 이유는 운영체제와 프로그램 최적화는 램을 효율적으로 사용하는 방향으로 펼쳐졌기 때문이다. 램이 보조기억장치와 CPU 사이의 간극을 메울 수 있고, 비싸기도 했기 때문에 모든 최적화와 모든 기교는 메모리를 효율적으로 사용하도록 발전이 된 것이다.

 

메모리는 크게 2개의 구역으로 나뉜다. 힙과 스택.

 

프로세스를 여러 개 실행할 때, 같은 물리적 램의 공간을 쓸까?

그렇지 않다.

 

OS가 가상의 메모리 공간을 부여하고, 각 프로세스 별로 침범이 생기지 않게끔 도와준다. 디스크의 일부 용량을 램처럼 활용해서 컴퓨터 메모리가 늘어난 것처럼 쓸 수 있는 것이다. 프로세스는 물리램을 사용하지 않는다. OS가 만들어준 가상 메모리를 사용한다. 물리 램에 접근하는 것은 커널이다.

(메모리 맵이 커널의 영역이다)

 

 

가상 메모리 공간을 할당받은 프로세스 들은 각각 분리되어 있다. 왜냐하면 프로그램이 엉킬 수 있기 때문이다. 프로세스마다 스택과 힙이라는 데이터 영역, 코드 영역이 분리되어 있다. 그림으로 그리면 아래와 같다.

 

3. 결론

cpu가 열심히 일하도록 os가 관리자 역할을 해주고 RAM은 그곳에서 cpu가 필요한 것들을 빠르게 전달할 수 있는 역할을 담당한다.cpu가 집도의, ram은 그 옆에서 계속 필요한 것을 주는 간호사와 보조의사, os는 수술방 전체의 흐름과 시간을 체크해주는 마취과의 의사 같달까.

 

(비유가 적절치는 않은거 같은데.. 아무튼 뭐 그렇다는거지...)

 

 

 

728x90

댓글