2007년 08월 19일
학사논문-_- 제출기... 9

포항공대 컴공과의 마지막 관문 격인 OS가 2005년 2학기를 기다리고 있었다.
OS란 operating system의 준말로 윈도우, 리눅스 등등 컴퓨터의 운영체제격 프로그램들을 총칭하는 말이다.
하드웨어를 소프트웨어와 연결시켜주는 OS는 따라서 컴공과의 꽃이라고도 할 수 있다.
그리고 당연하게도 과목의 목적은 하드웨어 뭉치-_-들을 부팅시키는데까지 성공하는 프로그램을 만들어 내는 것.
내가 버클리에 단기유학 가 있을때 황모군이 OS때문에 빌빌대는 것을 목격한 나로서는..
객체 프로그래밍도 낑낑대면서 해내긴 하였고, 어셈블리 들을때도 나름 최적의 솔루션-_-들만을 구현하였었으나,
OS는 도저히 자신이 없었다.
과목 로드의 심각성 때문에 컴공과 다른 과목들처럼 자신이 모든 코딩을 하는 것이 아니라 2인 1조를 이루어 과제 수행하는 체제였는데,
만약 타과생과 같이 한 조를 이루게 될 경우 어떤 꼬라지를 당할지 상당히 obvious한 상황이었다.
일단은 황모군에게 음주가무를 제외-_-한 여러 생활의 편의를 제공하여,
과제 프로그램 NACHOS에 대한 소스를 얻어냈다.
일종의 스켈레톤 프로그램이라 할 수 있는 NACHOS는 3~4년 지나오면서 소스들이 엄청 많이 쌓여가고 있었고,
그로 인해 과목의 로드 또한 같이 줄어드는 현상이 발생하고 있었다. ㅋㅋ
사실 황모군의 소스로 OS 로드를 조금 줄이고, 남는 시간을 유학 준비에 투자하자는 계획이었는데
개강과 동시에 이 꿈은 산산조각 나버렸다.
위의 상황을 심각하게 받아들인 OS faculty가 과제 프로그램을 NACHOS가 아닌 PINTOS로 변경해버렸던 것.
말 그대로 닭 쫓던 개 지붕 쳐다보는 꼴이 되었는데,
따져보면 애초에 개강하기 전부터 불순한-_- 의도를 가지고 수업에 임한 것에 대한 응징이 아니었나 생각한다. ㅋㅋ
대신 조교들에게 열심히 비벼대서 04 컴공과 학생 2명이 포함된 조로 끼어 들어갔다-_-;
컴공과생과 한 조를 이루게 된 것을 흡족하게 생각하던 나에게 황모군은 우려의 눈빛을 보내 왔고,
나는 그에 대해 '얘네들 잘 할거 같은데 머, 적어도 나보단-_-'식의 문자를 보내 가볍게 무시했다.
첫번째 프로젝트는 OS 상 여러 thread의 priority 개념을 도입하는 것.
역시 첫번째라 그런지 그닥 어렵지는 않아서 전날 밤-_-에 만나 해치우기로 했다.
내지는 적어도 그 녀석들은 쉽다고 생각했던 건지도.
프로젝트는 병렬적인 두 파트로 나뉘었다.
나는 한 파트를 맡고 이 녀석들은 나머지 한 파트를 맡아서 밤 10시부터 밤샐 생각으로 고고.
끄적끄적 대다보니 2시 정도에 나는 대충 다 끝냈고, 이 녀석들은 웹 서핑도 하고 페트병에 담아온 커피도 마시며 슬렁슬렁.
3시쯤 리포트 작성까지 다 마친 나는 "다 끝냈으니 한번 테스트 파일 돌려보자"고 했다.
핀토스 실행 시키고 로딩하면서 얼마나 끝냈는지 물어봤는데 걔네는 아직 못 끝냈다고 둘러대고.
"아, 그래? 빨리 해야할텐데.."라고 말하고선 테스트를 돌렸다.
걔네 파트는 물론이고 내 파트도 0% 성공률의 결과가 나왔다;
두넘아 중 한넘은 아까 내가 한 말이 약간 거슬렸는듯 "다 했다면서요?"라며 낄낄-_-댔다.
'그럴리가 있나'싶어서 헤더파일 조정하고 초기조건 세팅을 제대로 해줬더니 내 파트 50%, 걔네파트 0%.
잘 돌아가는구만 이 녀석이 어디서-_-
제출기한은 오전 7시까지였던가 했는데 저 말에 기분이 상해 "나머진 너희들이 알아서 끝내라"하고선 내려왔다.
나 혼자서도 기한 전에 끝냈는데 둘이서 못 하겠어라는 생각도 든 것이 사실.
그러나.. 이넘들은 결국 7시 기한까지 끝내지 못 하였고,
무슨 일이냐고 묻는 나에게 내일 모레까지 제출하겠다는 말만 되풀이했다.
레이트 안 받아준다고 첫 시간에 조교가 분명히 말했었는데, '레이트 하고말지 머' 이런 생각으로 그냥 내려왔던듯.
결국 이 샹눔들은 그 후 사흘만에 두 놈 다 휴학하고 도망갔다..ㄱ-
완전 뒤통수 얻어쳐맞은 꼴이 되버린 나는 일단 혼자 OS를 해보기로 했다.
두번째 프로젝트는 OS에서도 제일 어려웠던 메모리 매니지먼트.
기한 일주일 전부터 스켈레톤 코드를 불철주야 파들어갔으나.. 정말 너무 힘들었다.
스켈레톤 코드를 조교들에게 물어보려 가기도 했지만, 원체 컴공과 수업 스타일이 '알아서 버닝'해라 였던데다가
대학원 신입생들에 불과한 그들 역시 이것만 들여다보고 있는 것도 아니기에 나보다 잘 알고 있지도 않았다-_-
사실 나는 플밍 때 나오는 '포인터'라는 개념이 매우 이해가 힘들었기에 대충 넘어갔었는데,
허약한 포인터 지식과 페이징 시스템에 대한 불신-_-?은 일주일의 extensive shoveling 끝에도 별다른 성과를 쥐어주지 못 했다.
OS 4개의 프로젝트 중에서 2개나 50% 성공률밖에 받지 못 했던 상황.
도저히 안 되겠어서 컴공과로 이루어진 조 하나에 또 끼어들어가기로 했다;;;;
조교들은 원랜 안 된다는 분위기 였는데,
내가 '메모리 매니지먼트'때문에 하도 조교 찾아 들락날락 했더니 불쌍했는지 허용해줬다-_-;;
내 4년의 대학생활 중 거의 유일하게 같은 조원에 의해 carry되어 가는 얌체-0-짓을 했던 시기.
3번째 OS 프로젝트는... 메모리 매니지먼트가 완벽하게 짜여져 있었다면 그 코드만으로도 85% 성공률이 나오는 과제였다.
메모리 매니지먼트를 bottom으로 내려가 짜지 않고 덕지덕지 '그때 그때 달라요 코드'로 짠 경우만 고생하는 과제.
다행히 OS 과목 중 역대 최단시간만을 투자하여 100% 성공률을 보이는 기염을 토했다-_-;;;;;;;
4번째도 뭐 거의 그런 식이었고... ㅎㅎ
포항공대 컴공과 (다른 학교에도 해당되는지는 모르겠으나) 과목들은 성적과 관련하여 특이한 점이 있다.
모든 과목들이 실기, 즉 코딩이나 납땜 등이 제일 시간을 많이 잡아먹는 파트이긴 하나,
성적을 결정짓는 요소는 프로젝트 점수보다는 시험점수라는 것.
때문에 코딩을 밤새도록 코피 터져가며 해서 점수를 빠방하게 받아놓았어도,
거기에 너무 기력을 소비하여 시험을 소홀히 준비하다 허탈한 grade를 받는 경우가 너무나 많았다.
평소에 디립다 놀다가도 있는 시험들만 잘 보면 성적 잘 나오는 생명과 과목들이랑은 비교된다고 해야하나.
실제로 대학생활 중 고생한 경험 및 추억은 다들 컴공과 관련해서인데,
내 대학성적의 상당부분을 컴공과 과목들이 까먹었다는 사실. ㅋㅋㅋ
그러나 OS는 반대로 프로젝트를 돌돌 말았으나 시험에서 분발하여 A대로 커버하는 기염을 토하고 말았다.
원래 학점 퍼주는 과목이긴 하였으나-_- 3, 4번째 프로젝트를 업혀서ㅋㅋ 했던 나는 약간의 양심의 가책을 느끼기도.
아무튼... 2005년 12월 초...
4번째 프로젝트를 하느라 밤을 하얗게 새고 78계단을 내려오는데,
차가운 공기를 뚫고 내렸던 눈부셨던 아침햇살은 아직도 기억에 선선하다.
그와 더불어 막바지로 치닫는 유학준비... ㅎㅎㅎ
# by | 2007/08/19 21:45 | Yongon saint | 트랙백 | 덧글(6)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
타과생이면 몰라도 컴공으로 주욱 나가시려거든 직접 하시는게 좋을듯 합니다만,,
어차피 OS가 추후에 몰라도 되는 내용이 아니라서요 ㅎ