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.
5
Sistemi operativi
6
STRATI
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.
8
Quote di risorse:●Disco●Rete●Cpu??●Si utilizzano quote disco e banda a volte nei servizi di web hosting.
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
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)
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)
12
Esempi di chiamate (call) API
● Windows:● CreateWindowEx● GetSystemTime● CreateFile● WriteFile● NTCreateProcess
● Linux● Fork● Allocate, free
memory● kill
13
Servizi (API) speciali
● Creazione sottoprocessi/thread
● Sincronizzazione fra processi (semafori)
● Comunicazione fra processi (pipes, msg queuing)
● Categoria IPC (Inter Process Communication)
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
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 ●
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)
17
Gestione risorse
18
CPU
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.
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)
21
Multiprogrammazione (tre programmi, una CPU)
22
Processi e thread (non confondere Multithreading con Hyperthreading)
23
Stati dei processi
24
Gli stati di un processo
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.
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...
27
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)
29
Memoria virtuale, paging e swapping
30
Mappatura di VM su pagine di RAM
31
Memory Swapping
32
I/O (Input/Output) periferiche
33
34
Gestione I/O
● Periferiche gestite da “driver” ● Interrupt● Command queuing● Sorting● Read ahead● Gestione cache● Writeback (delayed write)● Spooling
35
Gestione dischi
● File system● Spazio libero● Quote● Gestione consistenza del file system● Journaling, backup, restore, archiving● Utilità di deframmentazione ecc
36
37
HDD: gestione RAID● Redundant Array of Independent Disk● Raid 1 (AKA mirroring, shadowing)● Raid 0 (striping)● Raid 5 (parity Striping)
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
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/
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
41
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
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.●
44
La “User Interface” (interfaccia utente)
● Come vengono imessi nell'elaboratore i comandi ed i dati
● Come vengono presentati i risultati dell'elaborazione
45
Da connettori e lampadine
46
A schede perforate
47
48
Al controllo vocale (riconoscimento/sintesi)
49
La (G)UI● Graphical? user interface
50
GUI● Caratteri● Paradigma WIMP (Windows, Icons, Mouse and
Pointer)
51
52
Backup, recovery ed archiving
53
Crash e dump
54
System crash
● Application crash● System crash● Per evitare danni gravi ai DATI.● Analisi del dump● Azioni opportune per evitarne di futuri
55
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
57
S.O. File di registro
● Conserva info sulle impostazioni e caratteristiche del sistema
● Doppia copia
58
Alcuni sistemi operativi
● RSX11● RT11● VMS TOPS10● CP/CMS SVS MVS● OS400● VXworks● DOS, Windows, OS2● Multics, Unix, Linux● Android● IOS
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
60
S.O. “batch”
● Un “job” alla volta, in sequenza
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)
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
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.
64
S.O. Per microcontroller
● Serve un ucontroller decente● AN585● FreeRTOS● Uclinux● embOS
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)
66
Per categoria
● Creazione-manipolazione di informazioni ● PC, workstation
● Fruizione-consumo di informazioni● Tablet, Smartphone, appliance
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
68
Per categoria di U.I.
● WIMP● Pen● (multi) touch● Sensori vari, giroscopio, motion, light ecc● Futuro!!
69
Linux e derivati (distro)
70
Inquinamenti-ibridazioni
● Windows RT su smartphone● Ubuntu su smartphone● Android X86 (!)
71
Porting su architetture diverse
● Windows (NT) “portato” su● X86● Alpha● ARM (Windows RT)
● Linux portato su● X86● ARM● PowerPC● ...
72
Ambienti run-time
● Eseguono applicazioni● portabili
● JVM● JDK● JRE
●
● Javascript (Browser)
73
Piattaforme applicative
74
Macchine virtuali e emulatori
75
Virtualizzazione
● Dal CP/CMS su system/360● VMWARE● VirtualBOX● DOSBOX● Hardware assist.
76
Sicurezza dei S.O.
77
S.O. sicurezza● Classificazioni D.o.D. USA
78
Confidentiality
● Classificazione DoD, NSA● EAL (Evaluation Assurance Level)● Da EAL1 a EAL7
79
80
Sicurezza
81
Testo sacro
Andrew Tanenbaum, “Modern Operating Systems”, second edition, Prentice Hall
82