local_irq_disable()

홍문화 2011.04.24 14:24 조회 수 : 5393

오늘 아침에 일어나 곰곰히 생각하다 인터럽트 파트와 타이머 파트가 겹쳐지면서 또 다시 엄청난? 난관에

봉착하게 되었습니다.


현재 저는 local_irq_disable()이 이를 호출한 프로세서의 모든 인터럽트를 금지한다고 이해하고 있습니다.

그리고 시스템 타이머 인터럽트에의해 지피값이 갱신 되고 이 지피 값을 이용해 시스템 구동시간, 타임 아웃이

계산 된다고 합니다.


SMP 시스템에서 특정 프로세서의 모든 인터럽트를 금지 시켰을 때 이 프로세서에서는 더 이상 시스템 타이머

인터럽트가 발생하지는 않겠지만 다른 프로세서가 시스템 타이머 인터럽트를 핸들링 할테니 문제는 없어보입니다.

하지만 UP 시스템에서 local_irq_disable()을 호출 하면 시스템 타이머 인터럽트도 금지 될테고 구동시간, 타임 아웃

등등... 시스템 타이머 인터럽트에 기반한 모든 동작들이 잘못된 동작을 하게 되지 않을까 생각합니다.

물론 local_irq_disable()이 아주 짧은 구간동안 매우 적은 회수로 호출이 된다면 오차가 심각한 문제가 되지 않을지도

모르겠지만 local_irq_disable()이 빈번하게 호출되며 호출 기간이 상당히 긴 경우 오차는 매우 심각한 문제가

될것으로 생각됩니다.


그래서 내린 결론이 UP 시스템에서 local_irq_disable()은 최소한 시스템 타이머 인터럽트는 금지 할 수 없으며

대신에 시스템 타이머 인터럽트 핸들러의 동작이 달라지지(예를들어 스케줄러는 동작하지 않아도 시스템 시간은

갱신 되는)않을까 합니다.


시원한 답변 부탁 드립니다.

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 커널 스터디 관련 Q&A 게시판 입니다. [5] woos 2016.04.09 2197
1065 이번주 스터디(5월 7일) [5] 최병욱 2011.05.06 2501
1064 5월 7일 스터디 장소 [6] file 이종인 2011.05.03 2564
1063 매핑(mapping)의 의미 [4] 홍문화 2011.05.03 8502
1062 물리 메모리 1MB 이하의 사용 [4] file 홍문화 2011.05.02 3839
1061 메모리 관련 검색링크입니다. [1] 김상식 2011.05.02 1875
1060 메모리 관리 관련 자료 입니다. [1] file 홍문화 2011.05.01 2804
1059 리눅스 커널 동영상 강의 [9] 이혁 2011.05.01 11198
1058 메모리 모델에서 페이지 디렉토리와 페이지 테이블 [3] 무명 2011.05.01 7432
1057 장소 - 중앙대 공대(207동) 334호 강의실 (건물이 바뀌었습니다) [5] 이승한 2011.04.29 2781
1056 드뎌 낼 스터디네요 ^^ [1] 김윤기 2011.04.29 2129
1055 이번주 스터디?? [19] 최병욱 2011.04.28 2420
1054 오래된 자료이지만 상당한 도움이 되네요. [4] 홍문화 2011.04.28 2428
1053 스핀락 종결 [5] 홍문화 2011.04.27 4493
1052 이번주 스터디에 관하여 [1] 홍문화 2011.04.27 2302
1051 프로세스 context와 인터럽트 context에 대한 생각.. [5] 이종인 2011.04.25 9489
1050 스핀락에 대한 나름대로의 정리와 3가지 질문.. [19] 이종인 2011.04.25 8335
» local_irq_disable() [6] 홍문화 2011.04.24 5393
1048 Local IRQ [2] 유경환 2011.04.24 4427
1047 좀... 늦은감이 있는데... 권홍재 2011.04.23 2120
1046 커널 Review 참석하실분 의사 표명해주세요 [12] 김은혜 2011.04.21 3558
XE Login