카테고리 없음

[혼공컴운 6주차] Chapter 14 ~ 15

Ejxnzn 2024. 2. 6. 00:03

 

 

연속 메모리 할당

  • 연속 메모리 할당 : 프로세스에 연속적인 메모리 공간을 할당하는 방식

 

스와핑

  • 스와핑 : 현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고 그렇게 생긴 빈 공간에 새 프로세스를 적재
  • 스왑 영역 : 프로세스들이 쫓겨나는 보조기억장치의 일부 영역
  • 스왑 아웃 : 현재 실행되지 않은 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
  • 스왑 인 : 스왑 영역에 있던 프로세스가 메모리로 옮겨오는 것

 

메모리 할당

  • 최초 적합 : 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식
  • 최적 적합 : 운영체제가 빈 공간을 모두 검색해본 뒤, 적재 가능한 가장 작은 공간에 할당
  • 최악 적합 : 운영체제가 빈 공간을 모두 검색해본 뒤, 적재 가능한 가장 큰 공간에 할당

 

외부 단편화

  • 외부 단편화 : 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상
  • 외부 단편화를 해결 할 수 있는 대표적인 방안
    1. 메모리 압축 : 여기저기 흩어져 있는 빈 공간들을 하나로 모으는 방식 
    2. 페이징 기법 : 다음절에서 배움

 

 

가상 메모리

  • 페이징
  • 세그멘테이션

 

페이징

  • 페이징 : 물리 주소 공간을 프레임 단위로 자르고 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법
  • 페이지 : 페이징이 프로세스의 논리 주소 공간을 페이지라는 일정한 단위로 자름
  • 프레임 : 메모리 물리 주소 공간을 프레임이라는 페이지와 동일한 크기의 일정한 단위로 자름
  • 페이지 아웃 : 메모리에 적재될 필요가 없는 페이지들은 보조기억장치로 옮겨지는 것
  • 페이지 인 : 실행에 필요한 페이지들은 메모리로 옮겨지는 것

 

페이지 테이블

  • 페이지 테이블 : 물리 주소에 불연속적으로 배치되더라도 논리 주소에는 연속적으로 배치되도록 함
  • 페이지 테이블 베이스 레지스터 (PTBR) : 프로세스마다 각자의 프로세스 테이블을 가지고 있고 각 프로세스의 페이지 테이블들을 메모리에 적재되어 있음 그리고 CPU 내의 PTBR은 각 프로세스의 페이지 테이블이 적재된 주소를 가리킴
  • TLB : CPU 곁에 페이지 테이블의 캐시 메모리이기 때문에 페이지 테이블의 일부를 가져와 저장
    1. TLB 히트 : CPU가 접근하려는 논리주소가 TLB에 있는 경우
    2. TLB 미스 : CPU가 접근하려는 논리주소가 TLB에 없는 경우

 

페이징에서의 주소 변환

  • 페이징 시스템이서는 모든 논리 주소가 기본적으로 페이지 번호와 변위로 이루어져 있음

 

페이지 테이블 엔트리

  • 페이지 테이블 엔트리 : 페이지 테이블의 각각의 행
  • 유효 비트 : 현재 해당 페이지에 접근 가능한지 여부
    • 유효 비트 1인 경우 : 메모리에 적재되어 있음
    • 유효 비트 0인 경우 : 메모리에 적재되어 있지 않음
  • 페이지 폴트 : 현재 접근하고자 하는 페이지가 메모리에 적재되지 않은 경우 발생하는 인터럽트
  • 보호 비트 : 페이지 보호 기능을 위해 존재하는 비트
  • 참조 비트 : CPU가 이 페이지에 접근한 적이 있는지 여부
  • 수정 비트 : CPU가 이 페이지에 데이터를 쓴 적이 있는지 여부

 

 

 

