29
Introduzione ai sistemi operativi Marco Cesati Schema della lezione Calcolatori elettronici Software Sistema operativo Interfacce utente SO’17 1.1 Lezione 1 Introduzione ai sistemi operativi Sistemi operativi 9 marzo 2017 Marco Cesati System Programming Research Group Università degli Studi di Roma “Tor Vergata”

Introduzione ai sistemi operativiso.sprg.uniroma2.it/lucidi/lez-01-p1.pdf · Il calcolatore elettronico Calcolatore elettronico È una macchina: costituita prevalentemente da dispositivi

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, . . .