Pentium - co s nim ? (lehce delsi)
Jan Kasprzak
kas na informatics.muni.cz
Pátek Listopad 14 08:52:04 CET 1997
Ludek Brukner pise:
: > > K cemu by to mohlo byt dobre? No predstav si ulohu na SMP masine ktera
: > > komunikuje se svoji druhou kopii pres sdilenou pamet. Tato uloha
: > > _potrebuje_ LOCK.
: > Ze by procesy mezi sebou komunikovaly primo ? K cemu by potom byl OS ?
: > To by byl navrat k MSDOGu. :-))
:
: Trochu jinak: obecne mohou oba procesory vykonavat soucasne tyz kod,
: coz je v pohode, pokud nesdili data... Takze dva procesy jsou OK, protoze
: data obvykle lezi v privatnim adresovem prostoru. Pokud ale oba procesory
: napr. vykonavaji tutez interruptovou rutinu, ja situace ponekud slozitejsi.
: No a zacnem potrebovat `interprocessor lock'. IMHO, pouziti prefixu lock
: u user-modu svedci o obchazeni OS...
:
Uz to tady bylo, ale pro jistotu:
Pouziti prefixu LOCK v uzivatelskem modu
je naprosto legalni napriklad pro spinlocky pro multithreadove
aplikace (a v Linuxu se to taky dela pres zamykani sbernice
-- asi pres LOCK CMPXCHB -- viz LinuxThreads). Samozrejme, mohly by se
na tohle pouzivat SysV semafory, ale to by bylo desne pomale
-- takovy spinlock pres LOCK CMPXCHB ma nekolik malo instrukci
a jeho beh je v beznem pripade (to jest zamek neni zamceny) linearni
-- bez vyliti pipeline. Pro semafor v kernelu by clovek potreboval
switch do kernelu, spoustu instrukci uvnitr kernelu (SysV semafory
jsou dost obecne) a navrat zpet.
Samozrejme asi nikdo nebude psat do svych C-programu neco
jako __asm__("lock; ...") -- staci pouzivat POSIX.1c rozhrani
pro thready (LinuxThreads).
-Yenya
--
\ Jan "Yenya" Kasprzak <kas at fi.muni.cz> http://www.fi.muni.cz/~kas/
\\ PGP: finger kas at aisa.fi.muni.cz 0D99A7FB206605D7 8B35FCDE05B18A5E //
\\\ Czech Linux Homepage: http://www.fi.muni.cz/~kas/linux/ ///
/// MS is a lot better at making money than it is at making \\\
// good operating systems. --Linus Torvalds \\
Další informace o konferenci Linux