2020-07 [prednáška] Vlákna a procesy
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška sa venuje plánovaniu procesov a vlákien v operačných systémoch, s dôrazom na implementáciu v systéme XV6. Vysvetľuje, prečo je zdieľanie procesora medzi procesmi potrebné riešiť transparentne pomocou jadra operačného systému, ktoré vytvára ilúziu virtuálneho procesora pre každý proces. Rozoberá koncept vlákna ako abstrakcie toku riadenia s vlastnými registrami a zásobníkom, pričom porovnáva zdieľanie pamäte medzi vláknami v Linuxe a v XV6. Ďalej sa zaoberá časovým multiplexovaním procesora a rozdielom medzi dobrovoľným prepnutím kontextu (sleep/wakeup) a vynúteným preemptívnym plánovaním. Na záver načrtáva praktické problémy implementácie, ako je bezpečné ukončovanie a uvoľňovanie procesov v prostredí s viacerými jadrami.
- - Jadro OS zabezpečuje transparentné zdieľanie procesora medzi procesmi pomocou virtuálneho procesora.
- - Vlákno je abstrakcia toku riadenia s vlastnými registrami, zásobníkom a počítadlom inštrukcií.
- - Vlákna môžu, ale nemusia zdieľať pamäť – v Linuxe zdieľajú, vo XV6 medzi procesmi nie.
- - Multiplexovanie procesora je časové (striedanie v čase), na rozdiel od priestorového multiplexovania pri virtuálnej pamäti.
- - V XV6 sa prepnutie kontextu deje dobrovoľne cez sleep/wakeup (čakanie na I/O, disk, WAIT) alebo vynútene formou preemptívneho plánovania.
- - Bezpečné prepínanie procesov medzi viacerými jadrami vyžaduje zabránenie súbežného spustenia toho istého procesu na viacerých jadrách naraz.
- - Uvoľňovanie zdrojov ukončovaného procesu (pamäť, súbory, zásobník jadra) je technicky náročné, keďže proces nemôže sám uvoľniť zásobník, na ktorom beží.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky