TeX, multitasking a platformy
Stanislav Brabec
utx at k332.feld.cvut.cz
Fri Oct 27 12:08:19 CET 1995
Vracim se timto jeste k diskusi o operacnich systemech a TeXovani.
---
> p?i b??n? pr?ci
Omlouvam se za cesky mail. Netusil jsem, co sedmibitovych rour je na nasich
informacnich dalnicich. Tento jsem tedy prohnal StripAccents. Maily totiz
pisu s akcenty.
----
Rychlosti TeXu
Na rychlosti TeXu se podileji nasledujici faktory:
(priblizne v tomto poradi)
Rychlost procesoru a pameti
Jasne.
Kvalita prekladace a optimizeru
Ta je nejdulezitejsi.
Pokud je tedy TeX pod Linuxem nebo OS2 pomalejsi, bude to nejspis
tim, ze ho neimplementoval Ebbehard Mattes.
Memory swapping
Okamzikem, kdy spotrebujeme pamet, system zacne ukladat data na
disk a efektivita TeXu systemu prudce klesa. Kvalita OS hraje roli
pri tom, kdy k tomu dojde. Pro nektere OS lze swapovani zakazat.
Efektivita filesystemu
Cteni: Zde se jedna o rychlost OS.
Zapis: Zde muze chod znacne urychlit asynchronni I/O.
Cas straveny systemem pri jeho praci
Zde se muze (ale nemel by) negativne projevit OS tim, ze zdrzuje (a
to i jednoulohovy). Pozitivne se naopak projevi pripadny
asynchronni I/O (behem zapisu na disk se jiz dal TeXuje).
Multitaskovy OS pak vyzaduje nejaky cas na spravu uloh (scheduling,
nemel by to byt vsak vice nez zlomek procenta).
----
Pametove pozadavky
TeX ma temer na vsech platformach kolem 170kB. Vystaci si s 4kB zasobniku.
Zato pamet alokuje znacne velkou (dle hodnot v konfiguraci ci tex.web).
HugeTeX:
HugeTeX hospodari s pameti mene hospodarne. Ma totiz delsi slova.
Lze cekat, ze zacne drive swappovat (nebo dojde pamet).
Commited:
Ano, samozrejme. To je zase problem meho pocitace. Bez MMU neni zadna pamet
comitted.
Pametove pozadavky TeXu jsou tedy na vsech platformach temer stejne. Zato
OS, hlavne ten graficky muze vec znacne ovlivnit.
Zde je vycet jejich pribliznych pozadavku:
GEM: 150kB
Amiga Workbench: 250kB
OS2: 3MB (zde nevim, ale odhaduji z vasich mailu)
X-Windows: 4MB
MS-Windows 4MB
Win95: 8MB
----
Cas OS
Preemptivni multitasking (OS2, UNIX, AmigaDOS) v principu nezanasi
zpozdeni. Cas dispecera uloh by nemel presahnout 1%. Cas zde mohou pozirat
ruzne demony a utility, spustene v OS, a dale pak ruzne spatne napsane
aplikace.
Zato kooperativni multitasking (MS-Windows, Mac system), ma-li kooperovat,
z principu zdrzuje. Zdrzeni zacina na 20%, konci pak radovym zpomalenim.
Nechce-li zdrzovat, jednoduse zakaze kooperaci.
Memory swapping jsem jiz probral.
----
Testy rychlosti:
Testy rychlosti neukazuji jen na kvalitu OS, ale i na kvalitu prekladace
jazyka C (snad i vice). Rozdily mohou cinit i desitky procent. Zda se, ze
jeden z nejlepsich prekladacu je GNU c (gcc).
Aby byly vysledky srovnatelne, je nutne zakazat swapovani.
----
> Je treba si uvedomit, ze vypocetni rychlost nevzroste.
To skutecne pravda je. Ovsem kdybych programoval na jednoulohovem systemu,
asi bych se nezdrzoval psanim asynchronnich operaci. Pod multitaskingem
staci dat CreateProcess, CreatePort, PutMessage, SendIO, ci Fork(). Program
na par radek tak muze byt mnohem efektivnejsi. Typickou ukazkou je
formatovani diskety. Strojoveho casu to vyzaduje asi 100ms, ale bez
multitaskingu to zablokuje pocitac na dve minuty.
----
EMTeX
EMTeX je asi jediny dnesni TeX, jenz neni primo postaven z uvedene
univerzalni stavebnice cestou:
cweb c linker
tex.web -> tex0.c -- tex10.c -> object kod -> virtex a initex
Neni divu.
"640K ought to be enough for anybody." - Bill Gates, 1981
Bill Gates se mylil. TeXu 640kB moc nestaci.
----
X-Windows:
Co se tyce X-Windows, ty jsou, jak znamo pomale. Ale to je tim, ze jsou
optimalizovany na datovy tok mezi X-terminalem a serverem.
X-Windows lze provozovat i na lince 9600bd. Zkuste to s necim jinym...
----
MS-Windows:
Kooperativni multitasking z principu zdrzuje, ma-li kooperovat...
----
S OS2 nemam zkusenosti, abych posoudil funkci. Ale zatim jsem o nem nic
spatneho neslysel.
------------------------------------------------------------------------
| I believe OS/2 is destined to be the most important operating |
| system, and possibly program, of all time. |
| Bill Gates (OS/2 Programmer's Guide, McGraw-Hill) |
------------------------------------------------------------------------
----
System 7 (Macintosh):
Desi mne predstava, ze bych tam nekdy potreboval udelat na disku rm *.bak.
(prace asi tak na pul dne)
Pro programatory nepouzitelny.
Nicmene znam i MacTeXistu.
----
Windows NT
Turn your 386 into an XT, use Windows!
Turn your 486 into an XT, use Windows NT!
----
Amiga:
Nemela to byt glorifikace cehokoliv. Jen vycet pametovych pozadavku.
Ekonomicky software se na ni proste nepise. Zato graficke aplikace ano. (I
kdyz, priznejme si: Dnes, v dobe multiplatformnich grafickych knihoven
(Windows/Mac) je to vec zvyku. To je i problem skveleho OS2 na PC.
Amigova Workbench si s temi 250kB RAM + 512kB ROM skutecne vystaci.
I s ikonkami, ikonovymi aplikacemi atd.
Rychlost:
Ze sveho pocitace Vam nemohu dat srovnatelny test, nebot mam osm let starou
A500, sice s turbokartou, ale skoro bez turbopameti. 68EC030/40MHz/512kB.
3,5MHz/3MB/16bit. Setrim na 4MB SIMM. Veskera data TeXu bezi v pomale
pameti, kod v rychle.
Pozadam kolegu ktery rychlou pamet ma, aby provedl srovnani.
Ale prvni srovnani, tykajici se rezie multitaskingu, jiz dodavam:
Jedna se o TeX--XeT (tex.web 3.1415+tex--xet.changes+dalsi upravy)
prelozeny standardnim CWEBem do cecka a dale pak zpracovany mistnim ceckem.
Pocitam, ze s gcc budou vysledky lepsi.
Je to srovnani: TeXovani TeXbooku na hole Amize (z inicialniho okna, ovsem
s preemptivnim multitaskingem, AmigaDOS neumi pracovat bez nej (asynchronni
diskove operace)) a pod zatizenym systemem:
Na hole Amize: 12'30"
S grafickym systemem Workbench, bezicim ShowDVI, editorem, internetovym
serverem, pozdeji i blankerem s pobihajicimi svazky car a spoustou utilit,
osmibarevny rezim: 12'50".
Sprava vsech nasledujicich procesu tedy jiste zabrala mene nez 3%
strojoveho casu! A to ve 3,5MHz pameti.
--
Novy proces Shellu 16
16.Pirana:posta/k odeslani> tasks ALL
Typ Uzel Pri Jmeno/Prikaz Vlastnik
--------------------------------------------------------------
CLI 16 00DAEF80 0 tasks standa
Proces 001E05B0 0 < ConClip >
CLI 2 001F4E18 0 Work:bin/unixclock standa
CLI 3 001DF6C0 0 C:dospatch standa
Proces 00C16D90 0 < StringClip > standa
CLI 5 00C04B10 0 Work:bin/textdtpatch standa
Proces 00C8CEA0 0 PriMan standa
Proces 001D9A80 0 < IPrefs >
CLI 4 00C004D8 5 MAssign root
CLI 8 00C25FC0 0 l:fifo-handler standa
Proces 00CA9FA0 0 Trash standa
Proces 00CB6498 0 ToolManager Handler standa
Proces 00C78478 0 Exchange standa
CLI 9 00CC2E80 0 rx standa
Proces 00CC4228 5 CON standa
Proces 00CC1100 0 ARexx standa
CLI 12 00D39AA8 0 AmigaGuider (amigaguide.datatyp standa
CLI 1 00D33FA0 0 AmigaGuider (amigaguide.library standa
Proces 00C63DA8 1 CygnusEd ver. 3.5+ standa
CLI 11 00CDB6E8 0 ShowDVI standa
Proces 00D66F68 5 CON standa
Proces 00D99A18 5 CON standa
Proces 00D916F0 4 NETTRACE standa
CLI 15 00D9A840 0 AmiTCP:bin/inetd standa
Proces 00D8BE18 5 CON standa
Proces 00CA5048 0 FKey standa
Proces 00236B70 0 ramlib
CLI 13 00D8E500 0 SYS:Tools/Calculator standa
Uloha 0020BA38 5 console.device
Proces 001F1D78 4 MultiUser.server root
Proces 0021F038 10 DF0
Proces 002211C0 10 DH0
Proces 0022C7E0 10 WDH0
Proces 00230470 10 WDH1
Proces 00234430 10 DF1
Proces 00224FF8 10 DH1
CLI 10 00C9B250 1 Workbench standa
Uloha 00218854 5 trackdisk.device
CLI 6 00C1E908 0 Work:bin/QuietSCSI standa
Proces 00C91FD8 0 Clock standa
CLI 7 00C21C20 0 Work:bin/QuietSCSI standa
Proces 00C04220 4 RexxMaster standa
Uloha 002368FC 5 trackdisk.device
Proces 00DB1CD0 5 CON standa
Proces 00228BE8 10 DH2
CLI 14 00D6BE30 5 AmiTCP:AmiTCP standa
Uloha 0020784A 20 input.device
Proces 00C360D8 0 MultiCX standa
Uloha 0020FEA0 5 gvpscsi.device
Proces 00202D40 10 WB_3.x
Proces 00C0AAA0 10 RAM
16.Pirana:posta/k odeslani>
----
Co si kdo koupi?:
Reklama je reklama.
Zde jsou Miscrosoft nejlepsi.
Kvalita roli nehraje. Zvlast ne pro ty, kteri ji nikdy nepoznali.
----
-- Stanislav Brabec
More information about the csTeX
mailing list