전체 글

할 뿐
· 정글/TIL
📌 공부한 내용 anonymous page 지연 로딩 필요 시점까지 메모리의 로딩을 지연시키는 방법 페이지가 할당되었다는 것은 대응되는 페이지 구조체는 있지만 연결된 물리 메모리 프레임은 아직 없고 페이지에 대한 실제 콘텐츠들이 아직 로드되지 않았다는 것을 의미 페이지의 초기화 과정 → vm_alloc_page_with_initalizer 호출 : 페이지 구조체를 할당하고 페이지 타입에 맞는 적절한 초기화 함수를 세팅하고 유저 프로그램으로 제어권 넘김 → 유저 프로그램이 실행될 때 로드되지 않은 페이지에 접근하게 되면 페이지 폴트 → 페이지 폴트를 처리하는 과정에서 uninit_initailize 호출 → 익명 페이지를 초기화 하는 함수는 anon_initalizer - 파일 기반 페이지 초기화 함수는 ..
페이지 테이블 가상 메모리에서 사용되는 중요한 데이터구조 운영 체제는 가상 메모리를 사용하여 물리적인 메모리를 관리하고, 프로세스 에게 가상 주소 공간을 제공한다 페이지 테이블은 가상 주소 공간과 물리적인 메모리 주소공간 간의 매핑을 관리하는데 사용된다. 페이지 64비트 가상주소의 마지막 12비트는 페이지 오프셋이고, 상위 비트들은 페이지 테이블의 인덱스를 표시한다. 프레임 물리 메모리상의 연속적인 영역. 페이지와 동일하게, 프레임은 페이지사이즈여야 하고 페이지 크기에 정렬되어 있어야 합니다. 64비트 물리주소는 프레임 넘버 와 프레임 오프셋 으로 나누어질 수 있습니다. 구현해야 할 것 보조 페이지 테이블 핵심 유저 → 페이지 폴트 핸들러, 프로젝트2에서 페이지 폴트는 항상 커널, 유저프로그램의 버그를 ..
· 정글/TIL
📌 공부한 내용 페이지 테이블 가상 메모리에서 사용되는 중요한 데이터구조 운영 체제는 가상 메모리를 사용하여 물리적인 메모리를 관리하고, 프로세스 에게 가상 주소 공간을 제공한다 페이지 테이블은 가상 주소 공간과 물리적인 메모리 주소공간 간의 매핑을 관리하는데 사용된다. 페이지 64비트 가상주소의 마지막 12비트는 페이지 오프셋이고, 상위 비트들은 페이지 테이블의 인덱스를 표시한다. 프레임 물리 메모리상의 연속적인 영역. 페이지와 동일하게, 프레임은 페이지사이즈여야 하고 페이지 크기에 정렬되어 있어야 합니다. 64비트 물리주소는 프레임 넘버 와 프레임 오프셋 으로 나누어질 수 있습니다. 구현해야 할 것 보조 페이지 테이블 핵심 유저 → 페이지 폴트 핸들러, 프로젝트2에서 페이지 폴트는 항상 커널, 유저프..
https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌- 풀이 미사일의 좌표 중 y축에 해당하는 부분을 기준으로 정렬 뒷번호가 제일 작은 미사일을 기준으로 end값을 하나 만듦 end값을 기준으로 다음 미사일의 x좌표가 end값과 같거나 크면 미사일의 y축 좌표를 다시 end로 설정하고 요격시스템의 카운트를 +1 추가 🔥 - Java 코드 import java.util.*; class Solution { public int solution(i..
· 정글/TIL
📌 공부한 내용 📌 - multi-oom`은 memory leak을 측정하는 테스트인데 어떤 방식으로 측정하는지 궁금해서 찾아봄 : 재귀적으로 자식프로세스를 fork해서 더 이상 fork 할 수 없을 때까지 진행하고 처음 fork한 숫자를 저정한다. 그리고 이것을 10번 반복하면서 처음 fork한 수와 비교하면서 처음과 다르다면 메모리에 누수가 생긴 것이므로 fail을 반환하게 된다. int main (int argc UNUSED, char *argv[] UNUSED) { msg ("begin"); int first_run_depth = make_children (); CHECK (first_run_depth >= EXPECTED_DEPTH_TO_PASS, "Spawned at least %d child..
파일 디스크립터(file descriptor) : 리눅스 혹은 유닉스 계열의 시스템에서 프로세스가 파일을 다룰 때 사용하는 개념으로, 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값이다. 파일 스크립터는 일반적으로 음수가 아닌 0과 양수인 정수 값을 의미한다. 기본적으로 할당되는 파일 디스크립터 0 : 표준 입력(Standard Input) / STDIN_FILENO 1 : 표준 출력(Standard Output) / STDOUT_FILENO 2 : 표준 에러(Standard Error) / STDERR_FILENO 우리가 생성하는 파일 디스크립터들은 3번부터 차례대로 할당받게 된다. void halt(void): power_off()를 호출하여 pintos를 종료합니다. 이 함수는 교착 상태 ..
Casteira
SpongeCake