VyÜlo v t²denφku: CHIPweek
╚φslo:5/96
Datum:30. ledna 1996
Strana:25
Rubrika/kategorie: Principy poΦφtaΦov²ch sφtφ
Modul: V²voj v²poΦetnφho modelu
Dφl:3

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek

Ji°φ Peterka

Model host/terminßl

DßvkovΘ zpracovßnφ, kterΘ se pou₧φvalo na samΘm poΦßtku Θry poΦφtaΦ∙, neumo₧≥ovalo p°φm² kontakt u₧ivatel∙ s jejich ·lohami, a tudφ₧ ani ₧ßdnou formu interaktivnφ prßce. To se stalo mo₧nΘ a₧ pozd∞ji, kdy₧ se tehdejÜφ poΦφtaΦov² hardware pon∞kud zdokonalil, a p°edevÜφm se zdokonalily i mo₧nosti systΘmovΘho programovΘho vybavenφ, kterΘ interaktivnφmu zp∙sobu prßce muselo vytvo°it pot°ebnou podporu. Nßsledn∞ pak muselo dojφt i ke zm∞n∞ ve zp∙sobu provozovßnφ jednotliv²ch aplikacφ - takΘ ty se musely p°izp∙sobit novΘmu v²poΦetnφmu modelu, dodnes oznaΦovanΘmu jako model host/terminßl.

P°echod z neinteraktivnφho dßvkovΘho zpracovßnφ na interaktivnφ zp∙sob prßce, po kterΘm u₧ivatelΘ prvnφch poΦφtaΦ∙ velmi intenzivn∞ volali, nebyl zdaleka jednoduchou zßle₧itostφ. Vy₧adoval toti₧ existenci technik a mechanism∙, kterΘ na samΘm poΦßtku poΦφtaΦovΘ Θry nebyly k dispozici. Nap°φklad bylo nutnΘ vytvo°it takovΘ prost°edky, kterΘ by umo₧≥ovaly zpracovßvat vφce jak jednu ·lohu najednou - to byl toti₧ jeden ze zßkladnφch p°edpoklad∙ toho, aby v∙bec m∞lo smysl uva₧ovat o interaktivnφm zp∙sobu prßce vφce u₧ivatel∙ souΦasn∞. Cesta k dneÜnφmu multitaskingu vÜak byla postupnß, a vedla nejprve p°es zavedenφ asynchronnφch vstupn∞/v²stupnφch operacφ - zde stßle b∞₧ela jen jedna ·loha, ale pokud tato iniciovala n∞jakou vstupn∞/v²stupnφ operaci, mohla tato probφhat samostatn∞, bez ·Φasti procesoru, kter² se v tΘ dob∞ ji₧ mohl v∞novat jinΘ ·loze. SkuteΦn∞ soub∞₧nΘ zpracovßnφ n∞kolika ·loh, a¥ ji₧ pat°φcφch r∙zn²m u₧ivatel∙m Φi u₧ivateli jedinΘmu, vÜak stßle brßnila existence jedinΘho procesoru, kter² se v ka₧dΘm okam₧iku mohl v∞novat prßv∞ jednΘ ·loze (a¥ ji₧ u₧ivatelskΘ, nebo systΘmovΘ, tvo°φcφ souΦßst operaΦnφho systΘmu). Mo₧nost p°idat vφce procesor∙ tehdy nep°ichßzela moc do ·vahy, a problΘm by stejn∞ ne°eÜila - poΦet procesor∙ by se t∞₧ko mohl dynamicky m∞nit podle toho, kolik ·loh by bylo v danΘm okam₧iku t°eba spustit. Proto se p°istoupilo na mal² trik - procesor se ponechal jen jeden, ale jednotlivΘ ·lohy se na n∞m zaΦaly st°φdat. St°φdat takov²m zp∙sobem, ₧e procesor se v∞nuje provßd∞nφ urΦitΘ konkrΘtnφ ·lohy jen po jistou dobu (velmi krßtkou, nap°φklad n∞kolik desφtek milisekund), potΘ se obdobnou dobu v∞nuje provßd∞nφ druhΘ ·lohy, pak t°etφ atd., a₧ se po vyst°φdßnφ vÜech ·loh znovu vracφ k prvnφ, k druhΘ atd., a vÜe se neustßle v cyklu opakuje. Ve skuteΦnosti se tak jednotlivΘ ·lohy d∞lφ o celkov² äΦas" procesoru, a proto se prßv∞ naznaΦenΘ techniky obecn∞ oznaΦujφ jako äsdφlenφ Φasu" (time sharing). Nedokß₧φ samoz°ejm∞ zajistit skuteΦn∞ paralelnφ provßd∞nφ jednotliv²ch ·loh, kterΘ na jedinΘm procesoru nenφ ani v principu mo₧nΘ. Dokß₧φ vÜak vytvo°it alespo≥ vhodnou iluzi takovΘhoto paralelismu, alespo≥ z pohledu u₧ivatele - rychlost, s jakou Φlov∞k reaguje na zm∞ny, je toti₧ nesrovnateln∞ menÜφ ne₧ rychlost, s jakou pracuje poΦφtaΦ. P°i vhodnΘ implementaci technik sdφlenφ Φasu je tak mo₧nΘ vytvo°it ka₧dΘmu ze soub∞₧n∞ pracujφcφch u₧ivatel∙ dostateΦn∞ v∞rnou iluzi toho, ₧e jejich ·loha äb∞₧φ" trvale.

