티스토리 뷰

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

 

* 가상 메모리(Virtual Memory)

- 메모리 관리 방법을 토대로 제공하는 기술

- 다중 프로그래밍 환경에서 흔히 사용하며 메인 메모리보다 더 큰 저장 공간을 제공하는 방법

- 사용자와 논리적 주소를 물리적으로 분리하여 사용자가 메인 메모리 용량을 초과한 프로세스에 주소를 지정해서 메모리를 제한 없이 사용할 수 있도록 하는 것

출처 : https://jerryjerryjerry.tistory.com/186

 

* 동적 주소 변환(DAT, Dynamic Address Translation)

- 가상 주소와 물리적 주소를 매핑하는 방법

- 인위적으로 연속적이며, 가상 주소에서 연속적이라고 메인 메모리에서도 연속적일 필요는 없음

 

* 요구 페이징

- 가상 메모리에서 많이 사용하는 메모리 관리 방법으로, 프로그램을 실행하려고 프로그램의 일부만 메인 메모리에 적재하되 순차적으로 작성되어 있는 프로그램의 모듈을 처리할 때 다른 부분은 실행하지 않는다는 특징을 이용함

장점 - 다중 프로그래밍의 정도를 증가시키고 액세스하지 않은 페이지를 적재하지 않으므로, 다른 프로그램들도 사용할 수 있도록 메모리를 절약할 수 있음
- 프로그램을 시작할 때 적재 지연이 적음
- 적은 수의 페이지를 읽기 때문에 초기 디스크 오버헤드가 적음
- 페이지 부재를 디스크에서 페이지를 로드하는데 사용할 수 있어 페이징 시스템보다 하드웨어 지원이 추가로 필요하지 않음
- 적재된 페이지 중 하나를 수정할 때까지 페이지들은 여러 프로그램이 공유하므로 쓰기복사(COW, Copy On Write)기술로 더 많은 자원을 저장할 수 있음
- 프로그램을 실행할 충분한 메모리가 없는 시스템에서도 대용량 프로그램을 실행할 수 있으며, 프로그래머는 이전 중첩(오버레이)보다 쉽게 구현할 수 있음
단점 - 개별 프로그램들은 페이지에 처음 액세스할 때 약간의 지연이 발생하는 반면, 프리 페이징은 마지막으로 수행한 페이지 몇개를 미리 불러오는 방법으로 성능을 향상 시킴
- 낮은 비용, 낮은 성능의 시스템에서 실행하는 프로그램은 페이지 대체를 지원하는 메모리 관리 장치가 없음
- 페이지 교체 알고리즘을 포함하는 메모리 관리가 복잡함
- 페이지 액세스 시간은 디스크에서 페이지를 적재할 수도 있으므로 예측이 어려움

 

* 페이지 부재(Page Fault)

- 프로세스가 메인 메모리에 적재되지 않은 페이지를 액세스하려고 할 때 하드웨어가 제기하는 소프트웨어 트랩

- 타당 비트/비타당 비트를 이용하여 처리할 수 있음

  -> 비타당 비트를 발견하면 운영체제에 트랩이 발생하므로 무효 주소 오류로 처리하는 것

 

* 페이지 교체 알고리즘

- 페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치에 적재되지 않았을 경우(페이지 부재), 어떤 페이지 프레임을 선택하여 교체할 것인지 결정하는 방법

- 선입선출(FIFO), 최적 페이지 대치 알고리즘(OPT), 최근 최소 사용 대치 알고리즘, 최근 최소 사용 근접 알고리즘, NUR 알고리즘 존재

 

* 선입선출 대치 알고리즘(FIFO, First In First Out)

- 가장 간단한 알고리즘으로, 페이지를 Queue구조로 유지하면서 각 페이지가 메모리 안으로 들어간 시간을 이용하여 가장 오래된 페이지부터 우선 대치함

- 페이지 부재가 발생할 경우 제거해야 할 페이지를 선택하면 디스크로 이동하여 교체하고, 페이지 테이블의 타당 비트와 비타당 비트를 변경함

- 새로운 페이지에서 페이지 테이블 항목을 변경한 후 선입선출 큐의 마지막 위치에 삽입함

출처 : https://doh-an.tistory.com/28

 

* 최적 페이지 대치 알고리즘(OPT, OPTimal Replacement Algorithm)

- 모든 알고리즘 중 페이지 부재 비율이 가장 낮음

- '앞으로 가장 오랫동안 사용하지 않을 페이지를 대치한다'는 아이디어를 가짐

- 참조 문자열을 정확히 언제 사용할 것인지 정보를 요구하는데, 알기 어려운 정보기 때문에 현실적으로 구현 어려움

