OS 3

가상메모리에 관하여(3)

안녕하세요~저번 시간에 가상 메모리의 생성 과정을 코드로 확인해보는 시간을 가졌습니다.하지만, 실제 프로세스 구동에 필요한 코드나 데이터는 물리 메모리(RAM) 에 존재하는데요.따라서, 오늘 시간에는 CPU가 어떻게 물리메모리를 접근할 수 있는지에 대해 알아보겠습니다.0. 메모리 액세스1. 페이지 테이블2. 페이지 Fault0. 메모리 액세스메모리 액세스란, CPU 가 가상 메모리 주소를 사용하여 물리 메모리에 저장된 데이터나 명령어를 R/W 하는 과정입니다.이때, CPU는 물리 메모리 주소에 접근하기 위 프로세스의 페이지 테이블을 참조합니다. 메모리 액세스의 순서는 다음과 같습니다. (1) FetchCPU가 프로그램 카운터(PC)로 부터 다음에 실행되어야 할 instruction 을 가져 옵니다.(2)..

OS 2024.07.07

가상 메모리에 관하여(2)

안녕하세요저번 시간에 이어, 가상 메모리에 대한 이야기를 본격적으로 시작하고자 합니다.0. 가상 메모리는 무엇일까?1. 가상 메모리의 작동 원리0. 가상 메모리는 무엇일까?가상 메모리(Virtual Memory), 즉 가상의 메모리입니다.메모리는 CPU와 함께 프로세스 수행 시 중요한 역할을 담당하고 있습니다. CPU는 특정 프로그램 내, 함수를 무수히 실행한다면, 메모리는 해당 함수(코드)가 저장될 수 있는 공간을 제공합니다. 가상 메모리는 OS에서 실제 메모리 보다 큰 주소 공간을 프로세스에게 제공하기 위해 고안된 메모리 관리 기법입니다.하지만, "그래서 도대체 뭐야?"라는 의구심이 계속 생깁니다. 우리가 윈도우즈 PC에서 Excel.exe 프로그램을 더블 클릭하면 엑셀 프로그램이 실행됩니다.그러면,..

OS 2024.06.15

가상 메모리에 관하여(1)

가상 메모리의 도입 배경과 어떤 방식으로 작동하는지 알아보겠습니다.피드백은 언제나 환영입니다! 0. 우리는 왜 가상메모리에 대해 알아야 할까요?사실, 해당 개념을 모르더라도 프로그램 개발에 있어서 문제 될 건 없습니다. 물리적 메모리의 위치를 신경 쓰지 않아도, OS 가 메모리 관리를 해주고 있기 때문입니다.시스템 엔지니어 기준, 가상 메모리에 대한 개념을 알아야 하는 이유는 다음과 같을 것입니다.  시스템 엔지니어리눅스 기준, top, vmstat, free 명령어를 통해 프로세스 메모리 모니터링을 합니다.우리는 아래와 같은 상황을 주로 접하게 됩니다.메모리 누수를 유발하고 있는 프로세스는 무엇이고, 해결을 어떻게 해야 하는지?특정 가상 메모리 주소를 사용하고 있는 코드에 문제가 있는 것은 아닌지?메모..

OS 2024.06.01