공부/컴퓨터구조, 운영체제

14장 가상 메모리

bereben 2023. 4. 10. 20:37
  • 연속 메모리 할당

    • 스와핑

      • 메모리 상 빈 공간에 또 다른 프로세스를 적제하여 실행하는 방식
      • 스왑 영역 : 프로세스들이 쫓겨나는 보조기억장치의 일우 영역
      • 스왑 아웃 : 현재 실행되지 않은 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
      • 스왑 인 : 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨지는 것
      • 메모리 할당

        • 최초 적합

          • 운영체제가 메모리 내 빈 공간을 순서대로 검색하다가 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방법
          • 최적 적합

            • 운영체제가 빈 공간을 모두 검색한 후, 프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 프로세스를 배치하는 방법
          • 최악 적합

            • 운영체제가 빈 공간을 모두 검색한 후, 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스를 배치하는 방법
      • 외부 단편화

        • 프로세스들이 메모리를 사용하다가 사용이 끝나면 빈 공간들이 생기는데 그 빈 공간이 새롭게 사용할 프로세스 공간보다 작아 메모리 낭비하는 상태
        • 해결 방법
          • 메모리 압축
            • 빈 공간들을 하나로 모으는 방법
            • 하나로 모으는 동안 시스템은 작업을 중지해야 한다.
  • 페이징

    • 프로세스의 논리 주소 공간을 페이지라는 일정 단위로 잘라 메모리 물리 주소 공간을 프레임이라는 페이지와 동일한 크기의 일정한 단위로 자른 뒤 페이지를 프레임에 할당하는 가장 메모리 관리 기법

    • 페이징 시스템에서 스왑 아웃은 페이지 아웃, 스왑 인은 페이지 인이라고 부른다.

      • 페이지 테이블

        • 페이지 번호와 프레임 번호를 짝지어 주는 표
      • 내부 단편화

        • 하나의 페이지 크기보다 작은 크기가 발생해 메모리 낭비하는 상태
      • 페이지 테이블 베이스 레지스터(PTBR)

        • 각 프로세스의 페이지 테이블이 적재된 주소를 가짐
      • TLB

        • 메모리 접근 시간이 늘어난 문제 해결 위해 만듬
        • MMU안에 TLB 캐시 메모리공간을 둚
        • 페이지 테이블의 일부 내용을 저장
        • 캐시 메모리이기에 최곤 사용된 페이지 위주로 가져와 저장
      • 페이징에서의 주소 변환

        • 특정 주소에 접근하려면 두개 정보가 필요함
        • 어떤 페이지 혹은 프레임에 접근하고 싶은지
        • 접근하려는 주소가 그 페이지 혹은 프레임으로부터 얼마나 떨어져 있는지
      • 페이지 테이블 엔트리

        • 페이지 테이블의 각각의 행

          • 유효 비트

            • 현재 해당 페이지에 접근 가능한지 여부를 알려 줌

            • 페이지가 메모리에 적재되어 있으면 1, 아니면 0

            • 페이지 폴트

              • 유효 비트가 0인 페이지로 접근할 때 발생
              • 처리 과정
                1. CPU는 기존 작업 내역 백업
                2. 페이지 폴트 처리 루틴 실행
                3. 페이지 처리 루틴은 원하는 페이지를 메모리로 가져온 뒤 유효 비트를 1로 변경
                4. 페이지 폴트를 처리 했다면 이제 CPU는 해당 페이지에 접근 가능
          • 보호 비트

            • 페이지 보호 기능을 위해 존재하는 비트
            • 해당 페이지가 읽고 쓰기가 가능한 페이지인지 식별
            • 읽기만 가능하면 0 읽기와 쓰기가 모두 가능하면 1
            • 세 개의 비트를 사용하면 rwx로 권한 조합을 나타낼 수 있다.
          • 참조 비트

            • CPU가 이 페이지에 접근한 적이 있는지 여부를 나타냄
            • 적재 후 읽거나 쓴 페이지는 1, 아니면 0으로 유지
          • 수정 비트(더티 비트)

            • 해당 페이지에 데이터를 쓴적이 있는지 없는지 수정 여부을 알려줌
            • 1이면 변경된적 있는 페이지, 0이면 읽기만 했거나 변경된 적없는 페이지
  • 페이지 교체

    • 요구 페이징

      • 프로세스를 메모리에 적재할 때 필요한 메모리에 적재하는 기법
      • 과정
        1. CPU가 특정 페이지에 접근하려는 명령어 실행
        2. 해당 페이지가 현재 메모리에 있을 경우 CPU는 페이지가 적재된 프레임에 접근
        3. 해당 페이지가 현재 메모리에 없을 경우 페이지 폴트 발생
        4. 페이지 폴트 처리 루틴은 해당 페이지를 메모리로 적재하고 유효 비트를 1로 설정
        5. 다시 1번 수행
      • 순수 요구 페이징

        • 페이지 폴트를 강제로 발생시켜 실행에 필요한 페이지가 어느 정도 적재시키는 기법
    • 페이지 교체 알고리즘

      • FIFO 페이지 교체 알고리즘

        • 먼저 메모리에 적재된 페이지를 교체하는 알고리즘
        • 2차 기회 페이지 교체 알고리즘

          • 참조 비트가 1일 경우 당장 교체하지 않고 참조 비트를 0으로 만든 후 현재 시간을 적재 시간으로 설정
        • 최적 페이지 교체 알고리즘

          • CPU에 의해 참조되는 횟수를 교려하는 알고리즘
        • LRU 페이지 교체 알고리즘

          • 가장 오랫동안 사용되지 않을 페이지를 교체하는 알고리즘
          • 페이지마다 마지막으로 사용한 시간을 토대로 최근에 가장 사용이 적었던 페이지를 교체
    • 페이지 폴트가 자주 발생하는 이유

      • 프로세스가 사용할 수 있는 프로세스 수가 적으면 발생
      • 프로세스가 실제 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 성능이 저해되는 문제를 스래싱이라 함
      • 프레임 할당 방식

        • 균등 할당

          • 모든 프로세스를 균등하게 프레임을 제공하는 방식
          • 비례 할당

            • 프로세스의 크기에 비례하여 프레임을 할당하는 방식
      • 배분할 프레임을 결정하는 방식

        • 작업 집합 모델

          • 프로세스가 일정 기간 동안 참조한 페이지 집합을 기억하여 빈번한 페이지 교체를 방지
          • 페이지 폴트 빈도

            • 페이지 폴드율에 상한선과 하한선을 정하고 이 범위 안에서만 프레임을 할당하는 방식

참고) 혼자 공부하는 컴퓨터 구조+운영체제

'공부 > 컴퓨터구조, 운영체제' 카테고리의 다른 글

15장 파일 시스템  (0) 2023.04.10
13장 교착상태  (0) 2023.04.10
12장 프로세스 동기화  (0) 2023.04.10
11장 CPU 스케줄링  (0) 2023.04.10
10장 프로세스와 스레드  (0) 2023.03.30