Introduzione: Sistemi Operativi I

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

STRUTTURA DEL SISTEMA OPERATIVO
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Introduzione Cosa è un Sistema Operativo? Una breve storia
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Interazione Uomo - Macchina
Gestione dei processi A. Ferrari.
Il Sistema Operativo.
Orario definitivo Martedì Aula 2 Polo Mercoledì Aula 1 Fondi Palazzina delle Scienze Giovedì 9-11 Aula 1 Fondi Palazzina delle Scienze Nota:
Gestione della Memoria
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Strutture dei Sistemi Operativi
Silberschatz, Galvin and Gagne Operating System ConceptsIntroduzione Che cosè un Sistema Operativo? Sistemi batch semplici Sistemi batch multiprogrammati.
INTRODUZIONE AI SISTEMI OPERATIVI
Introduzione al calcolo parallelo SISTEMI INFORMATIVI AZIENDALI Pierpaolo Guerra Anno accademico 2009/2010.
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Struttura dei sistemi operativi (panoramica)
I Thread.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Linguaggi di programmazione
FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario.
Sistemi Operativi GESTIONE DEI PROCESSI.
Introduzione Cosa è un Sistema Operativo ?
Fondamenti di Informatica
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
I SISTEMI OPERATIVI.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Il Software Una programmazione diretta della macchina hardware da parte degli utenti è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica.
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
SISTEMA OPERATIVO..
Silberschatz and Galvin Operating System Concepts CAP. 1 - INTRODUZIONE.
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Il sistema operativo.
La schedulazione dei processi
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Il Sistema Operativo (1)
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Threads.
Il Software Programmare direttamente la macchina hardware è molto difficile: l’utente dovrebbe conoscere l’organizzazione fisica del computer e il suo.
Ministero dell’Interno Dipartimento per gli Affari Interni e Territoriali Centro Elaborazione Dati SISTEMI OPERATIVI SU PIATTAFORMA NT CONSIDERAZIONI.
Sistema Operativo (Software di base)
I processi.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Gestione del processore (Scheduler)
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il Sistema Operativo.
Gestione della Memoria
Sistema operativo Il sistema operativo è un insieme di programmi che gestiscono tutte le componenti hardware e software di un calcolatore. Spesso si può.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio Il software di base Stefano Cagnoni e Monica Mordonini.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
I primi elaboratori Anni ‘50 Rigidamente sequenziali
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
 Negli anni 40 i sistemi operativi non esistevano, i programmatori infatti avevano un accesso diretto alle risorse hardware.  Il primo sviluppo dei.
1 Introduzione pag. 52 Cap.1 - Caratteristiche generali dei sistemi operativi 1.
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
HARDWARE (2). MEMORIE Due classi di memoria MEMORIA CENTRALE –media capacità - ottima velocità MEMORIA DI MASSA elevata capacità - bassa velocità.
Definizione e obiettivi del Sistema Operativo. DIFFERENZA TRA SISTEMA OPERATIVO – SOFTWARE APPLICATIVO Sistema operativo è un insieme organico di programmi.
Transcript della presentazione:

Introduzione: Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Docente: Francesco Quaglia Introduzione: Principi di base de sistemi operativi Sistemi seriali Sistemi batch Multiprogrammazione Time-sharing 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 Programmer Operating- System Designer Computer Hardware Operating-System Utilities Application Programs

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 Caricamento del compilatore e del programma sorgente nella memoria Salvataggio del programma compilato (programma oggetto) Collegamento con moduli predefiniti 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) Il programma e’ reso disponibile tramite un dispositivo di input Il monitor effettua il caricamento del programma in memoria e lo avvia Il programma restituisce il controllo al monitor in caso di terminazione o errore Il monitor e’ residente nella memoria I moduli richiesti per uno specifico programma vengono caricati dal monitor come subroutine del programma stesso Ripartizione della memoria Interprete del linguaggio di controllo dei job driver dei dispositivi monitor 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 tempo Fine esecuzione del job Richiesta verso un dispositivo Richiesta soddisfatta Inizio esecuzione del job

disco Spooling (simultaneous peripheral operation on-line) CPU 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 dispositivi di uscita Memoria lavoro 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

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

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)

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

Processi Introdotti per monitorare e controllare in modo sistematico l’esecuzione dei programmi Un processo è un programma in esecuzione con associati: I dati su cui opera Un contesto di esecuzione: cioè le informazioni necessaria alla CPU per eseguirlo, ed al SO per schedularlo Il SO utilizza particolari strutture 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 SO che con altri processi Anche il SO è 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

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 SO 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 SO 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 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 girano tuttavia in modalità user

Architettura del Kernel