Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Documenti analoghi
Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

I sistemi operativi. Prof. Daniele Contarino

Il computer P R O F. L O R E N Z O P A R I S I

Il computer P R O F. L O R E N Z O P A R I S I

Il computer P R O F. L O R E N Z O P A R I S I

Architettura dei calcolatori e Software di sistema

Sistema operativo & file system 1

Architettura di un calcolatore

Lezione 3. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Dal sistema operativo all' hardware

Sistema Operativo (Software di base)

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

INFORMATICA E PC IL PERSONAL COMPUTER

INFORMATICA. L informatica comprende:

INFORMATICA E PC IL PERSONAL COMPUTER

Architettura di Von Neumann

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

Dal sistema operativo all' hardware

IL SOFTWARE DI SISTEMA

Concetti Introduttivi

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Architettura hardware

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Il software: Istruzioni per il computer

Struttura Logica del S.O:

Lezione 5: Software. Firmware Sistema Operativo. Laboratorio di Informatica

Sistema operativo. Interazione con il SO

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

Parte II. Introduzione ai sistemi operativi e WindowsX. Parte II 1

La memoria principale

Sistemi Di Elaborazione Dell informazione

Corso di Informatica. Architettura del Calcolatore. Architettura del Calcolatore. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

TERMINALE INTELLIGENTE

Esame di INFORMATICA Lezione 4

Architettura dei calcolatori

Corso di Informatica

Elementi di Informatica

Sistemi Operativi (prima parte) Appunti di TPI Elaborati dal prof. Ing. Mario Catalano Per la classe 3 Einf.

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Come funzionano i computer

Sistemi Operativi: Concetti Introduttivi

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Il modello di Von Neumann

Sistemi Operativi. Lez. 0: Introduzione ai sistemi operativi

LEZIONE 4. Hardware (periferiche) Software (algoritmi)

Informatica. Informazione L Informazione è un dato, o un insieme di dati, interpretati in un determinato contesto.

Introduzione ai Sistemi Operativi. A cura di Massimo Scolaro Mob :

Il Processore. Informatica di Base -- R.Gaeta 27

Sistema Operativo. (hardware e software) della della macchina

Prof. Rossella Cancelliere

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Sistema operativo (SO)

Capitolo 1. Introduzione. Cay S. Horstmann Concetti di informatica e fondamenti di Java

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Struttura dell elaboratore elettronico

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

Informatica Generale 06 - Introduzione ai Sistemi Operativi

Introduzione al Sistema Operativo MS-Windows ed all Uso dell IDE DEV-C++

Modulo 3. Software. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè

2. Strutture dei Sistemi Operativi. 2.2 Interfaccia col Sistema Operativo Interprete dei comandi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Modulo: Elementi di Informatica

Architettura dei computer

Personal Computer: introduzione

Componenti di un sistema operativo

Architettura hardware

Il sistema operativo. Sistema Operativo

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Dal sistema operativo all' hardware

Computer e Programmazione

Lezione 2 Chiamate di procedura e risposta alle interruzioni

SISTEMI INFORMATIVI AZIENDALI

Obiettivi del corso. Parte II Aprire un programma di navigazione (browser) Internet explorer Ricercare una pagina Web Uso di Google

Fondamenti di Informatica T. Il Software

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il Sistema Operativo

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni

Sistemi di Elaborazione delle Informazioni

Il Sistema Operativo. Informatica Sistema Operativo 1

Capitolo 6 Le infrastrutture SoftWare

Il sistema di elaborazione Hardware e software

Sistemi informatici in ambito radiologico. Introduzione al corso. Programma del corso. Dott. Ing. Andrea Badaloni A.A

Tecnologie per il web e lo sviluppo multimediale. Sistemi per l elaborazione delle informazioni

Francia dalla contrazione delle parole INFORmazione e automatica. Elaborazione e trattamento automatico delle informazioni INFORMATICA

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill

Criteri di caratterizzazione di una memoria

L insieme delle istruzioni, atte ad elaborare convenientemente i dati ed organizzate in modo organico, viene normalmente definito programma.

Il software di sistema

IL SISTEMA OPERATIVO

Il software: cenni sul sistema operativo

Introduzione alla programmazione (bozza)

Sistema Operativo. Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)

Informatica. 80 ore divise in 4 UFC. Docente: Michela Bacchin. Contatti: Tramite Ermes Studenti

