[혼공컴운]6주차_Chap14~15 정리

임지·2025년 2월 24일
0

혼공컴운

목록 보기
6/6

1. 가상 메모리

스와핑

운영체제는 스와핑을 통해 물리 메모리 크기보다 큰 프로세스를 실행할 수 있다.

  • 스와핑
    : 보조기억장치 내 스왑 공간에 현재 실행되지 않는 프로세스를 옮긴다.
  • 스왑 인
    : 스왑 공간 내 프로세스가 다시 메모리에 적재
  • 스왑 아웃
    : 메모리 내 프로세스가 스왑 공간에 적재

연속 메모리 할당

메모리에 프로세스를 연속적으로 적재하는 방법은 3가지가 있다.

  • 최초 적합
    : 메모리 내의 빈 공간을 순서대로 검색하다가, 빈 공간을 찾으면 바로 적재한다. 검색 시간을 최소화할 수 있어 빠른 할당이 가능하다.
  • 최적 적합
    : 메모리 내의 빈 공간을 모두 검색하고, 해당 프로세스가 적재될 수 있는 가장 작은 크기의 공간에 프로세스를 할당한다.
  • 최악 적합
    : 메모리 내의 빈 공간을 모두 검색하고, 해당 프로세스가 적재될 수 있는 가장 큰 크기의 공간에 프로세스를 할당한다.

하지만 연속적으로 프로세스를 할당하면 외부 단편화 문제가 발생한다.
예를 들어 메모리 내에 빈 공간이 총 50MB가 있다고 해도, 20MB, 30MB 이렇게 따로 존재한다면 50MB 크기의 프로세스를 적재할 수 없다.

이를 막기 위해 메모리를 압축하는 방법도 있으나,

  1. 시스템은 하던 일을 중지해야하고,
  2. 오버헤드를 야기할 수 있으며,
  3. 어떻게 해야 효율적으로 압축할 수 있는지

에 대한 명확한 방법이 없다.

따라서 외부 단편화 문제를 해결하기 위해 오늘날 대부분의 컴퓨터는 페이징 기법을 사용한다.

페이징

페이징은 프로세스를 일정한 단위로 자른 뒤, 이를 메모리에 불연속적으로 적재함으로서 구현 가능하다.

  • 페이지
    : 프로세스의 논리 주소 공간을 일정한 크기로 자른 단위
  • 프레임
    : 메모리의 물리 주소 공간을 일정한 크기로 자른 단위

운영체제는 페이지 테이블을 통해 페이지를 프레임에 할당함으로서 프로세스를 실행한다. 이때, CPU 내 PTBR에 담긴 주소값을 통해 페이지 테이블에 접근한다.

  • 페이지 테이블
    : 페이지와 프레임 사이의 연결 다리 역할. 어떤 페이지가 어느 프레임에 할당되었는지를 알려준다. 모든 프로세스는 각자의 페이지 테이블을 가지고 있다.
  • PTBR
    : 페이지 테이블 베이스 레지스터. 해당 프로세스의 페이지 테이블이 적재된 주소를 가리킨다.

CPU와 메모리 사이 정보 교환은 시간이 오래 걸린다. 이전 캐시 메모리가 CPU와 메모리 사이에 존재해 각 장치 간 접근 시간을 줄였듯이, 페이지 테이블의 캐시인 TLB를 통해 접근 시간을 줄일 수 있다.

  • TLB :
    : 페이지 테이블의 캐시. 참조 지역성에 따라 페이지 테이블 내용의 일부를 저장한다.

페이지 테이블 엔트리

페이지 테이블의 각 행을 '페이지 테이블 엔트리'라고 한다. 페이지 테이블 엔트리에 담기는 정보로는 다음과 같다.

  • 페이지 번호, 프레임 번호 (연결 다리 역할)

  • 유효 비트
    : 해당 페이지에 접근 가능한지 (메모리에 존재하는지) 알려주는 비트. 접근할 수 있다면 1, 없다면 0. 또한 접근할 수 없다면 페이지 폴트라는 예외를 발생시킨다.

  • 보호 비트
    : 읽기(r), 쓰기(w), 실행(x) 권한을 나타내는 비트. 권한이 있으면 1, 없으면 0.

  • 참조 비트
    : CPU가 참조한 적이 있는지의 여부를 알려주는 비트. 참조한 적 있다면 1, 없으면 0.

  • 수정 비트
    : 해당 데이터를 쓴 적이 있는지의 여부를 알려주는 비트. 수정한 적 있다면 1, 없다면(읽기만 했다면) 0.

페이지 교체 알고리즘

페이지 교체 시 유효 비트가 0이라면, 즉 메모리에 존재하지 않는다면 페이지 폴트가 발생한다. 따라서 스왑 인을 통해 스왑 영역 내 페이지를 메모리로 가져와야하는데, 이 과정이 자주 일어난다면 컴퓨터 성능이 떨어질 것이다.

따라서 페이지 교체 시 페이지 폴트를 적게 발생시키는 알고리즘을 사용하는 것이 중요하다.

  • FIFO 페이지 교체 알고리즘
    : 메모리에 가장 먼저 올라온 페이지부터 내쫓는다.

  • 최적 페이지 교체 알고리즘
    : CPU 참조 횟수를 통해 메모리에서 자주 쓰이지 않'을' 페이지부터 내쫓는다. 가장 이상적이나 현실적으로 구현 불가능하며, 알고리즘의 성능을 평가할 때 최적 페이지 교체 알고리즘을 사용한다.

  • LRU 페이지 교체 알고리즘
    : CPU 참조 횟수를 통해 메모리에서 자주 쓰이지 않'은' 페이지부터 내쫓는다.

