[Pintos] project3 - Copy on Write
Copy on Write & Dirty Cow Copy on Write (cow) Copy-on-Write은 메모리 관리 기술 중 하나로, 데이터를 공유 하면서 수정이 발생하면 복사본을 생성해 데이터의 일관성을 유지하면서 리소스를 절약하는 기법 Cow 진행 과정 부모 프로세스 메모리 매핑: 부모 프로세스가...
Copy on Write & Dirty Cow Copy on Write (cow) Copy-on-Write은 메모리 관리 기술 중 하나로, 데이터를 공유 하면서 수정이 발생하면 복사본을 생성해 데이터의 일관성을 유지하면서 리소스를 절약하는 기법 Cow 진행 과정 부모 프로세스 메모리 매핑: 부모 프로세스가...
Stack Growth 구현 project2에선 USER_STACK이 시작인 단일 페이지로 제한 project3에선 접근한 가상 주소에 매핑된 frame이 없어서 page fault가 발생한 경우 중에서 접근한 가상 주소가 stack 영역 내에 존재할 경우 추가페이지를 할당 vm_try_handle_fault() 구현 흐름 현재 ...
Anonymous Page 구현 anonymous page는 file-backed page와 달리 contents를 가져올 filedlsk device가 없는 page를 말함 이들은 프로세스 자체에서 런타임 때 만들어지고 사용됨 주로 프로세스의 동적 메모리 할당 및 스택 및 힙을 나타내는 데 사용 load segment() ...
Memory Management 구현 SPT(Supplemental Page Table) 구현 앞서 spt에 대해서 알아보았는데 다시 간략하게 정리해보자면 아래와 같다. 보조 페이지 테이블은 각 페이지에 대한 추가 데이터를 이용해서 페이지 테이블을 보조 page fault가 발생했을 때 그 곳에 어떤 데이터가 있었어야 했는지 알아내기 위해 커...
임시 저장 수정 해야함 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 합니다. 또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요합니다. 따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있습니다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 4가지 있습니다. ...
임시저장용 test VIRTUAL MEMORY 반드시 주어진 템플릿을 따르세요. 이 말은, 주어진 템플릿에 기반하지 않고 코드를 제출한다면 당신은 0점을 받는다는 말입니다. 블록 디바이스 ⇒ 하드디스크, CD/DVD등의 장치로 블록, 섹터 등의 정해진 단위로 데이터를 전송 I/O 전송속도가 높은 것이 특징(다른 종류로는 캐릭터 디바이스라는 ...
임시저장용 test Memory Management 가상 메모리 시스템이 제대로 돌아가기 위해 page와 frame을 효과적으로 관리해야함 ⇒ 임의의 page or frame영역을 누가 사용했고, 어떤 목적으로 사용했는지 등을 기억하고 있어야 함 먼저 supplemental page table을 다루고, 그 이후에 물리메모리 페이지 프레...
에러 기록 [2023-10-11]이미지 업로드 빌드 에러 여기서 thrasing.md를 수정하던 중 원래는 build가 성공적으로 되었지만 어떤 시점을 기준으로 빌드가 되지 않는 에러 발생 이미지를 업로드하는 과정에서 기존에는 html양식으로 그림의 크기를 수정하면서 업로드 하였는데 스크린샷의 아래 주석양식처럼 이미지파일을 업로드하면 아래와...
Weekly I learned General Purpose Register %rax caller-saved %rax 레지스터는 함수 호출과 반환 값에 사용됩니다. 호출자 함수에서 호출된 함수로 값을 전달하고, 호출된 함수는 %rax 레지스터를 통해 반환 값을 돌려줍니다. 이는 호출된 함수가 retq 명령을 사용하여 값을 ...
Weekly I learned appendix thread thread_init 는 새 스레드 공간 할당하는데 thread_start 는 어떤 역할인가요? thread_start 함수가 호출되면, 스레드 스케줄링 알고리즘에 따라 현재 실행 중인 스레드보다 높은 우선 순위를 비교하여 스케줄러가 실행할 스레드를 선택합니다. ...