2021-04 [prednáška] Prechod user --- kernel --- user
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 rozoberá mechanizmus prechodu medzi používateľským procesom a jadrom operačného systému pri systémovom volaní na príklade write v systéme XV6 a architektúre RISC-V. Vysvetľuje, prečo nie je možné použiť bežné volanie funkcií jazyka C a prečo je nutná izolácia procesov pomocou virtuálnej pamäte a privilegovaných režimov procesora (user, supervisor, machine). Popisuje kľúčové špeciálne registre RISC-V (SATP, STVEC, SEPC, SSCRATCH) a inštrukciu ECALL, ktorá riadi prechod do jadra. Na diagrame je znázornený postupný tok volania cez funkcie userVec, userTrap, syscall a sys_write až po presmerovanie na ovládač zariadenia alebo súborový systém a následný návrat cez userTrapReturn a userRet späť do používateľského priestoru.
- - Izolácia procesov je hlavným dôvodom, prečo systémové volania nemôžu fungovať ako bežné volanie funkcií v C.
- - Hardvérovými nástrojmi izolácie sú virtuálna pamäť a privilegované režimy procesora (user, supervisor, machine mode v RISC-V).
- - Pri systémovom volaní treba uložiť stav procesora, prepnúť mód z user do supervisor, zmeniť tabuľku stránok a vymeniť zásobník.
- - Inštrukcia ECALL využíva registre STVEC (adresa obslužnej rutiny) a SEPC (uloženie pôvodného PC) na riadený skok do jadra.
- - Register SATP obsahuje adresu tabuľky stránok a je prístupný len v supervisor móde.
- - Tok spracovania systémového volania write vedie cez funkcie userVec → userTrap → syscall → sys_write → ovládač/súborový systém.
- - Návrat do používateľského priestoru prebieha cez userTrapReturn a userRet, aby bol obnovený pôvodný stav procesu.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky