Sisteme De Operare Curs 1 PDF
Document Details
Uploaded by Deleted User
Stefan Mocanu, Mihnea Moisescu
Tags
Summary
Acest document este un curs despre sisteme de operare. Se abordează subiecte precum introducerea în arhitectura calculatoarelor, un scurt istoric al sistemelor de calcul, componentele sistemelor de calcul și arhitecturi de bază ale acestora.
Full Transcript
SISTEME DE OPERARE CURS 1 INTRODUCERE IN ARHITECTURA CALCULATOARELOR Conf. Dr. Ing Stefan Mocanu Conf. Dr. Ing Mihnea Moisescu Cuprins 1. Descrierea cursului USO 2. Scurt istoric al sistemelor de calcul 3. Componente a...
SISTEME DE OPERARE CURS 1 INTRODUCERE IN ARHITECTURA CALCULATOARELOR Conf. Dr. Ing Stefan Mocanu Conf. Dr. Ing Mihnea Moisescu Cuprins 1. Descrierea cursului USO 2. Scurt istoric al sistemelor de calcul 3. Componente ale sistemelor de calcul 4. Arhitecturi de baza ale sistemelor de calcul 1. DESCRIEREA CURSULUI USO Obiective 1. Dobandirea/aprofundarea unor notiuni teoretice (c) 2. Dobandirea/aprofundarea unor abilitati practice (l) 3. Familiarizarea cu noi concepte (c+l) 4. Cresterea gradului de intelegere a functionarii unui SO (c+l) 5. Imbunatatirea abilitatilor de configurare/utilizare a unui SO (c+l) Curs 1. Introducere in SO 2. Procese si fire de executie 3. Memorie 4. Sistemul I/O 5. Retelistica 6. Securitatea SO 7. SO embedded, distribuite, mobile Laborator 1. Sisteme de Operare: Linux, Windows, 2. Organizare, comenzi uzuale, retelistica, securitate Evaluare/notare 1. Punctaj laborator: 1. Activitate practica: 50 2. Evaluari pe parcurs (diverse forme): bonus Observatii: 1. Prezenta la laborator este obligatorie ! 2. Laboratoarele nu se pot reface 3. Nu se pot face mai multe laboratoare odata ! 4. Este OBLIGATORIE obtinerea a cel putin 50% din punctajul de laborator pentru a putea sustine examenul final ! 5. Lipsa sau insuficienta punctajului de laborator (vezi 4) duce la repetarea materiei !!! Evaluare/notare 2. Punctaj examen final: 50 Observatii: 1. Prezenta la curs este obligatorie ! 2. Nu se obtin puncte suplimentare pentru prezenta 3. Se pot obtine puncte bonus prin activitati suplimentare 4. Prezentarea la examenul final este conditionata de promovarea laboratorului (vezi slide-ul anterior !) 5. Examenul final va avea loc in timpul ultimului curs. 2. SCURT ISTORIC AL SISTEMELOR DE CALCUL Ce este un calculator ? Ce este un calculator ? Definitie: Un dispozitiv electronic capabil sa primeasca informatii (date) intr-un format si sa execute o secventa de operatii, in concordanta cu un set predeterminat de instructiuni (program), pentru a produce un rezultat sub forma informatiilor sau semnalelor. Oxford dictionary Ce este un calculator ? Un calculator este un dispozitiv care: Accepta intrari Executa in mod automat o procedura (lista de pasi) Genereaza iesiri http://www.computingbook.org/ Cronologie Generatia Prima A doua A treia A patra Zero Generatie Generatie Generatie Generatie 1945 1955 1965 1980 prezent 1970 1989 ELECTRONICS ERA MINI MICRO ERA ERA NETWORK ERA Generatia zero 1926 - Julius Edgar Lilienfield – patenteaza tranzistorul Tranzistorul este un dispozitiv electronic cu doua functii principale: Fig 3 amplifica si comuta semnale 1940 – ENIGMA - familie de masini electromecanice criptografice utilizate pentru criptarea și decriptarea de mesaje secrete Fig 1 Generatia zero - fotografii 1941 - Konrad Zuse - Germania, realizeaza primul calculator programabil Fig 4 1943 – Colossus – Anglia, calculator folosit pentru decriptare – mesaje ENIGMA Fig 2 Prima generatie (1945-1955) - Cronologie 1945 - ENIAC (Electronic Numerical Integrator Analyzor and Computer) – dezvoltat de Ballistics Research Lab si contruit la “University of Pennsylvania” – primul calculator electronic 1947 – Tranzistorul este dezvoltat de Bell Telephone Laboratories. Fig 5 Prima generatie (1945-1955) - Cronologie 1951 - UNIVAC (Universal Automatic Computer) – prima memorie cu mercur- 12,000 cifre. 1952 - EDVAC (Electronic Discrete Variable Fig 6 Computer) realizat pentru armata SUA 1953 - IBM 650 – primul computer produs in masa – 500 tuburi cu vid Fig 7 Fig 8 Prima generatie (1945-1955) - Caracteristici Pionieri: Howard Aiken (Harvard), John von Neumann (Princeton), Konrad Zuse (Germania) Relee mecanice – la inceput Tuburi cu vid – continuare Limbaj masina absolut – fire de legatura pe placa de conexiuni – cartele perforate, ulterior – NU exista un limbaj de programare propriuzis Exempu de utilizare: – tabele de sin, cos, log Fig 9 Prima generatie (1945-1955) – fotografii - 2 Programarea ENIAC Fig 9 Prima generatie (1945-1955) – fotografii - 3 Tuburi cu vid A doua generatie (1955-1965) - Cronologie 1957 – FORTRAN = FORmula TRANslating system - IBM 1959 -Texas Instruments si Fairchild Semiconductor dezvolta circuitul integrat 1959 - COBOL = Common Business- Oriented Language. 1960 - Digital Equipment Corporation Fig 11 (DEC) – primul mini-computer cu ecran - Fig 11 PDP-1 - Programmed Data Processor - $120,000 1964 - IBM System/360, - Era Super- computerelor, software ce putea fi schimbat, periferice Fig 12 A doua generatie (1955-1965) - Caracteristici Tranzistoare – Au condus la apriatia “sisteme mari de calcul” (mainframes) – Specializare: proiectant, constructor, programator, depanare – Cartele perforate: limbaj de asamblare, Fig 14 FORTRAN Sisteme cu procesare pe loturi de lucrari (batch processing) – Lot de cartele transferat pe banda magnetica Fig 13 – Banda magnetica citita de sistem – Rezultatele scrise pe banda si transferate la imprimanta Exemple de utilizare: – rezolvare ecuatii diferentiale, inginerie Exemplu tranzistor Circuit tranzistor By Michael9422 - I created a postscript file, used version 4.4 of By Ulfbastel, CC BY-SA 3.0, GNU libplot, and converted it to Sodipodi SVG using the https://commons.wikimedia.org/w/index.php? pstoedit program., CC BY-SA 3.0, curid=3123331 https://commons.wikimedia.org/w/index.php?curid=20983908 Exemplu tranzistor Deschis Exemplu tranzistor Inchis Exemplu tranzistor Poarta logica NAND https://www.101computing.net/from-transistors-to-micro-processors/transistor-nand-gate/ A doua generatie (1955-1965) - Fotografii Fig 13 Generatia a treia (1965-1980) – Cronologie 1 1965 – PDP 8 –primul minicomputer de succes 1968 - Doug Engelbart – primul “mouse” si tastatura, primul procesor “word” = editor de text Fig 15 1969 – ARPAnet - Advanced Research Projects Agency Network – un stramos al Internet-ului. 1970 - Fairchild Semiconductor - cip 256- bit RAM. 1971-Intel - 4004 Microprocessor – Fig 16 primul microprocesor pe 4 biti 1972 -Intel - 8008, microprocessor pe 8-biti Fig 17 Generatia a treia (1965-1980) – Fotografii 1 Fig 20 Generatia a treia (1965-1980) – Fotografii 2 Generatia a treia (1965-1980) – Cronologie 2 1975 -Popular Electronics – lanseaza MITS Altair 8800 – primul “Personal Computer” = PC 1975 - Paul Allen si Bill Gates dezvolta BASIC pentru Altair 8800. Apare Fig 19 Microsoft. 1976 -Steve Wozniak si Steve Jobs – lanseaza Apple I 1977 – 1980 – Apple II - Apple creste la o cota de piata PC de 50% 1979 - Software Arts primul program – ”spreadsheet” = editor de tabele Fig 18 Generatia a treia (1965-1980) - Caracteristici 2 linii de calculatore: – orientate cuvant – calcule numerice – orientate pe caracter – sortare si tiparire IBM – calculatoare cu acceasi arhitectura si set de instructiuni-> programe compatibile Fig 22 Circuite integrate – raport Bill Gates (2013) pret/performanta Multiprogramare – partitionare memoriei pe zone fiecare cu cate un program Ex de utilizare: Fig 21 Paul G. Allen Generatia a treia (1965-1980) - Caracteristici Virtualizare (spooling Simultaneous Peripheral Operation On Line) – transfer imediat de pe cartela pe disc Partajare de timp (timesharing) – fiecare utilizator are un terminal si foloseste acelasi procesor (ex: CTSS Compatible Time Sharing System de la MIT) Fig 23 MULTICS (Multiplexed Information and Steve Jobs Computing Service) – putere de calcul concentrata pusa la dispozitia mai multor utilizatori Versiune pentru un utilizator UNIX – cod sursa disponibil Minicalculatoare: DEC PDP-1: 4k de cuvinte de 18 bit Fig 24 Steve Wozniak Generatia a patra (1980-prezent) - Caracteristici Calculatoare personale – circuite integrate LSL (Large Scale Integration) -> microprocesor Intel 8080 – primul CPU pe 8 biti (scara larga) Sisteme de operare: CP/M (Control Program for Micorcomputer) IBM –PC -> DOS / Basic (Disk Operating System) MSDOS (Microsoft Disk Operating System) - tastatura Aplle Macintosh -> GUI (Graphical User Interface): ferestre, iconite, meniuri, mouse Windows – initial peste MSDOS -> Windows 95 independent Generatia a patra (1980-prezent) –Fotografii 1 1984 – Macintosh 1981 - IBM PC (model 5150) 1982 - Spectrum 1985 – Felix HC Generatia a patra (1980-prezent) –Fotografii 2 3. COMPONENTE ALE SISTEMELOR DE CALCUL 3. Componente ale sistemelor de calcul Sistem de calcul Hardware Software Sistemele de calcul au doua componente: o Componenta hardware o Componenta software 3. Componente ale sistemelor de calcul 1. Scanner 2. CPU = Central processing unit (Microprocessor) 3. Memory (RAM) 4. Expansion cards (graphics cards, etc.) 5. Power supply 6. Optical disc drive 7. Storage (Hard disk) 8. Motherboard 9. Speakers 10. Monitor 11. System software 12. Application software 13. Keyboard 14. Mouse 15. External hard disk Fig 25 16. Printer 3. Componente ale sistemelor de calcul Motherboard Unitate optica Procesor si Sursa tensiune sistem racire CPU Componente hardware: Motherboard Memorii I/O 3. Componente ale sistemelor de calcul 3.1 Motherboard Motherboard = placa de baza Componente de baza: Socket CPU – soclu pentru montarea procesorului Slot Memorie – slot pentru instalarea memoriei Conexiuni Fig 26 dispositive I/O 3.1 Motherboard – Arhitectura motherboard Placa de baza este impartita conventional in urmatoarele zone conectate prin magistrale (BUS): CPU – Central Processing Unit Northbridge – conecteaza memoria RAM si placa video Southbridge – conecteaza dispositive I/O ROM – BIOS Cipset – controller South si North Bridge Fig 27 3. Componente ale sistemelor de calcul 3.1 Motherboard – tipuri constructive Format standard (eng: motherboard form factor): – ATX (Advanced Technology eXtended), – BTX (Balanced Technology eXtended), – NLX (New Low profile eXtended) Fig 28 Hardware – Mother board 3.1 Motherboard – tipuri constructive Magistrale de date: EISA -din 1988 Magitrale de procesor magistala I/O, high-speed. Magistrale extinse: 32-bit, sincronizat cu frecventa CPU exemplu: 33, – ISA - Industry Standard Architecture 40, 50 MHz. – EISA – Extended ISA 160 MB/sec – PCI – Peripherical Component Interconnect – PCIe – PCI Express – AGP – Accelerated Graphics Port PCI Express - din 2004 magistrala seriala I/O, very – IDE – Integrated Device Electronic high speed. – ATA – Advanced Technology Attachment inlocuieste PCI si AGP. – PATA – Parallel ATA v2.0500 MB/sec. / canal. – SATA – Serial ATA v4.0: 1969 MB/s / canal Bandwidth: 32 bits x 33,333,333 clock pulses/second (MHZ) = 4 bytes x 33,333,333 clock pulses/second =132 MB / second 3. Componente ale sistemelor de calcul 3.2 Memoria RAM Module de memorie: – SIMM – Single Inline Memory Module – DIMM – Dual Inline Memory Module – RIMM – RamBUS Inline Memory Module Fig29 Fig30 3. Componente ale sistemelor de calcul 3.3 Central Processing Unit Producatori importanti Central Processing Unit: Intel AMD IBM NVIDIA MOTOROLA QUALCOM VIA 3. Componente ale sistemelor de calcul 3.3 Central Processing Unit www.intel.com https://www.techspot.com/review/2158-intel-tiger-lake-core-i7-1165g7/ Comparatie (exemplu) ? 3. Componente ale sistemelor de calcul 3.3 Central Processing Unit www.amd.com 3. Componente ale sistemelor de calcul 3. Componente ale sistemelor de calcul 3.4 Componente I/O Hardware – I/O 3.4 Componente I/O 4. ARHITECTURI DE BAZA ALE SISTEMELOR DE CALCUL Sistem de calcul - arhitectura Computerul contine unul sau mai multe elemente din urmatoarele categorii: – Procesorul - unitate centrala de procesare (CPU). controleaza functionarea computerului proceseaza datele. numeste – Memoria principala – memorie reala sau primara stoceaza date si programe. este de regula volatila, se pierde la inchiderea computerului – Modulele I/O Asigura transferul datelor intre computer si exterior Ex: dispozitive de memorie secundare, echipamente de comunicare, unitati de disc – Magistrale (de date, de adrese si de control ): comunicarea intre procesoare, memoria de baza si modulele I/O. Toate sunt interconectate pentru a asigura functionarea computerului, adica executia programelor. Sistem de calcul - arhitectura CPU CPU = Central Processing Unit – unitate centrala de procesare CPU alcatuit din: ALU (Arithmetic Logic Unit) – executa operatiile aritmetice si logice Unitatea de control (Control Unit) – controleaza si coordoneaza ALU Sistem de calcul - arhitectura CPU “Viteza procesorului” este determinata de: – frecventa de tact a ceasului procesorului (frecvenţa de lucru) Determina numarul de instructiuni executate pe secunda (uzual MHz, GHz) 1MHz = un million de impulsuir de tact pe secunda – dimensiunea cuvantului utilizat Numarul de biti (usual 32 sau 64) care pot fi prelucrati intr-un anumit moment de timp Sistem de calcul - arhitectura CPU Funcția principala a procesorului este de a executa instructiuni. Instructiunile sunt grupate in programe. Un program este alcătuit din instrucțiuni. In momentul executiei programului, procesorul executa instructiune dupa instructiune (secvential). Tipul de instrucțiuni pe care procesorul le poate executa include: – Instructiuni aritmetice: adunari, inmultiri … – Instructiuni logice: comparatii … – Instructiuni de mutare: muta date dintr-un loc de memorie in altul Sistem de calcul - arhitectura CPU Instructiune Rezultat transferata din transferat in memorie memorie Iesire Intrare Citire Executie Decodare Instructiune Instructiune Eng: Fetch Eng: Decode Eng: Execute Fig. Unitatea Centrala de Procesare - Ciclu de baza al instructiunilor Unitatea Centrala de Procesare Functii de baza: – “Fech” - preluarea instructiunilor din memorie si transferarea catre memoria interna. Stocarea instructiunii se face in registri = componenta adresabila a memoriei. – “Decode” – decodarea instructiunilor – “Execute” – executia instructiunilor Activitati efectuate: – Executia de operatii de baza (logice si aritmetice) – Planificarea si controlul operatiilor – Memorarea instructiunilor si datelor (operanzilor) Modelul von Neuman vs. modelul Harvard Modelul von Neuman Magistrala adrese Memorie CPU Magistrala date vs. Modelul Harvard Magistrala adrese Memorie CPU date Magistrala date Memorie Magistrala instructiuni instructiuni Magistrala de adrese Modelul von Neuman Numit si “Princeton architecture” 1) Un calculator compus din subsisteme legate printr-o magistrala: Memorie ALU (Arithmetic/Logic Unit) Unitate de control Sistem Input/Output (I/O) Fig31 2) Atat programul cat si datele sunt stocate in John von Neumann memorie in timpul executiei. Distinctie intre adresa si continut al memoriei 3) Instructiunile din program se executa secvential. Magistrala adrese Memorie CPU Magistrala date Modelul Harvard Datele si instructiunile sunt stocate separat Procesorul poate simultan: – Cititi o instructiune din memorie – Accesa memoria de date Modelul Harvard Modificat – Nu prevede o separare atat de stricta intre instructiuni si date – Separarea se face in functie de implementare – acceasi memorie separata ierarhic dupa tip: date si instructiuni Magistrala adrese Memorie CPU date Magistrala date Memorie Magistrala instructiuni instructiuni Magistrala de adrese Fig 33 IBM Automatic Sequence Controlled Calculator (ASCC), Harvard Mark I Bibliografie http://elec.widgetlifes.com/the-10-most-influential-computer-history-news- techradar-uk/ http://www.lovendal.net/wp52/uluitorul-mecanism-din-antikythera-un-complex- computer-antic/ http://www.computer-history.info/Page4.dir/pages/Univac.dir/index.html http://ed-thelen.org/comp-hist/samp-collection.html http://www.palvenn.no/ITkonsulent.lnk/main02achievements/cdc/default.htm?p ath=main02achievements/cdc http://www.computer-hardware-explained.com/what-is-a-motherboard.html http://www.technogeek.ro/solid-state-disk.html http://www.c-jump.com/CIS77/CPU/VonNeumann/lecture.html http://web.engr.oregonstate.edu/~traylor/ece112/lectures/comp_arch.pdf Andrew S. Tanenbaum – Sisteme de operare moderne William Stalling – Operating Systems Internals and design Principles Bibliografie – imagini 1 Fig1: A Enigma G machine on display at the National Cryptologic Museum in 2005. - Photographer: Austin Mills - http://en.wikipedia.org/wiki/File:Enigma-G.jpg Fig2: Colossus codebreaking computer in operation, This file is from the collections of The National Archives (United Kingdom), catalogued under document record FO850/234, http://en.wikipedia.org/wiki/File:Colossus.jpg Fig3: http://transistorselect.blogspot.ro/2010/11/blog-post.html Fig4: de|Nachbau des Z1 im deutschen Technik Museum in Berlin, Sursa: de.wikipedia.org: 22:33, 27. Dez 2005.. ComputerGeek Fig5: ENIAC (Electronic Numerical Integrator And Computer) in Philadelphia, Pennsylvania Glen Beck (background) and Betty Snyder (foreground) program the ENIAC in BRL building 328, http://en.wikipedia.org/wiki/File:Eniac.jpg Fig6: Photo by U. S. Navy Electronics Supply Office as part of the Report Department of the Army, Ballistic Research Laboratories - Maryland, A third survey of domestic electronic digital computing systems, Report No 1115, 1961, The UNIVAC II, http://en.wikipedia.org/wiki/File:Univac-I-Navy-Electronics-Supply-Office-BRL61-0992.jpg Fig7: w:IBM 650 computer at Texas A&M University, College Station, Texas, opened to show storage drum and rear of front panel. Author: Cushing Memorial Library and Archives, Texas A&M, http://en.wikipedia.org/wiki/File:IBM_650_with_front_open.jpg Bibliografie – imagini 2 Fig8: The Basic 650 Configuration. Photo: IBM Archive, http://www.columbia.edu/cu/computinghistory/650.html Fig9: IBM vacuum tube module in the museum "Haus zur Geschichte der IBM Datenverarbeitung" in Sindelfingen, Germany, Author: JuergenG, http://en.wikipedia.org/wiki/File:RoehreIBM_090325.jpg Fig10: http://www.columbia.edu/cu/computinghistory/eniac.html Fig11: PDP-1 computer, Author: Matthew Hutchinson, http://en.wikipedia.org/wiki/File:PDP- 1.jpg Fig12: Ein System/360 zur Elektronischen Datenverarbeitung im VW-Werk Wolfsburg (1973), PhotographerSchaack, Lothar, German Federal Archive, http://en.wikipedia.org/wiki/File:Bundesarchiv_B_145_Bild-F038812-0014,_ Wolfsburg, _VW_Autowerk.jpg Fig13: Punch card from a typical Fortran program, Arnold Reinhold, http://en.wikipedia.org/wiki/File:FortranCardPROJ039.agr.jpg Fig14: Assorted discrete transistors. Packages in order from top to bottom: TO-3, TO-126, TO- 92, SOT-23. AuthorTransisto , http://en.wikipedia.org/wiki/File:Transistorer_(croped).jpg Bibliografie – imagini 3 Fig15: SRI’s first computer mouse prototype, Douglas Engelbart AuthorSRI International http://en.wikipedia.org/wiki/File:SRI_Computer_Mouse.jpg Fig16: Intel 4004, Photo by John Pilge. http://en.wikipedia.org/wiki/File:C4004_(Intel).jpg Fig17 CPU Intel C8008-1 AuthorKonstantin Lanzet http://en.wikipedia.org/wiki/File:KL_Intel_C8008-1.jpg Fig18: http://en.wikipedia.org/wiki/File:Apple_II_tranparent_800.png Fig19 http://en.wikipedia.org/wiki/File:Altair_8800_Computer.jpg Fig20: http://en.wikipedia.org/wiki/File:Arpanet_logical_map,_march_1977.png Fig21: Paul G. Allen at Flying Heritage Collection, AuthorMiles Harris, http://en.wikipedia.org/wiki/File:Paul_G._Allen.jpg Fig22: Bill Gates in Berlin (2013), Authorwww.dts-nachrichtenagentur.de, http://www.dts- nachrichtenagentur.de/kostenlose_bilder.php Fig23: Steve Jobs shows off the iPhone 4 at the 2010 Worldwide Developers Conference, AuthorMatthew Yohe http://en.wikipedia.org/wiki/File:Steve_Jobs_Headshot_2010- CROP.jpg Fig24 Steve Wozniak, Photo taken by Al Luckow, http://en.wikipedia.org/wiki/File:Steve_Wozniak.jpg Bibliografie – imagini 4 Fig25 Exploded view of a personal computer, Self-published work by User:HereToHelp and File:Personal computer, exploded 5.svg, http://en.wikipedia.org/wiki/File:Personal_computer,_exploded_6.svg Fig26 labeled diagram of Acer E360 Socket 939 motherboard by Foxconn (labels in English), Derivative works of this file: Acer E360 Socket 939 motherboard by Foxconn hr.svg, http://en.wikipedia.org/wiki/File:Acer_E360_Socket_939_motherboard_by_Foxconn.svg Fig27 block diagram of a modern motherboard (legend in English), user:Moxfyre. Original uploader was Moxfyre at en.wikipedia, http://en.wikipedia.org/wiki/File:Motherboard_diagram.svg Fig28 Comparison of (personal) computer motherboard form factors, VIA Gallery from Hsintien, Taiwan, http://en.wikipedia.org/wiki/File:VIA_Mini- ITX_Form_Factor_Comparison.jpg Fig29: Crop from :Image:RAM n.jpg, Original uploader was Grendelkhan at en.wikipedia, http://en.wikipedia.org/wiki/File:DIMMs.jpg Fig 30: 3 SDRAM DIMM Slots, Benjamin albert, http://en.wikipedia.org/wiki/File:3SDRAM- DIMMs.jpg Fig 31: http://www.lanl.gov/history/atomicbomb/images/NeumannL.GIF (Archive copy at the Internet Archive), http://en.wikipedia.org/wiki/File:JohnvonNeumann-LosAlamos.gif Fig 32: A Macintosh 128K, Authorw:User:Grm wnr, http://en.wikipedia.org/wiki/File:Macintosh_128k_transparency.png Fig 33: IBM MARK I http://www-03.ibm.com/ibm/history/exhibits/markI/markI_intro.html Utilizarea Sistemelor de Operare Curs 2 Cuprins 1. Introducere in SO 2. Rolul si componentele SO 3. Initializarea Sistemelor de Operare - BIOS 4. Caracteristici ale SO 5. Clasificari ale SO INTRODUCERE IN SO Introducere in SO Introducere in SO Introducere in SO Introducere in SO CARACTERISTICI ALE SISTEMELOR DE OPERARE Functii ale SO Servicii furnizate de SO Caracteristici ale SO Functii ale SO Functii ale SO: gestiunea memoriei, procesorului, dispozitivelor I/O; gestiunea fisierelor de pe dispozitivele de stocare; gestiunea utilizatorilor (in cazul SO multi-user); gestiunea proceselor/threadurilor (cursuri ulterioare); tratarea erorilor; dupa caz, ofera o interfata grafica, prietenoasa cu utilizatorul; in general, un SO ofera un set minim de programe/aplicatii pentru asistarea utilizatorului Servicii furnizate de SO Servicii furnizate de SO ◼ Dezvoltarea de programe ◼ Executia programelor ◼ Accesul la dispozitivele de tip I/O ◼ Accesul controlat la fisiere ◼ Accesul la sistem ◼ Detectarea/corectarea erorilor ◼ Monitorizare ◼ Descrise pe larg in continuare Servicii furnizate de SO ◼ Dezvoltarea de programe: ◼ servicii oferite de SO (editoare, debugger, etc) ◼ instrumente pentru dezvoltarea de programe ◼ Executia programelor: ◼ So planifica pentru executarea unui program. Exemplu: datele si instructiunile sunt incarcate in memoria principala, dispozitivele si fisierele I/O sunt initializate ◼ Accesul la dispozitivele de tip I/O: ◼ dispozitivele I/O necesita propriul set de instructiuni sau semnale de control pentru operare. ◼ SO ofera o interfata ce permite utilizatorului sa acceseze dsipozitivele I/O folosind comenzi predefinite. ◼ Accesul controlat la fisiere: ◼ SO identifica dispozitivelor I/O , ◼ SO determina structura datelor stocate si gestioneaza accesul Servicii furnizate de SO ◼ Accesul la sistem: ◼ asigura protectia fata de utilizatorii neautorizati: parola ◼ limiteaza accesul la anumite componente ale sistemului: clase de utilizatori ◼ Detectarea/corectarea erorilor: ◼ Gestioneaza erorile componentelor hardware (erori de memorie, functionare defectuoasa) ◼ Gestioneaza erori software (impartire la zero, incercari de accesare a unor locatii de memorie interzise, incapacitatea sistemului de a acorda accesul unei aplicatii). ◼ Mecanisme de gestiune. Exemplu: inchiderea programului care a cauzat eroarea, reincarcarea unei operatii sau raportarea erorii catre o aplicatie. ◼ Monitorizare: ◼ statistici privind utilizarea resurselor ◼ Monitorizare a parametrilor de functionare ◼ Scop: imbunatatirea viitoare a performantelor sistemului Proprietati ale SO Sistemele de operare pot fi caracterizate prin urmatoarele proprietati: ❑Facilitate ❑Portabilitate (independenta de HW) ❑Caracter evolutiv ❑Permanenta ❑Actualizare ❑Eficienta Proprietati ale SO Facilitate: usureaza folosirea computerului utilizatorul nu trebuie sa fie preocupat de hardware-ul sistemului de calcul; utilizatorul este interesat de aplicatii SO trebuie sa ofere independenta utilizatorului de HW Eficienta: optimizeaza folosii resurselor Portabilitate (independenta de HW): un SO trebuie sa nu depinde de tipul de procesor, memorie, disc, etc. Proprietati ale SO Caracter evolutiv: implementarea de noi functii fara a afecta functionarea sistemului. scenariul 1 : HW nu se modifica (exemplu ?) scenariul 2 : HW se modifica (exemplu ?) Permanenta: sistemul de operare este in permanenta activ (SO actuale) Actualizare: sistemul de operare face/reface configurarea componentelor HW CLASIFICARI ALE SO Clasificari ale SO I. In functie de numarul de utilizatori 1. Single user: SO deserveste un singur utilizator la un moment de timp dat: MS-DOS, Windows 3.1, Windows CE 2. Multi user: SO deserveste mai multi utilizatori in acelasi timp: Linux, Solaris II. In functie de tipul interactiunii cu utilizatorul 1. Seriale: utilizatorul nu are nici un fel de control asupra executiei programelor proprii; astfel de sisteme de operare nu mai sunt de actualitate; 2. Interactive: utilizatorul are controlul programelor proprii Clasificari ale SO III. In functie de numarul de procese 1. Single tasking: SO executa un singur proces la un moment de timp dat. 2. Multi tasking: SO executa mai multe procese in acelasi timp a. real: sistemul de calcul necesita capabilitati de procesare paralela (procesor cu mai multe nuclee) b. simulat: executia in paralel a proceselor este doar aparenta, se bazeaza pe un mecanism de divizare a timpului de acces la procesor (time sharing) Clasificari ale SO IV. Dupa tipul prelucrarilor 1. SOTR: executia programelor utilizator se face cu anumite garantii in conformitate cu algoritmi puternici de planificare; se intilnesc in domenii critice. Ex: QNX, RTLinux, Enea OSE 2. SO batch processing: caracterizate printr-o deservire secventiala a cererilor 3. SO time-sharing: deservire alternativa a cererilor; executia fiecarui task dureaza foarte putin. Clasificari ale SO V. Dupa tipul si configuratia HW a sistemului de calcul 1. SO pentru calculatoare mici 2. SO pentru calculatoare mainframe 3. SO pentru dispozitive portabile 4. SO embedded 5. SO pentru smart-card-uri VI. Dupa arhitectura kernel 1. SO monolitice 2. SO stratificate 3. SO bazate pe micro-kernel ROLUL SI COMPONENTELE SO Definire SO SISTEM DE OPERARE ◼ program care controleaza executia aplicatiilor ◼ interfata intre aplicatii si componentele hardware Obiectivele sitemului de operare: ◼ Facilitate: usureaza folosirea computerului ◼ Eficienta: optimizeaza folosirea resurselor ◼ Caracter evolutiv: dezvoltarea, testarea si implementarea de noi functii ale sistemului fara sa afecteze functionarea. Definire SO ◼ Aplicatii ◼ Interfata de programare a aplicatiilor (API) ◼ Biblioteci / utilitati ◼ Interfata binara a aplicatiilor (ABI) ◼ SO ◼ Arhitectura set de instructiuni (ISA) ◼ Hardware ◼ Arhitectura set de instructiuni (ISA Instruction Set Architecture): set de instructiuni limbaj masina executate de computer. granita dintre hardware si software. ISA utilizator (user) accesate de SO sau de API si ABI. ISA sistem (system): accesate doar de SO pentru gestionarea resurselor sistemului. Exemplu Ref: Modern Processor Design - Funds of Superscalar Processors Definire SO Interfata binara intre aplicatii (ABI Application Binary Interface) ◼ defineste un standard pentru transferul intre programe (la nivel binar) ◼ defineste interfata de apelare a sistemului de operare si ansamblul resurselor hardware si serviciilor disponibile prin intermediu ISA utilizator. Interfata de programare a aplicatiilor (API Application Programming Interface) ◼ asigura accesul unui program la resursele hardware si la serviciile disponibile prin ISA utilizator si apelarea de biblioteci HLL (High Level Language). ◼ API permite transferul facil al aplicatiilor software catre alte sisteme ce suporta acelasi API, prin recompilare. ◼ https://www.vlsisystemdesign.com/abi-get-this-one-right-risc-v-is-all-yours/ Rolul si componentele SO Aplicatii SO Mem. Int. Mem. Ext. I/O Sistem de Operare Procesor Aplicatii utilizator Rolul si componentele SO Sistemul de Operare: este cel mai important program (set de programe) care ruleaza pe un calculator; controleaza si comunica direct cu toate componentele unui calculator; permite si gestioneaza executarea aplicatiilor utilizator; permite si “intermediaza” legatura dintre aplicatii si componetele HW. Rolul si componentele SO Exemplul 1: Rolul si componentele SO Exemplul 2: Rolul si componentele SO Windows Linux - ls, ps -cd, md, - clear -cls, copy - mkdir - del Aplicatii SO - etc. - etc. Kernel (nucleu) Rolul si componentele SO Aplicatii SO: care este rolul lor ? cine le-a dezvoltat ? unde se gasesc ? cum pot fi executate ? cine le poate executa ? pot fi sterse ? Kernel Oxford Dictionary: KERNEL = ◼ "a softer, usually edible part of a nut" => link with “shell” ◼ "The central or most important part of something." Rolul si componentele SO Kernel (Nucleu): cea mai importanta componenta a SO; este prima componenta care se incarca in memorie dupa pornirea calculatorului; ramane in memoria principala; din acest motiv este de dorit sa ocupe un spatiu cat mai mic fara ca acest lucru sa afecteze functionarea celorlalte componente ale SO sau a aplicatiilor utilizator; este responsabil pentru gestiunea memoriei interne, a proceselor si a discurilor (memorie externa) are privilegii (drepturi) mari (maxime) spre deosebire de aplicatiile utilizator !!! Model Kernel simplificat Programe / Aplicatii Sistem de operare Program 3 Program 2 Explorare Browser Shell Program 1 Interfata fisiere System call Sistem de fisiere Kernel Stiva Gestiune Driveri dispozitiv Retea CPU Management memorie Hardware Model Kernel simplificat Program Program lansat in Rezultat “System call” executie de utilizator “System call” Kernel Executie “System call” ◼ Sistemul de operare ruleaza in doua moduri: ◼ Modul privilegiat nu are restrictii ◼ Modul utilizator este restrictionat pentru: Operatii I/O, accesare CPU si memorie ◼ System call ◼ este un mecanism care asigură interfața dintre un proces și sistemul de operare ◼ un program cere un serviciu oferit de “kernel” Model Kernel simplificat ◼ “System call” ◼ oferă programelor utilizator access la serviciile sistemului de operare prin intermediul API (Application Programming Interface). ◼ Modul de interactiune program – kernel: 1) Procesele se executa în modul utilizator până la momentul întreruperii de catre “system call”. 2) “System call” se execută în modul kernel 3) Dupa finalizare se revine in modul utilizator. ◼ Exemple de utilizare a “system call”: ◼ citirea și scrierea din fișiere / crearea si stergerea fisierelor ◼ crearea și gestionarea de noi procese. ◼ accesul la dispozitive I/O precum scanerul, imprimanta ◼ conexiuni la retea – schimbul de mesaje Kernel monolitic ◼ monolitic Utilizator ◼ mostenire Unix, preluat de Linux Shell si comenzi ◼ functii de baza + Compilator drivere Biblioteci sistem Interfata System call Sistem Stiva Gestiune de fisiere Driveri Unix Kernel Retea CPU Management dispozitiv memorie Interfata hardware Hardware MicroKernel Utilizator ◼ microkernel ◼ Servicii minimale ◼ Mac OS X, MINIX, Programe Sistem Driveri QNX de fisiere dispozitiv Interfata Gestiune Management Kernel Comunicare CPU memorie Interfata hardware Hardware Kernel hibrid ◼ kernel hibrid sau modular Extensii ◼ Similar cu microkernel dar cu system call servicii suplimentare / extensii dinamice ◼ Windows XP, 7 Alte Kernel module de ◼ exokernel baza ◼ Experimental ◼ Separare intre protectia hardware si managementul hardware Sistem de Drivers fisiere Masina virtuala Aplicatie Aplicatie Aplicatie Aplicatie Kernel Kernel Kernel Kernel MV1 MV1 MV1 Hardware Implementare masina virtuala Hardware Fara masina virtuala masina virtuala BIOS BIOS BIOS sistem compus dintr-un chip miniatural de memorie (aflat pe placa de baza) si un software minimal diversi producatori: American Megatrands (AMI), Award Software/Pheonix Technologies (Awared, Pheonix, Pheonix- Award), Datatek Enterprise (DTK), Microid Research (MR), etc. A aparut in 1975 inclus in sistemul de operare - CP/M BIOS Functiile BIOSului control primar al diverselor componente HW: tastatura, monitor, discuri, porturi (serial, paralel, PS2, USB); determina incarcarea sistemului de operare la pornirea sistemului (Bootstrap loader) setarea unor parametri ai sistemului (ora, data, caracteristici functionale pentru diverse componente: placa video, audio, de retea, etc.) testarea sumara a principalelor componente HW (POST = Power-On Self Test) altele: … BIOS Caracteristici BIOS in cazul aparitiei unei probleme la discurile magnetice, continutul BIOSului nu este afectat; este posibila modificarea valorilor si salvarea preferintelor in cazul unei probleme generate de lipsa alimentarii cu energie electrica si descarcarea acumulatorului, setarile din BIOS revin la valorile initiale (“de fabrica”) altele: … BIOS ◼ BIOS executa urmatoarea secventa: ◼ Power-on self-test (POST) ◼ Detecteaza dispozitive Plug & Play ◼ Detecteaza BIOS placa video – executa initializarea video ◼ Detecteaza BIOS alte dispozitive ◼ Afiseaza ecran start-up ◼ Test scurt de memorie ◼ Configurare memorie si dispozitive ◼ Identifica device de boot: ◼ Incarca blocul de boot 0 (Master Boot Record) Secventa BIOS Pornire computer POST Plug’n’Play MBR Boot Loader Kernel OS Componente ◼ POST (Power On Self Test) ◼ Rutine de diagnoza ◼ Initializare HW intern si dispozitive periferice: ◼ Placa video, memoria principala, procesorul, tastatura, altele. ◼ Verificare functionarii corecte ◼ Afisare mesaje de eroare pe ecran (daca este cazul). Daca monitorul lipseste sau exista o defectiune la sistemul video -> mesaj sonor (beeeeeep) Componente ◼ Plug and Play ◼ Sunt cautate dispozitive de tip Plug and Play (de ex.: placa video, placa de sunet) ◼ Daca exista astfel de dispozitive, o parte sau toate functiile BIOS-ului sunt inlocuite cu functii specifice ◼ Daca au aparut modificari de HW (sau disfunctionalitati) este afisat un mesaj pe ecran (poate fi un mesaj de eroare sau o recomandare de actualizare) Componente ◼ Bootstrap Loader ◼ BIOSul acceseaza primul sector al HDD si porneste acest program care este capabil sa recunoasca structura dispozitivului de stocare si sa lanseze/porneasca sistemul de operare ◼ Operating System Kernel (Nucleul Sistemului de Operare) ◼ Kernel-ul (nucleul) SO este incarcat in memoria principala. Din acest moment, SO preia controlul dispozitivelor HW ◼ Comunicarea dintre SO si dispozitivele HW este realizata prin intermediul unor drivere. Ce sunt driverele ? ◼ Updating (Actualizare) ◼ BIOS-urile actuale permit actualizarea – scrierea de informatii ◼ Cine credeti ca realizeaza actualizarea BIOSului ? Introducere in SO Introducere in SO Introducere in SO Introducere in SO Introducere in SO Introducere in SO ◼ GRUB = GNU GRand Unified Bootloader ◼ Volume Boot Record (VBR) ◼NTLDR (abbreviation of NT loader) is the boot loader for all releases of Windows NT operating system ◼ Unified Extensible Firmware Interface (UEFI) Framework UEFI Overview Unified Extensible Firmware Interface ◼ (UEFI) – succesor BIOS ◼ Preia din BIOS: ◼ Power management (Advanced Configuration & Power Interface, ACPI) ◼ System management ◼ Suporta discuri de dimensiuni mari ◼ – BIOS - 4 partitii per disk, pana la 2.2 TB per partitie ◼ – EFI - 9.4 ZB pe partitie http://www.uefi.org/ ◼ Device drivers - inclusi ◼ Boot manager: selectare si incarcare OS ◼ Nu necesita boot loader separat ◼ Extensibil ◼ Dezvoltat in C – independent fata de CPU si OS ◼ Suport pentru retea – IPv4 si IPv6 ◼ Recuperarea datelor si diagnostic independent de OS https://how2do.org/how-to-update-the-pc-bios-uefi/ ◼ UEFI - Windows UEFI Firmware UEFI Boot Manager Windows Boot Manager (bootmgfw.efi) Windows OS Loader (winload.efi) Kernel (ntoskrnl.exe) http://www.uefi.org/sites/default/file s/resources/UEFI_on_Dell%20BizClie nt_Platforms.pdf Bibliografie ◼ A.Tanenbaum & A.Woodhull, “Operating Systems – Design and Implementation”, 2nd edition, Prentice Hall, 2003 ◼ Sibsankar Haldar & Alex A. Aravind, “Operating Systems”, 2009, http://my.safaribooksonline.com/book/operating-systems-and-server- administration/9788131715482 ◼ http://www.greatwhitesnark.com/2010/04/14/operating-systems-venn- diagram ◼ http://www.itim- cj.ro/~jalobean/Cursuri/ArhCalc/Materiale/carte/cap4.htm ◼ http://www.cse.iitm.ac.in/~sdas/courses/comp_org/LEC_INTRO.pdf ◼ Amir Hossein Payberah, Linux Kernel Architecture Utilizarea Sistemelor de Operare Curs 3 Cuprins 1. Descrierea si starea proceselor 2. Crearea proceselor 3. Identificarea si atributele proceselor 4. Gestiunea proceselor DESCRIEREA SI STAREA PROCESELOR Definirea proceselor Descrierea proceselor Starea asociata proceselor Definirea proceselor 1 Ce este un proces ? Pas 1 – cod scris intr-un limbaj de programare Definirea proceselor Pas 2 – compilarea codului 2 Definirea proceselor 1 3 2 Pas 3 – executia codului compliat pe procesor Definirea proceselor Definirea proceselor Definitii Proces = cod binar (program) aflat in executie; = imaginea dinamica a unui program; = o unitate de baza a unei activitati, caracterizata de executia unei secvente de instructiuni, o stare curenta si resurse de sistem asociate Un program devine proces atunci cand este incarcat in memorie in vederea executarii propriu-zise. In cazul in care exista mai multe procese asociate cu un acelasi program, acestea se vor numi instante. Definirea proceselor Tabel de procese in SO windows: Process Manager Descrierea proceselor ◼ In timpul executiei orice proces poate fi caracterizat prin: ◼ Identificator: unic atribuit fiecarui proces ◼ Stare: in executie, in asteptare …. ◼ Prioritate: prioritate relativa la alte procese ◼ Program counter (contor program): adresa urmatoarei instructiuni din program ce se va executa ◼ Pointer de memorie: pointeri catre cod si date asociate procesului Descrierea proceselor ◼ In timpul executiei orice proces poate fi caracterizat prin (continuare): ◼ Context data (Date de context): date din registrele procesorului prezente la momentul executiei procesului ◼ Stare I/O: intrari, iesiri folosite de proces (fisiere, disozitive I/O) ◼ Accounting information ( Informatii gestiune ): timp de procesor folosit, constrangeri de timp, etc Aceste caracteristici sunt stocate intr-o structura de date denumita Process Control Block (Blocul de control proces ) Descrierea si starea proceselor Descrierea proceselor ◼ Un proces are doua componente de baza: ◼ Codul scris – (eng: program code) ◼ Set de date asociate (eng: set of data ) ◼ Un proces are atasat un Process Control Block (PCB) creat si gestionat de SO ◼ PCB contine suficiente informatii pentru a permite SO intreruperea executiei si reluarea executiei unui proces Descrierea proceselor Intreruperea procesului P1 urmata de pornirea procesului P2, intreruperea acestuia si reluarea P1. Proces P1 Proces P2 Interrupt / system call executing Salveaza in PCB1 ready or waiting Incarca din PCB2 executing ready or Interrupt / system call waiting Salveaza in PCB2 Incarca din PCB1 ready or waiting executing 14 Descrierea proceselor ◼ Când un proces este întrerupt: ◼ valorile curente ale program counter și context data sunt salvate în câmpurile corespunzătoare din PCB ◼ starea procesului se schimbă. ◼ Sistemul de operare poate acum pune alt proces în stare de rulare. ◼ Incarcarea unui nou proces: ◼ Se utilizeaza datele din PCB ◼ Starea procesului se sgimba: rulare Schimbarea proceselor Memorie principala Proces 1 ◼ Comportamentul unui program counter proces Proces 2 ◼ secvență de instrucțiuni care Adresa se execută 100 Proces 3 ◼ Denumita: urma a procesului - trace ◼ Comportamentul procesorului Proces 4 ◼ prin afișarea urmelor diferitelor procese. Dispecer Proces 1 Proces 2 Proces 3 300 301 1000 1001 2000 2001 6000 6001 Schimbarea 302 303 304 1002 1003 1004 2002 2003 2004 6002 6003 6004 proceselor 1005 1006 6005 6006 6007 - exemplu 6008 Nr Adresa Nr Adresa instructiune instructiune instructiune instructiune 1 300 19 300 2 301 20 301 3 302 21 302 ◼ Schimbarea proceselor este 4 303 22 303 realizata de un program 5 304 23 304 numit dispecer (dispach) 6 6000 24 1000 7 6001 25 1001 ◼ Acesta este la randul sau un 8 6002 26 1002 9 6003 27 1003 proces care ocupa o zona de 10 6004 28 300 memorie (300-304) 11 6005 29 301 12 6006 30 302 ◼ Dispecerul preia din program 13 6007 31 303 counter instructiunea care 14 300 32 304 trebuie executata 15 301 33 2000 16 302 34 2001 17 303 35 2002 18 304 36 2003 37 2004 Starea asociata proceselor De-a lungul vietii, un proces trece prin mai multe stari: ◼ NEW ◼ READY ◼ RUNNING ◼ WAITING ◼ FINISHED ◼ ZOMBIE - linux Gestiunea propriu-zisa si trecerea dintr-o stare in alta sunt realizate de catre o entitate numita planificator de procese. Starea asociata proceselor Exemplu - Linux Signal Stopped ◼RUNNING Start Signal ◼In executie pe CPU ◼READY Running ◼Pregatit de rulare Ready Running ◼INTERRUPTIBLE Scheduling ◼In asteptarea unui Termination semnal sau eveniment Signal Event Event ◼UNINTERRUPTIBLE Wait Un ◼In asteptarea unui Interrupt Zombie eveniment waiting ◼STOPPED Wait ◼Suspendat Dead ◼EXIT ZOMBIE, EXIT DEAD Interrupt waiting ◼Oprit Starea asociata proceselor Exemplu - Windows ◼ init: being created ◼ ready: waiting to be assigned to a CPU ◼ running: instructions are being executed ◼ waiting: waiting for some event to occur ◼ terminated: has finished execution interrupt ◼ quantum expired ◼ init ◼ terminated ◼ admitted ◼scheduler ◼ exit ◼ ready dispatch ◼ running ◼ I/O or event ◼ waiting ◼ waiting for completion ◼I/O or event Coada de asteptare Windows Ready queue CPU Dispatch I/O 1 queue I/O 1 wait I/O 2 wait I/O n wait I/O occurs I/O n queue CREAREA PROCESELOR Tipuri de procese { Procese sistem - Procese speciale: swapper, init. Procese utilizator Crearea proceselor Cea mai simpla metoda de a crea un proces consta in lansarea in executie a unui program Conditii: ◼ disponibilitate resurse (HW si de alta natura !); ◼ drepturi/permisiuni pentru utilizator; ◼ utilizarea corecta a comenzii specifice. Crearea proceselor Pasi pentru crearea unui proces: 1. Alocarea unui ID 2. Alocarea de memorie pentru proces 3. Se initailizeaza blocul de control 4. Se stabilesc legaturile 5. Se creaza sau extind alte structuri de date Crearea proceselor Crearea proceselor Crearea proceselor Alta modalitate de a genera/crea procese: ◼ din interiorul unui proces existent Procesul curent = proces parinte sau tata. Procesul creat = proces copil sau fiu MOSTENIRE ! In mod normal procesul parinte asteapta finalizarea procesului fiu. Abaterea de la aceasta regula poate duce la generearea de procese zombie. Crearea proceselor T T fork() fork() T F1 F2... Fn T F a. Un singur proces copil b. Mai multe procese copil Crearea proceselor a=5; MOSTENIRE T fork() T F a=5; a=5; a=a+1; a=5; Crearea proceselor IDENTIFICAREA SI ATRIBUTELE PROCESELOR Identificarea si atributele proceselor Pentru gestionarea proceselor este necesara identificarea acestora in mod unic ! Exista o serie de atribute 3 categorii: specifice proceselor: ◼Identificarea proceselor ◼ PID, PPID ◼Informatii de stare ◼ Memorie ocupata ◼Informatii de control ◼ Procesor ocupat ◼ Prioritate ◼ Durata executie De cine credeti ca este ◼ Terminal asociat conditionat ? ◼ etc. Identificarea si atributele proceselor ◼ PID (process identification) ◼ numar unic atribuit procesului ◼ PPID (parrent process identification) ◼ numar al procesului parinte ◼ Nice number ◼ gradul de prietenie al procesului fata de alte procese -> determina prioritatea ◼ invers proportional cu pioritatea ◼ valori negative, priotitate maxima Identificarea si atributele proceselor ◼ Real and Effective User IDentification (RUID and EUID): ◼ RUID = utilizatorul ce a pornit procesul ◼ EUID = utilizatorul ce permite accesul la resursele sistemului ◼ Terminal asociat (TTY) ◼ terminalul la care este conectat procesul Identificarea si atributele proceselor Identificarea si atributele proceselor ◼PGID = Process Group ID ◼SID = Sesion DD Identificarea si atributele proceselor Identificarea si atributele proceselor Identificarea si atributele proceselor Identificarea si atributele proceselor Proces de prim plan (foreground) Identificarea si atributele proceselor Proces de prim plan (foreground) Identificarea si atributele proceselor Identificarea si atributele proceselor Proces de fundal (background) GESTIUNEA PROCESELOR Gestiunea proceselor Pornirea proceselor (subiect deja discutat) (SO, utilizator) Inchiderea proceselor (SO, utilizator) Schimbarea prioritatii (utilizator) Suspendarea/revenirea din starea de suspendare (SO) Sincronizare/comunicare (SO, utilizator) Gestiunea proceselor 1 Pornirea proceselor Resurse necesare: ◼ memorie ◼ procesor ◼ ID ◼ I/O Gestiunea proceselor 2 Inchiderea proceselor SO este responsabil cu eliberarea si redarea resurselor Conditii de inchidere: ◼ Iesire normala ◼ Iesire cu eroare ◼ Eroare fatala ◼ Terminare de catre alt proces Gestiunea proceselor Gestiunea proceselor Gestiunea proceselor Gestiunea proceselor Schimbarea prioritatii proceselor Prioritatea unui process: ◼ Linux: nice si renice ◼ Windows: Set priority Bibliografie ◼ Stefan Mocanu, Daniela Saru, "Comunicare si sincronizare între procese utilizator in sistemul de operare QNX", Editura Printech, Bucuresti, 2010 ◼ A.Tanenbaum & A.Woodhull, “Operating Systems – Design and Implementation”, 2nd edition, Prentice Hall, 2003 ◼ http://ebookbrowse.com/operating-system-concepts-silberschatz-galvin- gagne-7th-ed-pdf-d276634357 ◼ Abraham Silberschatz, Peter B. Galvin, Greg Gagne, “Operating Systems Concepts”, Ed. Wiley, diverse editii ◼ http://tille.garrels.be/training/tldp/ch04.html#sect_04_01 Utilizarea Sistemelor de Operare © 2012 – 2020 Conf. dr. ing. Stefan Mocanu Prof. dr. ing. Mihnea Moisescu Curs 4 Cuprins 1. Comunicare si sincronizare intre procese: fisiere pipe-uri semnale mesaje semafoare memorie partajata Fisiere Caracteristici: ◼ Denumire ◼ Dimensiune ◼ Continut ◼ altele … Functia de baza: ◼ stocarea si transferul informatiei Exista si fisiere speciale !!! (vom vedea ulterior) Fisiere Continut simplu (neformatat) Fisiere Continut simplu (neformatat) Fisiere Continut formatat Fisiere Continut formatat Fisiere Continut formatat Fisiere Continut formatat Fisiere Continut formatat Fisiere Intrebari si concluzii (se solicita justificari !) ◼ Ce tipuri de fisiere ati prefera sa utilizati pentru stocarea/schimbul de informatii cu caracter general ? ◼ Ce tipuri de fisiere vi se par mai usor de inteles si utilizat ? ◼ Ce tipuri de fisiere vi se par mai usor de manipulat ? ◼ Credeti ca putem utiliza fisiere si pentru alte scopuri ? (cu exceptia stocarii si transferului de informatii) Fisiere Imaginati-va o metoda prin care putem da unui fisier functionalitatea unui lacat Interactiunea intre procese ◼ Procese care nu interactioneaza: ◼ Relatie de competitie / concurenta ◼ Probleme: Excludere mutuala, deadlock, starvation ◼ Procese care interactioneaza in mod indirect (resurse comune) ◼ Relatie de cooperare (prin utilizare comuna) ◼ Probleme: Excludere mutuala, deadlock, starvation, coerenta a datelor ◼ Procese care interactioneaza in mod direct (comunica) ◼ Relatie de cooperare prin comunicare ◼ Probleme: Deadlock, starvation Interactiunea intre procese ◼ Excludere mutuala = ◼ o “sectiune critica” dintr-un program va folosi o resursa critica la un moment dat. ◼ ex: imprimanta ◼ Deadlock = ◼ folosirea de resurse ce duce la blocaj. ◼ Ex doua procese vor folosi doua resurse simultan ◼ Starvation = ◼ un proces nu primeste acces la o resursa in mod repetat. ◼ Ex 3 procese si o singura resursa Mecanisme IPC IPC = Inter Process Communication Anonime: Cu nume: - Pot fi utilizate doar intre procese - Pot fi utilizate intre orice procese inrudite (inrudite sau nu) - Se prezinta ca fisiere speciale in - Se prezinta ca fisiere speciale pe memoria interna disc - Foarte rapide - Au un nume (+cale) dat de catre programator - Dupa finalizarea proceselor ce le utilizeaza sunt distruse de catre - Sunt gestionate exclusiv de catre SO programator - Mai lente Clasificare IPC Sir de biti Pipe Transfer de date comunicare Mesaj Memorie partajata Semafor IPC Sincronizare Mutex Bariera Semnalizare Semnale Clasificare IPC ◼ Dupa metoda de intermediere: ◼ Memorie partajata ◼ Intermediate de sistemul de operare Proces Proces IPC Kernel 1 Pipe Pipe-uri Caracteristici: - capacitate - doua capete - flux unidirectional - ordine - siguranta 1 Pipe Pipe-uri ◼ Pipe: ◼ sunt cele mai vechi dintre instrumentele IPC ◼ metodă de comunicații unidirecționale între procese. ◼ este o metodă de conectare a ieșirii standard a unui proces la intrarea standard a altuia. ◼ Kernel-ul creaza doi descriptori (standard input si standard output), primul este conectat pentru a citi și cel de-al doilea este conectat pentru a scrie ◼ un process parinte poate comunica cu un process fiu ◼ comunicare multiproces deoarece un proces fiu va moșteni orice descriptor de fișiere deschise de la părinte, 1 Pipe Pipe-uri Caracteristici: - capacitate - capat de intrare, capat de iesire - flux bidirectional (half duplex) - recomandat flux unidirectional - FIFO - siguranta 1 Pipe Pipe-uri Pipe-uri bidirecționale pot fi create prin deschiderea a două pipe- uri și realocarea descriptorilor de fișiere în procesul fiu. 1 Pipe Pipe-uri Anonime Pipe-uri Cu nume – First In First Out (FIFO) ◼ Pipe anonim: ◼ nu are atasat fișier in care salveaza informatii: ◼ sistemul de operare menține un “buffer” în memorie pentru a transfera octeți de la procesul scriitor la procesul cititor. ◼ odată ce transferal se termină, “buffer-ul” este sters. 1 Pipe Pipe-uri ◼ Pipe cu nume: ◼ are un fișier in care se stocheaza datele și un API distinct. ◼ există ca fișier special al dispozitivului (device special file) în sistemul de fișiere. ◼ Procesele cu ascendențe diferite (parinti diferiti) pot partaja date prin pipe cu nume. ◼ la finalizarea transferului de date rămâne în sistemul de fișiere pentru utilizare ulterioară. ◼ Sunt de tip FIFO 1 Pipe Pipe-uri Semnificatie: Iesirea comenzii ps este redirectata ps -ax > procese.txt catre fisierul procese.txt Efect: in locul afisarii proceselor active pe ecran, acestea sunt scrise in fisierul procese.txt ps -ax | tee procese.txt | more Semnificatie: Iesirea comenzii ps este redirectata catre fisierul procese.txt dar si catre ecran Efect: lista proceselor active este scrisa in fisierul procese.txt si pe ecran 2 Semnale Semnale Event (eveniment) : - a thing that happens or takes place, especially one of importance; - occurrence of a process Exemple: - defectiuni HW: CPU, MB, memorie, etc; - erori cauzate de programe/programatori: tentative de “agresare” a zonelor de memorie apartinand altor procese scanf(“%d”, a); - insuficienta unor resurse HW: memorie, ID-uri, etc 2 Semnale Semnale Caracteristici semnale: - utilizate pentru a trimite proceselor instiintari cu privire la aparitia unor evenimente; - comunicatie unidirectionala, nu se cunoaste expeditorul - expeditorul poate fi SO sau un proces utilizator Exemple: Windows Linux -taskkill /im explorer.exe -kill -9 PID (9 = SIGKILL) -taskkill /f /im explorer.exe -kill -15 PID (15 = SIGTERM) 2 Semnale Semnale ◼ Semnalul întrerupe un proces in executie și, în acest sens, comunică cu acesta. ◼ Semnalele pot fi: ◼ ignorate (blocate) ◼ tratate (prin codul desemnat) ◼ exista 2 exceptii: SIGSTOP (pauză) și SIGKILL (se termină imediat) care nu pot fi blocate sau tratate de catre procesul care le primeste. ◼ pot apărea în interacțiunea utilizatorului. ◼ De exemplu: “Ctrl + C” din linia de comandă pentru a termina un program pornit din linia de comandă; Ctrl + C generează un semnal SIGTERM. SIGTERM pentru terminare, spre deosebire de SIGKILL, poate fi blocat sau tratat. 2 Semnale Semnale ◼un proces poate utiliza un semnal pentru a comunica cu un alt process ◼Exemple: SEMNAL ID DESCRIERE SIGHUP 1 Hang-up. Transmis de OS pentru a inchide un proces SIGINT 2 Intrerupere - CTRL-C SIGQUIT 3 Core dump. CTRL-\ SIGILL 4 La executia unei instructiuni ilegale SIGKILL 9 Terminare a procesului SIGBUS 10 Eroare hardware SIGCONT 19 Continuarea unui process oprit SIGCHLD 20 Trimis catre parinte -> process zombie …….. 2 Semnale Semnale 3 Socket Socket ◼ Un Socket ◼ asigură o comunicare punct-la-punct și bidirecțională între două procese. ◼ componentă de bază a comunicării între sisteme. ◼ Un socket este implementat ca un punct final de comunicare si: ◼ poate avea asociat un nume. ◼ are un tip ◼ are unul sau mai multe procese asociate. https://medium.com/swlh/getting-started-with-unix-domain-sockets-4472c0db4eb1 ◼ 3 Socket Socket ◼ Un socket există într-un domeniu de comunicare: ◼ are asociat o structură de adresare ◼ Este utilizat impreuna cu un set de protocoale. ◼ se conectează numai cu alte socket-uri din același domeniu. ◼ Cele mai des utilizate domenii de comunicare pentru socket sunt: UNIX și Internet ◼ Domeniul UNIX ◼ oferă un spațiu de adrese socket pe un singur sistem ◼ Domeniu Internet ◼ Socket-uri utilizate pentru a comunica între procese care se executa pe sisteme diferite. ◼ sistemele sunt conectate seprn retea ◼ utilizează suita de protocol de internet TCP / IP. 3 Socket Socket https://medium.com/swlh/getting-started-with-unix-domain-sockets-4472c0db4eb1 ◼ 3 Socket Socket Procesele comunică numai între Socket de același tip. Există cinci tipuri de Socket: ◼ stream socket ◼ oferă un flux de date bidirecțional, secvențiat, fiabil și neduplicat, fără limite mesaj ◼ datagram socket ◼ flux bidirecțional de mesaje. ◼ poate primi mesaje într-o ordine diferită de secvența în care au fost trimise mesajele. ◼ mesajele au limite determinate de dimensiune ◼ sequential packet socket ◼ conexiune bidirecțională, secvențiată, fiabilă, ◼ datagrams cu o lungime maximă fixă. ◼ raw socket ◼ acces la protocoalele de comunicare Socket ◼ system call pentru utilizarea unui socket: ◼ socket—creaza un socket cu urmatoarele: ◼ namespace: ex: PF_UNIX sau PF_INET (protocol family) ◼ communication style: ex: SOCK_STREAM ◼ protocol ◼ closes—inchide un socket ◼ connect— creaza o conexiune intre 2 socket ◼ bind— atasaza o adresa ◼ listen— configureaza pentru a accepta conexiuni ◼ accept—accepta o conexiune si creaza un nou socket pentru conexiune ◼ odata create se poate citi sau scrie intr-un socket 4 Mesaj Mesaje Mesaje simple - mecanism blocant - rapid - anonim - usor de folosit si implementat - comunicatie de tip 1:1 - limitat de memoria interna - mecanism sigur Exceptie: - pulsurile: non-blocante, unidirectionale, capacitate f. redusa, extrem de rapide, nesigure 4 Mesaj Mesaje E D Procesele Expeditor si Destinatar sunt inrudite 4 Mesaj Mesaje Coada de mesaje - mecanism cu nume - mai lent - necesita gestionare - pot exista mai multi expeditori - implementat fizic pe disc => limitari mai reduse dpdv al capacitatii Mesajele sunt citite de destinatar unul dupa altul; nu se pot citi mai multe mesaje in acelasi timp Se poate implementa un mecanism de notificare 4 Mesaj Mesaje P1 La cerere ! P2 P... Pn Procese oarecare ! 4 Mesaj Mesaje ◼ Un mesaj poate fi scris ca o structura: ◼ struct mymsg { ◼ long mtype ; ◼ char mtext [ ];} ◼ In mod generic putem reprezenta mecanismul de transmitere prin doua functii: ◼ Send ( dest, &msg ) ◼ Recv ( src, &msg ) ◼ Sursa si destinatia mesajului pot fi: ◼ Proces identificat prin PID ◼ Fisier ◼ Fara sursa = se accepta orice sursa 5 Semafor Semafoare 5 Semafor Semafoare ◼ Semafor ◼ o locație în memorie a cărei valoare poate fi testată și configurata de mai multe procese. ◼ este implementat printr-un un număr întreg a cărui valoare nu este permisă niciodată să scadă sub 0. ◼ exist două operații pe un semafor: wait and post. ◼ operația post crește semaforul cu 1, ◼ operația wait executa următoarele: ◼ dacă semaforul are o valoare> 0, semaforul este decrementat de 1 ◼ dacă semaforul are valoarea 0, apelantul va fi blocat până când semaforul are o valoare mai mare de 0 și apoi este decrementat cu 1. ◼ În funcție de rezultatul testului și al operației de configurare, un proces poate fi nevoit să astepte până când valoarea este modificată de un alt proces. ◼ Semaforele pot fi utilizate pentru a implementa regiuni critice, zone de cod critic pe care ar trebui să le execute un singur proces la un moment dat. 5 Semafor Semafoare Semafoare - O structura de date ce poate fi folosita de mai multe procese - Semafoarele sunt utilizate pentru a sincroniza operatii asociate resurselor comune -Se incearca evitarea: -“Deadlock” – doua procese ce folosesc resursele necesare fiecaruia dintre ele pentru finalizare -“Starvation” – un proces ce nu primeste acces la resursa necesara -2 tipuri -Binar (mutex) -Numarator 5 Semafor Semafoare Proces Resursa Proces Semafor Kernel 5 Semafor Semafoare P1 P2 SEM = 2 0 1 3 R Intreg folosit pentru semnalizare P3 5 Semafor Semafoare P1 R P2 5 Semafor Semafoare T1 T2 Bar_1 Bariere ◼ Un proces poate fi blocat pana ce alte procese ajung la bariera Memorie 6 partajata Memorie partajata P1 M1 Mp M2 P2 memorie Doua procese folosesc o zona de memorie comuna pentru a comunica. Denumit si segment de memorie. Poate fi creat de un proces si accesata de alte procese Memorie 6 partajata Memorie partajata ◼ Memoria partajată este cea mai rapidă formă de comunicare interproces ◼ toate procesele utilizeaza aceeași bucată de memorie. ◼ accesul la această memorie partajată este la fel de rapid ca accesarea memoriei nepartajate a unui proces și nu necesită un system call sau o alta interactiune cu kernel-ul. ◼ evită copierea inutilă a datelor. ◼ Pentru a utiliza un segment de memorie partajată, un proces trebuie: ◼ să aloce segmentul. ◼ fiecare proces care dorește să acceseze segmentul trebuie să atașeze segmentul. ◼ după finalizarea utilizării acestuia fiecare proces detașează segmentul. https://www.w3schools.in/operating-system- ◼ tutorial/interprocess-communication-ipc/ Bibliografie ◼ A.Tanenbaum & A.Woodhull, “Operating Systems – Design and Implementation”, 2nd edition, Prentice Hall, 2003 ◼ Stefan Mocanu, Daniela Saru, "Comunicare si sincronizare între procese utilizator in sistemul de operare QNX", Editura Printech, Bucuresti, 2010 ◼ Abraham Silberschatz, Peter B. Galvin, Greg Gagne, “Operating Systems Concepts”, Ed. Wiley, diverse editii ◼ http://man7.org/conf/lca2013/IPC_Overview-LCA-2013-printable.pdf Utilizarea Sistemelor de Operare Curs 5 Curs 5 Cuprins 1. Fire de executie 2. Stari anormale ale proceselor 3. Planificarea executiei proceselor Fire de executie Fire de executie Fire de executie Fire de executie Thread (cf. Oxford Dictionaries online) - a long, thin strand of cotton, nylon, or other fibers used in sewing or weaving; - a theme or characteristic running throughout a situation or piece of writing; - a helical ridge on the outside of a screw, bolt, etc. or on the inside of a cylindrical hole, to allow two parts to be screwed together. Fire de executie Definitie Un fir de executie (thread) este cea mai mica entitate sau secventa de instructiuni care poate fi identificata si gestionata de sine statator de catre planificatorul UC din fiecare sistem de operare si executata de catre CPU. Spre deosebire de procese, un thread poate exista doar in cadrul unui proces. Din acest motiv, un proces contine cel putin un fir de executie care foloseste resursele procesului gazda. Fire de executie Proces cu un singur thread = proces single threaded. Proces cu mai multe threaduri = proces multi threaded. Thread-ul este considerat un proces de tip light weight si poate fi asemanat cu o procedura care este executata independent de programul principal al programului si in paralel cu acesta. De aici, multi-threading = ??? Lucrul cu mai multe thread-uri ofera posibilitati de prelucrare paralela (cvasi-paralela in functie de CPU si SO) Fire de executie Single threading Multi threading Java Runtime MS-DOS Environment Unix Solaris Windows Unix -modern Ref. A Fire de executie Prelucrarea paralela este benefica doar in cazul aplicatiilor care se preteaza la astfel de tehnici ! Gene Amdahl: a demonstrat limitele optimizarii atinse prin paralelizarea unui program de calculator. Legea lui Amdahl: Cresterea in viteza a unui program de calculator in urma paralelizarii acestuia nu poate depasi inversul portiunii din program ce este pur secventiala. Exemplu: consideram 50% din program pur secvential; prin paralelizare (bine facuta !) putem obtine o crestere a vitezei de maxim 2 ori, indiferent de SO, CPU sau alte considerente HW. ( 1/(50/100) = 100/50 = 2 ) Fire de executie Pe un sistem cu un singur procesor, mono-nucleu, paralelizarea nu este reala. In acest context, vorbim de divizarea timpului CPU. Deservirea se face conform unor algoritmi de planificare. In cazul sistemelor multiprocesor, paralelizarea este reala pina la un punct (daca numarul de thread-uri este mai mic decit numarul de nuclee disponibile). Peste acest prag, intra in actiune planificatorul unitatii centrale si algoritmii de planificare. Fire de executie a=5; T fork() Crearea de procese fiu T F a=5; a=5; a=a+1; a=5; Fire de executie Thread kernel a=5; P Thread initial Thread utilizator c_t1 a=5; P T1 a=a+1; a=6; Creare de thread-uri Fire de executie Firele unui proces se caracterizeaza prin ◼Stare de executie (Ready, Running …) ◼Context salvat cand nu ruleaza -> program counter ◼Stack = stiva LIFO (push, pull) ◼Zona de memorie variabile locale ◼Zona de memorie comuna cu procesul Thread-urile nu necesita mecanisme de comunicatie speciale. Fire de executie Fire de executie Process Control Thread Block Thread Control Control Block Block Fire de executie Caracteristici thread-uri: - nu sint independente, pot exista doar in contextul unui proces - nu au spatiu individual de memorie, partajeaza memoria procesului gazda; - nu au spatiu individual de adrese; - au nevoie de mai putine informatii de stare decit procesele; - nu au nevoie de mecanisme de comunicatie, au acces comun la variabilele globale ale procesului gazda; - necesita mecanisme de sincronizare pentru a evita producerea unor “dezastre” - comutarea intre thred-uri, inchiderea lor – rapide Fire de executie Tipuri de thread-uri Thread de tip kernel: - entitate a kernelului si SO gestionata de programatorul UC; - ruleaza in cadrul unui proces; - utilizatorul/programatorul nu o poate controla, lucreaza cu CPU; Thread de tip utilizator: - entitate gestionata de programator in scopul implementarii unor prelucrari paralelele; - ruleaza in doar cadrul unui proces, nu poate fi “incrucisata” cu alte procese; - pot exista mai multe threaduri utilizator intr-un proces. - legatura intre threadul utilizator si threadul kernel este realizata de procesorul virtual (PV) Fire de executie Modele de threading N:1 (many to one) - Mai multe thread-uri utilizator sint mapate catre un singur thread kernel; - Kernelul nu suporta multi-threading; acesta este realizat si gestionat la nivelul utilizatorului; - Blocarea unui thread => blocarea intregului proces (program) - Un thread kernel -> un singur CPU fizic => un program nu va putea fi executat pe mai multe procesoare (chiar daca exista !) Fire de executie Modele de threading - Fiecare thread utilizator este mapat catre un 1:1 (one to one) thread kernel si gestionat de acesta; - Un thread blocat nu atrage dupa sine blocarea intregului proces; - Un proces poate fi executat pe mai multe procesoare fizice; - Creste efortul de gestionare; - Din motivul de mai sus, se impun limite privind nr. maxim de threaduri. Fire de executie Modele de threading M:N (many to many) - M thread-uri utilizator sint mapate catre N thread-uri kernel (N probleme => necesitatea sincronizarii ! eventuale probleme (in general cele care tin de memoria utilizata) aparute la un singur thread se pot repercuta asupra tuturor thread-urilor aplicatiei => probleme mari ! implementarea de aplicatii secventiale cu ajutorul thread-urilor este foarte dificila => nerecomandat ! Fire de executie Sincronizarea firelor de executie Mutexuri (semafoare mutex) si bariere - s-a discutat despre ele la cursul anterior ! Variabile conditionale - nu au valoare propriu-zisa; - de interes este starea lor, indica aparitia unui eveniment; - permit blocarea sau deblocarea thread-urilor; - mai rapide decit mutex-urile pentru ca NU se testeaza starea lor. Stari anormale ale proceselor Stari anormale ale proceselor 1. Procese zombie - s-a discutat despre ele in cursurile anterioare ! Stari anormale ale proceselor 2. Interblocari (deadlock) PUC P1 P2 X X Definitie: ◼ blocarea permanentă a unor procese care concurează pentru aceleasi resursele sau comunica între ele. Stari anormale ale proceselor 2. Interblocari (deadlock) ◼ Doua sau mai multe procese sunt interblocate atunci când fiecare proces este blocat așteptand un eveniment care pot fi declanșat doar de către un alt proces blocat. ◼ Interblocarea este permanentă, deoarece nici unul dintre evenimente nu va avea loc. Metoda Mecanism Detectie Rulare periodica a unei rutine Evitare Necesita cunoasterea cerintelor fiecarui proces Prevenire Cererea de alocare a tuturor resurselor (in acelasi moment) Cererea de alocare a resursei Stari anormale ale proceselor 2. Interblocari (deadlock) Conditii de aparitie ◼ Excludere reciprocă (Mutual exclusion) ◼ un singur proces poate folosi o resursă la un moment dat ◼ Utilizare și așteptare (Hold and wait) ◼ un proces poate să rețină resursele alocate în timp ce se așteaptă alocarea altor resurse. ◼ Fara preemțiune (No preemption) ◼ nici o resursă nu poate fi realocata fortat catre alt proces ◼ Bucla (Circular wait) ◼ Un lanț închis de procese există, astfel încât fiecare proces deține cel puțin o resursă de care are nevoie următorul proces Preemption (OS) = ability of the operating system to preempt (that is, stop or pause) a currently scheduled task in favour of a higher priority task. Stari anormale ale proceselor 3. “Infometare” (Starvation) 3. “Infometare” P1 2 100 P2 ◼ este cauzată de eșecul de a aloca unele resurse necesare unui proces 10 P3 ◼Cauza principala: politicile SO de alocare a resurselor (ex: prioritatea) 4 P4 Ref. 0 … Stari anormale ale proceselor 4. Bucla infinita - Cauze ? - Descrieti in ce situatii ati intilnit aceasta stare anormala 5. Proces blocat - Procesul inceteaza sa raspunda, insasi inchiderea fortata devine dificila. - Windows: “Non Responding”… Planificarea executiei proceselor Planificarea executiei proceselor Necesitate: In cazul calculatoarelor de tip multi-tasking si multi-proces planificarea este necesara pentru a gestiona accesul la resursele HW (in principal CPU dar nu numai). In absenta planificarii, procesele ar fi orientate catre un comportament “egoist” => alte procese ar fi puse in situatia de a nu putea fi executate. De multe ori obiectivele algoritmilor de planificare sunt contradictorii ! Exista foarte multi algoritmi de planificare; depind puternic de HW si SO ! Planificarea executiei proceselor Ce se urmareste prin planificare: Impartialitate in tratarea proceselor Eficientizarea utilizarii CPU si sistemului de I/O Minimizarea timpului de raspuns pentru procesele interactive Optimizarea timpului mediu de finalizare a unui job Minimizarea timpului mediu de asteptare Cresterea numarului de joburi in unitatea de timp. Planificarea Unitatii Centrale Tipuri de planificare ◼ pe termen lung ◼ Decizia de adaugare a unui nou proces in lista de procese ◼ pe termen mediu ◼ Deciza de a bloca – executa un proces ◼ pe termen scurt ◼ decizia cu privire la executia proceselor ◼ programare I / O ◼ decizia cu privire la alocarea dispozitivelor I/O Planificarea Unitatii Centrale Planificarea Unitatii Centrale https://www.cs.rutgers.edu/~pxk/416/notes/07-scheduling.html Planificarea Unitatii Centrale Algoritmi de planificare - exemple 1. First-Come-First-Served (FCFS) ◼ Cea mai simplă politică de planificare este primul venit-primul servit ◼ Cunoscut sub numele de prim-in-first-out (FIFO) ◼ Pe măsură ce fiecare proces trece in starea READY, acesta este introdus in coada de asteptare ◼ Procesele din coada de asteptare se selecteaza in functie de durata de asteptare. Procesul cu durata cea mai mare de asteptare in coada are prioritate deoarece acest process a fost plasat in coada inaintea celorlalte (primul venit) ◼ FCFS este potrivit pentru procese de durata nu pentru procese scurte. Planificarea Unitatii Centrale Algoritmi de planificare - exemple 2. Shortest Job First (SJF) ◼ Se bazeaza pe estimarea duratei unui proces. ◼ Estimarea se face pe baza experientelor anterioare. ◼ Procesele vor fi executate intr-o ordine data de durata lor: ◼ cel mai scurt va fi executat primul iar cel mai lung ultimul. (Ref.0) ◼ Planificarea Unitatii Centrale Algoritmi de planificare - exemple 2. Shortest Job First (SJF) - comparatie Fara algoritm Algoritm SJF Planificarea Unitatii Centrale Algoritmi de planificare - exemple 3. Shortest Remaining Time Next ◼ Ca si SJF se bazeaza pe estimarea duratei unui proces. ◼ In acest caz, dupa finalizarea procesului curent (in executie) va fi executat procesul caruia i-a ramas durata de executie minima. Planific