mmu

    [OS] 메모리

    [OS] 메모리

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

    [운영체제] 메인 메모리

    [운영체제] 메인 메모리

    CPU는 레지스터, 캐쉬, 메인 메모리에만 접근이 가능하다. 따라서 프로그램을 실행하기 위해선 메인 메모리에 프로그램을 적재해야한다. 메인 메모리의 데이터를 읽어서 조작하는 과정은 CPU에 있는 레지스터를 동작하는 것보다 느린데, CPU가 메인 메모리에서 데이터를 읽어오기를 기다리는 것을 stall이라고 한다. 따라서 이런 대기 시간을 줄이기 위해서 캐쉬에 일부 내용을 저장함으로써 속도 문제를 어느정도 해결한다. 프로세스가 실행될 때 실행 중인 프로세스는 메모리의 보호를 위해 os와 서로 다른 프로세스에 접근이 불가능해야 한다. → base와 limit registers 페어를 정의함으로써 프로세스 범위 만큼만 접근 가능하게 한다. → base ≤ x < base + limit [주소 할당] 프로그램은 ..