Facoltà di Ingegneria - Università degli studi di Catania. Corso di Laurea in Ingegneria Civile. Sistemi Operativi. Fondamenti di Informatica

Documenti analoghi
Funzioni di un Calcolatore

Fondamenti di Informatica T. Il Software

Elementi di Informatica A. A. 2016/2017

Il Sistema Operativo

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

INFORMATICA. L informatica comprende:

Sistema Operativo Compilatore. Maurizio Palesi

Architettura dei Sistemi Informatici

Introduzione all Informatica. Alfredo Cuzzocrea. Sistema Operativo

Sistema Operativo (Software di base)

Il sistema operativo

Il Sistema Operativo

IL SISTEMA OPERATIVO

Prof. G. Ascia. Sistema Operativo

Il Sistema Operativo. Informatica Sistema Operativo 1

IL SISTEMA OPERATIVO

Sistemi Operativi: Concetti Introduttivi

PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Cenni di sistemi operativi

INFORMATICA. Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione

Tecnologie Informatiche. Il software: I Sistemi Operativi

Struttura Logica del S.O:

correttezza e precisione; anywhere, anytime; affidabilità, disponibilità e sicurezza dei sistemi; riservatezza dei dati; interoperabilità fra

Capitolo 6 Le infrastrutture SoftWare

Il Sistema Operativo

Sistema operativo: Introduzione

Struttura dei Sistemi Operativi

Sommario FONDAMENTI DI INFORMATICA. Schema dell'architettura a livelli del SO. Il Sistema Operativo (SO) SISTEMI OPERATIVI

Il sistema operativo

Il software di sistema

Sistema Operativo. (hardware e software) della della macchina

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

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

SOFTWARE. Programmi e dati che indicano al computer come svolgere un determinato compito

Lezione 15: Il Sistema Operativo : Principi Generali (3P) Lunedì 22 Novembre 2010

Sistema operativo. Utente. Il S.O. mostra offre all utente un ambiente di lavoro che nascondendo la complessità della macchina fisica (hardware). S.O.

FONDAMENTI DI INFORMATICA

Dipartimento di Giurisprudenza Prof. Michele Perilli Conoscenze Informatiche

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

Informatica e Bioinformatica: Sistemi Operativi

Il Sistema Operativo Ripasso

Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7.

I sistemi operativi. Prof. Daniele Contarino

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

Elementi base di un calcolatore. Hardware: Architettura di un elaboratore: il "Cuore" Obiettivo: introdurre un po di terminologia

Il sistema operativo. Sistema Operativo

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO

Informatica a.a. 2010/2011

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

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Microsoft Windows. Introduzione al Sistema Operativo e Utilizzo del Calcolatore. Il Calcolatore. Il Calcolatore. Sistemi Operativi.

Sistema operativo & file system 1

Il sistema operativo

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO

Sistema operativo. Interazione con il SO

Astrazione. Gestore della memoria. La rilocabilità del codice. Gestore della memoria

Principi operativi dei computer. Capitolo 7 Fluency Conoscere e usare l informatica

Lezione 16. Il Software di base

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

IL SOFTWARE DI SISTEMA

Laboratorio di Informatica (Chimica)

Laboratorio di Informatica. Il Sistema Operativo. Il Sistema Operativo 1

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

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

INFORMATICA. Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione

Capitolo 6 Le infrastrutture SoftWare

Il supporto al sistema operativo

2. Cenni di sistemi operativi

Introduzione al Sistema Operativo

Il software. Il solo hardware non è sufficiente per usare un calcolatore

INFORMATICA. Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione

Definizioni iniziali. Sistemi Operativi. Tipi di software. Sistema Operativo. Programma: una sequenza di istruzioni elementari

Sistemi Operativi. Definizioni iniziali

Introduzione ai sistemi operativi

I Processi. Il Concetto di Processo

Fondamenti di Informatica

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

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

Il Sistema Operativo. Il Sistema Operativo. Sommario. Il Sistema Operativo - Classificazione. Fondamenti di Informatica Anno Accademico 2010/2011

Il Sistema Operativo. Informatica B AA 17/18 Luca Cassano 30 Novembre 2017 Informatica B, AA 17/18, Luca Cassano

Informatica Generale 06 - Introduzione ai Sistemi Operativi

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

Il Concetto di Processo

Introduzione al Sistema Operativo

Sistema operativo: Introduzione

Organizzazione di un SO monolitico

Il software: Istruzioni per il computer

