CS/운영체제

운영체제(13) - 프로세스의 메모리 할당 (비연속적 할당 방식)

붉은범 2023. 10. 23. 12:13
반응형

 불연속할당 (noncountiguous allocation)

하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있음

 

Paging기법

  • 주소변환을 위해 Page table이 필요, PMT ( Page Mapping Table)
  • 논리적 주소를 여러공간(Page)로 쪼갠 것
  • page table은 Main memory에 상주
  • Page - table base reigster (PTBR)이 page table을 가리킴
  • 모든 메모리 접근 연산에는 2번의 memory access 필요 -> 이런 메모리의 접근을 줄이고자 나온게 TLB
  • 장점 : 논리 메모리는 물리 메모리에 저장될 때 연속되어 저장될 필요가 없고, 물리 메모리의 남는 프레임에 적절히 배치되기 때문에 외부 단편화가 생기지 않는다.
  • 단점 : 내부 단편화 문제가 발생할 수 있다. 페이지 단위를 작게하면 해결할 수 있지만, 페이지 매핑 과정이 복잡해져 오히려 비효율적이다.

TLB ( Translation Look-askide Buffer)

  • 주소변환을 위한 캐싱 메모리
  • pagetable 정보의 일부만 함유
  • TLB는 context switch 때 flush
  • TLB를 통해 메모리 접근 시간을 줄일 수 있음

공간 낭비를 최소화 하기 위해

Two - Level Page Table 사용

 

Multilevel Paging and Performance

  • Page table 마다, 각 entry마다 아래의 bit을 둔다
    • Protection bit , Page에 대한 접근 권한 ( read / write / read - only)
  • Valid - invalid bit
  • invalid한 페이지를 할당하지 않으므로 메모리를 절약할 수 있다
  • 작은 단위로 Page Table을 분할함으로써 메모리 관리가 용이하다.

Inverted Page Table

  • Page frame 하나당 page table에 하나의 entry를 둔 것 (system - wide)
  • 메모리에 하나의 고정 크기 페이지 테이블만 두는 방
  • 각 page table entry는 각각의 물리적 메모리의 page frame이 담고있는 내용 표시 (process - id , process의 logical address)
  • 단점 : 테이블 전체를 탐색해야 함
  • 조치 : associative register 사용 ( expensive)
  • page table의 공간을 줄이기 위해 사용

Segmentation 기법

  • 프로그램을 의미 단위인 여러개의 segment로 구성
    • 일반적으로는 code, data, stack 부분이 하나씩의 세그먼트로 정의됨
    • 작게는 프로그램을 구성하는 함수 하나하나를 세그먼트로 정의
    • 크게는 프로그램 전체를 하나의 세그먼트로 정의 가능
  • 페이지는 돼지를 도축할때 같은 크기로 자른다면, Segmentation은 부위별로 자른다고 생각하면 편하다
  • Logical address는 다음의 두 가지로 구성 <segment - number , offset > . 여기서 offset은 세그먼트 안에서의 위치를 나타낸다.
  • 세그먼트 테이블은 각자 base ( 세그먼트의 물리적 주소에서 시작점), limit ( 세그먼트의 길이)가 존재한다.
  • 만약 Logical address가 (2,100) 이라면....
    • 세그먼트 테이블 2번으로 가서.... 4300+100 = 4400 < 4700 ( base + limit)
  • 만약 Logical address가 (1,500)이라면...
    • 세그먼트 테이블 1번으로 가서.... 6300 + 500 = 6800 > 6700 (base + limit)
    • => 인터럽트로 인해 프로세스 강제 종료 (범위를 벗어남) 

Segmentation 기법의 장점과 단점

  1. 장점 : 의미 단위로 쪼개기 때문에 공유 ( sharing )과 보안 ( protection ) 에 있어 paging보다 훨씬 효과적이다
  2. 단점 : segment의 길이가 동일하지 않으므로 가변분할 방식에서와 동일한 문제점들이 발생 ex) 외부단편화

Segment - table base register ( STBR )

  • 물리적 메모리에서의 segment table의 위치

Segment - table length register ( STLR )

  • 프로그램이 사용하는 Segment의 수

주소변환은 하드웨어적으로 이루어짐

 

반응형