들어가기 전, OS 공부 위치와 오늘의 핵심은?
- OS의 핵심 서비스 세 가지 중 자원 접근 및 할당 서비스인 메모리 페이징, 스와핑, 가상 메모리를 배우고 있다.
💡 OS 핵심 서비스 3
1. 프로세스 관리
- 프로세스와 스레드, 프로세스 동기화, 교착 상태 해결
2. 자원 접근 및 할당
- CPU 스케줄링, 메모리 페이징, 스와핑, 입출력장치 인터럽트 서비스 루틴
3. 파일 시스템 관리
- 관련 정보를 묶어 파일 단위와 파일을 묶어 폴더(디렉터리) 단위로 저장 장치에 보관
오늘의 핵심
개발자가 실제 운영체제에서 가상메모리를 사용하고 있기 때문에 메모리에서 가장 중요한 개념은 가상 메모리이다.
[연속 메모리 할당의 문제점을 채우는 메모리 압축]
- 연속 메모리 할당의 문제점인 외부 단편화를 해경하는 메모리 압축 방식
연속 메모리 할당의 기본 메모리 활용 방식 : 스와핑
- 현재 사용되지 않는 프로세스롤 보조기억장치(스왑 영역)로 옮기고 그 빈공간에 새 프로세스를 적재하는 방식
연속 메모리 할당의 세 가지 방식 : 최초, 최적, 최악 적합
-
최초 적합 (first-fit)
순차적으로 빈 공간을 찾다가 발견 시 바로 프로세스 배치
-
최적 적합 (best-fit)
검색한 모든 빈 공간 중 가장 작은 공간에 프로세스 배치
-
최악 적합 (worst-fit)
검색한 모든 빈 공간 중 가장 큰 공간에 프로세스 배치
연속 메모리 할당의 문제점 : 외부 단편화
- 메모리를 연속적으로 할당했기 때문에, 프로세스 종료 후 메모리 사이 사이에 새 프로세스가 들어갈 수 없는 빈 공간 발생
외부 단편화 해결 방식 : 메모리 압축 (compaction)
- 메모리의 흩어진 빈 공간을 하나로 모으는 방식. 하지만 메모리 이동이 잦아 오버해드 발생 가능성이 높다.
[앞선 문제점을 해결해줄 가상 메모리]
- process 전체를 메모리에 올리지 않더라도 실행이 가능한 방식
페이징 방식
세그멘테이션 방식
요구 페이징(demand paging)
Page fault
page 교체
- page fault가 발생하면, 요청된 page를 디스크에서 메모리로 가져온다. 이 때, 물리적 메모리에 공간이 부족하면 메모리에 올라와 있는 page를 디스크로 옮겨서 메모리 공간을 확보해야 하며 이를 page 교체라고 한다.
page 교체 알고리즘(replacement algorithm)