본문 바로가기

2️⃣ 개발 지식 B+46

[PintOS Project2] USER PROGRAMS 깃헙 링크 https://github.com/ddubbu-dev/pintos-1-9th-9team/tree/2-userprog-without-process-pass GitHub - ddubbu-dev/pintos-1-9th-9teamContribute to ddubbu-dev/pintos-1-9th-9team development by creating an account on GitHub.github.com FYI. Project 과제별로 브랜치를 save해두었습니다. 필요하신 분은 편히 참고하세요.틀린 부분 제보는 언제든 환영입니다.  테스트케이스 통과 현황 FAIL : system call process fork, wait, exec 파트는 이해가 덜 되어서 PR draft로만 남겨두었습니다. 발표 .. 2024. 10. 8.
[PintOS Project1] THREADS 깃헙 링크 FYI. Project 과제별로 브랜치를 save해두었습니다. 필요하신 분은 편히 참고하세요. 틀린 부분 제보는 언제든 환영입니다. https://github.com/ddubbu-dev/pintos-1-9th-9team/tree/1-1-alarm-clock GitHub - ddubbu-dev/pintos-1-9th-9teamContribute to ddubbu-dev/pintos-1-9th-9team development by creating an account on GitHub.github.com https://github.com/ddubbu-dev/pintos-1-9th-9team/tree/1-2-priority-scheduling GitHub - ddubbu-dev/pintos-1-9th.. 2024. 10. 8.
어셈블리어 기초 [참고자료]x86 vs x64x86 : 32bit 시스템. Intel 8086 프로세서 이후 80286, 80386 같은 모델들이 등장하면서 유래x64 : 64bit 시스템 (32bit) 어셈블리어 명령어 헷갈리는 mov 명령어 먼저 이해하기// C Codelong exchange(long *xp, long y) { long x = *xp; *xp = y; return x;}// Assembly code// xp in %rdi, y in %rsiexchange: movq (%rdi), %rax # Get x at xp. Set as retrun value. movq %rsi, (%rdi) # Store y at xp. ret # Return. x86C언어설명x86-64mo.. 2024. 10. 2.
Proxy & Network 퀴즈 출처정글 사관학교 1. client-server model에 대해서 설명하시오[위키백과] 서비스 요청자인 client와 서비스 자원의 제공자인 server 간에 작업을 분리해주는 분산 애플리케이션 구조이자 네트워크 아키텍처를 나타낸다. 2. HTTP request와 response에 대해 아는대로 설명하시오 [mdn]HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식. 메시지 타입에는 요청과 응답이 있다. 요청은 클라가 서버로 전달해 서버의 액션이 일어나게끔 하는 메시지이고, 응답은 요청에 대한 서버의 답변이다. + 첨언) GET request도 body 가 있을 수 있다. 단, RFC-9110 에서는 GET request body를 만들지 않도록 권장하고 있다. 현재 QUERY emthod.. 2024. 9. 27.
[네트워크] echo 예제로 이해하는 소켓 인터페이스 소켓통신 파일 처리와 같다?Unix/Linux 시스템에서는, 모든 I/O 자원이 파일처럼 취급된다.소켓도 file descriptor(식별자)를 통해 접근할 수 있는 "열린 파일"소켓을 열면, 파일을 다루는 방식과 유사하게 소켓에 대해 읽기/쓰기/닫기 등의 작업이 가능 rio 구조체를 이용해 소켓 다루기void rio_readinitb(rio_t *rp, int fd) { rp->rio_fd = fd; rp->rio_cnt = 0; rp->rio_bufptr = rp->rio_buf;}// 사용 예시 : rio 구조체를 socketfd와 연결된 소켓으로 초기화rio_readinitb(rp, socketfd)  그림으로 이해하는 소켓 인터페이스 주의사항listenfd : (liste.. 2024. 9. 16.
Allocator 퀴즈 출처정글 사관학교 1. 다음 코드가 일으키는 문제와 관련된 키워드A: m = malloc(5); m = NULL;B: free(n); n->val = 5;C: char *p; *p = 'a';A - memory leak : 필요하지 않은 메모리를 계속 점유하고 있는 현상B - dangling pointer (=Premature Free) : 유효한 객체를 가리키고 있지 않는 포인터[이슈1] 메모리 접근 시 예측 불가능한 동작[이슈2] 접근 불가 시 Segmentation Fault[해결] 메모리 해제 후 포인터를 NULL 혹은 nullptr로 처C - uninitialized pointer 2. 메모리를 할당하는데 블록단위로 할당하는 이유Fragmentation 방지관리 효율성할당 속도 향상 *오버헤드 .. 2024. 9. 14.
🏃[알고리즘/python] DP - 동전 유형 접근 컨셉 동전 유형 1. 무한개의 동전 가짓수를 가지고 목표 금액을 만들기 위해 필요한 최소 동전 수 #무한개 # 최소 아이템수 #조합2. 유한개의 동전 가짓수를 가지고 목표 금액을 만들 수 있는 가짓 수 #유한개 # 가짓수 #조합3. 무한개의 동전 가짓수를 가지고 목표 금액을 만들 수 있는 가짓 수 #무한개 #가짓수 #조합 TODO: 배낭문제를 동전유형으로 풀어보기# 무한개 #최소 아이템수 #조합백준 #2294 동전2Q. 백준 #11047 동전0 은 Greedy 알고리즘으로 풀던데 차이점이 뭔가요?A. [동전0]은 요소가 서로 배수 관계이기에 동전을 내림차순해서 greedy 선택을 할 수 있는 조건이 주어집니다. 이와 달리 [동전2]는 서로 배수 관계가 아니이기에 모든 경우의 수를 구해야하고, 중복 계산을 줄이.. 2024. 9. 7.
[python] 유용한 문법 iteratoritems = [1, 2, 3, 4, 5]filtered = list(filter(lambda i: i%2 == 0, items))arr = map(int, input().split()) 비트 연산자# addmask = 0mask = mask | 1   기타# 문자열 포매팅var = 345.6789s1 = f'{variable}' # 345.6789s2 = f'{variable:.2f}' # 345.68 # 주의! variable 콜론 뒤에 여백 반영되므로 꼭! 붙이기# 숫자 문자열 리스트화s = "101110"arr = [int(char) for char in s] # [1, 0, 1, 1, 1, 0]# zip, unzipA = [1, 2, 3]B = [4, 5, 6]pairs = zi.. 2024. 9. 7.
C 언어 퀴즈 (feat. RB트리 복습) 출처정글 사관학교C Input and Output (Geeks for Geeks)C Functions (Geeks for Geeks)C Data Types (Geeks for Geeks)C Pointer Basics (Geeks for Geeks)C Dynamic Memory Allocation (Geeks for Geeks)  다음 세 함수 f1, f2, f3 각각에 대해서 문제가 있는지, 문제가 있다면 어떤 문제가 있는지 설명하시오.f1 : 지역변수 x의 주소를 return함 - 지역변수는 해당 함수가 끝나면 유효하지 않아서 값이 바뀔 수 있음 f2 : uninitialized pointer - px의 값이 임의의 값이므로 임의의 주소에 10을 넣으려고 함. Segmentation Fault f3 :.. 2024. 9. 7.