materiale in lavorazione

82

Upload: others

Post on 08-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Materiale in lavorazione
Page 2: Materiale in lavorazione

Materiale in lavorazione

Page 3: Materiale in lavorazione
Page 4: Materiale in lavorazione

Sistema Operativo (O.S.)

● E' l'insieme di programmi che fanno funzionare un elaboratore

● Gestisce le risorse del computer● Fornisce servizi ai programmi.

Page 5: Materiale in lavorazione

5

Sistemi operativi

Page 6: Materiale in lavorazione

6

STRATI

Page 7: Materiale in lavorazione

7

S.O. gestisce le risorse del sistema e le alloca ai programmi e utenti

● Memoria● I/O● Disco, file system● CPU● Rete

● Le periferiche sono gestite da “driver”

● Gestioni degli Utenti● Categorie e profili● Privilegi, quote ecc.

Page 8: Materiale in lavorazione

8

Quote di risorse:●Disco●Rete●Cpu??●Si utilizzano quote disco e banda a volte nei servizi di web hosting.

Page 9: Materiale in lavorazione

9

S.O. fornisce API (Application Program Interfaces)

● Le A.P.I. vengono richiamate dai programmi per ottenere servizi vari.

● Esistono API proprietarie (specifiche di un S.O. Come Windows, Linux, OpenVMS o altri)

● O standard (aperte) come Posix (POSIX.1-2008 or IEEE Std 1003.1-2008)

● Le API di linux sono oltre 300, FreeBSD oltre 500

Page 10: Materiale in lavorazione

10

I programmi e l'API

● Programmi compilati per una specifica API funzionano solo su un S.O. Con quell'API.

● Compilati per una specifica architettura e.g. X86 o ARM, funzionano solo su quell'architettura

● Quindi: poca portabilità● Occorre ricompilare su/per una piattaforma

diversa (sperando di non avere utilizzato estensioni particolari -proprietarie-specifiche del linguaggio)

Page 11: Materiale in lavorazione

11

Sistemi operativi con (anche) API posix

● A/UX● AIX● BSD/OS● DSPnano● HP-UX● INTEGRITY● IRIX● LynxOS● MPE/iX● OS X[13]● QNX[14]● RTEMS (POSIX 1003.13-2003 Profile 52)● Solaris● Tru64● Unison RTOS● UnixWare

● Windows XP Professional con Service Pack 1 o posteriore

● Windows Server 2003● Windows Vista (Ultimate /

Enterprise)● Windows 7 (Ultimate /

Enterprise)● OpenVMS (through optional

POSIX package)● Symbian OS with PIPS (PIPS

Is POSIX on Symbian)

Page 12: Materiale in lavorazione

12

Esempi di chiamate (call) API

● Windows:● CreateWindowEx● GetSystemTime● CreateFile● WriteFile● NTCreateProcess

● Linux● Fork● Allocate, free

memory● kill

Page 13: Materiale in lavorazione

13

Servizi (API) speciali

● Creazione sottoprocessi/thread

● Sincronizzazione fra processi (semafori)

● Comunicazione fra processi (pipes, msg queuing)

● Categoria IPC (Inter Process Communication)

Page 14: Materiale in lavorazione

14

Tipi di programmi che usano il S.O.

● Programmi applicativi● Paint, prato fiorito, blocco note● word, libreoffice, il browser● giochi

● Programmi di utilità● Backup● Deframmentazione● Gestione utenti/sistema

Page 15: Materiale in lavorazione

15

S.O. L'avvio

● Boot(strap) (prima c'è il P.O.S.T.)● Power On Self Test

● Scelta dispositivo di boot nel BIOS (sequenza)● HDD, CD, USB, rete● A volte il BIOS contiene un mini sistema

operativo ●

Page 16: Materiale in lavorazione

16

Boot

● Partizioni disco● Boot manager (e.g. GRUB)

● Ogni partizione può contenere un sistema operativo

● In alcuni casi possono esistere più sistemi operativi nella stessa partizione (es: ubuntu dentro Windows)

Page 17: Materiale in lavorazione

17

Gestione risorse

Page 18: Materiale in lavorazione

18

CPU

Page 19: Materiale in lavorazione

19

Gestione risorse: CPU● Gestione CPU: l'”IDLE LOOP”

● Quando non c'è nulla da fare e si resta in attesa di interruzioni. Branch .

● Gestione CPU: scheduler e dispatcher

● Lo scheduler decide a chi spetta l'uso della CPU in base alle priorità e ai “quanti” di tempo.

● Il dispatcher attiva il processo designato dallo scheduler

● Gli eventi nel sistema sono segnalati (e.g. I/O completion) da interruzioni.

Page 20: Materiale in lavorazione

20

Interruzioni (interrupts)

● Segnalazioni al processore di eventi hardware o software

● Da gestire con apposite routines.● Il programma in esecuzione viene interrotto per

lasciare posto alla gestione dell'interrupt● Gestore interruzione: ISR (Interrupt Service

Routine)

Page 21: Materiale in lavorazione

21

Multiprogrammazione (tre programmi, una CPU)

Page 22: Materiale in lavorazione

22

Processi e thread (non confondere Multithreading con Hyperthreading)

Page 23: Materiale in lavorazione

23

Stati dei processi

Page 24: Materiale in lavorazione

24

Gli stati di un processo

Page 25: Materiale in lavorazione

25

S.O. Utilizzo di strutture dati LIFO e FIFO

● FIFO: coda, utilizzatissimo per l'accesso alle risorse (con priorità).

● LIFO (Stack) salvataggio contesti, passaggio parametri (valori, indirizzi)

● Control Block: contiene stato e contesto di un task.

Page 26: Materiale in lavorazione

26

S.O. Gestione processori

● Gestione modi operativi● Es: User, supervisor, executive, Kernel ecc

● “poteri” (*) crescenti con i modi operativi● Istruzione Change mode to per passare da un

modo ad un altro (servono privilegi)●

● (*) esecuzione di istruzioni speciali, accesso fisico all'I/O...

Page 27: Materiale in lavorazione

27

Page 28: Materiale in lavorazione

28

Gestione memoria (RAM)

● RAM: risorsa molto critica, se la memoria è troppo poca S.O. usa il disco (swap, paging) che è mille volte più lento

● Pagine (da 512B....4KB...1MB)● Memoria virtuale (ogni programma crede di avere un

intero spazio indirizzabile a sua disposizione)● Paginazione: “page fault”--->LRU (Least Recently

Used)● Swapping (butto fuori qualche processo per fare

spazio)

Page 29: Materiale in lavorazione

29

Memoria virtuale, paging e swapping

Page 30: Materiale in lavorazione

30

Mappatura di VM su pagine di RAM

Page 31: Materiale in lavorazione

31

Memory Swapping

Page 32: Materiale in lavorazione

32

I/O (Input/Output) periferiche

Page 33: Materiale in lavorazione

33

Page 34: Materiale in lavorazione

34

Gestione I/O

● Periferiche gestite da “driver” ● Interrupt● Command queuing● Sorting● Read ahead● Gestione cache● Writeback (delayed write)● Spooling

Page 35: Materiale in lavorazione

35

Gestione dischi

● File system● Spazio libero● Quote● Gestione consistenza del file system● Journaling, backup, restore, archiving● Utilità di deframmentazione ecc

Page 36: Materiale in lavorazione

36

Page 37: Materiale in lavorazione

37

HDD: gestione RAID● Redundant Array of Independent Disk● Raid 1 (AKA mirroring, shadowing)● Raid 0 (striping)● Raid 5 (parity Striping)

Page 38: Materiale in lavorazione

38

Lo “shell” dei comandi

● Comandi al sistema● A linea di comandi● CLI (Command Language Interpreter)● Esempi: DOS-windows, Unix shell, DCL● Procedure di comandi (file .Bat)

● Potenti, automazione di task frequenti● Interfaccia grafica

Page 39: Materiale in lavorazione

39

Esempi di comandi DOS... Windows

● FOR, CALL e GOTO (procedure di comandi)● http://www.dostips.com/DtCodeBatchFiles.php#B

atch.FileList● Primer: http://www.ericphelps.com/batch/

