<이 녀석 사진을 몇 번이나 우려먹는지 모르겠네요. ^^;;;>

지난번에 가지고 있던 미개봉 아이팟 터치를 팔려고 계속 모셔 놓고 있었는데... 개발자의 호기심이랄까요? 아니면 욕심이랄까요? 자꾸 신경이 쓰여서 안되겠더군요. ㅎㅎ 그래서 어째 용량이 좀 작은 8GB 중고랑 바꿔서 쓸 수는 없을까 찾다가 드디어 화요일 저녁에 교환했습니다. ^0^)-b

교환하시는 분이 아이팟을 아주 소중히 쓰셔서 그런지 완전 새 거더군요. ㅠㅠ 추가금도 후하게 주셔서 기분 좋게 교환했습니다. 뭐 집에 오자마자 이런 저런(?) 작업을 마무리하고 음악을 딱 들었는데.... @0@)a....


좋은 말로 하면 시디 음질처럼 깨끗한 거고... 나쁜 말로 한다면 “밋밋”한겁니다. 이건 그냥... 아무런 기교가 들어가 있지 않군요. 대학교 2학년 때 아르바이트한 돈을 모아 샤프의 MT770을 듣고 음질에 충격을 먹은 이후로 또 다른 충격을 받았습니다. ㅡ_ㅡa... 샤프 음질은 가히 예술이었는데.... 이건 다른 의미로 예술(?)이군요.


아이팟 터치의 음질에 대해서는 사람들 마다 기준이 달라서, 꼭 나쁘다고는 할 수 없지만... 베이스와 드럼 류의 울리고 낮은 음에 중점을 두신다면 아이팟 터치는 불합격입니다. ^^;;;; 물론 이퀄라이져 기능이 있습니다만... 거의 제구실을 못하고 있더군요. 제가 가지고 있는 Yepp-Q1과 비교해도 확실히 베이스와 드럼 소리가 떨어집니다. 그리고 어찌 듣다보면 약간 고음부에서 화이트 노이즈 같은 것도 들립니다. 쿨럭..;;;; ㅡ_ㅡ...

UI와 멋진 기능도 좋지만 음질에도 좀 신경을 썼으면 좋았을텐데 하는 아쉬움이 들었습니다. ㅎㅎ 좀 많이 아쉽네요. 그래도 저처럼 뼛속까지 개발자(?)인 사람들 한테는 멋진 기기입니다. ;) 제원도 상당히 괜찮고 무엇보다 만든 작품을 합법적으로 판매할 수도 있다는 것이 큰 매력이군요. ^0^)-b 이제 NDS에서 아이팟 터치로 옮겨 갈지도... ;)

에혀... 기기 본연의 역할이 좀 딸린다는 게 정말 안타깝군요. 누가 멋진 이퀄라이져 넣은 MP3 플레이어를 개발 안 해주나 모르겠네요. “커버 플로우” 이런거 안돼도 괜찮으니 중저음 부를 좀 살릴 수 있는 플레이어가 나오면 좋겠습니다. ㅠㅠ

에궁~ 8시 경에 집에 와서 시간까지 작업을 강행한 결과~!!! 드디어 프로세스와 스레드 관련 부분도 어느 정도 마무리되었습니다. ;) 와아~ 짝짝짝~!!!

거의 끝난 기념으로 무엇을 할까 고민을 많이 했었는데~ 후배가 매트릭스 화면을 만들어 보는 게 어떻겠냐는 이야기를 해서 프로세스 1개와 1021개의 스레드를 이용해서 매트릭스 화면을 만들어 봤습니다. 아래는 인증샷 입니다.

사실 실제로 보면 글자가 줄줄 흘러 내리는 것이 보이는데... ㅡ_ㅡa... 스크린 샷으로는 그런 느낌이 나질 않아서 약간 아쉬움이 남는군요. ㅎㅎ 조만간 실행 파일을 정리해서 한번 올리겠습니다.

아우 벌써 또 이만큼 시간이 지났네요. ;) 일단 오늘은 자고 내일 정리해서 올리겠습니다. ㅎㅎ 다들 좋은 밤 되세요 ;)

주중에는 감기에 걸려서 콜록거린다고 작업을 거의 못했고, 오늘은 친구를 만난다고 나갔더니 역시나.... 작업 분량이 밀리고 말았습니다. ㅠㅠ 아흑... 이거 큰일이군요. ㅠㅠ 이 일을 어찌해야 할지....

진짜 이번 주는 완전 버닝 해야겠습니다. ㅠㅠ 그나마 다행인 것은 내일부터 일주일간 교육이라는 사실.... ㅡ_ㅡv 아침에 무지 일찍 일어나야 한다는 문제가 있지만... 어떻게든 되겠지요. ㅎㅎ

이번 주는 Milestone을 2개 찍어야겠군요. ㅠㅠ 와우~!!! 화이팅입니다. ;) 다들 좋은 밤 되세요 ;)

사실 현재 가격보다 좀 많이 싸게 샀고... 생각보다 찾으시는 분이 없어서 제가 쓸까 생각 중입니다. 다음 주까지 찾으시는 분이 없으면 일단 깐다음 간단한 애플리케이션을 구현해볼까 생각하고 있는데.... ㅠㅠ 으흑... 그렇게 되면 지출이... ㅠㅠ

원래는 그냥 무조건 팔아야겠다고 생각했습니다만, 슬슬 NDS, PSP외에 다른 기기를 접해봐야겠다는 생각도 들고... 무엇보다 앱스토어라는 꿈의 마켓(?)이 자꾸 신경쓰여서 안되겠습니다. ㅠㅠ 뭐라도 만들어 올리고 싶은 욕구가 마구 솟구쳐서... ^^;;; (역시 천성이 개발자~!!!!)

올해는 해야할 목표가 있어서 본격적으로 뛰어들지는 못하겠지만, 틈틈히 시간을 내서 한번 볼 생각입니다. 과연 애플처럼 멋진 UI를 만들 수 있을지 궁금하군요. ;)

