태스크 부하 분산(Task Load Balancing)을 구현하는 중인데... PIT 컨트롤러의 인터럽트에서 스케줄러의 상태를 보고 태스크가 적은 곳에 집어 넣는 방법을 사용했습니다. 그런데 ㅡ_ㅡa... 이게 문제가 있네요. 난데없이 집어 넣은 스케줄러에서 실행되는 것이 아니라 다른 스케줄러에서 튀어나오질 않나... 같이 스핀락을 획득하는 부분이 없는데 데드락이 발생하지 않나... ㅡ_ㅡa... 그것 때문에 어제 밤 9시경부터 오늘 아침 8시까지 디버깅했습니다. 결과는 GG ㅠㅠ
디버깅을 미친 듯이 한 덕분에 오후 3시쯤 느즈막하게 일어났군요. 당췌... 이게 무슨 일인지... 다 해 놓고 막판에 테스트할 때 이런 문제가 나오면... 어흑... ㅠㅠ 그나마 GUI로 넘어가기 전에 발견했기에 망정이니... 아니면 큰일날 뻔 했습니다.
어휴 진짜... 증상은 있는데... 원인을 정확히 알 수가 없네요. ㅠㅠ 스핀락에 문제가 있는 것도 아니고... 코어가 많아서 그런 현상이 발생한다고 보기에는 뭔가 미심적인 부분이 있습니다(16개 코어 + 800개 태스크로 테스트를 하고 있답니다. ㅎㅎ). 그래서 방향을 선회해야겠는데... 시간이 좀 촉박한지라 고민을 계속 하고 있습니다. 오늘 안에 결과가 나오면 좋겠는데... 과연 잘 될지 모르겠네요. ^^;;;;
일단 또 작업을 시작해야겠습니다. ㅎㅎ 저녁쯤에는 글 하나를 더 쓸 수 있으면 좋겠군요 ㅠㅠ)-b
'OS Kernel > MINT64 OS' 카테고리의 다른 글
[Milestone] 코드로 구현된 MINT64 OS의 윈도우 프로토타입이 나왔습니다. ;) (4) | 2009.09.12 |
---|---|
[Milestone] MINT64 OS의 GUI 프로토타입이 나왔습니다. ;) (10) | 2009.08.21 |
[Milestone] 인터럽트 부하 분산(Interrupt Load Balancing) 처리가 끝났습니다. ;) (0) | 2009.08.06 |
어흑... 행복한 주말이 거의 다 지나갔군요. ㅠㅠ (1) | 2009.07.26 |
[MileStone] 최대 16개 멀티코어 프로세서 또는 멀티 프로세서 지원 기능을 추가했습니다 (18) | 2009.07.10 |