2020 [konzultácia] Druhý zápočtový test
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
Konzultácia sa venuje príprave na druhý zápočtový test z operačných systémov, pričom sa objasňuje rozsah požiadaviek na prácu s nástrojom GDB – ide o základné príkazy ako breakpointy, backtrace a pohyb po kóde, ktoré boli demonštrované na prednáškach. Ďalej sa diskutuje o poradí inicializácie vlákien v XV6 pri štarte systému, pričom sa zdôrazňuje, že toto poradie je náhodné a z pohľadu operačného systému irelevantné, dôležitá je len synchronizácia. Vysvetľuje sa mechanizmus plánovania procesov na jednom jadre procesora a princíp systémového volania fork, kde sa analýzou kódu kernel/trap.c dochádza k záveru, že po forku pokračuje rodičovský proces, pokiaľ nenastane prerušenie časovača. Na záver sa rozoberá funkcia zásobníka (stacku) pri prepínaní kontextu vlákien v userspace a jeho úloha pri uchovávaní návratových adries a lokálnych premenných v jazyku C.
- - GDB test bude obsahovať len základné príkazy: breakpointy, backtrace, pohyb po kóde
- - Poradie inicializácie vlákien (hartov) v QEMU je náhodné a nemá vplyv na fungovanie XV6
- - Dôležitá je synchronizácia inicializácie, nie poradie vykonávania jednotlivých CPU jadier
- - Na jednom jadre sa procesy striedajú pomocou plánovača cez systémové volania a prerušenia časovača
- - Po systémovom volaní fork v XV6 typicky pokračuje rodičovský proces, ak nenastane prerušenie časovača
- - Ak nastane prerušenie časovača počas návratu z fork, môže dôjsť k výmene procesu a predbehnutiu rodiča detským procesom
- - Zásobník (stack) slúži na uloženie návratových adries, argumentov a lokálnych premenných pri vykonávaní kódu v C a musí sa vymieňať pri prepínaní kontextu vlákien
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky