메모리 관리
메모리를 사용할 프로세스들을 위해 메모리를 할당, 제거, 보호하는 활동이다.
%여기서 보호란, 프로세스는 적재된 메모리의 영역에서만 다뤄질 수 있으므로 다른 메모리영역으로의 접근을 막는 것이다.
메모리를 관리하는 정책은 다음과 같다.
- 적재 정책 fetch: 디스크->메모리로 프로세스의 반입시기를 결정하는 것.
- 요구 적재 : 주체에 따른 참조요청에 따라 다음에 실행할 프로세스를 적재하는 것.
- 예상 적재 : 시스템의 요청을 미리 예측해서 적재하는 것.
- 배치 정책 : 적재된 프로세스를 어느 위치의 메모리에 저장할 것인지를 결정하는 것. 저장위치에 따라 효율이 달라진다.
- 대치 정책 : 메모리가 충분하지 않을 때 적재된 프로세스 중에 제거할 것을 정하는 것이다.
매핑 mapping : 논리적 주소와 물리적 주소를 연결짓는 것을 말한다.
바인딩 binding : 매핑시키는 것을 의미한다.
메모리 관련 용어
- 동적 적재
- 프로세스 실행 직전에 주소를 확정하는 메모리 운영 방법이다.
- 모든 명령을 메모리에 적재하지 않고 메인 프로그램만 적재한다.
- 중첩
- 프로그램의 크기가 메모리보다 클 때 바로 실행하지 않는 프로그램의 일부분을 중첩시켜 놓는 것이다.
- 운영체제 영역과 메모리의 일부에는 꼭 필요한 명령어와 데이터를 저장, 나머지 영역은 중첩으로 필요할 때만 호출해 사용하는 것이다.
- 스와핑 (프로세스 교체)
- 스왑 인 : 할당된 프로세스가 실행이 종료되면 디스크로 내보내는 것이다.
- 스왑 아웃 : 새로운 프로세스를 메모리에 적재하는 것이다.
메모리 적재 방법
메모리 적재에는 크게 두 가지 방법이 있다. 연속 메모리 적재방법과 비연속(분할) 메모리 적재방법이다.
- 다중프로그래밍
- 고정 분할 : 메모리를 고정된 크기로 여러 개 분할하는 것이다. 이 때 시스템의 부하를 분석하여 분할하는 갯수와 크기를 정한다. 분할 영역의 크기는 시스템의 전체 효율을 나타낸다.
- 내부단편화 : 고정된 크기보다 작은 프로그램이 할당됐을 때 남는 빈 공간. 비효율을 자아낸다.
- 고정 분할 : 메모리를 고정된 크기로 여러 개 분할하는 것이다. 이 때 시스템의 부하를 분석하여 분할하는 갯수와 크기를 정한다. 분할 영역의 크기는 시스템의 전체 효율을 나타낸다.
- 가변 분할 : 고정 없이 필요한 크기의 메모리를 할당하는 것이다.
- 외부단편화 : 메모리에 남아있는 공간이 50+50MB(총 100MB)가 있고, 필요한 공간은 70MB이다. 그러나 이 두 공간이 연속적이지 않아 메모리 공간을 사용할 수 없는 것이 '외부단편화'이다.
메모리 배치 방법 또한 중요하다. 기존 작업 몇개가 실행을 종료하고 사용가능한 공간이 생기면 어느 공간에 프로세스를 할당한 것을 정해야 하기 때문이다.
- 최초 적합 방법은 사용가능한 공간 중에 수용 가능할 만큼 큰 첫 번째 공간에 할당하는 것이다. 큰 공간은 빠르게 찾을 수 있지만 공간활용이 떨어진다는 단점이 있다.
- 최적 적합 방법은 사용 가능한 공간에서 가장 작은 공간에 할당하는 것이다. 사용가능공간을 크기 순으로 정렬해야 사용할 수 있기에 이용률을 올라가나 많은 시간이 소요된다.
- 최악 적합 방법은 가장 큰 사용가능 공간에 할당하는 것이다. 메모리 활용면에서 최적보다 낫다.
메모리 통합 방법
하나의 작업이 끝날 때 생기는 빈 공간 근처에 다른 빈 공간이 있는지 점검하고 하나로 합치는 것이다. 흩어진 빈 공간을 모두 통합하는 건 곤란할 뿐만 아니라 비효율적이다.
메모리 압축 방법
할당된 메모리 공간을 적절히 움직여 사용가능한 공간을 하나의 큰 블록으로 만드는 것이다. 압축하는 동안 시스템을 일을 중지해야 하고, 압축작업은 자주 해야 하므로 오버헤드가 발생한다.
버디 시스템 Buddy system
큰 버퍼를 반복적으로 이등분하여 작은 버퍼들을 만들어내는 작업이다. 이는 가능할 때마다 인접한 빈 버퍼들을 통합하는 과정을 반복한다. 버퍼를 나눌 때 각각을 서로의 버디라고 한다.
728x90
반응형
'기록 > 운영체제' 카테고리의 다른 글
운영체제(8) - 가상 메모리 (0) | 2022.11.28 |
---|---|
운영체제(7) - 페이징, 세그먼테이션, 페이지화된 세그먼테이션 (0) | 2022.11.21 |
운영체제(5) - 교착 상태와 기아 상태 (0) | 2022.10.09 |
운영체제(4)-병행프로세스와 상호배제 (2) | 2022.10.04 |
운영체제(3) (0) | 2022.09.15 |