티스토리 뷰

[한빛아카데미] 운영체제 책으로 학습한 내용을 정리한 것입니다.

 

* 메모리 관리

- 프로세스들을 위해 메모리를 할당하고 제거하며 보호하는 활동

- 디스크에 있는 프로그램을 실행하기 위해 먼저 메모리에 적재한 후 메모리 관리자가 예약된 메모리를 할당해 주는 것도 해당됨

- 다중 프로그래밍 시스템에서는 여러 프로세스가 메모리에 상주할 수 있도록 운영체제가 동적으로 메모리를 세분화 하는 것도 해당됨

- 메모리 관리자는 메모리에 관련된 여러 정책을 수립하고, 정책에 따라 메모리를 관리함(주요 정책 : 적재 정책, 배치 정책, 대치 정책)

 

* 적재 정책(Fetch Policy)

- 디스크에서 메모리로 프로세스를 반입할 시기를 결정하는 것

- 요구 적재 : 운영체제나 시스템 프로그램, 사용자 프로그램 등 참조 요청에 따라 다음에 실행할 프로세스를 메모리에 적재하는 오래된 방법

- 예상 적재 : 시스템 요청을 미리 예측하여 메모리에 적재하는 방법 

 

* 배치 정책(Placement Policy)

- 디스크에서 반입한 프로세스를 메모리 어느 위치에 저장할 것인지 결정함

- 최초 적합 : 사용 가능 공간 리스트에서 충분히 큰 첫번째 공백 분할 공간에 적재

- 최적 적합 : 사용 가능 공간 리스트에서 가장 작은 크기의 사용 공간을 작업에 적재

- 최악 적합 : 가장 큰 사용 가능 공간에 적재

 

* 메모리 구조와 매핑(Mapping)

출처 : https://jooyoung1121.github.io/cs/os/메모리/

- 메모리관리장치(MMU) : 논리적 주소와 물리적 주소의 변환 시 처리함

- 논리적 주소 : 가상 주소라고도 하며, 프로그래머가 프로그래밍에 사용하는 공간으로 보는 논리적 관점의 주소

- 물리적 주소 : 실제 데이터나 프로그램을 저장하는 공간으로 보는 물리적 관점의 주소, 논리적 주소에 대응하여 적재하는 실제 주소로 메모리 칩이나 디스크 공간에서 만듦

 

* 바인딩(Binding)

- 논리적 주소와 물리적 주소를 연결, 즉 매핑시켜 주는 작업

출처 : https://wonin.tistory.com/350

 

* 메모리 관리 관련 용어

- 동적 적재(Dynamic Loading) : 바인딩을 최대한 늦춰 실행 직전에 주소를 확정하면 메모리를 효율적으로 운영할 수 있음

- 중첩(오버레이, Overlay) : 운영체제 영역과 메모리의 일부 영역에는 프로그램 실행에 꼭 필요한 명령어와 데이터만 저장하고, 나머지 중첩 영역에는 필요할 때 호출하여 적재하는 방법

- 프로세스 교체(스와핑, Swapping)

  1) 프로세서 할당이 끝나고 수행이 완료된 프로세스는 보조기억장치로 보내고(스왑 아웃), 새롭게 시작하는 프로세스는 메모리에 적재해야 함(스왑 인)

 2) 스와핑은 중기 스케줄링에 해당하므로, 중기 스케줄러가 디스크에 저장된 프로세스를 메모리로 옮기고, 메모리에 적재된 프로세스는 준비 큐에서 대기하도록 하는 과정

 3) 운영체제가 항상 우선순위가 높은 프로세스 공간을 만들 수 있어 시스템에 유연성을 제공함

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함