에혀~ 이제는 팔려도 그만, 안팔려도 그만처럼 되버렸다는... ㅠㅠ 크윽... 사실 살 때부터 이미 예정된(?) 결말이었습니다. ㅠㅠ PSP하고 NDS를 팔 준비나 해야겠네요. ㅠㅠ

아직 완전히 결정된 것은 아니니 16GB 아이팟을 구매하고 싶으신 분은 아래를 참고하세요. ;) 파격적인 가격에 드립니다. ;)

==> http://kkamagui.tistory.com/657 <== 클릭


<이 녀석이 아이팟 2세대 입니다>





<요렇게 생긴 녀석이 아이팟 터치 2세대입니다>

본의(?) 아니게 재고를 하나 떠 안게 되어서, 아이팟 터치 2세대 16GB가 필요하신 분께 싸게 드리려고 합니다. 신상품이고 미개봉입니다(당연한 이야기겠지요. ^^;;; 설마 중고를... ㅎㅎ). 제품 구성은 다음과 같습니다. ^^;;;;


아이팟 터치(iPod Touch) 2세대 16GB + 액정 필름 + 실리콘 케이스 + 음악 상품권


제품은 완전 새 거입니다~!!! 미개봉이라서 박스채로 그대로 있습니다. @0@)-b 일단 제가 완전 보증하구요~!! 가격은 타 쇼핑몰의 보다 저렴하게 드릴 수 있습니다(40만원 중반에서 초반사이 정도?).


만약 제품이 중고거나 정품이 아니라면... 앞으로 나올 책을 한권 무료(?)드리겠습니다~!! @0@)-b


그나저나 워낙 고가의 물건이라 사실 분이 있을지 모르겠군요. 일단 그래도 혹시나 모르니 올려 봅니다. ;) 택배도 가능하니 궁금하신 점은 비밀 댓글로 연락주세요. ;)


ps1) 찜하셨던 분이 취소하셔서 찜한다는 댓글을 정리했습니다. ;) 양해 부탁드립니다.

ps 2) 가끔 개봉한 중고인줄 오해하시는 분이 계신데... 정품 미개봉 상태 그대로입니다. ;)

거의 3주 만에 올라오는 Milestone이군요. ;) 중간 중간에 올릴 수도 있었는데... 일정에 좀 쫓기다 보니 마음이 급해서 그러질 못했네요. ;)

image

<멀티 레벨 큐 스케줄러가 도입된 화면> 

그 동안 MINT64 OS에 많은 변화가 있었습니다. 그 중에서 첫 번째는 라운드 로빈 스케줄러에서 벗어나 멀티 레벨 큐가 도입된 것입니다. 큐는 0~5까지 총 5개의 레벨로 구분되고, 우선 순위에 따라 적당히 레벨을 설정해 주면 스케줄러가 레벨에 따라 회수를 달리하여 열심히 스케줄링 해줍니다. 위의 스크린샷은 현재 수행 중인 태스크의 우선 순위를 변경한 후, 프로세서 사용률을 출력한 화면입니다. 태스크를 Sleep 없이 계속 실행했더니 사용률이 98%까지 올라갔군요. ㅠㅠ

image

<동기화 수행 전, 숫자의 순서가 일정치 않으며 출력된 카운터의 수가 15개가 안됨>

두 번째는 동기화 처리를 위해 뮤텍스(Mutex)가 추가된 것입니다. 동기화 처리에서 빠지지 않는 것이 두 태스크 간에 변수 하나를 공유하면서 덧셈이나 값을 출력하는 예제인데, OS 책을 몇 권 보신 분은 이제 지겨운 예제일 것입니다. 저도 처음에는 왜 이런 단순한 예제를 가지고 설명하는 것일까 하고 생각했습니다만, 반대 입장이 되어 보니 이제서야 알겠더군요. ㅡ_ㅡa... 그것만큼 설명하기 쉽고 간단한 예제가 없더라구요. ^^a... 그래서 결국 태스크 3개가 하나의 변수를 1씩 증가시키면서 5번씩 메시지를 출력하여 1부터 15까지를 출력하는 예제를 작성했습니다. ㅡ_ㅡa...

동기화를 하지 않으면 당연히 위 처럼 제대로 출력이 안되며... 뮤텍스를 이용하면 아래처럼 예쁘게 출력됩니다. 이제 조금만 더 하면, 어느 정도 실행 테스트 가능한 버전을 공개할 수 있겠군요. ;)

image

 <동기화 수행 후, 숫자의 순서가 1씩 증가하며 총 15개의 메시지가 출력됨>

아유~ 이제 이번 주는 스레드에 대한 내용을 정리해야 하는데... 벌써부터 머리가 아프네요. ㅠㅠ 어쨌거나 열심히 해야겠습니다. 호환, 마마보다 무서운 것이 일정이 밀리는 일이니까요. ;)

그럼 다들 좋은 밤 되세요 ;)

고향 집에 일이 좀 있어서 잠시 내려갔다 왔습니다. ㅎㅎ 이번 주는 진도를 거의 못 나가서 금요일 오후는 일이 있다는 핑계를 대고 집에 왔는데... 금요일부터 토요일 아침까지 버닝했음에도 불구하고 거의 작업을 하지 못했군요. ㅠㅠ

오고 가는 기차 안에서 열심히 뭔가를 했지만... 역시나 별 소득이 없었고... 크윽... 눈물 납니다. 새벽에 올라와서 지금까지 버닝한게 오히려 더 많이 한 듯 하군요. ^^;;;; 이것 참... 이번 주는 다른 내용을 또 정리해야 하는데... 일정이 밀릴 것 같아서 아주 걱정입니다.

그나마 다행인 것은 내일이 예비군 훈련이라는 것이지요. >ㅁ<)-b 좀 일찍 와서 작업을 할 수 있고, 예비군 훈련을 받으면서도 대략적인 내용을 정리할 수 있으니 일석이조가 아니겠습니까? ㅎㅎ 일단 내일 와서 마무리하고 Milestone을 또 하나 올릴 수 있도록 아주 빡시게 해야겠습니다.

