티스토리 뷰

메모리란?

- 주소로 접근 가능한 워드 혹은 바이트의 배열   

- 메모리의 역할

o CPU가 직접 접근하는 유일한 저장장치

o 메모리 시스템은 데이터가 아닌 주소(메모리의 위치)로만 관리

- 메모리는 프로세스에게 주소공간을 할당함 : 주소 바인딩(Address binding)

o 일반적으로 프로세스에게 할당될 실제 메모리 영역은 실행 전에는 고정되지 않음.

o 주소 바인딩은 주소 공간들 사이의 변환/매핑 개념


o 주소 바인딩 시점

1. 컴파일 시간 (Compile time)

소스를 컴파일 하는 중에 적제될 메모리 주소를 생성

위치가 변경되면 다시 컴파일 해야하기 때문에 이 시점에 주소 바인딩을 하는 경우는 아주 간단한 프로그램 뿐

2. 적재 시간 (Load time)

컴파일러는 재배치 가능(relocatable) 코드를 생성

3. 실행 시간 (Execution time)

프로세스가 실행 중에 메모리내에서 위치 변경 가능

가상 메모리 기법에서 활용됨

>> 실행 시간에 주소 바인딩을 하기 위해 논리 주소 공간이라는 개념이 생겨남


o 논리 주소 공간 (Logical address space)

물리주소 

 논리주소

 메모리 하드웨어의 실제 주소

CPU/프로세스가 생성되는 실제 주소

각 프로세스에게 주어지는 전용의 메모리 공간

가상 주소 (Virtual address)

>> 가상 주소를 물리주소로 변환하는 하드웨어인 메모리 관리 장치(Memory Menagement Unit, MMU)가 필요 


메모리 관리 기법

- 메모리 관리의 목적

o 제한된 물리 메모리의 효율적인 할당 

o 효율적인 메모리 참조


- 메모리 관리 기법

o 스와핑 (Swapping)

> CPU에서 실행 중이지 않은 프로세스의 메모리 이미지를 저장장치(하드디스크)로 이동

 

o 페이징 (Paging)

o 연속 메모리 할당 (Continuous memory allocation)

o 세그멘테이션 (Segementation)

'개발 > 운영체제' 카테고리의 다른 글

페이징(Paging)  (0) 2018.01.08
교착상태(Deadlock)  (0) 2018.01.05
락(Lock)과 세마포어(Semaphore)  (0) 2018.01.04
스레드(Thread)  (0) 2018.01.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함