2023.01.25 - [정보처리기사/필기] - [정보처리기사] Part04-03-1. 운영체제 기초 활용 (3)
Contents
UNIX, WINDOWS
메모리 관리
- 메모리는 실행할 프로그램과 데이터 저장, CPU와 제어장치 통해 명령 수행
- 핵심은 언제, 어디로, 어느 영역을 사용하는지에 대한 관리 정책 정하고 정책에 따라 메모리 이용하는 것
메모리 관리 정책
- 메모리 관리 통해 메모리 낭비 줄이고 접근 빈도 최소화하여 실행 시간 최적화 가능
정책 | 기법 | 상세 설명 |
반입정책 (Fetch) |
요구반입 | 실행 중 프로그램이 타 프로그램 및 데이터 참조 요구 시 적재 |
예상반입 | 실행 중 프로그램에 참조될 프로그램 및 데이터 예상 적재 | |
배치 정책 (Placement) |
최초적합 First Fit |
프로그램, 데이터가 들어갈 수 있는 빈 영역의 첫 번째 분할 영역에 배치 |
최적적합 Best Fit |
프로그램, 데이터가 들어갈 수 있는 빈 영역 중 단편화를 가장 적게 남기는 분할 영역에 배치 | |
최악적합 Worst Fit |
프로그램, 데이터가 들어갈 수 있는 빈 영역 중 가장 큰 영역에 배치 | |
교체 정책 (Replacement) |
OPT | - 추후 가장 오랫동안 사용하지 않을 페이지 교체 - 호출 순서 및 참조상황 사전 예측 필요 |
FIFO | - 적재시간 기억, 오래된 페이지 교체 - 이해성, 프로그래밍 간단, Belady's 이상현상 발생 |
|
LRU | - 최근 가장 오랫동안 미사용 페이지 교체 - 계수기, 스택 사용 |
|
LFU | - 사용페이지 빈도 수가 가장 적은 페이지 교체 - 프로그램 실행 초기 많이 사용된 페이지 유리 |
|
NUR | - 최근에 사용하지 않은 페이지 교체 - 참조 비트, 변형 비트 2개의 비트 사용 |
주기억장치 분할 - 시스템 프로그램 영역
- 컴퓨터가 구동되기 시작해서부터 종료될 때까지 주기억장치에 유지되어야 함
- 운영체제가 저장되는 곳으로 상주 구역과 비상주 구역으로 분류
- 상주 구역 : 언제라도 바로 실행될 수 있는 운영 체제 기본적 기능과 자주 사용되는 프로그램들이 기억되는 주기억장치 영역
- 비상주 구역 : 자주 사용되는 프로그램들이 아니고 필요할 때 보조기억장치에서 인출된 후 저장되었다가 처리가 끝나면 다른 프로그램이 다시 그 장소를 사용 가능한 구역
주기억장치 분할 - 사용자 응용 프로그램 영역
- 응용 프로그램은 실행될 때 주기억장치에 저장 후 수행 종료되면 다른 프로그램으로 대체되거나 삭제됨. 그리고 전원이 중단되면 해당 프로그램은 삭제됨
- 프로그램을 여러 부분으로 분할 및 독립된 프로그램들 기억시켜 다중 프로그래밍 방식으로 동작하는 것을 가능케 함
단일 사용자 할당기법
- 운영 체제가 차지하는 부분을 제외한 나머지 기억공간 부분을 한 사용자가 독점 사용하도록 하는 기법
- 사용자에게 융통성 최대한 제공
- 최대 단순성과 최소 비용 만족
- 특별한 하드웨어 필요 없으며 운영 체제 소프트웨어도 필요 없음
- 사용자가 사용하는 부분 이외의 부분은 낭비가 될 수 있음
- 입/출력을 수행하는 동안 주기억장치 내 프로그램은 CPU를 계속 쓸 수 없기에 유휴 상태가 되므로 활용도 낮음
- 프로그램이 주기억장치 용량보다 큰 경우 이를 수행시키기 어려움
고정 분할 할당기법
- 각 프로그램에 고정된 동일 크기 분할된 구역을 할당하는 방법
- 프로그램이 적재되고 남은 공간에 다른 프로그램 적재하여 수행하므로 프로세서와 기억장치 같은 자원 활용도 크게 향상시킴
- 동시에 여러 프로그램을 주기억장치에 적재하여 수행하는 다중 프로그래밍 기법이 가능
- 할당되는 저장 공간이 작고 저장될 프로그램이 큰 경우 프로그램이 작은 단위로 쪼개지는 단편화 문제 발생
가변 분할 할당기법
- 단편화 해결하기 위해 각 작업에 대한 필요한 만큼의 공간만을 할당하는 기법
- 주기억장치 내 새로운 프로그램 들어올 때마다 그 프로그램 크기에 맞추어 가변적으로 기억공간 분할하여 프로그램에 맞는 공간 할당함
분산메모리 분할
구분 | 상세 내용 | 특징 |
고정 분할 | 고정된 분할 크기 사용 | 내부 단편화, 외부 단편화 발생 |
사용자 프로그램 < 분할 크기 : 내부 단편화 | ||
사용자 프로그램 > 분할 크기 : 외부 단편화 | ||
가변 분할 | 분할 영역 크기가 동적으로 변경 | 외부 단편화 발생 |
내부 단편화 발생 방지 |
분산메모리 할당 방식
페이징 기법(Paging)
- 페이지라고 불리는 프로세스 영역들이 프레임이라고 불리는 고정 크기 블록 메모리 영역에 할당됨
- 내부 단편화 발생
- 페이지 크기가 작으면 내부 단편화 감소하나 페이지 테이블 많이 유지해야 함
- 페이지 테이블 : 논리 메모리 페이지 번호와 물리 메모리 프레임 번호를 매핑한 테이블
세그먼테이션 기법(Segmentation)
- 서브루틴, 모듈 등 크기별로 메모리를 가변 크기로 할당
- 프로그램은 코드, 데이터, 스택, 세그먼트로 구성
- 세그먼트 테이블은 주기억장치에 존재하며, 외부 단편화 문제 발생
기억장소의 집약
- 주기억장치를 검사하여 빈 영역을 하나의 커다란 빈 영역으로 만드는 방법
- 운영 체제는 사용 중인 블록을 한데 모으고, 비어 있는 기억 장소를 하나의 커다란 공백으로 만듦
- 기억장소에 분산되었던 공간들을 한 영역에 모음으로써 사용 가능한 큰 영역 생성 가능
- 이를 통해 기억장소 낭비 감소 가능
단편화(Fragmentation) 문제점과 해결 방법
- 주기억장치 상에서 프로그램에 의해 사용되지 못하고 낭비되는 부분적인 기억 공간 의미
구분 | 발생 원인 |
고정 분할 [내부 단편화, 외부 단편화] |
- 사용자 프로그램 크기가 정해진 분할 크기에 정확히 맞지 않으면 내부 단편화 발생 - 분할된 크기가 대기 중인 작업 중 하나도 맞는 것이 없는 경우 그 분할이 사용되지 않은 상태로 남게 되므로 외부 단편화 발생 |
가변 분할 [외부 단편화] |
- 가변 분할은 분할 영역 크기가 동적으로 변경될 수 있으므로 내부 단편화는 발생하지 않지만 외부 단편화 발생 가능 |
해결 방안 | 상세 내용 | 특징 |
통합 (Coalescing) |
인접한 단편화된 공간을 하나로 통합 | 위치 제한 없음 |
압축 (Compaction) |
분산된 단편화된 공간을 한 쪽 끝에서 결합 | 메모리 한 쪽 끝 |
※ 압축의 한계 : 프로세스들 재배치가 실행 시간, 즉 동적 수행 시에 가능함 | ||
프레임 (Frame) |
고정된 크기 메모리 사용으로 내부 단편화 해결 | 고정 크기 |
메모리 인터리빙(Memory Interleaving)
- 기억장치 모듈에 순차적으로 접근하여 접근 시간 최소화하고 성능 향상할 수 있음
- 메모리를 복수 개 모듈 또는 뱅크로 나누고 각 모듈에 연속적인 주소 부여하여 동시 접근 가능케 하는 기법
상위 인터리빙
프로그램과 데이터들이 독립적이어서 각각의 기억 모듈에 저장하는 것이 더 효과적인 다중 프로그래밍에 사용
하위 인터리빙
연속된 주소가 연속된 다수 모듈에 동시 동작하며, 단점은 확장이 어렵고 어느 한 모듈 오류가 전체에 영향을 미침
혼합 인터리빙
기억장치 모듈을 뱅크(Bank)로 그룹화하고 각 그룹 내에서 하위 인터리빙 하는 방식
320x100
'정보처리기사 > 필기' 카테고리의 다른 글
[정보처리기사] Part04-03-1. 운영체제 기초 활용 (6) (3) | 2023.02.14 |
---|---|
[정보처리기사] Part04-03-1. 운영체제 기초 활용 (5) (5) | 2023.02.13 |
[정보처리기사] Part04-03-1. 운영체제 기초 활용 (3) (12) | 2023.01.26 |
[정보처리기사] Part04-03-1. 운영체제 기초 활용 (2) (14) | 2023.01.25 |
[정보처리기사] Part04-03-1. 운영체제 기초 활용 (1) (4) | 2023.01.24 |
댓글