그런 의미에서 오늘은 자야겠군요. 기차 안에서 안 잤으면 큰일날 뻔 했습니다. 어휴... 뒤에서 호랭이가 따라오는 것 같아서 ㅎㄷㄷ하네요. ㅠㅠ 그럼 다들 좋은 밤 되세요 ;)

드디어 LD190G가 왔습니다~!!! 좀 싸게 사서 생각보다 오래 걸릴 것이라 생각했는데... 하루 만에 왔더군요. ㅡ_ㅠ 급한 저의 마음을 어떻게 알고 바로 배송 해줬는 지... 요런 센스쟁이들 ㅠㅠ)-b

 

아유~ 오자마자 밥을 허겁지겁 먹고 박스를 깠는데... 얼래... 생각보다 꽤 큽니 다. ^^;;;; 제가 생각하고 있던 크기는 17인치 와이드였던 걸까요? 24인치 모니터의 하단에 옮겨 넣을려고 그랬는데.... 안 들어가더군요. ㅠㅠ 크윽... 이런... ㅠㅠ 나중에 모니터 아래에 뭐라도 받쳐서 키를 좀 높여야겠습니다. 엉엉...

18.5인치다 보니 TN 패널을 사용했는데... 역시 시야각이 좀 떨어지네요. ^^;;;; 24인치 모니터는 LG IPS 패널을 사용하는데, 색 재현률은 좀 떨어질지 몰라도 시야각이랑 색감이 장난 아닌데... LD190G는 그런 면에서 조금 떨어지는 것 같습니다. 혹시나 24인치 모니터 옆에 세워서 붙여 볼까 하고 돌려봤는데... 역시 시야각 때문에 살짝 GG ㅠㅠ 영 급한 일이 아니면 못 돌리겠습니다. ㅎㅎ 특히나 24인치 모니터 옆에 붙으니 더 시야각 차이가 나서 노란색 같은 경우는 살짝 색이 날려 보입니다. ㅎㅎ

하.지.만... 목이 없어서 그런지 뭔가 목 있는 놈보다 공간을 작게 차지한다는 느낌이 계속 드네요. ㅎㅎ 그리고 모니터 옆에다 두니 무슨 액자 같은 느낌도 들고... 뭐랄까요... 아기자기한 느낌이랄까... 나중에 위모트랑 플라스틱을 달아서 터치처럼 만들어도 예쁘겠다는 생각도 듭니다. 시간 좀 나면 프로젝트로 한번 진행해 봐야겠습니다. ;)

이제 모니터도 왔으니 다시 열버닝 해야겠습니다. ;) 다들 좋은 밤 되세요 ㅎㅎ

크윽... 이번 달은 지출이 많아서 자제를 하려 했지만... 도저히 불편해서 질러야겠습니다. 아시는 분은 아시겠지만, 전 이미  24인치 모니터를 쓰고 있습니다. 아래처럼 말이지요. ㅎㅎ

image

<저의 절친... 24인치 모니터에 MINT64 OS를 구동한 화면입니다. ㅎㅎ>

그런데 이렇게 넓디 넓은 24인치 모니터도 자료를 정리할 때면 한없이 좁아지더군요. 문서 정리하랴 스펙 보랴 코드 붙여 넣으랴... ㅠㅠ 창을 전환하느라 정신이 없을 지경입니다. 사실 이렇게 작업하면서도 지금까지 뭐가 불편한지 모르고 있다가, 얼마 전에 코드를 붙여 넣는 중에 짜증이 나서 알게됬습니다. 도저히 안되겠다 싶더군요. 그런데 이때 문득 떠오른 것이 있었으니... 바로 삼성에서 만든 노트북용 모니터 랩핏(Lapfit, LD190)입니다. ㅠㅠ)-b

어떻게 생겼냐하면 아래 사진의 우측처럼 생겼습니다. 기존 모니터와의 차이점이라면 목이 일단 없고 전력 소모가 22W까지 떨어졌다는 것입니다. 그리고 USB로 연결할 수 있다는 것도 하나의 장점입니다. ;) 옛날 멤버십 과제에 비슷한 게 있었는데... 혹시 그분들이 만든 게 아닌지 모르네요. ^^;;;;

image

안그래도 모니터가 너무 커서 일반 모니터를 두기가 애매했는데, Lapfit은 24인치 모니터 바로 아래에 둘 수 있어서 좋은 것 같습니다. 특가로 파는 곳이 있어서 좀 싸게 샀는데... 단점이라면 배송이 늦다는 것 정도...(ㅠㅠ 아흑~ 이쁜아 빨리와라~ ㅠㅠ 니가 빨리 안와서 오빠가 불편하잖니 ㅠㅠ)

아아~ 실력에 비해 작업 환경이 너무 좋군요. ㅠㅠ 살짝 반성을 해야겠습니다. ㅠㅠ 뭐~ 열심히 하려고 산거니 열심히 하면 되지 않을까요? ㅎㅎ ;) 나중에 배송되면 설치해서 다시 인증 샷을 올리겠습니다. 그리고 성능도 같이 말입니다. ㅎㅎ

이궁~ 그럼 오늘도 슬슬 작업을 시작해야겠군요. 다들 좋은 밤 되세요 ;)

이번에는 정말 아슬 아슬하게 기한을 맞췄군요. ㅠㅠ

시간이 너무 늦었으니 오늘은 그냥 화면만 올리고, 자세한 것은 내일 올리겠습니다. ;)

아래는 실행 화면입니다. ㅎㅎ 5개의 우선 순위를 설정할 수 있도록 수정 되었고, 그 외에 뭐 태스크 종료 기능과 우선 순위 변경 기능, 그리고 프로세서 사용률 측정 기능이 추가되었습니다. ;)

clip_image002

