가상주소변환 3

[운영체제] 가상메모리와 주소 변환 - Part4. 페이징/세그먼테이션 혼용기법

앞의 두 글 Part2, Part3에서 페이징 기법에 대해 살펴보았다. 이번 글에서는 세그먼테이션의 개념과, 페이징과 세그먼테이션을 혼용한 메모리 관리 기법에 대해 다뤄보도록 한다. 세그먼테이션이란? 세그먼테이션은 메모리를 **논리적인 단위(세그먼트)**로 나누는 방식이다.프로그램은 보통 여러 영역으로 구성되는데, 예를 들어 다음과 같은 영역들이 있다.코드 영역데이터 영역스택 영역세그먼테이션은 이 각각을 별도의 세그먼트로 분리하여, 각 영역을 독립적으로 관리할 수 있도록 해준다.이 방식의 장점은 다음과 같다:논리적 구조를 명확하게 표현 가능각 세그먼트의 크기가 가변적이라 필요한 만큼만 메모리 할당 가능메모리 보호, 공유, 동적 확장 등 고급 기능에 유리하지만 단점도 있다. 단편화(fragmentatio..

[운영체제] 가상메모리와 주소 변환 - Part3. 연관/직접사상의 동적 주소변환 과정

앞선 글 Part2에서 페이지 사상표를 이용하여 동적 주소변환을 하는 직접사상에 대해 알아보았다. 이번 글에서는 주소변환의 또 다른 방식인 연관사상(associative mapping) , 그리고 연관사상과 직접사상을 같이 사용하는 연관/직접 사상에 대해 알아보도록 한다. 연관/직접 사상 방식의 주소 변환 흐름가상주소는 (p, d) 형태다.p: 가상 페이지 번호d: 해당 페이지 안에서 몇 바이트 떨어져 있는지 나타내는 변위(오프셋)이 주소를 물리주소 (p′, d)로 변환하는 과정은 다음 두 가지 중 하나로 진행된다. ✅ 1단계: 연관사상표에서 먼저 찾기프로세스가 어떤 변수나 데이터(a)를 참조하는 명령어를 실행한다.CPU가 해당 명령을 실행해 가상 주소 (p, d)를 사용해서 메모리 접근을 시도한다..

[운영체제] 가상메모리와 주소 변환 - Part2. 페이징 기법과 데이터 참조 과정

페이징이란? 페이징(paging)은 운영체제가 가상 메모리와 물리 메모리를 효율적으로 관리하기 위해 사용하는 대표적인 메모리 관리 기법이다. 핵심 아이디어는 메모리를 고정된 크기의 블록(페이지)으로 나누고, 필요한 페이지만 메모리에 적재해서 사용하는 것이다. 지난 Part1 글에서 가상 메모리와 물리 메모리의 개념에 대해 알아보았다. 페이징 기법에 대해 알아보기 전에 간단히 가상메모리와 가상 주소의 개념을 복습해보자. 가상메모리와 메모리 가상메모리는 프로세스(프로그램)가 사용하는 논리적인 메모리 공간이다.실제로는 물리메모리(RAM)와 디스크(보조기억장치)에 걸쳐 존재한다.가상메모리는 고정된 크기의 블록인 페이지(page) 단위로 나뉜다.메모리도 같은 크기의 블록인 페이지 프레임(page frame)으로 ..