11_so_curs_01 (2)

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

Upload: shannon-brown

Post on 25-Dec-2015

221 views

Category:

Documents


2 download

DESCRIPTION

gshjgfjhfgkjhszxcjvkjfhfx

TRANSCRIPT

Page 1: 11_SO_Curs_01 (2)

Cursul 1

1Introducere în sisteme de operare

14 februarie 2011 - 20 februarie 2011

Page 2: 11_SO_Curs_01 (2)

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

Page 3: 11_SO_Curs_01 (2)

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!

Page 4: 11_SO_Curs_01 (2)

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 [email protected] 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

Page 5: 11_SO_Curs_01 (2)

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

Page 6: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

De ce SO?

Voi ce credeți?

Page 7: 11_SO_Curs_01 (2)

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

Page 8: 11_SO_Curs_01 (2)

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ă?

Page 9: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

De ce SO? (4)

It's fun!

Page 10: 11_SO_Curs_01 (2)

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

Page 11: 11_SO_Curs_01 (2)

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

Page 12: 11_SO_Curs_01 (2)

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

Page 13: 11_SO_Curs_01 (2)

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!

Page 14: 11_SO_Curs_01 (2)

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

Page 15: 11_SO_Curs_01 (2)

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

Page 16: 11_SO_Curs_01 (2)

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

Page 17: 11_SO_Curs_01 (2)

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

Page 18: 11_SO_Curs_01 (2)

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

Page 19: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Suport curs 1

• OSCo Chapter 1: Introductiono Chapter 2: Operating-System Structures

• MOSo Chapter 1: Introduction

Page 20: 11_SO_Curs_01 (2)

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

Page 21: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Ce este un SO? (2)

Page 22: 11_SO_Curs_01 (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ă)

Page 23: 11_SO_Curs_01 (2)

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

Page 24: 11_SO_Curs_01 (2)

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

Page 25: 11_SO_Curs_01 (2)

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.

Page 26: 11_SO_Curs_01 (2)

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

Page 27: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

UNIX

Page 28: 11_SO_Curs_01 (2)

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

Page 29: 11_SO_Curs_01 (2)

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

Page 30: 11_SO_Curs_01 (2)

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

Page 31: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Clasificare SO

• SO pentru servere• SO pentru sisteme multiprocesor• SO pentru calculatoare personale• SO pentru sisteme embedded• RTOS

Page 32: 11_SO_Curs_01 (2)

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

Page 33: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Procesoarele

• Arhitecturio bandă asamblare (a)o superscalar (b)o VLIW/EPIC

• Arhitecturio RISCo CISC

Page 34: 11_SO_Curs_01 (2)

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

Page 35: 11_SO_Curs_01 (2)

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

Page 36: 11_SO_Curs_01 (2)

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

Page 37: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Întreruperi

(a) activarea unui dispozitiv I/E și primirea unei întreruperi(b) tratarea unei întreruperi

Page 38: 11_SO_Curs_01 (2)

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

Page 39: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Magistrale

Page 40: 11_SO_Curs_01 (2)

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

Page 41: 11_SO_Curs_01 (2)

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

Page 42: 11_SO_Curs_01 (2)

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

Page 43: 11_SO_Curs_01 (2)

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

Page 44: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Deadlock-uri

• deadlock potențial (a)• deadlock (b)

Page 45: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Memorie virtuală

• adreseo virtualeo fizice

• MMU și SO fac translatarea din adrese virtuale în adrese fizice

Page 46: 11_SO_Curs_01 (2)

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

Page 47: 11_SO_Curs_01 (2)

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

Page 48: 11_SO_Curs_01 (2)

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

Page 49: 11_SO_Curs_01 (2)

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

Page 50: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Apeluri de sistem

• Accesul la resursele sistemului se face prin apelarea serviciilor puse la dispoziție de nucleu

Page 51: 11_SO_Curs_01 (2)

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

Page 52: 11_SO_Curs_01 (2)

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

Page 53: 11_SO_Curs_01 (2)

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

Page 54: 11_SO_Curs_01 (2)

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

Page 55: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Gestiunea operațiilor de I/E

• interfață comună pentru device drivere• caching, buffering• întreruperi, DMA• I/O scheduling

Page 56: 11_SO_Curs_01 (2)

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

Page 57: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Structuri de SO

• SO monolitice • SO microkernel• Mașini virtuale• SO exokernel• SO stratificate

Page 58: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

SO monolitice

• UNIX și derivatele, Windows

Page 59: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Microkernel

• Minix, Amoeba• QNX• Mach

Page 60: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Mașini virtuale

Page 61: 11_SO_Curs_01 (2)

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

Page 62: 11_SO_Curs_01 (2)

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

Page 63: 11_SO_Curs_01 (2)

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

Page 64: 11_SO_Curs_01 (2)

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

Page 65: 11_SO_Curs_01 (2)

14.02.2011- 20.02.2011

Intrebări

?