| English | 의미 |
|---|---|
| pages/ˈpeɪdʒɪz/ | 페이지 |
| paging/ˈpeɪdʒɪŋ/ | 페이지링 |
| segmentation/ˌseɡmənˈteɪʃn/ | 세그멘테이션 |
| virtual address space/ˈvɜːtʃuːəl əˈdres speɪs/ | 가상 주소 공간 |
| frames/freɪmz/ | 프레임 |
| page table/peɪdʒ ˈteɪbl/ | 페이지 테이블 |
| page fault/peɪdʒ fɒlt/ | 페이지 폴트 |
| swap file/swɒp faɪl/ | 스왑 파일 |
| thrashing/ˈθræʃɪŋ/ | 트래ッシング |
기계가 포기했음을 나타내는 디스크 라이트
- 메모리가 부족한 컴퓨터에서 너무 많은 애플리케이션을 열면 특이한 현상이 발생합니다. 시스템 전체가 거의 멈출 정도로 느려지고, 디스크 표시등은 깜박임이 멈추고 켜진 상태로 유지됩니다.
- 프로세서는 바쁘지 않습니다. 각 프로그램에 필요한 메모리가 디스크에 있어 한 페이지를 가져오면 몇 순간 후에 필요할 다른 페이지가 퇴출되기 때문입니다.
- 이 기계는 페이지를 이동하는 것 외에는 아무것도 하지 않습니다. neither 작업도, nor 충분한 메모리도 갖추어 두 가지 모두를 수행하지 못합니다.
- 이 수업의 주제는 가상 메모리이며, 페이지링과 **분할(Segmentation)**이 이를 어떻게 제공하며, 메모리를 더 크게 보이게 하는 SAME 메커니즘이 어떻게 기계를 쓸모없게 만드는지 설명합니다.
가상 주소 공간
- 각 프로세스는 자체 가상 주소 공간을 얻습니다: 0부터 시작하여 OS가 실제 데이터가 있는 곳으로 매핑하는 깨끗하고 연속적인 주소 범위입니다.
- 세 가지 결과가 따릅니다. 각 프로세스는 **단순한私密空间(사적 공간)**을 볼 뿐이며 다른 processes가 무엇을 실행 중인지 알 필요가 없습니다. 프로세스들은 서로 보호받으며, 하나의 프로세스가 다른 프로세스의 주소 공간 내 주소에 접근할 수 없기 때문입니다. 그리고 사용 중인 총 메모리는 물리적 RAM보다 클 수 있습니다. 일부가 디스크에 존재하기 때문입니다.
- 이러한 격리는 편의성뿐만 아니라 보안 경계이기도 합니다.
가상 메모리의 장점은 다음과 같습니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
가상 메모리는 각 프로세스에게 독립 공간을 제공하며 디스크를 사용하여 작동 집합(working set)이 설치된 RAM을 초과하도록 합니다.
각 프로세스에 가상 주소 공간(virtual address space)을 제공하는 것이 달성하는 목표는 무엇입니까? 모든 해당 항목을 선택하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
가상 메모리는 간소함, 격리성, 용량을 제공합니다. 메모리의 일부가 실제로 디스크에 있으므로 속도가 비용이 듭니다.
페이지링(Paging)
- 가상 공간은 고정 크기 페이지로 나뉘고, 물리적 메모리는 같은 크기의 프레임으로 나뉩니다. 페이지 테이블은 현재 각 페이지가 어떤 프레임에 저장되어 있는지 기록합니다.
- 프로세스가 주소를 사용할 때 하드웨어는 테이블에서 해당 페이지를 검색하여 프레임을 찾습니다. 만약 그 페이지가 RAM에 없다면, 이는 **페이지 결함(Page Fault)**입니다.
- 페이지 결함이 발생하면 OS는 디스크의 스왑 파일에서 페이지를 읽어와 빈 프레임에 저장합니다. 빈 프레임이 없으면 먼저 **퇴출(Evict)**해야 하며, 수정된 경우 디스크에 다시 쓰야 합니다.

