[OSy] Second extended assignment - nejasnosti

AT tt.teichmann at gmail.com
Thu Nov 9 09:50:14 CET 2017


Je to odpověď. Díky.

On 8 Nov 2017 20:03, "Vojtech Horky" <horky at d3s.mff.cuni.cz> wrote:

> Dne 8.11.2017 v 18:44 AT napsal(a):
>
>> Mám doplňující otázku k předchozí otázce (ASID): Píšete
>>
>>>   Zrušením daného VASu se uvolňuje jeho ASID.
>>>
>> Jak poznáme, že se má VAS zrušit? Úloha pro to nedefinuje žádné API, v
>> ukázkové implementaci se to vůbec neděje. Předpokládám, že naším
>> úkolem není přepisovat funkci thread_finish či nějakou jinou.
>>
> Nedefinování určitých částí implementací může být (a je) součástí úlohy.
>
> Např. vzhledem k API je korektní, pokud je ASID přiřazen až v okamžiku
> vytvoření první oblasti. A podobně, při odmapování poslední oblasti může
> být ASID odregistrován. Takže lze ASIDy recyklovat i bez existence funkce
> vmm_destroy().
>
> Je tedy na Vás jakou strategii zvolíte a jak se k daným omezením postavíte.
>
> Je to odpověď na Vaši otázku nebo jsem to jenom více zamlžil?
>
> - VH
>
>
>
>> 2017-11-08 9:51 GMT+01:00 Vojtech Horky <horky at d3s.mff.cuni.cz>:
>>
>>> Dne 8.11.2017 v 09:26 Roman Firment napsal(a):
>>>
>>>> Este k tomu poslednemu bodu:
>>>>
>>>> * je postacujuce v implementacii pridelovania ASIDov pouzit indexovane
>>>> pole pripadne bitovu mapu?
>>>>
>>> Ano, bitmapa je celkem rozumné řešení.
>>>
>>> Pokud by úloha nebyla hodnocena binárně, tak by určitě byly body navíc za
>>> bitmapu, kde je hledání volného bitu stylem next-fit, tj. neprohledávat
>>> vždy
>>> od úplného začátku.
>>>
>>> - VH
>>>
>>> Roman Firment
>>>>
>>>> 2017-11-08 8:40 GMT+01:00 Vojtech Horky <horky at d3s.mff.cuni.cz
>>>> <mailto:horky at d3s.mff.cuni.cz>>:
>>>>
>>>>
>>>>      Dobrý den.
>>>>
>>>>      Dne 7.11.2017 v 21:03 Roman Firment napsal(a):
>>>>
>>>>          * kedy sa maju alokovat fyzicke ramce? V case ked vznika vma
>>>>              alebo az v handleri vynimky TLB Refill Exception, pripadne
>>>>          inde. Ak az
>>>>              v handleri, tak co znamena ENOMEM (nedostatok fyzickej,
>>>>          virtualnej pamati?) pri
>>>>              volani vma_vmap?
>>>>
>>>>      Už při volání vma_map().
>>>>
>>>>      Pokud byste to volání odložil do refillu (něco jako Linux se
>>>>      zapnutým overcommitem), mohla by dojít paměť (až později) a nebylo
>>>>      by jak tuto chybu rozumně signalizovat zpět. Pokud byste tedy
>>>>      nechtěl implementovat nějaký swapping a spol. :-)
>>>>
>>>>
>>>>
>>>>          * moze nastat situacia, ze funkcia vma_map alebo vma_unmap bude
>>>>          vykonavana
>>>>              v inom mode nez kernelovskom?
>>>>
>>>>      Ne, userland k ní přístup nemá.
>>>>
>>>>
>>>>          * frame alokator v kaliste pouziva iba ramce zo spodnych 512mb.
>>>>          Malloc pouziva
>>>>              tento frame alokator. Vsetky struktury potom budu nutne
>>>>          lezat v tomto segmente.
>>>>              Nieje to problem?
>>>>
>>>>      Pro účely cvičení to nevadí, jde o záměrné zjednodušení.
>>>>
>>>>
>>>>      Frame alokátor má rozhraní připravené na podporu alokace rámců i z
>>>>      dalších segmentů (VF_AT_* flagy). Takže pokud funkce pro namapování
>>>>      paměti vidí, že k paměti bude nutné přistupovat skrz TLB, měla by
>>>>      preferovat alokaci z oblasti nad 512M, protože těch spodních 0.5G
>>>> je
>>>>      "cennějších". Nicméně, námi dodaný frame alokátor podporuje pouze
>>>>      Vámi zmiňovaných 512M, takže toto není nutné implementovat.
>>>>
>>>>      Ještě pro úplnost - skrz TLB lze přistupovat i k identicky mapované
>>>>      paměti, takže funkčnost TLB otestovat půjde.
>>>>
>>>>
>>>>          * len pre istotu, ak nemusime implementovat ziadne dynamicke
>>>>          priradzovanie asid-ov
>>>>              a pocet vmm je omezeny poctom validnych asid-ov, tak nam
>>>>          staci pouzivat jednoduche
>>>>              inkrementovanie globalnej premennej ako je tomu v povodnej
>>>>          implementacii kalista.
>>>>              Alebo je ten pocet omezeny iba v jednom okamihu?
>>>>
>>>>      Druhá možnost. Při vytvoření VAS se očekává, že rovnou dostane
>>>>      přiřazený ASID, který je platný po celou dobu jeho existence.
>>>>      Zrušením daného VASu se uvolňuje jeho ASID.
>>>>
>>>>      Čili v jednom okamžiku může existovat max 255 VASů (resp. pokud
>>>>      potřebujete nějaký ASID si vyčlenit pro speciální účely v rámci
>>>>      kernelu, je ok podporovat "jen" 254).
>>>>
>>>>
>>>>      Dává to takhle smysl?
>>>>
>>>>      - VH
>>>>
>>>>      _______________________________________________
>>>>      OSy mailing list
>>>>      OSy at d3s.mff.cuni.cz <mailto:OSy at d3s.mff.cuni.cz>
>>>>      https://d3s.mff.cuni.cz/mailman/listinfo/osy
>>>>      <https://d3s.mff.cuni.cz/mailman/listinfo/osy>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> OSy mailing list
>>>> OSy at d3s.mff.cuni.cz
>>>> https://d3s.mff.cuni.cz/mailman/listinfo/osy
>>>>
>>>>
>>> _______________________________________________
>>> OSy mailing list
>>> OSy at d3s.mff.cuni.cz
>>> https://d3s.mff.cuni.cz/mailman/listinfo/osy
>>>
>> _______________________________________________
>> OSy mailing list
>> OSy at d3s.mff.cuni.cz
>> https://d3s.mff.cuni.cz/mailman/listinfo/osy
>>
>
>
>
> _______________________________________________
> OSy mailing list
> OSy at d3s.mff.cuni.cz
> https://d3s.mff.cuni.cz/mailman/listinfo/osy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://d3s.mff.cuni.cz/pipermail/nswi004/attachments/20171109/f0ac6e19/attachment.html>


More information about the NSWI004 mailing list