Sistemul de operare

Embed Size (px)

Citation preview

Sistemul de operare. Definitii, rol, functii. Un sistem de calcul este organizat pe mai multe nivele. La baza se afla partea hardware formata din dispositive fizice, care grupate formeaza unitati functionale la nivel microarhitectural. Acest nivel al sistemului poate fi accesat prin instructiuni in limbaj masina (ISA- Instruction Set Architecture), dar aceasta abordare este foarte complexa si pentru a se optimiza timpul si modul de acces la resurse a fost creat sistemul de operare. Definitie: Sistemul de operare este un strat de software format dintr-o colectie de programe care ruleaza in mod kernel (supervisor), actionand ca un program de control. Acesta se incarca in memoria interna la pornirea sistemului de calcul si realizeaza interfata utilizatorhardware, defineste structura sistemului de fisiere si gestioneaza resursele. Rol: Sistemul de operare asigura o interfata (GUI-graphic user interface sau CLI-command line interface) intre utilizator si hardware- este o arhitectura de mediu. El reprezinta si un mecanism de planificare a job-urilor si a proceselor. Activitatea de planificare poate fi simpla ca in cazul rularii urmatorului proces dintr-o coada de asteptare, sau poate fi mai complicata, folosind reguli complexe de alegere a urmatorului proces ce va fi rulat. Functii: Sistemul de operare indeplineste doua functii de baza: 1.extinderea masinii si 2. gestionarea resurselor. 1. Abstractizarea oferita de sistemul de operare este mult mai simpla decat utilizarea nemijlocita a hardware-ului, acesta ascunzand chestiunile de detaliu. Functia sistemului de operare este de a prezenta utilizatorului echivalentul unei masini extinse/ virtuale, care este mai usor de programat decat hardware-ul existent. Sistemul de operare furnizeaza o serie de sercivii, e care programele le pot obtine utilizant instructiuni special numite apeluri de sistem. 2. Cea de-a doua functie asigura alocarea ordonata si controlata a procesoarelor, memoriilor si dispozitivelor de I/E diferitelor programe care intra in competitie pentru ele. Sistemul de operare trbuie sa urmareasca cine si ce resurse foloseste, sa aloce resursele solicitate, sa tina cont de folosirea acestora si sa medieze cererile care intra in conflict, pentru evitarea blocajelor. Asadar, sistemul de operare permite utilizarea eficienta a sistemului, oferind fiecarui utilizator/program o felie din totalul resurselor, desfasurand in paralel mai multor activitati si inlaturand irosirea ciclurilor de ceas. Partajarea resurselor se poate face in timp, diferitele programe sau utilizatori folosindu-le pe rand sau in spatiu, resursa fiind divizata la mai multe programe.

Multitasking. Definitie, tipuri si deosebiri intre ele. Definitie: Una din principalele functii ale sistemului de operare este aceea de a optimiza utilizarea tuturor resurselor unui sistem de calcul: timp, spatiu de memorie interna, canale de comunicatie, registre, dispozitive periferice de I/O. La stabilirea unei strategii de planificare a lucrarilor trebuie cunoscute foarte precis obiectivele: executia unui volum cat mai mare de lucrari in unitate de timp, reducerea timpilor de asteptare ai unitatii centrale, incarcarea dispozitivelor periferice la capacitate maxima. Multitasking sau multiprogramarea este o tehnica de exploatare prin care sunt plasate mai multe lucrari simultan in memoria interna iar UC le comuta intre ele. Incepand cu Shell-ul Windows 3.x s-a dezvoltat interfata grafica si un suport pentru multitasking cooperativ, ceea ce permitea utilizatorilor sa ruleze mai multe programe simultan. La momentul actual atat sistemele de operare PC cat si cele de retea sunt sisteme multitasking. Acest lucru semnifica faptul ca, intern, sistemul de operare este capabil sa execute mai multe sarcini (tasks) sau procese in acelasi timp. SO-ul urmareste utilizarea resurselor si cand procesorul se afla intr-o stare de asteptare, el este preluat de a alta lucrare care are nevoie de el, inbunatatindu-se astfel productivitatea sistemului de calcul. Sistemele de operare server realizeaza aceste lucruri prin cod software de planificare care este integrat in mediul de executie. SO de retea permit existenta mai multor utilizatori conectati simultan la server, permitandu-le acestora accesul concurential la resursele partajate. Sistemul de multitasking este caracterizat de: -existenta simultana a mai multor lucrari in memorie -existenta unui mecanism de protectie intre lucrari, astfel incat acestea sa nu se deranjere reciproc si cu atat mai mult sa nu deranjeze sistemul de operare -existenta unui mecanism pentru gestionarea resurselor fizice si logice acordate lucrarilor curente Tipuri: Exista doua tipuri de multitasking: cooperativ si preemtiv, Multitasking-ul cooperativ reprezint un mediu n care programele partajeaz adrese de memorie i pot schimba informaii ntre ele. ntr-un mediu multitasking, aplicaiile partajeaz utilizarea procesorului prin metoda time-slicing. Programele sunt scrise astfel nct s renune la utilizarea procesorului dup un anumit timp pentru a permite altor programe s foloseasc procesorul. Dac un program este prost scris, poate monopoliza ntreaga activitate a procesorului; de asemenea, dac un program se blocheaz, poate duce la blocarea altor programe. Multitasking-ul preemptiv este o form mult mai eficient implementat ncepnd cu Windows 9x. n acest caz, SO controleaz alocarea timpului procesorului, iar programele pe 32 de bii ruleaz n spaii separate de memorie. n cazul multitasking-ului preemptiv, un program ce nu respect regula nu poate monopoliza sistemul, iar dac se blocheaz, nu va afecta alte programe.