Page 40: Materiale in lavorazione

40

● echo off● rem questo è un commento● :: questo è un altro commento● rem procedura di comandi che pinga tutti gli IP di

una sottorete● echo procedura di comandi che pinga tutti gli IP di

una sottorete● echo la tua versione di windows:● ver● rem cambiamo il prompt● prompt cip$G● rem inviamo il risultato del comando ipconfig ">"

nel file ip.txt● ipconfig > ip.txt● rem cerchiamo all'interno del file ip.txt la parola

"Indirizzo" è i record che la contengono vengono messi in ind.txt

● find "Indirizzo" ip.txt > ind.txt● echo il tuo indirizzo IP:● type ind.txt● findstr /O /A:AA ". :" ind.txt

Es: Procedura che pinga tutti gli IP di una sottorete

● echo.Date : %date%● echo.ip : %date:~6,4%● color 0a● echo -------------------------------------------● echo introdurre indirizzo di rete escluso

ultimo byte es: 192.168.1● set /p rete=Indirizzo IP rete?● echo %rete%● for /L %%X in (8,1,24) do (● echo %rete%.%%X● ping -n 2 %rete%.%%X● ECHO. errorlevel ping %ERRORLEVEL%)● rem find "Persi = 2" pin.txt● rem ECHO. errorlevel find %ERRORLEVEL

%)● tree● rem echo il primo parametro IP (ultimo byte)● rem for %%X in (100 101 102 103) do ping

-n 1 %rete%.%%X

Page 41: Materiale in lavorazione

41

Page 42: Materiale in lavorazione

42

Esempi di comandi Unix shell

● Mkdir (crea directory)● Rmdir (lo rimuove)● Cd (change directory) %cd prove %cd ..● Ls (elenco files)● Ls -l● -rw-r--r-- 1 username group 15 May 22 16:26 first● drwxr-xr-x 2 username group 512 May 22 17:11 sub● Cp (copia files) %cp primo secondo● Mv (rinomina o sposta i files) %mv primo due● Man (manual) help %man cp● Pico (editor di testo) %pico filemio

Page 43: Materiale in lavorazione

43

Diritti e privilegi

● Per utente-gruppo● Rappresentati da una longword di 0-1● Ogni bit se vale 1 abilita quel privilegio● Esempi di rights:● Set privilege (!!), exceed quota, set time, set

priority Phy_IO, Bypass ecc ecc.●

Page 44: Materiale in lavorazione

44

La “User Interface” (interfaccia utente)

● Come vengono imessi nell'elaboratore i comandi ed i dati

● Come vengono presentati i risultati dell'elaborazione

Page 45: Materiale in lavorazione

45

Da connettori e lampadine

Page 46: Materiale in lavorazione

46

A schede perforate

Page 47: Materiale in lavorazione

47

Page 48: Materiale in lavorazione

48

Al controllo vocale (riconoscimento/sintesi)

Page 49: Materiale in lavorazione

49

La (G)UI● Graphical? user interface

Page 50: Materiale in lavorazione

50

GUI● Caratteri● Paradigma WIMP (Windows, Icons, Mouse and

Pointer)

Page 51: Materiale in lavorazione

51

Page 52: Materiale in lavorazione

52

Backup, recovery ed archiving

Page 53: Materiale in lavorazione

53

Crash e dump

Page 54: Materiale in lavorazione

54

System crash

● Application crash● System crash● Per evitare danni gravi ai DATI.● Analisi del dump● Azioni opportune per evitarne di futuri

Page 55: Materiale in lavorazione

55

Page 56: Materiale in lavorazione

56

S.O. Files di log

● Registrano eventi vari● Come la “scatola nera” ● Error log● File system journal● Access log● Log applicativi● “severità” degli eventi

Page 57: Materiale in lavorazione

57

S.O. File di registro

● Conserva info sulle impostazioni e caratteristiche del sistema

● Doppia copia

Page 58: Materiale in lavorazione

58

Alcuni sistemi operativi

● RSX11● RT11● VMS TOPS10● CP/CMS SVS MVS● OS400● VXworks● DOS, Windows, OS2● Multics, Unix, Linux● Android● IOS

