2020 [konzultácia] Druhý zápočtový test

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

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.