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