Prof. Rossella Cancelliere

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

Software di base. Sistema di elaborazione: struttura gerarchica composta da elementi hardware e software.

Sistemi Operativi ed interazione con HW e CAD

I Sistemi Operativi. Prof.ssa Antonella Serra

Transcript:

Facoltà di Ingegneria - Università degli studi di Catania Corso di Laurea in Ingegneria Civile Sistemi Operativi Fondamenti di Informatica Giovanni Morana

Software Il software è un insieme strutturato di programmi cooperanti organizzato a strati. Ogni strato ha delle proprie funzionalità, supportate a loro volta dalle funzionalità messe a disposizione dagli strati sottostanti. S i s t e m a O p e r a t i v o P r o g r a m m i A p p l i c a t i v i A m b i e n t e d i p r o g r a m m a z i o n e S o f t w a r e d i C o m u n i c a z i o n e Concetto di macchina virtuale H a r d w a r e

Sistemi Operativi Il Sistema Operativo, detto anche software di base, è l'insieme di programmi di base che permettono la gestione dell'hardware. Il numero, il tipo e la complessità di tali programmi, e di conseguenza del sistema operativo, dipende dalle funzionalità e dalla complessità dell'hardware che si vuole gestire. In generale, ogni hardware ha il proprio sistema operativo dedicato (PC, Palmari, Cellulari, Calcolatrici ma anche microonde o robot da cucina)

Sistemi Operativi Perchè è importante il SO? Garantisce una gestione efficiente delle risorse hardware (programmabilità) Offre una piattaforma di base per la gestione della macchina su cui vengono costruiti i programmi per la macchina stessa.

Driver Il SO interagisce con l'hardware attraverso il relativo driver. Driver: è il software che permette al SO di pilotare un dispositivo hardware. Permette di astrarre la struttura fisica, esponendo al SO soltanto il modello funzionale.

Ruolo del Sistema Operativo Il sistema operativo media le comunicazioni tra software utente e hardware. Esso riceve le richieste di accesso/utilizzo delle risorse hardware fatte dall'utente (e viceversa) e le trasforma rendendole comprensibili ai due end-point. esegui pr ogr1 S. O. 0011...10100... Hardw are e v i c e v e r s a : risult at o 1 0 S. O. 0010...10010... Hardw are

Ruolo del Sistema Operativo esegui pr ogr1 S. O. 0011...10100... Hardw are e v i c e v e r s a : risult at o 1 0 S. O. 0010...10010... Hardw are Utente: esegui progr1 Utente: stampa 10 Sistema Operativo: - input da tastiera - ricerca codice di progr1 su disco - carica in memoria centrale codice e dati <elaborazione> Sistema Operativo: - output su video

Classificazione dei SO In base al numero di utenti: Mono-utente (mono-user): un solo utente alla volta può utilizzare il sistema Multi-utente (multi-user): più utenti possono interagire contemporaneamente con la macchina. Nel caso di più utenti contemporanei, il Sistema Operativo deve fornire a ciascuno l'astrazione di un sistema dedicato.

Classificazione dei SO In base al numero di programmi in esecuzione: Mono-programmato (mono-task): si può eseguire un solo programma per volta Multi-programmato (multi-task): il S.O. è in grado di portare avanti contemporaneamente l'esecuzione di più programmi (pur usando una sola CPU). Nel caso di multi-programmazione il S.O. deve gestire la suddivisione del tempo della CPU fra i vari programmi.

Classificazione dei SO Esempi: MS-DOS: monoutente, monoprogrammato Windows95: monoutente, multiprogrammato OS/2: monoutente, multiprogrammato Windows 98/NT: multiutente, multiprogrammato UNIX (linux): multiutente, multiprogrammato MacOS (- 8.X): monoutente, multiprogrammato MacOS (9.0 -): multiutente, multiprogrammato

Sicurezza e Protezione Controllo degli accessi Meccanismi per l identificazione degli accessi al sistema Procedura di accesso al sistema: login A ogni utente è associato uno username e una password Protezione Ogni utente può accedere solo a determinati file e risorse Permessi di scrittura, lettura ed esecuzione Administrator (o root) utente privilegiato Accesso a qualsiasi file o risorsa Personalizzazione Ogni utente può configurare (nei limiti dei permessi ad esso associati) il proprio ambiente operativo

Funzioni del SO Il sistema operativo è diviso in moduli. Ogni modulo ha una propria specifica funzione. Funzioni più importanti: gestione CPU gestione memoria gestione file gestione dispositivi di I/O gestione processi

