[LINUX:27544] Linux'te Sleep wakeup mekanizması?

---------

New Message Reply About this list Date view Thread view Subject view Author view

From: Tunca (att@yimpas.net.tr)
Date: Sat 05 May 2001 - 00:07:23 EEST


Merhaba,
KHG'yi okurken bazı şeyleri çözemedim ve bu konuda sizlere danışmak istedim.
Yerini de söyleyim khg de basics.html'de yazıyor.
KHG' de linux ta uygulanan sleep wakeup sistemi ile ilgili bu fonksyonu
vermişler.

------------------------------
static inline void __sleep_on(struct wait_queue **p, int state){
    unsigned long flags;
    struct wait_queue wait = { current, NULL };
    if (!p)
        return;
    if (current == task[0])
        panic("task[0] trying to sleep");
    current->state = state;
    add_wait_queue(p, &wait);
    save_flags(flags);
    sti();
    schedule();
    remove_wait_queue(p, &wait);
    restore_flags(flags);
}
------------------------------
Benim anlayamadığım kısıma gelince.
    Aşagıda verdilen __sleep_on fonksyonunda.
    add_wait_queue() fonksyonunu çağırdıktan sonra
    schedule() ile başka bir process'i çalışmaya aldığını söylüyor.
    Ve sonra aynı process'i nedense wait queue den kaldırıyor.
    Neden process'i wait queue'den kaldırıyor. benim düşünceme göre o
process bir sinyal ya da interrupt geldiğinde wait queden
kaldırılması gerekiyor.
Not: "current" değişkeni sadece scheduler tarafından değiştirlen, o anda
çalışan process'i gösteren global bir değişkenmiş. Fakta "tasks[0]" ile neyi
ifade ettiği hakkından bir şey görmedim.

Yardımlarınız için şimdiden teşekkürler
Saygılar.
A. Tunca TUNÇ

 
 Listeden cikmak icin:
          unsub linux
 mesajini listeci@bilkent.edu.tr adresine gonderiniz.
   Lutfen Listeci icin MIME / HTML / Turkce Aksan kullanmayin.
 Listeci arayuzu: http://listweb.bilkent.edu.tr/yardim/bilkent/linux.html
 Liste arsivinin adresi: http://listweb.bilkent.edu.tr/


New Message Reply About this list Date view Thread view Subject view Author view

---------

Bu arsiv hypermail 2b29 tarafindan uretilmistir.