DEVELOP
article thumbnail

본 게시물은 운영체제 과목의 강의영상과 강의자료를 바탕으로 작성한 학습용 게시물입니다.


개요 - 논리주소와 물리주소, 주소 결속

  • 논리주소 : CPU에 의해서 생성되는 주소 체계 
  • 물리주소 : RAM에 실질적으로 로드되는 물리적주소
  • 주소결속 : 논리주소 → 물리주소 
  • 명령어 하나가 실행될 때마다 주소변환이 이루어짐 
  • 주소결속은 한번에 이루어지지 않고 하드웨어의 지원을 받아 실행시간에 이루어짐  

# 주소결속 시점 

  • 컴파일시점 결속
    - 컴파일러가 물리주소를 생성 
  • 적재시점 결속
    - 적재 시점에 물리적 시작주소가 확정되면 코드 내 논리주소들을 물리적 주소로 변환하여 적재 
  • 실행시점 결속 
    - 먼저 논리주소로 적재된 후 실행 중에 물리주소 확정 
  • 적재시점 주소결속 시에는 적재 후 재배치가 불가
  • 실행시점 주소결속 시에는 재배치 및 부분적재 가능 

결속방식에 따른 메모리 경영 기법 분류


경영 기법의 분류 - 분할, 페이징, 세그먼테이션, 가상 메모리 

# 분할 방법

  • 여러 개의 프로그램을 적재하기 위해서 메모리 공간을 여러개로 분할
  • 분할의 수는 다중 프로그래밍의 정도가 됨 
  • 고정분할과 가변분할이 있음 

분할방법 - 고정분할, 가변분할, 단편화와 압축

  • 고정 분할 
    : 분할의 수와 각각의 크기가 고정 
    - 현재는 거의 사용 x
    - 분할마다 남는 공간 발생 
  • 가변 분할
    : 메모리 전체를 하나의 연속된 공간으로보고 적절한 빈 장소에 프로그램을 적재 
    - 최초적합
    - 최적적합
    - 최악적합 
    - 효율성 : 최초=최적 > 최악
    - 속도 : 최초 > 최적 > 최악 
  • 단편화 
    - 외부단편화
    - 내부단편화 
  • 압축 
    - 단편을 합해 하나의 큰 공간을 만듦 
    - 50% 규칙 
    - 압축의 비용 : 압축을 위해 움직여야 하는 프로그램 크기의 합 

페이징 - 페이지 테이블, 페이지의 공유와 보호, 채널 맵

# 페이징

  • 연속된 물리공간이 필요하지 않으면서도, 실행시간 및 주소결속이 가능한 방식의하나
  • 물리적 공간은 프레임, 논리적 공간은 같은 크기의 페이지로 나누고, 페이지 테이블을 사용하여 페이지를 프레임에 대응시킴 
  • 페이지 테이블 : 메인메모리 상에 존재, 시작주소는 PTBR에 기록 
  • 외부단편화는 x, 약간의 내부 단편화 
  • 단점 : 분할 방식에 비하여 주소결속에 따른 오버헤드 발생 , 속도저하 및 페이지 테이블 용량 문제 해결 필요
  • 장점 
    - 단편화 문제 해결 
    - 페이지 공유 가능 
    - 페이지 보로 가능 

# 주소표현 

  • 논리적 주소 : ( p , d )
    - p : 페이지 번호 
    - d : 페이지 내의 상대 주소 
  • 물리적 주소 : ( f,d ) = f * s + d
    - f : 페이지 p에 해당하는 프레임의 번호 
    - s : 페이지 크기 
  • free frame 리스트 : 새로운 프레임 할당을 위해 가용 프레임을 free frame 리스트로 운용 
  • 페이지 공유 
    : 만약 한 프로세스에 의해 먼저 메인메모리에 탑재되어 있다면 다른 여러 프로세스가 공유 가능
  • 메모리 보호 
    : 보호비트 마련함으로써 구현  

# 페이지 테이블 

  • 페이지 테이블은 주로 메인메모리에 저장하고 시작 주소를 PTBR에 저장 
  • 2번의 메모리 접근 -> 페이지 테이블, 물리주소 
    - PTBR : 페이지 테이블 주소 간직 
    - PRLR : 페이지 테이블 길이 간직
  • TLB 이용 
    - TLB에 논리주소의 p와 프레임 번호 f의 쌍 (맵핑정보) 를 기록 
    - 메모리 접근이 필요하면 먼저 TLB에서 맵핑 정보를 찾고 없으면 메모리 상의 페이지 테이블에서 찾음 
    - 지역성 : 최근 사용한 것은 다시 사용할 확률 매우 높음 
  • 계층적 페이징 
    - 논리 주소 상의 페이지 번호를 2단계로 분할 
  • 해시 페이지 테이블
    - 해시값을 가상페이지 번호로 활용하고, 해시 테이블의 각 항목에 해쉬충돌해결을 위한 연결리스트 구비 
    - 클러스터 페이지 테이블 
  • 역 페이지 테이블 
    - 메인메모리 각 프레임마다 페이지 테이블의 한 항목 씩 할당 
    - 결과적으로 시스템 내에는 하나의 페이지 테이블만 존재하게 되어 적은 용량을 필요로 함 
    - 주소변환 위해 페이지 테이블을 탐색해야하므로 시간 소모 

세그멘테이션 

# 세그먼테이션

  • 사용자의 메모리에 대한 관점을 지원해 주는 메모리 경영 방식 
  • 세그먼트 : 사용자에게 메모리는 가변 크기를 가진 스트럭쳐, 어레이, 행렬, 테이블, 함수등의 집합으로 인식됨
  • 세그먼트 테이블을 활용해 해당 테이블에 각 세그먼트의 시작주소와 크기정보를 수록 
  • 외부단편화 문제 다시 발생 -> paged segmentation  
profile

DEVELOP

@JUNGY00N