운영체제 - 메모리 재배치
- 최초 등록일
- 2012.10.04
- 최종 저작일
- 2012.10
- 36페이지/ 한컴오피스
- 가격 3,000원
소개글
운영체제 <매모리 재배치> (페이지교체 알고리즘) 과제물입니다.
목차
1. 개요
2. 관련 연구
3. 문제 해결 방법
4. 실행 결과
5. 소스코드
본문내용
1. 개요
1.1. 계획
운영체제에는 메모리라는 기억장치가 존재한다. 그 종류도 여러 가지인데 모두에 적용되는 특징 중 하나는 바로 속도가 빠를수록 가격도 그만큼 높아진다는 것이다. 즉, 현실적으로 고가의 고성능의 기억장치만을 사용할 수 없기 때문에, Cache, RAM, HDD 등을 함께 사용한다.
이러한 시스템에서 문제점은 역시나 고성능의 기억장치 사용을 요구할 경우 그것을 받아들이는데 제한이 있다는 것이다. 메모리의 사용량은 제한되어 있으나 작업을 요청하는 프로세스의 수가 너무나 많아지면 쓰레싱(thrashing)이 발생하게 되고, 그 이후부터는 시스템의 성능이 급격히 감소하게 된다. 이를 해결하기 위해 등장한 기법이 바로 가상 메모리(virtual memory) 기법인데, 이는 논리적인 방식으로 각 프로세스에 가상으로 공간을 확보해둔 것처럼 하여 여러 프로세스를 효율적으로 처리할 수 있게 하는 기법이다.
<중 략>
// 큐의 순서대로 reference bit를 확인, 먼저 발견된 victim을 교체
// class 1 check
for(i = 0; i < queue_used; i++){
if(bit[queue[i]] == 0){
found_flag = 1;
break;
}
}
if(found_flag == 0){
// class 2 check
for(i = 0; i < queue_used; i++){
if(bit[queue[i]] == 1){
found_flag = 1;
break;
}
}
}
if(found_flag == 0){
// class 3 check
for(i = 0; i < queue_used; i++){
if(bit[queue[i]] == 2){
found_flag = 1;
break;
}
}
}
if(found_flag == 0){
// class 4 check
for(i = 0; i < queue_used; i++){
if(bit[queue[i]] == 3){
found_flag = 1;
break;
}
}
}
// victim 위치의 프레임에 페이지를 저장, 큐에 적용
strcpy(&frame[5 * queue[i]], temp);
참고 자료
없음