메모리

이원석·2022년 4월 12일
0

OS

목록 보기
7/8

1. 메모리


1-1. 메인 메모리

메인 메모리는 저장 장치로서, PC의 지시에 의해 CPU가 메인 메모리에 접근하여 다음 수행할 명령어를 가져와 작업을 진행합니다.



1-2. 가상 메모리

메모리(RAM)에 저장할 수 있는 공간은 한정적이기 때문에 사용자에게 더 많은 메모리를 제공하기 위해서 각 프로그램에 실제 메모리 주소가 아닌 가상 메모리 주소를 주는 방식을 사용합니다. 가상 주소 공간의 가상 주소는 MMU(Memory Management Unit, 메모리 관리 장치)에 의해서 물리 주소로 변환됩니다.

운영체제는 하드 디스크를 보조 기억장치로 저장하고, 메인 메모리를 주 기억장치로 저장한 뒤 하나로 묶어 메모리 처럼 동작하게 합니다.



스와핑

CPU 할당 시간이 종료된 프로세스의 메모리를 하드 디스크로 내보내고(Swap-out), 다른 프로세스의 메모리를 주 기억 장치로 불러오는(Swap-in) 작업을 말합니다. 한정된 메모리에서 더 많은 프로세스를 실행할 수 있다는 큰 장점이 있지만, 하드 디스크에 있던 것을 메모리에 다시 로딩 시켜야하므로 속도가 느립니다.






2. 메모리 관리


보조 기억장치인 하드 디스크에 있는 프로세스를 주 기억 장치인 메모리(RAM)에 어떻게 로딩할것인지 정해야 합니다.



2-1. 연속 메모리 관리 기법

프로그램 전체를 하나의 메모리 공간에 연속적으로 할당시키는 연속 메모리 관리 기법은 단편화를 발생시킬 수 있습니다.



2-2. 단편화

단편화란 기억장치의 빈 공간 혹은 데이터들이 여러 조각으로 나뉘어지는 현상입니다. 프로세스가 메모리에 적재되고 사라지는 일들이 반복되면, 메모리들 사이에 사용하지 못할 만큼의 공간이 늘어나게 되며, 메모리가 충분히 존재하지만 할당이 불가능한 상태를 보고 메모리 단편화가 발생했다고 합니다.


2-2-1 내부 단편화

프로세스를 메모리에 할당할 때, 만약 메모리의 빈 공간이 할당될 프로세스보다 크다면 프로세스가 메모리에 적제되었을 때 빈 공간이 생깁니다. 그 빈 공간이 작으면 작아질 수록 다른 프로세스 작업들을 활용하기 어려우며 이러한 작은 빈 공간의 크기들을 내부 단편화 라고 합니다.


2-2-2 외부 단편화

프로세스를 메모리에 할당할 때, 만약 메모리의 빈 공간이 할당될 프로세스보다 작다면 프로세스가 메모리에 적재되지 못합니다. 이는 메모리의 배치에 따라 발생할 수 있습니다.





3. 페이징과 세그먼테이션


3-1. 페이징

페이징이란 페이지 단위의 논리(가상)-물리 주소 관리 기법이며, 논리(가상)메모리는 페이지(Page) 라는 고정 크기의 불록으로 나누어지고 물리 메모리는 프레임(Frame)이라는 페이지와 같은 크기의 블록들로 나누어집니다.

페이지의 크기가 개당 1024Byte 일 때, 프로세스가 10500Byte라면 페이지를 11개를 할당하면 11264Byte에 프로세스를 분산 적재할 수 있지만 764Byte가 내부 단편화의 영역이 됩니다.


만약 페이지의 크기가 512Byte 였다면 페이지가 21개 할당되어 10752Byte에 프로세스를 분산 적재하면 내부 단편화를 252Byte로 줄일 수 있습니다.


페이지의 크기를 줄이면 내부 단편화를 줄일수 있지만, 페이지의 크기가 줄어들면 페이지의 수가 늘어난다는 뜻이며 이는 유지 비용의 증가로 이어집니다.



3-2. 세그먼테이션

페이징이 고정된 영역인 페이지(Page)로 분할을 하였다면, 세그먼테이션은 사용자 관점의 가변적인 영역인 세그먼트(Segment)로 분할합니다. 프로세스를 논리적 단위인 세그먼트로 분할해서 메모리에 적재하며 의미가 같지 않은 논리적 내용을 기준으로 프로그램을 분할하기 때문에 크기가 가변적입니다. 분할영역이 가변적이기 때문에 외부 단변화가 발생할 수 있습니다.

[참고문헌]
https://steady-coding.tistory.com/524
https://m.blog.naver.com/qbxlvnf11/221368476938
https://kkhipp.tistory.com/173
https://m.blog.naver.com/rbdi3222/220623825770

0개의 댓글