Cursul 1 1 Introducere n sisteme de operare

































































- Slides: 65

Cursul 1 1 Introducere în sisteme de operare 14 februarie 2011 - 20 februarie 2011

Cuprins a. Prezentare generală a cursului b. Ce este un sistem de operare? c. Istoria sistemelor de operare d. Clasificarea sistemelor de operare e. Concepte hardware de bază f. Concepte de bază în SO g. Componența și structura unui SO 14. 02. 2011 - 20. 02. 2011

Echipa a. Andrei Pitiș, Octavian Purdilă b. Oana Baron, Daniel Băluţă, Răzvan Deaconescu, Vlad Dogaru, Bogdan Druţu, Andrei Ismail, Cătălin Moraru, Ștefan Munteanu, Sofia Neață, Irina Maria Stănescu c. Mult succes în noul semestru! 14. 02. 2011 - 20. 02. 2011

Resurse a. wiki: http: //elf. cs. pub. ro/so/wiki/ a. Need. To. Know page: http: //elf. cs. pub. ro/so/wiki/need-to-know b. folosiți feed-ul RSS b. lista de discuții a. so@cursuri. cs. pub. ro b. abonați-vă (detalii pe wiki) c. catalog Google, calendar Google d. mașini virtuale e. vmchecker (verificare teme) f. documentație g. cs. curs. pub. ro (rol de portal) h. canalul de IRC #cs_so pe Freenode 14. 02. 2011 - 20. 02. 2011

Participarea în "comunitate" a. cursurile sunt în format Google Docs a. puteți solicita acces de editare a. detalii în pagina Need. To. Know b. corecții/ajustări, precizări c. pentru detalii, folosiți "Speaker Notes" b. laboratoare a. puteți solicita drept de editare a wiki-ului (discutați cu asistentul) c. colaborați în timpul laboratorului d. răspundeți la mesajele pe lista de discuții e. fiți interactivi pe parcursului f. oferiți feedback și sugestii 14. 02. 2011 - 20. 02. 2011

De ce SO? Voi ce credeți? 14. 02. 2011 - 20. 02. 2011

De ce SO? (2) a. sunt peste tot (PC, servere, smartphones) b. administrarea eficientă a unui sistem c. asigurarea performanței aplicațiilor d. depanarea aplicațiilor e. system/low-level/kernel programming f. înțelegerea arhitecturilor, ierarhiei de memorie și sistemelor de calcul g. skill-uri de programare și design h. aspecte aplicate în alte domenii a. concurență, gestiunea resurselor, gestiunea de structuri complexe i. part of an elite 14. 02. 2011 - 20. 02. 2011

De ce SO? (3) a. studiu de inserție b. 161 de absolvenți de Calculatoare - promoțiile 2009, 2010 c. Ce cunoștințe dobândite pe parcursul facultății v-au fost de folos la locul de muncă? 14. 02. 2011 - 20. 02. 2011

De ce SO? (4) It's fun! 14. 02. 2011 - 20. 02. 2011

Legătura cu celelalte materii a. Prerequisites a. b. c. d. USO Programare, SD IOCLA, CN PC, RL b. Materii ce depind de SO a. b. SO 2, CPL ASC, APP, SPRC 14. 02. 2011 - 20. 02. 2011

Where do we stand? interfețe de utilizare interfețe de programare de sistem (system API) 14. 02. 2011 - 20. 02. 2011 USO SO user space SO 2 kernel space

Where do we stand? (programming) application programming (EGC, SPG, PP, SPRC, IOC, etc. ) system programming (PC, SO, CPL) kernel programming (SO 2) 14. 02. 2011 - 20. 02. 2011 user space kernel space

Despre curs a. 12 cursuri b. interactiv a. b. participaţi la discuţii întrebaţi atunci când nu aţi înţeles (și nu numai) c. destul de “dens” d. se recomandă călduros parcurgerea suportului bibliografic înainte și după curs e. slide-urile nu sunt suficiente pentru a înțelege materia f. Accesibile în format Google Docs a. Contribuiți la îmbunătățirea slide-urilor! 14. 02. 2011 - 20. 02. 2011

