Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Documenti analoghi
Il Sistema Operativo (1)

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Architettura di un sistema operativo

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Approccio stratificato

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

Introduzione ai sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Il Sistema Operativo

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

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

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

CAPITOLO 5 - Sistemi Operativi Moderni

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Funzioni del Sistema Operativo

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Sistemi operativi e reti A.A Lezione 2

PARTE 4 La Macchina Software

Il Software. Il software del PC. Il BIOS

CdL in Medicina Veterinaria - STPA AA

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Infrastrutture Software

Software di base. Corso di Fondamenti di Informatica

Corso di Informatica

Corso di Informatica

Pronto Esecuzione Attesa Terminazione

Architettura di un sistema di calcolo

Dispensa di Informatica I.1

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Capitolo 3: Strutture dei sistemi operativi

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino

TEORIA DEI SISTEMI OPERATIVI

Organizzazione Monolitica

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

TITLE Sistemi Operativi 1

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a IX - 1

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

Cos e` un Sistema Operativo? Cos è un sistema operativo?

Sistemi Operativi (modulo di Informatica II) I processi

Introduzione alla Virtualizzazione

2. Strutture dei Sistemi Operativi

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo

Software che sovrintende al funzionamento del computer eseguendo compiti diversi:

Gestione del processore e dei processi

STRUTTURE DEI SISTEMI DI CALCOLO

Esempio: aggiungere j

Introduzione al sistema operativo. Laboratorio Software C. Brandolese

Il supporto al Sistema Operativo

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Il computer: primi elementi

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Come funziona un sistema di elaborazione

Nozioni di Informatica di base. dott. Andrea Mazzini

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Corso di Sistemi di Elaborazione delle informazioni

GLI ARCHIVI DI DATI. File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni

Architetture software. Virtualizzazione

Il sistema operativo

CAPITOLO 1 I SISTEMI OPERATIVI

Definizione e storia dei sistemi operativi

Il software. Capitolo 3 La potenza non è nulla senza il software. Informatica di Base -- R.Gaeta 1

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

Sistemi Operativi. Introduzione UNICAL. Facoltà di Ingegneria. Domenico Talia A.A

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E

Sistemi Operativi Kernel

LINUX. Che cos'e` un sistema operativo?

Sistemi operativi e reti A.A Lezione 2

Il software. la parte contro cui si può solo imprecare. Il software

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

Fondamenti di Informatica

GESTIONE DEI PROCESSI

Sistemi operativi. Esempi di sistemi operativi

Corso di Alfabetizzazione Informatica

Sistemi Operativi UNICAL. Facoltà di Ingegneria. Domenico Talia A.A Sistemi Operativi. D. Talia - UNICAL

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI STRUTTURE DEI SISTEMI OPERATIVI

Sistema di protezione (1)

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Sistema di protezione (2) Protezione (1)

Informatica. Scopo della lezione

NozionidiBase di Informatica

Calcolatori Elettronici A a.a. 2008/2009

Le Infrastrutture Software ed il Sistema Operativo

Transcript:

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Introduzione: 1. Principi di base dei sistemi operativi 2. Sistemi seriali 3. Sistemi batch 4. Multiprogrammazione 5. Time-sharing 6. Sistemi Real-time 7. Componenti base dei sistemi operativi 8. Panoramica su sistemi operativi attuali (Windows/UNIX)

Obiettivi di un Sistema Operativo Semplicità Rende lo sviluppo del software più semplice, mascherando le peculiarita della piattaforma hardware Efficienza Ottimizza l uso delle risorse da parte dei programmi applicativi Flessibilità Garantisce la trasparenza verso le applicazioni di modifiche dell hardware, e quindi la portabilità del software I sistemi operativi sono componenti software Essi esistono perche rappresentano una soluzione ragionevole al problema dell utilizabilita di un sistema di calcolo End User Application Programs Utilities Operating-System Computer Hardware Programmer Operating- System Designer

Virtualizzazione delle risorse all utente ed alle applicazioni vengono mostrate risorse virtuali più semplici da usare rispetto alle risorse reali la corrispondenza tra risorse virtuali e risorse reali è mantenuta dal SO in modo trasparente (mascherandone la struttura) le risorse reali nella maggioranza dei casi possono essere solo assegnate in uso esclusivo, limitando il parallelismo nella esecuzione delle applicazioni la disponibilità di una molteplicità di risorse virtuali, favorisce l esecuzione concorrente di più applicazioni Possibilita di soddisfare molteplici utenti in simultanea utenti che utilizzano molteplici applicazioni in simultanea

