eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingGC z uzyciem SLAT › GC z uzyciem SLAT
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
    OSTED!not-for-mail
    From: Sebastian Biały <h...@p...onet.pl>
    Newsgroups: pl.comp.programming
    Subject: GC z uzyciem SLAT
    Date: Tue, 7 Jun 2016 22:34:05 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 48
    Message-ID: <nj7b48$1in$1@node2.news.atman.pl>
    NNTP-Posting-Host: 176-115-85-233.via.zamek.net.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1465331656 1623 176.115.85.233 (7 Jun 2016 20:34:16 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Tue, 7 Jun 2016 20:34:16 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:45.0) Gecko/20100101
    Thunderbird/45.1.1
    X-Mozilla-News-Host: news://news.atman.pl:119
    Xref: news-archive.icm.edu.pl pl.comp.programming:209455
    [ ukryj nagłówki ]

    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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

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: