메모리 3

[OS/운영체제] 가상 메모리 (Virtual Memory) - (1)

가상 메모리 (Virtual Memory) 지금까지 살펴본 메모리 관리 기법은 명령어가 반드시 물리적 메모리에서 실행되어야 한다는 필요에 의해 사용되었다. 연산이 반드시 물리적 메모리에서 실행되어야 한다는 것은 당연한 것처럼 보이지만, 물리적 메모리의 크기에 따라 한계를 가지게 된다. 프로그램은 일반적으론 발생하지 않는 오류들에 대한 코드들과 같이 프로그램을 실행하는 동안 어쩌면 절대로 실행되지 않을 부분들이 존재한다. 또한 배열, 테이블과 같은 자료구조들은 보통 실제로 필요한 양보다 더 많은 양의 메모리를 할당받는다. 이런 상황들을 보았을 때, 프로그램의 모든 부분이 항상 동시에 필요하진 않을 수 있다. 따라서, 프로그램의 일부만 실제 메모리를 할당하여 실행하는 방법은 효과적일 것이다. 프로그램은 더 ..

운영체제 2020.11.14

[OS/운영체제] 메인 메모리 (Main Memory) - (2)

Swapping 프로세스는 실행되기 위해선 반드시 메모리에 존재해야 한다. 하지만 프로세스는 일시적으로 메모리 밖의 Backing Store의 프로세스와 교체될 수 있다. 멀티프로그래밍 환경에서 RR CPU 스케줄링 알고리즘을 사용하는 상황을 예시로 들어보자. 만약 한 Time Quantum이 종료된다면, 종료된 프로세스와 다음 Time Quantum동안 실행될 프로세스가 교체될 것이다. 다음으로 실행될 프로세스를 메모리에 올리는 것이다. 이상적으로는 CPU 스케줄러가 CPU 스케줄을 변경할 때 일부 프로세스가 메모리에 저장되어 실행 준비가 될 정도로 프로세스를 빠르게 교체할 수 있다. (단, Time Quantum은 Swapping 간에 적절한 양의 컴퓨팅이 이루어질 수 있을 만큼 충분히 커야 한다.)..

운영체제 2020.11.12

[OS/운영체제] 메인 메모리 (Main Memory) - (1)

배경 메모리는 현대 컴퓨터 시스템 동작의 주축이다. 메모리는 각자의 주소를 가진 대용량의 바이트(byte) 배열과도 같다. CPU는 메모리로부터 Program counter에 대응하는 연산을 fetch하며, 이 연산들은 특정 메모리 주소에 대한 추가적인 load, store가 필요할 수 있다. 전형적인 연산-실행 순환 과정(Instruction-Execution Cycle)은 다음과 같다. 1. 연산이 메모리로부터 fetch된다. 2. 해당 연산은 decode되어 다른 피연산자를 메모리로부터 fetch할 수도 있다. 3. 연산이 피연산자에 대해 실행되면, 결과는 다시 메모리에 저장(store)된다. 메모리 단위는 그저 메모리 주소들의 연속일 뿐이며, 그 주소들이 어떻게 생성되었는지나 어떻게 사용되는지는 ..

운영체제 2020.11.12