Elaborazione seriale (anni 40-50) sistema di calcolo riservato per l esecuzione di un singolo programma (job) per volta mansioni a carico dell utente 1. Caricamento del compilatore e del programma sorgente nella memoria 2. Salvataggio del programma compilato (programma oggetto) 3. Collegamento con moduli predefiniti 4. Caricamento ed avvio del programma eseguibile quantita di tempo non minimale solo per gestire la preparazione di un job, indipendentemente da eventuali errori nell esecuzione dei precedenti passi Migliorie sviluppo di librere di funzioni (e.g. per l I/O) sviluppo di linker, loader, debugger

Sistemi operativi batch (50-60) tesi al miglioramento dell utilizzo delle (costose) risorse hardware basati sull utilizzo di un monitor (modulo software) 1. Il programma e reso disponibile tramite un dispositivo di input 2. Il monitor effettua il caricamento del programma in memoria e lo avvia 3. Il programma restituisce il controllo al monitor in caso di terminazione o errore 4. Il monitor e residente nella memoria 5. I moduli richiesti per uno specifico programma vengono caricati dal monitor come subroutine del programma stesso Ripartizione della memoria monitor Interprete del linguaggio di controllo dei job driver dei dispositivi Area del programma utente codice del programma (incluse le subroutine associate a moduli predefiniti)

Limiti principali dei sistemi batch Monoprogrammazione un singolo job in esecuzione per volta sottoutilizzo della CPU dovuto alla lentezza dei dispositivi CPU inattiva Richiesta verso un dispositivo Inizio esecuzione del job Richiesta soddisfatta Fine esecuzione del job tempo

Spooling (simultaneous peripheral operation on-line) introduzione di una memoria disco (piu veloce dei dispositivi) come buffer tampone per i dispositivi l input viene anticipato su disco, l output ritardato da disco riduzione della percentuale di attesa della CPU contemporaneita di input ed output di job distinti disco dispositivi di ingresso Memoria lavoro dispositivi di uscita CPU

Sistemi batch multiprogrammati (multitasking) gestione simultanea di molteplici job un job per volta impegna la CPU piu job possono impegnare contemporaneamente i dispositivi Tempo di completamento Job A Tempo di completamento Job B tempo Inizio esecuzione del job B Inizio esecuzione del job A Ipotesi job A e job B inoltrano richieste a dispositivi diversi

Monoprogrammazione vs multiprogrammazione job1 job2 job3 Tipo calcolo calcolo+i/o calcolo+i/o Durata 5 min 15 min 10 min Utilizzo disco no no si Utilizzo terminale no si no Utilizzo stampante no no si monoprogrammazione multiprogrammazione Utilizzo pocessore 17% 33% Utilizzo del disco 33% 67% Utilizzo stampante 33% 67% Tempo totale 30 min 15 min Throughput 6 job/ora 12 job/ora Tempo di risposta medio 18 min 10 min

Dispositivo di memorizzazione ausiliario (disco) Multipogrammazione e memorizzazione dei job La memoria di lavoro viene utilizzata per memorizzare i job secondo uno schema di 1. Partizioni multiple 2. Partizione singola caricamento/scaricamento Memoria di lavoro Memoria di lavoro Job A Job B Job C Partizione inutilizzata Job A Job C Job B

Limiti principali dei sistemi batch multiprogrammati Il controllo viene restituito al monitor solo in caso di richiesta verso dispositivo, terminazione o errore rischio di sottoutilizzo delle risorse l esecuzione di job con frequenti richieste di dispositivo puo essere penalizzata impossibilita di supporto ad applicazioni interattive Sistemi operativi time-sharing (1962) il tempo di CPU viene assegnato ai vari job secondo un determinato algoritmo di scheduling stabilito dal monitor (e.g. round-robin) e possibile che l esecuzione di un job venga interrotta indipendentemente dal fatto che il job effettui una richiesta verso un dispositivo (preemption)

Esempio di round-robin JOBs D C B A Tempo di CPU

Supporti al time-sharing Iterruzioni permettono il ritorno del controllo al monitor (sistema operativo) interruzione Sistema operativo (istruzioni) Job A (istruzioni) Job B (istruzioni)

Funzionalita delle interruzioni Un interruzione trasferisce il controllo ad una routine di interrupt tipicamente questo avviene attraverso un interrupt vector, che contiene gli indirizzi delle rispettive routine nel codice del sistema operativo un architettura che gestisca gli interrupt deve fornire supporti per il salvataggio dell indirizzo della prossima istruzione del programma interrotto (PC) e del valore dei registri di CPU ogni sistema operativo moderno e interrupt driven

