Vypracované otázky z Operačných systémov

Předmět poskytuje informace o architektuře operačních systémů a funkcích správy procesů, správy paměti, ovladačů periferií, systémů souborů, sítí, bezpečnosti. Všechny funkce jsou ilustrovány na současných operačních systémech, implementace vybraných funkcí je procvičována tvorbou výukového operačního systému.
Uživatelský avatar
xstyler
Matfyz(ák|ačka) level II
Příspěvky: 66
Registrován: 29. 1. 2005 12:27
Typ studia: Informatika Bc.
Bydliště: EU

Vypracované otázky z Operačných systémov

Příspěvek od xstyler »

Zjavne nie sme prví, ktorí sa potýkajú s menovaným problémom. Nech žije(ú) neznámy(i) autor(i) nasledujúceho diela!
Přílohy
Questions&Answers.zip
(170.75 KiB) Staženo 466 x
Naposledy upravil(a) xstyler dne 24. 1. 2008 12:28, celkem upraveno 3 x.
gASK
Admin(ka) level I
Příspěvky: 635
Registrován: 9. 6. 2005 12:33
Typ studia: Informatika Mgr.
Bydliště: Konečně Vinohrady:)
Kontaktovat uživatele:

Re: Vypracované otázky z Operačných systémov

Příspěvek od gASK »

Prošel jsem ty materiály a spojil všechny vědomosti v nich k letošním otázkám do jenoho HTML dokumentu.

Tady je seznam těch, které tam nejsou.

Zatím seznam otázek, které tam nejsou nebo se mi je tam nedaří dohledat.

Kód: Vybrat vše

89. Identify where the following function relies on the virtual address space to store executable code, static data, heap and stack.
void *SafeAlloc (size_t iSize)
{
void *pResult = malloc (iSize);
if (pResult == NULL)
{
printf ("Failed to allocate %z bytes.
", iSize);
exit (ENOMEM);
}
return (pResult);
}
A seznam těch, které jsou neúplné / jiné:

Kód: Vybrat vše

7. Explain what the interface between processes and the operating system looks like, both for the case when the operating system code resides in the user space and for the case when the operating system code resides in the kernel space.

13. Using a step by step description of a context switch, show how an implementation of threads in the user space and an implementation of threads in the kernel space differ in the way the context is switched. Na popisu přepnutí kontextu krok po kroku ukažte, jak se implementace vláken v uživatelském prostoru a implementace vláken v prostoru jádra liší ve způsobu přepínání kontextu.
Bylo by fajn, kdyby se nám povedlo je nějak doplnit, případně učesat a doplnit to HTML (je to naplácaný za dvě hodiny, můžou tam bejt blbosti či duplicity).
When life gives you crap, make crap golems.
Uživatelský avatar
xstyler
Matfyz(ák|ačka) level II
Příspěvky: 66
Registrován: 29. 1. 2005 12:27
Typ studia: Informatika Bc.
Bydliště: EU

Re: Vypracované otázky z Operačných systémov

Příspěvek od xstyler »

To bude super!!! Díky!
gASK
Admin(ka) level I
Příspěvky: 635
Registrován: 9. 6. 2005 12:33
Typ studia: Informatika Mgr.
Bydliště: Konečně Vinohrady:)
Kontaktovat uživatele:

Re: Vypracované otázky z Operačných systémov

Příspěvek od gASK »

Je to tam. Není to žádný zázrak, jen jsem to vytřídil a překopíroval do jednoho HTML. Teď to trochu učešu.

Chybí tam 13 otázek a dvě jsou neúplné. Možná i další, nevím, nečetl jsem to dopodrobna. :wink:
When life gives you crap, make crap golems.
David
Matfyz(ák|ačka) level II
Příspěvky: 80
Registrován: 7. 11. 2004 18:57
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Zk. otazka z 3. 2: Where the following function relies on...

Příspěvek od David »

Ahoj,

nevite nahodou nekdo odpoved na tuhle otazku?

Kód: Vybrat vše

Identify where the following function relies on the virtual address space to
store executable code, static data, heap and stack.

void *SafeAlloc (size_t iSize)
 {
    void *pResult = malloc (iSize);
    if (pResult == NULL)
    {
      printf ("Failed to allocate %z bytes.
", iSize);
      exit (ENOMEM);
    }
    return (pResult);
 }
Napada me neco jako ze kod a static data na zacatku virtualni pameti, za tim heap. Na konci stack. Ale vubec si nejsem jisty, jestli je tohle odpoved na danou otazku... :)
David
Matfyz(ák|ačka) level II
Příspěvky: 80
Registrován: 7. 11. 2004 18:57
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Zk. otazka (devices): Obvykly prubeh systemoveho volani

Příspěvek od David »

Jeste jsem narazil na tuhle zaludnou otazku:

Kód: Vybrat vše

 Popište obvyklý prubeh systémového volání jako synchronního pozadavku na obsluhu software ovladacem zarizeni. Predpokládejte obvyklou architekturu ovladace, kde spolu asynchronnie a synchronne volané cásti ovladace komunikují pres sdílenou frontu požadavku. Prubeh popište od okamžiku volání do okamžiku ukoncení obsluhy. Každý krok popište tak, aby bylo zrejmé, kdo jsou jeho úcastníci a kde získají informace potrebné pro vykonání daného kroku.
Tady me teda nenapada nic moc, co bych tam napsal. Proste uzivatelsky program / vlakno zavola nejakou synchronni funkci, pokud zpracovani pozadavku bude nejakou dobu trvat, uspi se, pozadavek se da do fronty, bottom half cast ovladace vyzvedne pozadavek a preda ho zarizeni. Az bude mit zarizeni hotovo, posle interrupt. Ten se zpracuje, bottom half cast preda vysledek. Ale asi by to melo byt podrobneji...
gASK
Admin(ka) level I
Příspěvky: 635
Registrován: 9. 6. 2005 12:33
Typ studia: Informatika Mgr.
Bydliště: Konečně Vinohrady:)
Kontaktovat uživatele:

Re: Vypracované otázky z Operačných systémov

Příspěvek od gASK »

Mergnul jsem to sem. Pokud bysme pro každou z těch 163 otázek zakládali vlastní téma ....

Tady se stejně budou muset nějak vyřešit. :wink:
When life gives you crap, make crap golems.
Uživatelský avatar
jaruch
Supermatfyz(ák|ačka)
Příspěvky: 376
Registrován: 5. 2. 2005 14:06
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Re: Vypracované otázky z Operačných systémov

Příspěvek od jaruch »

to gask>
Ako si to mergoval to co mas na strankach? Aj si kontroloval, ako sa zmenili od minuleho roku a doplnil nove/ zmenene znenia, ci si len spojil tie subory, co su na studnici? Bo ja som sa o to snazil dnes poobede, ale od devices tam bolo sa mi zda akosi vela rozdielov a ked som videl, ze uz si cosi spravil, tak som to nechal tak...
Inak asi by bolo dobre, keby sme tie vacsie otazky a hlavne exercises co chybaju nejako... dali dokopy, mozno si rozdelili co kto spravi a tak.
Shit shit, who the fuck is shooting us?
I've got a universe to master...
Uživatelský avatar
rastik
Supermatfyz(ák|ačka)
Příspěvky: 661
Registrován: 19. 10. 2005 21:45
Typ studia: Informatika Mgr.
Bydliště: Praha
Kontaktovat uživatele:

Re: Zk. otazka z 3. 2: Where the following function relies on...

Příspěvek od rastik »

David píše:Ahoj,

nevite nahodou nekdo odpoved na tuhle otazku?

Kód: Vybrat vše

Identify where the following function relies on the virtual address space to
store executable code, static data, heap and stack.

