25 februarie 2009andrei.clubcisco.ro/cursuri/3so/cursuri/01.introducere.pdf · introducere în...

Post on 07-Feb-2020

6 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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�

?

top related