[혼공컴운_6주]chapter14 가상 메모리

study_record·2024년 2월 1일
0

혼공컴운

목록 보기
15/17

연속 메모리 할당

  • 메모리내 프로세스를 연속적으로 할당하는 방식

스와핑

  • 스와핑(swapping) : 메모리에 적재된 프로세스가 사용되지 않을때 보조기억장치영역으로 내보내고 생긴 메모리공간에 다른프로세스를 적재하여 실행하는 방식
  • 스왑영역(swap space) : 프로세스를 내보내는 보조기억 장치 영역
  • 스왑아웃(swap-out) : 현재 실행되지 않는 프로세스가 메모리에서 스왑영역으로 옮겨지는 것
  • 스왑인(swap-in) : 스왑영역에 있던 프로세스가 다시 메모리로 옯겨지는 것(물리 주소는 바뀔수 있음)
  • 스와핑을 이용하면 실제 메모리 공간 보다 프로세스가 요구하는 메모리 공간이 큰 경우에도 프로세스들을 동시에 실행 할수 있다

메모리 할당

  • 메모리 빈공간이 여러개 있을때 할당하는 방법
    1. 최초 적합
    2. 최적 적힙
    3. 최악 적합
  1. 최초 적합(first fit)
    • 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다가 적재가능한 공간을 발견하면 바로 배치하는 방법
    • 검색을 최소한으로 할 수있어서 빠른 적재가 가능함
  2. 최적 적합(best fit)
    • 운영체제가 빈공간을 모두 검색해본 후 프로세스가 적재될수 있는 가장 작은 공간에 배치하는 방법
  3. 최악 적합(worst fit)
    • 운영체제가 빈공간을 모두 검색해본 후 프로세스가 적재될수 있는 공간중 가장 큰 공간에 배치하는 방법

외부단편화(extranal Fragmentation)

  • 연속적 메모리 할당 환경에서 메모리 사이에 작은 공간이 생김
  • 빈 공간은 하난의 프로세스를 할당하기 어려울 만큼 작아서 메모리가 낭비되는 현상을 외부단편화라고 함

압축(compacting)

  • 외부단편화를 해결하는 방법
  • 메모리내에 흩어져있는 프로세스를 재배치 시켜서 작은 공간을 큰 공간으로 만드는 과정
  • 단점
    • 압축하는 동안 시스템이 하는일이 중지됨
    • 오버해드 야기(메모리내용을 옯기기 떄문에)
    • 어떤 프로세스를 옮겨야하는지 명확한 방법을 정하기 어려움

가상메모리

  • 가상메모리 : 실행하고자하는 프로그램의 일부만 메모리에 적재해서 실제 물리 메모리크기보다 더 큰 프로세스를 실행할수 있는 기술
  • 가장메모리 관리기법
    • 페이징 : 현재 대부분 운영체제가 사용하는 기법
    • 세그멘테이션

페이징

  • 프로세스의 논리 주소공간을 페이지 단위로 자르고 메모리공간을 같은 페이지 단위로 나눠서 페이지를 프레임에 할당하는 방법
  • 페이지(page) : 프로세스를 자르는 일정 단위
  • 프레임(frame): 메모리 물리 주소공간을 같은 페이지 단위로 나눈 것
  • 페이징 시스템에서 스와핑을 사용할 수 있음
    • 페이지 단위로 페이지아웃, 페이지인 된다
    • 하나의 프로세스를 실행하는데 전체 프로세스가 메모리에 적재되지 않아도 되기 때문에 스와핑을 사용할 수 있음

페이지 테이블

  • 프로세스가 불연속적으로 배치 되어있으면 CPU가 다음에 실행할 명령어 위치를 찾기 어려워짐
  • 페이지 테이블(page table) :
    • 현재 어떤 페이지가 어떤 프레임에 할당되었는지 알려주는 표
    • 프로세스가 물리주소는 불연속 배치일때 논리주소는 연속적으로 배치되도록 이용하는 것
    • 메모리에 적재되어 있음
  • 페이지 테이블 베이스 레지스터(PTBR:Page Table Base Register) : 프로세스의 페이지 테이블이 적재된 주소를 가지고 있음

TBL(Translation Lookside Buffer)

  • CPU가 메모리에 두번접근(페이지 테이블, 프레임)하는 문제를 해결하기 위해 TBL을 사용함
  • 페이지 테이블 캐시메모리 역할을 하며 일부 내용을 저장함
  • 최근에 사용된 페이지 위주로 가져와 저장함
  • TBL히트(TBL hit) : CPU가 발생한 논리주소에 대한 페이지 번호가 TBL에 있는 경우. 메모리 접근은 한번만 하면 됨
  • TBL미스(TBL miss) : CPU가 발생한 논리주소에 대한 페이지 번호가 TBL에 없는 경우.

내부단편화

  • 페이징이 내부단편화 문제를 발생할수 있음
  • 프로세스가 모두 페이지단위로 자를수 없어서 생기는 메모리 낭비현상
  • 내부단편화를 발생하지 않고 너무 크기않은 페이지 크기를 정하는것이 중요함

