11_so_curs_01 (2)
Post on 25-Dec-2015
221 Views
Preview:
DESCRIPTION
TRANSCRIPT
Cursul 1
1Introducere în sisteme de operare
14 februarie 2011 - 20 februarie 2011
14.02.2011- 20.02.2011
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
14.02.2011- 20.02.2011
Echipa
• Andrei Pitiș, Octavian Purdilă• 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
• Mult succes în noul semestru!
14.02.2011- 20.02.2011
Resurse
• wiki: http://elf.cs.pub.ro/so/wiki/o NeedToKnow page:http://elf.cs.pub.ro/so/wiki/need-to-knowo folosiți feed-ul RSS
• lista de discuțiio so@cursuri.cs.pub.roo abonați-vă (detalii pe wiki)
• catalog Google, calendar Google• mașini virtuale• vmchecker (verificare teme)• documentație• cs.curs.pub.ro (rol de portal)• canalul de IRC #cs_so pe Freenode
14.02.2011- 20.02.2011
Participarea în "comunitate"
• cursurile sunt în format Google Docso puteți solicita acces de editare
detalii în pagina NeedToKnow corecții/ajustări, precizări pentru detalii, folosiți "Speaker Notes"
• laboratoareo puteți solicita drept de editare a wiki-ului (discutați cu asistentul)
• colaborați în timpul laboratorului• răspundeți la mesajele pe lista de discuții• fiți interactivi pe parcursul cursului• 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)
• sunt peste tot (PC, servere, smartphones)• administrarea eficientă a unui sistem• asigurarea performanței aplicațiilor• depanarea aplicațiilor• system/low-level/kernel programming• înțelegerea arhitecturilor, ierarhiei de memorie și sistemelor de
calcul • skill-uri de programare și design• aspecte aplicate în alte domenii
o concurență, gestiunea resurselor, gestiunea de structuri complexe
• part of an elite
14.02.2011- 20.02.2011
De ce SO? (3)
• studiu de inserție • 161 de absolvenți de Calculatoare - promoțiile 2009, 2010• 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
• Prerequisiteso USOo Programare, SDo IOCLA, CNo PC, RL
• Materii ce depind de SOo SO2, CPLo ASC, APP, SPRC
14.02.2011- 20.02.2011
Where do we stand?
kernel space
user space
USO
SO
SO2
interfețe de programare de sistem (system API)
interfețe de utilizare
14.02.2011- 20.02.2011
Where do we stand? (programming)
application programming (EGC, SPG, PP, SPRC, IOC, etc.)
system programming (PC, SO, CPL)
kernel programming (SO2)
kernel space
user space
14.02.2011- 20.02.2011
Despre curs
• 12 cursuri• interactiv
o participaţi la discuţiio întrebaţi atunci când nu aţi înţeles (și nu numai)
• destul de “dens”• se recomandă călduros parcurgerea suportului bibliografic înainte
și după curs• slide-urile nu sunt suficiente pentru a înțelege materia• Accesibile în format Google Docs
o Contribuiți la îmbunătățirea slide-urilor!
14.02.2011- 20.02.2011
Despre laborator
• POSIX/Win32 API programming (C/C++)• 15 min prezentare / 85 minute lucru• tutorial-like, task-based, learn by doing• nu se punctează• karma points ("pentru cei puternici")• încurajăm colaborarea studenților în timpul laboratorului
14.02.2011- 20.02.2011
Despre teme
• tema 0 – hash-table• tema 1 – mini-shell• tema 2 – IPC• tema 3 – demand pager/swapper• tema 4 – monitor generic• tema 5 – server de fișiere
14.02.2011- 20.02.2011
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
14.02.2011- 20.02.2011
Bibliografie
• curso Galvin, Silberschatz, Gagne – Operating System Concepts, 7 th Editiono Andrew Tanenbaum - Modern Operating Systems, 2nd Edition
• laboratoro Michael Kerrisk – The Linux Programming Interfaceo Johnson Hart – Windows System Programming, 4th Edition
14.02.2011- 20.02.2011
Bibliografie suplimentară
• Mathew, Stones - Beginning Linux Programming, 4th Edition• Stephens, Rago – Advanced Programming in the Unix
Environment, 2nd Edition• Robert Love – Linux System Programming • Rector, Newcomer – Win32 Programming• Charles Perzold – Programming Windows, 5th Edition• John Levine – Linkers and Loaders
14.02.2011- 20.02.2011
Suport curs 1
• OSCo Chapter 1: Introductiono Chapter 2: Operating-System Structures
• MOSo Chapter 1: Introduction
14.02.2011- 20.02.2011
Ce este un SO?
• Extensie a maşinii fizice (vedere top-down)o abstractizează operațiile mașinii fizice în operații mai simple pentru
ușurința utilizăriio ex: accesul la fișiere
• Gestionar al resurselor mașinii fizice (vedere bottom-up)o utilizatorii accesează resursele comune ale sistemuluio SO are rolul de multiplexare a accesuluio 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
• dezvoltarea sistemelor de calcul și a sistemelor de operare s-au influențat reciproco dificultatea programării mașinilor a dus la adăugarea de facilități în SOo dificultăți ale implementării SO au dus la adăugarea de facilități în
hardware (memoria virtuală)
14.02.2011- 20.02.2011
Istoria sistemelor de operare (2)
• prima generaţie (1945 -1955)o primele calculatoare digitale
construite: relee electromecanice, tuburi
o programare se făcea manual, în limbaj mașină
o nu existau compilatoare sau asambloare
o nu existau sisteme de operare
14.02.2011- 20.02.2011
Istoria sistemelor de operare (3)
• generaţia a doua (1955 -1965)• tranzistoare, mainframeuri• apare conceptul de batch• sisteme de operare: FMS, IBSYS
14.02.2011- 20.02.2011
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.
14.02.2011- 20.02.2011
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
o partiționarea memoriei în mai multe segmenteo cât timp un job așteaptă la I/O alt job se execută
• spoolingo 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)
• generația a treia (1965 -1980)• multitasking (time-sharing)
o CTSS (Compatible Time Sharing System)o 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
o UNIX o versiune mult redusă a MULTICS implementat de Ken Thompson portabil (scris în C) System V, BSD
14.02.2011- 20.02.2011
Istoria sistemelor de operare (6)
• generaţia a patra (1980 -prezent)o microcalculatoare şi calculatoarele
personaleo CP/M
dezvoltat de Kidall pentru Intel 8080
o MS-DOS cumpărat de Microsoft de la
Seattle Computer ($50, 000) oferit împreună cu BASIC
pentru IBM PCo Mac OS
Steve Jobs “fură” ideea de GUI de la Xerox
o MS Windows: 3.11, 95, .. influenţat de Mac OS
14.02.2011- 20.02.2011
Istoria sistemelor de operare (7)
• Generaţia a patra (1980 -prezent)o MS Windows NT, 2000, XP, Vista, 7
Scris de la zero, 32/64 biţi David Cutler (VAX VMS)
o Solaris, IRIX, HP-UX, ULTRIXo Tru64
primul sistem de operare pe 64 biţi (procesoare Alpha)o Linux
clonă UNIX scris de la zero de Linus Torvalds
o FreeBSD, OpenBSD, NetBSD
14.02.2011- 20.02.2011
Clasificare SO
• SO pentru servere• SO pentru sisteme multiprocesor• SO pentru calculatoare personale• SO pentru sisteme embedded• RTOS
14.02.2011- 20.02.2011
Concepte hardware de bază
• SO interacționează 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
14.02.2011- 20.02.2011
Procesoarele
• Arhitecturio bandă asamblare (a)o superscalar (b)o VLIW/EPIC
• Arhitecturio RISCo CISC
14.02.2011- 20.02.2011
MemoriaNivel 1 2 3
Nume registre cache memorie principală
Dimensiune 32/64/128 biți ~ MB ~ GB
Tehnologie specializată CMOS SRAM (on-chip sau off-chip)
CMOS DRAM
Timp de acces (ns) 0,25-0,5 0,5-25 80-250
Lățime de bandă (MB/s) 20.000-100.000 5000-10.000 1000-5000
Controlată de compilator hardware sistemul de operare
Susținută de cache memoria principală disc
14.02.2011- 20.02.2011
Memoria cache
• Introdusă pentru a crea iluzia unei memorii ieftine, rapide și de capacitate mare
• Probleme deo consistență: sisteme multitaskingo coerență: sisteme multiprocesor
• Tipuri de memorie cacheo cu mapare directăo asociative totalo asociative pe mai multe căi
14.02.2011- 20.02.2011
Dispozitive de I/E
• în general sunt compuse din două părțio un controllero dispozitivul efectiv
• părțile din SO care controlează dispozitivele de I/E se numesc device drivere
• lente: mouse, tastaturao comunicația între dispozitivele de I/E lente și procesor se poate
face prin polling• rapide: discuri, placa de rețea, placa video
o 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
• folosit în cazul transferurilor mari de date între dispozitivul de I/E şi memorieo procesorul programează transferulo transferul este efectuat de un controller dedicat (DMA)o la încheierea transferului, controller-ul DMA emite o întrerupere
14.02.2011- 20.02.2011
Magistrale
14.02.2011- 20.02.2011
Magistrale (2)
• Linii deo adresă (determină spaţiul de adresă)o date (împreună cu frecvența magistralei determină lățimea de bandă)o control
• Lățimea de bandăo numărul de linii de date x frecvența magistralei
14.02.2011- 20.02.2011
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
14.02.2011- 20.02.2011
Procese
• un program în execuție• are asociate mai multe resurse:
o un spațiu de adreseo fișierele deschiseo 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
14.02.2011- 20.02.2011
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
o context = informații despre starea thread-ului (stivă, registre generale, registre speciale)
• avantaje / dezavantajeo paralelism cu o comunicație extrem de facilă și rapidăo se pierde mai puțin timp când se face o schimbare de contexto nu există protecție între firele de execuție
14.02.2011- 20.02.2011
Deadlock-uri
• deadlock potențial (a)• deadlock (b)
14.02.2011- 20.02.2011
Memorie virtuală
• adreseo virtualeo fizice
• MMU și SO fac translatarea din adrese virtuale în adrese fizice
14.02.2011- 20.02.2011
Fișiere
• cale, director rădăcină, director de lucru• descriptor de fișier / handle• fișiere speciale
o bloco caractero pipe-urio link-uri
• sistem de fișiere, operații de montare/demontareo (a) înainte de montareo (b) după montare
14.02.2011- 20.02.2011
Interpretorul de comenzi
• Programul de interfață între utilizator şi sistem• Mod linie de comandă
o avantaje: flexibilitate, puține resurse consumateo ex: sh , bash, korn
• Mod grafico avantaje: mai ușor de utilizato ex: explorer.exe în Windows
14.02.2011- 20.02.2011
Nucleul sistemului de operare
• Nucleul SO are acces direct la hardware• Părți din nucleu sunt permanent rezidente în memorie• Imaginea nucleului
o Linux: /vmlinuz, /boot/vmlinuzo Windows: %SystemRoot%\system32\ntoskrnl.exeo Mac OS X: Mach 3.0 + *BSD
• module / drivere
14.02.2011- 20.02.2011
kernel space vs. user space
• Nucleul rulează în mod privilegiato kernel modeo kernel space
• Orice proces are un spațiu de adrese diferit• Nucleul lucrează cu un spațiu de adrese diferit de cel al proceselor
o user modeo user space
14.02.2011- 20.02.2011
Apeluri de sistem
• Accesul la resursele sistemului se face prin apelarea serviciilor puse la dispoziție de nucleu
14.02.2011- 20.02.2011
Componente ale SO
• gestiunea proceselor• gestiunea memoriei• gestiunea fișierelor• gestiunea operațiilor de I/E• gestiunea rețelei
14.02.2011- 20.02.2011
Gestiunea proceselor
• crearea și terminarea proceselor• suspendarea și repornirea proceselor
o planificatorul de procese (scheduler)• mecanisme de sincronizare• mecanisme pentru comunicație inter-procese• detectare/rezolvare deadlock-uri• protecție
14.02.2011- 20.02.2011
Gestiunea memoriei
• gestiunea memoriei fizice și virtualeo memorie virtuală, segmentare, paginareo swaping
• gestiunea memoriei folosite de nucleuo memorie rezidentă permanentăo memorie rezidentă temporară
• gestiunea spațiilor de adreseo malloc/free, mmap
• protecție
14.02.2011- 20.02.2011
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
14.02.2011- 20.02.2011
Gestiunea operațiilor de I/E
• interfață comună pentru device drivere• caching, buffering• întreruperi, DMA• I/O scheduling
14.02.2011- 20.02.2011
Gestiunea rețelei
• implementarea unor stive de protocol eficiente și sigure (secure)o implementare în kernel
• legături cu alte subsisteme ale SO: memorie, procese, scheduling, sisteme de fișiere
14.02.2011- 20.02.2011
Structuri de SO
• SO monolitice • SO microkernel• Mașini virtuale• SO exokernel• SO stratificate
14.02.2011- 20.02.2011
SO monolitice
• UNIX și derivatele, Windows
14.02.2011- 20.02.2011
Microkernel
• Minix, Amoeba• QNX• Mach
14.02.2011- 20.02.2011
Mașini virtuale
14.02.2011- 20.02.2011
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
14.02.2011- 20.02.2011
Reguli și notare
• Curs – 5 puncteo lucrari – 2 puncte (4 lucrări x 3 subiecte x 0.16 puncte) – 10 minute
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
o final – 3 puncte (10 subiecte x 0.3 puncte) – 60 de minute sesiune, acoperă întreaga materie open-book
o minim 1.5 puncte pentru promovare
14.02.2011- 20.02.2011
Reguli și notare (2)
• Activitate laborator - 0 puncteo nu are pondere in nota finală, dar este obligatorie
prezenţa activă la cel puţin 8 laboratoareo tutorial-like, task-basedo încurajăm colaborarea pe parcursul laboratorului
• Teme - până la 11 puncte (5 puncte obligatorii)o 1 temă (independenta de platformă) (tema 0 - din săptămâna 2)o 5 teme x 2 (Linux, Windows)o primele 5 teme (în ordinea punctajului) vor fi punctate integralo următoarele 6 teme vor fi punctate raportat cu nota de curso corectare cu teste publice
• Depunctare temeo -0.25p pe zi (din 10) timp de 12 zileo după 12 zile nota maximă pentru o temă este 7o deadline absolut: o săptămână înainte de primul examen
14.02.2011- 20.02.2011
Reguli și notare (3)
• 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
?
top related