메모리 관리 전략 배경 CPU는 PC가 지시하는 메모리로부터 다음 수행할 명령어를 가져온다. 필요에 따라 메모리와 데이터를 주고 받는다. 명령어를 가져오면 해독하고 메모리에서 피연산자(operand)를 가져온다. 피연산자에 대해 명령어를 실행한 후, 계산 결과를 메모리에 저장한다. 기본 하드웨어 운영체제를 보호하기 위해, 각 프로세스가 독립된 메모리 공간을 갖도록 보장해야 한다. 프로세스가 점유할 메모리의 주소 영역을 구한다. 이를 base register라고 한다. 프로세스가 차지할 수 있는 메모리의 영역엔 한계점이 있다. 이 끝 점을 limit register로 관리한다. base 주 메모리에 적재되어야 한다. 디스크에서 주 메모리로 적재되기를 기다리는 프로세스들을 Input Queue라고 한다. 대..
메모리
Memory Allocation Memory Allocation 정책 Continuous Memory Allocation 프로세스를 하나의 연속된 메모리 공간에 할당 고려 사항 Multi programming degree : 프로그램을 연속된 메모리에 할당하는 형태로 몇 개나 올릴 수 있는가? 연속된 공간을 어떻게 분할하여 할당할 것인가? 각 프로세스에게 얼마 만큼의 메모리 공간을 할당할 것인가? Uni-Programming 하나의 프로세스만 메모리에 할당 (가장 간단) 고려 사항 프로그램의 크기가 메모리의 크기보다 크다면? 현재 필요한 부분만 잘라 내어 메모리에 할당한다. 자르는 것은 프로그래머의 역할이다. 사용자가 프로그램의 흐름/자료구조를 완전히 파악하고 있어야 한다. 메모리가 커널 영역을 침범할..
메모리 관리 메모리 계층 구조 Block 보조기억장치와 주기억 장치 사이의 데이터 전송 단위 OS마다 차이는 있으나, 일반적으로 1~4 kb 1 Byte만 사용하더라도 Block 단위로 메모리에 올라간다. Word CPU(레지스터)와 주기억장치(메모리) 사이의 데이터 전송 단위 16 ~ 64 bit의 크기를 갖는다. Address Binding Compile time binding 프로세스가 적재될 메모리의 위치를 100% 아는 경우(절대 위치 사용) 한 번 적재되면 위치가 변하지 않는다. 프로그램 전체가 메모리에 적재된다. Load time binding 메모리 적재 위치를 컴파일 시간에 모르는 경우, 대처 가능한 상대 주소를 생성 0번에 데이터 A가 적재된다고 가정 실제로 프로그램을 실행시켰더니 40..