2021-04 [prednáška] Prechod user --- kernel --- user

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

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.

Otvoriť AI: ChatGPT · Claude · Gemini

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.