페이징의 주소변환

  • 페이징 시스템에서는 논리주소가 페이지번호와 변위로 이루어져 있음
  • 페이지번호 : 접근하려는 페이지 번호
  • 변위 : 접근하려는 주소가 프레임의 시작에서 얼마나 떨어져 있는지에 대한 정보
  • 논리주소/페이지번호/변위 → 물리주소/프레임번호/변위

페이지 테이블 엔트리(PTE : Page Table Entry)

  • 페이지테이블의 행의 의미함
  • 페이지테이블의 유효한 정보
    1. 유효비트
    2. 보호비트
    3. 참조비트
    4. 수정비트
  1. 유효비트(vaild bit)
    • 현재 해당 페이지에 접근이 가능한지 알 수 있음
    • 현재 페이지가 메모리에 적재되어 있는지 보조기억장치에 적재되어있는지 알려줌
    • 1이면 메모리에 적재되어있음. 0이면 메모리에 없음
    • 페이지 폴트(page fault) : 유효비트가 0일때 페이지에 접근하기 위해서 발생시키는 예외
  2. 보호비트(protection bit)
    • 보호비트를 통해서 페이지가 읽기쓰기가가 가능한가, 읽기만 가능한가 알 수 있음
    • 1이면 읽고쓰기가 가능. 0이면 읽기만 가능
    • 3개 분류로 구현가능
      • 읽기 r(Read), 쓰기 w(Write), 실행 x(eXecute)
      • 1이면 가능 0이면 불가능
  3. 참조비트(reference bit)
    • CPU가 페이지에 접근한적이 있는지 알려 줌
    • 1이면 CPU가 읽거나 쓴 페이지. 0이면 읽고 쓴적이 없는 페이지
  4. 수정비트(modified bit)
    • 해당 페이지에 데이터를 쓴적이 있는지 없는지 수정여부를 알려줌
    • 1이면 수정된적이 있는 페이지. 0이면 수정된적없는 페이지
    • 페이지가 메모리에서 사라질때 보조기억장치에 쓰기작업이 필요가 있는지 없는지 판단하기 위해 필요함

페이징 이점

  • 페이징을 사용하면 프로세스간에 페이지를 공유할 수 있다
  • 쓰기 시 복사(Copy on Write)
    • 부모프로세스와 같은 자식프로세스를 생성하고 둘 중 하나가 페이지에 쓰기 작업을 하는 순간 페이지 복사본이 생성됨

계층적 페이지

  • 프로세스를 이루는 모든 페이지 테이블 엔트리를 항상 메모리에 유지 하지 않는 방법
  • 페이지 테이블을 여러개로 나누고 outer 테이블(나눠진 테이블을 가리키는 테이블)두는 방식
  • 논리주소의 형태
    • 바깥 페이지 번호
    • 안쪽 페이지 번호
    • 변위
  • 바깥 페이지 번호를 통해서 페이지 테이블의 페이지 찾기
    → 페이지 테이블의 페이지를 통해서 프레임번호를 찾기
    → 변위로 찾기
    → 물리주소 얻기

요구페이징

  • 요구페이징 : 프로세스를 메모리에 적재할때 모든 페이지를 적재하지 않고 필요한 페이지만 적재하는 기법
  • 페이지교체와 프레임할당을 사용해서 요구페이징을 수행함

페이지교체 알고리즘

  • 메모리에서 당장 필요하지 않는 페이지를 내보낼때 어떤 페이지를 교체할지 결정하는 알고리즘
  • 페이지폴트 횟수
    • 페이지 폴트 횟수는 페이지 참조열로 알 수 있음
    • 페이지 폴트 횟수가 적은것이 좋은 페이지교체 알고리즘
  • 페이지교체 알고리즘 종류
    1. FIFO 페이지교체 알고리즘
    2. 최적 페이지교체 알고리즘
    3. LRU 페이지교체 알고리즘

1.FIFO(first-in frist-out) 페이지교체 알고리즘

  • 메모리에 가장 먼저 알로아노 페이지부터 내보냄
  • 초기에 적재된 페이지는 계속 사용될수도 있기때문에 처음 들어왔다고 내보내는것이 항상 맞지는 않

2.최적 페이지교체 알고리즘

  • CPU에의해 참조되는 횟수를 고려하는 페이지교체 알고리즘
  • 앞으로 사용빈도가 가장 낮은 페이지를 교체한다
  • 폴트 발생 빈도가 낮은 알고리즘
  • 앞으로 오랫동안 사용하지 않을 페이지를 예측하기 힘들어서 구현이 어려움 → 다른 페이지교체 알고리즘을 평가할때 사용됨

3.LRU 페이지교체 알고리즘

  • 오랫동안 사용하지 않은 페이지를 교체하는 알고리즘
  • 최근사용하지 않은 페이지는 앞으로도 사용되지 않을것이라고 생각하고 만든 알고리즘

멀티프로그래밍 정도

