일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 시큐리티 로그아웃
- 코딩테스트
- input태그
- programmers
- sql
- 시큐리티 로그인
- 시큐리티
- 반복문
- springSecurity
- springboot
- 시큐리티로그인
- java
- 2차원배열
- 소스트리
- Linux
- javascript
- 스프링 부트
- codingtest
- 프로그래머스
- 로그인
- StyleSheet
- 리눅스
- 목록
- Spring boot
- JAVA11
- html
- 싱글톤
- security
- css
- gradle
Archives
- Today
- Total
JAVAIARY
기억장치 본문
1. 기억장치의 관리 전략
- 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여
한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것
1) 종류
- 반입(Fetch) 전략 : 적재 시기 결정
요구 반입 | 실행중인 프로그램이 특정 프로그램/데이터 등의 참조를 요구할 때 적재하는 방법 |
예상 반입 | 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법 |
- 배치(Pacement) 전략 : 적재 위치 결정
프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역에 해당
최초 적합(First fit) | 빈 영역 중 첫 번째 분할 영역에 배치시키는 방법 |
최적 적합(Best fit) | 빈 영역 중 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법 |
최악 적합(Worst fit) | 빈 영역 중 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법 |
- 교체(Replacement) 전략 : 주기억장치가 Full 일 때(모두 사용 중) 교체하여
새로운 프로그램을 적재시킬 위치(교체위치) 결정- 종류 : FIFO, OPT, LRU, LFU, NUR, SCR 등
2. 주기억장치 할당기법
1) 연속 할당 기법
- 프로그램을 주 기억 장치에 연속으로 할당하는 기법
- 단일 분할 할당 기법
- 주기억장치를 운영체제 영역과 사용자 영역으로 나누어, 한순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
- 경계 레지스터가 사용됨(운영체제/사용자 영역 구분)
- 프로그램의 크기가 작을 경우, 사용자 영역이 낭비될 수 있음
- 오버레이 기법 : 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
- 스와핑 기법 : 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체 - 다중 분할 할당 기법
- 고정 분할 할당 기법(정적 할당 기법)
프로그램 할당 전, 운영체제가 주기억장치의 사용자영역을 여러 개의 고정된 크기로 분할하고,
준비상태 큐에서 준비중인 프로그램을 할당하여 수행
- 가변 분할 할당 기법(동적 할당 기법)
프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할
고정 분할 할당 기법의 단편화를 줄이기 위해 사용
2) 분산 할당 기법
- 프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법
- 페이징 기법
- 세그먼테이션 기법
3. 가상기억장치 구현 기법
1) 가상기억장치(Virtual Memory)
- 보조기억장치의 일부를 주기억장치처럼 사용하는 것
- 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상기억장치에 보관해놓고,
프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리 - 주기억장치의 이용률과 다중 프로그래밍의 효율 상승
- 블록단위를 나누어 사용하므로 연속 할당 방식에서 발생할 수 있는 단편화 해결
- 구현 방법 : 페이징 기법, 세그먼테이션 기법 (분산 할당 기법)
2) 가상 기억장치 구현 기법
- 페이징 기법
- 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후
나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법 - 페이지: 프로그램을 일정한 크기로 나눈 단위
- 페이지 프레임: 페이지 크기로 일정하게 나누어진 주기억장치의 단위
- 내부단편화 발생 가능
- 주소 변환을 위해 페이지 맵 테이블(Page Map Table)필요
- 페이지 맵 테이블 사용으로 비용 증가, 처리속도 감소
- 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후
- 세그먼테이션 기법
- 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위(작업 단위)로 나눈 후
주기억장치에 적재시켜 실행시키는 기법 - Segment : 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위
각 세그먼트는 고유한 이름과 크기를 가짐 - 기억공간 절약 가능
- 주소 변환을 위해 세그먼트 맵 테이블(Segment Map Table)필요
- 외부단편화 발생 가능
- 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위(작업 단위)로 나눈 후
4. 페이지 교체 알고리즘
- 페이지 부재(Page Fault)가 발생하면 가상기억장치에서 필요한 페이지를 찾아 주기억장치에 적재 해야함
이 때 주기억 장치의 모든 페이지 프레임이 사용중일 때, 교체할 페이지 프레임을 선택하는 알고리즘 - 페이지 부재: 참조하려는 페이지가 페이지프레임에 올라와있지 않은 상태
- OPT(OPTimal replacement, 최적 교체)
- 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체
- 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
- FIFO(First In First Out)
- 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체
- 이해가 쉽고 설계및 프로그래밍이 간단
- LRU(Least Recently Used)
- 최근에 가장 오랫동안 사용하지 않은 페이지를 교체
- 각 페이지마다 Counter나 Stack을 두어 현 시점에서 가장 오랫동안 사용하지 않은 페이지 교체
- LFU(Least Frequently Used)
- 사용빈도가 가장 적은 페이지를 교체
- 사용빈도가 많은 페이지는 교체되지 않고 사용됨
- NUR(Not Used Recently)
- 최근에 사용하지 않은 페이지를 교체
- 최근에 사용되지 않은 페이지는 향후에도 사용되지 않을 가능성이 높다는 것을 전제로함
- 최근의 사용여부를 확인하기 위해 각 페이지마다 참조비트(Reference Bit)와 변형비트(Modifed Bit)가 사용됨
- 참조비트와 변형비트의 값에 따라 교체될 페이지의 순서가 결정됨
- 참조비트 : 호출 (1 , 0)
- 변형비트 : 사용 (1 , 0)
- SCR(Second Chance Replacement, 2차 기회 교체)
- 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법
- FIFO 단점 보완을 위해 사용
5. 관리 사항
1) 페이지 크기
- 페이징 기법 사용시 페이지의 크기에 따라 시스템에 미치는 영향이 다름
- 페이지 크기가 작을 경우
- 페이지 단편화 감소, 페이지의 주기억장치로의 이동시간 감소
- 효율적인 워킹셋 유지(불필요한 내용 적재 확률 감소)
- 페이지 맵 테이블 크기 증가, 매핑 소요 시간 증가
- 디스크 접근 횟수가 증가하므로 전체 입/출력 시간은 증가함
- 페이지 크기가 클 경우
- 페이지 맵 테이블의 크기 감소, 매핑 소요 시간 감소
- 디스크 접근 횟수가 감소하므로 전체적인 입/출력 효율성 증대
- 페이지 단편화 증가, 페이지의 주기억장치로의 이동시간 증가
2) Locality
- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
- 스레싱(잦은 페이지 부재로 인한 잦은 페이지 교체) 방지하기 위한 워킹셋 이론의 기반
- 로컬리티의 종류
- 시간 구역성 : 하나의 페이지를 일정 시간동안 집중적으로 액세스 하는 현상
- 공간 구역성 : 일정 위치의 페이지를 집중적으로 액세스 하는 현상
3) 워킹 셋(Working Set)
- 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
'정보처리기사' 카테고리의 다른 글
운영체제(Operating System) (0) | 2023.07.16 |
---|---|
12장 제품 소프트웨어 패키징 : 버전 관리, 빌드 자동화 도구 (0) | 2023.07.16 |
12장 제품 소프트웨어 패키징 (0) | 2023.07.15 |