LOCK prefix ? lehce offtopic
Vaclav Ovsik
ovsik na skoda.cz
Úterý Listopad 11 09:45:38 CET 1997
On Mon, 10 Nov 1997, Pavel Kankovsky wrote:
> On Mon, 10 Nov 1997, Pavel Machek wrote:
>
> > Jsi si jisty tim ze LOCK se nema podarit userovemu procesu? Nemam po
> > ruce specifikace, ale podle me ma bezny proces na lock pravo.
> [...]
>
> Podival jsem se do "Chytre Knihy" a zjistil jsem, ze jsem kazal bludy
> (jako obvykle)--ona je cela vec totiz dost slozita:
>
> 8086: LOCK muze prefixovat cokoli a kdykoli,
> XCHG a INT maji LOCK samy od sebe
>
> 286: LOCK je privilegovana instrukce (musi byt CPL <= IOPL)
> ale stale asi smi byt pouzita s jakoukoli instrukci
>
> 386: LOCK je privilegovana instrukce POUZE v VM86, v "native" modu
> se smi pouzivat libovolne (pokud je splnena nasledujici podminka)
> LOCK smi byt pouzit pouze s omezenou mnozinou instrukci, ktere
> navic musi mit operand, ktery jest v pameti
>
> 486: jako 386, ale do mnoziny povolenych instrukci pribyva CMPXCHG
> (nebo jak se ta hruznost jmenuje, ale je to presne ta, na ktere
> to tuhne--na Pentiu)
>
> Pentium..: ??? ("Chytra Kniha" uz neni nejmladsi, tak o tom nic nerika)
>
> tak vidite, jaky je v tom bo... ehm neporadek :)
>
> --Pavel Kankovsky aka Peak (troja.mff.cuni.cz network administration)
Duvod proc je LOCK povolen ve VM86 je asi ten, ze se v DOSovskych
programech bezne vyskytuje. On se tenhle prefix pouziva myslim taky pri
komunikaci s koprocesorem. Nevim s kterou verzi 80x87. Ale kdyz jsem se
kdysi davnou koukal na vystup z kompilatoru od Borlandu (BC, BP), tak tam
pred instrukce pro kopr. (ESC ...) davali prave LOCK.
Z toho duvodu asi musi CPU ve VM86 LOCK akceptovat, jina otazka je, zdali
se tim ridi. Ja si myslim ze ne. Koprocesor se stejne v tomhle rezimu
nejspis nejak virtualizuje ne ?
--
Vaclav OVSIK email: ovsik na skoda.cz
Skoda Informatika phone: +420 19 7721366
Další informace o konferenci Linux