pintos - userapp 테스트 모두 통과

Posted by 미스란디르 Tue, 20 May 2008 11:38:00 GMT

pintos는 스탠포드에서 제공하는 교육용 OS 뼈대이다. nachos가 c++이나 java로 된것과 달리, pintos는 c로 과제를 작성하게 되어 있다. 게다가 빌드시스템이 상당히 잘 만들어져 있고, 테스트도 꽤 편하게 수행할 수 있는 것도 장점이다.

우리나라에서도 서울대나 한양대, 카이스트 등에서 수업용으로 쓴다고 하는데, 나도 요번 수업에서 pintos 숙제를 하게 되었다. 몇일동안 작업을 한 끝에 제출할 때는 multi-oom을 제외한 모든 테스트를 통과 했고, 제출후 장난쳐보다가 드디어 multi-oom을 통과 하게 되서 감개 무량한 나머지 여기 자랑을 한다.

스샷. 핀토스 userapp 모든 테스트 통과

구현하고 나니 제대로 못한 것들이 좀 있다.

  • tid랑 pid를 구분을 안한 것.
  • process.c 에서 다뤄야 할 것들을 thread.c 에서 다뤄버린것.
  • thread구조체 이외에 process 구조체를 따로 만들지 않고 작성한 것.
  • "부모가 죽었을 때 종료를 기다리던 좀비 자식들을 모두 정리해주는 것" 을 빼먹은 것.
  • stdin에서 read할 때 한글자씩만 반환하게 한 것 (큐에 쌓여 있으면 한번에 줘도 되는 것을..)

아쉬운 것들이 많지만, 테스트를 전부 통과했으니 그런 것 다 필요없다. 후후후 (...)

사실 리눅스 소스를 보거나, 여기저기서 어설프게 주워들은 것들이 좀 있어서 OS의 어떤 부분이 *대충* 어떻게 돌아가는지 어렴풋하게 알고는 있었는데, 실제로 구현을 해보니 어떤 식으로 돌아가는지 조금 확실해 졌다. 완전히 확실해 지지 않은 것은, pintos가 장난감 OS이기 때문인데, 예를 들자면 숙제를 하면서 copyfromuser의 리눅스 구현을 참조하려고 했더니, 너무 길어서 참고하기가 난감할 정도였다.

뭐 아무튼. 이런 재미있는 장난감을 만든 스탠포드의 조교들에게 땡큐를 보낸다.

6 comments | no trackbacks

Comments

  1. 준상 said about 3 hours later:

    오 어느 수업에서 쓰는거야?

  2. mithrandir said about 14 hours later:

    OS요. 차교수님 땜빵으로 온 강사수업.

  3. 전찐 said 15 days later:

    자... 장난감 ㅠㅠ 저는 장난감에 놀아나는 건가요 ㅠㅠ

  4. 성태식 said 18 days later:

    음음음? 혹시 박지인씨이신가요? ㅋㅋ

    역시 구글신은 다 알고 계시는군요 (...)

  5. 성태식 said 18 days later:

    헉스.; 리플 달고 3초 후에 실수한걸 깨달았네요(....) ㅈㅅㅈㅅ(삭제 옵션이 없어요 ㅠ.ㅠ.)

  6. mithrandir said about 1 month later:

    어 맞아요. 여긴 어떻게 찾았지 =3

Trackbacks

Use the following link to trackback from your own site:
http://tisphie.net/typo/trackbacks?article_id=pintos-userapp-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%AA%A8%EB%91%90-%ED%86%B5%EA%B3%BC&day=20&month=05&year=2008

Comments are disabled