요구 페이징

  • 요구 페이징 : 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법
  • 요구 페이징 시스템이 안정적으로 작동하기 위해 해결해야할 문제점
    1. 페이지 교체
    2. 프레임 할당
  • 페이지 교체 알고리즘 : 어떤 페이지를 내보낼지 결정하는 알고리즘
    1. FIFO 페이지 교체 알고리즘 : 메모리에 가장 먼저 올라온 페이지부터 내쫓는 방식
      • 단점 : 프로그램 실행 내내 사용될 페이지는 내쫓아서는 안됨 -> 해결책 : 2차 기회 페이지 교체 알고리즘
      • 2차 기회 페이지 교체 알고리즘 
        1. 가장 오래 있었던 페이지의 참조 비트가 1인 경우 : 한 번더 기회를 줌 -> 참조 비트 0으로 바뀌고 최근에 적재한 페이지로 이동
        2. 가장 오래 있었던 페이지의 참조 비트가 0인 경우 : 내쫓기
    2. 최적 페이지 교체 알고리즘 : CPU에 의해 참조되는 횟수를 고려해 메모리에 오래 남아야 할 페이지는 자주 사용될 페이지 메모리에 없어도 될 페이지는 오랫동안 사용되지 않을 페이지로 인식
    3. LRU 페이지 교체 알고리즘 : 페이지마다 마지막으로 사용한 시간을 토대로 최근에 가장 사용이 적었던 페이지를 교체

 

스래싱과 프레임 할당

  • 스래싱 : 프로세스가 실제 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 성능이 저해되는 문제
  • 프레임 할당 방식
    1. 균등 할당 : 모든 프로세스에게 균등하게 프레임 할당
    2. 비례 할당 : 프로세스의 크기를 고렿서 프로세스 크기에 비례하여 프레임 할당 하지만 프로세스가 필요로 하는 프레임 수는 실행해봐야 알 수 있음
    3. 작업 집합 모델 : CPU가 특정 시간 동안 주로 참조한 페이지 갯수만큼만 프레임을 할당하면 됨
    4. 페이지 폴트 빈도 : 프로세스가 실행되는 과정에서 배분할 프레임 결정하고 페이지 폴트율에 상한성, 하한성을 정하고 그 범위 내에서 프레임 할당하는 방식
     

 

 

파일

  • 파일 : 보조기억장치에 저장된 관련 정보의 집합
  • 속성 (메타데이터) : 모든 파일에는 이름과 파일을 실행하기 위한 정보, 그리고 파일 관련 부가 정보

 

디렉터리 (폴더)

  • 디렉터리 : 파일들을 일목요연하게 관리하기 위해 사용하는 것
  • 루트 디렉터리 : 최상위 디렉터리를 뜻함

 

절대 경로와 상대 경로

  • 절대 경로 : 루트 디렉터리에서 자기 자신까지 이르는 경로
  • 상대 경로 : 현재 디렉터리에서 자기 자신까지 이르는 경로

 

디렉터리 엔트리

  • 디렉터리의 내부에는 해당 디렉터리에 담겨 있는 대상과 관련된 정보가 담겨 있음
  • 파일 내부에는 파일 관련 정보들이 있음

 

 

 

파티셔닝과 포매팅

  • 파티셔닝 : 저장 장치의 논리적인 영역을 구획하는 작업
  • 파티션 : 파티셔닝 작업을 통해 나누어진 영역 하나하나
  • 포매팅 : 파일 시스템을 설정해서 어떤 방식으로 파일을 관리할지를 결정

 

파일 할당 방법

  • 파일 할당 방법 : 운영체제는 파일과 디렉터리를 블록 단위로 읽고 씀
  • 파일을 보조기억장치에 할당하는 방법
    1. 연속 할당 : 보조기억장치 내 연속적인 블록에 파일 할당
      • 단점 : 외부 단편화를 야기함
    2. 불연속할당
      • 연결 할당 : 각 블록의 다음 블록 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당
      • 색인 할당 : 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식

 

파일 시스템 살펴보기

  • FAT 파일 시스템 : FAT를 이용하는 연결 할당 기반의 파일 시스템
  • 유닉스 파일 시스템 : i-node를 이용하는 색인 할당 기반의 파일 시스템

 

기본미션 p.400 1번

 

1번 : 최초 적합

2번 : 최악 적합

3번 : 최적 적합

 

선택 미션 프로세스가 사용할 수 있는 프레임이 3개 있고, 페이지 참조열이 '2313523423' 일때 LRU 페이지 교체 알고리즘으로 이 페이지를 참조한다면 몇 번의 페이지 폴트가 발생하는 풀어보기