이크~ 이만 자야겠군요. 내일 또 회식이 있어서... ^^;;; 다들 좋은 밤 되세요. ;)

크윽... 회식이다 뭐다 하다 보니까 금요일임에도 불구하고 정리를 거의 하지 못했습니다. 일정대로라면 이번 주에 멀티 레벨 큐 스케줄러가 도입된 MINT64 OS가 나와야 하지만... 자칫 잘못하면 어려울 수도 있겠다는 생각이 드는군요. ㅠㅠ

술도 잘 못하는데 살짝 들이킨(?) 폭탄주에 뻗어서 이번 주 내내 시름 시름 앓았습니다. 에혀... 이번 주말은 그냥 나의 애마(?) 마제스터치 키보드를 벗삼아서 죽어라 코딩하고 정리해야겠군요. 일요일 저녁이라도 Milestone을 올릴 수 있으면 좋으련만... 일단 노력해 보겠습니다. ;)

그나마 다행인 점은 요즘 회사가 어려운 관계로 야근비를 안 준다는 겁니다. 야근비가 안 나오는데 왜 다행이냐면... 다들 야근을 안하고 집에 일찍 가기 때문이지요. 그 동안 생활비에 한몫 했던 야근비가 없어져서 주머니는 좀 얇아 졌지만, 대신 이렇게 시간이 많이 남으니 오히려 저한테는 더 좋은 것 아니겠습니까? >ㅁ<)-b

앞으로도 계속 이런 분위기였으면 좋겠습니다. ㅎㅎ 언능 언능 작업하게요 ㅎㅎ ;)

에궁~ 날씨가 갑자기 추워 졌네요. 다들 감기 조심하시고, 즐거운 주말 보내세요.

에궁... 간단히 끝날 줄 알았는데... 사람들이 계속 달리는 바람에 이제야 들어왔습니다. 중간에 들러서 스타크래프트 하는 것도 구경하고... 나름 재미있게 놀았습니다. 한가지 흠이라면... 오늘을 그냥 날렸다는 정도...? ㅠㅠ

아우... 내일이 벌써 수요일인데... 큰일이군요. 진도가 살짝 밀릴 듯한 느낌이 듭니다. ㅠㅠ 벌써부터 밀리기 시작하면 감당이 안 되는데... 정 안되면 월차 신공이라도 써서 진도를 좀 당겨야겠네요. 고기 먹을 때는 좋두만... 이렇게 부메랑처럼 타격이... 쿨럭..;;;;

어떻게든 이번 주에 태스크에 관련된 뼈대를 완성해야 하는데... 회사 일은 슬슬 압박이 밀려오고... 해달라는 건 많아서 살짝 죽을 것(?) 같습니다. 이궁... 이러다 진짜로 최후의 보루로 생각했던 휴직 신공을 쓰는 게 아닌가 걱정됩니다. ㅎㅎ 아흑... 머리가 아파서 이만 자야겠습니다. ;)

발표의 주제는 "좀 더 나은 사회를 위한 몇 가지 방법 –- 어쩌면 IT기술을 사용해서" 이고 비영리 단체에서 활동하시는 분들을 위해 IT 기술을 어떻게 활용해야 옳은 것인가에 대해서 발표하신 내용입니다. 우연히 들어갔다가 발표를 보고 감동을 받아서 올려둡니다.

동영상은 아래에서볼 수 있습니다.




사실 많이 어려운 주제인데, 적절한 예와 실제 경험을 바탕으로 잘 설명하신 것 같습니다. 특히 위키위키의 사례는 제가 병특을 할때 회사에서 직접 경험한 변화와 매우 비슷해서 깜짝 놀랐습니다. @0@ 확실히 정보의 공유가 조직에 어떠한 영향을 미치는지 몸으로 느꼈기 때문에 더욱 공감할 수 있었습니다.

그리고 아래는 발표 중에 나왔던 엥겔바르트의 데모 동영상입니다. Clip 3부터가 상당히 충격적인데 일단 말이 필요없으니 시간 있으시면 한번 보시기 바랍니다. ;)

http://sloan.stanford.edu/MouseSite/1968Demo.html

발표에 대한 자세한 내용은 김창준님의 블로그인 http://agile.egloos.com/4811209 에서 볼 수 있습니다.

clip_image002[8]

에휴~ 이번 주부터 2주 동안은 MINT64 OS에 스케줄러를 구현할 예정입니다. 이번 주는 다음 주에 구현할 멀티 레벨 큐 스케줄러(Multi Level Queue Scheduler)를 위해 간단한 라운드 로빈 스케줄러를 넣고 있습니다. 좀 있으면 주말인데, 주말에 약속이 좀 있어서 과연 이번 주 안에 끝낼 수 있을지 모르겠군요. ^^;;;;

시간은 점점 흘러만 가고 진도는 잘 나가지 않는 가운데... 뭐 회사에 대한 고민들과 퇴사하는 후배의 모습이 겹쳐서 머리가 좀 뒤죽박죽입니다. ㅠㅠ 이거 원... 이런 불경기에 월급 안 깎이는 것만해도 고마워 해야 할 텐데 말입니다. ㅠㅠ 아무래도 배가 부른 것 같군요. 개구리 올챙이적 모른다고 병특 때 고생한 건 생각도 안 하는 듯... ㅠㅠ

에궁... 정신 똑바로 차려야겠습니다. 홧팅~!!! >ㅁ<)-b

ps) 위의 화면은 라운드 로빈 스케줄러를 구현해서 20개의 태스크를 생성한 화면입니다. 대부분의 OS가 그렇듯이 PIT Interrupt를 통해 태스크를 전환합니다. ^^;;; 원래 각 태스크가 화면 주변을 돌게 되어 있는데, 스크린 샷을 찍다보니 그냥 잡다한 글자만 보이는 군요. 약간 슬프다는(?)...

