swJungle10주차 후기

Mongle·2021년 2월 18일
0

swJungle 1기

목록 보기
6/6

pintos project 2

이게 핀토스구나 싶었다.
문제를 해결하기 전에는 어디가 문제인지 조차 몰라서 정말 막막했다.

자잘한 문제들도 많았지만 아주 크게 우리 팀을 괴롭힌 문제 위주로 기록하려한다.

  • 로컬 환경에서 돌리면 알 수 없는 에러가 곳곳에서 터진다.
    아직까지도 왜 로컬에서 돌리면 에러가 발생하는지 정확한 원인은 알아내지 못했다. 확실한 사실은 wsl에서 돌리면 kernel panic이 발생하는 문제들이 aws에서 돌리면 정상적으로 실행된다는 것이다.

  • system call을 통해서 리턴받은 값은 R.rax에 저장해놓아야한다.
    사실 정말 당연한 얘기다ㅠㅠ 리턴값을 저장해놓지 않으면 이어지는 다음 명령을 진행할 때 rax에서 이전 함수의 리턴값을 가져와야하는데 문제가 생길 수 밖에 없다.

  • fork를 통해서 생성한 자식이 예외를 만나서 죽으면 죽었다는 사실을 부모에게 알려야한다.
    이 부분을 고려하지 못해서 마지막 oom에서 한참 고생했다. 더 디테일한 부분에서 에러가 났긴 했지만 자식이 생성되지 못하고 에러를 반환한 경우와 자식이 생성됐지만 자식의 활동(do_fork)을 수행하다가 에러를 만나서 비정상적으로 죽었을 때 부모에게 알려야한다.

  • 테스트 파일을 적극 활용하자
    exec syscall을 구현할 때 테스트 파일을 열어보고 나서야 예상과 전혀 다른 흐름으로 테스트가 진행된다는 것을 알게되었다. 어떻게 구현할지 방향을 잡을 때 테스트 파일을 통해서 힌트를 얻는 과정이 도움이 많이 되는 것 같다.

profile
https://github.com/Jeongseo21

0개의 댓글