728x90

1 메모리 관리의 복잡성

CPU는 메모리에 있는 내용을 가져오거나 저장하기 위해 메모리 주소 레지스터(MAR)를 사용한다. 

폰노이만 구조의 컴퓨터에서 모든 프로그램은 메모리에 올라와야 실행이 가능하다. 따라서 운영체제 프로세스도 메모리에 공존한다. 운영체제는 전원을 누르고 부팅이 이루어지면 메모리에 올라온다.

이런 메모리 관리는 메모리 관리 시스템이 담당한다.

 

2 메모리 관리의 이중성

메모리 관리의 이중성은 프로세스 입장에서 작업의 편리함과 관리자 입장에서 관리의 편리함이 충돌을 일으키는 것을 말한다.

 

3 소스코드의 번역과 실행

응용 프로그램은 프로그래밍 언어로 만들며, 보통은 컴파일러를 사용해서 실행 가능한 코드로 변경한다.

기계어와 어셈블리어는 컴퓨터의 동작을 가장 직접적으로 표현한 언어로 저급 언어라고 한다.

사용자가 이해하기 쉬운 언어는 고급언어라고 하며 C언어와 자바가 대표적이다.

 

언어 번역 프로그램은 고급언어로 작성한 소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역하는 프로그램이다. 대표적으로 컴파일러와 인터프리터가 있다.

컴파일러 : 소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역한 후 한꺼번에 실행한다. C언어나 자바가 속한다.

인터프리터 : 소스코드를 한 행씩 번역하여 실행한다. 자바스크립트가 있다.

 

컴파일러의 목적

오류 발견, 코드 최적화를 위함이며, 실행하기 전에 코드를 점검하여 작고 빠른 실행 파일을 만들 수 있게 해준다.

 

컴파일 과정

사용자가 작성한 소스코드를 컴파일러가 1차로 번역해서 목적 코드를 생성한다. 목적 코드는 0과 1의 기계어로 이뤄진 코드이다.

그 후 링커가 라이브러리에 있는 코드를 목적 코드에 삽입하여 최종 실행 파일을 만든다.

실행파일을 실행한다.

 

4 메모리 관리자의 역할

메모리 관리자는 메모리 관리 유닛이라는 하드웨어이다. 가져오기, 배치, 재배치 작업을 한다.

가져오기 : 프로세스와 데이터를 메모리로 가져오는 작업이다.

배치 : 가져온 프로세스와 데이터를 메모리의 어떤 부분에 놓을지 결정하는 작업이다.

재배치 : 메모리가 꽉 차있어 새로운 프로세스를 위해 오래된 프로세스를 내보내는 작업.

 

 

 

728x90

+ Recent posts