Despre laborator a. POSIX/Win 32 API programming (C/C++) b. 15 min prezentare / 85 minute lucru c. tutorial-like, task-based, learn by doing d. nu se punctează e. karma points ("pentru cei puternici") f. încurajăm colaborarea studenților în timpul laboratorului 14. 02. 2011 - 20. 02. 2011

Despre teme a. tema 0 – hash-table b. tema 1 – mini-shell c. tema 2 – IPC d. tema 3 – demand pager/swapper e. tema 4 – monitor generic f. tema 5 – server de fișiere 14. 02. 2011 - 20. 02. 2011

Despre teme (2) a. intense b. necesare: aprofundare API (laborator) și concepte (curs) c. estimare de timp: 8 -20 ore pe temă d. teste publice e. suport de testare la submit - feedback imediat 14. 02. 2011 - 20. 02. 2011

Bibliografie a. curs Galvin, Silberschatz, Gagne – Operating System Concepts, 7 th Edition b. Andrew Tanenbaum - Modern Operating Systems, 2 nd Edition a. b. laborator a. b. Michael Kerrisk – The Linux Programming Interface Johnson Hart – Windows System Programming, 4 th Edition 14. 02. 2011 - 20. 02. 2011

Bibliografie suplimentară a. Mathew, Stones - Beginning Linux Programming, 4 th Edition • Stephens, Rago – Advanced Programming in the Unix Environment, 2 nd Edition • Robert Love – Linux System Programming • Rector, Newcomer – Win 32 Programming • Charles Perzold – Programming Windows, 5 th Edition • John Levine – Linkers and Loaders 14. 02. 2011 - 20. 02. 2011

Suport curs 1 a. OSC a. b. Chapter 1: Introduction Chapter 2: Operating-System Structures b. MOS a. Chapter 1: Introduction 14. 02. 2011 - 20. 02. 2011

Ce este un SO? a. Extensie a maşinii fizice (vedere top-down) abstractizează operațiile mașinii fizice în operații mai simple pentru ușurința utilizării b. ex: accesul la fișiere a. b. Gestionar al resurselor mașinii fizice (vedere bottom-up) a. b. c. utilizatorii accesează resursele comune ale sistemului SO are rolul de multiplexare a accesului ex: gestiunea procesorului, a memoriei 14. 02. 2011 - 20. 02. 2011

Ce este un SO? (2) 14. 02. 2011 - 20. 02. 2011

Istoria sistemelor de operare a. dezvoltarea sistemelor de calcul și a sistemelor de operare s-au influențat reciproc dificultatea programării mașinilor a dus la adăugarea de facilități în SO b. dificultăți ale implementării SO au dus la adăugarea de facilități în hardware (memoria virtuală) a. 14. 02. 2011 - 20. 02. 2011

Istoria sistemelor de operare (2) a. prima generaţie (1945 -1955) primele calculatoare digitale construite: relee electromecanice, tuburi b. programare se făcea manual, în limbaj mașină c. nu existau compilatoare sau asambloare d. nu existau sisteme de operare a. 14. 02. 2011 - 20. 02. 2011

Istoria sistemelor de operare (3) a. generaţia a doua (1955 -1965) b. tranzistoare, mainframeuri c. apare conceptul de batch d. sisteme de operare: FMS, IBSYS 14. 02. 2011 - 20. 02. 2011

First bug a. On September 9 th, Grace Hopper recorded the first actual computer "bug" — a moth stuck between the relays and logged at 15: 45 hours on the Harvard Mark II. b. Hopper, a rear admiral in the U. S. Navy, enjoyed successful careers in academia, business, and the military while making history in the computer field. c. She helped program the Harvard Mark I and II and developed the first compiler, A 0. Her subsequent work on programming languages led to COBOL, a language specified to operate on machines of different manufacturers. 14. 02. 2011 - 20. 02. 2011

