본문 바로가기
CS/OS

[운영체제] 8. 주기억장치 관리 개요

by DenverAlmighty 2024. 12. 11.

 

1. 메모리

1) 메모리 역사

Core 메모리 -> 진공관 메모리 -> 트랜지스터 메모리 -> 직접회로 메모리 SRAM, DRAM)

70년대 8bit PC에 64kb였음. 예전에 메모리는 굉장히 비싼 자원이었다.

지금 수십 GB짜리도 있으나 메모리는 항상 부족하다. (프로그램의 리소스 사용량도 같이 증가하기 때문)

 

2) 메모리를 효과적으로 사용하는 방법

1. 낭비 없애기 2. 가상 메모리 사용하기

 

3) 메모리 동작 원리 : 프로그램을 메모리에 올리기

(1) 메모리 구조

input 주소/데이터 + output  데이터

cpu가 주소 보내면 메머리의 해당 위치 데이터를 읽어 보낸다 / cpu가 데이터 저장하라고 보낸다.

 

(2) 프로그램 메인 메모리에 올리기

  1. 어셈블리어/고수준 언어로 원천 파일(Source File)을 만들어 어셈블러가 어셈블 혹은 컴파일러가 컴파일하면  목적 파일(Object File)이 생성된다.
  2. 링커가 목적 파일라이브러리(함수 목적 파일 등 모음. printf, ... ) 와 연결(링크)한 결과 실행 파일(Executable File)이 생성된다.(실행 파일에는 코드와 데이터가 들어있다.)
  3. 실행 파일을 실행하려면 메모리에 올려야하는데. Loader가 실행 파일을 메모리에 Load하면된다. (Loader 실행파일을 메모리 어디에 올릴지는 결정한다. )

메모리에서 실행 파일이 올라가면 실행 파일, 데이터, Stack (함수 호출 시 돌아오는 주소, 지역 변수 저장) 세가지 세그먼트가 필요하다.