Sunteți pe pagina 1din 33

www.eReferate.

ro -Cea mai buna inspiratie

Microsoft Windows NT 4.0


Cu cateva luni in urma Microsoft a distribuit al doilea beta a unei noi versiuni a celui mai apreciat sistem de operare al su, Windows NT. Noua versiune se va numi Windows NT 4.0 si va combina interfata frumoas, flexibil si usor de utilizat specific Windows ! cu stabilitatea, puterea si viteza cu care am fost obisnuiti "n vec#ile versiuni de Windows NT. Window NT 4.0 este cu mult mai mult dec$t o simpl aran%are cosmetic a codului, versiunea aduc$nd o serie de facilitti suplimentare, "ndelun& asteptate de ctre utilizatorii de Windows. 'nainte de a intra "n subiectul propriu(zis, si anume prezentarea noii versiuni, s precizm "nc o dat care este viziunea Microsoft asupra rolului sistemelor sale de operare. Cele trei sisteme principale de la Microsoft sunt Windows, Windows NT Wor)station si Windows NT *erver. Microsoft a avut ambitia s dezvolte un set de +,-(uri comune pentru toate aceste trei sisteme de operare, "n asa fel "nc$t s putem scrie o aplicatie o sin&ur dat si s o putem rula pe oricare dintre aceste sisteme de operare. Telul a fost cu at$t mai &reu de atins cu c$t Windows NT ruleaz at$t pe procesoare -ntel c$t si pe procesoare .-*C precum procesoarele M-,*, +lp#a sau ,ower,C. /incolo de aceste +,-(uri comune, "ntre cele trei sisteme de operare exist diferente ma%ore, mai ales "n ceea ce priveste implementarea intern a acestor +,-(uri. Windows ! se bazeaz pe un nucleu propriu "n timp ce Windows NT *erver si Windows NT Wor)station au la baz un alt nucleu de sistem de operare. /iferentele "ntre ultimele dou sisteme de operare sunt mai ales "n zona de facilitti cu care vine sistemul "n mod nativ si "n zona de parametrii de confi&urare impliciti ai sistemului. ,e moment,