Page 59: Materiale in lavorazione

59

Tipi di sistemi operativi

● Batch: un programma alla volta in sequenza● Mono-multi tasking (l'esecuzione di più processi, indipendentemente

dal numero degli utenti)● Mono-multi utente● Time sharing● Real time● embedded

Page 60: Materiale in lavorazione

60

S.O. “batch”

● Un “job” alla volta, in sequenza

Page 61: Materiale in lavorazione

61

S.O. Time sharing

● Molti utenti condividono le risorse di sistema● Spesso le postazioni di lavoro sono “terminali”● Esempi:● Windows terminal server (RDP)● Citrix (windows)● Unix/Linux (X11)

Page 62: Materiale in lavorazione

62

S.O. Real time

● Deve potere rispondere in tempi brevissimi (milli-microsecondi) ad eventi esterni.

● Solitamente snello● Scheduler preemptive● Risorse (e.g. RAM) bloccate (niente paging)● Usato per controllo di processo,

telecomunicazioni, borse,● Esempi: VxWorks, QNX

Page 63: Materiale in lavorazione

63

VXworks

● VxWorks include un kernel multitasking con uno scheduler di tipo preemptive e una gestione rapida degli interrupt, estesi meccanismi di inter-processcommunication e funzionalità di sincronizzazione, nonché un file system.

● VxWorks è generalmente usato su sistemi embedded.

Page 64: Materiale in lavorazione

64

S.O. Per microcontroller

● Serve un ucontroller decente● AN585● FreeRTOS● Uclinux● embOS

Page 65: Materiale in lavorazione

65

S.O.”embedded”

● In ROM● Snello● Un compito solo (o quasi)● Su microcontroller● Esempi:

● Il router-switch adsl● La stampante● Player mp3● Lettore dvd● Smartphone? (no)

Page 66: Materiale in lavorazione

66

Per categoria

● Creazione-manipolazione di informazioni ● PC, workstation

● Fruizione-consumo di informazioni● Tablet, Smartphone, appliance

Page 67: Materiale in lavorazione

67

Per categoria di apparato● “PC”

● Windows,● Linux vari

● Apparati mobili (Smartphone, tablet)● IOS● Android● Symbian, bada, tizen Eccetera

● Server● Windows server● Ubuntu server + piattaforme es. LAMP● appliance

Page 68: Materiale in lavorazione

68

Per categoria di U.I.

● WIMP● Pen● (multi) touch● Sensori vari, giroscopio, motion, light ecc● Futuro!!

Page 69: Materiale in lavorazione

69

Linux e derivati (distro)

Page 70: Materiale in lavorazione

70

Inquinamenti-ibridazioni

● Windows RT su smartphone● Ubuntu su smartphone● Android X86 (!)

Page 71: Materiale in lavorazione

71

Porting su architetture diverse

● Windows (NT) “portato” su● X86● Alpha● ARM (Windows RT)

● Linux portato su● X86● ARM● PowerPC● ...

Page 72: Materiale in lavorazione

72

Ambienti run-time

● Eseguono applicazioni● portabili

● JVM● JDK● JRE

● Javascript (Browser)

Page 73: Materiale in lavorazione

73

Piattaforme applicative

Page 74: Materiale in lavorazione

74

Macchine virtuali e emulatori

Page 75: Materiale in lavorazione

75

Virtualizzazione

● Dal CP/CMS su system/360● VMWARE● VirtualBOX● DOSBOX● Hardware assist.

Page 76: Materiale in lavorazione

76

Sicurezza dei S.O.

Page 77: Materiale in lavorazione

77

S.O. sicurezza● Classificazioni D.o.D. USA

Page 78: Materiale in lavorazione

78

Confidentiality

● Classificazione DoD, NSA● EAL (Evaluation Assurance Level)● Da EAL1 a EAL7

Page 79: Materiale in lavorazione

79

Page 80: Materiale in lavorazione

80

Sicurezza

Page 81: Materiale in lavorazione

81

Testo sacro

Andrew Tanenbaum, “Modern Operating Systems”, second edition, Prentice Hall

Page 82: Materiale in lavorazione

82