페이징

    [OS] 메모리

    [OS] 메모리

    [프로세스에 할당되는 메모리의 각 영역] 프로세스의 주소 공간은 코드, 데이터, 스택 힙 영역으로 구성된다. 이렇게 나눔으로써 데이터를 공유할 수 있게 되고 메모리 사용량이 줄어든다. 코드 영역 : 사용자가 작성한 프로그램 함수 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환되어 저장되는 공간 (컴파일 타임에 결정되며, 읽을 수만 있다.) 데이터 영역 : 전역 변수 또는 static 변수 등 프로그램이 사용하는 데이터를 저장하는 공산 스택 영역 : 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터(지역변수, 매개변수, 리턴값 등)을 임시로 저장하는 공간. 힙 영역 : 프로그래머가 필요할 때마다 사용하는 메모리 영역으로 런타임 시점에 결정된다. [메모리 구조의 순서 (CPU에서 가까운 순으로 ..

    [운영체제] 페이징 교체

    [운영체제] 페이징 교체

    메인 메모리에 빈 프레임이 없을 때 어떻게 해야할까? 1 ) 페이지 폴트 발생시킨 알고리즘 종료 2 ) swap out 3 ) 교체 [페이지 교체 과정] 1 ) 보조저장장치에서 필요한 페이지의 위치를 알아낸다. 2 ) 빈 페이지 프레임을 찾는다. 비어 있는 프레임이 있다면 사용한다. 비어 있는 프레임이 없다면 희생 프레임을 선정한다. (페이지 교체 알고리즘 이용) 희생될 페이지를 보조저장장치에 기록하고, 관련 테이블을 수정한다. 3 ) 빼앗은 프레임에 새 페이지를 읽어오고 테이블을 수정한다. 4 ) 페이지 폴트가 발생한 지점에서부터 프로세스를 계속한다. [페이지 교체 장점] 1 ) 메모리 과할당 방지 2) 페이지 교체가 논리 메모리와 물리 메모리 분리를 완성시킴. [페이지와 프레임 교체 알고리즘] 페이지..

    [운영체제] 페이징 기본 개념

    [운영체제] 페이징 기본 개념

    페이징은 프로세스의 물리 주소 공간이 연속되지 않아도 되는 메모리 관리 기법으로 연속 메모리 할당의 외부 단편화와 관련 압축의 필요성 문제를 해결한다. 물리 메모리는 프레임이라 불리는 같은 크기 블록으로 나누어진다. 논리 메모리는 페이지라 불리는 같은 크기의 블록으로 나누어진다. CPU에서 나오는 모든 주소는 페이지 번호(p)와 페이지 오프셋(d) 두 개의 부분으로 나누어진다. 1 ) 페이지 번호 : 페이지 테이블을 액세스할 때 사용된다 cf ) 페이지 테이블은 물리 메모리의 각 프레임의 시작 주소를 저장하고 있다. 2 ) 오프셋 : 참조되는 프레임 안에서의 위치를 가리킨다. → 프레임의 시작 주소와 페이지 오프셋이 결합하여 물리 메모리 주소가 된다. [페이징 예시] 논리 메모리의 페이지 번호 N = 2..