본문 바로가기
OS/쉽게 배우는 운영체제

가상 메모리의 기초(2)

by re-hwi 2022. 3. 21.

이번단원을 공부하며 다른 단원보다 더 많은 궁금증이 생겼다. 처음보다 난이도가 많이 올라간 이유도 있겠지만 내가 조금씩 이런저런 생각을 하며 공부를 하는 것 같아 뿌듯하다. 

 

하나의 예시로 세그멘테이션기법이 페이징 기법보다 테이블이 작다고 한다.

 

처음에는 같은 크기의 프로세스인데 어떻게 테이블의 크기가 차이가 날까 생각을 해봤는데 페이징기법에서는 나뉜 공간중 사용하는 공간 모두에 테이블이 필요하지만 세그멘테이션기법은 프로세스 하나에 하나의 테이블만 존재하기 때문인것 같다.

 


3. 세그멘테이션 기법

 

3-1 세그멘테이션 기법의 구현

 

세그멘테이션 테이블 : 세그멘테이션 기법에서의 매핑 테이블

 

구조 : 프로세스의 크기 (limit)와 주소 (address)로 이루어짐

→ 페이징 기법과 다르게 프로세스의 크기가 서로 다르므로 프로세스의 크기를 포함해야한다.

 

장점 : 페이지테이블이 작고 단순

단점 : 외부 단편화로 인해 물리 메모리 관리가 복잡

→ 가변 분할 방식과 장단점이 같음

 

3-2 세그멘테이션 기법의 주소 변환

  1. 가상주소를 구한다.
  2. 세그멘테이션 테이블에서 시작주소를 알아낸 후 시작주소에 거리를 더하여 물리주소를 구한다.
  3. 물리주소에 접근하여 데이터를 사용한다.

트랩 : 프로세스가 유효하지 않은 메모리에 접근하려고 할 때에 생기는 오류 

 

4. 세그멘테이션-페이징 혼용기법

 

4-1 메모리 접근권한

 

읽기 쓰기 실행 추가 의 4가지 권한이 있음

→ 추가의 경우 쓰기와 항상 같이 있어야 하므로 하나로 인식

구분 읽기 쓰기 실행 비고
모드 0 X X X 접근 불가
모드 1 X X O 실행만 가능
모드 2 X O X 실제로 사용 X
모드 3 X O O 실제로 사용 X
모드 4 O X X 읽기 전용
모드 5 O X O 읽고 실행 가능
모드 6 O O X 읽고 쓰기 가능
모드 7 O O O 제한 없음

- 프로세스의 영역별 메모리 접근 권한

  • 코드영역 : 읽기와 실행권한
  • 데이터영역 : 일반적인 변수는 읽기와 쓰기 상수로 입력된 변수는 읽기 권한

4-2 세그멘테이션-페이징 혼용 기법의 도입

 

개요 : 페이징 기법에서 모든 페이지에는 접근 권한이 들어있는 권한 비트가 추가된다. 하지만 그렇게 된다면 페이지 테이블의 크기가 매우 커지기 때문에 크기가 작은 세그멘테이션 테이블을 추가로 이용한다.

                                                                              ↓

4-3 세그멘테이션-페이징 혼용 기법의 주소변환

 

  1. 해당 프로세스의 가상주소를 구한다 ( VA = <S,P,D> )
  2. 세그멘테이션 테이블의 해당 주소가 유효한지 확인한 후 유효하지 않다면 트랩을 발생시키고 유효하다면 연결된 페이지 테이블로 간다.
  3. 페이지 테이블을 이용하여 해당 페이지가 어느 프레임에 있는지 찾는다.
  4. 물리메모리의 프레임에서 D만큼 이동해서 데이터를 찾는다.

5. 캐시 매핑 기법

 

5-1 캐시 직접 매핑

 

- 캐시에서는 데이터가 매번 같은 자리로 올라오기 때문에 캐시 테이블 전체를 찾아보지 않고도 캐시히트나 미스를 바로 알 수 있다.

 

메모리의 페이지 수 : N

캐시의 페이지 수 : M

→ 메모리의 크기가 훨씬 크기 때문에 항상 N>M이다.

블록 = M/N (메모리의 페이지수를 캐시의 페이지 수로 나눈 것)

bd = 블록에서의 거리

- 캐시에 올라오는 메모리의 bd가 같다면 서로 자리를 차지하기 위해 다른 데이터를 쫒아냄

- <P,D>를 <tag,bd,D>로 바꾼다.

- P를 tag와 bd 2가지로 나누어 찾기 때문에 더 빠르게 데이터를 찾을 수 있다.

ex) 1101을 찾을 때 01을 찾은 후 11을 찾기때문에 모든 주소를 찾을 필요가 없음

 

5-2 캐시 연관 매핑

 

- 캐시에 올라오는 bd가 같을 시에 다른 데이터를 내쫒는 현상을 완화한 방법

- 메모리 워드가 캐시의 어느 위치에나 자유롭게 올라갈 수 있다.

- <P,D>로 나누기 때문에 속도가 느림

ex) 1101을 찾을 때 1101을 한번에 찾기 때문에 모든 주소를 찾아야함

 

5-3 캐시 집합-연관매핑

 

- 직접매핑과 연관매핑의 장점을 합친 매핑

- 캐시를 K개의 집합으로 나누고 각 집합에 직접매핑을 사용

- 같은 끝 자리를 가진 메모리도 K개가 되기 때문에 자리다툼문제 완화

반응형

'OS > 쉽게 배우는 운영체제' 카테고리의 다른 글

가상 메모리 관리 (2)  (0) 2022.04.03
가상 메모리 관리 (1)  (0) 2022.03.23
가상 메모리의 기초 (1)  (0) 2022.03.17
메모리 관리 (2)  (0) 2022.03.11
메모리 관리 (1)  (0) 2022.03.10

댓글