Transcript:

Lezione 1 Sistemi operativi 9 marzo 2017 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 17 1.1

Di cosa parliamo in questa lezione? Introduzione generale ai 1 Richiami sui calcolatori elettronici 2 Architettura generale del software 3 Definizione di sistema operativo 4 Le interfacce utente SO 17 1.2

I componenti di un sistema di calcolo 1 Dispositivi fisici (hardware) 2 Programmi di base 3 Programmi applicativi 4 Utenti SO 17 1.3

Il calcolatore elettronico Calcolatore elettronico È una macchina: costituita prevalentemente da dispositivi micro-elettronici in grado di elaborare informazioni in ingresso in grado di produrre informazioni in uscita utilizzante un programma definibile completamente dall utente immagazzinato in memoria insieme ai dati In un calcolatore elettronico è l utente a definire il comportamento della macchina, inteso come modo di elaborare le informazioni in ingresso, non il progettista Di conseguenza, il calcolatore elettronico è una macchina universale, in grado di emulare il comportamento di ogni macchina progettata dall uomo SO 17 1.4

Architettura e organizzazione di un calcolatore Architettura di un calcolatore L insieme delle caratteristiche della macchina che sono visibili al programmatore in linguaggio macchina o in assembler Tipiche caratteristiche definite dall architettura sono la dimensione dei registri in bit, oppure la modalità di indirizzamento 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 data architettura Tra le caratteristiche definite dall organizzazione di un calcolatore troviamo ad esempio la sua velocità di clock, la quantità massima di memoria installabile, e il numero e tipo di bus di collegamento interni SO 17 1.5

Livelli e astrazioni Un calcolatore elettronico moderno è un dispositivo estremamente complesso: per poter comprendere il suo funzionamento si fa ricorso ad una rappresentazione basata su diversi livelli gerarchici di astrazione Ogni livello si basa sulle strutture definite al livello sottostante per realizzare componenti più complessi Livello Astrazioni Delle 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,... SO 17 1.6

Hardware e software In genere viene fatta una netta distinzione tra la struttura fisica del calcolatore ed i programmi che esso esegue Definizione di hardware L insieme degli apparati fisici che costituiscono un calcolatore elettronico. Per estensione, il termine viene anche usato come aggettivo per qualificare un particolare componente del calcolatore Definizione di software L insieme dei programmi eseguibili da un calcolatore elettronico. Per estensione, il termine viene anche usato come aggettivo per qualificare un particolare programma eseguito dal calcolatore SO 17 1.7

Firmware Le definizioni di hardware e software non sembrano ambigue, tuttavia non descrivono pienamente l organizzazione di un calcolatore elettronico moderno Quali componenti di un calcolatore non rispondono pienamente né alla definizione di hardware né a quella di software? Alcuni esempi: Il programma eseguito dal calcolatore subito dopo l accensione e prima che sia caricato il sistema operativo Il programma memorizzato all interno di un dispositivo hardware specializzato, come una stampante oppure un disco rigido Il programma eseguito da un microcontrollore all interno di un sistema embedded Definizione di firmware Un programma così legato ad un componente hardware da poter essere, il più delle volte, considerato come parte integrante del componente stesso SO 17 1.8

Sistemi funzionali del calcolatore Il calcolatore può essere suddiviso in cinque parti fondamentali chiamate sistemi (o unità) funzionali operanti in modo relativamente indipendente l una dall altra 1 Sistema di ingresso 2 Sistema di uscita 3 Sistema di memoria 4 Sistema di calcolo 5 Sistema di controllo sistema di ingresso sistema di uscita sistema di I/O sistema di memoria sistema di calcolo sistema di controllo processore SO 17 1.9

Sistema di memoria Il sistema di memoria è costituito da tutti i componenti e le periferiche che sono in grado di memorizzare informazione, ossia i programmi del calcolatore ed i dati su cui tali programmi operano Esistono fondamentalmente due tipologie di memoria: Memoria primaria Costituita spesso da memoria ad accesso casuale (RAM, Random Access Memory), volatile, veloce e costosa; organizzata in celle da uno o più byte, ciascuna cella associata con un valore numerico progressivo chiamato indirizzo di memoria Memoria secondaria (o memoria di massa) costituita spesso da dischi magnetici od ottici; persistente, lenta e poco costosa; organizzata in settori di centinaia o migliaia di byte; il meccanismo di indirizzamento dei settori dipende dalla tecnologia del dispositivo di memorizzazione SO 17 1.10