Componentele sistemului de operare UNIX Toate sistemele de operare (fie pentru calculatoare standalone, fie pentru servere de retea) includ urmatoarele componente: kernel-ul, interfata utilizator, sistemul de fisiere. Kernel-ul (nucleul) este cel mai utilizat termen referitor la partea centrala a sistemului de operare. Nucleul reprezinta o portiune relativ mica de cod ce este incarcata in memorie in momentul pornirii calculatorului. Acest cod cuprinde instructiuni ce permit kernel-ului sa administreze echipamentele hardware. Kernel-ul administreaza si controleaza, de asemenea, modalitatea de alocare a memoriei, precesele de sistem si alte programe. Software-ul de aplicatie si alte componente ale sistemului de operare se bazeaza pe kernel pentru a oferi serviciile de baza de planificare si acces la hardware-ul si perifericele calculatorului. Pe un sistem UNIX sau Linux, kernel-ul este reprezentat, de regula, de catre un fisier denumit kernel. In unele cazuri, codul kernel-ului trebuie sa fie adaptat si compilat. Daca acest fisier devine corupt, sistemul nu va mai functiona. Interfata utilizatorului (UI-user interface) reprezinta cea mai vizibila parte a sistemului de operare. UI este componenta SO prin care utilizatorul interactioneaza cu acesta din urma. UI actioneaza ca o punte de legatura intre utilizator si kernel. Pe sistemele UNIX sau Linux, UI se numeste shell. Interfetele cu utilizatorii pot fi grupate in doua mari categorii: CLI- command line interface sau GUI- graphical user interface. Sistemele de operare cu IU de tip linie de comanda ofera utilizatorului un prompter, iar utilizatorul introduce comenzile prin tastarea lor. Un mediu linie de comanda reprezinta un mediu text, iar utilizatorul poate obtine un rezultat doar prin introducerea comenzilor cu ajutorul tastaturii. O UI de tip grafic permite utilizatorului sa administreze software-ul prin utilizarea unor obiecte vizuale precum ferestre, meniuri de tip pull-down, pointeri, iconuri, etc. UNIX si Linux au o varietate de sisteme CLI, cum ar fi Bourne Shell, Korn Shell sau C Shell. Dintre cele cu interfata grafica amintim: Red Hat, Fedora, Ubuntu. Un sistem de operare cu interfata linie de comanda foloseste mult mai putine memorie RAM si timp de executie din partea UCP decat cele cu interfata grafica, de aceea sunt preferate pentru a fi utilizate pe servere. Sistemul de fisiere al unui sistem de operare determina modalitatea in care fisierele sunt denumite, modul si locul in care acestea sunt stocate pe hard-disk sau pe alt mediu de stocare. UNIX, Linux poseda sisteme de fisiere ce utilizeaza o strcutra ierarhica. Fisierele sunt plasate in asa numite containere logice, ce sunt aranjate intr-o structura de arbore. Sistemul de fisiere porneste din radacina arborelui. UNIX si Linux denumesc containerul din varful structurii arborescente director. Containerele din cadrul fiecarui director se numesc subdirectoare. Exista un singur director de root care reprezinta nivelul cel mai de sus din sistemul de fisiere.

Componentele sistemului de operare Windows Toate sistemele de operare (fie pentru calculatoare standalone, fie pentru servere de retea) includ urmatoarele componente: kernel-ul, interfata utilizator, sistemul de fisiere. Kernel-ul (nucleul) este cel mai utilizat termen referitor la partea centrala a sistemului de operare. Nucleul reprezinta o portiune relativ mica de cod ce este incarcata in memorie in momentul pornirii calculatorului. Acest cod cuprinde instructiuni ce permit kernel-ului sa administreze echipamentele hardware. Kernel-ul administreaza si controleaza, de asemenea, modalitatea de alocare a memoriei, precesele de sistem si alte programe. Software-ul de aplicatie si alte componente ale sistemului de operare se bazeaza pe kernel pentru a oferi serviciile de baza de planificare si acces la hardware-ul si perifericele calculatorului. Pentru un sistem Windows intalnim fisiere ce contin cuvintele kernel sau kern, precum fisierul kernel32.dll. Acestea reprezinta fisiere deosebit de importante utilizate de catre sistemul de operare. Ele constituie baza sistemului de operare. Interfata utilizatorului (UI-user interface) reprezinta cea mai vizibila parte a sistemului de operare. UI este componenta SO prin care utilizatorul interactioneaza cu acesta din urma. UI actioneaza ca o punte de legatura intre utilizator si kernel Interfetele cu utilizatorii pot fi grupate in doua mari categorii: CLI- command line interface sau GUI- graphical user interface. Sistemele de operare cu IU de tip linie de comanda ofera utilizatorului un prompter, iar utilizatorul introduce comenzile prin tastarea lor. Un mediu linie de comanda reprezinta un mediu text, iar utilizatorul poate obtine un rezultat doar prin introducerea comenzilor cu ajutorul tastaturii. O UI de tip grafic permite utilizatorului sa administreze software-ul prin utilizarea unor obiecte vizuale precum ferestre, meniuri de tip pull-down, pointeri, iconuri, etc. Pretul platit pentru simplificarea interfetei consta in performanta. Sistemele grafice consuma de sute de ori mai mult spatiu de stocare decat interfetele linie de comanda, deoarece interfetele grafice sunt mai complicate decat cele CLI, acestea necesita mai multa memorie RAM si timp de executie din partea UCP. Sistemul de fisiere al unui sistem de operare determina modalitatea in care fisierele sunt denumite, modul si locul in care acestea sunt stocate pe hard-disk sau pe alt mediu de stocare. Fisierele sunt plasate in asa numite containere logice, ce sunt aranjate intr-o structura de arbore. Sistemul de fisiere porneste din radacina arborelui. Windows denumesc containerele din varful structurii arborescente foldere. Containerele din cadrul fiecarui director se numesc subfoldere. Exista un singur director de root care reprezinta nivelul cel mai de sus din sistemul de fisiere. Sistemul de fisiere al unui sistem de operare determina modul in care fisierele si directoarele sunt organizate din punct de vedere logic. Tipul sistemului de fisiere utilizat de catre calculator determina modul in care fisierele pot fi securizate sau nu fata de alti utilizatori sau programe. Sistemul de fisiere defineste, de asemenea modul in care datele sunt aranjate in mod fizic pe mediul de stocare. Windows suporta mai multe tipuri de sisteme de fisiere: FAT (FAT16, FAT32) (File allocation table) si NTFS (New technology file system).