Sistemi real-time il sistema operativo deve far si che un programma esegua specifici task entro dei limiti temporali prestabiliti (deadlines) Hard real-time: le deadlines devono essere assolutamente rispettate utile per esempio per controllo di processi industriali dati e istruzioni vengono tipicamente memorizzate in componenti ad accesso veloce o memorie a sola lettura (ROM) non supportato dai sistemi operativi time-sharing Soft real-time: le dealines dovrebbero essere rispettate utile in applicazioni che richiedono funzionalita di sistema avanzate (ad esempio applicazioni multimediali)

Processi introdotti per monitorare e controllare in modo sistematico l esecuzione dei programmi un processo è un programma in esecuzione con associati: 1. i dati su cui opera 2. un contesto di esecuzione: cioè le informazioni necessaria alla CPU per eseguirlo, ed al Sistema Operativo per schedularlo il Sistema Operativo utilizza particolari strutture dati per mantenere tutta l informazione relativa a ciascun processo, ed il suo stato quando un processo va in esecuzione sulla CPU può interagire sia con il Sistema Operativo che con altri processi anche il Sistema Operativo può essere costituito da un insieme di processi

Gerarchie di processi A B C D E F un processo può creare altri processi (figli) eventualmente demandandogli parte dei propri compiti in base ai rapporti di parentela esistono gerarchie di processi

Componenti classici di un sistema operativo Gestione dei processi Gestione della memoria primaria e secondaria Gestione dei File Gestione dell I/O Gestione della rete Protezione delle risorse

Accesso ai servizi di sistema: meccanismo delle system call il meccanismo delle System call fornisce un intefaccia per l accesso al software del sistema operativo originariamente tale interfaccia era accessibile solo per programmazione in linguaggio assembly alcuni linguaggi di alto livello (ad esempio C e C++) permettono l invocazione diretta di una system call codice utente flusso di esecuzione System call Ritorno dalla System call Codice del Sistema operativo

Il kernel con la denominazione kernel si intende l insieme dei moduli software di base di un sistema operativo ad esempio il kernel contiene i moduli accessibili tramite le system call i moduli per la gestione degli interrupt il sistema operativo vero e proprio mette a disposizione moduli software aggiuntivi a quelli interni al kernel, come ad esempio programmi per l interazione con gli utenti (command interpreters) comunemente tali programmi si appoggiano a loro volta sui moduli del kernel

Architettura a microkernel solo un insieme ristretto di funzionalità sono implementate nel kernel: gestione delle interruzioni gestione basica della memoria comunicazione tra processi scheduling gli altri servizi del Sistema Operativo sono realizzati da processi che girano in modo utente maggiore flessibilità, estensibilità e portabilità minore efficienza a causa della maggiore frammentazione

Windows NT/2000 NT fu sviluppato da Microsoft per superare Windows 3.1 ancora basato sul DOS disponibile su varie piattaforme (Intel, DEC Alpha) stessa interfaccia di Windows 95/98 single-user multitasking Windows 2000 con architettura NT ma multi-user supporta piattaforme multiprocessore supporta applicazioni sviluppate per altri sistemi operativi, DOS, POSIX, Windows 95 architettura orientata agli oggetti architettura microkernel modificata

Architettura di NT

Windows NT Executive identifica il kernel del sistema operativo Hardware Abstaction Layer: strato di disaccoppiamento fra Sistema Operativo e piattaforma hardware Microkernel: scheduling, gestione delle interruzioni, gestione del multiprocessamento Executive Services: moduli relativi ai vari tipi di servizi offerti dall Executive I/O Manager: gestisce code di I/O sulla base delle richieste dei processi Windows Manager: gestisce l interfaccia grafica a finestre System Services: interfaccia verso i processi che girano in modalità user

Sottosistemi d ambiente NT puo supportare applicazioni scritte anche per altri sistemi operativi interfacce multiple verso le applicazioni garantisce la portabilità del software Win32: API di Windows 95 e NT, tutti anche dagli altri sottosistemi MTVDM: MS-DOS NT Virtual DOS Machine OS/2: (in memoria di...) Win16: Windows a 16 bit POSIX: interfaccia standard di chiamate di sistema, basata su UNIX e supportata da vari sistemi operativi

UNIX sviluppato da ATT nei Bell Labs su piattaforma PDP 7 (1970) riscritto completamente in linguaggio C (appositamente definito) codice di dominio pubblico (per alcune versioni) architettura aperta, cioè indipendente dalla piattaforma diffusione iniziale (gratuita) negli ambienti universitari versione UNIX BSD di Berkely si afferma come piattaforma aperta di riferimento sistema operativo tipico dei server e delle workstation di fascia alta

Albero genealogico di UNIX

Architettura di UNIX struttura stratificata il Kernel costituisce il sistema operativo vero e proprio molte parti del sistema vengono eseguite tuttavia in modalità user

Architettura del Kernel