메모리

    [운영체제] Ch9. 메인 메모리

    [운영체제] Ch9. 메인 메모리

    공룡책(운영체제)을 읽고 정리한 글입니다. 컴퓨터의 CPU는 프로그램 카운터(PC)가 지시하는 대로 메모리로부터 다음 수행할 명령어를 가져오는데 그 명령어는 필요한 경우 추가적인 데이터를 더 가져올 수 있으며 반대로 데이터를 메모리로 내보낼 수도 있다. 전형적인 명령어 실행은 먼저 메모리로부터 한 명령어를 가져오는 데서부터 시작된다. 그런 다음 명령어를 해독하고, 메모리에서 피연산자를 가져와 피연산자에 대해 명령어를 실행한 후에 계산 결과를 메모리에 다시 저장한다. 배경 지식 기본 하드웨어 메인 메모리와 각 처리 코어에 내장된 레지스터들은 CPU가 직접 접근할 수 있는 유일한 범용 저장장치이다. 기계 명령어들은 메모리 주소만을 인수로 취하고, 디스크의 주소를 인수로 취하지 않는다. 따라서 모든 실행되는 ..

    [Java] Call by Reference? Call by Value!

    Java에서 Call by value와 Call by reference를 구분하는 방법은 매서드의 매개변수의 자료형에 달려있다. Java에서는 개발자가 포인터를 사용할 수 없도록 되어있다. 그래서 바꾸길 원하는 값의 주솟값을 넘길 수 없다. 아래 코드를 보자 class Number{ public void increase(int count){ count++; } } public class Main { int count = 0; public static void main(String[] args){ Main mainNumber = new Main(); Number newNumber = new Number(); newNumber.increase(mainNumber.count); System.out.printl..

    [운영체제] Swapping (가상 메모리)

    [운영체제] Swapping (가상 메모리)

    메모리 Swapping에 대해서 알아보자 Swap : 필요한 주소 공간 전체를 메모리에 올려 두는 것이 아니라 그때그때 필요한 것들만 메모리에 올리고, 필요 없어지면 하드디스크로 내보내는 동작 Swap을 구현하는 방법들 Overlays : 코드의 일부분, 데이터의 일부분을 가져오고 내보내는 동작을 프로그래머가 수동으로 구현하는 방법 Process-level swapping : Process의 주소공간 전체가 메모리에 올라왔다가, 다른 process가 동작할 때 다시 제자리로 돌아가는 방법. Page-level swapping : Page단위로 디스크에서 가져왔다가 내려보내는 방법 Swap을 하기위한 공간 : swap space 디스크의 일부분을 swap space로 미리 설정을 해줌 swap space의..