



연속 메모리 할당
- 연속 메모리 할당 : 프로세스에 연속적인 메모리 공간을 할당하는 방식
스와핑
- 스와핑 : 현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고 그렇게 생긴 빈 공간에 새 프로세스를 적재
- 스왑 영역 : 프로세스들이 쫓겨나는 보조기억장치의 일부 영역
- 스왑 아웃 : 현재 실행되지 않은 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
- 스왑 인 : 스왑 영역에 있던 프로세스가 메모리로 옮겨오는 것
메모리 할당
- 최초 적합 : 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식
- 최적 적합 : 운영체제가 빈 공간을 모두 검색해본 뒤, 적재 가능한 가장 작은 공간에 할당
- 최악 적합 : 운영체제가 빈 공간을 모두 검색해본 뒤, 적재 가능한 가장 큰 공간에 할당
외부 단편화
- 외부 단편화 : 프로세스를 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상
- 외부 단편화를 해결 할 수 있는 대표적인 방안
- 메모리 압축 : 여기저기 흩어져 있는 빈 공간들을 하나로 모으는 방식
- 페이징 기법 : 다음절에서 배움





가상 메모리
- 페이징
- 세그멘테이션
페이징
- 페이징 : 물리 주소 공간을 프레임 단위로 자르고 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법
- 페이지 : 페이징이 프로세스의 논리 주소 공간을 페이지라는 일정한 단위로 자름
- 프레임 : 메모리 물리 주소 공간을 프레임이라는 페이지와 동일한 크기의 일정한 단위로 자름
- 페이지 아웃 : 메모리에 적재될 필요가 없는 페이지들은 보조기억장치로 옮겨지는 것
- 페이지 인 : 실행에 필요한 페이지들은 메모리로 옮겨지는 것
페이지 테이블
- 페이지 테이블 : 물리 주소에 불연속적으로 배치되더라도 논리 주소에는 연속적으로 배치되도록 함
- 페이지 테이블 베이스 레지스터 (PTBR) : 프로세스마다 각자의 프로세스 테이블을 가지고 있고 각 프로세스의 페이지 테이블들을 메모리에 적재되어 있음 그리고 CPU 내의 PTBR은 각 프로세스의 페이지 테이블이 적재된 주소를 가리킴
- TLB : CPU 곁에 페이지 테이블의 캐시 메모리이기 때문에 페이지 테이블의 일부를 가져와 저장
- TLB 히트 : CPU가 접근하려는 논리주소가 TLB에 있는 경우
- TLB 미스 : CPU가 접근하려는 논리주소가 TLB에 없는 경우
페이징에서의 주소 변환
- 페이징 시스템이서는 모든 논리 주소가 기본적으로 페이지 번호와 변위로 이루어져 있음
페이지 테이블 엔트리
- 페이지 테이블 엔트리 : 페이지 테이블의 각각의 행
- 유효 비트 : 현재 해당 페이지에 접근 가능한지 여부
- 유효 비트 1인 경우 : 메모리에 적재되어 있음
- 유효 비트 0인 경우 : 메모리에 적재되어 있지 않음
- 페이지 폴트 : 현재 접근하고자 하는 페이지가 메모리에 적재되지 않은 경우 발생하는 인터럽트
- 보호 비트 : 페이지 보호 기능을 위해 존재하는 비트
- 참조 비트 : CPU가 이 페이지에 접근한 적이 있는지 여부
- 수정 비트 : CPU가 이 페이지에 데이터를 쓴 적이 있는지 여부