Arhitectura sistemului de operare UNIX Sistemul de operare UNIX este un sistem de operare structurat in principal pe 2 niveluri: programe sistem UNIX si nucleul (kernel) sistemului. Majoritatea programelor sistem si kernel sunt scrise in C, permitand portabilitatea pe ale platforme hardware ce poseda un compilator C. Programele de sistem UNIX ofera functionalitatea ceruta de utilizatori prin initierea unui sistem de apeluri care nucleul sistemului UNIX. Nucleul indeplineste cererile interactionand cu nivelul hardware si returnand rezultatele programelor de sistem. In interiorul nucleului majoritatea codului specific hardware se limiteaza la driverele echipamentelor. Nucleul reprezinta centrul sistemului de operare si are rolul de a oferi functionalitatile de baza necesare functionarii sistemului de calcul. Nucleul este un fisier executabil ce este incarcat in memorie atunci cand are loc procesul de boot al calculatorului, fiind denumit generic unix sau vmunix. Nucleul executa functiile: -administrarea echipamentelor, a memoriei si a proceselor -asigura controlul functiilor de transmisie a informatiilor intre programele de sistem si echipamentele hardware -administreaza entitati precum spatiul de swap, demonii sau sistemul de fisiere Spatiul de swap- portiune speciala de pe hard-disk folosita de kernel pentru procesare. Bucati ale programelor ce se afla in executie pot fi interchimbate intre memoria RAM si hard-disc ori de cate ori este nevoie Acest mecanism de extindere a memoriei RAM a sistemului prin utilizarea spatiului de pe hard-disc poarta denumirea de memorie virtuala. Demonii sunt programe sau procese ce indeplinesc un anumit rol; ei isi incep executia dupa incarcarea sistemului de operare in memorie si pot fi porniti manual sau automat. Sistemele de fisiere reprezinta o modalitate de organizare a directoarelor, subdirectoarelor si fisierelor pe hard-disc. Sistemele de fisiere pot fi situate atat local (pe calculatorul local) cat si la distanta (pe un server). Programele si utilitarele sistemului, precum si aplicatiile utilizatorilor sunt independente de hardware si singura cerinta pentru acestea este sa initieze apeluri standardizate de sistem catre nucleul UNIX. Pentru a simplifica si standardiza apelurile de sistem, UNIX interpreteaza echipamentele ca fiind tipuri speciale de fisiere. Cele mai importante proprietati ale sistemului de operare UNIX sunt: -portabilitatea -modularitatea- UNIX este un sistem dinamix, a carui functionalitate poate fi imbunatatita prin adaugarea de noi programe utilitare Arhitectura generala: Hardware-> nucleul sistemului UNIX-> programe shell, interpretoare, compilatoare, utilitare, aplicatii, biblioteci de sistem

Memoria virtuala. Definitie, caracteristici, mod de functionare. Definitie: Memoria virtuala reprezinta separarea conceptuala a memoriei logice disponibile pentru aplicatii fata de memoria fizica. In acest mod putem avea o memorie virtuala de dimensiuni mari chiar cu o memorie fizica de dimensiuni reduse. Caracteristici: -activitatea de alocare nu mai este sarcina programatorului, deoarece partea de hardware, numita management al memoriei, transfera automat informatia din MA in MP si invers -un program se poate executa fara a avea toate paginile incarcate in memoria interna, ele putand fi incarcate pe masura ce devin necesare in prelucrare -utilizare eficienta a memoriei -protectie mult mai sigura Mod de functionare: In orice moment, un calculator ruleaz mai multe procese, fiecare avnd propriul spaiu de adrese de memorie. Nu toate obiectele (date sau instructiuni) pot fi la un moment dat in memoria principala. Daca avem memorie virtuala, atunci unele din obiecte se pot afla pe disc. La baza conceptului de memorie virtuala se gasesc trei notiuni principale: spatiu de adresa virtuala, spatiu de adresa fizica si functia de translatare. UCP foloseste adrese virtuale ce sunt translatate in adrese fizice ce acceseaza memoria principala. Acest procedeu se numeste procedeul de mapare a memoriei sau de translatare a adreselor. Spaiul de adresare este de regul mprit n blocuri de lungime fix pagini sau segmente. Pagina reprezinta o unitate de memorie de dimensiune fixa, in timp ce segmentul reprezinta o unitate de memoria variabila intre anumite limite. Toate instructiunile si datele unui program trebuie sa fie in MP inainte ca ele sa fie utilizate de catre unitatea centrala. Paginile solicitate de executie vor fi aduse in MP din MA, acesta fiind conceptul de baza in cadrul memoriei virtuale. Procesul de deplasare al paginilor este referit ca transfer de pagini. O adresa folosita de programator se numeste adresa virtuala, iar un sir de astfel de adrese se numeste spatiul de adresa virtuala. La un moment dat, paginile se afl fie n memoria principal, fie pe disc. Adresele fizice si adresele virtuale sunt divizate in segmente si segmentele in pagini. Fiecarei adrese virtuale referite de catre procesor i se asociaza o adresa virtuala a segmentului, o adresa virtuala a paginii si o adresa virtuala a cuvantului. Exista o tabela de segmente si pentru fiecare segment cate o tabela de pagini. 1. Cererea de pagini (demand paging) Atunci cnd se cere un obiect care nu este n cache sau n memoria principal, apare un page-fault moment n care ntreaga pagin este mutat de pe disc n memoria principal. Aceste page-fault dureaz mai mult i atunci sunt controlate de software i UCP nu face pauz. De regul, UCP comut ctre alt task atunci cnd apare un acces la disc. Memoria cache i memoria principal au aceeai relaie ca i cea existent ntre memoria principal i disc. Tabela de pagini necesit prezena unui bit rezident" care ne arat dac pagina este sau nu n memorie. Uneori se utilizeaz termenul "valid" pentru a indica rezidena n memorie. O pagin invalid" este astfel o pagin nerezident sau care are o adres ilegal. Este mai logic s avem doi bii - unul ne indic faptul c pagina este valid iar cel deal doilea ne arat dac pagina este sau nu n memorie. Paii ce se urmresc n cazul unui page fault 1. Procesul necesit o pagin ce nu este rezident n memorie. 2. Verific n tabela de pagini dac referina de memorie este valid sau nu. 3. Dac este valid dar pagina nu este rezident, se ncearc obinerea acesteia din memoria secundar. 4. Se caut i se aloc un cadru (frame) liber (o pagin de memorie fizic neutilizat n prezent poate fi necesar eliberarea unei pagini de memorie).

5. Se planific o operaie de disc pentru a se citi acea pagin din memoria secundar n cadrul nou alocat. 6. Dup scrierea paginii n memorie se modific tabela de pagini - pagina este acum rezident. 7. Se repornete instruciunea ce a generat page fault. n cazul supra-alocrii memoriei trebuie s renunm la ceva deja existent n memorie. Supra-alocarea apare atunci cnd programele au nevoie de mai multe pagini de memorie dect cele existente fizic.