오늘 이상한 일이 있었습니다. 메신저로 무려 두 분이나 안부를 물으셨기 때문이지요. ^^;;;; 대인 관계가 워낙 마이크로 레벨(?)인지라 굉장히 드문 케이스인데... 더군다나 두 분이 모두 실력이 출중하신 분들이라 더 깜짝 놀랐습니다. ㅠㅠ

두 분에 비하면 전 그냥 한낱 미물에 불과한... 역시나 마이크로 레벨(?)의  티끌이라서... 그 분들이 아는 척 해 주시는 게 내심 기뻤습니다. ㅡ_ㅡ* 뭐 이런 저런 이야기도 나누고 약간 인생 이야기 비슷한 것도 했었는데... 뭐랄까요... 다들 고민이 비슷하더군요. 자신이 원하는 것과 다른 것을 하는 괴리감, 그래도 때려 칠 수 없는 현실... 사람 사는 게 다 비슷한가 봅니다.

그래도 아무리 어렵고 힘들어도, 하고 싶은 건 하고 살자구요 ;) 두분 모두 힘내시고 나중에 또 안부 물어 주세요. 전 항상 한가(?)하답니다.

에궁~ 오늘도 결국 늦게 자는군요. 요즘 뒷골이 땡겨서 오늘은 좀 일찍 자나 했는데... ㅎㅎ 역시나 ㅠㅠ 이궁~ 다들 좋은 밤 되시길~ ;)

image 

헥헥... 이번 주와 지난 주에 좀 많이 놀았더니 진도 맞추기가 힘드네요. ^^;;;; 어쨌거나 겨우 맞췄습니다. 아슬아슬 했다랄까요 ^^;;;; 자칫 잘못했으면 오늘 밤도 거의 못 잘 뻔 했습니다. ㅠㅠ 크윽... 이게 뭐 하자는 짓인지... ㅠㅠ

이번 주는 멀티 태스킹에 관련된 기능을 정리했습니다. 멀티 태스킹의 핵심이라하면 당연히 컨텍스트(Context) 관리 기능이므로, 컨텍스트 처리에 대한 함수 위주로 작성했습니다. 결과는 위에서 보시는 것과 같이 대~성공~!!!! 두 개의 태스크가 전환하면서 서로 자기 차례라고 메시지를 우기고(?) 있는 모습입니다. ^^;;;; (사실 예전에 다 만들었던 코드를 붙여 넣은 것 밖에는 없어요 ㅠㅠ)

다음 주는 이것을 확장해서 스케줄러도 추가하고 태스크 생성 및 종료에 대한 API도 추가해서 나름 괜찮은 시분할 멀티 태스킹 기능을 추가할 예정입니다. 점점 회사 일에 압박이 들어오고 있어서 생각대로 잘 될지는 알 수 없지만, 그래도 열심히 하는 것 말고는 방법이 없군요. ^^;;;; 제 유일한 장점이 책상에 오래 앉아 있는 거니 이거라도 살려야지요 ㅎㅎ

아아~ 이제 다음 주를 위해 준비를 좀 해야겠습니다. 다들 그럼 좋은 밤 되세요 ;)

ps) 크윽... 귀신보다 무섭다는 일요일 밤이군요. ㅠㅠ 눈물납니다. 아주 그냥 ㅠㅠ

이번 주와 지난 주는 큰 맘 먹고 여기저기 다른 일(?)에 힘쓰고 있습니다. 그 동안 너무 작업에만 몰두한 지라 뭔가 리프레쉬가 필요했거든요. ㅎㅎ

오늘은 간만에 친구들을 보러 갔습니다. 사실 친구들이라고 하기도 좀 그런 것이... 저랑 포함해서 딱 4명이라 ㅎㅎㅎ 멤버십에서 살다시피 하다가, 각자 뿔뿔이 흩어져서 거의 못 만났습니다. 간만에 보니까 아주 반갑더군요. 특히나 지들이 고기를 쏜다고 해서 더 반가웠습니다. ㅋㅋㅋ

워낙 돈을 잘 버는 회사에 다니는 친구라서 고기를 먹는데 전혀 미안하지 않더군요. 사실 초반에는 좀 미안한 감이 있었는데, 이놈들이 우리 돈 못 번다고 장난 삼아 이야기 하는 바람에 마음에 리미트를 해제하고 메뉴판을 불렀습니다. 그랬더니... 4명이서 먹은 고기 값이 28만원~!! ^^;;;; 뜨헉...

집으로 오는데 전혀 춥지 않았습니다. ㅋㅋ 오늘은 고기도 먹었으니 밤새 버닝해야 겠군요. 오늘 안으로 태스크 스위칭(Task Switching)에 대한 내용 정리를 끝내야겠습니다. @0@)-b 홧팅~!!!

ps1) 친구야 미안, ㅋㅋ 이 글을 보고 있을 지 모르겠지만 너 돈 잘 벌잖니~ ㅋㅋ 내가 스페샬 땡쓰에 적어 줄텡께~ 계속 영양 보충 부탁한다 ㅋㅋ

ps2) 이 글을 보고 있을 장군아~ ㅋㅋ 내가 널 악의 구렁텅이로 몰아 넣은 것 같아 살짝 미안한데 ㅋㅋ 횽도 이렇게 될 줄 알았겠니, ㅠㅠ 너그러이 용서해 주렴 ㅎㅎ

오늘 블로그를 돌다가 재미있는 걸 발견했습니다. 마이크로 소프트에서 만든 Microsoft Surface라는 제품인데요. 멀티 터치를 이용해서 "뭐든지~!!" 할 수 있게 만든 제품입니다. 일단 말이 필요 없습니다. 아래를 한번 보시죠.




멋지지 않습니까? http://www.microsoft.com/surface/index.html 에 가면 더 많은 동영상을 볼 수 있습니다. ㅠㅠ)-b

완전 멋지군요. SDK도 공개된 것 같던데.... 돈만 있다면 하나 사고 싶습니다. 흑흑흑... 완전 멋져요.. ㅠㅠ

MINT64 OS에 대해서는 간만에 포스팅하는 것 같습니다. 그 동안 회사 일도 좀 바빴고, 컨디션 난조로 생각보다 진도가 잘 안 나가는 바람에 조금 늦어 졌습니다. 블로그에 포스팅하는 시간까지 아껴가며 집중해야 했기 때문이지요. ㅠㅠ 결국 어쨌거나 목표했던 기간은 맞췄습니다. ㅎㅎ

이번에는 시간에 관련된 디바이스에 대한 기능을 추가했습니다. 흔히들 많이 쓰는 PIT 컨트롤러와 RTC, 그리고 정밀한 시간 측정 시에 사용하는 Time Stamp Counter(TSC)에 관련된 기능을 추가한 것이지요. 그리고 덤으로 쉘에 이러한 정보를 출력할 수 있는 기능도 추가했습니다.

만들어 놓고 보니 뭔가 재미있는 게 없을까 하는 생각이 들더군요. 그래서 마침 PIT도 있고 TSC도 있겠다 싶어서 프로세서의 클럭을 간접적으로 측정하는 코드를 삽입했습니다. TSC가 프로세서의 클럭을 기반으로 동작하는 특성을 이용해서, 약 10초 동안에 TSC가 변화한 양을 구하고 그것을 10으로 나누면 얼추 비슷하게 클럭을 측정할 수 있습니다. 다음은 MINT64 OS에서 측정에 사용한 코드입니다. 아래 코드로 측정했을 때 2667MHz가 나왔는데 실제 PC의 클럭이 2.6GHz짜리이므로 큰 차이가 나지 않는 다는 것을 알 수 있습니다.



이걸로 또 한 고비를 넘었습니다. ;) 이제부터 몇 주 동안은 멀티 태스킹 기능을 작업하면서 정리해야 하는데, 갈길이 막막하네요. ^^;;;; 코드를 짜는 거야 이미 지겹도록 했으니 아무 문제 없는데... 정리가 만만치 않아서... 쿨럭..;;; 이것 참 큰일입니다. 에혀... 그래도 어쨌거나 해봐야지요. >>ㅑ~울~!!!

에궁~ 빡시게 달릴 이번 주를 위해 오늘은 좀 일찍 자야겠습니다. 다들 좋은 밤 되세요 ;)

clip_image002

아우~ 이거 원... 프로그램 정리하랴 문서 정리하랴 아주 죽을 맛입니다. 프로그램 짜는 시간보다 문서를 정리하는 시간이 거의 10배는 드는 것 같습니다. ^^;;;; 그래도 어째저째해서 하긴 했는데... 일정이 좀 늦어졌네요. ㅎㅎ

이제 타이머, RTDSC, RTC에 대해서도 정리해야 하는데... 아무래도 쉘로 인한 타격으로 진도가 계속 밀릴 것 같습니다. ㅎㅎ 진도 보충하려면 또 죽어라고 하는 수 밖에는 없을 것 같군요. ㅠㅠ

밤 늦게까지 작업을 해서 그런지... 요즘은 회사 가기도 싫고, 소화도 잘 안된답니다. 회사 일이 아무래도 전공과 거의 무관하기 때문에 그런 것이 아닌가 생각되는데... 어흑... 어디 재미있는 일하는 회사 없을까요? 저도 윈도우 프로그램이나 Intel 프로세서에서 동작하는 프로그램 만들고 싶어요. ㅠㅠ

어디 괜찮은 곳 없을까요? 에혀... ㅠㅠ)-b 이런 불경기에 안 짤리는 걸 감사히 생각해야 하는 건가... ㅠㅠ

이번 주 금요일에 급히 쉘 관련 파트를 끝내고, 주말 내내 PIT 컨트롤러쪽 작업을 하면서 문서를 정리하고 있었습니다. 처음에는 진도가 꽤나 잘 나가는 듯 했으나, 언제나 그렇듯이 문제에 봉착했습니다.

PIT 컨트롤러의 카운터 0를 사용하는 경우, IRQ 0 인터럽트가 발생하기 때문에 인터럽트를 통해 간접적으로 타이머가 완료되었음을 알 수 있습니다. 하지만 인터럽트가 "언제나" 가능하지는 않기 때문에, 직접 카운터 0를 읽어서 처리하는 함수를 만들었습니다. 처음 작성한 코드는 대략 아래와 같았습니다.


실행해보니 뭔가 이상했습니다. 함수를 실행하자마자 루프를 바로 빠져나왔기 때문입니다. 이상해서 곰곰히 코드를 보고 있었는데 도무지 감을 잡을 수가 없었습니다. 그러던 중... 갑자기 머리를 팍~!! 하고 뭔가 스쳤습니다. 차를 구할 때 이전 값보다 현재 값이 크다고 생각했기 때문에, (현재 값 - 이전 값)으로 구했는데.... 타이머의 카운터는 증가하는 것이 아니라 1씩 감소했던 겁니다. 즉 이전 값이 현재 값보다 더 크다는 것이지요. ㅠㅠ 코드가 제대로 동작하려면 아래와 같이 순서를 바꿔야 합니다.


어흑... 이것 때문에 몇시간을 날렸는지 모르겠네요. 이것 말고도 손가락으로 초를 쟀다가 시계의 초보다 1.5배는 빨리 카운팅해서... ㅠㅠ 디버깅을 계속한 걸 생각하면... 흑흑... ㅠㅠ 왜 손가락으로 카운팅하는 속도와 초침이 움직이는 속도가 같다고 생각했는지... ㅠㅠ

그래도 어떻게든 해결했으니 다행입니다. 에궁... 이번 주 안에 RTDSC랑 RTC 쪽도 끝내려고 하는데... 시간이 될런지 모르겠군요. 이번 주도 미친듯이 집에 일찍 와야겠습니다.

다들 좋은 밤 되시고, 이번 주도 무사 칼퇴근하시기 바랍니다. ;) 야근불가~!!!

오늘 간만에 여자 친구랑 극장에 갔습니다. 하루 그냥 째고 놀자고 맘먹고 밖에 나가서 고기도 먹고 영화도 봤더니 새벽에야 들어왔군요. ㅎㅎ 과속 스캔들과 잉크하트 중에서 고민하다가 잉크하트를 보기로 했습니다(별다른 이유는 없었어요 ;)

영화를 본 소감은... 가족끼리 보기에는 아주 그만이랄까요? 감동과 교훈, 그리고 약간의 컴퓨터 그래픽이 조합되어 아주 그만이더군요. ^^)-b 간만에 아주 즐겁게 봤습니다. 전체 관람가다보니 그렇게 폭력적인 장면도 없거니와 나름대로 긴장감도 있어서 상당히 볼만했습니다.

다만... 전체 관람가다보니 뻔한 해피 엔딩과 주인공의 무시무시한 능력이 좀 흠이라면 흠이더군요. ㅎㅎ  그것 외에는 크게 흠잡을 데가 없는 것 같습니다.

여자 친구가 잔인한 걸 싫어하고 동심에 푹 빠지는 걸 좋아한다면 잉크하트도 괜찮을 것 같습니다.

별 5개 만점에 별 4개~!!!

image

어흑... 오늘 집에 와보니 수표가 왔더군요. 이번에는 지난번 보다 좀 적은 103.34 달러가 왔지만, 기분은 첫 번째보다 더 좋은 것 같습니다. 사실 까맣게 잊고 있었던 지라 더 그런 것 같네요. ^^

여러분이 보내 주신 이 수표는 더 열심히 하라는 뜻으로 알고, 이번에도 피로 회복제에 투자하겠습니다. 허접한 블로그를 방문해 주시는 여러분께 깊은 감사를 드리며, 앞으로 더 열심히 하는 kkamagui가 되겠습니다. ;)

그럼 좋은 밤 되시고, 여러분께 거듭 감사 드립니다. _(_ _)_

ps) 정리 중인 쉘 코드 작성 파트가 상당히 진도가 안 나가네요. ㅠㅠ 코드는 벌써 다 만들었는데 이거 원.... 정리하는데 이렇게 시간이 들 줄은 몰랐습니다. 앞으로도 심히 걱정되는군요. ^^;;;;

드디어 사고를 치고 말았습니다. ㅠㅠ)-b 어제 기안이 결재 되었다는 이야기를 듣고 출판사에 다녀온 것입니다~!!! 왠지 모를 불안감과 기대감에 가슴이 두근두근하더군요. ㅎㅎ 가서 담당하시는 분도 뵙고 이런 저런 이야기를 나눴는데, 너무 인상 좋으시고 성격도 좋으셔서 깜짝 놀랐습니다. “역시 이 바닥은 둥글 둥글한 사람들이 살아 남는구나” 하는 생각이 들더군요. ;)

한 손에 책을 가득 들고 출판사를 나오면서, 이제 진짜 열심히 해야겠다는 생각이 들었습니다. 뭐랄까요... 분위기가 사뭇 다른걸 느꼈다고나 할까... 지금까지 막연히 열심히 해야겠다고 생각한 게 확 깨면서, 언제까지는 뭐 하고 언제까지는 뭐 하고 이런 계산이 팍~!! 되더군요. 크윽... 이제 잠은 다 잤습니다. ㅠㅠ

올해 안에 마무리하는 걸로 목표를 잡고 열심히 달려 보겠습니다. ;) 화이팅~!!!

ps) 위의 스크린 샷은 현재 작업 중인 콘솔 쉘의 화면입니다. ;) 이것도 이제 곧 마무리 되겠군요.

헛.. 때가 왔습니다. ㅠㅠ 일단 잠시 다녀와서 글을 마저 적을 예정입니다. ;)
(뭐, 사실 크게 할 일은 없습니다만, 왠지 긴장이 되는군요. ^^;;;)

그럼 잠시 후에 다시 ~!!!

크악... 이제 슬슬 쉘을 만들까 해서 sprintf() 함수를 구현하고 있었습니다. 처음에는 cdecl을 강제로 줘서 예전에 스택 어드레스로 하던 가변 인자 처리 방법을 써볼까 했는데... 64bit gcc는 cdecl을 줘도 무시하더군요. ㅡ_ㅡa... 그것도 당당히 무시한다는 경고까지 띄우고 말입니다. ㅡ_ㅡa...

그래서 결국 중계 역할을 하는 함수를 하나 둬서, 함수 Call 시에 레지스터로 넘어간 파라메터를 스텍에 집어 넣은 후  sprintf() 함수를 불렀습니다. 스택에 파라메터가 다 들어가 있으니 당연히 예전 방식대로 처리할 수 있었지요. ;) 그런데 의외의 곳에서 낭패를 봤습니다. ㅡ_ㅡa.... 다음 코드를 보시죠. ㅠㅠ


아시는 분은 아시겠지만, “...”으로 함수 파라메터를 정의했다면 다른 함수로 “...” 을 넘겨줄 수 없습니다. 쿨럭..;;; 왜 이걸 생각 못했는지... 그래서 예전에 쓰던 va_arg() 시리즈 물은 혹시 잘 될까 싶어서 써 봤는데... 의외로 링크 에러가 안 나는 겁니다. 그래서 정의된 곳으로 가서 확인했더니 라이브러리 함수가 아닌 builtin 함수를 가리키고 있더군요. ㅡ_ㅡa... 그냥 바로 코드로 전환되어서 링크 에러가 안 났던... ㅠㅠ

진작 이놈들을 썼으면 훨씬 전에 끝났을 텐데... vsprintf() 함수나 구현하고 sprintf()랑 printf()는 vaprintf()를 사용하도록 변경해야겠군요. Calling Convention 때문에 고민 꽤나 했었는데... 왠지 허무합니다. ㅠㅠ 에궁... 이렇게 또 하루를 날려 먹는다는... 그나저나 매번 가변 인자 때문에 고생했었는데, 좋은 걸 알았네요. ㅎㅎ 이제 걱정 안해도 되겠습니다. ;)

