일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TiL
- 사이드프로젝트
- HTML
- CSS
- 크래프톤 정글
- 큐
- Java
- 크래프톤정글
- 오블완
- 시스템콜
- 핀토스
- 티스토리챌린지
- JavaScript
- 자바스크립트
- Flutter
- 자바
- 알고리즘
- userprog
- 소켓
- 스택
- defee
- 리액트
- 코드트리
- 나만무
- corou
- 모션비트
- pintos
- 4기
- 백준
- Vue.js
- Today
- Total
미새문지
크래프톤 정글 week11, day86 - DFS, BFS, 핀토스 고찰 본문
< DFS & BFS >
https://moonmisae-cdpt.tistory.com/182
애(경)교(육)관에 출근한지 벌써 9일. 교육관에서 넘어와서 핀토스 프로젝트 1인 threads를 복습하고 이해가 잘 안갔던 부분인 nested & chaining과 조건 변수로 스레드를 관리하는 convar에 대해 이해하게 되었다. 재희님이 짠 nested와 chaining 코드는 다른 분들과 다르게 재귀로 풀었는데, 그 당시에 이해가 안됐었던 재귀가 이제는 어느정도 이해가 간다. 남들과 다른 방식으로 푸는 남자 갓재희
현우님과 상림이형처럼 엄청 깊게 팔 순 없을 것 같아 1을 쭉 돌아보고 2로 넘어왔다.
argument passing 부분은 args, argc 포인터를 잘 연결해준다면 코드의 흐름 자체는 괜찮은 것 같다. 이 부분은 저번 팀 때 계속 함수가 이동하는 부분을 계속 확인하면서 일일이 다 printf로 찍었었다.
그래서 이 부분은 스무스 하게 넘어왔고 문제는 시스템 콜인데, 일단 시스템 콜의 코드 자체는 fd나 file 등 인자를 받아와 에러 조건 잡아주고 동시성 문제를 위해 각 함수의 메인 부분이 실행될 때 lock으로 잠궈 보호해주는 정도로 이해하고 있어 괜찮은데, 함수 내부에서 process로 타고 넘어가니까 자꾸 꼬인다. fork는 내가 이걸 안 보고 짤 수 있을까 할 정도로 답이 안보이고 다른 함수는 그래도 이해는 했지만 직접 코드짜라하면 헷갈릴 것 같다.
그리고 시스템 콜 함수에서 lock으로 잠궈서 보호하는 부분 말인데, write, open, read를 제외한 다른 함수들은 lock_acquire와 lock_release 이거 지워도 테스트 케이스가 너무 잘된다. 지피티 말로는 테스트 케이스가 단일 프로세스로 테스트가 된다고 하는데 이 부분은 내가 알 수가 없다.. 테스트 코드를 봐도 그것만으론 잘 모르겠고
그리고 매번 if문으로 파일의 에러를 잡아주던 코드를 따로 함수로 빼서 작성했다. 구글링한 코드들을 보니까 check_address라는 함수로 묶어주던데 아마 가독성을 위해 했던 것 같다
내일 하루 남은 날 그냥 남은 시스템콜 부분은 기존에 작성해논 코드를 보고 이해만 하려고 한다.
VM은 명헌이가 잘 알려준다고 하니까 기대하는 중
학습 시간 : 10 ~ 24시
'크래프톤 정글 > TIL' 카테고리의 다른 글
크래프톤 정글 week12, day88 - 나만무 연습 시작(with 세진) (0) | 2024.04.04 |
---|---|
크래프톤 정글 week11, day87 - 그래프(Graph), 애교관 마무리 (0) | 2024.04.03 |
크래프톤 정글 week11, day85 - 해시 테이블, 시스템 콜 다시 작성 중 (0) | 2024.04.01 |
크래프톤 정글 week11, day84 - process.c 마무리, Deep Copy vs Shallow Copy (1) | 2024.03.31 |
크래프톤 정글 week11, day83 - pintos process.c 코드 뜯기 (2) | 2024.03.30 |