limbaje 1

28
Limbaje de programare inginereşti Tema 1 Sisteme de operare

Upload: codrinamagda

Post on 18-Nov-2015

216 views

Category:

Documents


0 download

DESCRIPTION

limbaj de programare

TRANSCRIPT

  • Limbaje de programare ingineretiTema 1Sisteme de operare

  • Obiectivele disciplineiStudiul acestei discipline face ca studentii sa se familarizeze cu notiunile, metodele si tehnicile specifice programarii calculatorului, astfel nct acesta sa devina un instrument curent de lucru, deosebit de util, att n abordarile practice ale celorlalte discipline pe parcursul anilor de studiu, cat si n activitatea ulterioara - dupa absolvirea studiilor.

    Cursul urmrete introducerea noiunilor fundamentale ale diferitelor limbaje de programare pentru implementarea algoritmilor stiintifici si tehnici. Se urmaresc cu precadere limbajele procedurale (imperative) cu detalieri ale limbajului C, limbajele matriciale cu exemplificari in MATLAB si limbajele bazate pe fluxul de date cu exemplificari din limbajul LabVIEW.

  • STABILIREA NOTEI FINALE

    Forma de verificare (Examen, Colocviu, Verificare pe parcurs)ColocviuModalitatea de susinere (Scris i Oral, Oral, Test gril, etc.)OralPuncte sau procentajNOTARERspunsuri la examene, colocviu30Evaluare activiti aplicative (laborator, proiect,practica)20Prezen activ la curs i laborator10Lucrare de verificare20Teme de cas20TOTAL PUNCTE SAU PROCENTE10 (100%)

  • Indrumar de laborator: programare C/C++ / Furdu, Iulian Marius (2005)Initiere in C++ : programare orientata pe obiecte / Ionut Muslea (1992)Memento de programare in C++ / Octavian Dogaru (2008)Introducere in MATLAB / Paleologu, Constantin (1999)LabVIEWTM Basics I Course Manual

    Condiii minime de promovare(cum se obine nota 5)Condiii de obinere a notei maxime- nota minim 5 la laborator, condiionat de realizarea lucrrilor practice- cunoaterea noiunilor de baz de limbaje de programare- obinerea a 5 puncte din calculul mediei conform modului de stabilire a notei finale- obinerea a mai mult de 9 puncte din calculul mediei conform modului de stabile a notei finale- cunoaterea temeinic a subiectelor de examen- prezena activ la curs i laborator

  • Autor: Andrew S. TanenbaumEditura: ByblosAn aparitie:2004

    Octavian Purdil Universitatea Politehnica BucuretiAlexandru Averian

  • Definiie: SO - Un program care acioneaz ca un intermediar ntre un utilizator al sistemului de calcul i hardware-ul acestuia.SO are urmtoarele funcii principale:Funcii de administrare a resurselor software, hardware i a informaiilorFuncia de abstractizare i de extindere a funcionalitii sistemului de calcul

  • Scurt istoric (Wikipedia)

    Sheet1

    DateWindowsMacRed HatUbuntuOthers

    2000AtheOS,MorphOS0.4

    2000-02Windows 2000(first of the Windows server operating systems to drop the 'NT' designation)[8]Solaris8

    2000-03Red Hat Linux6.2EBeOS R5,FreeBSD4.0

    2000-06Plan 9Third Edition[9]

    2000-08Debian2.2

    2000-09Windows Me(last of the Windows 9x line of operating systems to be produced and sold)[10]SUSE Linux7.0

    2000-12HP-UX11i (11.11)

    2001Haiku (operating system)(formerly known as Open BeOS, began development),z/OS,EnGarde Secure Linux

    2001-03Mac OS X v10.0

    2001-05AIX5L 5.1,AmigaOS4.0[citation needed]

    2001-07eComStation1.0 (July 10)

    2001-09Mac OS X v10.1

    2001-10Windows XP(succeeded Windows Me and Windows 2000, successfully merging the 'professional' NT line of desktop operating systems with the 'home' 9x line of operating systems)[11]

    2001-12OS/24.52 (latest IBM version, released for both desktop and server systems)

    2002Windows XP 64-bit Edition

    2002-03Red Hat Enterprise Linux2.1 AS

    2002-04Plan 9Fourth Edition[12],SUSE Linux8.0

    2002-05Solaris9 (SPARC)

    2002-07Debian3.0,Syllable0.4.0 (first release of Syllable)[13]

    2002-08Mac OS X v10.2[14]

    2002-09Windows XP Service Pack 1

    2002-10AIX5.2

    2002-12MorphOS1.0

    2003-01Solaris9 (x86),FreeBSD5.0

    2003-03Windows XP 64-bit Edition, Version 2003[15]

    2003-04Windows Server 2003

    2003-05Red Hat Enterprise Linux2.1 ES

    2003-09HP-UX11i v2 (11.23)

    2003-10Mac OS X v10.3Red Hat Enterprise Linux3SUSE Linux9.0

    2003-11Fedora Core1

    2004-03ReactOS0.2.0

    2004-04Ubuntu4.10 (First released version)

    2004-05Fedora Core2

    2004-07DragonFly BSD1.0

    2004-08Windows XP Service Pack 2AIX5.3

    2004-11Fedora Core3

    2004-12NetBSD2.0

    2005-01Solaris10

    2005-02Red Hat Enterprise Linux4

    2005-03Windows Server 2003 Service Pack 1,Windows XP Professional x64 EditionNovell Open Enterprise Server

    2005-04Mac OS X v10.4Ubuntu5.04

    2005-06Fedora Core4Debian3.1

    2005-10Ubuntu5.10SUSE Linux10.0

    2005-11FreeBSD6.0

    2006-03Windows Server 2003 R2Fedora Core5

    2006-05SymbOS,MINIX3.1.2 (May 8)

    2006-06Ubuntu6.06 (LTS)

    2006-08ReactOS0.3.0

    2006-10Fedora Core6Ubuntu6.10Slackware11.0

    2006-11Windows Vista

    2007BS2000/OSDv7.0

    2007-02InfernoFourth Edition (February 2)

    2007-03Windows Server 2003 Service Pack 2Red Hat Enterprise Linux5

    2007-04Ubuntu7.04Debian4.0

    2007-05Fedora7

    2007-07Slackware12.0

    2007-09HP-UX11i v3 (11.31)

    2007-10Mac OS X v10.5Ubuntu7.10

    2007-11Fedora8AIX6.1

    2008-02Windows Vista Service Pack 1,Windows Server 2008FreeBSD7.0

    2008-03Singularity1.1 (initial public release, March 4)

    2008-04Windows XP Service Pack 3Ubuntu8.04 (LTS)

    2008-05Fedora9OpenSolaris2008.05,Slackware12.1

    2008-06MorphOS2.0,SUSE Linux11.0

    2008-07DragonFly BSD2.0

    2008-08STOP6.5

    2008-09AmigaOS 4.1,z/OSV1R10

    2008-10Ubuntu8.10NetBSD4.0.1,Android

    2008-11Fedora10OpenBSD4.4,Singularity2.0

    2008-12MorphOS2.2,OpenSolaris2008.11,Slackware12.2

    2009-01Palm webOS

    2009-02Debian5.0

    Windows

    Mac

    Red Hat

    Ubuntu

    2000

    2000-02

    Solaris8

    2000-03

    Red Hat Linux6.2E

    2000-06

    2000-08

    Debian2.2

    2000-09

    SUSE Linux7.0

    2000-12

    HP-UX11i (11.11)

    2001

    2001-03

    Mac OS X v10.0

    2001-05

    2001-07

    eComStation1.0 (July 10)

    2001-09

    Mac OS X v10.1

    2001-10

    2001-12

    OS/24.52 (latest IBM version, released for both desktop and server systems)

    2002

    Windows XP 64-bit Edition

    2002-03

    Red Hat Enterprise Linux2.1 AS

    2002-04

    2002-05

    Solaris9 (SPARC)

    2002-07

    2002-08

    2002-09

    Windows XP Service Pack 1

    2002-10

    AIX5.2

    2002-12

    MorphOS1.0

    2003-01

    2003-03

    2003-04

    Windows Server 2003

    2003-05

    Red Hat Enterprise Linux2.1 ES

    2003-09

    HP-UX11i v2 (11.23)

    2003-10

    Mac OS X v10.3

    Red Hat Enterprise Linux3

    SUSE Linux9.0

    2003-11

    Fedora Core1

    2004-03

    ReactOS0.2.0

    2004-04

    Ubuntu4.10 (First released version)

    2004-05

    Fedora Core2

    2004-07

    DragonFly BSD1.0

    2004-08

    Windows XP Service Pack 2

    AIX5.3

    2004-11

    Fedora Core3

    2004-12

    NetBSD2.0

    2005-01

    Solaris10

    2005-02

    Red Hat Enterprise Linux4

    2005-03

    Novell Open Enterprise Server

    2005-04

    Mac OS X v10.4

    Ubuntu5.04

    2005-06

    Fedora Core4

    Debian3.1

    2005-10

    Ubuntu5.10

    SUSE Linux10.0

    2005-11

    FreeBSD6.0

    2006-03

    Windows Server 2003 R2

    Fedora Core5

    2006-05

    2006-06

    Ubuntu6.06 (LTS)

    2006-08

    ReactOS0.3.0

    2006-10

    Fedora Core6

    Ubuntu6.10

    Slackware11.0

    2006-11

    Windows Vista

    2007

    BS2000/OSDv7.0

    2007-02

    InfernoFourth Edition (February 2)

    2007-03

    Windows Server 2003 Service Pack 2

    Red Hat Enterprise Linux5

    2007-04

    Ubuntu7.04

    Debian4.0

    2007-05

    Fedora7

    2007-07

    Slackware12.0

    2007-09

    HP-UX11i v3 (11.31)

    2007-10

    Mac OS X v10.5

    Ubuntu7.10

    2007-11

    Fedora8

    AIX6.1

    2008-02

    FreeBSD7.0

    2008-03

    Singularity1.1 (initial public release, March 4)

    2008-04

    Windows XP Service Pack 3

    Ubuntu8.04 (LTS)

    2008-05

    Fedora9

    2008-06

    2008-07

    DragonFly BSD2.0

    2008-08

    STOP6.5

    2008-09

    2008-10

    Ubuntu8.10

    2008-11

    Fedora10

    2008-12

    2009-01

    Palm webOS

    2009-02

    Debian5.0

  • CLASIFICAREA SO

    S.O. au aprut i au evoluat odat cu evoluia sistemelor de calcul.

    1. Calculatoare mainframe: calculatorul era programat direct nu existau sisteme de operare in memorie rula cel mult un program odat cu apariia tranzistoarelor: apare primul limbaj de programare i primulS.O. care utiliza conceptul de procesare pe loturi (batch-jobs) i conceptul de job.Procesorul era slab utilizat deoarece perifericele aveau vitez foarte sczut;apare multiprogramarea pentru a ine procesorul ocupat in mod optim. nmemorie se ncarc mai multe programe iar planificatorul alege unul din acestea.

    2. Sisteme interactive (cu partajarea timpului): permit interaciunea utilizatorului cu programele care ruleaz n memorie apare noiunea de multitasking care reprezint o extensie a multiprogramrii i ncare comutarea ntre programe se realizeaz att de rapid nct utilizatorul aresenzaia c se execut mai multe programe simultan.

  • 3. Sisteme Desktop4. Sisteme de tip real5. Sisteme ncorporate6. Sisteme cu multiprocesor7. Sisteme distribuite8. Clustere9. Reele peer-to-peer10. Reele client server

  • Nucleul sistemului de operare

    Partea principal a unui S.O. (miezul, kernel) se ncarcn memorie la pornirea calculatorului, rmne rezident n memorie i are rol de supervizor.

    Funciile principale ale unui S.O. aflate n kernel sunt legate de: gestiunea proceselor gestiunea procesorului comunicarea ntre procese, sincronizare gestiunea memoriei gestiunea operaiilor legate de ntreruperi gestiunea fiierelor

  • Structura unui sistem de operare

    Monolitic: kernelul format dintr-un fiier; majoritatea fiierelor se afl n kernel; este o colecie de funcii fr nici o ierarhizare intern;

    Modular : sistemul este structurat pe module cu functionaliti bine precizate

    Stratificat: este compus din straturi suprapuse, fiecare strat oferind servicii stratului superior i abstractiznd structura i operaiile cu operaiile stratului inferior;

  • Exokernel: majoritatea serviciilor sunt n afara kernelului i ruleaza n user-mode; kernelul pstreaz funciile de comunicare ntre procese i de izolare; se mai numete kernel la purttor; creeaz maini virtuale, crora le aloc resurse, fiecare main virtual rulndpropriul S.O. i propriile procese;

    Maina virtual: similar cu exokernelul, cu deosebirea ca mainile virtule sunt copii ale hardului pecare ruleaz, avnd propria copie a kernelului i ntreruperi proprii: pot rula S.O. diferite;

    Sisteme client-server ( microkernel) : majoritatea serviciilor ruleaz in user-mode, kernelul asigurnd comunicaia iSincronizarea ntre procesele client i server; exemple server: fiiere, memorie, terminale;

    Sisteme distribuite: similar cu client-server, cu deosebirea c serverul i clientul pot fi pe mainidiferite;

  • Exemple: MSDOS monolitic, nestructurat Windows XP arhitectura stratificat BSD Unix , Solaris arhitectura modular True 64 UNIX, QNX - mikrokernel Linux arhitectura monolitica Mach microkernel Mac OS X stratificat, modular Minix microkernel

  • Componentele unui SO1. Componenta de management a memoriei:

    Procesul citete instruciuni, citete si scrie date din memorie. Perifericele controlate prin mecanismul DMA citesc si scriu date n memorie. Programele sunt ncrcate de pe disk n memorie. Dac un program se executa, acesta citete instruciunile si datele din memorie, accesd memoria prin adresele de memorie reprezentate pe 16, 32 sau 64 de bii. Odat terminat un program, el este eliberat din memorie si spaiul su este alocat altui program.

    Pentru a mbuntii utilizarea CPU si pentru a mri viteza de reacie a sistemului fa de utilizatori sistemul de operare trebuie sa in n memorie mai multe programe n acelai timp (multiprogramare). Exist mai multe scheme de management a memoriei, selectarea unei anumite scheme pentru un S.O. depinznd de mai muli factori, n special de platforma hardware a sistemului destinaie. Sistemul de operare asigur urmtoarele operaii n ceea ce privete managementul memoriei: aloc si dezaloc memorie la cerere; menine o situaie a memoriei alocate i a memoriei libere. decide ce proces s fie ncrcat n memorie cnd aceasta devine disponibil

  • Componentele unui SO2. Managementul proceselor:

    Sistemul de operare este responsabil cu gestiunea proceselor. Modulul (componenta) unui sistem de operare care gestioneaz procesele trebuie sa asigure urmtoarele funcii: funcii de creare a unui proces (user sau proces de sistem); tergerea sau eliberarea unui proces din memorie; s asigure mecanisme de sincronizare a proceselor; s asigure mecanisme de comunicare ntre procese; s asigure mecanisme de gestionare a interblocrilor. creeaz i elibereaz procese; suspend i reia executarea proceselor; asigur mecanismele de comunicare i sincronizare ntre procese; se ocup de evitarea interblocarilor;

  • Componentele unui SO3. Planificarea procesorului: asigur accesul proceselor la resursa procesor ntr-un mod echitabil; utilizeaz algoritmi de planificare pentru a mpari timpul de lucru al procesoruluintre procesele din memorie;

    4. Gestiunea fiierelor

    5. Gestiunea componentelor de Intrare/Ieire: gestioneaz perifericele; asigur alocarea corect a acestora ctre procese; controleaz operaiile de Intrare/Ieire.

    6. Managementul dispozitivelor de stocareAsigur: managementul spaiului liber ; alocarea spaiului la cerere; planificarea i controlul accesului la discuri.

  • Componentele unui SO7. Componenta de reea

    8. Sistemul de protecie

    9. Interfaa de programare a aplicaiilor (API): ofer programatorului un set de funcii de nivel nalt prin care acesta poateaccesa n programare serviciile oferite de celelalte componente ale S.O.

    Serviciile sunt oferite ctre utilizatorul programator: ncrcarea i executarea programelor operaii (servicii) de I/O. manipularea sistemelor de fiiere (creare, tergere, scriere i citire). comunicaii ntre procese (prin memorie partajat sau prin transfer direct demesaje ntre procese); detectarea erorilor i recuperare dup eroare (eroare de CPU, de memorie, descriere, citire, de reea, imprimant).

  • DicionarAPI Interfaa de programare a aplicaiilor Batch (limbaje batch) limbaje cu control de flux. Se mai numesc limbaje shellCompilator un program (sau set de programe) care traduce textul scris ntr-un limbaj de programare (limbajul surs) ntr-un alt limbaj de calculator (numit limbaj int)CPU central processing unit, unitatea central de calculGUI graphical user interface, interfa grafic cu utilizatorulI/O input/output, sisteme de intrare/ieireInterpretor un program special care analizeaz i execut comenzile i instruciunile dintr-un alt program, pas cu pas, una dup alta, fr o compilare anterioarPDA personal digital assistant, palmtop computer