Download presentation
Presentation is loading. Please wait.
1
Punctaj și prezență Prezență:
Nu sunt admise absențe la laborator. Fiecare absență se depunctează cu 0,1 din nota finală. Punctaj: 3 puncte pentru activitatea de la laborator: Un test (comenzi si shell script) Bibliografie: Laboratoare Iuliana Dorobăț, Sistemul de operare UNIX, Editura ASE, 2011. 7 puncte examen final: Bibliografia se regaseste la adresa web Punctajul suplimentar se va adauga la nota finala. Examenul contine: Intrebari si probleme teoretice – a se studia materialele prezentate in sectiunea Activitate curs de pe website Intrebari din activitatea de laborator (similar testului de la laborator); Un schell script de realizat.
2
Examenul contine: Intrebari si probleme teoretice – a se studia materialele prezentate in sectiunea Activitate curs de pe website Intrebari din comenzi (similar primul test de la laborator) Un schell script de realizat
3
Curs 1 1. Ce este un sistem de operare?
2. Istoria sistemelor de operare 3. Tipuri de sisteme de operare 4. Organizarea unui sistem de calcul(revizuire)
4
1.1. Introducere Un sistem de calcul constă din: Hardware
Hardware constă din: dispozitive fizice adică circuite integrate, fire, surse de tensiune etc. Nivelul microarhitectură grupează toate dispozitivele fizice pentru a forma unități funcționale. Nivelul limbaj mașină se referă la totalitatea instrucțiunilor și hardware-ului pus la dispoziția unui programator în limbaj de asamblare. Acest nivel formează ISA ( Instruction Set Arhitecture). Pentru a masca nivelul mare de complexitate identificat la nivelul hardware au fost create sistemele de operare. Aplicaţiile software sunt programe, sisteme informatice, etc. dezvoltate sau achiziționate de către utilizatori cu scopul de a rezolva probleme de ordin profesional care necesită utilizarea unui computer. Un sistem de calcul constă din: Hardware Sistem de operare Aplicaţii software
5
1.2. Ce este un sistem de operare?
Funcțiile de bază ale unui SO sunt: Extinderea mașinii SO prezintă utilizatorului echivalentul unei mașini extinse sau virtuale care este mai ușor de programat decât hardware-ul (prin utilizarea nemijlocită a acestuia). SO furnizează o serie de servicii pe care programele le pot obține utilizând instrucțiuni speciale numite apeluri de sistem. Gestionarea (controlul și alocarea) resurselor din perspectiva: Multiplexării(partajării) în timp Multiplexării în spațiu Multiplexării în timp –SO decide care program și pentru cât timp va utiliza o anumită resursă. Multiplexării în spațiu –SO decide spațiul din memorie alocat pentru fiecare program Multiplexării în timp SO decide care program și pentru cât timp va utiliza UCP. Multiplexării în spațiu SO decide spațiul din memorie alocat pentru fiecare program. O altă resursă care necesită multiplexare înafară de memorie este HD deoarece acesta poate stoca fișiere ale mai multor utilizatori în același timp.
6
2.1. Istoria SO (1) Sisteme batch(lot)
În vederea eliminării unor timpi morți care apăreau datorită manipulării manuale a cartelelor perforate de către operatori către/din sala de input/output au apărut sistemele batch. Sistemul IBM 1401 era specializat pe citirea, copierea și tipărirea rezultatelor și ca atare acesta a fost utilizat în vederea colectării mai multor job-uri care erau înregistrate pe bandă magnetică. Banda magnetică era derulată înapoi (de către un operator) după care era introdusă în sistemul de calcul care prelucra datele și oferea rezultatele tot pe o bandă magnetică. Aceasta din urmă era preluată de operator și apoi trimisă spre tipărire. Practic se prelucra un întreg lot (batch) de job-uri. Sisteme batch(lot) Programatorul aduce cartela perforată la IBM1401 Se citește cartela pe banda magnetică Operatorul introduce banda magnetică în sistemul de calcul IBM 7094 Banda magnetică rezultată în urma prelucrărilor este introdusă în IBM 1401 pentru tipărirea rezultatelor
7
2.1. Istoria SO (2) Prima generație 1945 – 1955
Sisteme enorme care realizau doar calcule matematice elementare. A doua generație Sisteme cu tranzistori, sisteme batch,mainframe, limbaj de asamblare, FORTRAN. A treia generație 1965 – 1980 Circuite integrate,multiprogramarea, spooling, minicomputere A patra generație 1980 – present Microcalculatoare(personal computers), MS-DOS, GUI, Windows 95, 98, NT,2000 Me,Vista, 7,...., UNIX, Linux, network operating systems și distributed operating systems. În 1950 au apărut cartelele perforate; nu exista noțiunea de limbaj de programare sau limbaj de asamblare; nu exista distincție între designeri, dezvoltatori, operatori, programatori și personalul de întreținere a unei mașini de calcul, fiecare mașină putând fi manipulată doar de o anumită echipă de persoane. Aceste sisteme de calcul sunt foarte mari și de obicei ocupau o întreagă încăpere. Astăzi ele se numesc mainframe-uri. Se programa în FORTRAN sau limbaj de asamblare. IBM360 utiliza circuite integrate și încorpora funcționalitățile sistemelor IBM 1401 și În această perioadă s-au introdus noțiunile de multiprogramare și spooling. Multiprogramarea permitea încărcarea în zona de memorie a mai multor job-uri simultan ceea ce a condus la eficientizarea activității UCP care astfel nu aștepta încheierea tuturor operațiilor de I/O a unui job pentru a prelucra datele de intrare ale unui alt job. Spooling-ul (Simultaneous Peripheral Operation On Line) este o tehnică de citire automată a job-urilor direct de pe cartelă pe disk ceea ce a dus la eliminarea benzii magnetice pe care se încărca un lot de job-uri și ca atare a dus la dispariția sistemului batch IBM 1401. Înafară de apariția microcalculatoarelor această perioadă este semnificativă deoarece a apărut primul sistem de operare MS-DOS căruia mai târziu i s-a dezvoltat o interfață grafică GUI(Graphical User Interface). De asemenea perioda este semnificativă pentru dezvoltarea principalelor sisteme de operare care le cunoaștem astăzi adică Windows, UNIX și Linux (dezvoltat de un student al Tanembaum pornind de la o variantă de MINIX și UNIX incluzând evident standardul IEEE pentru UNIX- POSIX). Sistemele de operare de rețea (Network operating systems) nu sunt fundamental diferite de sistemele de de operare bazate pe un singur procesor. Este evidentă, în schimb, necesitatea existenței unei interfețe și programe care să asigure conectarea și accesul de la distanță pe un computer. Sistemele de operare distribuite (Distributed operating systems) funcționează având la bază mai multe procesoare și ca atare nivelul de complexitate al sistemului de operare este mult mai ridicat decât cel al SO bazate pe un singur procesor.
8
2.2.Tipuri de sisteme de calcul
Microcalculatoare sunt accesibile d.p.d.v. al preţului; au dimensiuni reduse şi unele tipuri pot fi portabile; pot fi folosite în orice domeniu; lucrează în reţea putând realiza schimburi de date. Minicalculatoare calculatoare de dimensiuni medii, mai scumpe decat PC-urile; au fost create pentru executarea unor funcţii specializate: aplicaţii multiutilizator, maşini cu control numeric, automatizări industriale, transmisii de date între sisteme dispersate geografic; au putere şi capacitate de stocare mai mare, UCP complexă, sistem de I/O foarte dezvoltat în sensul comunicării prin reţea de periferice în sistem multiutilizator. Mainframe-uri situat între supercalculatoare şi minicalculatoare d.p.d.v. al performantelor si al pretului; au procesorul foarte complex, volum mare de stocare în UM , sistem de I/O complex, orientat pe gestionare de staţii de lucru, permit acces multiutilizator; funcţionează de regulă fără întrerupere, ceea ce presupune accesul controlat la date şi un sistem de protecţie adecvat. Supercalculatoare sunt cele mai puternice, complexe şi scumpe sisteme electronice de calcul; au procesorul format dintr-un număr mare de microprocesoare; sunt proiectate pentru calcul paralel; sunt utilizate în domenii care necesită prelucrarea complexă a datelor, cum ar fi: reactoare nucleare, proiectarea aeronavelor, seismologie, meteorologie.
9
3. Tipuri de SO Mainframe operating systems Server operating systems
Multiprocessor operating systems Personal computer operating systems Real-time operating systems Embedded operating systems Smart card operating systems Sensor node operating systems Aceste SO oferă trei tipuri de servicii: batch, transaction processing și timesharing. Sistemul batch încorporat tratează job-urile de rutină care nu necesită intervenția unui utilizator, procesarea tranzacțiilor se referă la capacitatea acestor SO de a prelucra un număr foarte mare de cereri minore ca și nivel de prelucrare, iar sistemul de timesharing (partajare în timp) permite mai multor utilizatori să execute diferite job-uri simultan pe același computer cum ar fi de exemplu interogarea unei BD foarte mari. Aceste SO rulează pe servere care pot fi microcalculatoare foarte mari, stații de lucru sau mainframe-uri și permit utilizatorilor unei rețele să partajeze simultan resurse hardware și software. Pentru a obține o putere mare de prelucrare se pot conecta multiple UCP într-un singur sistem. Aceste sisteme se numesc paralele, multicomputere sau multiprocesoare. Acestea necesită SO speciale care de fapt sunt variații ale SO pentru servere care au implementate funcționalități specifice pentru comunicare și conectivitate. Sunt destinate furnizării de GUI pentru un singur utilizator. Sunt utilizate de obicei pentru automatizarea liniilor de producție și pot fi hard real time systems pentru care este imperativ necesar ca un anumit job să se execute exclusiv doar într-un anumit moment și soft real time systems care permit abateri. Sunt SO specifice unor dispozitive mobile cum ar fi PDA și smartphone-urile. Au dimensiunea unei cărți de credit și conțin UCP și sunt destinate realizării unei singure funcții cum ar fi de exemplu plăți electronice.
10
4.1. Componenta hardware a unui PC
Structura unui PC este mult mai complexă și o vom studia mai târziu. Componentele unui PC(Personal Computer)
11
4.2. Procesorul(1) (a) Modelul pipeline (b) UCP superscalară
Creierul fiecărui PC este UCP care extrage instrucțiuni din memorie și le execută. Ciclul de bază al funcționării oricărui procesor este extrage (fetch) prima instrucțiune din memorie, decodifică(decode) instrucțiunea pentru a determina tipul acesteia și operanzii, execută instrucțiunea. Ciclul se reia pentru fiecare instrcțiune. Fiecare UCP are doar un set de instrucțiuni care le poate executa. Deoarece accesarea memoriei în vederea extragerii unei instrucțiuni ia mai mult timp decât execuția ei, toate UCP conțin un set de regiștri. În consecință setul de instrucțiuni al UCP conține o serie de instrucțiuni care permit încărcarea datelor din memorie într-un registru sau stocarea datelor dintr-un registru în zona de memorie. Înafară de acești regiștri generali, există și regiștri speciali cum ar fi: PC (Program counter sau IP- Instruction Pointer pentru procesoarele Intel) care conține adresa din memorie a următoarei instrucțiuni ce va fi executată SP(Stack Pointer) care punctează către vârful stivei încărcată în zona de memorie PSW(Program Status Word) stochează biți de control cum ar fi pentru setarea modului (kernel sau user), etc. Am văzut anterior că SO decide care program utilizează la un moment dat o resursă de exemplu UCP. Ca atare în momentul în care apare necesitatea multiplexării în timp a UCP, SO poate opri din execuție un anumit program pentru a restarta un altul. În acest moment SO salvează toți regiștrii pentru a putea relua o execuție întreruptă anterior. Astăzi UCP are capacitatea de a executa mai multe instrucțiuni simultan figura (a)(se execută blocuri de instrucțiuni sau unit-uri). Mai avansat decât modelul pipeline este modelul din figura (b) care prezintă o UCP superscalară. (a) Modelul pipeline (b) UCP superscalară
12
4.2. Procesorul(2) Tranziția din modul user în modul kernel
Marea majoritate a UCP (exceptând cele foarte simple de exemplu, embedded OS, pe care le găsim pe PDA) prezintă două moduri: kernel și user. Un bit de control din registrul PSW setează modul. În modul kernel UCP poate executa fiecare instrucțiune din setul său și utiliza orice componentă hardware. În modul utilizator evident accesul este restricționat. Pentru a obține un serviciu al SO un program (rulat în mod utilizator) trebuie să genereze un apel de sistem (system call) care invocă SO. Se generează o excepție(trap instruction) care modifică starea bitului de mod. SO realizează prelucrările în mod kernel după care la finalizare redă controlul programului care va rula în mod utilizator și va executa instrucțiunea ce urmează apelului de sistem. Tranziția din modul user în modul kernel
13
4.3. Memoria Ierarhia tipurilor de memorie existente
Regiștrii sunt realizați din același material ca și UCP și ca atare sunt o categorie de memorie cu o viteză comparativă cu a UCP. Capacitatea de stocare a acestora este de 32x32 biți pentru o UCP pe 32 biți. Memoria cache este în general controlată de hardware. Memoria principală este împărțită în linii cache formate din 64 bytes care conțin adresele 0->63 pe linia cache 0, adresele pe linia cache 1, etc. Cele mai des utilizate linii cache sunt păstrate în memoria cache de înaltă viteză situată în interiorul UCP. Când un program accesează zona de memorie prima dată se verifică memoria cache pentru a verifica disponibilitatea datelor în această locație. Dacă datele se regăsesc în memoria cache timpul necesar accesării lor este de 2 bătăi de ceas a UCP, altfel se accesează memoria principală și atunci acest timp este substanțial mai mare. Memoria principală sau memoria RAM (Random Acces Memory), este o memorie volatilă a cărui conținut dispare la deconectarea PC-ului de la sursa de curent electric. Înafară de RAM PC-urile conțin și ROM(Read Only memory) memorie nevolatilă care nu poate fi accesată, este rapidă și destul de ieftină. Memoria EEPROM (Electrical Erasable ROM) și flash RAM sunt tot nevolatile dar pot fi rescrise sau șterse. Memoria CMOS(Complementary Metal Oxide Semiconductor) este volatilă și este utilizată pentru memorarea orei și datei curente și alți parametri de configurare cum ar fi HD de boot. Aceasta memorie funcționează pe baza unei baterii. HD este de două ori mai ieftin și prezintă o capacitate de stocare mult mai mare decât RAM, timpul de acces la date este de trei ori mai mic decât al RAM, acest lucru se datorează faptului că HD este un dispozitiv mecanic. Banda magnetică și alte suporturi de stocare disponibile astăzi. Ierarhia tipurilor de memorie existente Unde plasați în această ierarhie discul magnetic și discul optic?
14
4.4. HD
15
4.5.Memoria principală Ce se întâmplă când în memorie avem nevoie să stocăm mai multe programe simultan? Soluția cea mai simplă se regăsește în fig (a) care reflectă un PC echipat cu 2 regiștri speciali numiți base register și limit register.Aceștia marchează adresa de început, respectiv de sfârșit a zonei de memorie în care sunt încărcate atât liniile de cod precum și datele. Când un program se execută și se extrage o instrucțiune se verifică dacă registrul IP (Instruction Pointer) punctează către o adresă mai mică decât cea reținută de limit register, caz în care se adaugă conținutul IP la base register și se transmite valoarea în memorie. Astfel ne asigurăm că programul nu va referi nici o zonă de memorie care nu îi este alocată. Această verificare și mapare rezultă în convertirea unei adrese generată de program numită adresă virtuală într-o adresă utilizată de memorie numită adresă fizică.Dispozitivul care realizează acest lucru se numește MMU sau Memory Management Unit care se regăsește fizic în UCP sau foarte aproape de aceasta și logic se interpune între CPU și memorie. În a doua figura este exemplificat o MMU mai complexă în care două programe partajează aceiași zonă de memorie pentru liniile de cod dar zone de memorie diferite pentru datele cu care operează. MMU sunt mult mai complexe decât exemplificările realizate motiv pentru care este important de reținut că managementul acestei unități se realizează de către SO. Despre memorie trebuie să reținem că: Memoria cache maschează de fapt viteza mult mai mică a memoriei principale în comparație cu UCP; de aici rezultă că memoria cache are un impact major asupra performanței unui PC. Dacă un program rulează de ceva timp memoria cache este încărcată cu liniile cache specifice acestuia și ca atare oferă o performanță bună. În schimb dacă vrem să rulăm și un alt program datorită faptului că memoria cache este deja plină va trebui ca al doilea program sa îl încărcăm linie cu linie în zona de memorie. O altă problemă care apare este faptul că la schimbarea de la un program la altul, regiștrii MMU se modifică iar aceștia sunt mult mai mulți decât cei patru exemplificați în fig (b). Morala este că ambele situații sunt consumatoare de timp.
16
4.6. Dispozitive I/O Metode de realizare a operaţiilor de I/O: Clasică
Programul generează un apel de sistem SO(kernelul) apelează driverul Driverul pornește operația de I/O și verifică permanent dacă dispozitivul a finalizat comanda La finalizarea operației de I/O SO redă controlul programului Utilizarea întreruperilor Driverul actualizează regiștrii controlerului. Controllerul pornește dispozitivul. La finalizarea operației de I/O controllerul semnalizează acest lucru către controllerul de întreruperi. În cazul în care controllerul de întreruperi acceptă întreruperea atenționează UCP. Controllerul de întreruperi furnizează numărul dispozitivului care a generat întreruperea către UCP. Dispozitivele de I/O prezintă: un controller și dispozitivul propriu-zis. Controllerul acceptă comenzi ale SO în vederea realizării unor operațiuni specifice dispozitivului respectiv. Controllerul furnizează SO o interfață simplă pentru a ușura funcția acestuia de a controla dispozitivul în sine. Interfața controllerului nu este același lucru ca și interfața dispozitivului în sine. În general ceea ce SO sesizează este interfața controllerului. Software-ul care interacționează cu controllerul se numește driver de dispozitiv. Driverele se instalează pe SO și rulează în mod kernel. Orice controller deține un număr de regiștri proprii care îi utilizează pentru a realiza comunicarea cu dispozitivul. Există sisteme care au acești regiștri mapați în spațiul de adresare a SO pentru a putea fi scriși și citiți ca oricare alte cuvinte din memorie și există sisteme în care acestor regiștri li se atașează un port de I/O și evident o adresă pentru fiecare port. I/O se realizează în trei moduri. Cea mai simplă metodă(prima) este: Programul generează un apel de sistem SO(kernelul) apelează driverul Driverul pornește operația de I/O și verifică permanent dacă dispozitivul a finalizat comanda La finalizarea operației de I/O SO redă controlul programului Această metodă blochează activitatea UCP până la finalizarea operației de I/O. De aceea a apărut noțiunea de întrerupere (fig )- a doua metodă : Driverul spune controllerului ce să facă actualizând regiștrii acestuia.Controllerul pornește dispozitivul. La finalizarea operației de I/O controllerul semnalizează acest lucru către controllerul de întreruperi. În cazul în care controllerul de întreruperi acceptă întreruperea atenționează UCP. Controllerul de întreruperi furnizează numărul dispozitivului care a generat întreruperea către UCP. În felul acesta mai multe dispozitive de I/O pot rula în același timp. A treia metodă de a realiza operații de I/O este prin utilizarea DMA(Direct Memory Acces) care controlează fluxul de biți dintre memorie și controllere fără intervenția constantă a UCP. UCP poate activa sau dezactiva întreruperile. Dacă mai multe dispozitive termină operațiile de I/O simultan controllerul de întreruperi este cel care decide care va fi primul dispozitiv preluat de către UCP la reactivarea întreruperilor de către acesta. Prin utilizarea DMA(Direct Memory Acces) care controlează fluxul de biți dintre memorie și controllere fără intervenția constantă a UCP.
17
4.7.Structura unui sistem Pentium
Acest sistem prezintă 8 magistrale fiecare având funcții și rate de transfer diferite: Cache Local Memory PCI(Peripheal Component Interconnect)- succesor ISA SCSI (Small Computer System Interface) creată pentru dispozitive ce necesită o largime de bandă mare(disk, scaner) USB(Universal Serial Bus)inventat pentru atașarea dispozitivelor mai lente cum ar fi mouse-ul și tastatura; toate dispozitivele USB utilizează un singur driver care nu necesită reboot la instalare. IDE(Integrated Drive Electronics)-utilizată pentru interconectarea cu dispozitive periferice cum ar fi CD-ROM-ul ISA(Industry Standard Arhitecture) SO trebuie să controleze și configureze întreaga structură din figură, motiv pentru care s-a proiectat un sistem numit plug and play. Înainte de acest sistem fiecare dispozitiv de I/O avea atașat un nivel fix al întreruperii și adrese fixe pentru regiștri de I/O, astfel încât era necesar ca utilizatorul să fixeze nivelul de întrerupere la instalarea unui dispozitiv pentru a nu apare conflicte. Plug and play presupune că în momentul bootării sistemul BIOS(Basic Input Output System) scanează sistemul și verifică ce dispozitive sunt instalate și asignează în mod centralizat nivelurile de întrerupere și adresele pentru regiștrii de I/O.
18
De știut...(1) Tipuri de sisteme de calcul și caracteristicile lor.
Funcțiile SO. Ce tip de memorie se citește inițial la restartarea unui sistem de calcul? Ce reprezintă ISA? La ce se referă termenul de multiplexare? Definiți termenul de multiprogramare. Definiți termenul de spooling. Ce reprezintă GUI? Care este diferența dintre SO pentru rețea și sistemele de operare distribuite? Ce tipuri de sisteme de calcul cunoașteți și care sunt principalele lor caracteristici? Care sunt avantajele sistemelor paralele? Descrieți multiprocesarea asimetrică. Descrieți multiprocesarea simetrică. Descrieți sistemele cluster.
19
De știut...(2) Clasificați SO după destinația lor.
Descrieți ciclul de bază al funcționării unui procesor. Precizați care este diferența dintre modelul de funcționare pipeline și modelul de funcționare al unei UCP superscalare. Care sunt modurile de funcționare ale UCP? Ce reprezintă un apel de sistem? Definiți PSW, IP, SP. Ce tipuri de memorie cunoașteți? Descrieți modalitatea de funcționare a memoriei cache. Ce reprezintă RAM, ROM, EEPROM, CMOS, flash RAM ? Structura unui HD și modalitatea de funcționare a unui HD. Ce reprezintă MMU? Care este diferența dintre adresa fizică și cea virtuală? Descrieți cele trei metode de realizare a operaţiilor de I/O. Ce reprezintă o întrerupere?
20
De știut...(3) Descrieți mecanismul de funcționare al întreruperilor.
Ce reprezintă DMA? Ce reprezintă PCI? Ce reprezintă SCSI? Ce reprezintă USB? Ce reprezintă IDE? Ce reprezintă IEEE1394(firewire)? Ce reprezintă BIOS? Descrieți sistemul plug &play. Definiți multitasking. Ce valoare are mode bit pentru modul kernel? Descrieți mecanismul de tranziție de la modul user la modul kernel. MS-DOS a fost proiectat cu mod de operare dual? Caracterizați procesoarele multithreading și multicore. Caracterizați Sensor Node operating systems.
21
Bibliografie A. Tanembaum, Modern Operating Systems, Prentice Hall 2001, pag 1-35. A. Silberschatz, P. Galvin, Operating System Concepts, John Wiley and Sons Inc., 2005, pag 1-20. A. Tanembaum, Modern Operating Systems, Prentice Hall, 2007, pag 1-37. Gh. Dodescu, Sisteme de operare, Ed. Economică, 2003, pag
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.