스와핑
메모리에 적재된 프로세스가 잠시 저장공간(SSD, HDD)에 물러났다가 다시 메모리로 적재되는 작업
가상 메모리를 이해하기 위한 약간의 지식
초기 메모리 관리법
MMU(Memory Management Unit)라는 논리 주소를 물리 주소로 변환하는 CPU 안의 장치를 이용해 메모리에 접근했다.
(논리주소/물리주소에 자세히 알고 싶으면 아래 링크 참조)
연속 메모리 할당(Contiguous Allocation) : 논리 주소가 연속이면 물리 주소도 연속이다.
연속 할당의 단점 !
외부 단편화를 야기한다!!!!!!!!!
- 외부 단편화
프로세스보다 메모리 빈 공간이 크게 남았음에도 불구하고 조각조각 분리돼 있어서 프로세스를 (연속적으로) 할당할 수 없는 문제
그래서 외부 단편화 문제를 해결하기 위해 방법을 고안했다.
바로 Compaction이라는 자투리 공간을 모아 연속적인 빈 공간을 만드는 작업이다.
물론 프로세스를 넣다 뺐다하니까 굉~~~~~~장히 비효율적이다. 그래서 다음 고안된 기술이 Paging이다!!!
결론 : 페이징은 외부 단편화를 해결하기 위함
현대 메모리 관리법
페이징
메모리 공간을 일정한 크기로 분리하여 관리하는 방법
논리 주소를 동일한 크기로 나눈 것이 page, 물리 주소를 동일한 크기로 나눈 것을 frame이라고 한다.
- 내부 단편화
컴퓨터 메모리 page 크기로 프로세스가 딱 맞게 떨어지지 않아서 발생하는 문제이다.
page 크기가 3이라면 프로세스 크기가 10이라고 하면 3, 3, 3, 1(!) 해서 2만큼의 공간이 낭비된다.
그렇다면 중구난방으로 저장된 메모리들을 어떻게 참조하는 걸까?
는 다음 포스팅에서 ∠( ᐛ 」∠)_
reference
'컴퓨터공학 > 운영체제' 카테고리의 다른 글
[운영체제] 파일 시스템과 디렉토리 구조 (0) | 2023.09.07 |
---|---|
[운영체제] 페이징 교체 알고리즘 (0) | 2023.05.25 |
[운영체제] 교착상태와 은행원 알고리즘 (0) | 2023.05.01 |
[운영체제] 세마포어와 뮤텍스 (0) | 2023.04.22 |
동기(Synchronous)와 비동기(Asynchronous), 블로킹(Blocking)과 논블로킹(Non-Blocking) (0) | 2023.03.09 |