Käyttöjärjestelmät, syksy 2006, laskuharjoitus 4
Tehtävät käsitellään harjoituksissa viikolla 39, 28-29.9.2006
Kyseessä on laitoksen normaalin käytännön mukaiset laskuharjoitukset. Tehtävät tehdään etukäteen itsenäisesti tai pienryhmässä keskustellen. Ratkaisuja käsitellään harjoituksissa.
Ensimmäisen osion opintopiiritehtävän palautus on 29.9.2006.
- Säikeet
- Tehtävä 4.4 kirjasta [Stal05 ja Stal01]
- Tehtävä 4.5 kirjasta [Stal05 ja Stal01]
- Anna synkronointiesimerkki, jossa käytetään
Solariksen säikeiden
sema_tryp() primitiiviä, ja jossa vastaava ratkaisu
sema_p() primitiivillä ei onnistuisi.
Perustele ratkaisusi.
- [2 htp] Tarkastellaan Linuxin ytimen (kernel) synkronointiprimitiivejä (Ch 6.8 [Stal05]).
- Tehtävä 6.20 kirjasta [Stal05, s. 299]:
Consider the following fragment of code on a Linux system.read_lock (&mr_rwlock);
write_lock (&mr_rwlock);Where mr_rwlock is a reader-writer lock. What is the effect of this code?
- Anna esimerkki tilanteesta, jossa spinlock-operaation voi kääntää koodiksi, jossa ei ole busy-wait -tyyppistä odotusta. Miksi näin voi tässä tapauksessa tehdä? Mitä hyötyä tällä saavutetaan?
- Anna esimerkki tilanteesta, jossa spinlock-operaation täytyy kääntää koodiksi, jossa on busy-wait -tyyppistä odotusta. Miksi näin täytyy tässä tapauksessa tehdä? Mitä hyötyä tällä saavutetaan?
- Mikä ero on Reader-Writer Spinlock -operaatiolla verrattuna Reader-Writer Semaphore -operaatioon?
Anna esimerkki tilanteesta jossa tulisi käyttää Reader-Writer Spinlock -operaatiota, mutta ei tulisi käyttää Reader-Writer Semaphore -operaatiota. - Anna esimerkki tilanteesta, jossa voisi käyttää jotakin Barrier-operaatiota. Perustele esimerkkisi.
- Tehtävä 6.20 kirjasta [Stal05, s. 299]: