일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 크래프톤 정글
- 크래프톤 정글 4기
- TiL
- 유니티
- Unity
- c#
- 핀토스
- 추상클래스와인터페이스
- 파이썬
- 네트워크
- anonymous page
- C
- 알고리즘수업-너비우선탐색2
- project3
- User Stack
- 크래프톤정글
- 전쟁-전투
- kraftonjungle
- 4기
- 티스토리챌린지
- KRAFTON JUNGLE
- 알고리즘
- 이벤트 함수 실행 순서
- 연결리스트
- 백준
- 다익스트라
- BFS
- pintos
- 오블완
- 크래프톤정글4기
- Today
- Total
목록Krafton jungle (46)
말감로그
📆2024.3.18 1. system call - open(), process_add_file() 구현 System Call 1. open() file 을 열기 위해서는 시스템 콜 open() 함수를 구현해야 한다. open을 구현하기 위해서는 1. file이 유효한 주소값인지를 검증해야 한다. 2. filesys_open를 호출해서 파일을 open한다. 3. process_add_file 함수를 호출해서 파일 디스크립터 테이블에 파일을 추가하고 fd를 반환한다. 4. 파일디스크립터 테이블에 추가할 수 없는 경우(fd == -1)인 경우엔 파일을 닫고 -1을 리턴한다. 5. 오픈한 파일의 fd를 반환한다. int open (const char *file) { check_address(file); stru..
📆2024.3.16 1. system call 구현 - halt, exit, write, create System Calls 구현 시스템 콜 핸들러인 syscall_handler()가 제어권을 얻으면, 시스템 콜 번호가 %rax에 있으며, 인자값들은 순서대로 전달된다. (%rdi, %rsi, %rdx, %r10, %r8 and %r9) 호출자의 레지스터는 struct intr_frame으로 전달되어 접근할 수 있다.(struct infr_frame은 커널 스택에 있다.) 유저 프로그램의 프로토타입은 include/lib/user/syscall.h 담겨 있다. (이곳에 헤더 파일과 다른 include/lib/user에 있는 파일들은 유저 프로그램에서만 사용된다.) -> user/syscall.c 에서 sy..
📆2024.3.15 1. argument passing 구현 2. 백준 argument passing 인자 전달 user프로그램이 실행되기 전에 프로그램에 대한 인자를 설정해야 한다. 1. process_create_initd() 👉🏻 command line을 parsing 해서 file_name을 찾는다. - 인자로 들어오는 file_name이 실행 시 입력된 command line이다. - 이 command line을 parsing해서 파일 이름을 찾는다. - parsing해서 얻어낸 파일 이름이 thread_create 함수의 첫 번째 인자로 들어가야 한다. tid_t process_create_initd (const char *file_name) { char *fn_copy; tid_t tid; ..
📆2024.3.13 1.백준 2. pintos - project2 kernel panic error 해결 백준 1927 최소 힙 처음에 뭐야 너무 쉽자나? 라고 생각하며 풀었지만 결국 시간 초과.. 바보같이 최소 힙인데 heapq를 안쓰고 풀려고 했었담. heapq 써서 완료! import heapq import sys input = sys.stdin.readline N = int(input()) heap = [] for i in range(N): x = int(input()) if x > 0: heapq.heappush(heap, x) if x == 0: if len(heap) == 0: print(0) else: print(heapq.heappop(heap)) PintOS - Project 2 USE..