Algoritmi de interchimbare a paginilor in cazul funtionarii memoriei virtuale In orice moment, un calculator ruleaz mai multe procese, fiecare avnd propriul spaiu de adrese de memorie. Nu toate obiectele (date sau instructiuni) pot fi la un moment dat in memoria principala. Daca avem memorie virtuala, atunci unele din obiecte se pot afla pe disc. Atunci cnd se cere un obiect care nu este n cache sau n memoria principal, apare un page-fault moment n care ntreaga pagin este mutat de pe disc n memoria principal. Aceste page-fault dureaz mai mult i atunci sunt controlate de software i UCP nu face pauz. De regul, UCP comut ctre alt task atunci cnd apare un acces la disc. Memoria cache i memoria principal au aceeai relaie ca i cea existent ntre memoria principal i disc. n cazul supra-alocrii memoriei trebuie s renunm la ceva deja existent n memorie. Supra-alocarea apare atunci cnd programele au nevoie de mai multe pagini de memorie dect cele existente fizic. Abordare: Dac nici o pagin fizic nu este liber, se caut una care nu este utilizat la momentul respectiv i se elibereaz, urmrind urmtorii pai: 1. Se caut pagina pe disc. 2. Se caut un cadru liber. a. Dac exist, se folosete b. Altfel, se selecteaz o pagin victim c. Se scrie pagina victim pe disc. 3. Se citete noua pagin n cadrul eliberat. Se modific tabela de pagini. 4. Se repornete procesul. Algoritmi de nlocuire a paginilor n momentul supra-alocrii putem fie interschimba pagini de pe disc, fie supra-scrie anumite pagini. Exista mai multe tipuri de interschimbare Exemplul unui ir de referin pentru pagini de memorie ce vor fi executate: ir de referin: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 FIFO Uor de implementat dpdv conceptual. Se poate folosi fie un time-stamp pentru pagini, fie o organizare ntr-o coad. (Coada reprezint implementarea cea mai uoar). nlocuirea optim Reprezint o politic de nlocuire a paginilor care au cea mai mic rat page fault. Algoritmul: se nlocuiete pagina care nu va fi utilizat pentru cea mai lung perioad de timp. Practic imposibil de implementat. Metoda LEAST RECENTLY USED ( LRU ) Cea mai puin recent folosit pagin Se nlocuiete pagina care nu a fost utilizat pentru cea mai mare perioad de timp. Rezultatele sunt bune; dificultatea apare la implementare. Variante de implementare: Time stamp pentru pagini - nregistrarea ultimei utilizri. Stiv de pagini se scot paginile utilizate i se introduc n vrful stivei Ambele metode necesit faciliti hardware (trebuie fcut reactualizare dup fiecare instruciune), de aceea este rar utilizat n practic.

Sisteme de fisiere. Definitii, generalitati, prezentarea sistemelor de tip FAT Definitie: Un sistem de fisiere este o parte integrata distinta a sistemului de operare ce reprezinta o modalitate de organizare a directoarelor, subdirectoarelor si fisierelor pe hard-disk, ce contine informatiile necesare pentru accesarea, localizarea si eventual refacerea acestora. Generalitati: Sistemele de operare Windows, UNIX, Linux, Macintosh poseda sisteme de fisiere ce utilizeaza o structura ierarhica. Intr-un sistem de fisiere ierarhic, fisierele sunt plasa in asa numite containere logice ce sunt aranjate intr-o structura de arbore. Sistemul de fisiere porneste din radacina arborelui. UNIX si Linux denumesc containerul din varful structurii director, iar pe cele de pe urmatorul nivel- subdirectoare, pe cand Windows si Macintosh utilizeaza termenele de folder si subfolder. Sistemul de fisiere al unui SO determina modul in care fisierele si directoarele sunt organizate din punct de vedere logic. Tipul sistemului de fisiere utilizat de catre calculator determina modul in care fisiertele pot sau nu sa fie securizate fata de alti utilizatori sau programe. Sistemul de fisiere defineste, de asemenea, modul in care datele sunt aranjate in mod fizic pe mediul de stocare. Unele sisteme de fisisere utilizeaza spatiul de stocare intr-o maniera mai eficienta decta altele. Prezentarea sistemelor de tip FAT n Windows, cel mai popular sistem de fiiere este FAT (File Allocation Table). Exist 3 tipuri de sisteme FAT. Primul este sistemul original FAT (FAT12), apoi au aprut FAT16 i FAT32, versiuni mbuntite ale sistemului original FAT. Sistemul original FAT a fost utilizat pe primele versiuni de DOS.Acest sistem FAT era limitat din mai multe puncte de vedere, fiind capabil s recunoasc nume de fiiere pn la 8 caractere n lungime. Alte limitri erau legate de imposibilitatea de a utiliza discuri de dimensiuni mari i sisteme de operare avansate la acea vreme. De asemenea, spaiul de pe discurile cu capaciti mari era utilizat ineficient, aceeai problem existnd i pentru FAT16. FAT16 a fost conceput pentru a fi utilizat pentru partiii pn la 4 GB. Chiar dac discuri de dimesiuni mari pot fi formatate folosind FAT16, aceast manier este ineficient deoarece spaiul de pe disc este utilizat ineficient. Spre exemplu, la o partiie de 512 MB, dimensiunea clusterelor este de 8 KB. Aceasta nseamn c fiierele de 1 KB vor ocupa tot 8 KB de spaiu pe disc, deoarece nu se pot stoca mai multe fiiere ntr-un cluster. De aici rezult 7 KB pierdui. Pentru a rezolva aceast problem a aprut FAT 32, sistem ce folosete dimensiuni mai mici pentru clustere i ofer suport pentru partiii pn la 2 TB. De regul se consider c pentru selecia dimensiunii clusterului, regula este cu ct mai mic, cu att mai bine. Trecerea la FAT32 pentru a reduce dimensiunea clusterilor a fost imediat. Cu toate acestea, FAT32 are i el limitrile sale. Dimensiunea mare a clusterului va avea ca rezultat o irosire a spaiului pe disc. Astfel, este recomandat ca aceast partiie s utilizeze FAT32, ce va conduce la o dimensiune a clusterilor de doar 4 KB. Acest lucru va avea ca efect o diminuare cu pn la 90% a irosirii spaiului de pe disc. Cu toate acestea, exist i un pre pltit pentru asta. Deoarece fiecare cluster este mai mic, trebuie s fie mai multe pentru a acoperi aceeai capacitate a discului. Deci, n loc de 65.526 clusteri, vom avea 524.208 (65.526 * 8) clusteri. Mai mult, intrrile FAT din tabela FAT32 sunt de dimensiune 32 de bii, fa de intrrile de 16 bii din FAT16. Rezultatul final este acela c dimensiunea tabelei FAT este de 16 ori mai mare n cazul FAT32 dect la FAT16! Problema este c tabela FAT este foarte des referit n momentul utilizrii normale a discului deoarece conine toate referirile ctre clustere pentru fiecare fiier din acest volum. Dimensiunea mare a tabelei FAT poate influena negativ viteza de lucru. Practic fiecare sistem implementeaz un mecanism de disk caching pentru a ine n memorie structurile discului fecvent accesate precum tabela FAT. Operaiunea de cache a discului implic utilizarea memoriei principale pentru a stoca informaii referitoare la disc ce sunt necesare n mod regulat, pentru a evita citirea n permanen de pe disc (foarte lent n comparaie cu memoria).