스래싱

  • 페이지 폴트가 발생하는 이유
    • 페이지를 교체할 때
    • 프로세스가 사용할수 있는 프레임이 적을 때
  • 스래싱(thrashing) : 프로세스가 실행되는 시간보다 페이징에 시간을 더 많이 사용해서 성능이 저해되는 문제를 의미함
  • 스래싱 발생 원인은 각 프로세스가 필요로 하는 최소한의 프레임수가 보장되지 않음 → 적절한 프레임할당이 중요함

프레임 할당 방식

  • 균등 할당 방식
    • 프로세스의 크기가 다른데 모두 같은 수의 프레임을 할당하는것을 비효율적인 방법
  • 비례 할당 방식
    • 프로세스 크기가 크면 프레임을 더 많이 할당하는 방법
  • 작업 집합 모델
    • 작업집합(working set) : 실행중인 프로세스가 일정 시간동안 참조한 페이지의 집합
    • 일정 시간동안 참조한 페이지수 만큼 프레임을 할당함
  • 페이지 폴트 빈도(PFF:Page-Fault Frequency)
    • 가정
      • 페이지폴트율이 높으면 프로세스는 적은 프레임을 가지고있다
      • 페이지폴트율이 낮으면 프로세스는 많은 프레임을 가지고있다
    • 페이지 폴트율의 상한선과 하한선을 정하고 그 범위 안에서 프레임을 할당하는 방법

📚마무리문제

P.400-401

1번 메모리 할당방식에 대한 올바은 것을 찾아쓰기📌기본미션
(1)최초 적합 (2)최악 적합 (3)최적 적합

  • (1)최초로발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식
  • (2)프로세스가 적재될수 있는 가장 큰 공간에 프로세스를 배치하는 방식
  • (3)프로세스가 적재될수 있는 가장 작은 공간에 프로세스를 배치하는 방식

2번 외부단편화에대한 설명으로 틀린것은? (4)번
1) 외부단편화가 발생하면 메모리가 낭비된다
2) 가상메모리 기법중 페이징을 사용하면 외부단편화를 해결할 수 있다
3) 메모리 압축을 통해 외부 단편화를 해결할 수 있다
4) 외부 단편화가 발생한 공간에 모든 프로세스를 배채할 수 있다

3번 메모리 스와핑에 대한 설명으로 옳은것은? (4)번
1) 메모리에서 보조기억장치로 프로세스를 내쫓는것을 스왑인이라고 한다
2) 보조기억장치에서 메모리로 프로세스를 적재하는것을 스왑아웃이라고 한다
3) CPU를 관리하는 기법인다
4) 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리에 적재하는 방식

4번 연속메모리할당에 대한 설명으로 틀린것은? (1)번
1) 외부단편화가 발생하지 않는다
2) 프로세스를 메모리에 연속적으로 할당하는 방법이다
3) 메모리 스와핑을 이용할수 있다
4) 최초적합, 최적적합, 최악적합 방식으로 프로세스를 적재할수 있다

P.422-423

1번 페이징에 대한 설명중 틀린것은? (4)번
1) 페이징은 가상 메모리 관리 기법이다
2) 페이징을 이용하면 물리 메모리보다 큰 프로세스도 실행할수 있다
3) PTBR은 각 프로세스가 적재된 페이지 테이블을 가리킨다
4) TLB히트가 발생하면 CPU는 메모리에 두번 접근해야 한다

2번 그림에 대한 설명중 틀린것을 골라라 (3)번

1) 2번 페이지는 수정된 적이 있다
2) 2번 페이지는 CPU가 읽고 쓰고 실행할수 있다
3) 2번 페이지는 메모리에 적재되어 있지 않다
4) 2번 페이지는 CPU에의해 참조된 적이 없다

3번 페이지 테이블과 관련한 설명중 틀린것을 골라라 (2)번
1) 프로세스마다 페이지 테이블을 가지고 있다
2) 페이지테이블을 사용하는 컴퓨터는 페이징 기법을 사용하지 못한다
3) PTBR은 각 프로세스의 페이지 테이블을 가리킨다
4) 페이지테이블은 특정 페이지가 어떠한 프레임에 적재되어있는지 알려준다

4번 TLB와 관련한 설명으로 옳은것을 골라라 (1)번
1) 페이지 테이블의 캐시 메모리이다
2) TLB히트가 일어나면 메모리를 두번 참조해야 한다 한번만
3) TLB미스가 일어나면 메모리를 한번만 참조해도 된다 두번만
4) TLB는 입출력장치의 일종이다

P. 437

1번 프로세스가 사용할수 있는 프레임 3개, 페이지 참조열을 아래와 같을때 LRU페이지 교체 알고리즘으로 아래 페이지를 참조한다면 몇번의 페이지 폴트가 발생하는가? 3번 📌선택 미션

2번 프레임 할당의 설명으로 틀린것은? (4)번
1) 균등 할당은 모든 프로세스에 동일한 프레임을 배분하능 방법이다
2) 비례 할당은 프로세스 크기의 따라 프레임을 배분하는 방법이다
3) 작업 집합 모델 기반 프레임할당은 작업집합의 크기만큼만 프레임을 할당하는 방식이다
4) 페이지폴트 기반 프레임 할당은 페이지 폴트의 상한선과 무관하게 프레임을 할당하는 방식이다

0개의 댓글