Istoria sistemelor de operare (4) a. generația a treia (1965 -1980) b. circuite integrate c. apare conceptul de familie de calculatoare (IBM System/360): aceeași arhitectură și set de instrucțiuni d. multiprogramare a. b. partiționarea memoriei în mai multe segmente cât timp un job așteaptă la I/O alt job se execută e. spooling a. citirea joburilor de pe cartele perforate și păstrarea lor pe disc până la execuție 14. 02. 2011 - 20. 02. 2011

UNIX 14. 02. 2011 - 20. 02. 2011

Istoria sistemelor de operare (5) a. generația a treia (1965 -1980) b. multitasking (time-sharing) CTSS (Compatible Time Sharing System) MULTICS (Multiplexed Information and Computing Service) a. MIT, Bell Labs, General Electric b. lansat în 1960 are un succes comercial scăzut c. influență masivă asupra dezvoltării ulterioare ale SO c. UNIX a. o versiune mult redusă a MULTICS b. implementat de Ken Thompson c. portabil (scris în C) d. System V, BSD a. b. 14. 02. 2011 - 20. 02. 2011

Istoria sistemelor de operare (6) a. generaţia a patra (1980 -prezent) a. b. c. d. e. 14. 02. 2011 - 20. 02. 2011 microcalculatoare şi calculatoarele personale CP/M a. dezvoltat de Kidall pentru Intel 8080 MS-DOS a. cumpărat de Microsoft de la Seattle Computer ($50, 000) b. oferit împreună cu BASIC pentru IBM PC Mac OS a. Steve Jobs “fură” ideea de GUI de la Xerox MS Windows: 3. 11, 95, . . a. influenţat de Mac OS

Istoria sistemelor de operare (7) a. Generaţia a patra (1980 -prezent) a. MS Windows NT, 2000, XP, Vista, 7 a. Scris de la zero, 32/64 biţi b. David Cutler (VAX VMS) b. c. Solaris, IRIX, HP-UX, ULTRIX Tru 64 a. primul sistem de operare pe 64 biţi (procesoare Alpha) d. Linux a. clonă UNIX b. scris de la zero de Linus Torvalds e. Free. BSD, Open. BSD, Net. BSD 14. 02. 2011 - 20. 02. 2011

Clasificare SO a. SO pentru servere b. SO pentru sisteme multiprocesor c. SO pentru calculatoare personale d. SO pentru sisteme embedded e. RTOS 14. 02. 2011 - 20. 02. 2011

Concepte hardware de bază a. SO interacționează cu hardware-ul la un nivel destul de scăzut b. sunt necesare cunoștințe despre hardware pentru a înțelege modul de funcționare a sistemului de operare 14. 02. 2011 - 20. 02. 2011

Procesoarele a. Arhitecturi a. b. c. bandă asamblare (a) superscalar (b) VLIW/EPIC 14. 02. 2011 - 20. 02. 2011 a. Arhitecturi a. b. RISC CISC

Memoria 14. 02. 2011 - 20. 02. 2011

Memoria cache a. Introdusă pentru a crea iluzia unei memorii ieftine, rapide și de capacitate mare b. Probleme de a. b. consistență: sisteme multitasking coerență: sisteme multiprocesor c. Tipuri de memorie cache a. b. c. cu mapare directă asociative total asociative pe mai multe căi 14. 02. 2011 - 20. 02. 2011

Dispozitive de I/E a. în general sunt compuse din două părți a. b. un controller dispozitivul efectiv b. părțile din SO care controlează dispozitivele de I/E se numesc device drivere c. lente: mouse, tastatura a. comunicația între dispozitivele de I/E lente și procesor se poate face prin polling d. rapide: discuri, placa de rețea, placa video a. pentru controlul acestor dispozitive se folosesc întreruperi și controllere DMA 14. 02. 2011 - 20. 02. 2011

Întreruperi (a) activarea unui dispozitiv I/E și primirea unei întreruperi (b) tratarea unei întreruperi 14. 02. 2011 - 20. 02. 2011