Sistemul de fisiere NTFS. Caracteristici si functiuni. Fiecare volum (partitie) NTFS (New Technology File System) contine fisiere, directoare si alte structuri de date. Fiecare volum este organizat ca o secventa liniara de blocuri unde fiecare bloc are o dimensiune fixata pentru fiecare volum care poate fi cuprinsa intre 512 octeti si 64 kb, in functie de dimensiunea volumului. Structura principala din fiecare volum este MFT (Master File Table), care este o secventa liniara de inregistrari cu dimensiune fixa de 1 kb. Fiecare inregistrare din MFT descrie un fisier sau un director. Ea contine atributele fisierului, cum ar fi nume, amprenta de timp. Prima inregistrare din MFT este insusi fisierul MFT. Windows-ul are nevoie de o cale pentru a gasi primul bloc din fisierul MFT ca apoi sa poata afla restul de informatii. Pentru a gasi primul bloc, acesta trebuie sa caute in blocul de boot, in care este inscrisa adresa lui la momentul instalarii sistemului. Inregistrarea urmatoare este o copie a primei parti a fisierului MFT, care este foarte importanta in cazul in care unul dintre primele blocuri ale MTF se strica. Controlul accesului: - stabilirea drepturilor de acces se poate face atat pentru fisiere individuale cat si pentru directoare. Atributele fiierelor sunt coninute n nregistrarea MFT a fiierului. Lista atributelor fiierelor poate fi particularizat pentru anumite medii (Mac, UNIX) i adugat pentru a extinde funcionalitatea NTFS. Numele fisierelor: NTFS permite nume de fiiere pn la 255 de caractere dar poate genera i nume 8+3 pentru compatibilitatea cu FAT/DOS Dac NTFS gsete un sector stricat pe un disc SCSI va muta automat fiierele afectate i va marca "bad" fr a fi nevoie de intervenia utilizatorului. NTFS utilizeaz managerul memoriei cache pentru scrierile buffer pe disc n cadrul unui proces denumit "lazy-write". De asemenea, ruleaz un proces de monitorizare a scrierilor pe disc ceea ce i permite s refac sistemul de fiiere n urma unui caderi. NTFS suport atribute de fiiere Mac precum i Finder. Sunt suportate, de asemenea, drepturi Macintosh de control al accesului. Master File Table (Tabela Master a Fiierelor) a fost proiectat pentru a garanta accesul rapid i sigur la fiiere. Cele dou obiective de cele mai multe ori contradictorii ale sale sunt: performan superioar la regsirea fiierelor pe disc (rapiditate n special pentru fiierele mici i directoare) pe de o parte, i o deosebit fiabilitate, (datorat multiplelor caracteristici redundante) pe de alt parte. MFT poate ndeplini ambele obiective foarte bine. n primul rnd, definiia nregistrrilor din MFT permit fiierelor mici i directoarelor s fie incluse n aceste nregistrri aa nct mpiedic nevoia pentru orice cutare ulterioar sau acces la disc. Pentru fiierele mari NTFS utilizeaz o structur arborescent binar ierarhic pentru a asigura rapiditatea la cutare n directoare mari la fel de bine. Functii: NTFS-ul suporta comprimarea transparenta a fisierelor. Procesele care scriu sau citesc blocuri comprimate sunt complet neprevenite de acest lucru. Pentru o securitate sporita a datelor, NTFS-ul permite criptarea datelor, atribuind unor directoare chei aleatoare de 128 de biti. Fisierul de chei este criptat la randul lui iar Windows-ul genereaza o pereche de chei: publica-privata. Utilizatorul utilizeaza parola privata pentru decriptare.

Procese. Definitii, functii. Definitie: Un program reprezint ceva pasiv, static; procesul este activ (proces = instan a unui program n execuie). Exemple de atribute asociate cu un proces: starea, memoria alocat, resurse UCP, progresul nregistrat. Necesitatea proceselor Pentru partajarea resurselor logice (fiiere) i fizice (echipamente hardware). Pentru mbuntirea vitezei de calcul, prin implementarea multiprogramrii. Asigurarea modularitii pentru protecie. Functii: Principala funcie a unui procesor este aceea de a executa instruciuni main ce se afl n memoria principal. Aceste instruciuni apar sub form de programe. Din motive ce in de eficien i uurin n exploatare, un procesor poate intercala poriuni provenite de la mai multe programe (procese) n timpul execuiei. Pentru ca un program s fie executat, SO creeaz un proces (sau task) asociat acelui program.

Modelul de proces cu doua stari/ Modelul de proces cu 5 stari

Nou Procesul de-abia a fost creat. n ateptare Ateapt apariia unui eveniment (echipament hardware, intervenia utilizatorului sau a altui proces). Gata de execuie Procesul are toate resursele necesare, ateptnd s intre n execuie. n execuie n acest caz instruciunile sunt executate. Procesul ce se afl n execuie face uz de UCP. Suspendat/Terminat Un alt proces a ordonat ca acest proces s intre n starea suspendat (go to sleep). Procesul aflat n starea suspendat va fi trezit de ctre alt proces / Procesul i-a ncheiat execuia.

Starile unui proces Un program reprezint ceva pasiv, static; procesul este activ (proces=instan a unui program n execuie). Exemple de atribute asociate cu un proces: starea, memoria alocat, resurse UCP, progresul nregistrat. De ce este nevoie de procese ? Pentru partajarea resurselor logice (fiiere) i fizice (echipamente hardware). Pentru mbuntirea vitezei de calcul, prin implementarea multiprogramrii. Asigurarea modularitii pentru protecie. Starile unui process Principala funcie a unui procesor este aceea de a executa instruciuni main ce se afl n memoria principal. Aceste instruciuni apar sub form de programe. Din motive ce in de eficien i uurin n exploatare, un procesor poate intercala poriuni provenite de la mai multe programe (procese) n timpul execuiei. Pentru ca un program s fie executat, SO creeaz un proces (sau task) asociat acelui program. Din punct de vedere al procesorului, acesta execut instruciuni din repertoriu n ordinea dictat de ctre registrul contor program (PC-Program Counter). n decursul execuiei, PC se poate referi la codul diferitelor programe ce reprezint pri ale unor procese diferite. Din punct de vedere al unui program individual, execuia sa implic o serie de instruciuni din cadrul acelui program. Putem caracteriza comportamentul unui proces individual prin listarea secvenei de instruciuni ce se execut pentru acel proces. O astfel de list se numete urma (trace) unui proces. Putem caracteriza comportamentul procesorului prin prezentarea urmelor diferitelor procese i modalitatea prin care acestea sunt intercalate. n exemplul simplu din figura 6.1 este prezentat o hart a memoriei pentru trei procese. Pentru simplificare, putem presupune c nu se utilizeaz memoria virtual; astfel toate cele trei procese sunt reprezentate prin programe ce sunt complet ncrcate n memoria principal. n plus, exist un mic program sistem numit dispecer ce comut execuia procesorului de la un proces la altul. n figura 6.2 sunt prezentate urmele celor trei procese la nceputul execuiei lor. Sunt prezentate astfel primele 10 instruciuni ale proceselor A i C. Procesul B execut 6 instruciuni i presupunem c a 6-a instruciune apeleaz o operaie de I/O pentru terminarea creia trebuie s se atepte. S considerm n cele ce urmeaz aceste urme din punct de vedere al procesorului. Figura 6.3 ne prezint urmele intercalate ce rezult din execuia primelor 70 de cicluri de instruciuni. Presupunem c SO permite ca un proces s i continue execuia maxim 8 cicluri instruciune, dup care procesul este ntrerupt (acest lucru previne monopolizarea procesorului de ctre un anumit proces). Dup cum apare n figura 6.3, sunt executate primele 8 instruciuni ale procesului A, urmate de un time-out i execuia unei poriuni de cod ale dispecerului, care execut 8 instruciuni nainte de a oferi controlul procesului B. Dup ce sunt executate primele 6 instruciuni ale procesului B, acesta cere o operaie de I/O al crei rezultat trebuie ateptat. Astfel, procesorul oprete execuia procesului B i trece la execuia procesului C (dup execuia codului dispecer).

