아침을 공부로 깨운다

주말에 몰아서 공부하기 보다는, 오히려 주말에는 깔끔하게 쉬고 회사에 조금 일찍 도착해서

한 1~2 시간 정도 차 한잔과 함께 이런 저런 책들을 읽고 있다.

오늘 펼쳐 든 것은, 회사에 요청해서 구입한 운영체제 교과서

그 중에서도, 메모리 관리 내용을 보았다.

메모리 관리

프로그램은 기본적으로, 우선 메모리 위에 적재되어야 실행이 가능해진다.

여기서 적재를 “Fetch” 라는 단어를 번역한 의미로 사용해서 좀 놀랬다.

개인적으로, 그동안은 “Load” 와 별 다른 의미 없이 사용해왔기 때문. 어쩐지 찜찜하더라

컴퓨터 과학에서는 어느정도 구분하기 위해서 둘을 같은 맥락에서 사용하지 않는 것 같기도 하다.

메모리 위에 적재하는 것은 Fetch 이고

이미 적재되어 돌아가는 프로그램에서 다른 메모리를 참조하거나 불러오는 것은 Load 인걸까

이 부분 시간되면 다시 알아보자.

어쨌건 , 다중 프로그래밍 환경에서는 더더욱이 여러 프로세스가 한정된 메모리를 참조하므로

효율성을 위한 메모리 관리는 중요해진다.

메모리 관리 정책 ( Policy )

그레서, 메모리 관리가 포함하는 내용은 다음과 같다.

  • 할당

  • 제거 또는 재사용을 위한 대치

  • 보호

그리고 이를 좀 더 구체적으로 바라보기 위해서, 메모리 관리 정책을 설정해야 하는데

서로 다른 차원이나 주안점을 바라보고 있다고 보는 것이 쉽겠다.

먼저 메모리를 관리하는 시간( 또는 시기라는 말이 더 적절할지도 )에 대한 정책

적재 정책 (Fetch Policy): 디스크에서 메모리로 프로세스를 반입할 시기를 결정

그 중에서도, ( 간단하게만 적었다.)

  • 요구 적재 : 필요할 때마다

  • 예상 적재 : 미리 예상하여

그리고, 공간에 대한 정책도 필요하다.

배치 정책 (Placement policy) : 디스크에서 반입한 프로세스를 메모리 어느 위치에 저장할 것인지 결정

그리고 마지막으로,

메모리가 충분하지 않을 때 현재 적재된 프로세스 중 제거할 것을 결정해서 교체하는 방법에 대한

대치 정책 ( Replacement Policy ) : 가 있다.

( 아직 모르지만, 신기해 보이는 것은, 대치정책은 대부분 “알고리즘” 이라는 이름이 붙는 다는 것이다. )

개발자 공부 방향 잡기

Published on November 24, 2023

git branch name on windows and linux

Published on November 19, 2023