11_so_curs_01 (2)

Post on 25-Dec-2015

221 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

gshjgfjhfgkjhszxcjvkjfhfx

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