일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- c#
- TiL
- 추상클래스와인터페이스
- Unity
- KRAFTON JUNGLE
- anonymous page
- 이벤트 함수 실행 순서
- 크래프톤정글
- 오블완
- 크래프톤정글4기
- C
- kraftonjungle
- 핀토스
- pintos
- 백준
- 4기
- 알고리즘
- 다익스트라
- 크래프톤 정글 4기
- 알고리즘수업-너비우선탐색2
- 크래프톤 정글
- BFS
- 티스토리챌린지
- 전쟁-전투
- User Stack
- project3
- 파이썬
- 네트워크
- 연결리스트
- 유니티
- Today
- Total
목록전체 글 (158)
말감로그
7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다..
📆2024.03.28 1. Anonymous Page 구현 중 2. 백준 3. 티타임 spt_find_page 수정 Management Memory 구현했던 부분 찬찬히 깃북이랑 다시 읽어보다가 어제 구현한 spt_find_page 부분을 잘못 구현한 점을 찾아서 수정하였다. (사실 아직 맞는지 확인할 방법이 없음) 기존에는 struct page *page = NULL; 그대로 설정해뒀는데 이 상태로 하면 페이지 구조체가 할당되지 않은 상태에서 해당 페이지의 va의 인자로 받은 va를 넘길 수 없기 때문이다. 그래서 malloc()을 통해 새로운 페이지 구조체를 할당해서 포인터를 사용할 수 있도록 수정해주었고, free(page) 또한 추가해주었다. 해당 페이지를 찾았을 때에도 페이지를 반환하기 전에 메..
📆2024.03.27 1. PintOS Project3 VM (Memory Management) Implement Supplemental Page Table : 각 페이지에 대한 추가적인 정보를 담고 있을 보충 페이지 테이블을 구현해야 한다. /* 새 보조 페이지 테이블을 초기화합니다. */ void supplemental_page_table_init (struct supplemental_page_table *spt UNUSED) { hash_init(&spt->hash_table, page_hash, page_less, NULL); } struct page * spt_find_page (struct supplemental_page_table *spt UNUSED, void *va UNUSED) { st..
📆2024.3.26 Virtual Memory - Memory Management Implement Supplemental Page Table 페이지 폴트와 자원 관리를 처리하기 위해서는 각 페이지에 대한 추가적인 정보를 담고 있을 보조 페이지 테이블(Supplemental Page Table) 을 구현해야 한다. 1. 페이지 폴트가 발생했을 때 그곳에 어떤 데이터가 있었어야 했는지를 알아내기 위해 커널은 보조 페이지 테이블에서 폴트가 발생한 가상 페이지를 탐색한다. 2. 커널이 프로세스가 종료될 때 어떤 자원을 해제할 지 고르기 위해서 보조 페이지 테이블을 조사한다. SPT의 정의 - pml4(페이지 테이블)에서 부족한 정보를 채워주기 위한 프로세스마다 존재하는 테이블 - 아래의 보조 데이터들을 담고 ..
Virtual Memory 가상 메모리는 컴퓨터 시스템에서 물리적 메모리(RAM)보다 큰 주소 공간을 프로세스에 제공하기 위한 기술이다. 프로그램이 실행되는 동안에는 전체 프로그램이 메모리에 로드되지 않고 필요한 부분만 메모리에 올라가게 된다. 이를 통해 물맂거 메모리 부족으로 인한 프로그램의 실행 문제를 완화하고, 다중 프로그램 실행을 지원한다. Page Table 페이지테이블은 가상 메모리 주소 공간을 물리적 메모리 주소 공간으로 매핑하는 데 사용되는 자료구조이다. 페이지 테이블은 가상 메모리 주소를 물리적 메모리 주소로 변환하는 역할을 한다. 프로세스가 메모리에 접근할 때, 페이지 테이블을 참조하여 해당 가상 주소에 해당하는 물리 주소를 찾아내어 접근할 수 있게 한다. TLB(Translation ..
Page Replacement Policy 페이지 교체가 필요한 이유는 RAM의 크기가 제한적이고 그에 반해 RAM에 올라갈 페이지들은 많기 때문이다. 지금의 환경은 멀티 프로세스 환경으로 한번에 여러 개의 프로세스가 메모리에 올라가야 한다. 그래서 램이 꽉 차거나 혹은 어느 일정 정해진 수준을 넘어서게 되면 보조 기억장치와의 swap이 필요하다. 이때 램의 어떤 페이지를 교체하겠냐를 정할 때 필요한 정책이 replacement policy이다. 캐시 미스, 캐시 히트, 평균 메모리 접근 시간으로 어떤 알고리즘이 더 효율적인가를 따질 수 있다. (캐시 미스의 횟수를 최소화하고 캐시 히트 횟수를 최대화한다.) 1. 캐시 미스(Cache miss) 찾으려고 하는 페이지가 물리메모리에 존재하지 않을 때 캐시 ..
Anonymous page란 ? 익명 페이지는 파일로부터 매핑되지 않은 , 커널로부터 프로세스에게 할당된 일반적인 메모리 페이지이다. 즉, 익명 페이지는 힙을 거치지 않고 할당받은 메모리 공간이다. 커널의 메모리 할당 방법 1. 페이지 할당 : 가상 메모리를 페이지단위로 메모리를 할당하여 프로세스에게 제공한다. 2. 페이지 프레임 할당 : 물리 메모리는 페이지 프레임이라고 불리는 물리적인 페이지들로 나뉘는데, 커널은 이러한 페이지 프레임을 관리하고, 필요할 때 페이지 프레임을 할당하여 프로세스에게 제공한다. 3. 메모리 풀 할당 : 고정된 크기의 메모리 블록을 미리 할당하여 사용 가능한 상태로 유지하는 방법이다. 커널은 메모리 풀을 사용하여 일정한 크기의 메모리 블록을 할당하고 관리한다. "프로세스에게 ..
Lazy loading 이란? Lazy loading은 사용자의 상호작용이 발생하기 전까지 특정 리소스들을 로딩하지 않는 방식이다. 따라서 사용자가 해당 리소스에 접근하기 전까지는 리소스를 로드하지 않고, 이를 통해 초기 페이지 로딩 속도를 향상시킬 수 있다. Lazy loading 의 목적 1) 최초 페이지 로딩 시간을 개선하고 당장 화면에 표시하지 않는 이미지, 영상 등의 리소스를 나중에 로딩하면서 2) 최초 데이터 전달 양을 감소시키는 것이다. 웹 페이지를 로딩하는 기존 방식은 모든 리소스들을 한번에 받는 것이다. 이렇게하면 최초 로딩 시간이 더 커지게 된다. 이러한 문제를 해결하기 위해 사용할 수 있는 기술이 레이지 로딩인 것이다. 레이지 로딩을 적용하면, 화면에 당장 보여지지 않거나 아직 유저의..
🚫 PintOS를 실행시키기 위한 준비 중 마주친 에러 pintOS 가상 머신에 파일을 넣기 위해서 먼저 파일 시스템 파티션이 있는 모의 디스크를 만들어야 한다. pintos-mkdisk filesys.dsk 10 pintos --fs-disk filesys.dsk -p tests/userprog/args-single:args-single -- -q -f run 'args-single onearg' 위의 코드는 파일 시스템 파티션으로 어떻게 디스크를 생성하고, 파일 시스템의 형식을 만들고, args-single이라는 이름의 프로그램을 어떻게 새 디스크에 만들고, onearg 라는 인자를 전달해서 실행하는지에 대한 요약 코드이다. 이 코드를 실행하게 되면 kernel panic을 마주하게 된다. Kerne..