Aesthetic Algorithm
[혼공학습단] Week 6: 가상 메모리, 파일 시스템혼공학습단] Week 6: 가상 메모리, 파일 시스템 본문
[혼공학습단] Week 6: 가상 메모리, 파일 시스템혼공학습단] Week 6: 가상 메모리, 파일 시스템
미니튜링 2025. 8. 24. 23:00🟪 이번 주 범위 🟪
Chapter 14. 가상 메모리
14-1. 연속 메모리 할당
14-2. 페이징을 통한 가상 메모리 관리
14-3. 페이지 교체와 프레임 할당
Chapter 15. 파일 시스템
15-1. 파일과 디렉터리
15-2. 파일 시스템
<이번 주 숙제>
1. 400p 1번
최초 적합 - 최초로 발견한 적재 가능한 빈 공간에 프로세스를 배치하는 방식
최악 적합 - 프로세스가 적재될 수 있는 가장 큰 공간에 프로세스를 배치하는 방식
최적 적합 - 프로세스가 적재될 수 있는 가장 작은 공간에 프로세스를 배치하는 방식
2. 추가 숙제
Ch.14(14-3) 프로세스가 사용할 수 있는 프레임이 3개 있고, 페이지 참조열이 ‘2313523423’일 때 LRU 페이지 교체 알고리즘으로 이 페이지를 참조한다면 몇 번의 페이지 폴트가 발생하는지 풀어보기
Chapter 14. 가상 메모리
14-1. 연속 메모리 할당
✔️ 스와핑
✔️ 메모리에 프로세스를 할당하는 방식
✔️ 외부 단편화
✅ 스와핑
현재 실행되지 않는 프로세스들을 임시로 보조기억장치 일부 영역으로 쫓아내고, 그렇게 생긴 메모리상 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식이다.
그 보조기억장치의 일부 영역을 스왑 영역, 스왑 영역으로 옮겨지는 것을 스왑 아웃, 다시 메모리로 옮겨오는 것을 스왑 인이라고 한다.
스와핑을 이용하면, 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시 실행할 수 있다.
✅ 메모리 할당
프로세스는 메모리 내 빈 공간에 적재되어야 하는데, 메모리 내 빈 공간이 여러 개 있다면 프로세스를 어떻게 배치해야 할까?
3가지 방법이 있다:
1) 최초 적합
OS가 메모리 내 빈 공간을 순서대로 검색하다가, 공간을 발견하면 프로세스를 배치한다.
검색을 최소화할 수 있고 빠른 할당이 가능하다.
2) 최적 적합
OS가 빈 공간을 모두 검색해 본 후, 프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 프로세스를 배치하는 방식이다.
3) 최악 적합
OS가 빈 공간을 모두 검색한 후, 프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스를 배치하는 방식이다.
✅ 외부 단편화
연속 메모리 할당이 갖고 있는 문제로, 메모리에 여유 공간을 충분하나 작은 조각으로 흩어져 있어 프로세스가 연속된 공간을 확보하지 못하는 것이다. 프로세스 바깥에 생기는 이러한 빈 공간들은 비어 있지만 그보다 큰 프로세스를 적재하기 힘든 상황을 초래하며, 메모리를 낭비하게 된다.
이를 해결하기 위해서는, 메모리 내 프로세스를 한쪽으로 몰아 빈 공간을 모아주는 압축이 있다.
14-2. 페이징을 통한 가상 메모리 관리
✔️ 페이징이 왜 생겨났으며, 어떤 원리로 작동될까?
✅ 가상 메모리
실행하고자 하는 프로그램의 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 한다.
✅ 페이징
메모리의 물리 주소 공간을 프레임 단위로 자르고, 프로세스의 논리 주소 공간을 페이지 단위로 자른 뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법
페이징 시스템에서의 스왑 아웃은 페이지 아웃, 스왑 인은 페이지 인이라고 부른다.
한 프로세스를 실행하기 위해 프로세스 전체가 메모리에 적재될 필요는 없다는 것이다.
✅ 페이지 테이블
페이지 번호와 프레임 번호를 짝지어 주는 역할을 한다. CPU가 페이지 번호만 보고도 해당 페이지가 적재된 프레임을 찾을 수 있게 해준다.
프로세스마다 각자의 페이지 테이블을 갖고 있으며, 각 프로세스의 페이지 테이블들은 메모리에 적재된다.
CPU 내 페이지 테이블 베이지 레지스터(PTBR)는 각 프로세스의 페이지 테이블이 적재된 주소를 가리킨다.
그런데, 페이지 테이블을 메모리에 두면 메모리 접근 시간이 크게 늘어난다. 이를 해결하기 위해서는, TLB라는 캐시 메모리를 두어 페이지 테이블의 일부 내용을 저장할 수 있다.
CPU가 발생한 논리 주소에 대한 페이지 번호가 TLB에 있을 경우에는, 이를 TLB 히트라고 하며, 이 경우에는 메모리 접근을 1번만 하면 된다.
✅ 페이징에서의 주소 변환
1개의 페이지, 프레임은 여러 주소를 포괄하고 있으며, 2가지 정보가 필요하다:
1) 어떤 페이지, 프레임에 접근하고 싶은지
2) 접근하려는 주소가 그 페이지나 프레임으로부터 얼마나 떨어져 있는지
따라서 페이징 시스템에서는 모든 논리 주소가 페이지 번호(접근하고자 하는 페이지 번호로, 페이지가 어떤 프레임에 할당되었는지 알 수 있다.)와 변위(접근하려는 주소가 프레임의 시작 번지로부터 얼만큼 떨어져 있는지를 알기 위한 정보)로 이루어져 있다.
✅ 페이지 테이블 엔트리
페이지 테이블의 각 엔트리, 즉 각각의 행들을 페이지 테이블 엔트리라고 한다.
✅ 유효 비트: 해당 페이지에 접근 가능한지 여부를 알려줌
✅ 참조 비트: CPU가 이 페이지에 접근한 적 있는지 여부를 나타냄
✅ 수정 비트: 해당 페이지에 데이터를 쓴 적이 있는지 없는지 수정 여부로, 더티 비트라고도 부른다.
'Computer Science > 컴퓨터구조&운영체제' 카테고리의 다른 글
[혼공학습단] 회고 (6) | 2025.08.24 |
---|---|
[혼공학습단] Week 5: 프로세스 동기화, 교착 상태 (12) | 2025.08.12 |
[혼공학습단] Week 4: 운영체제, 프로세스와 스레드, CPU스케줄링 (11) | 2025.07.30 |
[혼공학습단] Week 3 메모리와 보조기억장치, 입출력장치 (8) | 2025.07.30 |
[혼공학습단] Week 2: CPU의 작동원리와 성능 향상 기법 (3) | 2025.07.18 |