Managementul Resurselor Hardware Intr O Retea de Calculatoare
„Învățătura este o comoară care își urmează stăpânul pretutindeni.”
Proverb popular
DECLARAȚIE DE ORIGINALITATE
Subsemnatul FLORIN – SORIN PUNCEA, student la specializarea CALCULATOARE ROMÂNĂ din cadrul Facultății de Automatică, Calculatoare și Electronică a Universității din Craiova, certific prin prezenta că am luat la cunoștință de cele prezentate mai jos și că îmi asum, în acest context, originalitatea lucrării mele de licență:
cu titlul MANAGEMENTUL RESURSELOR HARDWARE ÎNTR-O REȚEA DE CALCULATOARE,
coordonată de CONF. DR. ING. DAN MANCAȘ,
prezentată în sesiunea SEPTEMBRIE 2015.
La elaborarea lucrării de licență, se consideră plagiat una dintre următoarele acțiuni:
reproducerea exactă a cuvintelor unui alt autor, dintr-o altă lucrare, în limba română sau prin traducere dintr-o altă limbă, dacă se omit ghilimele și referința precisă,
redarea cu alte cuvinte, reformularea prin cuvinte proprii sau rezumarea ideilor din alte lucrări, dacă nu se indică sursa bibliografică,
prezentarea unor date experimentale obținute sau a unor aplicații realizate de alți autori fără menționarea corectă a acestor surse,
însușirea totală sau parțială a unei lucrări în care regulile de mai sus sunt respectate, dar care are alt autor.
Pentru evitarea acestor situații neplăcute se recomandă:
plasarea între ghilimele a citatelor directe și indicarea referinței într-o listă corespunzătoare la sfărșitul lucrării,
indicarea în text a reformulării unei idei, opinii sau teorii și corespunzător în lista de referințe a sursei originale de la care s-a făcut preluarea,
precizarea sursei de la care s-au preluat date experimentale, descrieri tehnice, figuri, imagini, statistici, tabele et caetera,
precizarea referințelor poate fi omisă dacă se folosesc informații sau teorii arhicunoscute, a căror paternitate este unanim cunoscută și acceptată.
Data, Semnătura candidatului,
PROIECT DE DIPLOMĂ
REFERATUL CONDUCĂTORULUI ȘTIINȚIFIC
În urma analizei lucrării candidatului au fost constatate următoarele:
În concluzie, se propune:
Data, Semnătura conducătorului științific,
CUPRINS
Capitolul 1 – Introducere
1.Introducere
Rețelele de calculatoare și-au inceput viața prin anii 1970 atunci când inginerii de la institutele de cercetare militară din SUA au început să-și interconecteze calculatoarele folosind tehnologia telecomunicațiilor. Prima rețea astfel creată sa numit ”Arpanet” . Această rețea ”dirija” calculatoarele conectate printr-un calculator principal numit ”dirijor”. În timp rețeaua ”Arpanet” sa extins atât de mult încât astăzi poartă numele de ”Internet”
Evoluția rețelelor a adus cu sine o redefinire a naturii și limitelor unui calculator. În cuvintele lui John Gage și Bill Joy — „rețeaua este calculatorul“. Sistemele de operare și aplicațiile computerelor s-au modificat, incluzând acum capacitatea de a defini și accesa resurse de pe alte calculatoare din rețea (fie programe și informații, fie dispozitive conectate la ele), ca extensii ale resurselor locale.
Inițial aceste facilități erau disponibile numai celor care lucrau în medii de înaltă tehnologie, însă din anii 1990, odată cu răspândirea aplicațiilor ca de exemplu e-mail sau World Wide Web, și cu dezvoltarea tehnologiilor de conectare în rețea ieftine și rapide precum Ethernet sau ADSL, rețelele de calculatoare au pătruns practic în toate domeniile vieții.
Aplicația pe care o voi prezenta este în strânsă legătură cu o rețea de calculatoare, aplicația fiind rulată într-o rețea locală cu/fără conexiune la internet. Ideea este următoarea: Un program în C++ cu interfață grafică comunică cu ”agentul” instalat în rețeaua de calculatoare cu ajutorul unui server creat în C++. Acest agent creat tot în C++ obține informații și detalii de la calculatorul pe care este instalat (hard-disk, ram, procesor , etc.) și transmite programului principal. Mai multe detalii și pașii pe care urmează sa-i prezint, în capitolele care urmează.
Capitolul 2 – Rețele de calculatoare
2.1 Ce este o rețea de calculatoare
O rețea de calculatoare sau o rețea de date este o rețea de telecomunicații care permite calculatoarelor să interschimbe date. În rețelistică, calculatoarele schimbă date între ele accesând link-uri (conexiuni de date). Conexiunile între noduri sunt stabilite fie prin cablu, fie prin wireless. Cea mai cunoscută astfel de rețea se numește Internet.
Dispozitivele de rețea care provin, se întorc și termină datele se numesc noduri de rețea. Nodurile pot include gazde ca: calculatoarele personale, telefoane, servere, la fel de bine și aparatură de rețelistică. Două astfel de dispozitive se spune că sunt în rețea atunci când unul din dispozitiv reușește să schimbe informații cu celalalt dispozitiv, chiar daca au sau nu conexiune directă.
Rețelele de calculatoare diferă în funcție de modalitatea de transmitere media folosită să care semnalul, protocoalele de comunicație pentru a organiza traficul pe rețea, dimensiunea rețelei, topologia. În majoritatea cazurilor protocoalele de comunicație.
2.2. Clasificare după extindere
Rețelele de calculatoare se împart după extinderea lor în următoarele tipuri: LAN, MAN, WAN și, ceva mai nou, PAN. Rețelele relativ mici, de exemplu cu cel mult câteva sute de calculatoare în aceeași clădire legate între ele direct, se numesc Local Area Network (LAN). O rețea de tip LAN dar fără fir (prin unde radio) se numește WLAN (Wireless LAN). Rețele de mare întindere geografică, de exemplu între 2 orașe, pe o țară, un continent sau chiar pe întreaga lume, se numesc Wide Area Network (WAN). Rețelele de tip WAN au fost inițial foarte costisitoare. Numai companiile mari își puteau permite un WAN particular. La ora actuală însă, cele mai multe conexiuni de tip WAN folosesc ca mijloc de comunicație Internetul – acesta este universal și public, deci nu foarte controlabil de către un utilizator, în schimb însă foarte convenabil ca preț. În sfârșit, PAN înseamnă Personal Area Network – o rețea de foarte mică întindere, de cel mult câțiva metri, constând din aparatele interconectabile din apropierea unei persoane, cum ar fi o imprimantă sau un scanner, sau chiar aparatele pe care o persoană le poartă cu sine, ca de exemplu un telefon mobil sau un smartphone, un player MP3 sau un aparat de navigație GPS portabil.
2.2.1 Rețele personale (Personal Area Network)
Rețelele personale permit dispozitivelor să comunice în aria unei persoane. Un exemplu comun este o rețea wireless ce conectează un calculator cu perifericele sale. Bluethooth-ul este o rețea wireless de arie mică ce conectează componente fără fire. În formele cele mai simple, rețelele Bluetooth folosesc o paradigmă stăpân-sclav, în care unitatea sistemului (PC-ul) este de obicei stăpânul, comunicând cu sclavii (exemplu mouse sau tastatura). Stăpânul le comunică scavilor ce adrese să folosească, când si cât le este permis să transmită, ce frecvențe să folosească și așa mai departe. PANs pot fi de asemenea construite cu alte tehnologii ce transmit pe arii mici, cum ar fi RFID pe carduri smart si librării de cărți..
2.2.2 Rețele locale (Local Area Network)
LANs (Local Area Networks) sunt rețele deținute privat ce operează într-o și aproape de o singură clădire precum o casă sau un birou. LANs sunt des folosite pentru a conecta computere personale și electronice de consum și le permit acestora să se împartă resurse precum imprimante și să schimbe informații. Când LANs sunt folosite de companii, ele se numesc rețele enterprise.
LAN-urile wireless sunt foarte populare, în special în case, clădiri mai vechi de birouri, cafenele și alte locații unde este mult prea dificil de instalat cabluri. În aceste sisteme, fiecare computer are un modem radio și o antenă folosite pentru a comunica cu alte computere. În majoritatea cazurilor, fiecare computer comunică cu un dispozitiv denumit AP (Punct de Acces), router wireless sau stație de bază. AP-ul schimbă pachete între computerele wireless, precum și între fiecare computer și Internet.
Există un standard pentru LAN-uri wireless numit IEEE 802.11, cunoscut drept WiFi, ce a devenit vast cunoscut.
Topologia multor LAN-uri cu fir este construită din legaturi punct-la-punct. IEEE 802.3, cunoscut drept Ethernet, este de departe cel mai comun tip de LAN cu fir. Fiecare computer vorbește protocolul Ethernet și se conectează la o cutie numită switch cu o legatură punct-la-punct. Fiecare switch are mai multe porturi, iar fiecare port se poate conecta la un computer. Scopul switch-ului este de a schimba pachete între computerele atașate la el, utilizând adresa din fiecare pachet pentru a determina computerul caruia îi va trimite pachetul.
2.2.3 Rețea academică (Campus Area Network)
Un Campus Area Network (CAN) este o rețea de LAN-uri interconectate, asemănatoare cu cea de tip MAN, dar ea se extinde pe o zonă geografică limitată, de exemplu a unei universități.
În cazul unei universități o rețea CAN poate face legătura între diferite clădiri ale campusului: departamentele academice, biblioteca universitară, căminul studențesc. CAN este ca extindere în general mai mare decât rețelele locale LAN dar mai mic decât WAN. Rețelele CAN au fost create cu scopul de a facilita studenților accesul liber la rețeaua Internet și la resursele universității.
2.2.4 Rețea metropolitană (Metropolitan Area Network)
MANs (Metropolitan Area Networks) acoperă un oraș. Cele mai cunoscute exemple de MAN-uri sunt rețelele de televiziune prin cablu disponibile în multe orase. Aceste sisteme s-au dezvoltat din sistemele cu antenă utilizare anterior cu recepție slabă.
Când internetul a început să fie folosit în masă, operatorii de televiziune prin cablu au început să înțeleagă că aducând unele modificari la sistem, pot furniza serviciu de internet pe două căi către părțile nefolosite din spectru.
2.2.5 Rețea de arie largă (Wide Area Network)
WANs (Wide Area Networks) cuprind zone geografice vaste, precum țări sau continente. O WAN poate fi o rețea ce conectează birouri în Perth, Melbourne și Brisbane. Fiecare din aceste birouri poate conține computere ce au scopul de a rula aplicații; urmând tradiția, putem numi aceste mașinării gazde. Restul rețelei ce conectează aceste gazde se poate numi subrețeaua de comunicații sau doar subrețea pe scurt. Scopul subrețelei este de a transporta mesaje de la gazdă la gazdă, la fel cum sistemul de telefonie transmite cuvintele de la vorbitor la cel care ascultă.
În majoritatea WAN-urilor, subrețeaua este constituită din două componente distincte: linii de transmisie și elemente de switch. Liniile de transmisie muta părți între mașinării. Pot fi facute din fire de cupru, fibră optică sau chiar legături radio. Majoritatea companiilor nu au linii de transmisie, așa ca împrumută liniile de la o companie de telecomunicații. Elementele de tip switch sunt computere specializate ce conectează două sau mai multe linii. Când datele sosesc, elementele switch trebuie sa aleagă o linie pe care să le expedieze. Numele de router este cel mai des folosit pentru switch-uri.
Aici termenul de subrețea înseamnă o colecție de rute și linii de comunicație.
Router-ele pot conecta diferite tipuri de tehnologii, precum switch Ethernet și link-uri de tip SONEt. În acest fel se creează rețele mai mari din altele mici. În ceea ce privește subrețeaua, face același lucru.
Unele WAN-uri pot, în loc să închirieze linii de transmisie dedicate, să decidă utilizarea internetului. Acest lucru permite conexiunilor să fie făcute între birouri ca legaturi virtuale, folosind capacitatea de substrat a internetului. Acest aranjament este numit VPN (rețea virtuală privată). În comparație cu aranjamentul dedicat, un VPN are avantajul virtualizării, furnizând o reutilizare flexibilă a resurselor. VPN-urile au dezavantajul obișnuit al virtualizării, o lipsă a controlului asupra resurselor de substrat. Cu o linie dedicată, capacitatea este clară. Cu un VPN, consumul poate varia in funcție de serviciul de internet.
O alta problemă este legată de faptul ca subrețeaua poate fi rulat de altă companie, cunoscută drept furnizor de servicii de rețea. Operatorul se va conecta și la alte rețele ce fac parte din internet, ceea ce face din operatorul subrețelei un ISP (furnizor de servicii de internet).
2.2.6 InternetWorks
O colecție de rețele interconectate este numită Internetwork sau Internet. Acești termeni se referă la rețele interconectate într-un sens generic, în contrast cu internetul de nivel mondial.
Subrețelele, rețelele si internetworks sunt des confundate. Termenul de subrețea are cel mai mult sens in contextul unei rețele de arie vastă, unde se referă la o colecție de routere și linii de comunicație. O rețea este formată din combinarea subrețelei și a gazdelor sale.
O internetwork conectează rețele distincte. Conectând un LAN și un WAN sau două LAN-uri este modul obișnuit prin care se formează o internetwork.
Pentru a detalia, se poate discuta despre modul cum doua retele diferite pot fi conectate. Numele general al unei masinarii care face o conexiune intre doua sau mai multe retele si furnizeaza traducerea necesara, atat in termeni de software cat si de hardware, este de gateway. Gateway-urile sunt distinse prin stratul la care opereaza in ierarhia protocolului.
Avand in vedere ca beneficiul formarii unui internet este conectarea computerelor peste retele, nu se vrea folosirea unui gateway de nivel prea scazut, intrucat ar fi imposibila crearea conexiunilor intre diferite tipuri de retele. Nu se vrea nici folosirea unui gateway de nivel prea ridicat, caci conexiunea ar functiona doar pentru anumite aplicatii. Nivelul din mijloc este cel potrivit si se numeste stratul retelei, iar un router este un gateway care schimba pachete in stratul retelei. Astfel se poate depista un internet prin gasirea unei retele care are routere.
2.3 Echipamente pentru realizarea rețelelor de calculatoare
Pentru realizarea rețelelor de calculatoare sunt necesare diferite echipamente și dotări cum ar fi: o placă de rețea, repeater, ethernet hub, switch sau ruter. În cadrul aplicației am avut nevoie doar de o placă de rețea și un switch, conectând mai multe calculatoare între ele și obținând Local Area Connection (LAN).
2.3.1 Placă de interfață cu rețeaua (Network Interface Card, NIC)
Un controler de interfață pentru rețea (placă de rețea) este o componentă a calculatorului care conectează calculatorul la o rețea de calculatoare.
Plăcile de rețea mai vechi erau des implementate pe plăci de extensie care se băgau în calculator. Costul redus și ubicuitatea standardelor Ethernet fac ca cele mai noi calculatoare au o placă de rețea incorporată pe placa de bază.
Plăcile de rețea pentru modemuri oferă caracteristici avansate cum ar fi întreruperea sau interfața DMA pentru procesoarele gazdei, suport multiplu pentru primire și transmitere de întrebări, partiționat în multiple interfețe logice, și un controler de procesare a traficului cum este motorul de încărcare TCP.
2.3.2 Repeater
În sistemul de comunicație digital, un repeater este un dispozitiv ce primește un semnal digital pe un mediu electromagnetic sau optic de transmisie și regenerează semnalul de-a lungul mediului. În mediul electromagnetic, repeaterii depășesc atenuare cauzată de spațiul liber, câmp eletromagnetic sau pierdere de cablu. O serie de repeateri fac posibilă extensia unui semnal pe o distanță. Repeaterii înlătură zgomotul nedorit atunci când se apropie un semnal. Spre deosebire de un semnal analog, semnalul digital original, chiar dacă e slab sau împrăștiat poate fi clar perceput și refolosit. Cu transmisie analogă, semnalele se reîntăresc cu amplificatori care din păcate amplifică și zgomotul odată cu informația.
Datorită faptului că semnalul digital depinde de prezența sau absența voltajului, tind să se împrăștie mai repede decât semnalul analog și are nevoie de repetări dese.
Într-un sistem de comunicație wireless, un repeater consistă dintr-un receptor radio, un amplificator, un transmițător, un izolator și două antene. Transmițătorul produce semnal pe o frecvență care diferă de semnal recepționat. Izolatorul oferă protecție în plus.
2.3.3 Ethernet Hub
Un hub de internet este un dispozitiv pentru conectarea multiplă la Ethernet a dispozitivelor și le face să acționeze ca un singur segment de rețea. Are mai multe porturi input/output în care un semnal este introdus la intrarea oricărui port apare la ieșirea fiecărui port mai puțin celui original. Un hub funcționează la stratul fizic din modelul OSI. Hub-urile repeater participă în detectarea coliziunilor, transmițând un semnal de bruiaj către toate porturile daca detectează coliziune. În plus la porturile standard 8P8C (”RJ45”), unele hub-uri pot veni și cu un conector BNC și/sau AUI (Attachment Unit Interface) pentru a permite conexiuni moștenirea segmentelor de rețea 10BASE2 sau 10BASE5.
Hub-urile sunt în mare parte învechite, fiind înlocuite de switch-uri de rețea cu excepția instalațiilor foarte vechi sau aplicațiilor specializate.
2.3.4 Switch
Într-o rețea de telecomunicații, un switch este un dispozitiv care canalizează datele pe care le primește de la oricare din multele porturi de intrare către o un port de ieșire specific care va transporta datele la destinația dorită. În tradiționala rețea de telefonie cu circuit-switch, unul sau mai multe switch-uri sunt folosite pentru a seta o conexiune temporară dedicată sau circuit pentru un schimb între două sau mai multe părți. Pe un Ethernet LAN, un switch determină din dispozitivul fizic(MAC) adresa în fiecare mesaje ramă primit.
Într-o rețea mare bazată pe pachete cum este Internetul, un switch determină din adresa IP în fiecare pachet ce port de ieșire să folosească pentru partea următoare până la destinație. În modelul de comunicații Interconexiunea sistemelor deschis (OSI), un switch execută funcția Layer 2 sau Data-link layer. Asta înseamnă ca practic se uită la fiecare pachet și unitate de date și determină dintr-o adresă fizică (MAC address) pe ce dispozitiv o unitate de masură pentru date este intenționată și o schimbă către acel dispozitiv. Totuși, în rețele de arie largă cum este Internetul, adresa destinație necesită căutarea ei într-un tabel de routare de către un dispozitiv numit router. Câteva switch-uri de generație nouă îndeplinesc și funcții de routare (funcțiile Layer 3 sau Networ Layer în OSI) și sunt uneori numie și switch-uri IP.
2.3.5 Ruter
Un ruter este un dispozitiv de rețelistică care trimite pachete de date între calculatoarele în rețea. Ruterele îndeplinesc funcția de ”dirijare a traficului” pe Internet. Un pachet de date este de obicei trimis de la un ruter la alt ruter prin intermediul rețelelor ce constituie internetwork până ajunge la nodul destinație.
Un ruter este conectat la două sau mai multe linii de date din diferite rețele. Când un pachet de date apare într-una din linii, ruter-ul citește informații despre adresă în pachet pentru a determina destinația finală. Apoi, folosint informația în tabelul de rutare, îndrumă pachetul la următoarea rețea în cale.
Cele mai familiare tipuri de rutere sunt cele pentru acasă sau pentru birou care doar strecoară datele cum sunt pagini web, email, IM, și videoclipuri între calculatoarele de acasă și internet. Un exemplu de ruter ar fi cablul furnizorului sau ruterul DSL, care se conectează la Internet prin ISP. Ruterele mai sofisticate sunt ruterele enterprise, care conectează firme mari sau rețelele ISP până la cele mai puternice rutere nucleu care transmit datele la viteze foarte mari pe lângă liniile de fibra optică din spatele Internetului.
Capitolul 3 – Resursele Hardware ale calculatoarelor
Un calculator complet funcțional conține pe lângă monitor, tastatura și mouse, o unitate principală care este formată din diverse componente hardware, unele vitale fără de care calculatorul nu ar funcționa în parametrii normali, altele opționale. Componentele vitale sunt: placa de bază, sursa de putere, procesorul, memoria RAM, hard-disk-ul, placă video. Cele opționale sunt: unitatea optica (DVD-ROM), placă de sunet, TV tuner, etc.
În acest capitol o să prezint resursele calculatoarelor, limitându-mă doar la resursele hardware necesare aplicației dezvoltate de mine și anume: procesorul, memoria RAM, Hard-Disk-ul.
3.1 Procesorul
Procesorul sau U.C.P (unitate centrală de procesare – în engleză C.P.U – central processing unit) este creierul calculatorului. Este cea mai importantă componentă din calculator. El ”gândește” tot.
Frecvența (viteza) procesorului se măsoară în Mhz (megahertzi) sau Ghz (gigahertzi). Cu cât frecvența mai mare, cu atât mai bine, deoarece cu atât prelucrează datele mai repede. Un procesor din prezent are frecvența de până la 4 Ghz (4000 Mhz)
Procesorul primește biți (0-urile și 1-urile) care apar fără sens de pe hard disk sau din memoria RAM și le trimite înapoi pe ecran sau pe oricare mediu de stocare după ce le-a aranjat într-o formă ordonată pe care o înțelegem, formă care este dictată de instrucțiunile care au fost scrise de cine a făcut programul. Datele sunt luate din hard-disk sau alte medii de stocare și sunt trimise în memoria RAM de unde le procesează. Apoi trimite rezultatul pe ecran prin placa video, sau sunetul prin placa audio. Procesorul ”gândește” totul din memoria RAM, deoarece este aproximativ de 10 000 de ori mai rapidă decât hard-disk-ul, în cazul în care am putea pune hard-disk-ul în considerare ca spațiu de procesare. Oricum, calculatoarele nu sunt construite să poată funcționa făra memoria RAM.
Procesorul primește instrucțiunile de la programele din memrie și le procesează într-o cantitate de milioane pe secundă, instrucțiuni care au fost scrise de programator linie cu linie. O instrucțiune are nevoie de un număr fix de cicluri, adică de hertzi. Bineînțeles, depinde și de câte instrucțiuni îi dă programul. Dacă e un program simplu, nu are atâtea instrucțiuni de procesat.
Memoria Cache. Procesorul are o memorie internă de rezervă, care se numește ”cache”. Cache este ca un sertar. Există L1 cache, L2 cache și mai nou L3 cache, care înseamnă Level 1, Level 2 și Level 3 cache ( procesoarele cu mai multe niveluri de cache se numesc procesoare multi-level cache). Acest cache, este o memorie RAM internă în procesor, pentru a nu cere nici măcar din memoria RAM principală tot timpul fișierele cu care se lucrează frecvent. Memoria cache este mult mai rapidă decât memoria RAM normală, (DRAM), dar este mult mai scumpă și de aceea vine în cantități foarte mici. De exemplu, dacă deschizi frecvent un fișier, acesta este adăugat în memoria cache a procesorului, astfel încât nu mai este nevoie să-l ia de fiecare dată din RAM-ul principal (sau de pe hard), pentru că il are acolo. Ca data viitoare sa-l acceseze mai rapid.
Cu cât există mai multă memorie cache cu atât mai bine pentru că cu atât mai multe fișiere pot fi indexate în cache, și atunci lucrează mai repede. Există cache de 64 KB, 128 KB, 512 KB .. 2MB, chiar și până la 12 MB. În cache datele sunt păstrate temporar. Se șterg în funcție de cerințele procesorului și de dimensiunile fișierelor.
În interiorul procesorului sunt foarte multe sectoare, fiecare având rolul sau. Un sector pentru aritmetică, unul pentru decodare de instrucțiuni, unul care controlează viteza, unul care conține regiștrii ( cea mai mică memorie posibilă din calculator), unul care ocupă cu grafica și mai nou Northbridge-ul. Toate acestea sunt microscopice.
Istoria procesorului. Primul procesor a fost inventat de Intel în 1971, se numea Intel 4004 și conținea 6 tranzistori ( în comparație cu procesoarele actuale care au sute de milioane de tranzistori și rula la o frecvență de 740 KHz. Acesta a fost urmat de Intel 8008 în 1972, rula la o frecvență maximă de 800 KHz, iar apoi de Intel 8086 în 1978 ( procesor al cărui set de instrucțiuni este moștenit până acum de procesoarele moderne, x86). În 1989 apare procesorul Intel 80486 (486), iar în 1993 apare primul procesor Pentium, Pentium 1.
3.2 Memoria RAM
Memoria cu acces aleator este o formă de stocare de date într-un computer. Un dispozitiv ce folosește această memorie permite datelor să fie accesate (scrise sau citite) în aproape același timp indiferent de locația fizică a datelor din interiorul memoriei. În contrast, cu alte tipuri de stocare de date cum ar fi hard disk-ul, CD-RWs, DVD-RWs și alte tipuri vechi de memorie, timpul necesar citirii și scrierii datelor diferă semnificativ depinzând de locația lor fizică de pe mediul de înregistrare, din cauza limitărilor mecanice cum ar fi viteza de rotație a discului.
Astăzi, memoria cu acces aleator este construită din circuite integrate. RAM este de obicei asociată cu tipul volatil de memorie ( cum sunt modulele de memorie DRAM), unde informația stocată este pierdută dacă este scoasă din priză, deși multe eforturi sau depus pentru a dezvolta o memorie ne volatilă RAM. Alte tipuri de memorie ne volatilă există și permit accesul aleator pentru operații de citire, dar ori nu permit operații de scriere ori au limitări pe ele. Asta include cele mai multe tipuri de ROM și un tip de memorie flash numită NOR-Flash. Chip-urile RAM cu circuite integrate au apărut pe piață la sfârșitul anilor 1960, cu primul chip comerciabil disponibil DRAM, Intel 1103, introdus în Octombrie 1970.
Tipuri de RAM
Cele două tipuri principale de memorie RAM modernă sunt RAM-ul static (SRAM) și RAM-ul dinamic (DRAM). În SRAM, un bit de date este stocat folosind o celulă de memorie cu șase tranzistori. Acest tip de memorie este mai scumpă de produs, dar este în general mai rapidă și necesită mai puțină energie decât DRAM și, în computerele moderne, este de obicei folosită ca și memorie cache pentru CPU. DRAM stochează un bit de date folosind un tranzistor și o pereche de condensatori care împreună fac o celulă de memorie DRAM. Condensatorul rezistă la curent înalt și curent slab (1 și 0 respectiv ) și tranzistorul se comportă ca un switch care permite controlul circuitelor de pe chip sa citească starea de încărcare a condensatorului sau să o schimbe. Deoarece această formă de memorie este mai ieftină de produs fată de RAM-ul static,
3.3 Hard-disk-ul
Discul dur (sau fix; în engleza hard disk) este un dispozitiv electronic-mecanic pentru stocarea sau memorarea nevolatilă (permanentă) a datelor. Utilizatorul normal nu poate sau nu are voie să despartă discul de circuitele de comandă corespunzătoare, vezi imaginea alăturată; împreună ele formează așa-numita „unitate fixă”, „unitate de disc fix” sau, prescurtat, HDD (de la hard disk drive).
Stocarea datelor se face pe o suprafață magnetică dispusă pe platane rotunde metalice rigide (dure). În general discurile dure sunt utilizate ca suport de stocare extern principal pentru servere și calculatoare personale, dar și pentru anumite aparate electronice (playere și recordere DVD, playere MP3). Dacă la începuturi capacitatea unui disc dur nu depășea 20 megaocteți (MO) = 20 megabait (MB), astăzi (2009) un disc dur obișnuit de 2 1/2 țoli poate depăși 1 teraoctet (TO) = 1 terabait (TB).
Începând din 2009 sistemul de operare Windows 7 al companiei Microsoft a pus la dispoziție și așa numite discuri dure virtuale, în engleză "Virtual Hard Disk" (VHD). Acestea se bazează pe fișiere reale (de pe un disc dur real) de mărime arbitrară, dar de tip special, cu extensia .vhd. Pentru a le accesa în Windows se folosește mai întâi programul utilitar DiskPart, cu ajutorul căruia discul dur virtual trebuie "selectat" și apoi "atașat" ("montat"). Abia după aceasta se poate initializa și utiliza ca și când ar fi un disc dur real. Aceasta include și posibilitatea de a instala și un alt sistem de operare pe același disc dur (real), identic cu, sau chiar diferit de primul sistem de operare, sau chiar și mai multe sisteme de operare, dacă se definesc VHD-uri multiple pe discul sau discurile dure reale conectate.
Prin contrast, discurile așa-numite „optice”, ca de exemplu cele de tip CD, DVD și Blu-ray, folosesc pentru memorare procedee optice (nemagnetice), care asigură capacități de ordinul a până la 50 GB (gigabait) pe disc. Uneori însă se mai utilizează și dischete având un singur platan magnetic flexibil, numite în engleză floppy disk; unitatea de scriere/citire corespunzătoare se numește Floppy Disk Drive (FDD). O astfel de dischetă stochează numai cel mult 2,88 MB.
Disc dur de tip Samsung HD753LJ, cu interfață de tip SATA
O alternativă la folosirea discurilor în mișcare pentru memorarea datelor au devenit memoriile pur electronice de tip Solid-state drive (SSD), care neavând piese în mișcare sunt mult mai rapide, dar și mai scumpe. Ele simulează caracteristicile discurilor dure, reacționând identic la comenzi și utilizând uneori chiar aceleași interfețe, nemodificate (semnale electrice, conectoare, cabluri, etc.). Una din formele de implementare sunt cardurile de memorie de ex. de tip CF, MD, MMC, SD,SDHC, microSDHC, SM, USB stick și altele. Capacitatea de memorare enormă (până la 64 GB pe bucată!) și gradul avansat de miniaturizare le fac foarte promițătoare pentru aparatele moderne de tip smartphone (telefon inteligent) ș.a. Prin comparație, pentru întregul Windows 7 sunt suficienți doar circa 15 GB.
Istoric
Discurile dure au fost introduse pentru prima oară ca unități de stocare a datelor ȋn 1956, pentru calculatoarele IBM. Primul hard disk IBM avea o capacitate de 5 MB și se numea 305 RAMAC (Random Access Method of Accounting and Control). Erau grele și aveau dimensiuni mari, cât o roată de motoretă sau chiar și mai mari. Inițial au fost dezvoltate pentru a fi utilizate ca medii de stocare pentru calculatoare de uz general.
În anii 1990 necesitatea unui dispozitiv de stocare de mare capacitate dar și încredere, independent de un dispozitiv special, a condus la introducerea sistemelor integrate, cum ar fi sistemele RAID, sisteme Network Attached Storage (NAS) – sisteme atașabile de stocare pentru rețea – precum și Storage Area Network (SAN) – siteme de stocare pentru rețea, sisteme care asigură eficiență, precum și un acces fiabil la volume mari de date. Ținând cont de cererile de consum, ȋn secolul al XXI-lea utilizarea HDD-urilor s-a extins și ȋn dispozitive cum ar fi camere video, telefoane mobile (de exemplu Nokia N91), playere („aparate redătoare”) audio digitale, playere video digitale, video-înregistratoare digitale, Personal Digital Assistants (PDA-uri) și console de jocuri video.
Construcție
Discul dur este format de obicei din:
o placă electronică de control logic,
un număr de platane cu suprafață magnetizabilă (de obicei 2 sau 3), împărțite în piste și sectoare,
capete magnetice de citire/scriere (engl. read/write heads, R/W heads), de o parte și de alta a platanelor, legate printr-un braț metalic comandat electromagnetic numit în general actuator
un sistem electromecanic de frânare și blocare a capetelor pe pista de stop (engl. landing zone), atunci când discul e oprit
un motor electric trifazic extraplat, care asigură rotirea cu viteză constantă a platanelor.
Funcționare
Ȋnregistrarea datelor pe hard disk-uri se face prin magnetizarea unui disc feromagnetic denumit platan. Datele ȋnregistrate pe respectivul platan, prin magnetizare, sunt scrise ȋn sistem binar, adică se stochează o ȋnșiruire de 0 și 1. HDD-urile sunt construite dintr-un ax care posedă unul sau mai multe discuri circulare, denumite platane și unul sau mai multe capuri de citire/scriere. Ȋn principiu, platanele sunt fabricate dintr-un material magnetic, de obicei din aliaj de aluminiu sau sticlă și sunt acoperite cu un strat subțire de material magnetic, de obicei 10-20 nm (nanometri) grosime și cu un strat exterior de carbon pentru protecție.
Platanele sunt ȋnvârtite la viteze foarte mari. Informația se scrie pe platan ȋn timpul rotirii acestuia de către dispozitive de citire-scriere așezate foarte aproape de suprafața magnetică (la hdd-urile noi distanța e de zeci de nanometri). Pentru fiecare suprafață a platanului există câte un singur cap de citire-scriere montat la un braț comun. Acest braț mișcă capetele de citire- scriere peste suprafețele platanelor, pe o distanță de arc de cerc (aproximativ radial), pentru a permite capetelor să acceseze aproape ȋntreaga suprafață a platanelor ȋn timp ce se rotesc. Brațul este mutat folosind un mecanism de acționare de tip bobină.
Fiecare platan are două fețe; fețele sunt divizate într-un număr de piste circulare concentrice, fiecare pistă fiind la rândul ei divizată în sectoare. Platanele sunt astfel aranjate încât pista 0 de la platanul 1 să fie situată exact deasupra pistei 0 de la platanul 2 și 3. Pentru a accesa o pistă oarecare pe unul din platane, brațul care susține capetele (actuatorul) va muta capetele spre acea pistă. Deoarece această metodă necesită doar un singur mecanism de poziționare, ea simplifică designul și coboară prețul. Totuși, pentru a accesa o singură pistă trebuiesc mutate toate capetele. De exemplu, pentru a citi date de pe pista 1 de pe platanul 1, apoi pista 50 pe platanul 3 si apoi iar pe pista 1 dar de pe al treilea platan, întregul braț cu capete trebuie mutat de doua ori. (Eventual s-ar putea și numai cu o singură mișcare, dacă pista 1 / platanul 1 și pista 1 / platanul 3 se citesc simultan, și abia apoi se sare la pista 50.) Pentru a muta un braț trebuie un timp semnificativ, mult mai mare decât timpul de transfer al datelor. Pentru a minimiza mutările actuatorului trebuie împiedicată împrăștierea datelor pe mai multe piste. O metodă de a optimiza timpul de acces este ca un grup de date care sunt accesate secvențial să fie scrise toate pe o singura pistă. Dacă datele nu încap pe o singură pistă, atunci se continuă scrierea pe un platan diferit, dar pe pista cu aceeași poziție. Prin aceasta metodă brațul nu mai trebuie să-și schimbe poziția, ci doar trebuie să fie selectat capul de citire/scriere potrivit. Selectarea capetelor se face electronic și de aceea ea este mult mai rapidă decât mișcarea fizică a brațului cu capete între piste. În total brațul nu mai execută așa multe mișcări.
Pentru a descrie multiplele platane suprapuse se mai folosește termenul de "cilindru". Un cilindru se referă la toate pistele care au același număr de pistă, dar care sunt localizate pe diferite platane.
Capitolul 4 – Serverul
4.1 Ce este un server?
Serverele ocupă un loc important în tehnologia informaticii, la fel ca și minicomputerele în trecut, care însă au fost înlocuite. Un server este o aplicație pe computer, uneori chiar un computer întreg, care operează continuu în rețeaua sa și așteaptă solicitări din partea altor calculatoare din rețea. Serverele pot fi folosite simultan și pentru alte scopuri, dar când nevoile o cer, ele pot fi rezervate exclusiv pentru funcția de server. De exemplu, un calculator se poate folosi într-un birou simultan pentru două scopuri, ca stație de lucru și ca server pentru celelalte calculatoare din birou. Cuvântul server provine din cuvântul englez to serve – a servi: calculatorul server poate în principiu deservi întreaga rețea de calculatoare clienți, pentru a asigura accesul la toată paleta de forme de conectare și servicii. Deseori unul și același computer poate juca ambele roluri, și de server, și de client, în același timp. Numele de server este un alt termen pentru Host computer – computer gazdă, spre deosebire de alte elemente "inteligente" din rețea cum ar fi routerele și switch-urile.
În zilele noastre serverele se aseamănă fizic cu celelalte calculatoare uzuale, deși configurația hardware este deseori optimizată pentru funcționarea lor ca servere. Multe componente de hardware sunt identice cu cele ce le găsim într-un calculator personal. Totuși serverele rulează sisteme de operare și programe specializate care sunt foarte diferite față de cele folosite pe calculatoare personale și stațiile de lucru.
Serverele nu trebuiesc confundate cu calculatoarele de tip mainframe care centralizează informații și procesează activitățile firmelor mari. Un mainframe poate în principiu să funcționeze simultan și ca server, sau chiar ca mai multe servere virtuale, pe lângă toate celelalte activități. Multe companii mari folosesc ambele tipuri de calculatoare, anume și mainframe, și servere. Acestea din urmă sunt de obicei mici, multe și descentralizate.
Serverele deservesc resurse hardware care sunt partajate și pot uneori fi comandate de către calculatoarele-client, cum ar fi imprimante (atunci serverul se numește print server) sau sisteme de fișiere (atunci el se numește file server). Această partajare permite un acces și o securitate mai bune; ea poate reduce cheltuielile pentru dispozitivele periferice.
4.2 Istoric
Serverele au apărut în paralel cu rețelele de calculatoare. Rețelele permit calculatoarelor să comunice unul cu celalalt, iar cu cât rețeaua este mai mare apare nevoia ca un calculator să ia rolul de server care să deservească alte calculatoare (acestea interacționând eventual direct cu utilizatorii umani), care își asumă la rândul lor rolul de client.
Și după apariția serverelor rețelele s-au dezvoltat și au crescut mai departe; în schimb minicomputerele – care erau mai eficiente decât cele personale dar mai puțin eficiente decât mainframe-urile – au dispărut sau au fost "absorbite" de unele din aceste servere (au preluat rolul de server).
Apariția rețelelor cu calculatoare personale, a Internetului și răspândirea utilizatorilor acestor servicii au dat un impuls puternic dezvoltării serverelor.
4.3 Programe pentru servere
Diferența majoră între computerele personale și servere nu este partea hardware ci partea de software. Pe servere rulează sisteme de operare care sunt special proiectate pentru acestea. De asemenea ele rulează aplicații special proiectate pentru procesele dorite.
4.3.1 Sisteme de operare
Sistemul de operare Microsoft Windows este predominant în rândul computerelor personale, dar în lumea serverelor cele mai populare sistem de operare sunt FreeBSD, Sun Solaris și GNU/Linux – care derivă și sunt asemănătoare cu sistemul de operare UNIX. UNIX a fost proiectat inițial pentru microcomputere și pentru servere, care au înlocuit treptat microcomputerele. UNIX a fost o alegere logică și eficientă ca sistem de operare pentru servere.
Sistemele de operare orientate spre servere au multe proprietăți în comun, care să le facă mai compatibile între ele, cum ar fi: lipsa interfeței grafice GUI (sau existând doar o opțiune GUI); abilitatea de a reconfigura sistemul (hardware și software) în unele cazuri fără oprirea sistemului; facilități de a crea copii de siguranță (backup-uri) pentru datele importante, la intervale de timp frecvente și/sau regulate; posibilitatea de a muta date între diferite partiții sau dispozitive printr-un mod „transparent” (invizibil, nederanjant) pentru utilizator; capacități flexibile și complexe de lucru în rețea; proprietăți (daemoni în UNIX sau servicii în Windows) care fac ca execuția programelor să fie mai eficientă; sistem de securitate etanș, protecția datelor și a memoriei. De asemenea aceste sisteme de operare pentru servere, în multe cazuri interacționează cu senzori hardware, pentru a detecta anumite stări cum ar fi: supraîncălzirea, defecțiuni la microprocesor sau hard-disc, sau alte tipuri de avertizări, astfel ca operatorul uman să poată acționa pentru remedierea defecțiunilor.
Deoarece în unele cazuri cerințele serverelor sunt diametral opuse celor ale calculatoarelor personale, este foarte dificil să se proiecteze un sistem de operare care să se preteze pentru ambele medii la fel de bine; sistemele de operare pot fi croite pentru calculatoare personale, fără însă să fie ideale și pentru servere, și vice-versa.
Windows este mai puțin folosit la servere decât cea mai recentă versiune al popularului Mac OS X (acesta este bazată pe UNIX și dă acces complet utilizatorilor săi la sistemul de operare UNIX) din familia sistemelor de operare pentru calculatoare personale și unele sisteme de operare având structura de bază proprie (cum ar fi z/OS); dar majoritatea serverelor folosesc sisteme de operare, versiuni ale UNIX sau clonele acestuia. Chiar și în cazul popularului sistem de operare GNU/Linux de tip UNIX, folosit frecvent pe servere, sistemul poate fi ideal pentru servere, dar poate fi nesatisfăcător pentru calculatoarele personale.
Apariția serverelor bazate pe microprocesoare a facilitat apariția mai multor versiuni ale sistemului de operare UNIX care rulează pe microprocesoare de tip Intel x86 sau AMD, incluzând Solaris, GNU/Linux șiFreeBSD. De asemenea familia sistemelor de operare Microsoft Windows rulează pe dispozitive de tip Intel sau AMD, iar începând cu sistemul de operare Windows NT s-au încorporat anumite caracteristici care fac posibilă utilizarea acestuia pe servere.
În timp ce sistemele de operare pentru servere și cele pentru calculatoarele personale rămân distincte, în ambele cazuri îmbunătățirea performanțelor și siguranței hardware face neclară diferența dintre acestea. Doar un criteriu de bază le mai separă, producătorii și distribuitorii. În zilele noastre, unele sisteme de operare pentru calculatoare personale sau servere partajează același cod sursă și diferă doar la unii termeni de configurare.
4.3.2 Aplicații pentru servere
Aplicațiile pentru servere sunt specifice, realizate pentru a executa numai operații de tip server, la fel ca și aplicațiile pentru calculatoarele personale sau de tip mainframe, care sunt proiectate special pentru mediile respective.
Majoritatea aplicațiilor server se remarcă prin faptul că sunt total neinteractive; ele nu afișează informații pe ecran și nici nu așteaptă comenzi de la utilizator. De fapt ele lucrează discret cu serverul și conlucrează doar cu stațiile de lucru (clienții) care sunt legate la server. Aceste tipuri de aplicații se numesc daemoni în terminologia UNIX, și servicii în terminologia Windows.
Aplicațiile server pornesc, de obicei, în momentul pornirii serverului, continuând să ruleze până când serverul este oprit. Un server care primește numai cereri folosește aceleași tipuri de aplicații tot timpul, și nu poate confirma calculatorului care a emis cererea că aceasta a fost îndeplinită. Unele aplicații server din anumite sisteme de servere pornesc doar în momentul când primesc o cerere de la un client, iar după ce au satisfăcu-o se opresc din nou.
4.4 Servere pe Internet
Aproape toată structura Internetului se bazează pe modelul de client-server. Multe milioane de servere din toată lumea sunt conectate la Internet și rulează continuu. Majoritatea serviciilor oferite pe Internet rulează pe servere: Web; Domain Name System; e-mail sau poștă electronică; FTP sau transfer de fișiere; instant messaging sau mesagerie instantă; fișiere audio și video; jocuri ș.a.m.d. Pentru orice acțiune care este inițiată de un utilizator al Internetului, unul sau mai multe servere interacționează cu utilizatorul precum și între ele.
4.4.1 Modelul Client – Server
Cele mai multe interprocese de comunicație folosesc modelul client – server. Acești termeni se refera la cele două procese ce vor comunica între ele. Unul din cele două procese, clientul, se conectează la celălalt process, serverul, de obicei pentru a cere o informative. Cel mai bun exemplu este când o persoană apelează altă persoană. De ținut minte este că clientul trebuie să știe de existența și de adresa serverului, dar serverul nu trebuie sa stie adresa (sau chiar existența) clientului înainte de stabilirea conexiunii. Odată cu stabiliriea conexiunii, ambele părți pot trimite și primii informații.
Comenzile pentru stabilirea conexiunii sunt oarecum diferite față de client și server, dar ambele implică aceeași construcție a unui socket. Un socket este o parte din canalul de comunicare. Cele două procese iși stabilesc socket-urile proprii.
Pașii care implică stabilirea socket-ului pe partea de client sunt următorii:
Crearea socket-ului cu comanda socket();
Conectarea socket-ului la adresa server-ului folosind comanda connect ();
Trimiterea și primirea de date. Sunt o mulțime de căi pentru a face asta, însă cea mai simplă este folosirea comenzii read() și write ().
Pașii care implică stabilirea socket-ului pe partea de server sunt următorii:
Crearea socket-ului cu comanda socket();
Contopirea socket-ului cu o adresă folosind comanda bind(). Pentru un socket pe partea de server pe internet, adresa consistă în numărul portului de pe computerul gazdă
4.4.1.1 Tipuri de socket-uri
Când un socket este creat, programul trebuie să specifice adresa domeniului și tipul socket-ului. Două procese pot sa comunice între ele doar dacă socket-ul lor este de același tip și are aceeași adresă de domeniu. Sunt două cele mai folosite adrese de domenii, domeniul unix, în care două procese care împărtășesc o filă de sistem comună comunică, și domeniul Internet, în care două procese care rulează pe oricare două gazde pe internet comunică. Fiecare din cele două domenii au adresă specifică. Adresa unui socket în domeniul Unix este un șir de caractere care practic este intrarea în sistemul de fișiere. Adresa unui socket în domeniul Internet constă în adresa de internet a calculatorului gazdă (orice calculator pe internet are o adresă pe 32 biți unică, de obicei numită adresa IP). Fiecare socket are nevoie de un număr de port pe acea gazdă. Porturile sunt pe 16 biți și sunt de tip unsigned integer. Numerele mici sunt rezervat în Unix pentru servicii standard. De exemplu, numărul portului pentru serverul FTP este 21. Este important ca serviciile standard sa fie la același port pe toate calculatoarele pentru ca clienții să-și știe adresele. Totuși, numerele de porturi peste 2000 sunt în general disponibile. Sunt două tipuri folosite de socket-uri, socket de tip stream și socket de tip datagram. Cele de tip stream tratează comunicațiile ca un continuu șir de caractere în timp ce socket-urile de tip datagram trebuie sa citească mesaje întregi în același timp. Fiecare folosește propriul protocol de comunicare
4.4.1.2 Funcțiile socket
Socket-urile se comportă ca niște fișiere deoarece folosesc descriptori de fișiere să se indentifice. Socket-urile se comportă atât de mult ca fișiere încât putem folosii read() și write () pentru a primii și a trimite date folosind socket-uri descriptori de fișiere. Sunt câteva funcții, special create pentru a gestiona socket-urile:
int socket (int domain, int type, int protocol)
Folosită pentru a crea un nou socket, returnează un fișier descriptor pentru socket sau -1 pe eroare. Are 3 parametrii:
domeniu: familia protocolului socket-ului care este cerut
tipul: tipul socket-ului în acea familie
protocolul
Parametrii ne permit să spunem ce tip de socket vrem (IPv4/IPv6, stream/datagram(TCP/UDP)).
familia protocolului ar trebui sa fie AF_INET sau AF_INET6
tipul protocolului pentru aceste două familii este ori SOCK_STREAM pentru TCP/IP ori SOCK_DGRAM pentru UDP/IP.
protocolul ar trebui de obicei setat la 0 pentru a indica ca protocolul default să fie folosit.
int bind(int fd, struct sockaddr *local_addr, socklen_t addr_length)
Odată ce avem socket-ul, trebuie să asociem socket-ul cu un port pe calculatorul local. Numărul portului este folosit de kernel pentru a potrivi un pachet care vine la un anumit descriptor socket al procesului. Un server va apela bind() cu adresa localhost și portul pe care va asculta pentru conexiuni.
E nevoie de descriptor de fișier (socketul stabilit anterior), un pointer către adresa unei structuri care conține detalii despre adresa cu are se leagă, valoarea INADDR_ANY este de obicei folosită pentru asta și lungimea structurii adresei. Structura particulară care trebuie folosită depinde de protocol, de aceea este depășită de către pointer. Deci, această comandă bind() o să lege socketul la adresa IP curentă pe port, portno returnează 0 la succes și -1 la eroare.
int listen(int fd, int backlog_queue_size)
Odată ce un server a fost legat de o adresă, serverul poate să execute instrucțiunea listen() pe socket. Parametrii pentru această instrucțiune sunt socket(fd) și numărul maxim de conexiuni coadă cerute până la backlog_queue_size. Returnează 0 la succes și -1 la eroare.
int accept (int fd, struct sockaddr*remote_host, socklen_t addr_length)
Acceptă o conexiune de intrare pe un socket legat. Informațiile despre adresă de la gazda de la distanță sunt scrise în structura remote_host și marimea actuală a structurii adresei este scrisă în *addr_length. Cu alte cuvinte, această funcție accept() va scrie informații despre adresa clienților care se conectează în structura adresei. Apoi, returnează un nou socket descriptor de fișier pentru conexiunile acceptate. Deci, socketul descriptor de fișier original poate fi folosit în continuare pentru acceptul de noi conexiuni în timp ce noul socket descriptor de fișiere este folosit pentru comunicarea cu clienții conectați. Această funcție returnează un nou socket descriptor de fișier pentru a identifica socketul conectat sau -1 la eroare.
int connect (int fd, struct sockaddr *remote_host, socklen_t addr_length)
Conectează un socket la o gazdă de la distanță. Aceasta este un apel de blocare. Asta pentru ca folosim un apel pentru connect(), programul nostru nu recuperează controlul până când conexiunea este stabilită sau apar erori. De exemplu, să zicem că facem un browser web, dar serverul nu răspunde. Deci, acum vrem connect() API pentru a opri reîncercarea de connectare apăsând un buton de stop. Dar asta nu se poate. Așteaptă o returnare care poate fi 0 la succes sau -1 la eroare.
int send (int fd, void *buffer, size_t n, int flags)
Trimite n biți de la *buffer la socket fd. Returnează numărul de biți trimiși sau -1 la eroare.
int receive (int fd, void *buffer, size_t n, int flags)
Primește n biți de la socket fd în *buffer. Returnează numărul de biți primiți sau -1 la eroare.
Capitolul 5 – Microsoft Visual Studio
5.1 Ce este Visual Studio?
Visual Studio este un set complet de instrumente de dezvoltare pentru generarea de aplicații ASP.NET, Servicii Web XML, aplicații desktop și aplicații mobile. Visual Basic, Visual C++, Visual C# și Visual J# toate folosesc același mediu de dezvoltare integrat (IDE) care le permite partajarea instrumentelor și facilitează crearea de soluții folosind mai multe limbaje de programare. Aceste limbaje permit să beneficieze de caracteristicile .NET Framework care oferă acces la tehnologii cheie care simplifica dezvoltarea de aplicații web ASP și XML Web Services cu Visual Web Developer.
Visual Studio folosește platforme de dezvoltare software cum ar fi Windows API, Windows Forms, Windows Presentation Foundation, Windows Store și Microsoft Silverlight. Visual Studio include și un editor de cod suportând IntelliSense (componenta completării codului). Depanatorul integrat funcționează și la nivel de sursă si la nivel de calculator. Alte componente integrate includ și editor de forme pentru crearea aplicațiilor GUI, design web, class design și schema bazei de date. Acceptă plug-in-uri care îmbunătățesc funcționalitatea la aproape toate sistemele bazate pe sursă și adaugă noi set-uri de instrumente ca editoare și aspect visual.
5.2 Arhitectura
Visual Studio nu suportă toate limbajele de programare, soluții sau unelte; în schimb, permite funcționarea codată ca VSPackage. Când este instalată, funcționalitatea este disponibilă ca un serviciu. IDE oferă trei servicii: SVsSolution, care oferă abilitatea să enumere proiecte și soluții; SVsUIShell, care oferă minimizarea și funcționalitatea UI (inclusiv file, bare de instrumente și unelte de fereastră); și SVsShell care se ocupă cu înregistrarea VSPackages. În plus IDE este responsabil pentru coordonarea și pornirea comunicațiilor între servicii. Toate editoarele, tipuri de proiecte și alte unelte sunt implementate ca VSPackages. Visual Studio folosește COM pentru a accesa VSPackages.
Suport pentru limbajele de programare este adăugat prin folosirea unui VSPackage specific numit Serviciu de limbaj. Un serviciu de limbaj definește diverse interfețe care pot fi implementate de VSPackage pentru a avea suport pentru diferite functionalități. Funcționalitățile care pot fi adăugate așa inclusiv colorarea sintaxei, completarea afirmației, ponturile de informare al parametrilor, lista de membri și marcajul erorilor pentru compilarea în fundal. Dacă interfața este implementată, funcționalitatea va fi valabilă pentru limbaj. Implementările pot refolosi codul din parser sau compilatorul pentru limbaj. Serviciile de limbaj pot fi implementate ori in cod nativ ori în cod gestionat. Pentru codul nativ, ori interfața nativă COM ori Cadrul Babel ( o parte din Visual Studio SDK) pot fi folosite. Pentru codul gestionat, MPF include amabalaj pentru scrierea gestionată a serviciilor de limbaj. Visual Studio nu include orice suport pentru control sursă integrat dar definește două alternative pentru sistemele controlului sursă pentru a fi integrat în IDE. Un VSPackage pentru controlul sursă poate furniza propria interfață pentru utilizator, personalizată. În contrast, un plug-in pentru controlul sursei folosind MSSCCI (Microsoft Source Code Control Interface – Interfața Microsoft pentru controlul codului sursă ) oferă un set de funcții care sunt folosite să implementeze diverse funcționalități ale controlului sursei, cu o interfață pentru utilator de Visual Studio. MSSCCI a fost folosit pentru a integra Visual SourceSafe cu Visual Studio 6.0 dar a fost mai târziu deschis cu ajutorul Visual Studio SDK. Visual Studio .NET 2002 a folosit MSSCCI 1, și Visual Studio .NET 2003 a folosit MSSCCI 1.2. Visual Studio 2005, 2008 și 2010 folosesc MSSCCI versiunea 1.3, care adaugă suport pentru redenumirea și ștergerea propagărilor la ca și deschiderea asincronă.
Visual Studio suportă deschiderea mai multor instanțe a platformei (fiecare cu setul ei de VSPackages). Instanțele folosesc diferiți regiștrii hive pentru a le păstra starea configurării și sunt diferențiate de AppId (ID-ul aplicației). Instanțele sunt pornite de un specific AppId .exe care selectează AppId, setează hive-ul principal si pornește IDE-ul. VSPackages este înregristrat pentru un AppId și integrat cu alte VSPackages pentru acel AppId. Variatele ediții de Visual Studio sunt create folosind diferite AppId-uri. Produsele ediției Visual Studio Express sunt instalate cu propriul AppId, dar produsele Standard, Professional și Team Suite împărtășesc același AppId. În consecință, poți instala edițiile Express în același timpp cu alte ediții, spre deosebire de alte ediții care actualizează aceeași instalare. Ediția profesională include un superset al VSPackages
Capitolul 6 – Proiectarea Aplicației
6.1 Obiective
6.2 Activitățile proiectului
6.2.1 Proiectarea și crearea serverului
6.2.2 Codul și funcționalitatea programului
6.2.3 Crearea agentului (clientul)
6.3 Livrarea proiectului
6.4 Planificarea activităților
Capitolul 7 – Implementarea, crearea și testarea aplicației
7.1 Implementarea aplicației
7.2 Medii și unelte de dezvoltare
7.3 Prezentarea și testarea proiectului
7.4 Dificultățile întâlnite
7.5 Analiza metodologiei și a activitățilpr prezentate în planu proiectului
Bibliografie
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Managementul Resurselor Hardware Intr O Retea de Calculatoare (ID: 150013)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