Gerarchia della memoria primaria Normalmente la memoria primaria è organizzata come una gerarchia di livelli di memoria, ciascuno caratterizzato da diverse capacità e velocità Memoria dinamica: relativamente lenta, di grande capacità, costituisce la memoria centrale, ossia il livello più basso della gerarchia della memoria primaria Memoria statica: relativamente veloce, di piccola capacità, costituisce la cosiddetta memoria cache; i calcolatori moderni includono due o tre livelli di memoria cache con diverse velocità e capacità La memoria statica è, rispetto alla memoria dinamica: molto più costosa molto più dispendiosa come assorbimento di corrente molto più ingombrante come superficie occupata sui chip integrati SO 17 1.11

Sistema di calcolo Definizione di unità aritmetico-logica L unità aritmetico-logica (ALU) è l insieme dei circuiti del processore dedicato all esecuzione delle operazioni aritmetiche, logiche e di manipolazione del contenuto dei registri Possiamo includere nel sistema di calcolo anche l insieme dei registri del processore, ossia degli elementi di memoria estremamente veloci destinati a memorizzare le istruzioni eseguite dal processore ed i dati su cui essi operano La velocità operativa dei processori moderni implica che di fatto tutte le unità aritmetico-logiche operano esclusivamente sui dati contenuti nei registri, e non sono in grado di compiere operazioni su dati contenuti in memoria primaria si noti però che questo è un vincolo organizzativo, non architetturale SO 17 1.12

Famiglie di calcolatori I calcolatori elettronici moderni sono progettati in funzione dello scopo al quale sono destinati Esistono diverse famiglie di calcolatori, ciascuna con le proprie esigenze di dimensione, costo, potenza... Calcolatori per High Performance Computing (cluster, supercomputer) Calcolatori aziendali (mainframe) Server di rete Stazioni di lavoro (workstation) Calcolatori da tavolo (desktop computer) Calcolatori portatili (laptop, notebook) Tablet, cellulari di fascia alta Sistemi integrati (embedded computer) In termini puramente numerici, in quale categoria si trova la maggior parte dei calcolatori? In grande maggioranza sono sistemi integrati (embedded) SO 17 1.13

Architettura del software e utenti Utente finale Programmatore applicativo Programmatore di sistema PROGRAMMI APPLICATIVI STRUMENTI SISTEMA LIBRERIE DI SISTEMA NUCLEO SISTEMA OPERATIVO HARDWARE Sistemista Progettista di sistema operativo SO 17 1.14

applicativo Il software applicativo è l insieme dei programmi utilizzati dall utente finale del calcolatore elettronico Esempi di applicazioni: Browser WWW Client di posta elettronica Gioco multimediale Foglio elettronico, word processor,... Nel sistema operativo non sono incluse le applicazioni SO 17 1.15

di base Il software di base di un calcolatore elettronico è un insieme di programmi che permettono di Assicurare il corretto funzionamento dell hardware Gestire le risorse del sistema Amministrare il sistema ed i suoi utenti Fornire interfacce verso gli utenti Permettere la scrittura di applicazioni per gli utenti finali Esempi: Sistemi di archiviazione (data base) Shell di comandi Login manager Macchine virtuali (Java Virtual Machine) Librerie di procedure Compilatori e interpreti Il sistema operativo è parte del software di base SO 17 1.16

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 parte del sistema operativo? Non esiste una risposta univoca Perciò non esiste una definizione universalmente accettata di sistema operativo La risposta dipende anche dal punto di vista: dell utente finale del sistema hardware del programmatore applicativo SO 17 1.17

Il punto di vista dell utente finale Le varie famiglie di calcolatori rappresentano tipologie d utilizzo differente Gli utenti hanno quindi diverse esigenze e priorità Gli utenti dei sistemi HPC privilegiano l efficienza e la velocità d esecuzione dei propri programmi Gli utenti di calcolatori aziendali, server e stazioni di lavoro favoriscono la condivisione equa delle risorse hardware Gli utenti dei calcolatori da tavolo e portatili danno molta importanza alla facilità d uso ed all aspetto delle interfacce di comunicazione Gli utenti di tablet e smartphone privilegiano il risparmio di energia e interfacce semplici ed immediate Per 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ò che gli utenti finali realmente si aspettano SO 17 1.18