표가 연결된 동일한 크기의 페이지와 프레임
페이징(paging)에서 메모리는 다음과 같이 나뉩니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
페이지링은 고정 크기 페이지와 프레임으로 구성되며, 페이지 테이블을 통해 연결됩니다. (가변 크기는 세그멘테이션입니다.)
페이지 faults는 다음 상황에서 발생합니다:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
접근한 페이지가 프레임에 없으므로 OS는 스왑 파일에서 가져옵니다(필요하면 다른 페이지를 추방합니다).
worked example: 페이지 결함 시 일어나는 일
- RAM에 없는 페이지를 포함하는 주소를 프로세스가 접근했습니다. OS가 하는 일을 설명하십시오. [4]
- 하드웨어가 페이지가 존재하지 않음을 감지하고 페이지 결함 인터럽트를 발생시키며, 프로세스는 블록(Blocked) 상태가 됩니다.
- OS는 빈 프레임을 찾습니다.如果没有则选择 một trang để **교체(Replace)**하고, 수정되었으면 스왑 파일에 다시 니다.
- 필요한 페이지를 스왑 파일에서 해당 프레임으로 읽어와 페이지 테이블을 업데이트합니다.
- 프로세스는 준비(Redy) 상태로 복귀하고 명령어가 재시도됩니다. 네 단계, 네 점수이며, 프로세스가 전 과정 동안 블록 상태였다는 점을 유의하십시오.
페이지 faults에 대해 일어나는 일
페이지 faults를 단계별로 살펴보세요. 프로그램이 RAM에 없는 페이지에 접근하면 OS가 디스크에서 조용히 가져와 페이지 테이블을 업데이트합니다—따라서 프로그램은 물리적 존재보다 더 많은 메모리를 볼 수 있습니다.
페이지 faults에 대한 OS의 대응 절차를 순서대로 나열하십시오.
난이도 3/5 · 200 코인 + 오늘 첫 완료 시 소액 보너스
감지 및 대기, 공간 확보, 로드, 기록, 재시도. 페이지 faults는 정상적인 메커니즘이지 오류가 아닙니다.
스래싱(Thrashing)
- 어떤 페이지를 교체할지 선택하는 것이 중요합니다. 잘못된 선택은 해당 페이지가 즉시 다시 필요해짐을 의미합니다.
- 실행 중인 프로세스들의 작업 세트(Working Set)에 필요한 RAM이 부족할 때, 거의 모든 접근이 페이지 결함을 유발하고, 모든 결함이 동시에 다시 필요해지는 페이지를 퇴출시킵니다.
- 시스템은 이제 거의 모든 시간을 명령어를 실행하는 대신 페이지를 스왑하는 데 보냅니다. 이것이 바로 스래싱 또는 디스크 스래싱이며, 이 수업 상단에 기술된 상태입니다.
- 해결책은 더 많은 RAM이나 더 적은 프로세스입니다. 더 빠른 프로세서는 전혀 도움이 되지 않습니다. 왜냐하면 바쁜 것은 프로세서가 아니기 때문입니다.
머신이 거의 멈추듯 느려지고 디스크가 지속적으로 작동합니다. 이를 해결하기 위해 무엇을 해야 합니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
이는 스래싱(thrashing)입니다: 거의 모든 접근이 faults를 일으키고 프로세서가 기다립니다. 프로세서가 바쁜 요소가 아니므로 속도를 높여도 변화가 없습니다.
분할(Segmentation)
- **분할(Segmentation)**은 프로그램의 구조인 코드, 스택, 힙, 대용량 데이터 배열 등 변동적 크기의 논적 세그먼트로 메모리를 나눕니다.
- 세그먼트는 논적 단위이므로 자체 **권한(Permissions)**을 가질 수 있습니다: 코드 세그먼트는 읽기 전용 및 실행 가능일 수 있고, 스택은 읽기-쓰기 및 비실행 가능일 수 있습니다.
- 시험에서 원하는 대비: 페이지는 고정 크기이며 프로그램에게 의미를 가지지 않는 반면, 세그먼트는 변동적 크기로 논적 부분과 대응합니다. 많은 실제 시스템은 두 가지를 결합하여 세그먼트 내에서 페이지링을 사용합니다.