Struttura di un SO Servizi richiesti dagli utenti al SO Interfaccia nucleo verso l esterno nucleo File system Gestore I/O Gestore processi Gestore memoria Gestore processori hardware

Modello a strati Hardware Kernel o Nucleo Gestore della memoria Gestore delle periferiche Gestore dei file (file system) Interprete dei comandi (shell) Applicazioni Hardware Applicazioni

Kernel Compiti del kernel: Dialoga direttamente con l hardware Esegue i programmi utente Risponde agli eventi (Interrupt) generati dalle periferiche Requisiti Fondamentali: Consentire a utenti/processi diversi la condivisione delle risorse Offrire virtualmente ad ogni utente/processo una CPU

Programmi e Processi Programma: entità statica Memorizzato in genere su di un dispositivo di massa Processo: entità dinamica Programma in esecuzione Dati utilizzati dal programma Informazioni relative al programma (contesto) Ad un programma possono corrispondere diversi processi Un processo può, a sua volta, richiedere l esecuzione di altri processi

Gestione dei processi Il SO controlla la sincronizzazione, interruzione e riattivazione dei programmi in esecuzione Più programmi si alternano nell uso della CPU Ogni programma può essere: Esecuzione Pronto per l'esecuzione Sospeso (in attesa)

Gestione dei processi (In esecuzione): il processore è a disposizione per l esecuzione del processo. In un calcolatore mono-processore ad ogni istante un solo processo può trovarsi in questo stato (Pronto): in grado di essere eseguito ed in attesa del processore dopo il suo rilascio da parte di altri processi Waiting (in attesa): non in grado di essere eseguito perché in attesa di un evento esterno

Multi-programmazione Sistemi uni-programmati: Quando in memoria centrale, oltre al sistema operativo, risiede un solo processo Sistemi multi-programmati: quandola memoria centrale può contenere più di un processo E il sistema operativo che deve gestire la memoria centrale mantenendo le prestazioni del sistema

Time Sharing Sistema per il partizionamento del tempo di utilizzo della CPU. Il tempo viene suddiviso in quanti da assegnare ai vari processi presenti in memoria Si fonda sui concetti di Preemption e Context Switch Preemption Ogni volta che un processo finisce il suo quanto rilascia spontaneamente la CPU Context Switch Processo di load/unload di processi nella CPU

Scheduler E' quella parte del sistema operativo che si occupa di gestire i processi e decidere l'ordine di esecuzione e l'alternanza all'interno della CPU. Esso deve: essere efficiente minimizzare il tempo di risposta minimizzare il tempo d attesa dei processi batch massimizzare il throughput (numero di processi per ora) garantire che ogni processo abbia la sua giusta parte di tempo di CPU

Concorrenza tra processi I processi possono competere tra loro per l'acquisizione/accesso contemporaneo a risorse condivise (race condition) Cooperazione fra processi: memoria condivisa, scambio di messaggi Starvation: Avviene quando più processi richiedono una risorsa ma solo alcuni riescono ad ottenerla Deadlock: Avviene quando un gruppo di processi rimane permanentemente bloccato in attesa di una risorsa

Concorrenza tra processi La concorrenza va gestita al fine di evitare errori. Le soluzioni proposte prevedono l'utilizzo di opportuni costrutti software in grado di garantire la mutua esclusione nella gestione delle risorse: Mutex Semafori Condition variables Monitor

Gestione della memoria Parte della memoria RAM viene riservata al Sistema Operativo Il resto della memoria RAM viene dedicata ai processi in esecuzione ( codice del programma e dati) >>> In un sistema multi-programmato, dove diversi programmi sono contemporameamente in esecuzione, le ridotte dimensioni della RAM forzano l'adozione di tecniche efficaci per la sua gestione.

Gestione della memoria Il SO ha il compito di gestire la memoria in modo trasparente ed efficiente Deve proteggere i dati e le istruzioni dei programmi Deve mascherare la collocazione fisica Consente ad ogni programma di lavorare in proprio spazio di indirizzamento virtuale Deve permettere la sovrapposizione degli spazi di memoria associati ai vari programmi

Memoria virtuale Tecnica software utilizzata per incrementare la quantità di memoria utilizzando una porzione di spazio su disco. Quando la RAM non riesce a contenere i programmi in esecuzione sposta quelli attualmente non utilizzati sulla memoria virtuale. Il processo di load e unload di programmi (o porzioni di questi) tra RAM e MV è detto swapping. Lo spazio dedicato alla MV viene detto SWAP in Linux e FILE DI PAGING in Windows

