본문 바로가기
Book

[혼공컴운] 혼공학습단11기_6주차+기본미션

by suuuuunnng 2024. 2. 10.

Chapter 14. 가상 메모리

14-1 연속 메모리 할당

시작하기 전에

기본적인 메모리 관리 기법인 스와핑과 메모리에 프로세스를 할당하는 방식, 마지막으로 연속 메모리 할당의 부작용인 외부 단편화에 대해 학습하자.

스와핑

스와핑 : 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리로 들여보내는 메모리 관리 기법

스왑 영역 : 프로세스들이 쫒겨나는 보조기억장치의 일부 영역

스왑 아웃 : 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것

스왑 인 : 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것

메모리 할당

비어 있는 메모리 공간에 프로세스를 연속적으로 할당하는 방식은 3가지가 있다.

최초 적합, 최적 적합, 최악 적합

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

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

최악 적합 : 운영체제가 빈 공간을 모두 검색해 본 후, 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스를 배치하는 방식

외부 단편화

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

마무리

핵심 포인트

  1. 스와핑은 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리로 들여보내는 메모리 관리 기법
  2. 최초 적합 방식은 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식
  3. 최적 적합 방식은 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식
  4. 최악 적합 방식은 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식
  5. 외부 단편화는 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상

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

시작하기 전에

페이징이 생겨나게 된 이유와 작동 원리를 이해하자.

페이징 이란

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

페이지 : 프로세스의 논리 주소 공간

프레임 : 일종의 페이지

페이지 아웃과 페이지 인 : 페이징 시스템에서 스왑 아웃스왑 인을 가리킨다.

페이지 테이블

페이지 테이블의 페이지 번호를 이용, 페이지가 적재된 프레임을 찾을 수 있다.

페이지 테이블 베이스 레지스터(PTBR) : 각 프로세스의 페이지 테이블이 적재된 주소.

TLB : 페이지 테이블의 캐시 메모리 역할을 수행하기 위해 페이지 테이블의 일부를 저장한다.

TLB 히트 : CPU가 발생한 논리 주소에 대한 페이지 번호가 TLB에 있을 경우를 의미.

TLB 미스 : 만일 페이지 번호가 TLB에 없을 경우 어쩔 수 없이 페이지가 적재된 프레임을 알기 위해 메모리 내의 페이지 테이블에 접근하는 수 밖에 없다

페이지 테이블 엔트리

- 페이지 테이블의 각각의 행을 의미.

유효 비트 : 현재 해당 페이지에 접근 가능한지 여부를 알려줌.

페이지가 메모리에 적재되어 있지 않으면 페이지 폴트가 발생함.

보호 비트 : 페이지 보호 기능을 위해 존재하는 비트

참조 비트 : 페이지에 접근한 적이 있는지 여부를 나타냄.

수정 비트 : 해당 페이지에 데이터를 쓴 적이 있는지 없는지 수정 여부를 알려준다, 더티 비트 라고도 부르기도 함.

마무리

핵심 포인트

  1. 페이징은 물리 주소 공간을 프레임 단위로 자르고 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법.
  2. 페이지 테이블을 통해 페이지가 적재된 프레임을 찿을 수 있다. 페이지 테이블에는 페이지 번호와 프레임 번호뿐 아니라 유효 비트, 보호 비트, 접근 비트, 수정 비트 등이 있다.
  3. PTBR은 각 프로세스의 페이지 테이블이 적재된 주소를 가리킨다.
  4. TLB은 페이지 테이블의 캐시 메모리 역할을 수행하기 위해 페이지 테이블의 일부를 저장한다.

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

시작하기 전에

운영체제가 수많은 페이지를 어떻게 관리하는지 학습.

요구 페이징

- 페이지가 필요할 때에만 메모리에 적재하는 기법

순수 요구 페이징 기법 : 무작정 실행되는 경우에 실행에 필요한 페이지가 어느 정도 적재된 이후부터는 페이지 폴트 발생 빈도가 떨어지는 기법을 의미.

페이지 교체 알고리즘

FIFO 페이지 교체 알고리즘 : 적재된 페이지 순서대로 교체하는 알고리즘.

최적 페이지 교체 알고리즘 : 앞으로의 사용 빈도가 가장 낮은 페이지를 교체하는 알고리즘.

LRU 페이지 교체 알고리즘 : 가장 오랫동안 사용되지 않은 페이지를 교체하는 알고리즘.

스래싱과 프레임 할당

스래싱 : 프로세스가 실제 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 성능이 저해되는 문제

프레임 할당 방식은 균등, 비례 할당이 있다.

균등 할당 : 모든 프로세스에 동일한 프레임을 배분하는 방식

비례 할당 : 프로세스 크기에 따라 프레임을 배분하는 방식

마무리

핵심 포인트

  1. 요구 페이징은 페이지가 필요할 때에만 메모리에 적재하는 기법
  2. 페이지 교체 알고리즘에는 FIFO, 최적, LRU 페이지 교체 알고리즘 등이 있다.
  3. 스래싱이란 지나치게 빈번한 페이지 교체로 인해 CPU 이용률이 낮아지는 문제를 뜻함
  4. 프레임 할당 방식에는 균등 할당과 비례 할당, 작업 집합 모델 기반과 페이지 폴트율 기반 프레임 할당 방식이 있다.

Chapter 15. 파일 시스템

15-1 파일과 디렉터리

시작하기 전에

