1 / 85

Lecture #10

Lecture #10. 가상 기억장치 ( Virtual Memory). 페이징( Paging) 및 세그먼트( Seg- mentation) 기법의 특징(1). 페이징 및 세그먼트 기법의 특징 메모리 참조는 실행시간에 동적으로 물리적 주소로 변환된다 프로그램은 실행시간에 메모리에 적재되어 시작주소가 결정된다 프로세스는 스와핑( swapping) 으로 인해 메모리 내에서 옮겨 다닌다 프로세스는 페이지 또는 세그먼트로 분할되어 메모리에 적재되므로 메모리에 연속적으로 적재될 필요가 없다.

verdad
Download Presentation

Lecture #10

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture #10 가상 기억장치 (Virtual Memory)

  2. 페이징(Paging) 및 세그먼트(Seg- mentation) 기법의 특징(1) • 페이징 및 세그먼트 기법의 특징 • 메모리 참조는 실행시간에 동적으로 물리적 주소로 변환된다 • 프로그램은 실행시간에 메모리에 적재되어 시작주소가 결정된다 • 프로세스는 스와핑(swapping)으로 인해 메모리 내에서 옮겨 다닌다 • 프로세스는 페이지 또는 세그먼트로 분할되어 메모리에 적재되므로 메모리에 연속적으로 적재될 필요가 없다 Operating System

  3. 페이징(Paging) 및 세그먼트(Seg- mentation) 기법의 특징(2) • 페이징 및 세그먼트 기법의 한계 • 프로세스의 모든 부분이 실행되는 동안 메모리에 적재될 필요가 없다  부분 적재(Partial Loading) 가능 • 프로세스 실행은 한 시점에 다음에 수행할 명령어 또는 처리할 데이터가 메모리에 적재된 페이지 또는 세그먼트에 있으면 진행될 수 있다 Operating System

  4. 부분적재를 이용한 프로세스 실행 (1) • 부분 적재를 이용한 프로세스 실행 과정 : • 운영체제는 하나의 프로그램을 실행할 때에 프로그램 의 일부 프레임만을 메모리에 적재한다 (시작 부분을 포함) • 페이지/세그먼트 테이블에서 적재된 페이지/세그먼트 에 대한 항목의 present bit을 설정한다 • Present Bit : 페이지/세그먼트 테이블 항목의 필드 • 각각의 페이지 또는 세그먼트가 메모리에 적재되었는지 여부를 표시한다 • Resident Set : 하나의 프로세스에 대해 현재 메모리에 적재된 페이지 또는 세그먼트의 집합 • 메모리에 적재되지 않은 페이지 또는 세그먼트 부분을 접근하면 인터럽트(memory fault)가 발생한다 Operating System

  5. 부분적재를 이용한 프로세스 실행 (2) • 부분 적재를 이용한 프로세스 실행 과정(계속) : • 운영체제는 현재의 프로세스를 대기 상태로 전환한다 • 운영체제는 필요한페이지 또는 세그먼트을 메모리에 적재하기 위해 디스크 읽기 요구를 발생시킨다 • 현재의 프로세스는 디스크 읽기 요구가 완료될 때까지 대기 상태로 있는다 • 디스크 입출력이 실행되는 동안에 다른 프로세스가 디스패치되어 실행된다 • 디스크 입출력이 완료되면 인터럽트가 발생한다 • 운영체제는 이 인터럽트를 처리하는 동안 대기 상태에 있는 프로세스를 준비 상태로 전환한다 Operating System

  6. 부분 적재(Partial Loading)의 장점 • 더 많은 프로세스가 메모리에 적재될 수 있다 • 각 프로세스의 일부 프레임만을 메모리에 적재하므로 더 많은 프로세스를 메모리에 적재할 수 있다 • 메모리에 많은 프로세스가 적재되면 모든 프로세스가 대기 상태로 전환될 가능성이 적어진다 • 프로세스가 메모리 크기보다 더 큰 경우에도 실행할 수 있다 • 논리적 주소를 위해 물리적 주소에 필요한 비트 수보다 더 많은 비트를 사용할 수 있다 Operating System

  7. 가상 기억장치(Virtual Memory) (1) • 가상 기억장치(Virtual Memory) • 페이지 기법(또는 세그먼트 기법) + 부분 적재 기법 • ‘물리적 주소’보다 더 큰 비트 수를 가진 ‘논리적 주소’가 사용 가능 • 예: 16 비트의 물리적 주소를 사용하는 경우 • 64 KB(2^16=64)의 물리적인 메모리을 접근할 수 있다 • 페이지 크기를 1KB로 정하면 오프셋을 나타내기 위해 10 비트가 필요하다 • 물리적으로 페이지를 나타내기 위해 6 비트를 이용한다 • 논리적 주소에서 페이지 번호 부분은 6 비트 보다 더 많은 비트 수를 이용하여 나타낼 수 있다 Operating System

  8. 가상 기억장치(Virtual Memory) (2) • 가상 기억장치(Virtual Memory) • 논리적 주소로 접근할 수 있는 기억공간 • 단지 필요한 프레임만을 주기억장치에 적재한다 • 부가적으로 필요한 기억 공간은 보조기억장치(예: 디스크)에 유지된다 • 더 나은 성능을 위하여 가상 기억장치는 파일 시스템을 통해 접근하는 디스크 공간을 이용하지 않고 스왑 공간(swap space)이라는 특별한 공간을 활용한다 • 더 큰 저장 블록을 사용한다 • File lookups와 간접 할당 방식 등은 사용하지 않는다 Operating System

  9. 가상 기억장치(Virtual Memory) (3) • 물리적 기억장치 • 물리적 주소로 접근할 수 있는 기억공간 • 물리적으로 DRAM 장치에 저장된다 • 논리적 주소와 물리적 주소의 변환 • 메모리 관리 하드웨어가 페이지/세그먼트 테이블을 접근하여 논리적 주소를 물리적 주소로 변환한다 Operating System

  10. Trashing 가능성(1) • 가능한 많은 프로세스를 메모리에 적재하기 위해서는 각 프로세스의 필요한 프레임만을 메모리에서 유지 하여야 한다 • 메모리가 모두 사용되고 있는 경우 : • 운영체제가 실행중인 프로세스가 요구한 프레임을 위해 메모리에 있는 다른 프로세스의 프레임이나 실행중인 프로세스의 프레임을 swapping 하여야 한다(전역 교체 / 지역 교체) • swapping 된 프레임이 다음에 사용할 예정이면 다시 swapping이 발생한다 Operating System

  11. Trashing 가능성(2) • 빈번한 프레임 swapping 은 trashing 현상을 발생시킨다 • CPU가 사용자 프로그램 실행보다 프로세스 swapping에 대부분의 시간을 사용하게 된다 • CPU의 이용률이 급격하게 떨어진다 Operating System

  12. 작업 집합(Working Set) 모델 기법(1) • 접근 지역성(locality of references) 원리: • 프로세스 내의 메모리 접근은 하나의 지역적인 메모리 영역에 집중되는 경향이 있다 • 실제 프로세스 실행에서 짧은 기간 동안에는 프로세스가 요구하는 전체 기억공간 중에서 일정한 부분만을 필요로 한다 • 작업 집합(Working Set) • 하나의 프로세스가 실행될 때, 최근의 ∆(=k) 개의 페이지 참조에 포함되는 페이지들의 집합 • 프로그램 지역성(locality)의 근사값 Operating System

  13. 윈도우 크기에 따른 작업 집합 작업 집합(Working Set) 모델 기법(2) • 작업 집합(Working Set) Operating System

  14. 작업 집합(Working Set) 모델 기법(3) • 운영체제는 각 프로세스에게 작업 집합 크기 만큼의 메모리를 할당한다 • 가능한 다중 프로그래밍 정도를 높인다 • Trashing 발생을 줄일 수 있다 • 문제점 - 프로세스의 작업 집합은 계속하여 변하므로 작업 집합을 추적하기 어렵다 • 작업 집합의 크기를 결정하기 어렵다 Operating System

  15. 페이지 부재 빈도 (Page Fault Frequency) 기법 • 페이지 부재 비율의 상한과 하한을 설정하여 페이지 부재 빈도를 관리하는 기법 • 페이지 부재 비율이 상한을 넘으면 더 많은 프레임을 할당한다 • 페이지 부재 비율이 하한 이하로 내려가면 프레임을 회수한다 • 직접적으로 thrashing을 방지하면서 페이지 부재 비율을 예측하고 관리하는 기법 Operating System

  16. 가상 기억장치의 요구 사항 • 하드웨어 요구 사항 • 메모리 관리 하드웨어는 페이징 또는 세그먼트 기법을 지원하여야 한다 • 운영체제 요구 사항 • 운영체제는 주기억장치와 보조기억장치 사이에 페이지 또는 세그먼트를 이동하는 것을 관리 하여야 한다 Operating System

  17. 가상 기억장치의 하드웨어 구현 • 가상 기억장치의 하드웨어 구현 기법 • 페이징 기법(Paging) • 세그먼트 기법(Segmentation) • 페이징 & 세그먼트 결합 기법(Paged Segmentation) Operating System

  18. 가상 기억장치의 페이징 기법(1) • 각각의 페이지 테이블 항목은 다음과 같이 구성된다 • Present Bit • Modified Bit • Other Control Bits • Frame Number • 페이징 기법에서는 프로세스 별로 고유의 페이지 테이블이 생성된다 Operating System

  19. 가상 기억장치의 페이징 기법(2) • Present bit • 해당 페이지가 메모리에 존재하는지 여부를 표시한다 • 만약 메모리에 있으면 frame number는 메모리에서 페이지가 배치된 프로임 번호를 저장한다 • 만약 메모리에 없으면 frame number는 디스크에서의 페이지 주소를 저장한단 • Modified bit • 해당 페이지가 메모리에 적재된 이후로 수정되었는지 여부를 표시한다 • 만약 수정되지 않았으면 swapping 할 때에 디스크에 현재 페이지를 쓸 필요가 없다 • Other control bits • 보호(protection) 목적으로 이용 • a read-only/read-write bit • protection level bit: kernel page or user page Operating System

  20. 페이징 시스템에서의 주소 변환 Operating System

  21. 페이지 공유(1) • 다른 사용자 사이에 동일한 프로그램 코드를 공유 한다면 메모리에 단지 하나의 프로그램 코드 복사본 만을 유지할 수 있다 • 공유 코드는 재진입 가능하여야 한다(reentrant) • 2 개 이상의 프로세스가 동일한 프로그램 코드를 수행하여야 한다 • 페이징 시스템에서는 페이지 공유 • 공유 프로그램 코드에 대하여 메모리에 하나의 복사본만 둔다 • 공유 프로세스의 페이지 테이블 항목은 동일한 프레임을 가리키도록 프레임 번호를 저장한다 • 각 프로세스가 필요로 하는 데이터에 대해서는 프로세스별로 개별적인 데이터 페이지를 유지하여야 한다 Operating System

  22. 페이지 공유(2): a text editor Operating System

  23. TLB(Translation Lookaside Buffer) • 페이지 테이블이 메모리에 있기 때문에 각각의 가상 기억장치에 대한 접근은 두 번의 물리적인 기억장치 접근을 요구한다 • 페이지 테이블 항목에 대한 접근 • 데이터에 대한 접근 • 메모리 접근 지연이 발생한다 • TLB: Translation Lookaside Buffer • 페이지 테이블 접근에 따른 지연 문제를 해결하기 위한 cache memory • 가장 최근 사용된 페이지 테이블 항목을 유지한다 • 주기억장치의 cache memory와 유사하게 동작 Operating System

  24. Translation Lookaside Buffer 사용 Operating System

  25. Operating System

  26. TLB - 부연 설명 • Associative mapping hardware를 사용 • 페이지 번호에 맞는 항목을 찾기 위해 동시에 모든 TLB 항목을 검색한다 • 새로운 프로세스가 실행 상태가 될 때마다 TBL은 초기화한다 • CPU는 각각의 가상 기억장치 참조에 대해 두 단계의 cache를 사용한다 • 첫번째- 논리적 주소를 물리적 주소로 변환하기 위해 TLB을 사용 • 두번째- 물리적 주소를 이용하여 데이터를 접근할 때에 주기억장치 cache memory를 사용 Operating System

  27. Operating System

  28. Operating System

  29. 페이징 시스템의 문제점 • 대부분의 컴퓨터 시스템은 매우 큰 가상 주소 공간을 지원한다 • 논리적 주소를 위해 32~ 64 bits 주소를 사용 • 만약 32 bit 논리적 주소와 4KB의 페이지크기를 사용 한다면 하나의 페이지 테이블은 2^{20} 항목을 가질 수 있다 • 전체 페이지 테이블은 너무 많은 메모리를 사용한다 • 페이지 테이블도 가상 기억장치를 사용하여야 한다 • 프로세스가 실행 상태가 되면 현재 실행중인 페이지를 포함하여 페이지 테이블의 일부 항목만 메모리에 유지된다 Operating System

  30. 다단계 페이지 테이블 (Multilevel Page Tables) (1) • 일반적으로 페이지 테이블은 여러 개의 페이지에 저장된다 • 페이지 테이블을 다단계계층 구조로 구성하면 접근이 용이하다 • 다단계 페이지 테이블 • When 2 levels are used (ex: 386, Pentium), the page number is split into two numbers p1 and p2 • p1 indexes the outer page table (directory) in main memory who’s entries points to a page containing page table entries which is itself indexed by p2. Page tables, other than the directory, are swapped in and out as needed Operating System

  31. 다단계 페이지 테이블 (Multilevel Page Tables) (2) Operating System

  32. 다단계 페이지 테이블 (Multilevel Page Tables) (3) Operating System

  33. 역 페이지 테이블 (Inverted Page Table) (1) • Inverted Page Table (IPT) • 큰 용량의 페이지 테이블 문제를 해결하기 위해 제시 • 전체 시스템을 위해 단지 하나의 IPT을 유지한다 • IPT의 각 항목은 물리적 메모리의 한 프레임에 대한 정보를 저장한다 • IPT 항목은 프레임에 배치된 논리적 페이지에 대한 정보를 유지한다 • IPT는 전체 프레임 개수만큼의 항목을 가진다 • 논리적 주소를 물리적 주소를 변환할 때 논리적 주소를 가진 IPT 항목을 찾으면 그 항목의 인덱스가 물리적 프레임 번호가 된다 • 페이지 테이블 검색과는 역으로 검색한다 Operating System

  34. 역 페이지 테이블 (Inverted Page Table) (2) • The process ID with the virtual page number could be used to search the IPT to obtain the frame # • For better performance, hashing is used to obtain a hash table entry which points to a IPT entry Operating System

  35. Operating System

  36. 페이지 크기 문제 (1) • 페이지 크기는 하드웨어에 의해 정의된다 • 페이지 크기를 2의 승수로 하면 논리적 주소를 물리적 주소로 효율적으로 변환할 수 있다 • 정확하게 페이지 크기를 결정하는 것은 어렵다 • 작은 페이지 크기를 사용하면 • 내부 단편화를 줄일 수 있으나, • 전체페이지 수가 늘어나 페이지 테이블이 커진다 • 큰 페이지 크기를 사용하면 • 페이지 테이블 크기가 작아진다 • 디스크의 블록 단위 데이터 입출력에 적합 • TBL hit ratio을 높일 수 있다 • 내부 단편화가 커질 수 있다 • 큰 페이지 크기가 효율적 Operating System

  37. 페이지 크기 문제 (2) Operating System

  38. 페이지 크기 문제 (3) • 일반적으로 1KB에서 4KB 사이의 페이지 크기를 사용한다 • 최근 몇몇 프로세서는 다중 페이지 크기를 지원한다 • Pentium supports 2 sizes: 4KB or 4MB • R4000 supports 7 sizes: 4KB to 16MB Operating System

  39. 페이지 크기 문제 (4) Operating System

  40. 가상 기억장치의 세그먼트 기법 • 세그먼트 기법에서 각 프로세스 자신의 세그먼트 테이블을 가진다 • 세그먼트 테이블의 각 항목은 다음과 같이 구성된다 • Present Bit • Modified Bit • Other Control Bits • Segment Base • Length Operating System

  41. 세그먼트 기법의 주소 변환 Operating System

  42. 세그먼트 기법 - 부연 설명 • 각 세그먼트 테이블 항목은 세그먼트의 시작 주소와 길이를 저장한다 • 세그먼트는 필요에 따라 동적으로 변할 수 있다 • 접근 주소의 정상 여부는 길이 필드를 이용하여 쉽게 검사할 수 있다 • 동적 길이의 세그먼트는 외부 단편화를 야기하고 swapping 작업을 더욱 어렵게 한다 • 세그먼트 단계에서의 보호 및 공유 기능은 자연스럽게 제공할 수 있다 • 세그먼트는 프로그래머가 볼 수 있다 • 프로그램의 논리적 모듈 구조를 세그먼트로 쉽게 구현할 수 있다 Operating System

  43. 세그먼트 공유 (1) • 동일한 프로그램 코드를 실행시키는 프로세스는 프로그램 코드를 공유할 수 있다 • 2 개의 다른 프로세스의 세그먼트 테이블 항목에 동일한 물리적 위치를 저장함으로써 세그먼트를 공유할 수 있다 • 예: 다수의 사용자가 텍스트 편집기의 코드를 공유할 수 있다 • 텍스트 편집기 코드는 단지 하나의 복사본만이 메모리에 유지된다 • 각 사용자는 필요에 따라 개별적인 데이터 세그먼트를 유지하여야 한다 Operating System

  44. 세그먼트 공유 (2) Operating System

  45. 페이징과 세그먼트 기법의 결합(1) • 페이지화된 세그먼테이션(Paged Segmentation) • 페이징 기법과 세그먼트 기법의 장점을 결합하기 위하여 몇몇 프로세서와 운영체제는 세그먼트를 페이지 단위로 분할한다 • 각각의 프로세스는 다음과 같은 배치 테이블을 가진다 • 하나의 세그먼트 테이블 • 여러 개의 페이지 테이블: 세그먼트 별로 하나의 페이지 테이블 Operating System

  46. 페이징과 세그먼트 기법의 결합(2) • 가상 주소의 구성 • segment number: • 세그먼트 테이블에서의 인덱스 • 세그먼트 테이블 항목은 세그먼트를 위한 페이지 테이블의 시작 주소를 저장한다 • page number: 프레임 번호를 찾아오기 위한 페이지 테이블의 인덱스 • offset: 프레임 내에서의 위치 Operating System

  47. 페이지화된 세그먼테이션의 주소 변환 Operating System

  48. Operating System

  49. 운영 제체의 메모리 관리 SW (1) • 메모리 관리 소프트웨어는 하드웨어의 구성에 따라 기능이 결정된다 • 페이징 • 세그먼테이션 • 페이지화된 세그먼테이션 • 순수한 세그먼테이션 시스템은 드물다 • 일반적으로 세그먼트는 페이지로 분할된다 • 메모리 관리 소프트웨어는 세그먼트의 페이지를 관리하여야 한다 • 좋은 성능을 얻기 위해서는 낮은 페이지 부재율을 유지하여야 한다 Operating System

  50. 운영 제체의 메모리 관리 SW (2) Operating System

More Related