책/혼공컴운

[혼공컴운] 6주차 - Chapter 14 ~ 15

jylee3 2025. 2. 27. 20:05

Chapter 14. 가상 메모리

14-1. 연속 메모리 할당

: 프로세스에 연속적인 메모리 공간을 할당하는 방식

스와핑

: 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치의 스왑 영역으로 내보내고(Swap-out), 실행할 프로세스를 메모리로 들여보내는(Swap-in) 메모리 관리 기법.

메모리 할당

  • 최초 적합(first fit) : 최초로 발견할 적재 가능한 빈 공간에 프로세스를 적재하는 방식 (검색을 최소화 하고, 빠른 할당이 가능
  • 최적 적합(best fit)
  • : 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치.
  • 최악 적합(worst fit)
  • : 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치

외부 단편화 (external fragmentation)

: 프로세스를 할당하기 어려울 만큼 작은 공간으로 인해 메모리가 낭비되는 현상

14-2. 페이징을 통한 가상 메모리 관리

  • 가상 메모리 (virtual memory) : 실행하고자 하는 프로그램의 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술

페이징

: 물리 주소 공간을 프레임 단위로 자르고 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤, 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법

페이지 테이블

: 페이지 번호와 프레임 번호 뿐만 아니라, 유효 비트, 보호 비트, 접근 비트, 수정 비트 등이 들어있는 테이블

  • 페이지 테이블 베이스 레지스터 (PTBR) : CPU 내에 각 프로세스의 페이지 테이블이 적재된 주소를 가리키는 레지스터
  • TLB (Translation Lookaside Buffer): 페이지 테이블의 캐시 메모리 역할을 수행, MMU 내에 위치
  • 유효 주소 : 해당 페이지에 접근 가능한지 여부를 알려주는 비트
  • 보호 비트 : 페이지의 읽기, 쓰기, 실행 가능 여부를 체크하는 비트
  • 참조 비트 : 페이지에 접근한 적이 있는지 여부를 나타내는 비트
  • 수정 비트( = 더티 비트) : 데이터를 쓴 적이 있는지 없는지 수정 여부를 알려주는 비트

페이지 폴트 (Page fault)

: 메모리에 적재되지 않은 페이지를 참조할 경우 발생하는 인터럽트

14-3. 페이지 교체와 프레임 할당

요구 페이징

: 페이지가 필요할 때에만(유효비트가 0인 페이지에 접근할 때) 메모리에 적재하는 기법

페이지 교체 알고리즘

: 사용되지 않은 페이지를 보조기억장치로 내보내고 적재될 페이지를 메모리에 적재하는 알고리즘

  • FIFO : 메모리에 가장 먼저 올라온 페이지부터 내쫓는 방식
  • 최적 페이지 교체 알고리즘(Optiaml Page replacement) : 앞으로 사용빈도가 가장 낮은 페이지를 교체하는 알고리즘, 페이지 폴트 발생 빈도가 가장 낮은 알고리즘
  • LRU : 가장 오랫동안 사용되지 않은 페이지를 교체하는 알고리즘

스레싱(Thrashing)

: 지나치게 빈번한 페이지 교체로 인해 CPU 이용률이 낮아지는 문제

프레임 할당

: 프로세스에게 적절한 프레임을 할당하는 방법

  • 정적 할당 방식
    • 균등 할당 : 모든 프로세스에 균등하게 프레임을 제공하는 방식
    • 비례 할당 : 프로세스의 크기에 비례해 프레임을 할당하는 방식
  • 동적 할당 방식
    • 작업 집합 모델 기반 프레임 할당
    • : 실행 중인 프로세스가 일정 시간동안 참조한 페이지의 집합을 작업 집합 모델이라 한다. 이때 작업 집합의 크기만큼 프레임을 할당해 주는 방식
    • 페이지 폴트율 기반 프레임 할당 : 페이지 폴트율의 상한선과 하한선을 정하고, 이 범위 안에서만 프레임을 할당하는 방식

Chapter 15. 파일 시스템

15-1. 파일과 디렉터리

  • 파일 : 의미 있고 관련 있는 정보를 모은 논리적 단위
  • 파일 속성 : 파일과 관련된 다양한 부가 정보 ex) 파일 유형, 크기, 생성 날짜, 마지막 접근 / 수정 날짜 등
  • 디렉터리 : 파일 또는 디렉터리들은 한데 묶어 관리할 수 있다.
    • 1단계 디렉터리 : 옛날 운영체제에서 존재하였단 하나의 디렉터리만 존재하는 구조
    • 트리 구조 디렉터리 : 최상위 디렉터리가 있고, 그 아래에 여러 서브 디렉터리가 있는 구조
  • 경로
    • 절대 경로 : 루트 디렉터리부터 시작하는 경로
    • 상대 경로 : 현재 디렉터리부터 시작하는 경로

15-2. 파일 시스템

: 학습한 파일과 디렉터리를 보조 기억 장치에 저장하고 접근할 수 있게 해주는 운영체제 내부 프로그램

파티셔닝과 포매팅

  • 파티셔닝(partitioning) : 하드디스크나 SSD와 같이 용량이 큰 저장 장치를 하나 이상의 논리적인 단위인 파티션으로 구획하는 작업
  • 포매팅 : 파일 시스템을 결정하는 작업

파일 할당 방법

  • 연속 할당 : 파일을 보조 기억장치에 연속적인 블록으로 할당하는 방식 (외부 단현화를 야기)
  • 불연속 할당
    • 연결 할당 : 각 블록 일부에 다음 블록의 주소를 저장하여 블록들을 연결리스트로 관리
      • 단점
        1. 첫 번째 블록부터 순차적으로 읽어야 함
        2. 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근 불가
    • 색인 할당 : 파일의 모든 블록 주소를 색인 블록에 모아 관리하는 방식

파일 시스템

  • FAT 파일 시스템
    • 파일 할당 테이블(FAT : File Allocation Table) : 각 블록에 포함된 다음 블록의 주소들을 한 데 모아 관리하는 테이블, 파시션 앞부분에 위치
    • FAT를 이용하는 연결할당 기반의 파일 시스템
  • 유닉스 파일 시스템
  • : i-node를 이용하는 색인 할당 기반의 파일 시스템