Upload
duonghuong
View
216
Download
0
Embed Size (px)
Citation preview
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.1
Lezione 1Introduzione ai sistemi operativi
Sistemi operativi
9 marzo 2017
Marco Cesati
System Programming Research GroupUniversità degli Studi di Roma “Tor Vergata”
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.2
Di cosa parliamo in questa lezione?
Introduzione generale ai sistemi operativi
1 Richiami sui calcolatori elettronici2 Architettura generale del software3 Definizione di sistema operativo4 Le interfacce utente
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.3
I componenti di un sistema di calcolo
1 Dispositivi fisici (hardware)
2 Programmi di base
3 Programmi applicativi
4 Utenti
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.4
Il calcolatore elettronico
Calcolatore elettronico
È una macchina:costituita prevalentemente da dispositivi micro-elettroniciin grado di elaborare informazioni in ingressoin grado di produrre informazioni in uscitautilizzante un programma
definibile completamente dall’utente
immagazzinato in memoria insieme ai dati
In un calcolatore elettronico è l’utente a definire ilcomportamento della macchina, inteso come modo dielaborare le informazioni in ingresso, non il progettista
Di conseguenza, il calcolatore elettronico è una macchinauniversale, in grado di emulare il comportamento di ognimacchina progettata dall’uomo
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.5
Architettura e organizzazione di un calcolatore
Architettura di un calcolatore
L’insieme delle caratteristiche della macchina che sonovisibili al programmatore in linguaggio macchina o inassembler
Tipiche caratteristiche definite dall’architettura sono ladimensione dei registri in bit, oppure la modalità diindirizzamento dei dati in memoria
Organizzazione di un calcolatore
L’insieme delle relazioni strutturali tra le varie unitàfunzionali, ed il modo in cui tali unità realizzano una dataarchitettura
Tra le caratteristiche definite dall’organizzazione di uncalcolatore troviamo ad esempio la sua velocità di clock, laquantità massima di memoria installabile, e il numero e tipo dibus di collegamento interni
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.6
Livelli e astrazioni
Un calcolatore elettronico moderno è un dispositivoestremamente complesso: per poter comprendere il suofunzionamento si fa ricorso ad una rappresentazione basata sudiversi livelli gerarchici di astrazione
Ogni livello si basa sulle strutture definite al livello sottostanteper realizzare componenti più complessi
Livello AstrazioniDelle applicazioni Programmi eseguibili dall’utente
Del sistema operativo Chiamate di sistema, librerie. . .Del linguaggio macchina Programmi in assembler
Funzionale Controllo, modello di programm.Della logica Registri, ALU, memorie . . .
Dei circuiti Porte logiche, bistabili, . . .Dei componenti elettronici Transistor, resistenze, . . .
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.7
Hardware e software
In genere viene fatta una netta distinzione tra la struttura fisicadel calcolatore ed i programmi che esso esegue
Definizione di hardware
L’insieme degli apparati fisici che costituiscono un calcolatoreelettronico. Per estensione, il termine viene anche usato comeaggettivo per qualificare un particolare componente delcalcolatore
Definizione di software
L’insieme dei programmi eseguibili da un calcolatoreelettronico. Per estensione, il termine viene anche usato comeaggettivo per qualificare un particolare programma eseguitodal calcolatore
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.8
Firmware
Le definizioni di hardware e software non sembrano ambigue,tuttavia non descrivono pienamente l’organizzazione di uncalcolatore elettronico moderno
Quali componenti di un calcolatore non rispondono pienamentené alla definizione di hardware né a quella di software?
Alcuni esempi:
Il programma eseguito dal calcolatore subito dopol’accensione e prima che sia caricato il sistema operativoIl programma memorizzato all’interno di un dispositivohardware specializzato, come una stampante oppure undisco rigidoIl programma eseguito da un microcontrollore all’interno diun sistema embedded
Definizione di firmware
Un programma così legato ad un componente hardware dapoter essere, il più delle volte, considerato come parteintegrante del componente stesso
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.9
Sistemi funzionali del calcolatore
Il calcolatore può essere suddiviso in cinque parti fondamentalichiamate sistemi (o unità) funzionali operanti in modorelativamente indipendente l’una dall’altra
1 Sistema di ingresso2 Sistema di uscita3 Sistema di memoria4 Sistema di calcolo5 Sistema di controllo
sistema di I/O
sistema diingresso
sistema diuscita
sistema dimemoria
processore
sistema dicalcolo
sistema dicontrollo
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.10
Sistema di memoria
Il sistema di memoria è costituito da tutti i componenti ele periferiche che sono in grado di memorizzareinformazione, ossia i programmi del calcolatore ed i datisu cui tali programmi operano
Esistono fondamentalmente due tipologie di memoria:
Memoria primaria Costituita spesso da memoria adaccesso casuale (RAM, Random Access Memory),volatile, veloce e costosa; organizzata in celle da uno o piùbyte, ciascuna cella associata con un valore numericoprogressivo chiamato indirizzo di memoria
Memoria secondaria (o memoria di massa) costituitaspesso da dischi magnetici od ottici; persistente, lenta epoco costosa; organizzata in settori di centinaia o migliaiadi byte; il meccanismo di indirizzamento dei settoridipende dalla tecnologia del dispositivo di memorizzazione
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.11
Gerarchia della memoria primaria
Normalmente la memoria primaria è organizzata come unagerarchia di livelli di memoria, ciascuno caratterizzato dadiverse capacità e velocità
Memoria dinamica: relativamente lenta, di grandecapacità, costituisce la memoria centrale, ossia il livellopiù basso della gerarchia della memoria primariaMemoria statica: relativamente veloce, di piccola capacità,costituisce la cosiddetta memoria cache; i calcolatorimoderni includono due o tre livelli di memoria cache condiverse velocità e capacità
La memoria statica è, rispetto alla memoria dinamica:
molto più costosamolto più dispendiosa come assorbimento di correntemolto più ingombrante come superficie occupata sui chipintegrati
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.12
Sistema di calcolo
Definizione di unità aritmetico-logica
L’unità aritmetico-logica (ALU) è l’insieme dei circuiti delprocessore dedicato all’esecuzione delle operazioniaritmetiche, logiche e di manipolazione del contenuto deiregistri
Possiamo includere nel sistema di calcolo anche l’insieme deiregistri del processore, ossia degli elementi di memoriaestremamente veloci destinati a memorizzare le istruzionieseguite dal processore ed i dati su cui essi operano
La velocità operativa dei processori moderni implica che difatto tutte le unità aritmetico-logiche operano esclusivamentesui dati contenuti nei registri, e non sono in grado di compiereoperazioni su dati contenuti in memoria primaria — si noti peròche questo è un vincolo organizzativo, non architetturale
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.13
Famiglie di calcolatori
I calcolatori elettronici moderni sono progettati in funzione delloscopo al quale sono destinati
Esistono diverse famiglie di calcolatori, ciascuna con le proprieesigenze di dimensione, costo, potenza. . .
Calcolatori per High Performance Computing (cluster,supercomputer)Calcolatori aziendali (mainframe)Server di reteStazioni di lavoro (workstation)Calcolatori da tavolo (desktop computer)Calcolatori portatili (laptop, notebook)Tablet, cellulari di fascia altaSistemi integrati (embedded computer)
In termini puramente numerici, in quale categoria si trova lamaggior parte dei calcolatori?
In grande maggioranza sono sistemi integrati (embedded)
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.14
Architettura del software e utenti
HARDWARE
NUCLEO SISTEMA OPERATIVO
LIBRERIE DI SISTEMA
STRUMENTI SISTEMA
PROGRAMMI APPLICATIVI
Utente finale
Sistem
ista
Pro
gram
mat
ore
appl
icat
ivo
Pro
gram
mat
ore
disi
stem
a
Progettista disistema operativo
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.15
Software applicativo
Il software applicativo è l’insieme dei programmi utilizzatidall’utente finale del calcolatore elettronico
Esempi di applicazioni:
Browser WWWClient di posta elettronicaGioco multimedialeFoglio elettronico, word processor, . . .
Nel sistema operativo non sono incluse le applicazioni
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.16
Software di base
Il software di base di un calcolatore elettronico è un insieme diprogrammi che permettono di
Assicurare il corretto funzionamento dell’hardwareGestire le risorse del sistemaAmministrare il sistema ed i suoi utentiFornire interfacce verso gli utentiPermettere la scrittura di applicazioni per gli utenti finali
Esempi:
Sistemi di archiviazione (data base)Shell di comandiLogin managerMacchine virtuali (Java Virtual Machine)Librerie di procedureCompilatori e interpreti
Il sistema operativo è parte del software di base
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.17
Cosa è un sistema operativo?
I programmi di un calcolatore appartengono a due categorie:software di base e software applicativo
Quale programmi appartenenti al software di base fanno partedel sistema operativo?
Non esiste una risposta univoca
Perciò non esiste una definizione universalmenteaccettata di sistema operativo
La risposta dipende anche dal punto di vista:
dell’utente finaledel sistema hardwaredel programmatore applicativo
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.18
Il punto di vista dell’utente finale
Le varie famiglie di calcolatori rappresentano tipologie d’utilizzodifferente
Gli utenti hanno quindi diverse esigenze e priorità
Gli utenti dei sistemi HPC privilegiano l’efficienza e lavelocità d’esecuzione dei propri programmiGli utenti di calcolatori aziendali, server e stazioni di lavorofavoriscono la condivisione equa delle risorse hardwareGli utenti dei calcolatori da tavolo e portatili danno moltaimportanza alla facilità d’uso ed all’aspetto delle interfaccedi comunicazioneGli utenti di tablet e smartphone privilegiano il risparmio dienergia e interfacce semplici ed immediatePer gli utenti dei sistemi integrati sono cruciali responsività,tempi di bootstrap ridotti, rispetto di scadenze “real-time”
Interfacciamento verso l’utente e le sue esigenze
Il sistema operativo deve poter offrire, volta per volta, ciò chegli utenti finali realmente si aspettano
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.19
Il punto di vista del sistema hardware
Un calcolatore elettronico è costituito da centinaia di dispositivihardware differenti
Il corretto funzionamento di ciascuno di essi necessita di unprogramma di controllo (driver di periferica)
Ciascuna risorsa hardware inoltre deve essere condivisa
tra gli altri dispositivi hardwareesempi: bus di sistema, controllore delle interruzioni
tra i programmi in esecuzioneesempi: tempo della CPU, memoria centrale
tra i vari utenti del sistemaesempi: scheda di rete, CPU, memoria
Gestore dell’hardware
Il sistema operativo svolge i ruoli diprogramma di controlloassegnatore di risorse
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.20
Il punto di vista del programmatore applicativo
Ciascuna periferica hardware di cui è costituito il calcolatoredeve essere programmata in modo specifico
Ad esempio, sono radicalmente diverse le operazioni daeffettuare “sull’hardware” per leggere un dato da
un disco rigidouna memoria flash su bus USBun disco CD-ROMun nastro magnetico
Ciò che il programmatore applicativo desidera è utilizzaresempre la stessa procedura per leggere un dato da undispositivo di memoria, in modo indipendente dalla tecnologia
Astrazione dell’hardware
Il sistema operativo fornisce al programmatore un insieme diprocedure uniformi per utilizzare le periferiche hardware
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.21
Definizione di sistema operativo
Collezione di programmi di base per la gestione delleperiferiche hardware del calcolatore e per la creazione diun ambiente per l’esecuzione controllata dei programmiapplicativi da parte degli utenti finali
Programma di controllo delle periferiche
Creatore di una astrazione dei dispositivi hardware
Assegnatore delle risorse di sistema ai programmi inesecuzione
Ottimizzatore del sistema per soddisfare le aspettativedell’utente finale
Realizzatore dell’interfaccia di comunicazione tra l’utentefinale ed il calcolatore
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.22
Servizi di un sistema operativo
Un sistema operativo offre un ambiente in cui eseguire iprogrammi applicativi e in cui offrire servizi
Le categorie di servizi di un SO:
Interfaccia con l’utente
Esecuzione dei programmi
Operazioni di I/O (Input/Output)
Gestione del file system
Comunicazioni
Gestione degli errori
Assegnazione delle risorse
Contabilizzazione delle risorse
Protezione e sicurezza
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.23
Tipologie di interfacce utente
Interfaccia a lotti
comandi codificati insieme ai file da eseguire
tipica dei SO dei mainframe
Riga di comando (CLI, Command Line Interface)
shell di comandi
tipica dei minicalcolatori e dei primi microcalcolatori
Interfaccia grafica (GUI, Graphical User Interface)
gestore delle finestre
tipica dei sistemi operativi “general-purpose” moderni
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.24
Interfaccia a lotti
L’interfaccia a lotti (batch) è una interfaccia utente noninterattiva
L’utente descrive in anticipo tutto il lavoro che deve esseresvolto
Nei sistemi operativi dei mainframe veniva utilizzato unlinguaggio apposito detto Job Control Language
Nei sistemi operativi moderni gli utenti possono descrivereun insieme di operazioni (job) da svolgere in sequenza odin parallelo
Le shell di comandi possono leggere i comandi da eseguireda file su disco chiamati script
Nei file script è possibile utilizzare un linguaggio diprogrammazione interpretato per implementare testcondizionali, iterazioni, ecc.
Esistono linguaggi interpretati specializzati perl’amministrazione di sistema (es.: Perl)
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.25
Interprete dei comandi
L’interprete dei comandi è una interfaccia utente basatasull’idea di linea comando
CLI, Command Line Interface
Quando l’interfaccia è pronta ad accettare un nuovocomando visualizza sulla console o terminale una stringadi caratteri detta prompt (ad esempio, “$ ”)
In sistemi operativi molto semplici l’interprete dei comandiè integrato nel nucleo del sistema operativo
Nella maggior parte dei casi l’interprete dei comandi èrealizzato da un programma di sistema detto shell
In MS Windows: Command shell (CMD.EXE), PowerShell
In Unix: Bourne shell (sh), Bourne Again shell (bash), Kornshell (ksh), C shell (csh, tcsh), Z shell (zsh), . . .
Esempio: $ date -REsempio: Wed, 02 Mar 2016 10:53:09 +0100Esempio: $ _
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.26
Comandi interni ed esterni
Due diversi tipi di comandi:
Comandi esterni: file eseguibili su disco contenenti ilprogramma che realizza le operazioni richieste
La shell crea un processo per eseguire il comando esterno
I file eseguibili sono memorizzati in directory predefinite
In Unix e MS Windows la variabile d’ambiente PATHmemorizza una lista di directory in cui la shell cerca ilcomando esterno
Esempi in Linux: ls, rm, cp
Comandi interni: le operazioni richieste sono eseguitedirettamente dalla shell senza creare un nuovo processo
Esempi in Bash: cd, alias, jobs
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.27
Interfaccia grafica
L’interfaccia grafica consente all’utente di interagire con ilsistema tramite pulsanti, icone e menù attivabili conmouse e/o tastieraAcronimo inglese: GUI (Graphical User Interface)La prima GUI usata nello Xerox Alto (1973)
Source: it.wikipedia.org
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.28
Interfaccia grafica (2)
1978–1984: Apple Lisa e Macintosh
Source: http://www.mac-history.net
1985–1995: MS Windows v1, v2, e v3
Source: http://www.guidebookgallery.org
Introduzione aisistemi operativi
Marco Cesati
Schema della lezione
Calcolatori elettronici
Software
Sistema operativo
Interfacce utente
SO’17 1.29
Interfaccia grafica (3)
Nei sistemi MS Windows attuali la GUI è integrata nel SO
Nei sistemi Apple Mac OS X più recenti la GUI èimplementata da
Un window server chiamato Quartz Compositor
Un window manager chiamato Aqua
Nei sistemi Linux la GUI è in genere implementata da
il window server X Window System “X11” (MIT, 1984)oppure il nuovo Wayland compositor
un window manager come Gnome, KDE o Xfce
Tutte le GUI tentano di facilitare l’interazione con l’utentericreando sullo schermo una scrivania (desktop) virtuale concartelle (directory), fogli (documenti), cestino, orologio, . . .