제 8 장 가상 기억장치 구성 200812120이나현
1 가상 기억 장치의 개요 프로그램을 부분적으로 기억공간에 저장시켜서 수행 시스템에 설치된 물리적 기억장치의 효율적 사용을 위해 사용자에게서 물리적 기억장치를 숨기고 논리적으로 확장된 기억장치를 제공하는 기법 물리적 기억장치와 논리적 기억장치 사이의 대응관계를 관리 및 유지하는 시스템 구조와 운영체제 물리적 공간보다 더 큰 프로세스의 실행이 가능 시스템의 다중 프로그래밍 수준 향상 -> 많은 프로그램을 동시 수행 -> 이용률,처리율 상승 기억공간의 제약 감쇠 -> 물리적 기억장치의 효율적인 사용 적제/교체로 인한 I/O작업 축소로 프로그램 실행 속도 향상 오버레이 문제 해결 요구 페이징, 요구 세그먼트,페이지화 세그먼테이션에 의해 구현
1) 지역성 기억장치 관리기법에 아주 중요한 역할을 하는데 그 의미는 process들은 기억 장치내의 정보를 균일하게 access하 는 것이 아니라 국부적인 부분만을 집중적으로 참조한다는 것이다. 2) Page System 가상의 주소 공간을 page로 분할하고 실 기억 공간도 page frame으로 분할. 3) Segment System segment를 사용하여 가상 기억 체제를 실현하는 것으로 가상의 2차원적 메모리를 이용하는 방법이다.
2 주소 사상 기법 실행중인 프로그램이 주기억장치에 접근하기 위하여 가상 주소를 발생시키면 이를 주소 사상 모듈이 받아 실 주소로 변환 시키는 것이다. 가상주소(V) : 가상 기억장치 시스템에서 현재 진행중인 프로세스가 참조하는 주소 실 주소(R) : 주기억장치에서 사용 가능한 주소 주소 사상 기법 사용시 실행중인 프로세스의 입장에서는 가상주소로 주기억장치에 접근하는 것처럼 보이게 되고 가상 주소를 실 주소로 변환하는 과정은 보이지 않는다. ⇒ 사용자 또는 프로세스 입장에서는 실행 프로그램 전체가 주기억장치에 적재되어 잇는 것처럼 느낀다. 이를 인위적 연속성이라 한다.
3 페이징 시스템 페이지 : 실행 프로그램들이 일정한 크기의 블록으로 분할될때의 블록을 말한다. 3 페이징 시스템 페이지 : 실행 프로그램들이 일정한 크기의 블록으로 분할될때의 블록을 말한다. 페이징 시스템 : 가상 기억장치 시스템 중 프로그램을 일정한 크기(예: 2KB 또는 4KB)의 블록 단위로 분할하는 시스템을 의미 한다. 페이지 프레임 : 주기억장치의 영역들도 페이지 크기와 똑 같은 크기로 분할 되는데 이처럼 분할된 주기억장치의 영역을 의미 한다.
3.1 페이징 시스템의 예 페이징 시스템에서는 사용자 프로그램을 분할할 때 어떠한 논리적인 구분 없이 미리 정해진 크기로만 분할 한다. 이로 인한 문제점 발생 문제점 : 프로그램 공유, 보호에 복잡한 문제 발생 장 점 : 단순하고, 효율적이므로 많은 OS에 사용한다.
4 세그먼테이션 시스템 세그먼트 : 서로 다른 크기로 분할되는 프로그램 블록 세그먼테이션 시스템 : 가상기억장치 시스템 중 프로그램을 논리적인 개념을 가지고 프로그램을 서로 다른 크기의 블록들로 분할하는 시스템
세그먼테이션 시스템의 장단점 장점 사용자 프로그램을 분할할 때 모듈 단위 또는 함수단위의 논리적인 개념에 의해 분할하므로, 세그먼트 공유나 보호에 있어서 페이징 시스템에서 만큼 복잡한 문제들이 발생하지 않는다. 단점 서로 다른 크기의 다른 세그먼트들을 관리해야 하므로 주소사상 기법이나 주기억장치 관리 기법 등에서 오버헤드 (부담) 가 발생 한다.
주소 사상 기법 주소 사상을 위해 세그먼트 사상 테이블(SMT)을 사용하며 STM 엔트리에는 추가 정보가 존재 한다. ⇒추가 정보 : R(read), W(write), X(execute), A(apend) ⇒ STM는 페이징 시스템처럼 시스템에 존재하는 프로세스마다 하나씩 존재하며 보통 커널 공간에 두며 커널을 관리 한다.
직접 사상 기법에서⇒ 실 주소 변환 기법 가상 주소 v=(s, d) ① 먼저 해당 프로세스의 세그먼트 사상 주소 테이블(SMT)에 접근 ② 세그먼트 s에 해당 엔트리를 찾고 난 후 ③ 존재 비트 검사 ④ 세그먼트 s의 주기억장치의 적재 주소를 알아 낸다. ⑤ 변위 주소 d를 더함으로써 실 주소 생성(r=as + d)
페이징 시스템과 세그먼테이션 시스템의 비교
5 페이징 기법과 세그먼테이션 기법의 혼합 페이징 시스템 사용자 프로그램을 같은 크기의 페이지들로 분할하므로 단순하고 오버헤드가 적은 기법이지만 논리적인 분할의 개념이 없으므로 페 이지 공유 등에 복잡한 문제가 발생 한다. 세그먼트 시스템 사용자 프로그램을 논리적으로 분할 할 수 있는 장점이 있으나 세 그먼트가 크기가 다르므로 관리에 오버헤드가 크다는 단점이 있다. 페이징/세그먼데이션 혼합 기법 페이징, 세그먼트 기법의 2가지 장점을 얻기 위한 방법이다. ⇒ 사용자 프로그램을 우선 논리적인 세그먼트 단위로 분할 하고, 분할 된 각 세그먼트들을 다시 각각 페이지 단위로 분할 한다. ⇒ 사용자 프로그램이 주기억장치에 적재될 때에는 분할된 페이지 단위로 적재 된다.
5.1 페이징 세그먼테이션 혼합 기법의 직접사상기법 가상 주소 v=(s, p, d) s= 세그먼트 번호 p= 해당 세그먼트의 페이지 번호 d= 해당 페이지에서 변위 번호