프레임 할당

만일 페이지를 수용할 공간이 넉넉하지않아(=프레임이 많이 할당되지 않아) 페이지 교체에 너무 많은 시간을 쏟게 되면, 실제 프로세스가 실행되는 시간보다 페이징에 더 많은 시간이 소요돼 성능이 떨어진다. 이를 스래싱이라고 한다.

  • 균등 할당
    : 모든 프로세스에 균등하게 프레임을 할당한다.

  • 비례 할당
    : 프로세스의 크기에 비례하게 프레임을 할당한다.

  • 작업집합모델
    : 프로세스가 일정 시간 동안 참조한 페이지 집합(=작업 집합)을 기억해 해당 집합의 페이지 개수만큼 프레임을 할당한다.

  • 페이지 폴트 빈도
    : 페이지 폴트 빈도의 상한선과 하한선을 지정하고, 상한선과 하한선 내에서만 프레임을 할당한다.

2. 파일 시스템

파일과 디렉터리

  • 파일
    : 보조기억장치에 저장된 데이터 정보. 운영체제는 확장자를 통해 파일의 유형을 구분한다.
  • 디렉터리
    : 파일의 일종이며, 테이블을 통해 디렉터리 내부 정보를 표현한다. 디렉터리 테이블의 각 행을 디렉터리 엔트리라고 한다.

절대경로와 상대경로

  • 절대경로
    : 루트 디렉터리로부터 자기 자신까지 이르는 고유한 경로. 파일간 구분자로 '/'를 사용한다. (윈도우의 경우에는 '\'(역슬래시)를 구분자로 사용한다.)
파일 이름정보
/루트 디렉터리
C:\루트 디렉터리(윈도우)
..(상위 디렉터리)
.(현재 디렉터리)
  • 상대경로
    : 현재 위치한 파일이나 디렉터리 위치를 기준으로 시작하는 경로.

파티셔닝과 포매팅

보조기억장치는 파티셔닝과 포매팅이라는 과정을 거쳐야 사용 가능하다.

  • 파티셔닝
    : 저장장치에 '파티션'이라는 구간을 나눈다. 파티션마다 각기 다른 파일 시스템을 설정할 수 있다.
  • 포맷팅
    : 파일 시스템을 설정해서 새로운 데이터를 쓸 준비를 한다.

파일 할당 방법

운영체제는 파일과 디렉터리를 블록(하나 이상의 섹터를 묶은 단위) 단위로 저장한다. 운영체제가 파일과 디렉터리를 보조기억장치에 할당 하는 방법은 여러가지가 있다.

  • 연속 할당
    : 보조기억장치에 연속적으로 할당한다. 이전 페이지를 연속적으로 할당할 때와 같이, 외부 단편화 문제가 발생한다.

  • 불연속 할당
    : 보조기억장치에 불연속적으로 할당한다. 불연속 할당에는 연결 할당 방법과 색인 할당 방법이 있다.

  • 연결 할당
    : 하나의 블록에 다음 블록의 주소를 저장한다. 즉, 데이터를 연결리스트의 형태로서 저장한다. 디렉터리 엔트리에는 첫 번째 블록의 주소가 함께 저장된다.

연결 할당 방식은 1. 무조건 차례대로 정보를 읽어야하고,(데이터의 중간 지점부터 읽을 수 없다.) 2. 블록에 오류 등이 발생하면 해당 블록 이후 데이터에는 접근할 수 없다는 단점이 있다.

  • 색인 할당
    : 색인 블록이라는 하나의 블록에 데이터가 담긴 블록 주소들을 저장한다. 디렉터리 엔트리에는 색인 블록의 주소가 함께 저장된다.

연결 할당의 단점을 보완한 파일 시스템이 FAT 파일 시스템이고, 색인 할당을 사용하는 파일 시스템은 유닉스 파일 시스템이다.

FAT 파일 시스템

  • 연결 할당 방식의 단점을 보완한 파일 시스템
    : 연결 리스트의 형태가 아닌, 테이블의 형태로서 데이터를 관리한다. 해당 테이블을 파일 할당 테이블(File Allocation Table)이라고 한다.

  • 저용량 장치 파일 시스템으로 많이 이용
    : USB, SD카드 등

  • 파티션의 앞부분에 만들어짐
    : FAT 영역, 루트 디렉터리 영역, 데이터 영역

  • 메모리에 캐시 될 수 있다
    : FAT이 메모리에 적재된 채 실행되면 다음 블록을 찾는 속도가 빨라진다.

유닉스 파일 시스템

  • i-node
    : 유닉스 파일 시스템에서 사용하는 색인 블록. i-node에는 파일 속성 정보 + 15개의 블록 주소가 저장된다.

  • 직접, 단일 간접, 이중 간접 블록
    : 15개의 블록 주소로 인해 데이터를 저장할 수 있는 크기에 한계가 있다. 따라서 단일 간접, 이중 간접 블록을 통해 데이터를 저장한 블록 주소를 저장한 블록 주소를 가리킨다. (C언어의 포인터 개념과 비슷)


사진 출처 : https://ko.m.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:Ext2-inode.svg


숙제 인증

기본 숙제

  • 400p 확인 문제 1번
    최초적합 : 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치
    최악적합 : 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스 배치
    최적적합 : 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스 배치

추가 숙제

프레임 3개, 페이지 참조열 '2313523423'일 때, LRU 교체 알고리즘으로 페이지 참조 시 페이지 폴트가 몇 번 발생하는지?

2313523423
2 in3 in1 in변화 X5 in2 in변화 X4 in변화 X변화 X
2 out1 out5 out

총 3번 발생한다.

0개의 댓글

관련 채용 정보