728x90
가상기억장치
- 보조기억장치의 일부를 주기억장치처럼 사용하는 것
- 프로그램을 여러 개의 작은 블록 단위로 나누어 가상기억장치에 보관, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당
- 주소 변환 작업이 필요함
- 페이징 기법, 세그멘테이션 기법
페이징 기법
- 가상기억장치에 보관된 프로그램, 주기억장치의 영역을 동일한 크기로 나눈 후 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법
- 프로그램을 일정한 크기로 나눈 단위 = 페이지, 페이지 크기로 일정하게 나누어진 주기억장치 단위 = 페이지 프레임
- 내부단편화 발생
- 페이지 맵 테이블 필요
- 비용 증가, 처리 속도 감소
세그멘테이션 기법
- 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법
- 논리적인 크기로 나눈 단위 = 세그먼트
- 기억장치의 사용자 관점을 보존하는 기억장치 관리 기법
- 세그먼트 맵 테이블 필요
- 외부단편화 발생
페이지 교체 알고리즘
- 페이지 부재 발생 시 어떤 페이지 프레임을 선택하여 교체할 것인지 결정하는 기법
- OPT, FIFO, LRU, LFU, NUR, SCR
- OPT(최적 교체) : 가장 오랫동안 사용하지 않을 페이지 교체 기법, 페이지 부재 횟수 가장 적게 발생
- FIFO(First In FIrst Out) : 가장 먼저 들어와서 가장 오래 있었던 페이지 교체
- LRU(Least Recently Used) : 최근에 가장 오랫동안 사용하지 않은 페이지 교체기법
- LFU(Least Frequently Used) : 사용 빈도가 가장 적은 페이지 교체 기법
- NUR(Not Used Recently) : 최근에 사용하지 않은 페이지 교체 기법
- 참조 비트, 변형 비트 사용,
- 참조 0 변형 0 교체 순서 1, 참조 0 변형 1 교체 순서 2, 참조 1 변형 0 교체 순서 3, 참조 1 변형 1 교체 순서 4
페이지 크기
- 페이지 크기 작을 경우
- 페이지 단편화 감소, 효율적인 워킹 셋 유지, 기억장치 효율 높아짐, 전체적인 입출력 시간이 늘어남
- 페이지 크기 클 경우
- 페이지 단편화 증가, 불필요한 내용까지 주기억장치에 적재, 전체적인 입출력 시간 작아짐
Locality
- 프로세스가 실행하는 동안 주기억장치를 참조할 떄 일부 페이지만 집중적으로 참조하는 성질
- 스레싱 방지
- 시간 구역성, 공간 구역성
- 시간 구역성(Temporal Locality)
- 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스
- 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음
- 루프, 스택, 부 프로그램, 카운팅, 집계
- 공간 구역성(Spatial Locality)
- 프로세스 실행 시 일정 위치의 페이지 집중적으로 액세스
- 배열 순회, 순차적 코드 실행, 같은 영역에 있는 변수
워킹 셋(Working Set)
- 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
- Locality 특징 이용
- 시간에 따라 변경됨
페이지 부재 빈도 방식
- 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상, 페이지 부재 빈도(PFF)는 페이지 부재 횟수
- 프리페이징 : 처음의 과도한 페이지 부재 방지를 위해 필요할 것 같은 모든 페이지를 한꺼번에 페이지 프레임에 적재하는 기법
스래싱(Thrashing)
- 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
- 전체 시스템 저하
- 다중 프로그래밍 정도가 높아짐에 따라 CPU의 이용률이 특정 시점까지 높아지지만, 더 커지면 스래싱 발생, CPU의 이용률은 급격히 감소
- 방지 방법 : 페이지 부재 빈도 조절, 워킹 셋 유지, 일부 프로세스 중단
'자격증 > 정보처리기사' 카테고리의 다른 글
158. 주요 스케줄링 알고리즘(A) (0) | 2023.02.06 |
---|---|
156. 프로세스의 개요(A) (0) | 2023.02.06 |
151. UNIX / LINUX / MacOS(A) (0) | 2023.02.05 |
142~146. 절차적, 객체지향, 스크립트, 선언형 언어, 라이브러리(A) (0) | 2023.02.05 |
139. 포인터(B) (0) | 2023.02.05 |