요구 페이징
- 요구 페이징 : 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법
- 요구 페이징 시스템이 안정적으로 작동하기 위해 해결해야할 문제점
- 페이지 교체
- 프레임 할당
- 페이지 교체 알고리즘 : 어떤 페이지를 내보낼지 결정하는 알고리즘
- FIFO 페이지 교체 알고리즘 : 메모리에 가장 먼저 올라온 페이지부터 내쫓는 방식
- 단점 : 프로그램 실행 내내 사용될 페이지는 내쫓아서는 안됨 -> 해결책 : 2차 기회 페이지 교체 알고리즘
- 2차 기회 페이지 교체 알고리즘
- 가장 오래 있었던 페이지의 참조 비트가 1인 경우 : 한 번더 기회를 줌 -> 참조 비트 0으로 바뀌고 최근에 적재한 페이지로 이동
- 가장 오래 있었던 페이지의 참조 비트가 0인 경우 : 내쫓기
- 최적 페이지 교체 알고리즘 : CPU에 의해 참조되는 횟수를 고려해 메모리에 오래 남아야 할 페이지는 자주 사용될 페이지 메모리에 없어도 될 페이지는 오랫동안 사용되지 않을 페이지로 인식
- LRU 페이지 교체 알고리즘 : 페이지마다 마지막으로 사용한 시간을 토대로 최근에 가장 사용이 적었던 페이지를 교체
- FIFO 페이지 교체 알고리즘 : 메모리에 가장 먼저 올라온 페이지부터 내쫓는 방식
스래싱과 프레임 할당
- 스래싱 : 프로세스가 실제 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 성능이 저해되는 문제
- 프레임 할당 방식
- 균등 할당 : 모든 프로세스에게 균등하게 프레임 할당
- 비례 할당 : 프로세스의 크기를 고렿서 프로세스 크기에 비례하여 프레임 할당 하지만 프로세스가 필요로 하는 프레임 수는 실행해봐야 알 수 있음
- 작업 집합 모델 : CPU가 특정 시간 동안 주로 참조한 페이지 갯수만큼만 프레임을 할당하면 됨
- 페이지 폴트 빈도 : 프로세스가 실행되는 과정에서 배분할 프레임 결정하고 페이지 폴트율에 상한성, 하한성을 정하고 그 범위 내에서 프레임 할당하는 방식


파일
- 파일 : 보조기억장치에 저장된 관련 정보의 집합
- 속성 (메타데이터) : 모든 파일에는 이름과 파일을 실행하기 위한 정보, 그리고 파일 관련 부가 정보
디렉터리 (폴더)
- 디렉터리 : 파일들을 일목요연하게 관리하기 위해 사용하는 것
- 루트 디렉터리 : 최상위 디렉터리를 뜻함
절대 경로와 상대 경로
- 절대 경로 : 루트 디렉터리에서 자기 자신까지 이르는 경로
- 상대 경로 : 현재 디렉터리에서 자기 자신까지 이르는 경로
디렉터리 엔트리
- 디렉터리의 내부에는 해당 디렉터리에 담겨 있는 대상과 관련된 정보가 담겨 있음
- 파일 내부에는 파일 관련 정보들이 있음




파티셔닝과 포매팅
- 파티셔닝 : 저장 장치의 논리적인 영역을 구획하는 작업
- 파티션 : 파티셔닝 작업을 통해 나누어진 영역 하나하나
- 포매팅 : 파일 시스템을 설정해서 어떤 방식으로 파일을 관리할지를 결정
파일 할당 방법
- 파일 할당 방법 : 운영체제는 파일과 디렉터리를 블록 단위로 읽고 씀
- 파일을 보조기억장치에 할당하는 방법
- 연속 할당 : 보조기억장치 내 연속적인 블록에 파일 할당
- 단점 : 외부 단편화를 야기함
- 불연속할당
- 연결 할당 : 각 블록의 다음 블록 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당
- 색인 할당 : 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식
- 연속 할당 : 보조기억장치 내 연속적인 블록에 파일 할당
파일 시스템 살펴보기
- FAT 파일 시스템 : FAT를 이용하는 연결 할당 기반의 파일 시스템
- 유닉스 파일 시스템 : i-node를 이용하는 색인 할당 기반의 파일 시스템

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