책/혼공컴운
[혼공컴운] 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와 같이 용량이 큰 저장 장치를 하나 이상의 논리적인 단위인 파티션으로 구획하는 작업
- 포매팅 : 파일 시스템을 결정하는 작업
파일 할당 방법
- 연속 할당 : 파일을 보조 기억장치에 연속적인 블록으로 할당하는 방식 (외부 단현화를 야기)
- 불연속 할당
- 연결 할당 : 각 블록 일부에 다음 블록의 주소를 저장하여 블록들을 연결리스트로 관리
- 단점
- 첫 번째 블록부터 순차적으로 읽어야 함
- 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근 불가
- 단점
- 색인 할당 : 파일의 모든 블록 주소를 색인 블록에 모아 관리하는 방식
- 연결 할당 : 각 블록 일부에 다음 블록의 주소를 저장하여 블록들을 연결리스트로 관리
파일 시스템
- FAT 파일 시스템
- 파일 할당 테이블(FAT : File Allocation Table) : 각 블록에 포함된 다음 블록의 주소들을 한 데 모아 관리하는 테이블, 파시션 앞부분에 위치
- FAT를 이용하는 연결할당 기반의 파일 시스템
- 유닉스 파일 시스템
- : i-node를 이용하는 색인 할당 기반의 파일 시스템