Objevujφ se terminßly

Zavedenφ technik sdφlenφ Φasu samoz°ejm∞ vy₧adovalo velmi zßsadnφ zm∞ny v operaΦnφch systΘmech tehdejÜφch poΦφtaΦ∙ - v podstat∞ bylo nutnΘ vyvinout zcela novΘ operaΦnφ systΘmy, vyu₧φvajφcφ technik sdφlenφ Φasu pro soub∞₧nΘ zpracovßnφ vφce ·loh a pro interaktivnφ re₧im prßce vφce u₧ivatel∙. SouΦasn∞ s tφm ale muselo dojφt i k jednΘ dalÜφ zßsadnφ zm∞n∞.

Pokud m∞lo b²t mo₧nΘ, aby na jednom a tΘm₧e poΦφtaΦi pracovalo interaktivnφm zp∙sobem vφce u₧ivatel∙ souΦasn∞, bylo nutnΘ pro n∞ vybudovat vhodnß u₧ivatelskß pracoviÜt∞. Tedy zp°φstupnit ka₧dΘmu z nich takovΘ za°φzenφ, kterΘ by mu umo₧nilo komunikovat s jeho ·lohou, p°φpadn∞ s jednou z vφce ·loh, kterΘ si na danΘm poΦφtaΦi spustφ. Tato komunikace p°itom m∞la charakter p°enosu vstup∙ od u₧ivatele sm∞rem k jeho ·loze, a p°enos v²stup∙ tΘto ·lohy sm∞rem k u₧ivateli. VÜe se p°itom odehrßvalo (alespo≥ zpoΦßtku) na ·rovni p°enosu jednotliv²ch znak∙, tak₧e pro vstup postaΦovala b∞₧nß klßvesnice, a pro v²stup jedoduchß °ßdkovß tiskßrna. Dohromady pak tato dv∞ za°φzenφ (klßvesnice a tiskßrna) tvo°ila jeden celek, oznaΦovan² jako terminßl. Pom∞rn∞ zßhy vÜak tiskßrnu v rßmci terminßl∙ nahradil obrazovkov² displej, kter² byl v mnoha ohledech p°eci jen Üikovn∞jÜφ.

Prvnφ generace terminßl∙ s obrazovkov²m displejem se vÜak stßle chovala stejn∞, jako kdyby byla mφsto displejem vybavena tiskßrnou - jednotlivΘ znaky se ätiskly" (zobrazovaly) postupn∞ za sebou, p°i zapln∞nφ °ßdky se pokraΦovala na °ßdce novΘ, ale neexistovala mo₧nost p°echodu zp∞t na n∞kterou z p°edchozφch °ßdek. ╪eΦeno soudobou terminologiφ, neexistoval zde posun kurzoru nahoru a dol∙, a nebylo zde tudφ₧ mo₧nΘ realizovat celoobrazovkov² re₧im prßce, typick² pro mnoho pozd∞jÜφch editor∙. TΘto prvnφ generaci terminßl∙ se dodnes °φdß äznakovΘ" Φi ä°ßdkovΘ", a spadajφ do kategorie tzv. neinteligentnφch terminßl∙ (v angliΦtin∞ mnohem explicitn∞ji oznaΦovan²ch jako ädumb").

Pozd∞ji se samoz°ejm∞ objevily dokonalejÜφ terminßly, schopnΘ p°echodu mezi °ßdkami a obecn∞ po celΘm dvourozm∞rnΘm poli zobrazovan²ch znak∙ (dnes se jim °φkß strßnkovΘ, Φi celoobrazovkovΘ terminßly), a pozd∞ji dokonce jeÜt∞ inteligentn∞jÜφ terminßly, schopnΘ pracovat s obrazovkami, Φlen∞n²mi na r∙znß pole s texty a okΘnky formulß°ovΘho typu (jde o tzv. formulß°ovΘ terminßly). N∞kterΘ terminßly jsou ji₧ takΘ äinteligentnφ" v tom smyslu, ₧e jsou vybaveny jistou vlastnφ v²poΦetnφ kapacitou - podstatnΘ je vÜak to, ₧e ji vyu₧φvajφ jen pro inteligentn∞jÜφ zpracovßnφ vstup∙, kterΘ u₧ivatel zadßvß, a pro inteligentn∞jÜφ zpracovßnφ v²stup∙, kterΘ u₧ivateli zasφlß k vyobrazenφ jeho ·loha. Zßkladnφ vlastnostφ terminßlu vÜak nadßle z∙stßvß to, ₧e slou₧φ pouze pot°ebßm vstupu a v²stupu, a sßm nezpracovßvß ₧ßdnΘ u₧ivatelskΘ ani systΘmovΘ aplikace.