파일 시스템은 파일과 디렉터리를 관리하는데 이에 대해 학습하자

파일

파일 : 하드디스크나 SSD 와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미.

속성 : 파일 관련 부가 정보 (=메타데이터)

파일 속성 : 파일 형식, 위치, 크기 등 파일과 관련된 다양한 정보

파일 유형 : 운영체제가 인식하는 파일 종류

확장자 : 파일 종류가 무엇인지 운영체제에 알려주는 힌트

디렉터리

폴더 : 윈도우 운영체제에선 디렉터리를 뜻함.

1단계 디렉터리 : 모든 파일이 하나의 디렉터리 아래에 있는 구조

트리 구조 티렉터리 : 최상위 디렉터리가 있고 그 아래에 여러 서브 디렉터리(자식 디렉터리) 가 있을 수 있다.

이 중 최상위 디렉터리를 루트 디렉터리라 하며 슬래시( / ) 로 표현.

절대 경로 : 모든 파일은 루트 디렉터리에서 자기 자신까지 이르는 고유 경로

상대 경로 : 현재 디렉터리로 부터 시작하는 경로

마무리

핵심 포인트

  1. 파일은 의미 있고 관련 있는 정보를 모은 논리적인 단위
  2. 운영체제는 파일의 확장자를 통해 파일의 유형을 파악 할 수 있다.
  3. 파일의 속성에는 파일과 관련된 다양한 부가 정보들이 있다.
  4. 디렉터리를 이용하면 여러 개의 파일 또는 디렉터리르 묶어 관리할 수 있다.
  5. 경로는 디렉터리를 이용해 위치를 특정 짓는 정보
  6. 절대 경로는 루트 디렉터리부터 시작하는 경로, 상대 경로는 현재 디렉터리부터 시작하는 경로

15-2 파일 시스템

시작하기 전에

파일과 디렉터리가 보조기억장치에 어떻게 저장되며 접근하는지 학습하자.

파티셔닝과 포매팅

파티셔닝 : 저장 장치의 논리적인 영역을 구획하는 작업을 의미.

파티션 : 파티셔닝 작업을 통해 나눠진 영역 하나하나를 의미.

포맷팅 : 파일 시스템을 설정해 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 준비하는 작업을 의미.

파일 할당 방법

연속 할당 : 가장 단순한 방식이며 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식

연결 할당 : 연속 할당의 문제를 해결할 수 있는 방식, 각 블록 일부에 다음 블록의 주소를 저장해 각 블록이 다음 블록을 가리키는 형태로 할당하는 방식.

외부 단편화 문제(연속 할당의 문제) 를 해결하지만 단점이 있다.

  1. 반드시 첫 번째 블록부터 하나씩 차례대로 읽어야 한다.
  2. 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근할 수 없다.

색인 할당 : 파일의 모든 블록 주소를 색인 블록이란 하나의 블록에 모아 관리하는 방식

파일 시스템 살펴보기

FAT 파일 시스템 : 연결 할당의 단점을 보완한 파일 시스템. USB 메모리, SD 카드 등의 저용량 저장 장치에서 사용됨.

유닉스 파일 시스템 : 색인 할당 기반이며, 색인 블록의 한계점을 해결한다.

  1. 블록 주소 중 열두 개에는 직접 블록 주소를 저장한다.
  2. 첫째 내용으로 충분하기 않다면 열세 번째 주소에 단일 간접 블록 주소를 저장한다.
  3. 위의 내용으로 충분치 않다면 열네 번째 주소에 이중 간첩 블록 주소를 저장한다.
  4. 위의(3) 내용으로 충분치 않다면 열다섯 번째 주소에 심중 간첩 블록 주소를 저장한다.

마무리

핵심 포인트

  1. 파티셔닝은 하드 디스크나 SSD 처럼 용량이 큰 저장 장치를 하나 이상의 논리적인 여러 단위로 구획하는 작업을 의미.
  2. 포매팅이란 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 수 있게 하는 작업을 의미.
  3. 연속 할당은 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식
  4. 연결 할당은 각 블록 일부에 다음 블록의 주소를 저장하여 블록들을 연결 리스트 형태로 관리하는 방식
  5. 색인 할당은 파일의 모든 블록 주소를 색인 블록에 모아 관리하는 방식
  6. FAT 파일 시스템은 FAT를 이용하는 연결 할당 기반의 파일 시스템.
  7. 유닉스 파일 시스템은 I-NODE 를 이용하는 새깅ㄴ 할당 기반의 파일 시스템

기본 미션

p.400 의 확인 문제 1번 풀고 인증하기

 

 

6주차 마무리

올 1월 초, 시작했던 혼공학습단을 이제 마무리할 시간이다. 6주동안 이 400여 페이지되는 책을 다 볼 수나 있을까 라는 의문점과 왠지 모를 설레임으로 시작한 혼공학습단이었는데 어떻게 하다보니 끝내게 되었다.

비록 책 내용 중에 완벽하게 이해되지 못한 부분이 부분적으로 있긴 하지만, 책을 한번 쓱 다 보고 버릴 것도 아니고 ㅎㅎ

컴퓨터 구조, 운영체제에 모르는 부분이 있으면 참고용으로 다시 볼 생각이다. 부분적으로 이해 안되는 부분은 따로 시간 만들어서 복습도 해야할 듯 싶다.

회고도 한 번 적어야 하는데 이번주에 시간 나면 써야겠다.