2020-04 [seminár] Zásobník a alarm
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
Seminár z Operačných systémov sa venuje dvom témam: opakovaniu práce so zásobníkom a volacích konvencií v RISC-V pre potreby úlohy backtrace zo štvrtého labu, a implementácii funkcionality alarm. V prvej časti je vysvetlené, ako vyzerá zásobníkový rámec, ako fungujú registre SP a FP, ako sa pri volaní funkcie ukladá návratová adresa, smerník na predchádzajúci rámec a uložené registre, a ako sa to prejavuje v assembly kóde jadra XV6 (prolog a epilog funkcií). Zdôrazňuje sa, že smerník na predchádzajúci rámec umožňuje spätne rekonštruovať históriu volaní funkcií, čo je základom pre implementáciu príkazu backtrace. Druhá časť seminára uvádza zadanie úlohy alarm, ktorej cieľom je pridať do XV6 mechanizmus, ktorý periodicky informuje proces o zaťažení procesora.
- - Zásobník rastie od vyšších adries k nižším, SP ukazuje na vrchol zásobníka, FP na začiatok aktívneho rámca.
- - Pri volaní funkcie sa na zásobník ukladá návratová adresa, smerník na predchádzajúci rámec, uložené registre a lokálne premenné.
- - Volacie konvencie v RISC-V definujú prolog a epilog funkcie (uloženie a obnovenie RA, S0/FP a ďalších registrov).
- - Smerník na predchádzajúci rámec umožňuje rekonštrukciu histórie volaní funkcií, čo využíva príkaz backtrace v GDB.
- - Uloženie frame pointera je len ladiaca funkcia a pri plnej optimalizácii kompilátora nemusí byť prítomné.
- - Štvrtý lab obsahuje tri úlohy: porovnanie C a assembly kódu, implementáciu backtrace a implementáciu alarmu.
- - Úlohou alarm je pridať do XV6 mechanizmus, ktorý periodicky informuje proces o zaťažení procesora.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky