전공/운영체제

8장 메모리 관리

vss121 2023. 6. 3. 03:24

* block : 보조기억장치 - 주기억장치 데이터 전송 단위

word : 주기억장치 - 레지스터 데이터 전송 단위 

 

Part 1
-  메모리 관리자 (memory manager)

- 메모리 관리 전략

1) 적재(fetch)전략 2) 배치 전략 3) 교체 전략

- 메모리 계층 구조

레지스터 > 캐시 > 메인메모리 > 보조기억장치

- 메모리 할당

1) 연속 할당 (continuous allocation) 프로그램을 연속인 메모리 한 곳 에 배치

  - 단일 프로그래밍 / 단일 사용자 환경 메모리 할당

    - 문제점1 : 프로그램 크기 > 메모리 크기

    - 오버레이 (overlay) : 프로그램을 논리적 단위로 분할하여 현재 실행하는 부분만 메모리에 적재

    - 문제점2 : 커널 보호

    - 경계 레지스터 (boundary register)

    - 문제점3

    - 스와핑 (swapping) : 프로세스를 일시적으로 메모리에서 보조기억장치 로 이동 시켰다가 계속 실행시키려
고 할 때 다시 메모리 에 적재

  - 다중 프로그래밍

    1.  고정 분할 다중 프로그래밍 (fixed partition multiprogramming) : 메모리를 고정된 크기로 미리 분할한다. 각 프로세스를 하나의 분할에 적재한다. 

    2. 가변 분할 다중 프로그래밍 (variable partition multiprogramming) : 고정된 분할의 경계를 없애고 각 작업에 필요한 만큼의 메모리 할당. 내부단편화 발생X

      - 가변 분할 다중 프로그래밍의 외부 단편화 대응 방법 :

        1)빈 공간 강제 통합 (coalescing) : 이웃

        2) 빈 공간 집약 (compaction)

      - 가변 분할 다중 프로그래밍의 프로세스 배치 전략

        1) 최초 적합 전략 (first fit strategy) : 가용공간 중 첫 번째 분할에 배치

        2) 최적 적합 전략 (best fit strategy) : 가용공간 중 배치할 때 남는 공간이 가장 작은 곳에 배치

        3) 최악 적합 전략 (worst fit strategy) 가용공간 중 배치할 때 남는 공간이 가장 큰 곳에 배치

 

 

단편화 :

외부 단편화 : 전체에서 남은 메모리 크기 > process 크기, 연속된 공간 아니면 메모리 낭비됨

내부 단편화 : 하나의 분할에 프로세스를 할당하고 남은 공간, partition 크기 > process 크기 면 메모리 낭비됨

 

2) 불연속 할당 (non-continuous allocation) 프로그램을 여러 조각 segment, page 으로 분할

Part 2

● 가상 메모리 (virtual memory) : 프로세스 전체가 메모리에 존재하지 않아도 실행될 수 있게 하는
메모리 관리 기법

  - 가상 주소(상대주소, 논리주소 ) 공간 V : 프로세스에서 사용하는 주소의 전체 집합 

  - 물리 주소(실제주소) 공간 R : 실제 메모리의 주소 공간

  - 주소 변환 사상 (address translation mapping) : MMU에 의해 수행, 블록 단위

  - 가상 주소 표현 v = (b,d)

  블록 사상 테이블 (block map table)에서 블록의 실제 메모리 위치 정보

 

 

페이징 (paging) 직접변환 , 연관사상 변환 , 혼합방법 ; 다단계 페이지 테이블 , 역 페이지 테이블 ,
페이지 공유

페이지 : 프로그램의 분할된 블록

page frame : 메모리의 분할 영역, 페이지와 같은 크기

외부 단편화x 내부 단편화o

 가상 주소 표현 v=(p,d)

페이지 테이블

- address mapping 체계

  1) 직접 사상 (direct mapping) : 메모리 2번 접근

  2) 연관 사상 (associative mapping) : Translation Look-aside Buffer (TLB)

    변환 속도의 개선을 위해 연관메모리 (associative memory) 사용

    동시(병렬) 검색수행

  3) 연관 사상/직접 사상 혼합 : 최근 사용된 페이지 정보만 연관메모리에 저장, 나머지는 page table 에 저장

 

- 다단계 페이지 테이블 (multilevel page table)

- 역 페이지 테이블 (inverted page table)

- 해시 앵커 테이블 이용한 역 페이지 테이블 방법 개선

 

페이지 공유 (sharing) : 읽기 전용 코드 

 

Part 3

세그멘테이션 (segmentation) 
프로세스의 메모리 공간에 대한 프로그래머의 관점 (논리적으로 분할)
크기가 일정하지 않은 함수 , 메인 프로그램, 스택 , 힙 , 전역변수 등의 개체 세그먼트들의 모임

내부 단편화x, 외부 단편화o

- 주소 표현 virtual address v = (segment number (s), displacement in a segment (d))

- 세그먼테이션 사상 테이블 (segmentation map table)

세그먼트 적재 비트 (0 : 메모리내 부재 , 1: 적재 ), 보조기억장치 주소 메모리 내 부재시 검색할 위치 , 세그먼트의 전체 길이, 세그먼트 시작 주소, 보호비트 (protection bit)

보조기억장치->swap device

세그먼트 공유

세그먼트 보호 및 접근 제어

 

 페이징 세그먼테이션 혼용

페이지화된 세그먼테이션 (paged segmentation) : 논리 단위의 세그먼트로 분할하고, 각 세그먼트를 고정된 크기의 page로 분할한다. 페이지 단위로 메모리에 적재한다.

가상주소 𝑣=(𝑠,𝑝,𝑑)

프로세스별 세그먼트 테이블 (segment table), 세그먼트별 페이지 테이블 (page table)


12. 내부단편화와 외부단편화의 차이점

내부 단편화는 메모리 할당 시 발생하는 문제로, 프로세스가 할당받은 메모리 공간 중 일부가 사용되지 않고 낭비되는 경우를 말합니다.

외부 단편화는 메모리 할당 해제 후 발생하는 문제로, 할당된 메모리 공간들 사이에 사용되지 않은 작은 조각들이 흩어져서 메모리 공간의 활용을 어렵게 만드는 경우를 말합니다.

 

13. 페이지와 세그먼트의 차이점

페이지는 일정한 크기의 블록이다.

세그먼트는 가변적인 크기의 블록이다.

 

14. 

가상 메모리(Virtual Memory)는 컴퓨터 시스템에서 실제 물리적인 메모리(RAM)보다 큰 용량의 가상적인 메모리 공간을 사용하는 기술입니다.

가상 메모리는 주기억장치보다 큰 메모리 공간을 제공하므로, 더 많은 프로세스나 더 큰 프로그램을 실행할 수 있습니다.

  1. 성능 저하: 가상 메모리를 사용하는 경우, 실제 메모리와 디스크 간의 데이터 전송이 필요합니다. 이로 인해 액세스 속도가 느려지고, 디스크의 사용량이 증가하여 성능 저하가 발생할 수 있습니다.
  2. 페이지 부재: 가상 메모리 시스템에서는 페이지 부재(Page Fault)가 발생할 수 있습니다. 페이지 부재는 필요한 데이터가 실제 메모리에 없어 디스크에서 가져와야 하는 상황을 의미합니다. 페이지 부재가 자주 발생하면 성능이 저하될 수 있습니다.

15. 페이징 기법에서 가상 주소를 실 주소로 사상하는 데 사용되는 방법

직접 사상 (direct mapping) : 페이지테이블을 이용하며, 메모리 2번 접근

연관 사상 (associative mapping) : 변환 속도 개선을 위해 Translation Look-aside Buffer (TLB)을 이용한다.

연관 사상/직접 사상 혼합 : 최근 사용된 페이지 정보만 연관메모리에 저장, 나머지는 page table 에 저장

 

16. 세그먼테이션에서 가상 주소를 실 주소로 사상하는 과정

프로세스의 SMT가 저장되어 있는 주소 b에 접근한다. SMT에서 segment s의 entry를 찾는다. 찾아진 entry에 대해 존재비트가 0이면 swap device로부터 해당 segment를 메모리로 적재한다. 아니면 실제 주소 r을 계산하여 r로 메모리에 접근한다.

 

17. 페이징 기법과 세그멘테이션 기법을 비교하여 장단점

페이징 기법은 프로그램을 고정된 크기의 block으로 분할한다. 필요한 page만 메모리에 적재하여 사용하여 메모리의 효율적 활용을 할 수 있다. 외부 단편화 문제가 없다. 프로그램의 논리적 구조를 고려하지 않아 페이지 공유나 보호가 복잡하다. 

세그멘테이션 기법은 프로그램을 논리적 단위로 분할한다. 필요한 segment만 메모리에 적재하여 사용하여 메모리의 효율적 활용을 할 수 있다. 내부 단편화 문제가 없다. 세그먼트 공유나 보호가 용이하다. 페이징 시스템 대비 관리 오버헤드가 크다.

 

18. 다단계 페이지 테이블을 사용한 페이징이 수행되는 과정과 장단점

페이지 테이블을 여러 단계 의 페이지 테이블 로 나누는 저장

하위 단계에는 필요한 만큼만 페이지 테이블 생성할 수 있어 저장공간 절약

주소 변환에 추가적인 메모리 접근이 필요하므로 속도 저하가 발생할 수 있습니다.

 

19. 페이지화된 세그먼테이션 기법에서 메모리 관리와 주소 사상을 수행하는 방법

페이징 시스템과 유사하게 메모리 관리를 한다.

가상주소 𝑣=(𝑠,𝑝,𝑑) 로 프로세스별 세그먼트 페이지와, 세그먼트별 페이지 테이블을 이용해 주소 사상을 한다.

 

20. 페이지 사상 테이블에 저장되는 항목들과 그 역할

페이지 존재 비트 (page resident bit),

보조기억장치 내 위치 정보 (secondary storage address),

페이지 프레임 번호 (page frame number)

 

21. 세그먼트 사상 테이블에 저장되는 항목과 그 역할

세그먼트 번호 : 세그먼트 번호는 세그먼트 식별자(Identifier)로 사용

세그먼트 적재 비트 (0 : 메모리내 부재 , 1: 적재 )

보조기억장치 주소 메모리 내 부재시 검색할 위치 ,

세그먼트의 전체 길이,

세그먼트 시작 주소,

보호비트 (protection bit) : 읽기, 쓰기 , 실행 , 추가 쓰기

 

22. 페이징 기법에서 프로세스 간의 페이지가 공유되는 형태

각 프로세스가 페이지 테이블을 통해 동일한 페이지 프레임 지정

 

23. 페이지화된 세그멘테이션 기법에서

프로세스 테이블: 전체 프로세스 정보 포함
세그먼트 테이블 :  프로세스별로 세그먼트 정보 포함
페이지 테이블 : 세그먼트별 페이지 정보 포함

'전공 > 운영체제' 카테고리의 다른 글

10장 보조기억장치 관리  (0) 2023.06.03
9장 가상 메모리 관리  (0) 2023.06.03
11장 파일 시스템 (File System)  (0) 2023.05.30