Model host/terminßl

Existenci u₧ivatelsk²ch pracoviÜ¥ (terminßl∙), interaktivnφmu zp∙sobu prßce v re₧imu sdφlenφ Φasu a koexistenci s dalÜφmi ·lohami se samoz°ejm∞ musely p°izp∙sobit i jednotlivΘ aplikace. Zatφmco samotnΘ sdφlenφ Φasu mohlo b²t implementovßno takov²m zp∙sobem, aby o n∞m jednotlivΘ aplikace nemusely v∙bec v∞d∞t (ale takΘ to tak nemuselo b²t, a byla naopak nutnß v∞domß spoluprßce apolikacφ na t∞chto technikßch), po₧adavk∙m na interaktivnφ zp∙sob prßce a na existenci terminßl∙ se musely p°izp∙sobit vÜechny ·lohy. OperaΦnφ systΘm jim k tomu musel vyjφt vst°φc - musel nap°φklad nabφdnout vhodn² mechanismus, prost°ednictvφm kterΘho ·loha mohla pracovat s terminßlem, u kterΘho jejφ u₧ivatel prßv∞ äsed∞l". NejΦast∞ji m∞l tento mechanismus povahu p°echodov²ch bod∙, p°es kter² ·loha p°edßvala svΘ v²stupy sm∞rem k u₧ivateli, a ze kterΘho naopak sama odebφrala vstupy od u₧ivatele - z druhΘ strany pak tento p°echodov² bod obsluhoval operaΦnφ systΘm, kter² se ji₧ staral o sprßvnΘ doruΦenφ v²stup∙ ·lohy a₧ do u₧ivatelova terminßlu, a naopak o p°evzetφ vstup∙ z u₧ivatelova terminßlu a jejich p°edßnφ skrz zmφn∞n² p°echodov² bod, sm∞rem k ·loze (viz obrßzek).

Obrßzek 1.
P°edstava modelu host/terminßl
Krom∞ komunikace se sv²m u₧ivatelem, uskuteΦ≥ovanΘ s vyu₧itφm terminßl∙, vÜak ka₧dß ·loha nachßzela vÜechno ostatnφ äna mφst∞" - p°φmo na poΦφtaΦi, na kterΘm b∞₧ela. Vedle procesoru, o kter² se d∞lila s ostatnφmi ·lohami (a¥ ji₧ v∞dom∞ Φi nev∞dom∞), zde nachßzela vÜechny pot°ebnΘ zdroje systΘmovΘho i jinΘho charakteru: pam∞¥, slu₧by operaΦnφho systΘmu, vstupn∞/v²stupnφ a jinß perifernφ za°φzenφ (nebo alespo≥ jejich ovladaΦe, skrz kterΘ s nimi pracovala). V neposlednφ °ad∞ pak takΘ vÜechny datovΘ soubory, systΘmovΘ utility a rutiny, i dalÜφ programy. Ve skuteΦnosti tak vlastn∞ bylo vÜechno äna jednΘ hromad∞", p°esn∞ji: na jedinΘm poΦφtaΦi, kter² byl nositelem vÜech zmφn∞n²ch zdroj∙, vΦetn∞ v²poΦetnφ kapacity svΘho procesoru. V angliΦtin∞ se pro tento vztah ävlastn∞nφ" v₧ilo oznaΦenφ äto host", kterΘ je t°eba p°eklßdat ve smyslu ähostit", äb²t hostitelem" (a ne jako ähost", co₧ mß zcela opaΦn² v²znam). Pro cel² poΦφtaΦ jako takov² se pak v angliΦtin∞ v₧ilo oznaΦenφ host, resp. host computer, Φesky nep°φliÜ sprßvn∞ ähostitelsk² poΦφtaΦ".

Od oznaΦenφ ähost" je pak odvozeno i pojmenovßnφ v²poΦetnφho modelu, ve kterΘm pracujφ aplikace urΦenΘ pro takovΘto prost°edφ hostitelsk²ch poΦφtaΦ∙, vybaven²ch terminßly: jde o model host/terminßl.


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm