아침을 공부로 깨운다
주말에 몰아서 공부하기 보다는, 오히려 주말에는 깔끔하게 쉬고 회사에 조금 일찍 도착해서
한 1~2 시간 정도 차 한잔과 함께 이런 저런 책들을 읽고 있다.
오늘 펼쳐 든 것은, 회사에 요청해서 구입한 운영체제 교과서
그 중에서도, 메모리 관리 내용을 보았다.
메모리 관리
프로그램은 기본적으로, 우선 메모리 위에 적재되어야 실행이 가능해진다.
여기서 적재를 “Fetch” 라는 단어를 번역한 의미로 사용해서 좀 놀랬다.
개인적으로, 그동안은 “Load” 와 별 다른 의미 없이 사용해왔기 때문. 어쩐지 찜찜하더라
컴퓨터 과학에서는 어느정도 구분하기 위해서 둘을 같은 맥락에서 사용하지 않는 것 같기도 하다.
메모리 위에 적재하는 것은 Fetch 이고
이미 적재되어 돌아가는 프로그램에서 다른 메모리를 참조하거나 불러오는 것은 Load 인걸까
이 부분 시간되면 다시 알아보자.
어쨌건 , 다중 프로그래밍 환경에서는 더더욱이 여러 프로세스가 한정된 메모리를 참조하므로
효율성을 위한 메모리 관리는 중요해진다.
메모리 관리 정책 ( Policy )
그레서, 메모리 관리가 포함하는 내용은 다음과 같다.
-
할당
-
제거 또는 재사용을 위한 대치
-
보호
그리고 이를 좀 더 구체적으로 바라보기 위해서, 메모리 관리 정책을 설정해야 하는데
서로 다른 차원이나 주안점을 바라보고 있다고 보는 것이 쉽겠다.
먼저 메모리를 관리하는 시간( 또는 시기라는 말이 더 적절할지도 )에 대한 정책
적재 정책 (Fetch Policy): 디스크에서 메모리로 프로세스를 반입할 시기를 결정
그 중에서도, ( 간단하게만 적었다.)
-
요구 적재 : 필요할 때마다
-
예상 적재 : 미리 예상하여
그리고, 공간에 대한 정책도 필요하다.
배치 정책 (Placement policy) : 디스크에서 반입한 프로세스를 메모리 어느 위치에 저장할 것인지 결정
그리고 마지막으로,
메모리가 충분하지 않을 때 현재 적재된 프로세스 중 제거할 것을 결정해서 교체하는 방법에 대한
대치 정책 ( Replacement Policy ) : 가 있다.
( 아직 모르지만, 신기해 보이는 것은, 대치정책은 대부분 “알고리즘” 이라는 이름이 붙는 다는 것이다. )