컴퓨터 공학/혼자 공부하는 컴퓨터 구조 +운영체제

31.페이징을 통한 가상메모리 관리

공부를하자 2023. 8. 3. 01:45

1.가상메모리(virtual memory)

 1)정의 개요

  -프로세스를 메모리에 연속적으로 할당하는 방식은 외부단편화와 물리메모리보다 프로세스를

   실행할 없는 단점이 있다.

  -가상메모리란 실행하고자 하는 프로그램 일부만 메모리에 적재하여 실제 물리 메모리 크기보다

   프로세스를 실행할 있게 하는 기술이다.

2.페이징(paging)

  1)정의 개요

   -외부 단편화가 생기는 이유는 연속적인 메모리 할당이다.

   -메모리와 프로세스를 일정한 단위로 잘라 불연속적인 할당을 있다면 외부단편화가 발생하지 않는다.

   -프로세스의 논리 주소 공간을 페이지(page),메모리 물리 주소공간을 프레임(frame)으로 잘라

    관리하는 기법이 페이징이다.

    2)페이징 , 페이징 아웃

      -페이징에서도 스왑핑을 사용할 있다.

      -페이지 단위로 보조기억장치로 스왑인 되는 것을 페이징 (page in).

      -페이지 단위로 보조기억장치에서 스왑 아웃 되는 것을 페이지 아웃(page out)이라 한다.

3.페이지 테이블(page table)

 1)정의 개요

   -메모리가 불연속적으로 배치되어 있다면  CPU입장에선 어떤 곳에 데이터가 있는지 알기 어려워 

    순차적으로 실행하기 어렵다는 단점이 있다.

   -페이지 테이블은 이러한 단점을 극복하기 위해 사용하는 방법으로 페이지와 프레임에 번호를 달아

    CPU 번호를 보고 다음 프레임으로 찾을 있게 한다.

 

 

   -프로세스마다 각자의  페이지 테이블을 가지고 있고 메모리에 적재된다.

   -CPU내의 페이지 테이블 베이스 레지스터(PTBR:page table base register)

    프로세스의 페이지 테이블이 적재된 주소를 가리킨다.

2)TLB(Translation Lookaside Buffer)

  -페이지 테이블을 메모리에 두면 메모리의 접근 시간이 배로 늘어나는 단점이 있다.

  -메모리에 있는 페이지 테이블을 보기 위해 한번, 프레임에 접근하기 위해 한번.

   -이와 같은 문제를 해결하기 위해 CPU곁에 TLB라는 페이지 테이블의 캐시메모리를 둔다.

   -최근에 사용된 페이지 테이블을 저장한다.

  

     -TLB에서 저장된 값을 불러오는 것을 TLB히트라고 불러오지 못하고 메모리에서 꺼내오는 것을

     TLB 미스라고 한다.

3.페이징에서의 주소변환

  -페이지와 프레임은 하나 이상의 주소를 포함한다. 그렇기에 특정 주소에 접근하려면 가지

   정보가 필요하다.

 

   -페이징 시스템은 모든 논리 주소가 페이지 번호(page number) 변위(offect) 구성된다.

 

  -페이지 번호는 접근하고자 하는 페이지의 번호 값이며

   변위는 접근하려는 주소가 프레임의 시작 번지부터 얼만큼 떨어져 있는지 알기 위한 정보이다.

4.페이지 테이블 엔트리(Page Table Entry)

  1)정의

    -페이지 테이블의 각각의 .

    -페이지 테이블 엔트리에 담기는 중요한 정보 유효비트,보호비트,참조비트,수정비트가 있다.

   2)유효 비트(vaild bit)

   -현재 페이지에 접근 가능한지 여부를 담는 비트.

   -모든 페이지가 메모리에 존재하지 않고 스왑영역에 있는 경우가 많다.

   -현재 페이지가 메모리에 적재되어 있는지 보조기억장치에 적재되어 있는 여부를 알려준다.

   -만약 유효비트가 0 메모리에 접근하려하면 페이지 폴트(page fault)라는 예외가 발생한다.

   *페이지처리 과정

   3)보호 비트(protection bit)

   -페이지의 보호를 위한 비트이다.

   -보호비트를 통해 읽고 쓰기가 모두 가능한지 읽기만 가능한지 나타낸다.

   -보호비트는 읽기(read),쓰기(write),실행(excute) 여부를 나타내는 3개의 비트(r,w,x) 구현할 있다.

    4)참조비트(reference bit)

    - CPU 어떤 페이지에 접근한 적이 있는지 여부를 나타낸다.

    -읽거나 페이지는 1 적재된 이후 한번도 읽거나 적이 없다면 0으로 나타낸다.

     5)수정 비트(modified bit)

     -페이지에 데이터를 적이 있는지 없는지 수정 여부를 알려준다.

     -더티 비트(dirty bit)라고도 불리며 변경된 적이 있으면 1 없으면 0이다.

     -수정 비트는 페이지가 메모리에서 사라질 보조기억장치에서 쓰기작업을 해야하는지 여부를

      판달할 쓰인다.

5.페이징의 이점

 1)쓰기 복사(copy on write)

  -멀티 프로세서에서 부모 프로세스를 복제해 자식 프로세스를 만드는 과정(fork)에서

   자식 프로세스의 데이터는 부모 프로세스와 다른 별도의 메모리공간에 생성된다.

  - 프로세스의 페이지 테이블은 자신의 고유한 페이지가 할당된 프레임을 가리킨다.

  -하지만 이러한 작업은 불필요한 생성 메모리 낭비를 초래한다.

 

-쓰기 복사 에서는 페이지 테이블이 동일한 프레임을 가리키게 하되  쪽이 쓰기 작업을 하게되면

 별도의 공간에 복사하는 것으로 메모리 절약과 프로세스 생성시간을 줄일 있다.

2)계층적 페이징(hierarchical paging)

 -페이지 테이블의 크기는 많은 양을 가지는데 프로세스가 커지는 만큼 증가한다.

 -모든 페이지 테이블 엔트리를 메모리에 두는 것은 매우 비효율적이다.

 -페이징 테이블을 페이징하여 여러 단계의 페이지를 두고 바깥쪽에 페이징 테이블을 생성하여

 잘린 페이징을 가리키게 하는 방법이다.

 -페이징 페이지 테이블을 보조기억장치 등에 적재하여 해당 페이지테이블을 참조해야 때가

  생기면 메모리에 적재하는 방식으로 메모리낭비를 줄인다.

  -계층적 페이징 기법을 사용하면 페이지의 형태도 달라져 페이지번호가 바깥쪽 페이지 번호와 안쪽 페이지  

   번호로 나눠 진다.

  -바깥 페이지 번호는 CPU 근접한 곳에 위치한 페이지 테이블 엔트리를 가리키고

  -안쪽 페이지 번호는  첫번째 페이지 테이블에 위치한 두번째 페이지 테이블를 가리킨다.

  -이러한 계층적 페이징은 세개나 네개 이상으로도 구성될 있다.

'컴퓨터 공학 > 혼자 공부하는 컴퓨터 구조 +운영체제' 카테고리의 다른 글

33.파일과 디렉토리  (0) 2023.08.08
32.페이지 교체와 프레임 할당  (0) 2023.08.07
29.교착 상태 해결방법  (0) 2023.07.30
28.교착상태  (0) 2023.07.30
27.동기화 기법  (0) 2023.07.27