최초 작성일: 2024-08-19
최종 작성일: 2024-08-19
목표 : 정처기 합격 및 CS 지식 쌓기
가상기억장치
주기억장치를 가상적으로 사용하는 것
(보조 기억 장치(2TB등 용량이 큼)에 프로그램을 설치 후, 거기에 프로그램을 실행하면
해당 프로그램이 램으로 올라감.
프로그램이 랩에 올라가는 순간 프로세스가 되고
해당 프로세스를 실행하는 것이 프로세서(CPU)임
보조 기억 장치 일부를 마치 주기억 장치 처럼 사용하는 것은 가상 기억 장치힘.
다만, 가상 기억장치에서 실행되는 프로그램은 주기억 장치에 올린 것과 동일하게 CPU가 참조하거나 그러지는 않음(속도가 느리기 때문에)
현재 주기억 장치 에서 올라갔으나 실행하지 않은 것들을 보조 기억 장치에 특정한 위치에 보관하고 읽고 쓰기만 함.
주기억장치(프로그램이 올라가는, 프로세스가 저장되는)
1. 반입 전략
A. 요구 반입
B. 예상 반입
2. 배치 전략
A. 최초 적합
B. 최적 적합
C. 최악 적합
3. 교체 전략
A. FIFO
B. OPT
C. LRU
D. LFU
E. SCR
F. NUR
4. 단일 분할 할당 기법 : 스와핑, 오버레이
5. 다중 분할 할당 기법 : 페이징 기법, 세그먼트 기법
6. 단편화 : 외부 단편화, 내부 단편화
(통합 기법, 압축 기법-> 재배치 기법, 인접한것 들끼리 통합)
1. 가상 기억 장치
A. 개념
i. 보조기억장치(하드디스크)의 일부를 주 기억장치 처럼 사용하는 기법
ii. 주기억장치의 용량이 작더라도 가상기억장치를 통해 큰 용량처럼 사용할 수 있다
iii. 프로그램을 여러 개의 작은 블록 단위로 나누어 가상기억장치에 보관하고, 피요할떄 해당 블록만 주기억장치에 할당한다.
iv. 주기억장치의 용량보다 큰 프로그램을 실행할 수 있으며, 주기억장치의 이용률과 다중 프로그래밍(여러 개의 프로그램이 동시에 실행, 시 분할 프로그램, 다중처리, 다중 모드 시슽메, 분산 처리 시스템을 활용함) 효율을 높일 수 있다.
v. 가상 기억장치의 주소를 주기억장치의 주소로 변환하는 주소 변환 작업이 필요하다(매핑 작업)
vi. 연속할당 방식에서 발생하는 단편화 문제를 해결할 수 있다.
B. 블록 분할 방법
i. 페이징 기법 – 크기를 고정적으로 나누어
1. 가상기억장치를 모두 같은 크기의 블록(페이지)으로 편성하여 운영하는 기법
2. 외부 단편화는 발생하지 않으나 내부 단편화는 발생
3. 가상 메모리를 페이지로 물리 메모리를 프레임으로 나누며, 주소 변환을 위해 페이지 맵 테이블이 필요하다
4. 가상 기억 장치에 있는 것을 페이지라고 하고 랩을 프레임이고 함.
5. 페이지 크기에 따라 기억 장치 효율, 단편화, 입출력 시간, 맵테이블 크기가 달라진다.
페이지 크기 | 기억장치효율 | 단편화 | 입출력 시간 |
맵 테이블 |
클수록 | 감소 | 증가 | 감소 | 감소 |
작을 수록 | 증가 | 감소 | 증가 | 증가 |
6. 세그먼테이션 기법 – 가변 분할
A. 가상 메모리를 크기가 다른 논리적 단위인 세그먼트로 분할하고 메모리를 할당하는 기법
B. 세그먼트 테이블을 참조하여 주소변환을 수행
C. 기억공간을 절약하기 위해 사용되며, 세그먼트가 주기억장치에 적재될떄 다른 세그먼트에게 할당된 영역을 침범할 수 없다.
D. 내부 단편화는 발생하지 않으나, 외부 단편화는 발생
E. 세크먼테이션
F. 프로그램에서는
G. 데이터 : 전역변수, 정적 데이터
H. 코디 : 코드
I. 스텝 : 지역변수
J. 힙 영역:동적 변수
K. -> 이걸 페이징 기번으로 나누면 각영역별로 분리 해야하고 세그먼트 영역 에 따라가변으로 영역 분할 가능
L. 페이징 기법 : 고정 분할 (내부 단편화 발생), 페이징 맵 테이블이 존재
M. 세그멘테이션 분할: 가변 분할 (외부 단편화 발생), 실제 주소 계산 하는 방법 확인 필요
2. 가상 기억 장치 기타 관리 사항
A. 페이지 부재(page fault)
i. 프로세스 실행 중 필요한 페이지가 주기억장치에 없는 상황( 보고 기억 장치에 해당 페이지가 있는 경우암)
ii. 페이지 부재가 발생하는 횟수를 페이지 부재 빈도라고 한다
iii. 지역성 (locality, 공간/시간 지역서)
iv. 프로세스가 실행되는 동안 주기억장치에서 일부 페이지만 집중적으로 참조하는 성질
v. 스레싱 방지와 워킹 셋 이론의 기초가 된다
vi. 내가 어떤 걸 참조하는 경우, 그것과 비슷한 것을 참조할 확률이 높음-> 지역성 -> 그래서 관련된 걸 다 가져오는 것
B. 구역성의 종류
i. 시간 구역성: 하나의 페이지가 짧은 시간동안 집중적으로 참조
ii. 공간 구역성: 배열을 순회 하는 등 프로세스 실행 시 특정위치의 페이지들이 집중적으로 참조 ( 배열순회, 순차적 코드 실행 등)
C. 워킹 셋(비슷 한 것 끼리 같이 가져오는 것)
i. 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
ii. 워킹 셋을 주기억 장치에 상주시켜 페이지 부재와 페이지 교체 현상을 줄이고 프로세스의 메모리 사용을 안정화 한다
iii. 워킹 셋은 시간에 따라 변화한다
D. 스레싱(thrashing)
i. 프로세스 처리 시간 보다 페이지 교체(입출력)에 소요되는 시간이 더 많아지는 현상
ii. 자주 페이지 부재가 발생하여 시스템 성능이 저하되는 상황
iii. 스레싱 현상 :프로그램 하나를실행 시킬수록 cpu성능이 확 올라가다가 어느 순간 해당 성늠이 확 떨어짐 -> 주기억장치는 한정적인 공간을 가지고 있음 -> 여러 프로그램을 실행하는 경우, 주기억 장치상 동시 실행은 어렵고 실행안하는 프로그램은 보조기억 장치에 보관 하고 있음 -> cpu가 주기억 장치에 있는 프로그램을 실행하는 것보다 보조 기억 장치에 있는 프로그램을 읽고 쓰는 시간이 더 걸려서 cpu 성능이 확 떨어지는것
iv. 스레싱을 방지하는 방법
1. 다중 프로그래밍의 정도 조정
2. 페이지 부재 빈도 조절
3. 워킹 셋 유지 ( 그냥 같이 들고 들어옴)
4. 자원 증설 및 일부 프로세스 중단
5. Cpu 성능 분석
E. 페이지 교체 알고리즘 (반입,배치,교체)
i. FIFO(FIRST IN FIRST OUT)
1. 가장 먼저 메모리에 적재된 페이지를 먼저 교체하는 기법
ii. OPT(Optimal Replacement, 최적교체)
1. 미래에 가장 오랫동안 사용되지 않을 페이지를 교체하는 기법
2. 이론적으로만 존재
iii. LRU(Least Recently Used)-가장 오랫동안 사용되지 않은 페이지를 교체하는 기법
iv. LFU(Least Frequently Used); 사용빈도가 가장 적은 페이지를 교체하는 기법 (빈도수를 확인 하는 방법)
v. NUR(Not Used Recently) : 각 페이지마다 참조비트와 변형비트를 사용하여 최근 사용여부를 확인한다. 참조되지 않고 수정되지 않은 페이지를 우선적으로 교체하는 기법
'스터디스터디 > 정처기' 카테고리의 다른 글
[실기] 운영체제- 환경변수, 로그파일, 스토리지 (1) | 2024.08.26 |
---|---|
[실기] 운영체제- 병행 프로세스와 교착 상태 (0) | 2024.08.26 |
[실기] 운영체제- 프로세스 (0) | 2024.08.20 |
Repository (1) | 2023.10.23 |
[WIP]정처기필기시험(1/9) (0) | 2023.07.19 |