nucleul Windows ! este mai putin stabil si flexibil dar Microsoft promite pentru anul 0 trecerea "ntre&ii familii pe nucleul NT. 'nc "n acest an, Microsoft sper s lanseze versiunea final pentru Windows NT 4.0 *erver si Wor)station si o versiune actualizat 12M de Windows ! care s contin printre altele -nternet 2xplorer 3.0. *pre sf$rsitul lui 4 va fi lansat si -nternet +dd(on pentru Windows ! si Windows NT 5numele de cod al acestui produs este acum Nas#ville6 care va fi "n principal o inte&rare "ntre s#ell si browser. 'n fine, "n anul 0 7 va fi lansat Cairo ca un continuator al lui Windows NT si Memp#is ca un continuator a lui Windows !. /e altfel, o parte dintre te#nolo&iile preconizate pentru Cairo au fost introduse "n avans "n Windows NT 4.0, de exemplu /istributed C1M 5vezi ilustratia 89rmtorii pasi "n dezvoltarea sistemelor Windows: din pa&ina urmroare6. 'n ceea ce priveste -nternetul, Microsoft are de data aceasta o viziune foarte clar; "n prezent avem aplicatii standalone si pa&ini Web statice. 'n viitor, va fi dezvoltat o te#nolo&ie care s ne permit s crem obiecte comune celor dou abordri fc$ndu(le pe acestea s poat comunica "ntre ele. ,rimul pas este desi&ur te#nolo&ia +ctive< care ne permite crearea de obiecte 5controale 1=26 care pot fi folosite at$t "n dialo&urile aplicatiilor standalone c$t si "n pa&inile Web.
Ce mai e nou

,rincipalele noi trsturi "n Windows NT 4.0 sunt urmtoarele; s( au executat modificri asupra s#ell(ului, s(au "mbunttit mecanismele de listare, s(a mrit performanta sistemului &rafic, s( au modificat unele +,-(uri si unele mecanisme necesare driverelor. 9nul dintre principalele scopuri declarate ale proiectantilor noii versiuni a fost acela de a "mbuntti performantele sistemului. ,entru aceasta, s(a mers p$n la unele restructurri c#iar "n interiorul nucleului Windows NT. 'n plus, s(a a%uns la o

compatibilitate foarte bun "ntre +,-(ul Windows ! si +,-(ul Windows NT. /esi&ur, s#ell(ul implementat "n Windows NT este superior celui din Windows ! prin faptul c are suport complet pentru 9nicode si toate celelalte trsturi specifice Windows NT care lipsesc din Windows !. ,rintre acestea, enumerm extensiile propriettilor fisierelor de tip .in), suport "mbunttit pentru variabilele sistem, profiluri pe &rupuri de masini, interfat pentru comprimarea fisierelor, securitate suplimentar pentru cosurile de &unoi 5.ec>cle ?in6, un convertor de fonturi T>pe 0, si un mana&er extins de procese care permite o manipulare suplimentar "n cazul aplicatiilor care nu "si creaz propriile ferestre. 'n ceea ce priveste robustetea si performanta noului s#ell, acestea vin din extensii precum o utilizare mult mai intens a firelor de executie, un suport mai bun pentru oprirea aplicatiilor care s(au a&tat. Microsoft anunt c au fost eliminate multe scame din s#ell(ul Windows ! si zone de memorie uitate alocate au fost eliberate. 'n ceea ce priveste sc#imbrile le&ate de mecanismele de listare, aceste sunt le&ate "n primul r$nd de faptul c a fost introdus noua interfat de tip Windows !. 'n noul Windows NT directoarele de imprimante se pot parta%a "ntre calculatoare permit$ndu(se astfel administrarea de la distant a imprimantelor. *e poate mer&e c#iar p$n la instalarea de la distant a unui driver pe un calculator cu o ar#itectur diferit fat de calculatorul de pe care se face instalarea. 'n plus, Windows NT 4.0 adau& o interfat utilizator comun tuturor driverelor de imprimant usur$nd astfel sarcina proiectantilor de drivere si utilizarea driverelor "n acelasi timp. 'n fine, pentru metafisierele extinse din Windows prelucrrile necesare imprimrii se pot executa la distant, pe calculatorul pe care este instalat imprimanta. 'n ceea ce priveste sistemul &rafic, sc#imbrile se refer "n primul r$nd la noile drivere care au fost introduse "n sistem pentru W/

T#in),ad, Matrox, Millennium, Trident, Number -ma&ine, Cirrus. 'n plus, pro&ramul *2T9, al Windows NT 4.0 tine acum cont si de eventualele drivere de la terti prezente "n timpul instalrii. 'n fine, a fost introdus un nou +,-; /irect/raw @.0 si suport pentru sc#imbarea dinamic a rezolutiei ecranului 5fr repornirea sistemului6. 'n acelasi timp a fost extins si implementarea de 1penA= existent "n Windows NT pentru conformanta cu standardul 1penA= 0.0. Noua implementare ruleaz complet "n spatiul utilizator si exist surse comune pentru implementarea de Windows ! si Windows NT. =a nivelul +,-(urilor, modificrile au dus "n primul r$nd la faptul c noul +,- Windows NT este un superset al +,-(ului Windows ! 5au fost implementate toate functiile specifice Windows !6. 'n plus, a fost adu&at suport pentru aplicatiile foarte mari "n ceea ce priveste firele usoare de executie 5li&#twei&#t t#reads sau fibers6, si c$teva apeluri noi precum; *witc#ToT#read, *i&nal1b%ect+ndWait, BueCue9ser+pc, afinitate la procesor bazat pe proces si timere dup care se poate astepta. 'n zona de drivere, s(au extins driverele pentru C/(uri, *C*- si 2n#anced -/2, a aprut "nceputul unui suport ,lu& and ,la> 5doar extendere de bus Dal6. *portul complet pentru ,lu& and pla> a fost anuntat pentru "nceputul lui 7. +lte extensii ale Windows NT Wor)station includ +,-(ul de telefonie, +,-(ul de cripto&rafie, Windows Messa&in& *ubs>stem 5servicii de post Microsoft si -nternet6, suport pentru profiluri #ardware la pornirea sistemului, care permit startarea a diverse confi&uratii de rezolutii video, servicii si dispozitive instalate. ,e platformele .-*C, a aprut un emulator 4E4 care permite rularea aplicatiilor de 04 biti care au nevoie de modul 3E4 extins s ruleze pe masini .-*C. 'n ceea ce priveste Windows NT *erver, acesta ofer "n plus serverul de informatii -nternet 5--*6, ,,T, 5,oint to point tunnelin&

protocol6, un router multiprotocol 5TC,F-,, +ppleTal) si -,<F*,<6, performant superioar, inte&rare "ntre /N* 5/omain Name *erver6 si W-N*, serviciul .,= care permite statiilor Windows ! fr disc s booteze de pe serverul NT, extensii ale servicii lor de acces la distant 5.+*6. 'n plus, au fost introdusi o serie de vr%itori 5wizzards6 administrativi care trebuie s a%ute la operatiile mai des executate, precum ar fi; +dd 9ser +ccouts Wizzard, Aroup Mana&ement Wzzard, Mana&in& Gile and Golder +ccess Wizzard, +dd ,rinter Wizzard, +ddF.emove ,ro&rams Wizzard, -nstall new Modem Wizzard, Networ) Client +dministrator Wizzard, =icence Wizzard.
Schimbri arhitecturale

'n vec#ile versiuni de nucleu Windows NT, inclusiv 3.!0, subsistemul Win3@ rula "n mod utilizator, cu alte cuvinte "n afara spatiului nucleului propriu(zis. .atiunea acestui mod de lucru era aceea c sistemul era mult mai stabil datorit faptului c driverele de dispozitive &rafice, aflate "n interiorul subsistemului Win3@, rulau "n mod utilizator. +ceste drivere nu erau "n &eneral dezvoltate de Microsoft ci de parteneri terti si puteau crea probleme "n cazul "n care contineau erori. 5vezi fi&ura 8/etalii ale vec#iului *ubsistem Win3@H6. /in pcate, acest ar#itectur a dus la costuri mari ale apelurilor ctre modulele 9*2. si A/-, la o implementare complex de sistem cac#e si batc# pentru executia acestor apeluri "n interiorul sistemului, consum mare de resurse, &reutti suplimentare la "ntretinere si depanare, scderi de performant si, "n sf$rsit, dificultate crescut la implementarea trsturilor specifice Windows !. =a constructia versiunii 4.0, proiectantii au luat #otr$rea s mute modulele 9*2. si A/- "n executivul NT sub form de drivere "ncrcate dinamic. Gacilittile expuse de executiv ctre aceste module sunt deci facilittile expuse de ctre executiv "n mod

normal ctre un driver de dispozitiv sau ctre un sistem de fisiere. *e evit astfel accesul direct al modulelor 9*2. si A/- la structurile de date interne ale executivului, acest acces fc$ndu(se prin interfete bine definite 5vezi fi&ura 8/etalii ale noii ar#itecturi Win3@H6. Microsoft sustine c acest sc#imbare nu va afecta stabilitatea sau modularitatea sistemului desi alte preri sustin contrariul. Cert este c "mbunttirile de performant &rafic sunt vizibile "n Windows NT 4.0. 'n noua ar#itectur, aplicatiile nu pot accesa sau corupe datele interne ale subsistemului Win3@, erorile "n subsistemul Win3@ 5drivere6 pot fi controlate si fixate "n acelasi mod ca si erorile din executiv sau sistemul de fisiere, iar "n timpul rulrii aplicatiilor se "nt$mpl mult mai putine sc#imbri de context procesor ceea ce duce la o scalabilitate superioar a masinilor multiprocesor simetrice.
Arhitectura de retea

'n Windows NT 4.0 Microsoft a anuntat numeroase extensii "n zonele de internetwor)in&, acces la distant, T+,-, N/-* 4.0, Windows *oc)ets, /N* si securitate. * vedem mai detaliat c$teva dintre aceste extensii. 'n serverul Windows NT 4.0 rutarea a fost inte&rat prin introducerea unui suport multiprotocol. +cest suport lucreaz cu .-,F-,, .-,F-,< si .TM,F+ppletal). *uportul multiprotocol permite extensii prin introducerea de drivere specifice unor noi medii de transfer sau protocoale. N/-* 4.0 a fost si el extins. ,rincipalele trsturi nou adu&ate sunt optimizarea cilor de transmitere si receptie prin transmitereaFprimirea de mai multe pac#ete cu un sin&ur apel +,-, interfete pentru suportul unor medii aditionale, scalabilitate de multiprocesor pentru driverele miniport, detectia automat a

cartelelor de retea ,C- si 2-*+ ale cror drivere sunt "n biblioteca de drivere a sistemului. Noua versiune de Windows NT va implementa deasemenea +,-(ul Windows *oc)ets @.0. +ceast nou versiune de Windows *oc)ets va contine o independent fat de transport 5TCF-,, -,<F*,<, +ppletal)...6, o inte&rare superiar cu Win3@ si servicii superioare pentru multimedia. 2xtensiile de performant ale Windows *oc)ets @.0 sunt cele care permit transmisia unui fisier "ntre& "n -nternet 5se elimin astfel tranzitiile multiple "ntre nucleu si aplicatie "n cazul unor tranzactii lun&i -nternet6 si modificri aduse apelului +ccept2x care reduc numrul de operatii necesare pentru acceptarea unei conexiuni -nternet. 'n noua sa versiune, Windows NT devine o platform care ofer servicii multiple, printre care servicii ale retelei Windows, servicii de informatii -nternet 5--* ruleaz mult mai performant sub Windows NT 4.0 si "ntrea&a sa administratie a fost mutat sub form de pa&ini Web6, servicii pentru retele NetWare 5server de fisiere, listare, director> mana&ement6, servicii pentru Macintos# 5server de fisiere, listare6, servicii NG* 5necesit ac#izitionarea unor produse de la terti6. 'n ceea ce priveste serviciile specifice retelelor Windows, Microsoft anunt c performanta transferurilor este mult "mbunttit, "n special "n cazul mediilor de 000Mb. *e pot accesa servere de oriunde din -nternet pe baza adresei de -nternet 5dat de un server /N*6. /e altfel serviciile /N* si W-N* sunt concepute pentru a lucra "mpreun si a "si rezolva problemele reciproc. 'n plus, Microsoft a anuntat extensii pentru inte&rarea statiilor Windows ! cu serverele NT "n ceea ce priveste performanta operatiilor client(server si a listrii pe imprimante NT. Calculatoarele Macintos# conectate "n retele Windows NT pot beneficia de serviciile serverelor NT 4.0 fr nici un efort special. *erviciile de fisiere si imprimare sunt disponibile direct prin

software(ul standard +pples#are iar conturile Macintos# sunt conturi standard Windows NT. *istemul de fisiere NTG*, cu spatii de nume multiple, poate memora nume de fisiere Macintos# iar iconurile aplicatiilor create cu un ,C sunt afisate corect datorit extensiei de asociere de tipuri care se poate instala pe Macintos#. 'n fine, calculatoarele Macintos# pot tipri fisiere de orice fel, inclusiv ,ostscript la orice imprimant conectat la Windows NT. Iiitoarele domenii de interes pentru Microsoft "n zona retelelor vor fi standardele de transmisie "n retea pentru multimedia 5+TM, .*I,, .T,6, cresterea usurintei de confi&urare, inte&rare superioar cu -nternetul, cresterea performantei si a scalabilittii.
COM Distribuit

,oate c acest nume vi se pare necunoscut, dar el nu este "n fapt dec$t o redenumire pentru vec#iul tel Microsoft prevzut pentru Cairo si anume Networ) 1=2. 'n fapt, cei dintre dumneavoastr care stiu ce este si cum functioneaz C1M 5Component 1b%ect Model6 stiu de%a si cum va functiona viitorul /C1M; este un C1M cu reteaua activat. +ctualele utilitare de constructie a aplicatiilor distribite sunt extrem de &reu de utilizat si destul de limitate. .,C necesit cunostinte foarte multe despre retele si este suportat de putine utilitare de dezvoltare. +lternativa DTT,FCA- este o comunicatie "ntr(o sin&ur directie, foarte &reu de depanat. 'n plus, un 1=2 transpus "n retea ar avea avanta%ul c permite pstrarea cunostentelor si aplicatiilor de%a existente. /C1M va permite o comunicatie "n dou directii, simetric si o performant acceptabil. 'n plus, scalabilitatea va fi mult mai bun. Toate aplicatiile existente, scrise "n C1M vor putea fi portate fr nici o modificare spre C1M distribuit. /C1M va fi optimizat "n principal pentru protocoale interactive 5mult mai eficiente, mai ales peste 9/,6, definirea usoar de +,-(uri de obiecte care pot fi

extinse, inte&rare cu te#nolo&ia +ctive<, trsturi de securitate elaborate. Microsoft, foarte m$ndru de te#nolo&iile 1=2 "n &eneral si de C1M si /C1M "n special face un efort sustinut de portare a acestei te#nolo&ii pe alte platforme. +stfel, firma a fcut un contract cu *oftware +A pentru a porta /C1M pe diverse platforme 9nix. /i&ital 2Cuipment Corporation lucreaz si el la inte&rarea /C1M cu C1.?+F1b%ect?ro)er si introducerea infrastructurii /C2 pe acelasi platforme 9nix. ,rimele rezultate ale portrilor se vor vedea la sf$rsitul anului 0 4. 'n plus, Microsoft face eforturi s inte&reze C1M cu clasele de obiecte create cu a%utorul limba%ului Java "n noua sa masin virtual Java 5care va fi disponibil "mpreun cu Iisual JKK6.
Microsoft si nternetul

Microsoft, c#iar dac putin mai t$rziu dec$t ar fi trebuit, a realizat "n sf$rsit c ,C(urile "mpreun cu -nternetul vor reprezenta principala atractie "n viitor. /e aceea "n interiorul firmei au fost lansate c$teva proiecte de prim ur&ent care s duc la reducerea decala%ului. +ceste proiecte intr "n dou mari &rupuri; te#nolo&ia de navi&are si te#nolo&ia de server de informatii. Microsoft spune c strate&ia sa -nternet se poate rezuma astfel; "mbrtiseaz, extinde, adau& valoare. + "mbrtisa "nseamn la Microsoft preluarea standardelor de succes "n -nternet si inte&rarea acestora "n produsele de baz. 2xtinderea "nseamn "mbunttirea protocoalelor, standardelor si produselor pentru satisfacerea superioar a clientilor. 'n sf$rsit, adu&area de valoare "nseamn impunerea noilor idei "napoi "n -nternet pentru a oferi o functionalitate superioar "ntr(un mod desc#is. 'ntrebarea de baz pe care si(a pus(o Microsoft este aceea dac aplicatiile standalone, specifice ,C(urilor trebuie s fie pentru totdeauna desprtite de pa&inile Web statice specifice -nternetului.

+m$ndou aceste solutii ofer interfete &rafice, componente software, aplicatii client(server, multimedia, 3/ si conferinte interactive. /e ce nu ar putea fi unificate aceste dou abordriL /e ce n(ar putea fi create aplicatii care s preia ce este mai bun din Web si ,C pentru a crea aplicatii interactive distribuite si comunicatii interactive multimedia "ntre indiviziL 'n aceast situatie, Microsoft a decis s creeze o strate&ie care s duc la inte&rarea produselor din Microsoft ?ac)1ffice cu Web(ul. 'mpreun cu Windows NT 4.0 beta @ vine inte&rat -nternet 2xplorer @.0, navi&atorul &ratuit construit de Microsoft ca rspuns la rsp$ndirea extraordinar a lui Nescape Navi&ator. ,robabil c "n produsul final va fi inte&rat de%a -nternet 2xplorer 3.0 care contine te#nolo&ia +ctive< si suport pentru appleturi Java. -nternet 2xplorer 3.0 este disponibil de%a "n versiune beta @. ,rincipala trstur pe care -nternet 2xplorer o opune concurentului su de la Netscape este suportul pentru te#nolo&ia +ctive<. +ceast nou te#nolo&ie mult ludat de Microsoft are urmtoarele trsturi; este independent de limba%, ruleaz pe platforme multiple, este rapid, compatibil cu controalele 1=2, appleturile Java pot fi vzute automat ca si controale +ctive<, se poate utiliza "n pa&ini Web sau "n aplicatii standalone, este suportat de foarte multe utilitare de dezvoltare 5toate care includ suport pentru 1C<6. Noua te#nolo&ie suport desi&ur script(urile pentru minimizarea traficului "ntre client si server. 'n principal, +ctive< suport I?*cript si Java*cript dar exist si suport pentru dezvoltarea unor noi limba%e de ctre terti. *uportul multimedia "n +ctive< este foarte dezvoltat, incluz$nd /irect3/ 5&rafic de mare performant, construit direct pe +,-(ul /irect<6, +ctiveI.M= pentru crearea de lumi virtuale si +ctive< Movie pentru aplicatii sofisticate care necesit video sau audio. Cel de(al doilea punct de interes la Microsoft este serverul de informatii pentru -nternet 5--*6, care este "n esent un server Web.

*erverul vine inte&rat "n Windows NT 4.0 *erver si contine urmtoarele componente; servicii GT,, Aop#er, DTT,, documentatii multiple on(line, suport pentru standarde industriale de extensie precum CA-, -*+,- 5-nformation *erver +,-6, interfat de conectare la baze de date 5-nternet /atabase Connector6, aplicatii de administrare. *erviciile Web contin trsturi excelente, precum ar fi servere virtuale 5serverul poate fi vzut sub mai multe nume6, parolele sunt transmise criptat, exist un +,- 5-*+,-6 care ofer o cale usoar de extindere a functionalittii serverului, conexiune cu dazele de date care permite "ncrcarea informatiilor dintr(o baz de date "n pa&inile Web si **= care ofer posibilitti de comunicare criptat. Cu serverul --* se poate limita traficul "n retea, se poate controla multimea clientilor care au acces la server, se pot crea fisiere de lo&are a traficului 5vezi fi&ura 8+r#itectura serverului de informatii -nternetH6. -nterfata -*+,- permite crearea de extensii ale serverului Web "ntr( un mod standard. +ceste extensii beneficiaz de o perfomant ridicat rul$nd c#iar "n interiorul procesului si "si pstreaz starea de la o cerere la alta. Cu a%utorul aplicatiilor +ctive< se pot crea mac#ete, se pot procesa informatii sau se poate &enera dinamic continutul unei pa&ini. Cu a%utorul filtrelor +ctive< se pot monitoriza cererile, se pot &enera statistici, se poate extinde mecanismul de autentificare, se pot executa translatri ale informatiilor. Conectorul de baze de date ofer inte&rare "ntre serverul Web si serverul *B= sau alt surs de date 1/?C. +cest conector este de fapt o extensie -*+,- ceea ce "l face foarte rapid. Confi&urarea este foarte usoar si nu necesit pro&ramare. *e pot executa cereri dinamice si statice complexe sau actualizri si se pot apela proceduri memorate "n baza de date. 'n fine, conectorul vine "n mod standard cu 1/?C @.! si driverul pentru *B= *erver. Modul

"n care &$ndeste Microsoft extinderea ?ac)1ffice pentru suportul -nternet este prezentat "n fi&ura alturat.
Administrare

,rincipalele teluri ale noului sistem de administrare al Windows NT 4.0 sunt; o administrare mai usoar a sistemului pentru cei care nu sunt obisnuiti cu sistemul si o administrare usoar a retelelor etero&ene de Windows NT si Windows !. 'n primul r$nd Microsoft a construit o multime de vr%itori 5pe care i(am enumerat de%a6 care s a%ute la executia operatiilor celor mai comune pentru un administrator sau utilizator. 'n al doilea r$nd, au aprut noi utilitare corespunztoare noilor facilitti aflate "n sistem. + aprut astfel un monitor de retea, un administrator de /N*, un editor de politic a sistemului, utilitare de administrarea a Windows NT de pe un sistem Windows !, un administrator pentru confi&urarea /C1M. 'n fine, mana&ementul domeniilor si utilizatorilor este mult "mbunttit pentru a putea controla mai bine drepturile si preferintele fiecrui utilizator conectat la un sistem NT.
!erformant

Microsoft anunt c noul su server si(a "mbunttit mult performantele &enerale. ,erformantele serverului de fisiere par s fi crescut cu peste 000M datorit redirectorului modificat, sc#imbrilor din *M, si din serverul de fisiere propriu(zis. ,erformanta se obtine mai ales "n retele de 000 M?Fs pentru care a fost optimizat Windows NT 4.0. 'n ceea ce priveste serverul de aplicatii, acesta si(a "mbunttit scalabilitatea, a definit noi +,-(uri pentru aplicatiile sofisticate precum afinitatea soft 5la un anumit procesor6, dezactivarea cresterii dinamice de prioritate 5d>namic priorit> boostin&6, crearea unei operatii atomice de semnalizare si asteptare sau atasarea conditional a unei sectiuni critice.

Microsoft anunt c serverul su *B= ruleaz sub Windows NT mult mai repede acum si bate un server 1racle rul$nd sub 9nixWare sau *olaris ca s nu mai vorbim de *>base sau 1racle pentru NT. 9ltimele dou rm$n "n urm, dup spusele lui Microsoft, datorit unei proaste implementri vis(a(vis de facilittile sistemului. 'n ceea ce priveste --*, Microsoft afirm c acesta mer&e de 3(4 ori mai repede dec$t competitorul su Netscape Net*ite. Nuclee monolitice /e la aparitia ideii de micro(nucleu, aceasta a suscitat un enorm entuziasm printre cercettori si industriasi. Te#nica promitea s rezolve ele&ant o multime de probleme din proiectarea sistemelor de operare, si s permit scrierea de sisteme distribuite cu mare usurint. 'n mod paradoxal "ns, la aceast dat, toate sistemele de operare de uz &eneral au mai cur"nd o ar#itectur monolitic. C#iar si despre Windows NT, un cal pe care mult lume serioas pariaz ca "nvin&tor "n cursa sistemelor de operare, se r"de adesea; 8a plecat ca un micro(nucleu, dar s(a umflat p"n a a%uns mai mare ca un macro(nucleuH. +m spus mai sus 8sisteme de operare de uz &eneralH. Toate consideratiile ar#itecturale pe care le prezint s"nt valabile pentru ma%oritatea sistemelor de operare existente la zi. Consideratiile despre eficient, care s"nt cruciale "n supravietuirea comercial a unui sistem, s"nt "ns semnificative numai pentru sistemele de operare pentru calculatoare obisnuite. ,rin contrast, sistemele de operare specializate 5de exemplu, sistemele de timp real pentru controlul proceselor, sau pentru masini electronice de %ocuri6 s"nt "ntr(adevr micro(nuclee, si "si fac foarte bine treaba lor. C#eia este "ns aceasta; treaba lor este "ntr(adevr foarte specializatN o masin *2A+ de %ocuri electronice nu are nici disc, nici retea, nici periferice prea multe, asa c sistemul de operare este special scris. +tentia noastr se apleac mai ales asupra sistemelor tip 9nixFWindows 53.0FNTF !6F IM*, care s"nt

concepute s permit rularea unei varietti nelimitate de aplicatii si parta%area resurselor "ntre pro&rame care nu stiu unul despre cellalt, adesea "n medii 8desc#iseH 5retele6. 1 s procedez pe parcursul acestui articol indirect; voi atin&e tot felul de probleme care aparent nu au mare le&tur cu subiectul central, dup care, "n final, "ntr(o sectiune sumar, voi arta cum consecintele faptelor pe care le(am tot "nsiruit, si pe care le socotesc nu lipsite de interes "n sine, se adun "ntru concluzia indicat mai sus, care promite dominatia sistemelor monolitice. A"eluri de sistem 'n aceast sectiune voi face o scurt recapitulare a modului de functionare a nucleului, pentru a "ntele&e de unde izvorsc toate problemele. ,entru c am vorbit aiurea despre aceste lucruri mai pe lar&, aici voi fi oarecum succint. Cititorul interesat poate &si o descriere a functionrii unui nucleu de sistem de operare "n articolul meu publicat "n serial, "n ,C .eport, "n septembrieFoctombrie 0 4 O,entru cei care nu au cumprat revista, articolele la care fac referint s"nt disponibile "n postscript din pa&ina mea de web.P. Nucleul unui sistem de operare se poate asemui cu o bibliotec de functii care s"nt puse la dispozitia proceselor utilizatorilor. ,ractic "ntre& accesul la perifericele conectate este mediat de nucleu, din motive de reutilizare a codului, eficient si, mai ales, securitate O*e "nre&istreaz fireste si tendinte de a permite accesul proceselor direct la periferice, cum ar fi, de exemplu, "n te#nolo&ia 9net, "n care procesele pot scrie direct pe placa de reteaN deocamdat sistemele comerciale "ns nu au mers at"t de departe.P. ,entru utilizatorul normal acest lucru se manifest prin prezenta unei colectii de functii &ata fcute, cu care el poate manipula perifericele 5terminal, disc, fisiere, retea, etc.6. 9n exemplu tipic este functia write#$ din 9nix, prin care se pot trimite date spre un periferic. Gunctiile puse la dispozitie de ctre nucleu se numesc apeluri de sistem 5*Q*T2M C+==*6. 1 alt functie important a nucleului, vizibil utilizatorului prin apeluri

de sistem pentru crearea, distru&erea si manipularea proceselor, este cea de mana&ement al proceselor. 9n proces este un pro&ram care se execut. Nucleul permite mai multor pro&rame independente s fie 8"ncrcateH "n memorie, puse "n executie, oprite si terminate. 1 functie care este mai rar sub controlul utilizatorului este cea de 8planificareH 5sc#edulin&6 a proceselor; oprirea proceselor care s(au executat prea mult si pornirea celor care t"n%esc dup putin activitate. Nucleul implementeaz de asemenea notiunea de spatiu de adrese, folosind sistemul de memorie virtual. 'n ar#itecturile 8clasiceH, fiecare proces are impresia c posed "n "ntre&ime memoria calculatorului. +cest truc este realizat folosind translatarea adreselor 5address mappin&6; pentru fiecare proces nucleul mentine o list a zonelor de memorie care(i s"nt vizibile, iar orice referint la memorie a unui proces este recalculat si tradus "ntr(o referint "ntr(una din zonele care i(au fost alocate. +stfel, adresa ! 58adres virtualH6 va indica o locatie diferit de memorie "n .+M 58adres fizicH6 pentru fiecare proces. Iom vedea un pic mai %os c sistemul de memorie virtual permite c"teodat vizibilitatea unei zone de memorie mai multor procese, pentru usurarea comunicrii "ntre ele. Nucleul "nsusi este prote%at folosind memoria virtual. ,entru a putea apela serviciile nucleului, el trebuie s fie cumva vizibil proceselor. /ar zona de memorie "n care se afl nucleul devine accesibil numai atunci c"nd procesele invoc serviciile nucleului, fiind invizibil sau inaccesibil "n mod normal. Structura unui a"el * vedem cum poate un proces ordinar beneficia de serviciile nucleului, pstr"nd totusi nucleul inaccesibil. 5Nucleul posed o &rmad de structuri de date, despre toate procesele, asa "nc"t citirea lor ar putea reprezenta o periculoas scur&ere de informatii. Cu at"t mai mult scrierea "n zona de memorie fizic "n care se afl nucleul trebuie s fie pro#ibit "n mod normal6. +t"ta vreme c"t un proces se execut, el foloseste 9nitatea Central "ntr(un mod

neprivile&iat 5user mode6. ,rocesul 8vedeH din memoria fizic numai portiunea care i(a fost alocat de nucleu, cam ca "n fi&ura 8Mod utilizatorR. * presupunem c procesul vrea s c#eme un apel de sistem 5write#$, ca s fim concreti6. 59n scenariu asemntor este valabil pentru cazul survenirii unei "ntreruperi sau executrii unei operatii ile&ale.6 ,entru acest scop procesul c#eam o functie de bibliotec oferit de fabricantii sistemului, care "mpac#eteaz ar&umentele "n niste re&istri, iar "ntr(un re&istru convenit 5de pild +<6 codul apelului de sistem 5write56 s zicem c are codul 36, dup care execut o instructiune special a microprocesorului. +ceast instructiune are un efect dramatic; cauzeaz trecerea procesorului "n mod privile&iat 5)ernel(mode6, dup care sare la o rutin special. +ceast rutin "n primul r"nd transform modul "n care se face translatarea adreselor, 8aduc"ndH nucleul "n spatiul de adrese al procesului curent. 5+ceast 8aducereH se poate face automat prin faptul c zonele de memorie ale nucleului pot fi accesibile numai "n modul privile&iatN depinde de caracteristicile unittii de mana&ement a memoriei si procesorului prin ce detalii anume se obtine vizibilitatea.6 Cert este c, subit, ima&inea arat ca "n fi&ura 8Mod privile&iatR. /eodat toate structurile de date si codul nucleului au devenit vizibile. +poi rutina special 5care tocmai se execut6 se uit "n re&istrii conveniti pentru a depista apelul fcut 5"n exemplul nostru &seste "n +< un 36. +poi "n functie de acesta c#eam una sau alta din procedurile de tratare din codul nucleului 5de(multiplexeaz apelul, de obicei folosind o tabel care pentru fiecare apel contine o adres "n nucleu; call s%scall&A'(6. Mai departe, procedura de tratare a apelului de sistem, care este specific pentru apelul nostru 5write6 caut "n locurile convenite ar&umentele 5de obicei tot "n re&istri6, verific validitatea lor si "ncepe executarea apelului. 9n apel de sistem de &enul lui write#$ roa& nucleul s transfere date spre un periferic. 'n cazul lui write datele s"nt indicate prin adresa virtual a unui buffer si mrimea lui; write5periferic, buffer, mrime6. 'n mod normal, nucleul trebuie s copieze continutul "ntre&ului buffer "n interiorul nucleului pentru prelucrare. /e ceL ,entru c acest

proces va fi suspendat acum, "n asteptarea terminrii executrii apelului de sistem 5"n &eneral, interactiunea cu perifericele este foarte lent si cauzeaz suspendarea proceselor6. 1ri dac acest proces este suspendat, un altul va fi pornit. /ar acest lucru va sc#imba modul "n care este translatat spatiul de adrese virtuale, deci adresa virtual a buffer(ului indicat nu va mai avea aceeasi semnificatie pentru nucleuS Gc"nd tot felul de trucuri uneori nucleul reuseste s evite copierea datelor O/e pild, nucleul poate retine adresa fizic a buffer(ului, si poate marca "n tabelele interne acea zon ca fiind 8tabuH 5pentru a nu fi modificat de al&oritmii de pa&inare, care refolosesc memoria fizic6 p"n continutul ei a fost prelucrat.P. ,entru anumite operatii "ns, copierea datelor "n interiorul nucleului nu poate fi evitat; de exemplu, c"nd datele trebuie s plece "n retea ele trebuie "mpac#etate si sparte "n bucti mai mici, sau atunci c"nd mer& spre disc trebuie re(aliniate si mutate "n cac#e. /e asemenea, c"nd datele se duc spre un alt proces 5de pild printr(un pipe "n 9nix6 ele trebuie din nou copiate "n interiorul nucleului, pentru a lsa procesul care face write s continue s foloseasc buffer(ul fr a modifica datele de%a trimise 5dup scrierea "ntr(o 8teavH 5pipe6 procesul care face scrierea de obicei "si continu executia, dar datele s"nt pstrate p"n c"nd un proces de la cellalt capt al 8teviiH le citeste. ,strarea se face "n nucleu6. Comutarea "roceselor * ne uitm acum si la operatiile care "nsotesc comutarea executiei de la un proces la altul, pentru c acest cost este foarte important "n micro(nuclee. Comutarea proceselor implic salvarea strii procesului curent si "ncrcarea strii procesului care urmeaz pentru executie. ,entru c cea mai mare parte din stare este continut "n tabele aflate "n memorie, sc#imbarea se poate face relativ simplu "ncrc"nd valoarea unui pointer spre noua csut din tabel care se va folosi 5pentru a comuta de la procesul 3 la procesul !, nucleul va pune "n pointerul spre csuta din tabel cu

datele procesului curent, valoarea ! "n locul lui 36. 'n &eneral "ns, trebuie luate "n calcul mai multe operatii. +nume trebuie fcute urmtoarele operatiuni, nici una foarte complicat; Gaza 0; salvarea strii; 0. @. *alvarea re&istrilor curentiN *alvarea strii coprocesorului matematicN

3. *alvarea re&istrilor de depanare, dac procesul curent era depanatN 4. *alvarea re&istrilor si strii unittii de mana&ement a memorieiN salvarea tabelei de translatare a adreselor, a procesului curent 5tabela de translatare indic modul "n care se interpreteaz adresele virtuale pentru procesul curent6N !. Modificarea contoarelor si ceasurilor de executie pentru a reflecta timpul consumat de procesul care se opresteN

Gaza @; comutarea; 4. .ularea al&oritmului de planificare 5sc#edulin&6, care parcur&e cozile de procese &ata de executie "n ordinea priorittilor, ale&"nd pe cel mai ur&entN 7. Aolirea cac#e(urilor de translatare a adreselor ((( Translation =oo)aside ?uffer Ovedeti si articolul meu despre cac#e(uri din ,C .eport din martie 0 7 pentru o discutie a T=?.P T=? este un cac#e care retine felul "n care se traduc adresele virtuale cele mai des folosite pentru procesul curentN din moment ce semnificatia adresei virtuale ! pentru noul proces va fi alta, vec#ea ei asociere trebuie stears si din T=?. Gaza 3; "ncrcarea noului proces;

E. 'ncrcarea tuturor re&istrilor salvati 5de pasii 0((36, cu valorile lor pentru noul procesN . 'ncrcarea tabelei de translatare a adreselor, a noului proces si a re&istrilor unittii de mana&ement a memoriei. 'n acest fel noul spatiu de adrese virtuale devine vizibil si cel vec#i invizibilN 00. ,entru c "n timp ce noul proces 8dormeaH s(au putut "nt"mpla evenimente interesante pentru el 5de exemplu, "n 9nix i(a fost trimis un semnal6, acum este momentul de a lua actiuni speciale 5"n cazul semnalelor 9nix, se construiesc cadre pe stiv pentru procedurile de tratare a semnalelor, sau procesul este omor"t6N 00. *c#imbarea pointerilor spre a puncta spre noul proces. /up cum vedeti, s"nt totusi o sumedenie de operatii de fcut. Nuclee foarte sofisticate pot avea operatiile de comutare a proceselor c#iar mai complicate dec"t cele descrise aici. * observm c "n comutarea proceselor mai exist cel putin un cost ascuns, implicat de operatia de sc#imbarea localittii de adresare; pentru c "ncepem rularea unui nou proces, care va folosi un spatiu de adrese complet diferit, cac#e(ul microprocesorului va &enera foarte multe rateuri pentru "nceput, fiind "ncrcat cu date din spatiul vec#iului proces. /e asemenea, T=? a fost &olit 5"n pasul 7 mai sus6, deci pentru a(l umple din nou cu traducerea adreselor "n noul proces, va trebui s fie consultat tabela de traducere a adreselor pentru noul proces, operatie costisitoare, deoarece implic accese suplimentare la memorie. 9n alt posibil cost va fi pltit p"n noul proces "si aduce de pe memoria secundar 5disc6 pa&inile de memorie din setul de lucru 5wor)in& set6N datorit faptului c pa&inile de memorie "ndelun& ne(folosite s"nt de obicei scoase afar pe disc, s(ar putea ca procesul care tocmai porneste s trebuiasc s si le ia de acolo. +ducerea unei pa&ini este o operatie extrem de costisitoare, care implic, pe l"n& accesul la disc, si oprirea procesului care cere pa&ina p"n la venirea acesteia, ceea ce "nseamn "nc o comutare de proceseS

,lasarea serviciilor 2xist "n mod lo&ic trei locuri unde poate fi implementat un serviciu; 0. 'n spatiul procesului care "l foloseste, ca o bibliotec de functiiN @. 'n interiorul nucleului, accesat printr(un apel de sistemN 3. 'n &estiunea unui proces separat, numit 8serverH. 59n al patrulea loc, mai putin uzual, va fi de asemenea discutat.6 Gi&ura 89nde sunt serviciileR prezint cele trei cazuri. =e vom analiza pe fiecare pe scurt. ,entru un serviciu dat, foarte adesea proiectantul sistemului are la dispozitie toate cele 3 posibilitti. Modul dominant "n care s"nt plasate serviciile 5adic locul ma%orittii serviciilor6 d si clasificarea unui sistem "n taxonomia sistemelor de operare. ,ractic, fiecare sistem de operare va avea servicii "n toate cele trei prti, astfel "nc"t diferenta este mai cur"nd una de &rad dec"t de natur. +stfel, sistemele care ale& varianta @ pentru ma%oritatea serviciilor se numesc monolitice, pentru c tind s aib un nucleu foarte mare, cu o &rmad de cod. *istemele care opteaz pentru varianta 3 se numesc prin contrast 8micro(nucleeH, pentru c nucleul av"nd putine servicii devine foarte mic. 'n fine, sisteme "n care ma%oritatea serviciilor s"nt plasate "n spatiul proceselor "nsele, "n functii de bibliotec, s"nt relativ putin rsp"ndite. Iom vedea "ns niste candidati putin mai %os. )n biblioteci Cu servicii plasate "n biblioteci, este obisnuit orice pro&ramator care a folosit un limba% de &enul C sau ,ascal. 1 bibliotec este o colectie de functii &ata scrise, la care pro&ramele utilizatorilor se pot 8le&aH, si pe care le pot folosi. =e&area 5lin)in&6 la functiile din biblioteci se poate face, fie atunci c"nd pro&ramul este creat 5la sf"rsitul compilrii6, si atunci se numeste 8le&are staticH 5static lin)in&6, fie abia dup ce pro&ramul a fost pornit "n executie, fiind

atunci numit le&are dinamic 5d>namic lin)in&6. Cert este c se face doar odat, asa "nc"t costul le&rii se 8amortizeazH c"nd functiile din bibliotec s"nt folosite intens. 8CostulH unui astfel de serviciu este extrem de sczutN cel mai sczut posibil probabil, pentru c implementarea unui apel de functie "n termenii microprocesorului este foarte ieftin. Trebuie "ns s observm c natura codului din bibliotecile parta%ate care se "ncarc dinamic O2ste vorba de faptul c acest cod este 8independent de pozitieH 5,1*-T-1N -N/2,2N/2NT C1/2N ,-C6.P "l face c"teodat mai ineficient dec"t codul obisnuit, cu factori cuprinsi "ntre 0M si 30M. 'n caseta 82xemple; servicii "n biblioteciR sunt prezentate c$teva exemple faimoase de servicii plasate "n biblioteci. )n nucleu +l doilea loc unde poate fi plasat un serviciu este "n nucleu. *istemele de operare monolitice pun "n nucleu mai toate serviciile care au o utilizare frecvent. *isteme monolitice tipice s"nt 5si veti recunoaste toate sistemele dominante pe piat6; Windows 3.0, Windows !, 9nix, IM*, Java1* O-nformatiile mele "n le&tur cu Java1* nu s"nt foarte ample, dar cred c poate fi cate&orisit ca monolitic.P. Windows NT este considerat "n continuare un sistem micro(nucleu, desi contine "n nucleu servicii care la 9nix 5un monolit tipic6 s"nt "n afara nucleului, cum ar fi sistemul de ferestre sau serverul de fisiere. /up cum vedeti, &ranitele s"nt difuze "ntre cate&orii ... *istemele monolitice s"nt comercial cele mai rsp"ndite. ,entru ilustrare, s vedem care s"nt cate&oriile de servicii oferite de un sistem 9nix tipic; 1peratii cu procese 5creare, distru&ere, etc.6TN /epanarea si msurarea 5profilin&6 proceselorTN ,lanificarea si executia proceselorTN +ccountin& 5contabilitate6 si tarifare dup consumul resurselorTN 1peratii cu fisiereN

Comunicatie inter(proces;T tevi(conducte 5pipes6, semnale, memorie parta%at, semafoare, mesa%eN ,rotocoale de comunicatie "n retea 5TC,F-,6N Aestiunea memoriei virtualeTN +locarea si eliberarea memorieiTN Timere si alarmeN Mecanisme de protectie si securitateTN =e&area dinamicN Mana&ementul perifericelor. +m marcat cu asterisc serviciile care "n orice implementare a unui sistem de operare, fie ea monolit sau micro(nucleu, trebuie s fie oferite de nucleu. 5Cum se descurc exo)ernel(ul fr ele, mie personal nu "mi este foarte clar.6 *istemele monolitice s"nt destul de &reu de scris si relativ inflexibile; o sc#imbare a serviciilor oferite se poate face "n mod traditional doar oprind sistemul si recompil"nd o ima&ine a nucleului O*istemele moderne 9nix pot "ncrca dinamic unele portiuni de nucleu.P. 2xist "ns o cantitate considerabil de experient "n folosirea si manipularea acestor sisteme. Cea mai dezirabil trstur a acestor sisteme 5comparate cu bibliotecile6 este separatia net "ntre spatiul de adrese al nucleului si cel al proceselor utilizator. +ceasta permite nucleului s aib un control foarte str"ns OCel putin teoreticN faptul c se raporteaz mereu noi bu&(uri "n securitatea sistemelor 9nix nu z&uduie de loc "ncrederea adeptilor "n aceast tez.P asupra operatiilor care pot fi efectuate de procese, si "i permite s forteze cu usurint respectarea politicilor de folosire a resurselor. )n ser*er#e$ 'n fine, putem lua o resurs parta%at si o putem depune "n bratele unui proces, care s aib &ri% de eaN procesul care ne 8servesteH cu aceast resurs se va numi 8serverH. Nucleul trebuie s pun la dispozitia proceselor o metod eficace prin care s comunice "ntre eleN de "ndat ce au aceast metod la dispozitie, procesele care au

nevoie de resursa detinut de server devin 8clientiiH lui, trimit"ndu( i un mesa% cu cererea lor. *erverul le rspunde clientilor cu datele cerute. Marele avanta% al acestei formule este c teoretic se poate aplica si "n cazul "n care clientul si serverul s"nt pe masini diferite si comunic printr(o retea. 'ntr(adevr, ma%oritatea cov"rsitoare a aplicatiilor din retea folosesc aceast ar#itectur. /e aici apar "ns si problemele, dup cum vom vedea "ntr(o sectiune ulterioar consacrat "n mod special sistemelor micro(nucleu, care tind s exploateze te#nolo&ia client(server. ,entru a ilustra diferenta de performant, pe acelasi calculator pe care am fcut msurtorile anterioare, un nucleu experimental extrem de simplu 5,ic1* ((( implementat de autor6, fr memorie virtual, cu procese inte&ral rezidente "n .+M, permite sc#imbarea a circa !000 de mesa%eFsec "ntre dou procese pe aceeasi masin. +sta "nseamn de%a @00 de microsecunde pentru un mesa%, adic 400 pentru un apel complet cerereFrspuns. Comparati cu performanta unui apel de sistem si cu a unui apel de procedur. Caseta 82xemple; *ervere si resurseR ilustreaz c"teva exemple reale de folosire a serverelor pentru &estiunea resurselor. +esurse fr ser*ere * notm "n treact c toate cele trei solutii citate dau fiecare resurs pe seama cuiva; o bibliotec, un nucleu, un proces. 2xist si o solutie 8democraticH, "n care nimeni nu posed un obiectN acest stil de proiectare se numeste 8fr servereH 5serverless6. /in pcate, al&oritmii folositi pentru acest fel de probleme s"nt "n &eneral putin robusti si extrem de complicati, si trdeaz adesea tocmai cauza pentru care erau creati; evitarea unei 8&"tuituriH 5bottlenec)6 "n accesul la resurs, reprezentat de serverul care o &estioneaz. * notm totusi o aplicatie a acestui &en de al&oritmi "n sistemele de calcul paralele si distribuite, mai ales a celor care implementeaz ceea ce se numeste memorie distribuit parta%at 5/istributed *#ared Memor>, /*M6. -deea central este de a avea pentru toate calculatoarele dintr(o retea un sin&ur spatiu de adrese

urias, "n care toate scriu si citesc, dar care nu este memorat fizic "n vreun loc fixat, ci ale crui 8locatiiH se 8plimbH dup necesitti "ntre masinile care le folosesc. 2xist si sisteme de fisiere implementate dup aceast sc#em, dar pro&resele comerciale s"nt 5"nc6 slbute. Nici noi nu o s le consacrm deci prea mare important "n acest articol, care iar a "nceput s ia proportii mai mari dec"t cele anticipate initial de autor. Semantica o"eratiilor 89nde s plasm un serviciu, "n care din cele trei posturiLH +parent rspunsul la aceast "ntrebare depinde doar de consideratii de eficient si estetic, precum si de extrava&anta desi&n(erului. /ar lucrurile nu stau c#iar asaS Iom vedea c anumite "nsusiri ale unui serviciu depind esential de plasarea sa, si c fiecare din cele trei sc#eme are proprietti speciale, care nu pot fi simulate nicicum "n "ntre&ime de celelalte. 5Iom i&nora asemenea consideratii elementare cum ar fi c nu putem plasa servicii de creare a proceselor "ntr(o bibliotec, pentru c atunci cine creaz procesul "n care se afl bibliotecaL6 =ista de diferente care urmeaz nu este "n nici un caz ex#austiv, ci doar vrea s ilustreze prin exemple problema. Diferente semantice bibliotec,nucleu /eosebirea dintre bibliotec si nucleu este cu si&urant familiar oricrui pro&ramator "n C care, frustrat, a "ncercat s(si depaneze pro&ramele pun"nd printf56(uri pe ici(colo, dar care nu ddeau nici un efectS 2xplicatia este simpl; printf56 scrie, dup cum am vzut, "ntr(un buffer, care este &olit numai "n anumite circumstante. /ac o eroare survine "nainte ca apelul de sistem write#$ s fie executat si procesul moare, continutul din buffer este definitiv pierdutS 5*olutia este, fireste, s fortm &olirea buffer(ului folosind functia fflus#56.6 +sa ceva nu se va "nt"mpla dac folosim direct write#$, pentru c odat apelul de sistem executat, datele au fost copiate de nucleu si vor a%un&e p"n la urm la perifericul(destinatie. /iferenta esential "ntre cele dou cazuri este de durat de viat a

informatiei; dac informatia este "ntr(o bibliotec, local unui proces, atunci ea nu poate supravietui mortii procesului OGireste, o bibliotec parta%at poate servi drept depozit de informatieP. Nucleul "n sc#imb supravietuieste tuturor proceselor 5teoretic6, deci poate mentine "n si&urant informatiile &lobale pentru "ntre&ul sistem. 9n alt exemplu faimos este implementarea protocoalelor de retea "n biblioteci, care pune infernale dificultti 5de altfel, acesta este unul dintre motivele atacurilor la exo)ernel, care, v amintiti, este o bibliotec mare6; de exemplu, standardul TC,F-, impune ca dup "nc#iderea unei conexiuni de retea, unul din capete s retin identificatorul conexiunii pentru o vreme nefolosit 5830 de secundeH scrie la carte6, "n asa fel "nc"t s nu fie "nsusit de o alt conexiune 5"n acel caz, pac#ete "nt"rziate ale conexiunii precedente care mai rtcesc pe retea ar putea fi incorect primite pe conexiunea nou6. ,uteti vedea "n 9nix lista tuturor conexiunilor cu comanda netstat. Cele care s"nt "n starea T-M2UW+-T s"nt conexiuni de acest &en; terminate, dar memorate. ,e un server de web trebuie s fie o multime de astfel de conexiuni la un moment dat O/ac nu aveti la "ndem"n un server de web, creati o conexiune cu telnet local#ost, vedeti ambele capete cu netstat, "nc#ideti conexiunea cu exit si apoi vedeti informatia rmas din nou cu netstat.P. 2i bine, pe un proces care are protocoalele de comunicatie implementate "n biblioteci "l vor trece toate sudorile s mentin identificatorul conexiunii dup moartea procesului. Diferente semantice nucleu,,ser*er 1 deosebire de acelasi &en de semantic 5semnificatie6, de acelasi &en al serviciilor subzist "ntre serviciile oferite de nucleu si cele oferite de servere aflate la distant; "n mod normal, pe o masin, ori mer&e nucleul si procesele, ori, dac nucleul nu mer&e, nu mer&e nimic. Cu alte cuvinte, dac procesele pot cere servicii de la nucleu s"nt si&ure c &estionarul lor este sntos. +cest lucru nu mai este adevrat "n cazul proceselor care cer servicii de la distant; c"nd arunci niste informatie "n retea si nu primesti rspuns este &reu de zis dac informatia a a%uns si rspunsul nu, sau informatia s(a pierdut, sau a a%uns si serverul a murit "nainte sau

dup ce a primit(o. /e aici si complexitatea enorm a protocoalelor de retea si a al&oritmilor distribuiti. 1 alt diferent, &reu de mascat "ntre solutia unei probleme cu nucleu si solutia cu servere este "n "ncredere. 9n nucleu stie c toate procesele care ruleaz pe masina lui au fost create de el si s"nt 8le&itimeH. ,e de alt parte, c"nd un server primeste o cerere de la distant 5sau c#iar pe aceeasi masin6, el nu are la dispozitie mi%loacele nucleului de verificare. 9n mecanism complet diferit trebuie inventat pentru a asi&ura serverul de identitatea clientilor, un lucru nenecesar pentru un serviciu plasat "n nucleu. !romisiunile micro,nucleelor -at care s"nt unele din avanta%ele 5reale sau fictive6 ale ar#itecturii micro(nucleuN unele din aceste merite s"nt atribuite ar#itecturii client(server, altele ar#itecturii de micro(nucleu, dar am vzut c a doua o implic pe prima. Modularitate. 'ntr(un nucleu monolitic diferitele prti comunic foarte adesea folosind variabile &lobale, ceea ce ridic probleme dificile privitoare la corectitudinea codului. Mai ales pe multiprocesoare, unde mai multe pro&rame pot actiona simultan asupra aceleiasi structuri de date, se pot ivi tot felul de comportamente ciudate. ,rin contrast, "n solutia cu servere, un server &estioneaz o cantitate redus de resurse, iar interactiunea cu alte pro&rame se face prin interfete foarte bine precizate 5mesa%e6. 2 clar, micro(nucleele "ncura%eaz modularitatea. *calabilitate. Irei un serviciu mai puternic; mai adau&i niste servere sau niste clienti, "nlocuiesti serverele cu altele mai performante. 1 masin este prea "ncrcat; muti din servere pe alt masin. Toate acestea s"nt aspecte ale cresterii incrementale a unui sistem, sau crestere "n raport cu resursele si necesittile disponibile. /istribuire facil. /ac primitiva ta de baz este trimiteUmesa%56, atunci esti "ncura%at s dezvolti solutii pentru pro&rame "n care nu conteaz unde se afl server(ul. Mediile de calcul distribuit 5/C2; /istributed Computin& 2nvironment al lui 1*G; 1pen *oftware Goundation6 s"nt un exemplu de standard de

scriere a unei aplicatii independent de numrul de calculatoare pe care se execut. +daptabilitate 5customizabilit>6. Nucleul nu poate fi sc#imbat dec"t "n mic msur, cu mare &ri%, si arar fr a opri sistemul. ,e de alt parte, serverele s"nt simple procese, care pot fi create si omor"te dinamic, fr a avea nevoie de privile&ii administrative extraordinare. Cu alte cuvinte fiecare utilizator al unui micro(nucleu ar putea s(si construiasc mediul care "i convineN cine nu foloseste fisiere nu porneste nici un server de fisiere, si are mai multe resurse pentru alte ocupatii. /imensiune redus. I"rful de lance al creatorilor de micro(nuclee este; pltesti numai pentru ce folosesti. Nu ai nevoie de ceva; nu primesti. 9n nucleu monolit contine toate serviciile, fie c le vrei, fie c nu. Comunicatie puternic inter(proces. +ceasta este o conditie necesar pentru viabilitatea unui micro(nucleu. Comunicatia trebuie s fie eficient, pentru c fiecare serviciu implic cel putin un sc#imb de dou mesa%e 5cerereFrspuns6, si flexibil pentru a permite transmiterea unei variate &ame de mesa%e 5de la un numr, la un fisier de me&aocteti cu ima&ini6. +!C 1rice discutie serioas despre ar#itectura client(server trebuie s atin& mcar "n trecere subiectul apelului procedurilor la distant 5remote procedure calls6. *ubiectul este fascinant si merit o tratare mult mai ampl. 1bservati c "n cazul folosirii serverelor nu numai c am mutat un serviciu "ntr(un proces separat, dar am sc#imbat si natura modului "n care serviciul este invocat; "nainte era printr(un apel de functie 5sau de sistem6, dar acum este prin trimiterea unui mesa%. 2 aceeasi diferent de perspectiv ca "ntre o procedur si un fisierN pentru un pro&ramator paradi&ma mesa%ului este mai incomod. /in cauza asta a fost inventat "mpac#etarea mesa%elor "n proceduri. ,ractic pro&ramatorul c#eam o procedur 5dintr(o bibliotec6, care procedur construieste mesa%ul, "l trimite, asteapt rspunsul si se "ntoarce "n mod uzual. 'n acest fel pro&ramatorul opereaz din nou cu conceptul familiar de procedur. 1 astfel de

procedur c#emat la distant se numeste "n en&lez 8remote procedure callH, prescurtat .,C. 9n pac#et .,C face multe lucruri; dintr(o specificare de nivel "nalt a procedurii oferite de serverO'ntr(un limba% de descriere a interfetei, 8interface definition lan&ua&eH, prescurtat -/=.P el construieste automat functiile pentru client si server. Gunctiile acestea care manipuleaz mesa%ul se numesc "n en&lez *T9?. Misiunea lor este de a "mpac#eta ar&umentele procedurii "ntr(un mesa% 5operatie numit mars#allin& 6, de a trimite mesa%ul si a despac#eta valorile la receptia unui mesa%. Gunctionarea este prezentat sc#ematic "n fi&ura .,C. ,rocedurile stub s"nt &enerate de compilatoare speciale din simpla descriere a interfetei lor 5tipul ar&umentelor si al rezultatelor6. 1 alt problem rezolvat de un pac#et .,C este de a localiza serverele care ofer servicii. C"nd un client porneste, el stie doar c undeva ar trebui s se afle un server care export serviciile care "l intereseaz. 1peratia de descoperire a server(ului se numeste tot 8le&areH, dar "n en&lez foloseste termenul ?-N/-NA, care este un sinonim partial pentru 8lin)in&H 5corespunz"nd acestei faze din compilarea traditional6. 1 calitate a unui pac#et .,C bun este c permite invocarea de proceduri pe masini diferite ar#itectural de cea pe care se afl clientul. ,entru asta procedurile stub de "mpac#etare trebuie s foloseasc un standard comun de reprezentare a datelor, astfel "nc"t calculatoare care folosesc reprezentri diferite 5ex. bi&Flittle endian6 diferite s se "ntelea& totusi "ntre ele. 2xist o multime de probleme cu .,C, care scad oarecum din meritele metodeiN "n principal, o serie de diferente "ntre semantica unui apel de procedur obisnuit si al unei proceduri distante s"nt aproape de nedepsit. /e exemplu, cum trimiti un pointer la distant si la ce(i foloseste server(ului, care are alt spatiu de adreseL !roblema micro,nucleelor /in c"t am diva&at, probabil c problema sare(n oc#i; "ntr(un micro(nucleu costul unui serviciu este prea ridicat. +sta pentru c

transmiterea unui mesa% implic; 0. +peluri de sistem pentru trimitere si receptie de mesa%e, at"t de partea clientului c"t si a serveruluiN @. Cel putin o comutare de proceseN 3. ,entru .,C "mpac#etarea si despac#etarea ar&umentelorN 4. Copierea ar&umentelor din spatiul de adrese al clientului, "n nucleu, eventual prin retea, si apoi "n spatiul serveruluiN !. Crearea unui t#read "n server pentru a trata cerereaN 4. /ac mesa%ul trece prin retea este posibil s fie copiat de mai multe ori; de pild din nucleu pe placa de retea si invers la receptieN 7. Copierea rspunsului pe traseul invers server (((V client. 1 alt observatie interesant este c, "n &eneral, "n micro(nuclee tendinta este de a fra&menta un serviciu oferit de un nucleu monolit "n M+- M9=T2 servicii oferite de servere diferite. /e exemplu, apelul open5fisier6 din 9nix de obicei devine un apel pentru a traduce numele de fisier "ntr(un identificator unic, executat de serverul de directoare 5sau, mai ru, traducerea fiecrei prti din 8crareH 5pat#6 independent, printr(un apel separat al unui alt serverS6, si apoi 8desc#idereaH fisierului la serverul de fisiere propriu(zis 5fi&ura 4 ilustreaz acest fapt6. 'n acest caz, ceea ce initial era un sin&ur apel de sistem poate deveni o suit de zeci de mesa%e sc#imbate cu mai multe servereS )n loc de - NA./ arhitectura NT Iom "nc#eia acest articol urmrind c"teva din trucurile fcute de proiectantii sistemului Windows NT "n lupta cu microsecundele. Trebuie spus din capul locului c pentru a pstra compatibilitatea cu at"tea sisteme existente 5Windows !, 1*F@, etc.6 ei nu aveau de ales "ntre prea multe variante ar#itecturale, si c solutia cu serverele din fi&ura 4 este cea mai flexibil. .ocal "rocedure call #.!C$ 9n pac#et .,C face o &rmad de operatii de care nu este nevoie "n cazul "n care clientul si serverul s"nt pe aceeasi masin. /e

exemplu, conversia datelor "ntr(un format standard si "napoi este curat sinucidere, din moment ce procesorul este acelasi. ,e de alt parte o cantitate impresionant de mesa%e "n NT tind s fie "ntre pro&rame localeN de exemplu, tot ce tine de afisare pe ecran se plimb "ntre unul din serverele de emulare si serverul Windows !, care sin&ur are "n m"n &estiunea ecranului. /in cauza asta "ntre NT 3.!4 si NT 4.0 serverul de ecran a cobor"t "n nucleu, cum apare si "n fi&ura din caseta 8+r#itectura lui Windows NTR. Mai apar si alte mesa%e locale, de exemplu "ntre un pro&ram 9nix si serverul de emulare 9nix. ,roiectantii NT au optimizat "n mod special acest &en de comunicare, numind(o 8apel de procedur localH 5=ocal ,rocedure Call, =,C6. C"nd apelul unei functii dintr(un server este pe aceeasi masin, ma%oritatea operatiilor costisitoare s"nt pur si simplu evitate. /in pcate, nici at"ta nu este suficient pentru a atin&e performanta necesar. -at alte dou trucuri care s"nt folosite cu succes "n cazul NT, pentru servere locale. Memoria "arta0at /ac se elimin operatiile care transform datele 5mars#allin&6, atunci cel mai mare cost nu este dat nici de apelul de sistem, nici de comutarea proceselor, ci de copierea ar&umentelor mari. Goarte adesea serverele de fisiere s"nt implementate folosind .,CN operatii tipice vor transfera cantitti mari de date dinFspre fisier. Copierea datelor din client "n nucleu si apoi "n server pentru un write#$ 5sau invers la citirea unui fisier6 este o risip ma%or 5over#ead6 fr nici un beneficiu real. ,roiectantii lui Windows NT au folosit un mod special de transmitere a datelor "ntre un client si un server, care foloseste mecanismul de memorie virtual oferit de nucleu. +stfel, clientul aloc o zon de memorie parta%at 5pa&ini din .+M care s"nt vizibile "n mai multe spatii virtuale6 si trimite server(ului doar o descriere a zonei parta%ate. /e pild, pentru un write#$ clientul aloc zona 5printr(un apel special de sistem6, scrie datele "n zon, face un =,C write#$ la server, d"nd descrierea zonei

parta%ate. *erverul poate accesa acum direct memoria comun cu clientul. Nici un octet nu a fost mutat "n bufferele din nucleu si "napoiS *in&ura operatie este modificarea tabelelor de translatare a adreselor pentru a face zona vizibil si "n server. Wona parta%at este fcut vizibil "n spatiul server(ului "n timp ce serverul execut apelul, dup care devine din nou invizibil pentru server. +ceeasi te#nolo&ie, a memoriei parta%ate, este folosit si "n anumite implementri ale serverelor de ferestre < Windows, "n care clientii locali pot da direct zone de memorie, si nu continutul lor. !realocarea resurselor +mintiti(v, din sectiunea dedicat serviciilor oferite de servere, cum functioneaz un server "n NT; face 8puiH 5t#read(uri6 pentru fiecare nou cerere, care mor dup executia cererii. +ceast creare de t#read(uri pentru fiecare serviciu este de asemenea o surs important de ineficient. /e aceea, Windows NT mai "ncalc "nc odat re&ulile bunelor maniere si face o optimizare special. ,roiectantii spun c aceast optimizare este at"t de ur"t "nc"t nici nu este accesibil utilizatorului obisnuitN ea este folosit numai "ntre serverele de emulare si modulul &rafic. ,e scurt, "ntre un client foarte activ si un server se stabileste o cale extrem de rapid de comunicare la cererea clientului. +stfel, server(ul aloc un t#read special pentru acel client, care va executa numai cererile acestui client. Mai exist o zon parta%at alocat permanent pentru uzul celor doi, si o perec#e de 8evenimenteH 5event pair6. ,erec#ea de evenimente este de fapt un "ntreruptor prin care clientul si t#read(ul alocat din server "si semnaleaz reciproc 5mai exact "i semnaleaz planificatorului din nucleu6 c"nd au nevoie de serviciile celuilalt. +cest mecanism simplific multe operatii; t#read(ul nu mai este creatFdistrus, tabela de pa&ini pentru memoria parta%at nu mai este modificat 5pentru c zona parta%at va fi folosit pentru totdeauna de dou t#read(uri fixate6, planificatorul 5sc#eduler(ul6

nu mai are de fcut nici o decizie de ale&ere, pentru c va rula server(ul "n cuanta de timp neconsumat a client(ului.
Conclu1ii

Microsoft pare s fi fcut un efort substantial la constructia noii versiuni de Windows NT, pentru a pre&ti o lovitur decisiv concurentilor si 5"n principal 9nix(uri6. *i, dup cum se pare acum, btlia se va da "n principal pe dou c$mpuri; bazele de date si -nternetul. /ac tot ceea ce si(a propus Microsoft va fi rezolvat cu adevrat, Windows NT va deveni un concurent serios al serverelor 9nix care stp$nesc "nc "n marile companii.

www.e.eferate.ro (Cea mai buna inspiratie

S-ar putea să vă placă și