달력

2

« 2025/2 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

'OS이야기'에 해당되는 글 86

  1. 2011.10.13 Sleep And Block
2011. 10. 13. 13:54

Sleep And Block OS이야기2011. 10. 13. 13:54

휴면상태와 간련있는 두가지 상태는 TASK_INTERRUPTIBLE과 TASK_UNINTERRUPTIBLE이다.
두 상태의 차이점은
TASK_UNINTERRUPTBLE 태스크는 시그널을 무시하고,
TASK_INTERRUPTIBLE 태스크는 시그널이 발생할 경우 휴면에서 깨어나 시그널에 응답한다는 사실이다.

하지만 두 휴면 상태의 태스크는 모두 어떤 이벤트의 발생을 기다리며 대기큐에서 휴면 상태로 존재하면 실행불가능하다는 점에서 동일 

대기큐는 wake_queue_head_t로 표현된다.
대기큐는 DECLARE_WAIT_QUEUE_HEAD()를 통하여 정적으로 생성되거나, init_waitqueue_head를 통하여동적으로 생성된다.
대기규와 연관된 이벤트가 발생하면, 대기큐에 있는 프로세스들이 깨어난다.
경쟁상태를 예빵하기 위해서는 휴면과 깨어남을 정확히 구현하는 것이 중요. 

'OS이야기' 카테고리의 다른 글

실제 인터럽트 핸들러  (0) 2011.10.13
load_balance()  (0) 2011.10.13
우선순위와 타임슬라이스계산  (0) 2011.10.13
schedule()  (0) 2011.10.13
타임슬라이스 재계산  (0) 2011.10.13
:
Posted by НooпeУ


Code Start Code End