eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › GC z uzyciem SLAT
Ilość wypowiedzi w tym wątku: 1

  • 1. Data: 2016-06-07 22:34:05
    Temat: GC z uzyciem SLAT
    Od: Sebastian Biały <h...@p...onet.pl>

    Cześć.

    Taka ciekawostka:

    http://www.scs.stanford.edu/~dm/home/papers/belay:du
    ne.pdf

    Mozna tam doczytać o tym że wykorzystując cechy cpu takie jak pagetables
    można przyspieszyć GC (acz dokumenty na które się powołuja jakoś
    niespecjalnie są o tym ;).

    OK, moje pytanie jest nieco z boku. Wyobraźmy sobie że chcemy napisać
    bardzo prosty Hypervisior którego jedynym zadaniem jest zarzadzanie
    pamięcią w taki sposób:

    fizyczna -> wirtualna -> wirtualna#2

    Współcześnie dostepne sa mechanizmy SLAT[1] na procesorach Intela i AMD
    które de facto pozwalają wirtualizować wirtualną pamięć. Potrzebne to do
    dużych hypervisorów.

    A moje pytanie jest następujące: czy ktoś wie czy mozna wykorzystać SLAT
    będąc zwykłym procesem w przestrzeni usera do wirtualizacji *własnej*
    pamięci? Wyobrażam sobie to tak że mój proces startuje, hypervisor
    dostarcza hyper_alloc, hyper_free i od tej pory reszta kodu korzystając
    z nich przechodzi przez SLAT.

    Cele sa dwa:
    a) coś na kształt natychmiastowego GC w osobnym watku (hypervisor
    zabiera pamięć, deallokuje ją w systemie asynchronicznie jednocześnie
    zapewniając natychmiastowy czysty page z innego miejsca)

    b) save/restore - skoro mam kontrolę nad adresami pamięci virtualna#2 to
    w zasadzie możliwe bylo by zapisanie tej pamięci ze wskaźnikami a
    nastepnie odczytanie w inne miejsce (randomizm allokacji systemu
    operacyjnego) i przekonfigurowanie SLAT aby stały się znowu walidne.

    Czytam o SLAT i jest malo informacji. Ponieważ Win8 ma wbudowany
    hypervisor który wymaga SLAT i jakoś jest obsługiwany to pewnie to jest
    możliwe. Jednak podstawowe pytanie brzmi: czy program w userspace może
    używać SLAT bez sterowników, trybów administratora itp?

    PS. Tak, wiem że nie da się przekazywać pointerów z virtualna#2 do api
    systemu operacyjnego ale tak się sklada że algorytm (czysto
    obliczeniowy) mieli wyłacznie pamięć i plik (którego interfejs do r/w
    zapewnia mój hypervisor). Ewentualnie czy ktoś zna jakieś źrodło
    informacji o SLAT z poziomu pisania hypervisorów :) ?

    [1] https://en.wikipedia.org/wiki/Second_Level_Address_T
    ranslation

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: