14 가상 메모리
14-1 연속 메모리 할당
- 스와핑은 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리로 들여보내는 메모리 관리 기법입니다.
- 최초 적합 방식은 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식입니다.
- 최적 적합 방식은 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식입니다.
- 최악 적합 방식은 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식입니다.
- 외부 단편화는 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인행 메모리가 낭비되는 현상을 의미합니다.
14-2 페이징을 통한 가상 메모리 관리
- 페이징은 물리 주소 공간을 프레임 단위로 자르고 프로세스의 논리 주소 공간을 페이지 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상메모리 관리 기법입니다.
- 페이지 테이블을 통해 페이지가 적재된 프레임을 찾을 수 있습니다. 페이지 테이블에는 페이지 번호와 프레임 번호뿐 아니라 유효 비트, 보호 비트, 접근 비트, 수정 비트 등이 있습니다.
- PTBR은 각 프로세스의 페이지 테이블이 적재된 주소를 가리킵니다.
- TLB는 페이지 테이블의 캐시 메모리 역할을 수행하기 위해 페이지 테이블의 일부를 저장합니다.
14-3 페이지 교체와 프레임 할당
- 요구 페이징은 페이지가 필요할 때에만 메모리에 적재하는 기법입니다.
- 페이지 교체 알고리즘에는 FIFO, 최적, LRU 페이지 교체 알고리즘 등이 있습니다.
- 스래싱이란 지나치게 빈번한 페이지 교체로 인해 CPU 이용률이 낮아지는 문제를 뜻합니다.
- 프레임 할당방식에는 균등 할당과 비례 할당, 작업 집합 모델 기반과 페이지 폴트율 기반 프레임 할당 방식이 있습니다.
15 파일 시스템
15-1 파일과 디렉터리
- 파일은 의미 있고 관련 있는 정보를 모은 논리적인 단위 입니다.
- 운영체제는 파일의 확장자를 통해 파일의 유형을 파악할 수 있습니다.
- 파일의 속성에는 파일과 관련된 다양한 부가 정보들이 있습니다.
- 디렉터리를 이용하면 여러 개의 파일 또는 디렉터리를 묶어 관리할 수 있습니다.
- 경로는 디렉터리를 이용해 위치를 특정 짓는 정보입니다.
- 절대 경로는 루트 디렉터리부터 시작하는 경로이고, 상대 경로는 현재 디렉터리부터 시작하는 경로입니다.
15-2 파일 시스템
- 파티셔닝은 하드 디스크나 SSD처럼 용량이 큰 저장 장치를 하나 이상의 논리적인 여러 단위로 구획하는 작업을 의미합니다.
- 포매팅이란 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 수 있게 하는 작업을 의미합니다.
- 연속 할당은 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식입니다.
- 연결 할당은 각 블록 일부에 다음 블록의 주소를 저장하여 블록들을 연결 리스트 형태로 관리하는 방식입니다.
- 색인 할당은 파일의 모든 블록 주소를 색인 블록에 모아 관리하는 방식입니다.
- FAT 파일 시스템은 FAT를 이용하는 연결 할당 기반의 파일 시스템입니다.
- 유닉스 파일 시스템은 i-node를 이용하는 색인 할당 기반의 파일 시스템입니다.
기본미션
p. 400의 확인 문제 1번 풀고 인증하기
메모리 할당 방식에 대한 설명으로 올바른 것을 다음 보기에서 찾아 써보세요.
보기 ) 최초 적합, 최적 적합, 최악 적합
- (1번): 최초로 발견한 적재 가능한 빈 공간에 프로세르를 배치하는 방식
- (2번): 프로세스가 적재될 수 있는 가장 큰 공간에 프로세르를 배치하는 방식
- (3번): 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식
정답: 1번-최초 적합, 2번-최악 적합, 3번-최적 적합
선택미션
ch.14(14-3) 프로세스가 사용할 수 있는 프레임이 3개 있고, 페이지 참조열이 '2313523423' 일 때 LRU 페이지 교체 알고리즘으로 이 페이지를 참조한다면 몇 번의 페이지 폴트가 발생하는지 풀어보기
예시로 들자면 도서관에서 책을 세 권만 들고 있을 수 있는 규칙이 있어요.
이제 여러분이 읽고 싶은 책 목록이 있고, 그 목록대로 책을 읽기 시작해요.
목록은 '2, 3, 1, 3, 5, 2, 3, 4, 2, 3' 이렇게 생겼어요.
- 처음에는 2번 책을 읽으려고 해요. 근데 손에 책이 없으니, 도서관에서 2번 책을 가져와요. (페이지 폴트 발생!)
- 다음은 3번 책이에요. 3번 책도 가져와야 해요. (또 페이지 폴트!)
- 이제 1번 책을 읽어야 해요. 손에 빈 자리가 하나 더 있으니, 1번 책을 가져올 수 있어요. (페이지 폴트!)
- 다시 3번 책을 읽으려고 해요. 이미 3번 책이 손에 있으니, 새로 가져올 필요가 없어요.
- 이번엔 5번 책이에요. 근데 손에 세 권이 다 차 있어요. 가장 오래 전에 읽은 2번 책을 도서관에 돌려놓고, 5번 책을 가져와요. (페이지 폴트!)
- 2번 책을 다시 읽으려고 해요. 이번에는 5번 책을 도서관에 돌려놓고, 2번 책을 가져와요. (페이지 폴트!)
- 3번 책을 읽어요. 이미 손에 있어요.
- 4번 책을 읽으려고 해요. 이번에는 1번 책을 도서관에 돌려놓고, 4번 책을 가져와요. (페이지 폴트!)
- 다시 2번 책을 읽어요. 이미 손에 있어요.
- 마지막으로 3번 책을 읽어요. 역시 이미 손에 있어요.
이 과정에서 새로운 책을 가져올 때마다 '페이지 폴트'가 발생하는 거예요. 이렇게 해서 총 6번 새로운 책을 가져왔어요.
정답은 '페이지 폴트'가 6번 발생했다는 뜻입니다.