달력

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 schedule()
2011. 10. 13. 13:12

schedule() OS이야기2011. 10. 13. 13:12

다음번 수행할 프로세스를 선택하고 그 프로세스에게 실행권한을 넘기는 작업은 schedule()에서 수행
하는 일은 간단함. 다음은 가장 높은 우선순위의 태스크를 결정하는 일이다.

struct task_struct *prev, *next;
struct list_head *queue;
struct prio_array *array;

int idx;

prev = current;
array = rq->active;
idx = sched_find_first_bit(array->bitmap);
queue = array->queue + idx;
next = list_entry(queue->next, struct task_struct, run_list);

만약 prev, next가 다르면, 새 태스크가 선택돼 실행된다. 그러고 나서 아케텩체 종속적인 context_switch() 함수가 호출돼 실행권한을 prev로부터 next에게 넘긴다.

 

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

Sleep And Block  (0) 2011.10.13
우선순위와 타임슬라이스계산  (0) 2011.10.13
타임슬라이스 재계산  (0) 2011.10.13
프로세스 종료  (0) 2011.10.11
커널 스레드  (0) 2011.10.11
:
Posted by НooпeУ


Code Start Code End