운영체제가 가상 메모리(Virtual Memory)를 관리할 때 사용하는 기법 중 하나이다. 프로세스는 전체 프로그램 중 일부 페이지만 메모리에 올려서 실행되는데, 메모리가 꽉 찼을 때 새로운 페이지를 넣으려면 기존 페이지 중 하나를 교체(제거)해야 함. 이때 어떤 페이지를 제거할지 결정하는 기준이 바로 페이지 교체 알고리즘임.
페이지 부재(Page Fault): 필요한 페이지가 메모리에 없어서 디스크에서 가져오는 상황
참조 비트(Reference Bit): 페이지가 최근에 사용되었는지를 나타내는 플래그
알고리즘명
요약
설명
FIFO (First-In, First-Out)
선입선출(가장 먼저 들어온 페이지 제거)
가장 먼저 들어온 페이지를 먼저 제거함. 오래된 걸 내보냄. 단순하지만 효율은 낮음.
LRU (Least Recently Used)
가장 오랫동안 사용하지 않은 페이지 제거
가장 최근에 사용되지 않은 페이지를 제거. 현실적이고 효율적이나 구현 복잡
LFU (Least Frequently Used)
가장 적게 사용된 페이지 제거
사용 횟수가 가장 적은 페이지를 제거. 자주 쓰는 페이지는 남김
OPT (Optimal)
최적 알고리즘(미래에 가장 늦게 쓸 페이지 제거)
앞으로 가장 오랫동안 사용되지 않을 페이지를 제거. 이론적으로 가장 좋은 알고리즘이지만 미래 예측이 필요해 실제 구현 불가
NRU (Not Recently Used)
최근에 사용되지 않은 페이지 제거
최근 사용 여부(참조 비트) 기준으로 페이지를 분류해 제거.
Second Chance (Clock)
기회 부여 알고리즘
FIFO 개선형. 참조 비트로 사용 여부를 보고 다시 기회를 주는 방식. 시계바늘처럼 회전하며 검사
Q. 페이지 부재 수 계산
❓ 요청 순서: 7, 0, 1, 2, 0, 3, 0, 4
프레임 수: 3개 / 알고리즘: FIFO
초기 상태: 프레임 비어있음
FIFO : 선입선출이라 맨 앞에꺼 밀어냄.
LRU : 최근꺼 남기고 오래된거 비우는거라서 겹치는게 들어오면 최신으로 업데이트. 그 후 오래된거 밀어냄.
LFU : 기본적으로 오래된거 비우는건 똑같은데, 겹치는게 들어오면 위에 작게 숫자 쓰고, 다른게 들어오면 숫자 적은것 + 오래된거 밀어냄.
이렇게 3개가 주로 나올꺼다.
OPT는 애매한게, 가장 최적임과 동시에 가장 현실성이 떨어짐.
미래에 가장 늦게 사용될 애를 없애는건데 그걸 어캐앎?
(앞으로 가장 오랫동안 사용되지 않을 페이지를 미리 알고 교체 -> 이론적으로 최소한의 페이지 부재 수를 보장)
단, 비교문제는 나올 수 있음. 무조건 FIFO, LRU, LFU 보다 성능이 가장 좋을꺼임.
-ICMP(Internet Control Message Protocol): 네트워크에서문제 상황을 알려주는 메시지 전용 프로토콜.IP계층(3계층)에서 동작하며, 오류나 상태정보를 알려주는 도우미 역할.
-ping: 상대방 컴퓨터(서버)가 살아있는지 확인하는 명령어. ICMP를 사용해서 상대방에게 작은 패킷(핑 요청)을 보내고 응답이 오면 "접속 가능", 안 오면 "접속 불가"로 판단한다.
-DNS (Domain Name System): 사람이 기억하기 쉬운 도메인 주소를 숫자 IP 주소로 바꿔주는 시스템. 응용계층에서 IP 주소가 필요하니까, 요청해서 받아온다. (단, 주소를 바꿔주기만 할 뿐,주소 자체를 전달하거나 라우팅하지 않기 때문에응용계층에 속함)