void *SafeAlloc (size_t iSize)
 {
    void *pResult = malloc (iSize);
    if (pResult == NULL)
    {
      printf ("Failed to allocate %z bytes.
", iSize);
      exit (ENOMEM);
    }
    return (pResult);
 }
Napada me neco jako ze kod a static data na zacatku virtualni pameti, za tim heap. Na konci stack. Ale vubec si nejsem jisty, jestli je tohle odpoved na danou otazku... :)
Ja som u jednotlivých vecí označil o čo ide. Teda u parametrov funkcie, lokálnych premenných a volaní ďalších funkcií ide o zásobník, ten reťazec sú statické dáta, volanie funkcií je kód (vlastne celé je to kód) a pri práci s pResult ide o haldu.
gASK
Admin(ka) level I
Příspěvky: 635
Registrován: 9. 6. 2005 12:33
Typ studia: Informatika Mgr.
Bydliště: Konečně Vinohrady:)
Kontaktovat uživatele:

Re: Vypracované otázky z Operačných systémov

Příspěvek od gASK »

jaruch píše:to gask>
Ako si to mergoval to co mas na strankach? Aj si kontroloval, ako sa zmenili od minuleho roku a doplnil nove/ zmenene znenia, ci si len spojil tie subory, co su na studnici? Bo ja som sa o to snazil dnes poobede, ale od devices tam bolo sa mi zda akosi vela rozdielov a ked som videl, ze uz si cosi spravil, tak som to nechal tak...
Inak asi by bolo dobre, keby sme tie vacsie otazky a hlavne exercises co chybaju nejako... dali dokopy, mozno si rozdelili co kto spravi a tak.
Krok 1 - sepsal jsem všechny otázky ze současných skript.
Krok 2 - otázku po otázce jsem prošel ty materiály a byla-li tam na přesně tu samou otázku odpověď, dal jsem ji tam (když jich bylo více, dal jsem je tam za sebou). Otázky jsem nepřepisoval, nechal jsem ty co byly, takže znení otázek jsou aktuální.
Krok 3 - U otázek, co tam nebyly, jsem zkusil najít něco, co by jim odpovídalo. (Povedlo se jen u jedné)

Ty otázky byly hlavně dost promíchané loni. Jinak se jich tam většina objevila ve stejném znění.
When life gives you crap, make crap golems.
Uživatelský avatar
jaruch
Supermatfyz(ák|ačka)
Příspěvky: 376
Registrován: 5. 2. 2005 14:06
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Re: Vypracované otázky z Operačných systémov

Příspěvek od jaruch »

good work :wink:
Shit shit, who the fuck is shooting us?
I've got a universe to master...
Uživatelský avatar
macbeth
Matfyz(ák|ačka) level III
Příspěvky: 201
Registrován: 11. 2. 2005 14:48
Typ studia: Informatika Mgr.
Bydliště: PPraha
Kontaktovat uživatele:

Re: Vypracované otázky z Operačných systémov

Příspěvek od macbeth »

Ahojte, trochu sa mi pletu pojmy blocking/synchronous a non-blocking/asynchronous volania. Nema niekto pekny priklad, na ktorom by to ozrejmil? :oops:

Bo mne sa zda ako nemozne, aby napriklad existovalo neblokujuce synchronne volanie, kedze (podla skript)
a) the procedure is non blocking when they do not wait before returning
b) the procedure that sends a message can not return until the message is received

Ako mozem zaroven (1) necakat pred navratom a (2) nevratit sa, kym je sprava dorucena...?

Na prednaske bol na toto priklad vyuzitia call-back fcie...
Nieco, co by nejavilo ziadne znamky bytia, teda by sa nijak neprejavovalo ako sucno, by nebolo niecim, ale prave nicim...
David
Matfyz(ák|ačka) level II
Příspěvky: 80
Registrován: 7. 11. 2004 18:57
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Re: Vypracované otázky z Operačných systémov