DMA a. folosit în cazul transferurilor mari de date între dispozitivul de I/E şi memorie a. b. c. procesorul programează transferul este efectuat de un controller dedicat (DMA) la încheierea transferului, controller-ul DMA emite o întrerupere 14. 02. 2011 - 20. 02. 2011

Magistrale 14. 02. 2011 - 20. 02. 2011

Magistrale (2) a. Linii de a. b. c. adresă (determină spaţiul de adresă) date (împreună cu frecvența magistralei determină lățimea de bandă) control b. Lățimea de bandă a. numărul de linii de date x frecvența magistralei 14. 02. 2011 - 20. 02. 2011

Concepte de bază a. procese, fire de execuție b. deadlock c. memorie virtuală d. sisteme de fișiere e. interpretorul de comenzi f. nucleul sistemului de operare g. kernel mode vs user mode h. kernel space vs user space i. apeluri de sistem 14. 02. 2011 - 20. 02. 2011

Procese a. un program în execuție b. are asociate mai multe resurse: a. b. c. un spațiu de adrese fișierele deschise alte resurse (memorie partajată, socketi, etc) c. în general procesele sunt ierarhizate după relația părinte-copil d. SO oferă protecție dar şi comunicație interprocese 14. 02. 2011 - 20. 02. 2011

Fire de execuție a. un proces poate avea mai multe fire de execuție b. firele de execuţie dintr-un proces partajează resursele acestuia (memorie, fișiere deschise etc. ) c. fiecare fir de execuție are un context a. context = informații despre starea thread-ului (stivă, registre generale, registre speciale) d. avantaje / dezavantaje a. b. c. paralelism cu o comunicație extrem de facilă și rapidă se pierde mai puțin timp când se face o schimbare de context nu există protecție între firele de execuție 14. 02. 2011 - 20. 02. 2011

Deadlock-uri a. deadlock potențial (a) b. deadlock (b) 14. 02. 2011 - 20. 02. 2011

Memorie virtuală a. adrese a. b. virtuale fizice • MMU și SO fac translatarea din adrese virtuale în adrese fizice 14. 02. 2011 - 20. 02. 2011

Fișiere a. cale, director rădăcină, director de lucru b. descriptor de fișier / handle c. fișiere speciale a. b. c. d. bloc caracter pipe-uri link-uri d. sistem de fișiere, operații de montare/demontare a. (a) înainte de montare b. (b) după montare 14. 02. 2011 - 20. 02. 2011

Interpretorul de comenzi a. Programul de interfață între utilizator şi sistem b. Mod linie de comandă a. b. avantaje: flexibilitate, puține resurse consumate ex: sh , bash, korn c. Mod grafic a. b. avantaje: mai ușor de utilizat ex: explorer. exe în Windows 14. 02. 2011 - 20. 02. 2011

Nucleul sistemului de operare a. Nucleul SO are acces direct la hardware b. Părți din nucleu sunt permanent rezidente în memorie c. Imaginea nucleului a. b. c. Linux: /vmlinuz, /boot/vmlinuz Windows: %System. Root%system 32ntoskrnl. exe Mac OS X: Mach 3. 0 + *BSD d. module / drivere 14. 02. 2011 - 20. 02. 2011

kernel space vs. user space a. Nucleul rulează în mod privilegiat a. b. kernel mode kernel space b. Orice proces are un spațiu de adrese diferit c. Nucleul lucrează cu un spațiu de adrese diferit de cel al proceselor a. b. user mode user space 14. 02. 2011 - 20. 02. 2011

Apeluri de sistem a. Accesul la resursele sistemului se face prin apelarea serviciilor puse la dispoziție de nucleu 14. 02. 2011 - 20. 02. 2011

Componente ale SO a. gestiunea proceselor b. gestiunea memoriei c. gestiunea fișierelor d. gestiunea operațiilor de I/E e. gestiunea rețelei 14. 02. 2011 - 20. 02. 2011