Il punto di vista del sistema hardware Un calcolatore elettronico è costituito da centinaia di dispositivi hardware differenti Il corretto funzionamento di ciascuno di essi necessita di un programma di controllo (driver di periferica) Ciascuna risorsa hardware inoltre deve essere condivisa tra gli altri dispositivi hardware esempi: bus di sistema, controllore delle interruzioni tra i programmi in esecuzione esempi: tempo della CPU, memoria centrale tra i vari utenti del sistema esempi: scheda di rete, CPU, memoria Gestore dell hardware Il sistema operativo svolge i ruoli di programma di controllo assegnatore di risorse SO 17 1.19

Il punto di vista del programmatore applicativo Ciascuna periferica hardware di cui è costituito il calcolatore deve essere programmata in modo specifico Ad esempio, sono radicalmente diverse le operazioni da effettuare sull hardware per leggere un dato da un disco rigido una memoria flash su bus USB un disco CD-ROM un nastro magnetico Ciò che il programmatore applicativo desidera è utilizzare sempre la stessa procedura per leggere un dato da un dispositivo di memoria, in modo indipendente dalla tecnologia Astrazione dell hardware Il sistema operativo fornisce al programmatore un insieme di procedure uniformi per utilizzare le periferiche hardware SO 17 1.20

Definizione di sistema operativo Collezione di programmi di base per la gestione delle periferiche hardware del calcolatore e per la creazione di un ambiente per l esecuzione controllata dei programmi applicativi da parte degli utenti finali Programma di controllo delle periferiche Creatore di una astrazione dei dispositivi hardware Assegnatore delle risorse di sistema ai programmi in esecuzione Ottimizzatore del sistema per soddisfare le aspettative dell utente finale Realizzatore dell interfaccia di comunicazione tra l utente finale ed il calcolatore SO 17 1.21

Servizi di un sistema operativo Un sistema operativo offre un ambiente in cui eseguire i programmi 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 SO 17 1.22

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 general-purpose moderni SO 17 1.23

Interfaccia a lotti L interfaccia a lotti (batch) è una interfaccia utente non interattiva L utente descrive in anticipo tutto il lavoro che deve essere svolto Nei dei mainframe veniva utilizzato un linguaggio apposito detto Job Control Language Nei moderni gli utenti possono descrivere un insieme di operazioni (job) da svolgere in sequenza od in parallelo Le shell di comandi possono leggere i comandi da eseguire da file su disco chiamati script Nei file script è possibile utilizzare un linguaggio di programmazione interpretato per implementare test condizionali, iterazioni, ecc. Esistono linguaggi interpretati specializzati per l amministrazione di sistema (es.: Perl) SO 17 1.24

Interprete dei comandi L interprete dei comandi è una interfaccia utente basata sull idea di linea comando CLI, Command Line Interface Quando l interfaccia è pronta ad accettare un nuovo comando visualizza sulla console o terminale una stringa di caratteri detta prompt (ad esempio, $ ) In 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), Korn shell (ksh), C shell (csh, tcsh), Z shell (zsh),... Esempio: $ date -R Esempio: Wed, 02 Mar 2016 10:53:09 +0100 Esempio: $ _ SO 17 1.25

Comandi interni ed esterni Due diversi tipi di comandi: Comandi esterni: file eseguibili su disco contenenti il programma 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 PATH memorizza una lista di directory in cui la shell cerca il comando esterno Esempi in Linux: ls, rm, cp Comandi interni: le operazioni richieste sono eseguite direttamente dalla shell senza creare un nuovo processo Esempi in Bash: cd, alias, jobs SO 17 1.26

Interfaccia grafica L interfaccia grafica consente all utente di interagire con il sistema tramite pulsanti, icone e menù attivabili con mouse e/o tastiera Acronimo inglese: GUI (Graphical User Interface) La prima GUI usata nello Xerox Alto (1973) Source: it.wikipedia.org SO 17 1.27

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 SO 17 1.28

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 utente ricreando sullo schermo una scrivania (desktop) virtuale con cartelle (directory), fogli (documenti), cestino, orologio,... SO 17 1.29