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