Post on 07-Feb-2020
Cursul 1
1Introducere în sisteme de operare25 februarie 2009
25.02.2009 2
Cuprins
� Prezentare general a cursului�� Ce este un sistem de operare?� Istoria sistemelor de operare� Clasificarea sistemelor de operare� Concepte hardware de baz�� Concepte de baz în SO�� � �Componen a i structura unui SO
25.02.2009 3
Echipa
� �Andrei Piti , R zvan Deaconescu, Octavian Purdil� �
� �Mircea Bardac, Daniel B lu , Mircea Gherzan, Lucian Grijincu, � �Andrei Ismail, George Milescu, Mihnea Muraru
� Mult succes în noul semestru!
25.02.2009 4
Obiectivele cursului
� Make you a better engineer!
� Prezentarea mecanismelor puse la dispozi ie de SO moderne ��pentru dezvoltarea de aplica ii
� Procese i thread-uri�� Comunica ia între procese i thread-uri� �� Accesul la memorie; gestiunea memoriei� Accesul la alte resurse puse la dispozi ie de SO moderne (fi iere, � �
dispozitive de I/E)
25.02.2009 5
Obiectivele laboratorului
� Aplicarea conceptelor prezentate la curs� � �Prezentarea i familiarizarea cu interfe ele de programare de
sistem (system API): POSIX & Win32� �lucrul cu fi iere� lucrul cu procese/thread-uri� �comunica ia între procese/thread-uri� gestiunea memoriei� �opera ii de I/E
25.02.2009 6
Reguli i notare�
� site-ul cursului: http://cs.pub.ro/~so� list de discu ii: � � http://cursuri.cs.pub.ro/liste/so � curs � 3 puncte
� lucrare � 1 punct (6 subiecte x 0.2 puncte) � 40 de minute� s pt mâna a 8-a la curs� �� nu se reface
� final � 2 puncte (11 subiecte x 0.2 puncte) � 70 de minute� sesiune
� minim 1 punct din 3 pentru absolvirea cursului
� activitate laborator � 2 puncte� �NU se puncteaz prezen a�
25.02.2009 7
�Reguli i notare (2)
� 5 teme x 2 (Linux, Windows) � 10 puncte� o tem copiat -> punctaj 0 la toate temele� �� primele 5 teme (în ordinea punctajului) vor fi punctate integral� urm toarele 5 teme vor fi punctate raportat cu nota de curs�� corectare cu teste publice
� depunctare teme� -0.25p pe zi (din 10) timp de 12 zile� dup 12 zile nota maxim pentru o tem este 7� � �� deadline absolut: o s pt mân înainte de examen� � �
� punctajul de absolvire a cursului este 4.5� �dup restan e tot punctajul se reseteaz la 0� �
25.02.2009 8
Leg tura cu celelalte materii�
� Prerequisites� USO� Programare, SDA� PLAS, CN� PC, RC
� Materii ce depind de SO� SO2� PC, SSC, APC, SPRC
25.02.2009 9
Where do we stand?
kernel space
user space
USO
SO
SO2
�interfe e de programare de sistem (system API)
�interfe e de utilizare
25.02.2009 10
Where do we stand? (programming)
application programming (EGC, SPG, PP, SPRC, IOC, etc.)
system programming (PC, SO, PT)
kernel programming (PSO)kernel space
user space
25.02.2009 11
Despre curs
� 12 cursuri� interactiv
� participa i la discu ii� �� întreba i atunci când nu a i în eles� � �
� destul de �dens�� se recomand c lduros parcurgerea suportului bibliografic înainte � �
�i dup curs�� �slide-urile nu sunt suficiente pentru a în elege materia
25.02.2009 12
Despre laborator
� POSIX/Win32 API programming (C/C++)� 20 min prezentare / 80 minute lucru� se puncteaz activitatea�� learn by doing� �se puncteaz exerci iile rezolvate în laborator�
25.02.2009 13
Despre teme
� tema 1 � mini-shell� tema 2 � sistem client-server cu IPC� tema 3 � demand pager/swapper� tema 4 � monitor generic� �tema 5 � server de fi iere
25.02.2009 14
Despre teme (2)
� intense� �necesare: aprofundare API (laborator) i concepte (curs)� estimare de timp: 8-20 ore pe tem�� teste publice� suport de testare la submit - feedback imediat
25.02.2009 15
Relevan system programming��
� Better programmer through intimate knowledge of how computers operate
� C, C++, C#, Java � doar limbaje de programare, opereaz cu �acelasi concepte de multi-threading, I/O (async)
� Better jobs � better pay� �Voi ce crede i?
25.02.2009 16
Bibliografie
� curs� Galvin, Silberschatz, Gagne � Operating System Concepts, 7th Edition� Andrew Tanenbaum - Modern Operating Systems, 2nd Edition
� laborator� Robert Love � Linux System Programming� Johnson Hart � Windows System Programming, 3rd Edition
25.02.2009 17
Bibliografie suplimentar�
� Mathew, Stones - Beginning Linux Programming, 4th Edition� Stephens, Rago � Advanced Programming in the Unix
Environment, 2nd Edition� Rector, Newcomer � Win32 Programming� Charles Perzold � Programming Windows, 5th Edition� John Levine � Linkers and Loaders
25.02.2009 18
Suport curs 1
� OSC� Chapter 1: Introduction� Chapter 2: Operating-System Structures
� MOS� Chapter 1: Introduction
25.02.2009 19
Ce este un SO?
� 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�� �ex: accesul la fi iere
� �Gestionar al resurselor ma inii fizice (vedere bottom-up)� utilizatorii acceseaz resursele comune ale sistemului�� SO are rolul de multiplexare a accesului� ex: gestiunea procesorului, a memoriei
25.02.2009 20
Ce este un SO? (2)
25.02.2009 21
Istoria sistemelor de operare
� �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 � � �� � �dificult i ale implement rii SO au dus la ad ugarea de facilit i în hardware � � � �
(memoria virtual )�
25.02.2009 22
Istoria sistemelor de operare (2)
� prima genera ie (1945 -1955) �� primele calculatoare digitale
construite: relee electromecanice, tuburi
� programare se f cea manual, în ��limbaj ma in�
� nu existau compilatoare sau asambloare
� nu existau sisteme de operare
25.02.2009 23
Istoria sistemelor de operare (3)
� genera ia a doua (1955 -1965) �� tranzistoare, mainframeuri � apare conceptul de batch � sisteme de operare: FMS, IBSYS
25.02.2009 24
First bug
� On September 9th, 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.
� 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.
� 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.
25.02.2009 25
Istoria sistemelor de operare (4)
� �genera ia a treia (1965 -1980) � circuite integrate � apare conceptul de familie de calculatoare (IBM System/
� � �360): aceea i arhitectur i set de instruc iuni �� multiprogramare
� �parti ionarea memoriei în mai multe segmente� �cât timp un job a teapt la I/O alt job se execut� �
� spooling� �citirea joburilor de pe cartele perforate i p strarea lor pe disc �
�pân la execu ie �
25.02.2009 26
UNIX
25.02.2009 27
Istoria sistemelor de operare (5)
� �genera ia a treia (1965 -1980) � multitasking (time-sharing)
� CTSS (Compatible Time Sharing System) � MULTICS (Multiplexed Information and Computing Service)
� MIT, Bell Labs, General Electric � lansat în 1960 are un succes comercial sc zut�� �influen masiv asupra dezvolt rii ulterioare ale SO� � �
� UNIX� o versiune mult redus a MULTICS�� implementat de Ken Thompson� portabil (scris în C)� System V, BSD
25.02.2009 28
Istoria sistemelor de operare (6)
� genera ia a patra (1980 -prezent) �
� microcalculatoare i calculatoarele �personale
� CP/M � dezvoltat de Kidall pentru Intel
8080 � MS-DOS
� cump rat de Microsoft de la �Seattle Computer ($50, 000)
� oferit împreun cu BASIC pentru �IBM PC
� Mac OS� Steve Jobs �fur � ideea de GUI �
de la Xerox� MS Windows: 3.11, 95, ..
� influen at de Mac OS�
25.02.2009 29
Istoria sistemelor de operare (7)
� Genera ia a patra (1980 -prezent) �� MS Windows NT, 2000, XP, Vista
� Scris de la zero, 32/64 bi i�� David Cutler (VAX VMS)
� Solaris, IRIX, HP-UX, ULTRIX � Tru64
� primul sistem de operare pe 64 bi i (procesoare Alpha) �� Linux
� clon UNIX�� scris de la zero de Linus Torvalds
� FreeBSD, OpenBSD, NetBSD
25.02.2009 30
Clasificare SO
� SO pentru servere� SO pentru sisteme multiprocesor� SO pentru calculatoare personale� SO pentru sisteme embedded� RTOS
25.02.2009 31
Concepte hardware de baz�
� SO interactionez cu hardware-ul la un nivel destul de sc zut � �� � � �sunt necesare cuno tin e despre hardware pentru a în elege
�modul de func ionare a sistemului de operare
25.02.2009 32
Procesoarele
� Arhitecturi� band asamblare (a)�� superscalar (b)� VLIW/EPIC
� Arhitecturi� RISC� CISC
25.02.2009 33
Memoria
1 2 3cache~ MB ~ GB
CMOS DRAM
0,25-0,5 0,5-25 80-25020.000-100.000 5000-10.000 1000-5000
hardwarecache disc
NivelNume registre memorie principal�Dimensiune 32/64/128 bi i�
Tehnologie specializat� CMOS SRAM(on-chip sau off-chip)
Timp de acces (ns)L ime de band (MB/s)�� �Controlat de� compilator sistemul de operareSus inut de� � memoria principal�
25.02.2009 34
Memoria cache
� �Introdus pentru a crea iluzia unei memorii ieftine, rapide i de �capacitate mare
� Probleme de� consisten : sisteme multitasking ��� coeren : sisteme multiprocesor ��
� Tipuri de memorie cache� cu mapare direct�� asociative total� asociative pe mai multe c i�
25.02.2009 35
Dispozitive de I/E
� �în general sunt compuse din dou p r i � �� un controller� dispozitivul efectiv
� �p r ile din SO care controleaz dispozitivele de I/E se � �numesc device drivere
� lente: mouse, tastatura � �comunica ia între dispozitivele de I/E lente i procesor se poate �
face prin polling� �rapide: discuri, placa de re ea, placa video
� �pentru controlul acestor dispozitive se folosesc întreruperi i controllere DMA
25.02.2009 36
Întreruperi
�(a) activarea unui dispozitiv I/E i primirea unei întreruperi
(b) tratarea unei întreruperi
25.02.2009 37
DMA
� folosit în cazul transferurilor mari de date între dispozitivul de I/E i memorie�
� procesorul programeaz transferul�� transferul este efectuat de un controller dedicat (DMA)� la încheierea transferului, controller-ul DMA emite o întrerupere
25.02.2009 38
Magistrale
25.02.2009 39
Magistrale (2)
� Linii de� adres (determin spa iul de adres ) � � � �� � �date (împreun cu frecven a magistralei determin l imea de band ) � � � �� control
� �L imea de band� �� �num rul de linii de date x frecven a magistralei�
25.02.2009 40
Concepte de baz�
� �procese, fire de execu ie� deadlock� memorie virtual�� �sisteme de fi iere� interpretorul de comenzi� nucleul sistemului de operare� kernel mode vs user mode� kernel space vs user space � apeluri de sistem
25.02.2009 41
Procese
� �un program în execu ie� are asociate mai multe resurse:
� �un spa iu de adrese � �fi ierele deschise � alte resurse (memorie partajat , socketi, etc)�
� �în general procesele sunt ierarhizate dup rela ia p rinte-copil � �� � �SO ofer protec ie dar i comunica ie interprocese� �
25.02.2009 42
�Fire de execu ie
� �un proces poate avea mai multe fire de execu ie� firele de execu ie dintr-un proces partajeaz resursele � �
�acestuia (memorie, fi iere deschise etc.)� �fiecare fir de execu ie are un context
� �context = informa ii despre starea thread-ului (stiv , registre �generale, registre speciale)
� avantaje / dezavantaje� � �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 �
25.02.2009 43
Deadlock-uri
� �deadlock poten ial (a) � deadlock (b)
25.02.2009 44
Memorie virtual�
� adrese� virtuale� fizice
� �MMU i SO fac translatarea din adrese virtuale în adrese fizice
25.02.2009 45
�Fi iere
� cale, director r d cin , director de lucru � � �� �descriptor de fi ier / handle� �fi iere speciale
� bloc� caracter� pipe-uri� link-uri
� � �sistem de fi iere, opera ii de montare/demontare� (a) înainte de montare� (b) dup montare�
25.02.2009 46
Interpretorul de comenzi
� �Programul de interfa între utilizator i sistem � �� Mod linie de comand �
� �avantaje: flexibilitate, pu ine resurse consumate � ex: sh , bash, korn
� Mod grafic � �avantaje: mai u or de utilizat� ex: explorer.exe în Windows
25.02.2009 47
Nucleul sistemului de operare
� Nucleul SO are acces direct la hardware � �P r i din nucleu sunt permanent rezidente în memorie �� Imaginea nucleului
� Linux: /vmlinuz, /boot/vmlinuz � Windows: %SystemRoot%\system32\ntoskrnl.exe � Mac OS X: Mach 3.0 + *BSD
� module / drivere
25.02.2009 48
Kernel vs. User
� Nucleul ruleaz în mod privilegiat�� kernel mode� kernel space
� �Orice proces are un spa iu de adrese diferit � �Nucleul lucreaz cu un spa iu de adrese diferit de cel al �
proceselor� user mode� user space
25.02.2009 49
Apeluri de sistem
� Accesul la resursele sistemului se face prin apelarea �serviciilor puse la dispozi ie de nucleu
25.02.2009 50
Componente ale SO
� gestiunea proceselor � gestiunea memoriei � �gestiunea fi ierelor � �gestiunea opera iilor de I/E � �gestiunea re elei
25.02.2009 51
Gestiunea proceselor
� �crearea i terminarea proceselor � �suspendarea i repornirea proceselor
� planificatorul de procese (scheduler)
� mecanisme de sincronizare � �mecanisme pentru comunica ie inter-procese � detectare/rezolvare deadlock-uri� �protec ie
25.02.2009 52
Gestiunea memoriei
� �gestiunea memoriei fizice i virtuale� memorie virtual , segmentare, paginare �� swaping
� gestiunea memoriei folosite de nucleu � memorie rezident permanent� �� memorie rezident temporar� �
� �gestiunea spa iilor de adrese � malloc/free, mmap
� �protec ie
25.02.2009 53
�Gestiunea fi ierelor
� � �translatarea opera iilor de acces asupra fi ierelor (open, close, � �read, write, seek) în opera ii de citire i scriere pe disc
� �caching i read-ahead� �compresie i criptare� �protec ie
25.02.2009 54
�Gestiunea opera iilor de I/E
� �interfa comun pentru device drivere � �� caching, buffering � întreruperi, DMA � I/O scheduling
25.02.2009 55
�Gestiunea re elei
� �implementarea unor stive de protocol eficiente i sigure (secure)� implementare în kernel
� leg turi cu alte subsisteme ale SO: memorie, procese, ��scheduling, sisteme de fi iere
25.02.2009 56
Structuri de SO
� SO monolitice � SO microkernel � �Ma ini virtuale � SO exokernel� SO stratificate
25.02.2009 57
SO monolitice
� �UNIX i derivatele, Windows
25.02.2009 58
Microkernel
� Minix, Amoeba � QNX � Mach
25.02.2009 59
Ma ini virtuale�
25.02.2009 60
Cuvinte cheie
� Sistem de operare (SO)� �Genera ii de SO/sisteme de
calcul� Unix� Procesor� Memorie� Cache� Întreruperi� DMA
� Procese� �Fire de execu ie� �Fi iere� kernel/nucleu� Apel de sistem� Monolitic, microkernel� �Ma ini virtuale
25.02.2009 61
Intreb ri�
?