Dup un alt moment de time-out, procesorul se mut din nou la procesul A. n acest timp, procesul B ateapt pentru terminarea operaiei I/O, iar dispecerul comut din nou la procesul C. Blocul de control al proceselor (BCP): Conine informaii asociate fiecrui proces Are urmtoarea structur: PC (Program Counter), regitri UCP Informaii despre managementul memoriei Informaii de contabilizare (timpul utilizat, identificatorul de proces, etc.) Starea I/O (resursele alocate unui fiier, etc.) Date referitoare la planificare (prioriti, etc. ) Starea procesului (n execuie, suspendat, etc.)

Planificarea proceselor. Planificarea proceselor reprezint, de fapt, modificarea BCP referit de ctre UCP se mai numete comutator de context (context switch). Un comutator de context poate fi considerat un comutator de procese. Comutatorul face trecerea de la memoria alocat unui proces la memoria alocat altui proces (fiecare proces are propria lui viziune despre memorie). (Figura 6) Cozi de planificare: (un proces este determinat de anumite evenimente ce apar n urma necesitilor i disponibilitilor) coada gata de execuie = format din toate procesele gata de execuie. coada I/O (starea de ateptare) = format din procesele ce ateapt ncheierea unui proces de I/O. Implementarea cozilor se poate face prin nlnuire simpl sau dubl. Planificator pe termen lung Decide ce joburi/procese trebuie admise n coada gata de execuie. n momentul n care un program trebuie s se execute, admiterea acestuia n cadrul proceselor ce se vor executa este fie autorizat, fie amnat de ctre planificatorul pe termen lung. n acest mod planificatorul hotrte ce procese vor rula pe sistem precum i gradul de concuren suportat la un moment dat (un numr mai mare sau mai mic de procese sunt executate concurent i modul de mprire a acestora n procese intensive I/0 i CPU intensive). Pentru un sistem desktop nu exist practic un astfel de planificator, iar procesele sunt admise n sistem n mod automat. Acest planificator este utilizat n cazul sistemelor real-time, caz n care capacitatea sistemului de a satisface termenele limit ale proceselor poate fi compromis n cazul n care sunt admise mai mult procese dect este cazul. Caracteristici: Ruleaz rareori (atunci cnd job-ul vine din memorie) Controleaz gradul de multiprogramare Se ncearc s se asigure un echilibru ntre rata de sosire i cea de plecare prin intermediul unei selecii a job-urilor. Planificator pe termen scurt 3 funcii: Cod pentru scoaterea unui proces din UCP la sfritul execuiei sale. (procesul poate trece n starea gata de execuie sau n cea de ateptare) Cod pentru punerea unui proces n coada gata de execuie a) Procesul trebuie s fie gata s ruleze. b) Procesul este poziionat n coad pe baza unor prioriti. Planificator pe termen scurt (cont.) Cod pentru a prelua procesul din coada gata de execuie i lansarea n execuie a acestuia (acesta se numete dispecer). a) ntotdeauna preia primul proces din coad ( foarte simplu! ) b) Transmite procesul ctre UCP. Acest cod ruleaz n mod frecvent i trebuie s fie ct se poate de simplu i de scurt. Planificator pe termen mediu O combinaie dintre management UCP i resurse. Asigur interschimbarea proceselor n/din memorie. Asigur controlul modificrii prioritilor.

Planificarea proceselor Planificarea proceselor reprezint, de fapt, modificarea BCP referit de ctre UCP se mai numete comutator de context (context switch). Un comutator de context poate fi considerat un comutator de procese. Comutatorul face trecerea de la memoria alocat unui proces la memoria alocat altui proces (fiecare proces are propria lui viziune despre memorie). (Figura 6) Cozi de planificare: (un proces este determinat de anumite evenimente ce apar n urma necesitilor i disponibilitilor) coada gata de execuie = format din toate procesele gata de execuie. coada I/O (starea de ateptare) = format din procesele ce ateapt ncheierea unui proces de I/O. Implementarea cozilor se poate face prin nlnuire simpl sau dubl. Multiprogramarea Mai multe programe pot fi n memorie n acelai timp. Permite supra-alocarea UCP i a I/O. Job-uri (batch) programe ce ruleaz fr a fi nevoie de intervenia utilizatorului. Programe Utilizator (partajarea timpului) sunt programe ce pot avea nevoie de intervenia utilizatorului. Proces ambele UCP - I/O burst cycle Reprezint execuia proceselor ce alterneaz ntre activitatea UCP i a I/O. Timpii UCP sunt mult mai mici dect cei ai operaiilor I/O. Planificare preemptiv O ntrerupere determin oprirea procesului curent ce ocup UCP i are loc nlocuirea acestuia cu alt proces. Primul venit, primul servit: FIFO Simplu, corect, dar cu performane slabe. Timpul mediu de ateptare n coad poate fi destul de mare. Exemplu: Procesul Timpul Timpul sosirii de serviciu 1 0 8 2 1 4 3 2 9 4 3 5

Cel mai scurt job primul (SJF): Optimal pentru minimizarea timpului de ateptare n coad dar imposibil de implementat n practic. Se ncearc s se prevad urmtorul proces pe baza istoricului anterior. Predicia timpului pe care procesul l va utiliza la urmtoarea planificare: t( n+1 ) = w * t( n ) + ( 1 - w ) * T( n ) unde: t(n) T(n) w t(n+1) timpul urmtorului burst. timpul actualului burst. media burst-urilor anterioare. factor de ponderare ce reflect burst-urile curente sau anterioare.

Planificarea proceselor. Prezentarea cozii circulare cu cuantum de timp. Coada circular (ROUND ROBIN) Folosete un timer pentru generarea unei ntreruperi dup un timp prestabilit. Asigur multitasking-ul preemptiv dac un task depete cuantumul de timp alocat. Testare pentru un cuantum de 4 secunde Definiii: Comutare de context - Modificarea strii de rulare a procesorului de la un proces ctre altul (modificarea memoriei). Partajarea procesorului - Utilizarea unui cuantum a.. fiecare proces ruleaz la o frecven de 1/n. Latena de replanificare - Reprezint timpul de ateptare din momentul n care un proces face o cerere de rulare i pn n momentul n care obine controlul UCP (ruleaz). Se alege un cuantum de timp Prea scurt se va pierde prea mult timp cu comutarea contextului Prea lung latena de replanificare este prea mare. Dac multe procese doresc UCP, atunci se pierde prea mult timp ca acestea s acceseze UCP i se ajunge la cazul FIFO. Se ajusteaz a.. majoritatea proceselor s nu i utilizeze timpul.

Modele ierarhice de retea ISO/OSI Modelul ierarhic sau reele campus, care se aplic pentru reea, descrie, de obicei, rutere, switch-uri, dispozitive de reea i servere care alctuiesc infrastructura reelei pentru un set de cldiri situate n imediata apropiere. Acest model poate fi o mare corporaie, un sediu bancar, sau un colegiu. ntre 1977 i 1984 specialitii n reele au dezvoltat un model de reea numit model de referin pentru interconectarea sistemelor deschise (Open Systems Interconnection OSI). Acest model a fost dezvoltat pornind de la o propunere a Organizaiei Internaionale pentru Standarde (International Standards Organization - ISO). Un model arhitectural ofer un cadru general de referin pentru problemele legate de comunicaiile n reea. Un astfel de model este folosit nu doar pentru a explica protocoalele de comunicaie, ci i pentru dezvoltarea acestora. Modelul arhitectural separ funciile asigurate de protocoalele de comunicaie n nivele separate (i mai uor administrabile). Fiecare nivel are un rol/roluri specific(e) n procesul de comunicaie de-a lungul reelei. Un model pe nivele - Reduce complexitatea - Standardizeaz interfeele - Faciliteaz concepia modular - Asigur tehnologii interoperabile - Accelereaz evoluia - Simplific i ajut procesul de predare/nvare

Cele sapte nivelui sint: -Nivelul Aplicatie: Toate programele care utilizeaza comunicarea prin retea fac parte din acest nivel. Exemplele de aplicatii de retea includ clientii si serverele de posta electronica (binecunoscuta acum drept e-mail), clientii si serverele de http (clientul este cunoscut sub numele browser web), bazele de date distribuite dintre care cele mai cunoscute sunt cele asigurate de serverele DNS (Domain Name System) etc. -Nivelul prezentare reuneste functii folosite in mod repetat in comunicatiile in retea. Nivelul prezentare gestioneaza detaliile legate de interfatarea retelei cu imprimantele, formatele fisierelor, etc. Acest nivel se ocupa de formatarea si codificarea datelor -Nivelul de sesiune se ocupa de stabilirea si mentinerea si terminarea sesiunilor. Acest nivel gestioneaza detalii precum: nume de cont, parole si autorizarea utilizatorilor. O sesiune este deschisa la fiecare operatie de autentificare a utilizatorului (moment cunoscut sub numele de login) si inceteaza la cererea utilizatorului (logout) sau in cazuri bine stabilite, cum ar fi: terminarea sesiunii la n minute dupa incetarea utilizarii ei. Spre exemplu, utilizatorul pleaca de la statia de lucru uitand sesiunea deschisa, sau din motive fizice conexiunea a fost intrerupta. -Nivelul transport asigura livrarea in siguranta (sau nu) a datelor intre doua calculatoare gazda (host). -Nivelul retea asigura livrarea pachetelor si alegerea optima a cailor de transmitere (rutarea - routing). Ca atare, nivelul retea trebuie sa gestioneze traficul in retea, congestiile si ratele de transfer (vitezele) de-a lungul liniilor de transmisie. Internet Protocol este sinonim cu nivelul retea. -Nivelul legaturii de date (Data link) asigura portionarea unitatilor de informatie si verificarea erorilor.Placa de retea reprezinta nivelul legaturii de date a unui calculator

-Nivelul fizic asigura transmiterea bitilor prin canalul de comunicatie. Ca atare, liniile de transmisie din retea - cablurile care conecteaza toate calculatoarele din retea - fac parte din nivelul fizic. Cele doua standarde TCP-IP si OSI au abordat problema standardizarii din puncte de vedere diferite. Abordarea OSI a pornit formal si s-a dezvoltat incet, si deoarece utilizeaza intreaga stiva de protocoale, nu a fost larg utilizat pe piata calculatoarelor de birou si a micilor calculatoare. In acelasi timp, TCP-IP cu o stiva de protocoale mai mica a fost pus rapid in practica ajungand un standard de facto datorita utilizarii pe scara larga. Componente de retea in WINDOWS 2000/XP/VISTA Transporturi TDI, drivere de protocol NDIS (Network Driver Interface Specification) i driverele de protocol Sunt drivere n mod kernel. Accept pachete IRP de la clieni TDI i proceseaz cererile pe care aceste pachete le reprezint. Procesarea poate necesita comunicarea cu o entitate pereche necesitnd ca transportul TDI s adauge headere specifice (TCP, UDP, IPX) datelor coninute n pachetele IRP i s comunice cu driverele plcilor de reea folosind funcii NDIS. Transporturile TDI asigur comunicaiile n reea prin execuia de operaii de transmitere a mesajelor precum segmentare i reasamblare, secvenializare, confirmare i retransmisie. Biblioteca NDIS (ndis.sys) Ofer ncapsularea pentru driverele adaptorului de reea, asigurnd interfaa fa de mediul kernelului Win2000. Biblioteca NDIS export funcii utilizabile pentru transporturile TDI precum i funcii suport pentru drivere de adaptoare de reea. Fiiere DLL API de reea Ofer aplicaiilor o modalitate independent de protocol de comunicare de-a lungul reelei. API-urile de reea pot fi implementate att n mod utilizator ct i n mod kernel. n unele cazuri se utilizeaz alte API-uri ce ofer servicii adiionale. Clieni TDI Reprezint drivere de dispozitiv n mod kernel ce implementeaz poriunea kernelmode a unei implementri API de reea. Clienii TDI i iau numele din faptul c pachetele pe care le trimit driverelor de protocol (IRP I/O Request Packets) sunt formatate conform standardului Win2000 Transport Driver Interface. Acest standard specific o interfa de programare pentru driverele de dispozitiv kernel-mode. Drivere miniport NDIS Reprezint drivere n mod kernel responsabile cu asigurarea interfeei ntre transporturile TDI i diverse adaptoare de reea. Driverele miniport NDIS sunt scrise astfel nct sunt nglobate n biblioteca Win2000 NDIS. Ele nu proceseaz pachete IRP ci nregistreaz o interfa denumit call-table n biblioteca NDIS ce conine pointeri la funcii corespunztori acelora pe care biblioteca NDIS i export transporturilor TDI. Driverele miniport NDIS comunic cu adaptoarele de reea folosind funcii de bibliotec NDIS ce asigur interfaa cu funcii HAL.

Securitatea S.O. Generalitati. Securitate termen (garanie/paii care trebuie urmai pentru a proteja un computer i informaiile care sunt stocate pe acesta/termenul nu este absolut n context IT) Balan ntre accesibilitate i securitate. Utilizatorii prefer prima noiune, administratorii pe cea de-a doua! Nivelul de securitate depinde de mai muli factori: Tipul de business al companiei - Instituii guvernamentale, juridice, etc. - Instituii educaionale (sunt stocate notele studenilor, etc.) - Spitale, alte instituii medicale / de sntate - Companii ce au contracte n domeniul militar / alte instituii implicate n securitatea unui stat - Diverse companii / organizaii ce strng date sub garania confidenialitii, etc. Tipul de date stocate n reeaua / pe computerele companiei - nregistrri cu privire la plata/informaiile personale ale angajailor/clienilor - Informaii de natur contabil, impozite, taxe, etc. - Secrete comerciale (planuri, desene, schie, reete, strategii de afacere, etc.) Filozofia de management a companiei - Compania considerat ca o mare, fericit familie... - Informaia este accesibil doar la momentul necesar / doar pentru cei direct interesai n mod normal administratorul de sistem va defini o convenie pentru stabilirea numelor de utilizatori din reea (pentru accesul la SO de reea). Stabilirea parolelor este important, iar nivelul de control al parolelor va fi n concordan cu nivelul de protecie necesar. O bun politic de securitate va conine urmtoarele: - Parolele trebuie s expire dup o perioad specificat de timp. - Parolele trebuie s conin litere, cifre i alte caractere speciale pentru a nu fi uor spart. - Regula standard a parolelor spune c utilizatorii nu trebuie s i noteze parolele pe hrtie (sau alt suport) i s le lase nesupravegheate, sau le fac publice. - Trebuie definite reguli n legtur cu expirarea parolelor i blocarea conturilor (n momentul n care s-a nregistrat o ncercare nereuit de conectare sau cnd a fost depistat o modificare suspect n configuraia sistemului).

Sisteme de detectie a intruziunilor. Un sistem de detecie a intruziunilor (Intrusion Detection System - IDS) este un sistem software/hardware responsabil cu detectarea de date suspecte ce pot fi considerate neautorizate cu privire la prezena acestora n reea. Un sistem IDS inspecteaz toat activitatea reelei i identific structuri de date suspecte ce pot indica un atac din partea cuiva care ncearc s se conecteze sau s compromit un sistem. Un IDS este diferit fa de un firewall. Un firewall limiteaz accesul la reea n sensul prevenirii intruziunilor, dar nu semnalizeaz un atac sau o conexiune neautorizat din interiorul reelei. Un sistem IDS evalueaz activiti suspecte de intruziune i semnalizeaz aceste activiti. Un firewall este configurat s accepte sau s blocheze accesul la un anumit serviciu sau computer pe baza unui set de reguli ce acioneaz la grania reelei. Prin intermediul unui firewall, dac traficul corespunde unui anumit model, acesta este permis fr a se verifica coninutul su. Un sistem IDS captureaz i inspecteaz tot traficul, indiferent dac acesta este permis sau nu. Pe baza coninutului pachetelor transmise n reea, la nivel IP sau la nivel aplicaie, se va declana o alarm n momentul apariiei unui eveniment suspect. Sistemele IDS pot fi de regul de trei tipuri: - ca sisteme hardware de sine stttoare care supravegheaz traficul, - ca o aplicaie software pentru un server dedicat, - ca un modul hardware de tip add-inpentru firewall-ul existent.

Retele private virtuale (VPN) Criptarea legturii poate fi folosit n sensul n care utilizatorii au iluzia c se afl ntro reea privat chiar i atunci cnd este vorba depsre o reea public. Aceast abordare poart numele de reea privat virtual (virtual private network - VPN). n mod normal, securitatea fizic i cea administrativ sunt suficiente pentru a proteja transmisia n interiorul reelei. Cea mai mare expunere are loc ntre staia de lucru i perimetrul reelei/serverului. Un firewall reprezint un dispozitiv (hardware/software) de control al accesului situat ntre dou reele sau segmente de reea. Firewall-ul filtreaz tot traficul ntre reeaua intern protejat i reeaua/segmentul de reea extern mai puin protejat. Multe firewall-uri pot fi folosite pentru implementarea unei VPN. Atunci cnd un utilizator stabilete o prim sesiune de comunicaie cu firewall-ul, utilizatorul poate cere o sesiune de comunicaie VPN. Clientul utilizatorului i firewall-ul negociaz o cheie de criptare pentru sesiunea respectiv, iar firewall-ul i clientul folosesc aceast cheie pentru a cripta tot traficul transmis ntre ei. n acest mod, reeaua mai mare este restricionat doar celor cu acces special de VPN. Cu alte cuvinte, utilizatorul are senzaia c reeaua este privat, cu toate c nu este de fapt. Modul de transmisie a datelor n cadrul reelei VPN se numete tunel criptat de comunicaie sau tunel. Reelele private virtuale sunt create atunci cnd firewall-ul interacioneaz cu un serviciu de autentificare din interiorul perimetrului reelei. Firewall-ul poate transmite datele legate de autentificarea utilizatorului ctre serverul de autentificare i, odat cu confirmarea identitii, firewall-ul ofer utilizatorului privilegii corespunztoare de securitate. Spre exemplu, unei persoane de ncredere (precum un angajat sau un administrator de sistem) i se poate acorda accesul ctre resurse inaccesibile altor utilizatori obinuii. Firewall-ul implementeaz controlul accesului pe baza reelei VPN. O reea VPN cu acces privilegiat este prezentat n figura urmtoare: