크래프톤 정글 일지 39

크래프톤 정글 5기 나만무 후기

카와이 좀비헌터TPS 액션 슈팅 게임타격감을 살리기 위해 많은 고민과 노력을 했다. 멀티 협동 게임을 구현하려 했지만시간적 능력적 한계로 인해 솔로 플레이로 개발멀티 게임 개발하는 분들 존경합니다. 포스터 부스 세션을 위한 발표 장표 현장 시연을 대체하거나 현장에 못 온 협력사를 위한 발표영상" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 Playable Buildhttps://drive.google.com/file/d/1y0y2iaqpyWQrKPMeWgtdr_feVzzWwSNK/view

대한상공회의소 KDT 멘토멘티단 <Team-Mate> 면접 후기

면접은 비대면(zoom)으로 이뤄졌고, 면접에 앞서 서류전형이 있었다.서류전형에서는 자기소개, 지원동기, 활동계획, 멘토멘티단 활동을 통해 기대하는 바를 서면으로 물어봤었고, 면접질문도 대동소이했다.후술하는 내용은 면접 질문과 나의 대답. 멘토-멘티 관계에 있어서 가장 중요하다고 생각하는 것 멘토는 멘티가 어떤 인생을 살았고, 어떤 목표를 가지고 있는 지 모르기 때문에 멘티 스스로가 지향점을 명확히 설정하고, 그것을 멘토에게 잘 전달하는 것이 중요하다고 생각. 어떤 멘토를 만나고 싶은지 나 또한 비전공자이기 때문에 비전공자 또는 다양한 경험이 있는 멘토를 만나고 싶다. 멘토링을 통해 어떤 활동을 기대하는지 1차적으로는 취업 준비 기간에 멘토가 어떤 일들을 했고 어떤 멘탈리티로 임했는지 경험담을 듣고 싶다..

[PintOS] project 3.3.1 - stack growth 디버깅

/* Destroy the anonymous page. PAGE will be freed by the caller. */static voidanon_destroy(struct page *page){ struct anon_page *anon_page UNUSED = &page->anon; // 페이지가 프레임을 가지고 있는 경우 이를 해제합니다. if (page->frame != NULL) { pml4_clear_page(thread_current()->pml4, page->va); palloc_free_page(page->frame->kva); page->frame = NULL; } // 추가적으로 해제할 자원이 있으면 여기에 해제 로..

[PintOS] project 3.3.0 - stack growth

스택 확장프로젝트 2에서는 스택이 USER_STACK에서 시작하는 단일 페이지였으며, 프로그램 실행은 이 크기로 제한되었습니다. 이제 스택이 현재 크기를 초과하면 필요한 만큼 추가 페이지를 할당합니다.추가 페이지는 스택 접근으로 "보이는" 경우에만 할당하십시오. 스택 접근과 다른 접근을 구분하려는 휴리스틱을 고안하세요.더보기스택 접근과 다른 접근을 구분하려는 휴리스틱을 고안하지 않으면 어떻게 되지?스택 접근과 다른 접근을 구분하려는 휴리스틱을 고안하지 않으면 다음과 같은 문제가 발생할 수 있습니다:잘못된 메모리 할당: 스택 접근으로 착각하여 불필요한 메모리를 할당할 수 있습니다. 예를 들어, 프로그램이 의도치 않은 메모리 영역에 접근할 때 이를 스택 접근으로 오인하여 메모리 페이지를 계속 할당하게 되면,..

[PintOS] project 3.2.1 - anonymous 디버깅

booting은 되는데 executing이 문제다./* Runs the task specified in ARGV[1]. */static voidrun_task (char **argv) { const char *task = argv[1]; printf ("Executing '%s':\n", task);#ifdef USERPROG if (thread_tests){ run_test (task); } else { process_wait (process_create_initd (task)); }#elseprintf("\n여기까지는 오냐?\n"); run_test (task);#endif printf ("Execution of '%s' complete.\n", task);}project 3 라서 else로 빠지..

[PintOS] project 3.2.0 - anonymous page, vm.c, process.c

깃북을 읽자마르고 닳도록 읽다 보면 뭐라도 되겠지익명 페이지이 프로젝트의 이 부분에서는 익명 페이지(anonymous page)라는 디스크 기반이 아닌 이미지를 구현할 것입니다.익명 매핑에는 백업 파일이나 장치가 없습니다. 이는 이름이 지정된 파일 소스가 없기 때문에 익명으로 불리며(파일 지원 페이지와 달리), 실행 파일에서 스택과 힙과 같은 용도로 사용됩니다.익명 페이지를 설명하기 위한 구조체는 include/vm/anon.h에 있는 anon_page입니다. 현재는 비어 있지만 구현하면서 익명 페이지의 필요한 정보나 상태를 저장하기 위해 멤버를 추가할 수 있습니다. 또한 페이지의 일반적인 정보를 포함하는 include/vm/page.h에 있는 struct page를 참조하십시오. 익명 페이지의 경우, ..

[PintOS] project 3.1 - hash.h, memory management

#ifndef __LIB_KERNEL_HASH_H#define __LIB_KERNEL_HASH_H/* 해시 테이블. * * 이 데이터 구조는 Project 3의 Pintos 투어에서 자세히 설명되어 있습니다. * * 이것은 체이닝을 사용하는 표준 해시 테이블입니다. 테이블에서 요소를 찾기 위해 * 요소의 데이터를 해시 함수로 계산하고 이를 이중 연결 리스트 배열의 인덱스로 * 사용한 다음 리스트를 선형 검색합니다. * * 체인 리스트는 동적 할당을 사용하지 않습니다. 대신, 해시에 잠재적으로 포함될 수 * 있는 각 구조체는 `struct hash_elem` 멤버를 포함해야 합니다. 모든 해시 함수는 * 이 `struct hash_elem`에서 작동합니다. `hash_entry` 매크로는 `struct h..

[PintOS] project 3.0 - vm.h

vm.h 파일은 Pintos 운영 체제 프로젝트의 가상 메모리 시스템에 관련된 다양한 구조체, 열거형, 함수 및 매크로를 정의합니다. 여기서 주석들을 해석하고 각 요소들을 설명하겠습니다.Enum vm_type이 열거형은 페이지의 유형을 정의합니다.VM_UNINIT: 페이지가 초기화되지 않음을 나타냅니다.VM_ANON: 파일과 관련이 없는 익명 페이지를 나타냅니다.VM_FILE: 파일과 관련된 페이지를 나타냅니다.VM_PAGE_CACHE: 프로젝트 4를 위한 페이지 캐시를 보유하는 페이지를 나타냅니다.VM_MARKER_0, VM_MARKER_1: 추가 정보를 저장하기 위한 보조 비트 플래그입니다.VM_MARKER_END: 비트 플래그의 최대값을 제한합니다.매크로 VM_TYPE#define VM_TYPE(t..

[PintOS] union이 뭐임? What is union in C

C 언어에서 union은 여러 데이터 타입을 하나의 메모리 공간에 공유하게 하는 데이터 구조입니다. 즉, 하나의 union 내의 모든 멤버가 동일한 메모리 위치를 사용하며, 어느 한 순간에 하나의 멤버만 값을 가질 수 있습니다. 이를 통해 메모리 사용을 효율적으로 관리할 수 있습니다.union의 기본 개념union의 각 멤버는 동일한 메모리 위치를 공유합니다. 따라서 가장 큰 멤버의 크기만큼의 메모리만 할당됩니다. 예를 들어, 다음과 같은 union이 있다고 가정합시다:union example { int i; float f; char c;};위 union에서 i, f, c는 모두 동일한 메모리 공간을 공유합니다. union의 크기는 가장 큰 멤버(float, 4바이트)의 크기와 같습니다...

[PintOS] '프레임에 대한 백 레퍼런스' 가 뭔 소리임? What is 'Back reference for frame'?

'프레임에 대한 백 레퍼런스'라는 표현은 구조체 page에서 frame 필드가 프레임을 가리키는 포인터를 저장하고 있다는 의미입니다. 이를 이해하려면 '프레임'과 '백 레퍼런스'의 개념을 분리해서 설명해보겠습니다.프레임 (Frame)프레임은 물리 메모리의 페이지를 의미합니다. 즉, 실제 메모리의 한 블록을 나타냅니다.가상 메모리 시스템에서 페이지와 프레임은 일대일로 매핑됩니다. 페이지는 가상 주소 공간에서의 단위이고, 프레임은 물리 주소 공간에서의 단위입니다.백 레퍼런스 (Back Reference)백 레퍼런스는 양방향 참조를 의미합니다. 즉, 객체 A가 객체 B를 참조하고 있고, 동시에 객체 B도 객체 A를 참조하고 있는 경우입니다.이는 객체 간의 상호 참조를 가능하게 하여, 한 객체에서 다른 객체로 ..