Příspěvek od David »

macbeth píše:Bo mne sa zda ako nemozne, aby napriklad existovalo neblokujuce synchronne volanie, kedze (podla skript)
A co kdyz by na nic necekalo? Kdyz by dana operace byla rychla? To by se pak volajici vlakno nemuselo uspavat - volani by bylo neblokujici. A zaroven by byla akce provedena pred navratem z volani - tedy bylo by to synchronni. Jinak si to predstavit neumim.
Uživatelský avatar
luk
Matfyz(ák|ačka) level II
Příspěvky: 74
Registrován: 6. 6. 2005 18:32
Typ studia: Informatika Mgr.
Bydliště: Praha

Re: Vypracované otázky z Operačných systémov

Příspěvek od luk »

Zdravím, zkusil bych doplnit odpovědi, k některým z těch otázek na seznamu nezodpovězených :) Nejsou to tedy asi přímo odpovědi, které by člověk měl napsat do písemky, ale spíš takové hinty, aby ho to postrčilo dál. Snad se budou někomu hodit:

Kód: Vybrat vše

14. Interaktivní procesy většinu času čekají na vstup a nic nedělají, ale pokud se něco stane, na co mají reagovat, musí se ke slovu dostat rychle. Naproti tomu, akce, kterou musí provést je typicky nenáročná a stačí jim kratší kvanta.
Dávkové procesy to mají přesně naopak. Většinu času něco počítají a, aby pracovaly trochu efektivně (měly data v cache apod.), potřebují, aby je chvilku nikdo nepřerušoval -> vyžadují delší kvanta. Na druhou stranu nepotřebují být plánovány rychle.
43. Vynechání volatile by mohlo vadit například u stavové proměnné zámku. Pokud by se překladač, nedej Bože, rozhodl práci s ní vyoptimalizovat a nechat její hodnotu jen v registru, protože se stejně za chvíli zase bude měnit, tak zámky přestanou fungovat. Volatile tenhle druh optimalizace zakáže.
57. Wait-free algoritmus zaručuje, že všechny zúčastněné procesy skončí v konečném počtu kroků
68. Interní fragmentace nastává, pokud uživatel dostane větší blok paměti, než si objednal / využívá. To se stává například u heap alokátorů, které umí přidělovat bloky jen o velikostech v násobcích nějaké konstanty. Například buddy systém, který umí jen mocniny dvojky může docílit toho, že proces chce 17B paměti, ale dostane 32B, tedy skoro 50% interní fragmentace. Řešení zas tak moc asi není, jenom přidělovat bloky co nejbližších velikostí jako požadované. Uživatel typicky neví, že má víc paměti, než chtěl, tak s tím moc neudělá.
69. Externí fragmentace spočívá v tom, že v paměti jsou mezi velkými bloky roztroušeny malé, které jsou ale tak malé, že je nikdo nechce. V součtu má tedy systém stále hafo volné paměti, ta je ale rozdrobena do nepoužitelných kousků. Stává se to například zase u těch heap alokátorů, když se hodně alokuje / uvolňuje. Řešení je například bloky setřepat a tím volné místo spojit, to ale jde jenom tehdy, pokud v kódu nejsou absolutní adresy. 
No, to je dnešní první díl. Už na to nevidím, tak půjdu spát, ale zkusím sem ještě něco připsat.
Luk
Uživatelský avatar
xstyler
Matfyz(ák|ačka) level II
Příspěvky: 66
Registrován: 29. 1. 2005 12:27
Typ studia: Informatika Bc.
Bydliště: EU

Re: Vypracované otázky z Operačných systémov

Příspěvek od xstyler »

Diky, Luku! Chcel som sa spýtať, či si náhodou niekto z vás nerieši i tie Exercises. Že by sem potom hodil riešenia. Dík!
Odpovědět

Zpět na „SWI004 Operační systémy“