Gestiunea proceselor a. crearea și terminarea proceselor b. suspendarea și repornirea proceselor a. planificatorul de procese (scheduler) c. mecanisme de sincronizare d. mecanisme pentru comunicație inter-procese e. detectare/rezolvare deadlock-uri f. protecție 14. 02. 2011 - 20. 02. 2011

Gestiunea memoriei a. gestiunea memoriei fizice și virtuale a. b. memorie virtuală, segmentare, paginare swaping b. gestiunea memoriei folosite de nucleu a. b. memorie rezidentă permanentă memorie rezidentă temporară c. gestiunea spațiilor de adrese a. malloc/free, mmap d. protecție 14. 02. 2011 - 20. 02. 2011

Gestiunea fișierelor a. translatarea operațiilor de acces asupra fișierelor (open, close, read, write, seek) în operații de citire și scriere pe disc b. caching și read-ahead c. compresie și criptare d. protecție 14. 02. 2011 - 20. 02. 2011

Gestiunea operațiilor de I/E a. interfață comună pentru device drivere b. caching, buffering c. întreruperi, DMA d. I/O scheduling 14. 02. 2011 - 20. 02. 2011

Gestiunea rețelei a. implementarea unor stive de protocol eficiente și sigure (secure) a. implementare în kernel b. legături cu alte subsisteme ale SO: memorie, procese, scheduling, sisteme de fișiere 14. 02. 2011 - 20. 02. 2011

Structuri de SO a. SO monolitice b. SO microkernel c. Mașini virtuale d. SO exokernel e. SO stratificate 14. 02. 2011 - 20. 02. 2011

SO monolitice a. UNIX și derivatele, Windows 14. 02. 2011 - 20. 02. 2011

Microkernel a. Minix, Amoeba b. QNX c. Mach 14. 02. 2011 - 20. 02. 2011

Mașini virtuale 14. 02. 2011 - 20. 02. 2011

Cuvinte cheie a. Sistem de operare (SO) b. Generații de SO/sisteme de calcul c. Unix d. Procesor e. Memorie f. Cache g. Întreruperi h. DMA 14. 02. 2011 - 20. 02. 2011 a. Procese b. Fire de execuție c. Fișiere d. kernel/nucleu e. Apel de sistem f. Monolitic, microkernel g. Mașini virtuale

Reguli și notare a. Curs – 5 puncte o lucrari – 2 puncte (4 lucrări x 3 subiecte x 0. 16 puncte) – 10 minute o final – 3 puncte (10 subiecte x 0. 3 puncte) – 60 de minute o minim 1. 5 puncte pentru promovare § vor avea loc la curs în săptămânile: 4, 7, 10, 13 § primele 10 minute ale cursului § nu este open-book § nu se refac § sesiune, acoperă întreaga materie § open-book 14. 02. 2011 - 20. 02. 2011

Reguli și notare (2) a. Activitate laborator - 0 puncte nu are pondere in nota finală, dar este obligatorie prezenţa activă la cel puţin 8 laboratoare b. tutorial-like, task-based c. încurajăm colaborarea pe parcursul laboratorului b. Teme - până la 11 puncte (5 puncte obligatorii) a. 1 temă (independenta de platformă) (tema 0 - din săptămâna 2) b. 5 teme x 2 (Linux, Windows) c. primele 5 teme (în ordinea punctajului) vor fi punctate integral d. următoarele 6 teme vor fi punctate raportat cu nota de curs e. corectare cu teste publice c. Depunctare teme a. -0. 25 p pe zi (din 10) timp de 12 zile b. după 12 zile nota maximă pentru o temă este 7 c. deadline absolut: o săptămână înainte de primul examen a. 14. 02. 2011 - 20. 02. 2011

Reguli și notare (3) a. Punctajul de absolvire a cursului este 4. 5 • După restanțe tot punctajul se resetează la 0 14. 02. 2011 - 20. 02. 2011

Intrebări ? 14. 02. 2011 - 20. 02. 2011