메모리 관리 및 배치 기법
절대주소지정 vs 상대주소지정: 절대주소지정은 항상 동일한 메모리 위치를 사용하는 반면, 상대주소지정은 기준 주소로부터의 오프셋을 사용하여 유연하게 메모리 위치를 참조
메모리 분할: 메모리 공간을 여러 부분으로 나누어 프로세스에 할당하는 방식. 고정 분할과 가변 분할로 나뉨
외부 단편화 / 내부 단편화: 외부 단편화는 할당되지 않은 메모리 공간의 낭비를 말하고, 내부 단편화는 할당된 메모리 공간 내의 미사용 부분을 의미
코알레싱(Coalescing): 인접한 빈 메모리 블록들을 하나의 큰 블록으로 통합하는 과정
압축(Compaction): 메모리의 빈 공간을 줄이기 위해 프로세스들을 물리적으로 이동시켜 연속된 공간을 만드는 방법
버디 시스템(Buddy System): 메모리를 고정 크기의 블록으로 나누고, 요구에 맞는 크기의 블록을 할당하는 방식
페이징(Paging): 메모리를 일정 크기의 페이지로 나누고, 가상 메모리를 사용하여 물리적 메모리에 효율적으로 매핑
세그멘테이션(Segmentation): 프로그램을 의미있는 세그먼트(코드, 데이터)로 나누고, 각 세그먼트를 메모리에 독립적으로 할당
가상 메모리와 관련 알고리즘
가상 메모리: 물리적 메모리의 크기를 초과하는 프로세스를 실행할 수 있게 해주는 기술. 가상 주소를 물리 주소로 매핑
가상 주소와 물리 주소 변환: 페이지 테이블이나 세그먼트 테이블을 사용하여 가상 주소를 물리 주소로 변환
스와핑(Swapping): 메모리와 보조 저장 장치 간에 프로세스를 이동시켜 메모리를 관리하는 방법. 공간을 확보하거나 프로세스를 재배치할 때 사용
페이지 교체 알고리즘: FIFO(First-In-First-Out), LRU(Least Recently Used), LFU(Least Frequently Used), 클럭 알고리즘 등이 있으며, 이들은 메모리에서 페이지를 교체할 때 어떤 페이지를 선택할지 결정하는 방법임
쓰레싱(Thrashing): 페이지 교체가 너무 자주 일어나 프로세스 실행 시간보다 페이지 교체에 더 많은 시간을 소비하는 상황
워킹 알고리즘(Working Algorithm): 페이지 부재를 최소화하기 위한 전략으로, 사용 패턴을 기반으로 어떤 페이지를 메모리에 유지할지 결정