출처 : https://doh-an.tistory.com/28

 

* 최근 최소 사용 대치 알고리즘(LRU, Least Recently Used)

- 과거 오랫동안 사용하지 않은 페이지로 대치하는 알고리즘

- 하드웨어를 지원해야 하며, 최종 참고(쓰기 및 읽기)로 정의되는 프레임 순서를 결정해야 함

- 최종 참고로 정의되는 프레임 순서를 결정할 때 카운터(계수기)를 이용한 순서 결정 방법과 스택을 이용한 순서 결정 방법으로 구분

출처 : https://doh-an.tistory.com/28

 

* NRU 알고리즘(Not Used Recently)

- 최근 사용하지 않는 페이지를 교체하는 방법으로, 낮은 오버헤드로 최근 최소 사용 페이지 교체 전략에 거의 동일하게 대치할 수 있음

- 최근에 사용하지 않는 페이지들은 가까운 미래에도 사용하지 않을 가능성이 높다는 아이디어를 바탕으로 함

- 수정한 페이지는 페이지 부재가 발생할 경우 디스크에 두 번 액세스하므로 오버헤드가 큼

- 각 페이지마다 두개의 비트 참고 비트(Reference Bit)와 변형 비트(Modified Bit)가 사용됨

   참조 비트 : 페이지가 참조되지 않았을 때 0, 호출되었을 때 1 (모든 참조비트를 주기적으로 0으로 변경)

   변형 비트 : 페이지 내용이 변경되지 않았을 때는 0, 변경되었을 때 1

- 우선순위 : 참조비트 > 변형비트

출처 : https://doh-an.tistory.com/28

 

* 최소 사용 빈도수 알고리즘(LFU, Least Frequently Used)

- 각 페이지마다 참조 횟수 카운터가 있으며, 수가 가장 적은 페이지를 대치함

출처 : https://doh-an.tistory.com/28

 

* 최대 사용 빈도수 알고리즘(MFU, Most Frequently Used)

- 가장 많이 사용한 페이지, 즉 계수가 높은 페이지를 대치 

- 계수가 가장 작은 페이지는 방금 들어와서 사용하지 않았기 때문에 앞으로 사용할 확률이 높다고 가정하여 대치 페이지 후보에서 제외

- 비용이 많이 들고 최적 페이지 대치에 비해 성능도 떨어짐

 

* 페이지 버퍼링(Page Buffering)

- 선입선출처럼 성능이 떨어지는 것을 막으려고 교체 대상으로 선택한 페이지를 즉시 교체하지 않은 채 잠시 동안 메인 메모리에 유지함

 

* 스래싱(Thrashing)

- 어떤 프로세스에 프레임이 충분하지 않을 때, 자원 확보를 위해 디스크와 메모리 간에 페이지 교환이 계속 일어나는 현상

- 어떤 프로세스가 프로세스 수행에 보내는 시간보다 페이지 교환에 보내는 시간이 더 길면 '스래싱을 하고 있다'고 표현

 

* 스래싱 예방 방법

- 작업 집합(워킹 셋) 모델 : 프로세스가 실제로 얼마큼 프레임을 많이 사용하는지 검사하여 지역 모델(작업 집합 모델)을 정의함

- 지역 모델 : 프로세스를 실행할 때 프로그램은 보통 지역 몇 개로 중첩해서 구성하므로 한 지역에서 다른 지역으로 이동하는 과정 의미

(참고) 지역 : 적극적으로 동시에 사용하는 페이지의 집합(서브루틴)을 나타냄

 

* 지역성(Locality)

- 실행 중인 프로세스에서 나타나는 특성

- 동일한 값이나 관련 저장 위치를 자주 액세스하는 현상, 즉 한번 참조한 데이터를 짧은 시간 안에 다시 참조하거나 한번 참조한 데이터의 근처에 있는 데이터를 짧은 시간 안에 참조하는 현상을 의미

(참고) 국부성 : 선호하는 특정 페이지만 집중적으로 참조하는 현상

- 프로그램들의 순환이나 서브 프로그램, 스택, 변수들의 계산과 합계, 배열 순례, 순차적 코드의 실행 등으로 발생

 

* 지역성 분류

- 시간 지역성 : 특정 자원들을 상대적으로 짧은 시간 안에 재사용한다는 것을 의미함

(적용 예시) 순환(루프), 서브 프로그램, 스택, 계산이나 합계에 사용하는 변수

- 공간 지역성 : 상대적으로 가까운 위치에서 데이터 요소를 사용한다는 것을 의미함 

(적용 예시) 배열 검색(순회), 순차적 코드 실행, 근처의 관련 변수 선언

공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함