아우... 일단 자고 내일 일찍 와서 마무리를 해야겠습니다. 그럼 다들 좋은 밤 되세요. ;)


ps) CharSyam님이 지적하신 내용을 보고 본문을 다시 읽어봤더니, va_arg()를 라이브러 함수인 것 처럼 표현해서, 약간 수정했습니다. 본래의 의도는 va_arg()가 지시하는 함수가 라이브러리 함수가 아니라 builtinXXX 시리즈 함수라는 뜻이었는데, 마치 va_arg() 자체가 함수라는 것 처럼 썼더군요. va_arg() 시리즈는 매크로가 맞습니다. ;) CharSyam님 감사합니다. ;)

고향에서 엄마가 어찌나 바리바리 싸 주시던지... ㅎㅎ 올라오는데 종이 백이 찢어 질려고 해서 후덜덜하면서 올라왔습니다. :) 그래도 집에 와서 보니 흐뭇하네요 ;) 엄마 만세~~

짐 정리와 집 정리 좀 하고 컴퓨터 앞에 앉아 펩시를 마시고 있는데(펩시 짱~!!!)... “아~ 돌아왔구나” 하는 안도의 한숨과 “윽~ 내일 출근해야 하는 군하” 하는 통탄의 한숨이 같이 나오는군요. 크윽... 출근하기 싫어요. ㅠㅠ

에궁... 오늘 할 일도 많은데 언능 씻어야겠습니다. 그래도 이틀만 더 가면 다시 주말이니 힘내야겠어요 ㅎㅎ 언능 작업하고 자기 전에 또 MileStone이나 하나 올려야겠습니다. ㅎㅎ

전 폴더를 항상 “자세히” 보기로 합니다. 파일이 생성된 날짜나 파일 크기를 항상 유심히 보기 때문이지요. 그래서 폴더에 들어갈 때마다 보기 옵션으로 들어가서 자세히로 바꿔놓는데... 이게 상당히 번거롭더군요. 그래서 네이버에게 물어봤더니 아주 간단히 대답해 줬습니다.

한 폴더에 들어가서 보기 설정을 “자세히”로 바꾼 다음 위의 화면에 보이는 폴더 옵션을 조절하여 “모든 폴더에 적용” 버튼을 누르면 모든 폴더에 기본으로 적용됩니다. ;) 이렇게 간단한 줄 알았으면 진작 해 놓을 걸 그랬나봐요 ;)

그럼 다들 즐거운 설 보내세요 ;)


좀 있으면 할머니 댁에 가야함에도 불구하고 일정이 좀 밀린지라 미친듯이 작업했습니다(그것도 설날 새벽에 이 짓을..~!!! ㅠㅠ). 그 결과~!!! 일단 목표치까지는 완성했습니다. ;) 아우 이거 원 노가다가 아주 장난이 아니군요. 그리고 생각 난 김에 MileStone 성 글에는 앞에 [MileStone]을 달기로 했습니다.

예전에 한번 달았다가 별로 효용이 없어서 블로그를 옮기면서 안달았는데... 글을 검색하려니 태그로 검색하는 것 보다는 제목으로 검색하는게 더 눈에 들어오더라구요 ㅎㅎ 앞으로 어떻게 될지는 모르겟지만, 일단 다는 걸로 했습니다.

[MileStone]을 달려고 글을 찾던 도중... 64bit로 최초로 전환해서 올렸던 글을 봤습니다. 작년 7월이더군요. 허허... 그후 가능성을 검토하기 위해 한 3개월 투자해서 GUI까지 후딱 만들고 지금 2번째 만들고 있는 건데... 그간 고생이 참 많았던 것 같습니다. ㅠㅠ 수많은 가상 머신들을 테스트하며 무료로 쓸 수 있고 멀티 코어까지 지원하는 놈을 찾기가 쉽지 않더라구요. 개발 환경은 또 왜이렇게 구축하기가 힘든건지... 지금 생각하면 눈물이 앞을 가립니다. ㅠㅠ

어쨋거나 지금은 검증까지 완료된 상태니 다시 그런 고생은 안하겠지요. ;) 옛날 글을 보니 감회가 새로워서 한자 끄적거려 봅니다. ㅎㅎ

이크~ 더 늦기 전에 이만 자야겠군요. 다들 떡국 많이 드시고, 새해 복 많이 받으세요 ;)


프로젝트 홈페이지: http://dev.naver.com/projects/nanumfont/


작년부터 GUI에 사용할 무료 폰트가 없을까 많이 고민했었는데, 어제 웹서핑을 하다가 네이버에서 공개한 무료, 그것도 고정 폭 글꼴을 찾았습니다. @0@)-b 비트맵 방식으로 처리하는데 고정 폭만큼 편한 게 없는지라 테스트를 위해 바로 설치해 봤습니다.


아래의 그림은 제가 주로 쓰는 Bitstream Vera Mono 폰트와 나눔고딕 코딩 폰트를 비교한 것입니다. Bitstream에 비해 샤프한 느낌이 나고 한글이 예쁘게 잘 나온다는 것을 알 수 있습니다. 헷갈리기 쉬운 숫자 0과 영문 O를 쉽게 구분할 수 있도록 한 것도 맘에 드는군요. ;)



<나눔고딕 글꼴>



<Bitstream Vera Sans Mono>


Bitstream을 보다가 나눔 고딕을 보니 약간 어색한 문자가 보이기도 하지만, 공짜로 쓸 수 있고 한글이 예쁘게 잘 나오기 때문에 향후 나눔고딕 폰트를 본 따 GUI를 만들 생각입니다. MINT64 OS가 한층 더 이뻐지겠군요. ;) 프로젝트를 진행하시는 분께 감사의 메일이라도 보내야겠습니다.


아우~ 이제 좀 있으면 고향으로 출발해야 할 시간이군요. 다들 즐거운 설 되시고 떡국 많이 드세요 ;)

+ Recent posts