세그먼트는 프로그램의 자체 부분이지, 균등하게 쪼개진 조각이 아닙니다
각 메모리 관리 용어를 그 의미와 매칭하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
페이지링 = 고정 페이지; 세그멘테이션 = 논적 가변 단위; 페이지 faults가 스왑을 트리거함; 과도한 faults = 스래싱.
세그멘테이션은 메모리를 가변 크기의 논리적 단위로 나누어 각기 다른 권한을 부여하는 반면, 페이지링은 고정 크기 페이지를 사용합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
세그먼트는 프로그램의 논적 구조와 일치하지만, 페이지는 균일한 고정 크기 블록입니다 — 일부 시스템은 두 가지를 결합하기도 합니다.
페이지처럼 모두 동일한 크기가 아닌, 세그먼트는 ____ 크기를 가지며 프로그램의 논적 부분과 일치합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
세그먼트는 코드, 스택 또는 힙이므로 자체 권한을 가질 수 있습니다. 페이지는 프로그램에게 의미 없는 물리적 분할입니다.
worked example: 페이지링과 분할 비교
- 페이지링과 분할 사이의 차이점 두 가지를 서술하십시오. [2]
- 페이지는 시스템에 의해 결정되는 고정 크기이고, 세그먼트는 프로그램의 논적 부분에 의해 결정되는 변동적 크기입니다.
- 페이지는 프로그램에게 의미가 없는 순수한 물리적 구분이지만, 세그먼트는 코드나 스택과 같은 논적 단위에 대응하며 자체 접근 권한을 부여받을 수 있습니다.
- 필요할 경우 세 번째 차이: 페이지링은 할당된 마지막 페이지 내부에 사용되지 않은 공간을 남길 수 있으며, 분할은 세그먼트 사이에 사용 불가능한 공백(Gap)을 남길 수 있습니다.
놓칠 수 있는 점
- 가상 메모리는 메모리를 생성하지 않습니다. 일부를 디스크에 유지함으로써 사용 중인 총량이 물리적 RAM을 초과하게 하며, 그 대가로 디스크 접근이 발생합니다.
- 페이지 결함은 오류가 아닙니다. 페이지를 불러오는 정상적인 메커니즘입니다.
- 스래싱은 실행보다 스왑에 더 많은 시간을 보내는 것이며, 해결책은 더 많은 RAM이나 더 적은 프로세스이며 절대 더 빠른 프로세서가 아닙니다.
- 고정 크기 versus 변동적 크기, 논적으로 의미 있음이 페이지링과 분할의 차이입니다. 두 부분 모두 언급하십시오.
이해했습니다
- 가상 주소 공간은 각 프로세스에게 사적인 연속 범위를 제공하며, 프로세스들 간 보호를 보장하고 사용 중인 메모리를 물리적 RAM보다 크게 만들 수 있게 합니다.
- 페이지링: 고정 크기 페이지가 페이지 테이블에 의해 프레임에 매핑됨; 페이지 결함이 발생하면 프로세스가BLOCK되며 OS는 필요 시 페이지를 퇴출하고 스왑 파일에서 로드하며 테이블을 업데이트하고 재시도함
- 스래싱은 실행보다 스왑에 더 많은 시간을 보내는 것; 더 많은 RAM이나 더 적은 프로세스로 해결함
- **분할(segmentation)**은 프로그램의 논리적 부분과 일치하는 변형 크기(variable-sized) 세그먼트를 사용하며, 각 세그먼트는 자체 권한을 가집니다; 많은 시스템에서 세그먼트 내에서 페이지가 분할됩니다