Memoria virtuale In un sistema con MV, i riferimenti in memoria avvengono tramite indirizzi logici (virtuali). La traduzione in indirizzi reali viene fatta successivamente dalla memory management unit (MMU). LA MMU traduce l'indirizzo logico in indirizzo fisico e controlla a quale porzione di memoria fa riferimento. Nel caso in cui l'indirizzo puntato fa riferimento alla zona di swap, genera un page fault. A seguito del page fault la CPU si fa carico di recuperare l'informazione contenuta nella MV e portarla nella RAM.

Memoria virtuale Principali tecniche Segmentazione (a carico del compilatore) Paginazione (a carico del SO)

File Un file rappresenta l'unità logica di memorizzazione usata dal SO Fisicamente è costituito da una sequenza di byte che codifica opportunamente i dati (le informazioni). I file vengono memorizzati nelle memorie di massa Il componente del SO che si occupa della gestione dei file è il File System

Gestione dei file Il File System si occupa di Fornire un meccanismo di identificazione univoco dei files Implementare i meccanismi per l' accesso ai files Realizzare metodi per il controllo d'accesso ai files Allocare spazio su disco per la memorizzazione dei files Deallocare e Riutilizzare lo spazio su disco con l operazione di cancellazione Fornire un interfaccia utente per: creazione, cancellazione, spostamento, ispezione di file e directory Mascherare le caratteristiche fisiche dei dispositivi di memorizzazione e delle interfacce

Gestione dei file File System comuni sono: FAT 16 Windows3.x, Windows95 FAT 32 Windows95 (SE), Windows98, Windows ME NTFS (New TechnologyFile System) Windows NT, Windows 2000 Professional e Server Ext2/3 Unix/ Linux

Organizzazione logica dei file Organizzazione gerarchica ad albero rovesciato Nodo: file (foglie) o directory Ogni nodo ha un solo padre Directory File Padre più in alto = radice I nodi file non hanno figli (nodi foglia) Ogni file è identificato attraverso un cammino. I cammini possono essere Assoluti dal nodo radice Relativi dal un dato nodo

Gestione del I/O Virtualizzazione delle periferiche: mette a disposizione degli utenti/processi l accesso/uso delle periferiche hardware nascondendo le loro caratteristiche fisiche. Gestisce l assegnazione delle periferiche tra più processi concorrenti Utilizza i driver per la gestione delle periferiche nascondendo al programma applicativo e al resto del SO l effettiva modalità con cui avviene lo scambio dei dati

Interazione con l'utente Utente ed SO comunica attraverso un interprete dei comandi. L'interprete riceve in ingresso il comando utente, identifica a quale programma esso è associato e lo manda in esecuzione. L'interfaccia può essere sia a caratteri (shell, riga di comando) che grafica (icone sul desktop).

Software applicativi Il loro scopo è risolvere specifici problemi dell'utente. Applicazioni nei campi più vari: word processor: spreadsheet: elaborazione di testi gestione di dati in formato tabellare (calcoli e grafici) database: gestione di archivi di dati CAD : computer aid design Software per calcolo scientifico

Ambiente di programmazione È l'insieme dei programmi che consentono lo sviluppo di nuovo software. Sviluppo di un programma: 1. Scrittura del codice sorgente 2. Traduzione in codice macchina 3. Test di correttezza

Processo di traduzione Il traduttore converte il testo di un programma scritto in un particolare linguaggio di programmazione (codice sorgente) nella corrispondente rappresentazione in linguaggio macchina (programma eseguibile).

Traduttori Compilatori Interpreti accettano in ingresso l intero programma e producono in uscita la rappresentazione dell intero programma in linguaggio macchina (versione oggetto). traducono ed eseguono direttamente ciascuna istruzione del programma sorgente, istruzione per istruzione. In generale, un programma compilato risulta più veloce ma meno portatile rispetto ad un programma interpretato

Traduttori (software a supporto) Editor Software utilizzato per la scrittura del codice sorgente Linker (solo per compilatori) Debugger nel caso in cui il programma sia suddiviso in moduli (oggetto) separati provvede a collegarli per formare un unico programma eseguibile. serve per scoprire ed eliminare errori presenti durante l esecuzione di un programma, ma non rilevati in fase di compilazione