Chapter 14. 가상 메모리
14-1 연속 메모리 할당
시작하기 전에
기본적인 메모리 관리 기법인 스와핑과 메모리에 프로세스를 할당하는 방식, 마지막으로 연속 메모리 할당의 부작용인 외부 단편화에 대해 학습하자.
스와핑
스와핑 : 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리로 들여보내는 메모리 관리 기법
스왑 영역 : 프로세스들이 쫒겨나는 보조기억장치의 일부 영역
스왑 아웃 : 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
스왑 인 : 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것
메모리 할당
비어 있는 메모리 공간에 프로세스를 연속적으로 할당하는 방식은 3가지가 있다.
최초 적합, 최적 적합, 최악 적합
최초 적합 : 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다가 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식
최적 적합 : 운영체제가 빈 공간을 모두 검색해본 후, 프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 프로세스를 배치하는 방식
최악 적합 : 운영체제가 빈 공간을 모두 검색해 본 후, 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스를 배치하는 방식
외부 단편화
- 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상.
마무리
핵심 포인트
- 스와핑은 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리로 들여보내는 메모리 관리 기법
- 최초 적합 방식은 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식
- 최적 적합 방식은 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식
- 최악 적합 방식은 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식
- 외부 단편화는 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상
14-2 페이징을 통한 가상 메모리 관리
시작하기 전에
페이징이 생겨나게 된 이유와 작동 원리를 이해하자.
페이징 이란
페이징 : 메모리의 물리 주소 공간을 프레임 단위로 자르고, 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법.
페이지 : 프로세스의 논리 주소 공간
프레임 : 일종의 페이지
페이지 아웃과 페이지 인 : 페이징 시스템에서 스왑 아웃과 스왑 인을 가리킨다.
페이지 테이블
페이지 테이블의 페이지 번호를 이용, 페이지가 적재된 프레임을 찾을 수 있다.
페이지 테이블 베이스 레지스터(PTBR) : 각 프로세스의 페이지 테이블이 적재된 주소.
TLB : 페이지 테이블의 캐시 메모리 역할을 수행하기 위해 페이지 테이블의 일부를 저장한다.
TLB 히트 : CPU가 발생한 논리 주소에 대한 페이지 번호가 TLB에 있을 경우를 의미.
TLB 미스 : 만일 페이지 번호가 TLB에 없을 경우 어쩔 수 없이 페이지가 적재된 프레임을 알기 위해 메모리 내의 페이지 테이블에 접근하는 수 밖에 없다
페이지 테이블 엔트리
- 페이지 테이블의 각각의 행을 의미.
유효 비트 : 현재 해당 페이지에 접근 가능한지 여부를 알려줌.
페이지가 메모리에 적재되어 있지 않으면 페이지 폴트가 발생함.
보호 비트 : 페이지 보호 기능을 위해 존재하는 비트
참조 비트 : 페이지에 접근한 적이 있는지 여부를 나타냄.
수정 비트 : 해당 페이지에 데이터를 쓴 적이 있는지 없는지 수정 여부를 알려준다, 더티 비트 라고도 부르기도 함.
마무리
핵심 포인트
- 페이징은 물리 주소 공간을 프레임 단위로 자르고 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법.
- 페이지 테이블을 통해 페이지가 적재된 프레임을 찿을 수 있다. 페이지 테이블에는 페이지 번호와 프레임 번호뿐 아니라 유효 비트, 보호 비트, 접근 비트, 수정 비트 등이 있다.
- PTBR은 각 프로세스의 페이지 테이블이 적재된 주소를 가리킨다.
- TLB은 페이지 테이블의 캐시 메모리 역할을 수행하기 위해 페이지 테이블의 일부를 저장한다.
14-3 페이지 교체와 프레임 할당
시작하기 전에
운영체제가 수많은 페이지를 어떻게 관리하는지 학습.
요구 페이징
- 페이지가 필요할 때에만 메모리에 적재하는 기법
순수 요구 페이징 기법 : 무작정 실행되는 경우에 실행에 필요한 페이지가 어느 정도 적재된 이후부터는 페이지 폴트 발생 빈도가 떨어지는 기법을 의미.
페이지 교체 알고리즘
FIFO 페이지 교체 알고리즘 : 적재된 페이지 순서대로 교체하는 알고리즘.
최적 페이지 교체 알고리즘 : 앞으로의 사용 빈도가 가장 낮은 페이지를 교체하는 알고리즘.
LRU 페이지 교체 알고리즘 : 가장 오랫동안 사용되지 않은 페이지를 교체하는 알고리즘.
스래싱과 프레임 할당
스래싱 : 프로세스가 실제 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 성능이 저해되는 문제
프레임 할당 방식은 균등, 비례 할당이 있다.
균등 할당 : 모든 프로세스에 동일한 프레임을 배분하는 방식
비례 할당 : 프로세스 크기에 따라 프레임을 배분하는 방식
마무리
핵심 포인트
- 요구 페이징은 페이지가 필요할 때에만 메모리에 적재하는 기법
- 페이지 교체 알고리즘에는 FIFO, 최적, LRU 페이지 교체 알고리즘 등이 있다.
- 스래싱이란 지나치게 빈번한 페이지 교체로 인해 CPU 이용률이 낮아지는 문제를 뜻함
- 프레임 할당 방식에는 균등 할당과 비례 할당, 작업 집합 모델 기반과 페이지 폴트율 기반 프레임 할당 방식이 있다.
Chapter 15. 파일 시스템
15-1 파일과 디렉터리
시작하기 전에
파일 시스템은 파일과 디렉터리를 관리하는데 이에 대해 학습하자
파일
파일 : 하드디스크나 SSD 와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미.
속성 : 파일 관련 부가 정보 (=메타데이터)
파일 속성 : 파일 형식, 위치, 크기 등 파일과 관련된 다양한 정보
파일 유형 : 운영체제가 인식하는 파일 종류
확장자 : 파일 종류가 무엇인지 운영체제에 알려주는 힌트
디렉터리
폴더 : 윈도우 운영체제에선 디렉터리를 뜻함.
1단계 디렉터리 : 모든 파일이 하나의 디렉터리 아래에 있는 구조
트리 구조 티렉터리 : 최상위 디렉터리가 있고 그 아래에 여러 서브 디렉터리(자식 디렉터리) 가 있을 수 있다.
이 중 최상위 디렉터리를 루트 디렉터리라 하며 슬래시( / ) 로 표현.
절대 경로 : 모든 파일은 루트 디렉터리에서 자기 자신까지 이르는 고유 경로
상대 경로 : 현재 디렉터리로 부터 시작하는 경로
마무리
핵심 포인트
- 파일은 의미 있고 관련 있는 정보를 모은 논리적인 단위
- 운영체제는 파일의 확장자를 통해 파일의 유형을 파악 할 수 있다.
- 파일의 속성에는 파일과 관련된 다양한 부가 정보들이 있다.
- 디렉터리를 이용하면 여러 개의 파일 또는 디렉터리르 묶어 관리할 수 있다.
- 경로는 디렉터리를 이용해 위치를 특정 짓는 정보
- 절대 경로는 루트 디렉터리부터 시작하는 경로, 상대 경로는 현재 디렉터리부터 시작하는 경로
15-2 파일 시스템
시작하기 전에
파일과 디렉터리가 보조기억장치에 어떻게 저장되며 접근하는지 학습하자.
파티셔닝과 포매팅
파티셔닝 : 저장 장치의 논리적인 영역을 구획하는 작업을 의미.
파티션 : 파티셔닝 작업을 통해 나눠진 영역 하나하나를 의미.
포맷팅 : 파일 시스템을 설정해 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 준비하는 작업을 의미.
파일 할당 방법
연속 할당 : 가장 단순한 방식이며 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식
연결 할당 : 연속 할당의 문제를 해결할 수 있는 방식, 각 블록 일부에 다음 블록의 주소를 저장해 각 블록이 다음 블록을 가리키는 형태로 할당하는 방식.
외부 단편화 문제(연속 할당의 문제) 를 해결하지만 단점이 있다.
- 반드시 첫 번째 블록부터 하나씩 차례대로 읽어야 한다.
- 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근할 수 없다.
색인 할당 : 파일의 모든 블록 주소를 색인 블록이란 하나의 블록에 모아 관리하는 방식
파일 시스템 살펴보기
FAT 파일 시스템 : 연결 할당의 단점을 보완한 파일 시스템. USB 메모리, SD 카드 등의 저용량 저장 장치에서 사용됨.
유닉스 파일 시스템 : 색인 할당 기반이며, 색인 블록의 한계점을 해결한다.
- 블록 주소 중 열두 개에는 직접 블록 주소를 저장한다.
- 첫째 내용으로 충분하기 않다면 열세 번째 주소에 단일 간접 블록 주소를 저장한다.
- 위의 내용으로 충분치 않다면 열네 번째 주소에 이중 간첩 블록 주소를 저장한다.
- 위의(3) 내용으로 충분치 않다면 열다섯 번째 주소에 심중 간첩 블록 주소를 저장한다.
마무리
핵심 포인트
- 파티셔닝은 하드 디스크나 SSD 처럼 용량이 큰 저장 장치를 하나 이상의 논리적인 여러 단위로 구획하는 작업을 의미.
- 포매팅이란 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 수 있게 하는 작업을 의미.
- 연속 할당은 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식
- 연결 할당은 각 블록 일부에 다음 블록의 주소를 저장하여 블록들을 연결 리스트 형태로 관리하는 방식
- 색인 할당은 파일의 모든 블록 주소를 색인 블록에 모아 관리하는 방식
- FAT 파일 시스템은 FAT를 이용하는 연결 할당 기반의 파일 시스템.
- 유닉스 파일 시스템은 I-NODE 를 이용하는 새깅ㄴ 할당 기반의 파일 시스템
기본 미션
p.400 의 확인 문제 1번 풀고 인증하기
6주차 마무리
올 1월 초, 시작했던 혼공학습단을 이제 마무리할 시간이다. 6주동안 이 400여 페이지되는 책을 다 볼 수나 있을까 라는 의문점과 왠지 모를 설레임으로 시작한 혼공학습단이었는데 어떻게 하다보니 끝내게 되었다.
비록 책 내용 중에 완벽하게 이해되지 못한 부분이 부분적으로 있긴 하지만, 책을 한번 쓱 다 보고 버릴 것도 아니고 ㅎㅎ
컴퓨터 구조, 운영체제에 모르는 부분이 있으면 참고용으로 다시 볼 생각이다. 부분적으로 이해 안되는 부분은 따로 시간 만들어서 복습도 해야할 듯 싶다.
회고도 한 번 적어야 하는데 이번주에 시간 나면 써야겠다.
'Book' 카테고리의 다른 글
[혼공파] 혼공학습단 12기 2주차 (0) | 2024.07.12 |
---|---|
[혼공컴운] 혼공학습단11기_회고 (0) | 2024.02.18 |
[혼공컴운] 혼공학습단11기_5주차+기본미션 (3) | 2024.02.04 |
[혼공컴운] 혼공학습단11기_4주차+기본미션 (1) | 2024.01.28 |
[혼공컴운] 혼공학습단11기_3주차+기본, 선택미션 (1) | 2024.01.21 |