TEORIA DEI SISTEMI OPERATIVI

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
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.
Gestione della memoria centrale
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.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Sistemi Operativi Menù: 1) Introduzione al sistema operativo
Il Sistema Operativo.
Elaboratore e Sistemi Operativo
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
12. Il Sistema Operativo Ing. Simona Colucci
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Sistema Operativo e Compilatore
Struttura dei sistemi operativi (panoramica)
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Sistemi Operativi GESTIONE DEI PROCESSI.
Il sistema operativo Vito Perrone
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.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
SISTEMA OPERATIVO..
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Il sistema operativo.
La schedulazione dei processi
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
interfaccia tra utente e macchina
Il Sistema Operativo (1)
Threads.
Sistema Operativo (Software di base)
gestione della memoria
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Autori:  Gazzola Alex  Cassol Simone  Kawkab Wassim Data: 14/04/2014 Classe: 3° INF.
I processi.
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
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:
1 Sommario degli argomenti  Sistemi operativi: DOS, Unix/Linux,Windows  Word processors: Word  Fogli elettronici: Excel  Reti: TCP/IP, Internet, ftp,
Il software Componente del computer costituita dai: –programmi di base per la gestione del sistema –programmi applicativi per l’uso del sistema Queste.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
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:
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Generale Marzia Buscemi
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.
Le basi di dati.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
10. Il Sistema Operativo Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Definizione e obiettivi del Sistema Operativo. DIFFERENZA TRA SISTEMA OPERATIVO – SOFTWARE APPLICATIVO Sistema operativo è un insieme organico di programmi.
Il Sistema Operativo Processi e Risorse
Transcript della presentazione:

TEORIA DEI SISTEMI OPERATIVI Sistema operativo: è un insieme di programmi e di moduli software scritti allo scopo di rendere disponibili all’ uso le risorse di calcolo e i dispositivi collegati al PC. Device driver: dispositivo hardware che permette la gestione di una periferica Dispositivi Plug & Play: colloquiano col sistema in modo tale da «farsi riconoscere» e richiedere l’installazione dei driver corretti. Come nasce uno standard: Differenziazione sul mercato da parte di un’azienda che ottiene il monopolio; ISO emana normative che consigliano a tutti di conformarsi all’uso di un dispositivo; Alleanze e joint-venture tra aziende concorrenti Sistema aperto: SO costruito in modo da poter operare con molti dispositivi, tra cui quelli hardware che richiedono la scrittura di poco codice software. Sistema proprietario: SO eseguito su un ristretto e ben definito insieme di macchine, corredate o meno di specifici dispositivi. I s. proprietari sono caratteristici dei «legacy system», i s. aperti sono tipici dei «sistemi distribuiti» (basati sulle reti, downsized).

L’ ORGANIZZAZIONE MODULARE La struttura formale di un SO è di tipo gerarchico: i programmi che lo compongono si collocano a livelli diversi, si servono di programmi che stanno ai livelli sottostanti e servono i programmi dei livelli superiori. All’ interno di ogni livello i moduli sono collezioni di routine che attivano meccanismi fisici necessari per risolvere problemi logici di uno stesso tipo (per esempio le operazioni di I/O o la gestione della memoria). Ogni procedura standard per mezzo della quale si possono usare i servizi di un modulo è detta primitiva. Primitiva  Modulo  Verso altri moduli o verso la macchina Operazioni logiche corrispondono all’esigenza dell’utente di ottenere un risultato; operazioni fisiche consistono nell’eseguire molte operazioni elementari dipendenti dal particolare elaboratore (o stampante) al quale l’operazione è stata richiesta. Macchine diverse vengono viste all’esterno come esecutrici di primitive, quindi se le primitive disponibili sono identiche, le macchine possono eseguire le stesse operazioni logiche. Per questo i moduli che accedono a queste primitive possono essere esattamente uguali.

SISTEMI MONO E MULTI-PROGRAMMATI Risorse hardware sono: CPU, Memorie centrali, Unità di memoria di massa, dispositivi di I/O. Sistema monoprogrammato: la sua memoria centrale contiene, in un dato istante, codice utente proveniente da un unico programma. Sistema multiprogrammato: utilizza meccanismi di sospensione dell’esecuzione, impiegati per le routine di sistema, e permette l’esecuzione di altri programmi utente. Bisogna: decidere quale istruzione far eseguire dopo quella attuale, se prelevarla da un programma o da un altro; realizzare meccanismi di protezione fra i diversi programmi; risolvere conflitti di attribuzione delle risorse. Una risorsa è gestita in modo ‘time sharing’ quando il suo uso viene concesso per un tempo che non può superare un massimo: questo intervallo è il ‘time slice’. Il SO opera un riassegnamento della CPU (context switch); il tempo necessario a prendere tale decisione è detto tempo di riassegnamento. Le modalità con le quali il SO prende queste decisioni costituisce un esempio di politiche di gestione. La realizzazione più semplice consiste nell’assegnamento round robin (a rotazione). È possibile che un SO usi meccanismi di priorità, che concedono un time slice più lungo ai programmi con priorità più alta oppure scelgono di assegnare più spesso la CPU ai programmi con priorità più alta.

CLASSIFICAZIONE DEI S.O. Sistemi dedicati: prevedono l’ utilizzo da parte di un solo utente per volta. Supportano il multitasking. Sistemi batch (a lotti di lavoro): rispetto ai precedenti, devono avere in più i moduli per gestire le code dei lavori in ingresso e di stampa, provvedere alla protezione reciproche degli utenti, realizzare meccanismi di assegnazione delle risorse. Non è adatto per molte applicazioni di tipo gestionale, è preferito nei sistemi moderni che non hanno bisogno dell’ intervento dell’ operatore. Sistemi interattivi multiutente: utilizzano il ‘time sharing’ della CPU; velocità della CPU e dimensione della memoria centrale sono parametri critici. Ci sono problemi legati alla mutua sicurezza dei programmi eseguiti e alla corretta gestione delle risorse. L’interattività è la possibilità di fornire i dati che servono al momento della richiesta, di ottenere risultati parziali durante l’esecuzione oppure messaggi di avvertimento e di errore.

PROCESSI E PROCESSORI Con riferimento ad un sistema multiprogrammato e interattivo: Il compito del SO è quello di garantire la corretta evoluzione dello stato, assegnando le risorse e realizzando la sicurezza per ciascun utente e per sé stesso. La memoria centrale deve poter essere divisa tra gli utenti. Processo: insieme formato da un elenco finito di azioni da eseguire in sequenza e dai dati che vengono elaborati dalle stesse azioni. Differenza con i programmi: Il processo evolve nel tempo, i programmi sono traduzioni di algoritmi i processi sono sequenziali, i programmi possono contenere cicli e salti. Processore: oggetto che causa l’ evoluzione del processo. Passaggi di stato dei processi: Parcheggio  Pronto  Esecuzione  Attesa (richiesta operazione di I/O) |   Pronto (quando scade il time slice)  Terminazione (processo può essere tolto dalla memoria centrale)

MODELLO A MACCHINE VIRTUALI Il modello onion skin (buccia di cipolla) rappresenta il SO come una successione gerarchica di strati costruiti sopra la macchina hardware, ciascuno dei quali rappresenta un livello di macchina virtuale. La macchina virtuale è un oggetto costituito da una macchina più semplice, in grado di eseguire un certo numero di operazioni fisiche, e da un modulo che fornisce un’interpretazione logica di tali operazioni. I livelli più bassi sono più vicini all’ hardware, quelli + alti sono vicini all’utente e alle sue applicazioni. Il Kernel (nucleo) del SO avvolge idealmente tutto l’ hardware e si occupa di interagire con i programmi applicativi che , ogni volta che necessitano di un servizio da parte di un dispositivo hardware, devono «passare attraverso di lui». Il kernel è costituito da primitive. I servizi offerti dal kernel si ottengono per mezzo di chiamate di funzione. Funzioni sono: avvio e terminazione dei processi, assegnazione della CPU ai processi, sincronizzazione di un processo con gli altri processi e con l’ambiente esterno. Alcune funzioni del kernel vengono chiamate direttamente dai programmi utente, altre devono essere scelte o richiamate dall’ utente stesso: per favorire la comunicazione e semplificare l’interfacciamento col kernel è disponibile il programma Shell o interfaccia utente. L’i.u. può essere di tipo CUI (Command User Interface) oppure GUI (Graphical U.I.).

Esecuzione parallela e concorrente di processi Esecuzione parallela di processi = un singolo programma viene suddiviso in più processi che vengono eseguiti in parallelo. Un thread è una sequenza di istruzioni in corso di esecuzione. Ambienti in cui non è possibile parallelizzare le operazioni è detto single thread, mentre in un ambiente multithread possiamo creare più thread contemporaneamente attivi (e parallelizzare le istruzioni in essi contenute). Più thread, eseguiti all’interno dello stesso processo, condividono tutte le info riservate di quel processo. Quando un thread apre un file, tutti i thread di quel processo possono accedere al file. Un thread ha un proprio Program Counter e alcune aree di memoria private, che formano il contesto del processo (detto anche Area di salvataggio dello stato della CPU). Nell’ elaborazione concorrente di processi, il SO deve svolgere fondamentalmente la gestione della sincronizzazione tra i processi; inoltre deve gestire l’interferenza tra essi, evitando perdite di dati e garantendo la protezione delle rispettive aree di lavoro. Il meccanismo più importante per la gestire la sincronizzazione è il semaforo. È una variabile all’interno della memoria di lavoro del SO, il cui valore può essere controllato e cambiato da un processo; può assumere i valori 0 e 1. Un sistema equo permette di evitare due problemi noti come deadlock (due o più processi sono in attesa di una condizione che non si verificherà mai) e starvation (uno o più processi non riescono ad accedere a una risorsa e quindi non possono eseguire il proprio lavoro).

GESTIONE DELLA MEMORIA Simula l’ esistenza di una pluralità di unità di memoria centrale, ciascuna associata a uno dei processori virtuali generati dal nucleo, mascherando la limitazione fisica della memoria centrale reale. Funzioni: a) Determinare l’ area di memoria da assegnare al processo e gestire dinamicamente le informazioni; b) Evitare che un processo possa scrivere nell’ area di memoria di un altro; c) Consentire la condivisione del codice eseguibile; d) Garantire la trasparenza . Metodi sono: a partizioni fisse (cioè blocchi di dimensioni fisse) e a partizioni variabili, che prevedono un maggior carico di lavoro del SO ma sfruttano al meglio la memoria disponibile. Tecniche di suddivisione dei programmi in blocchi in ambiente multi-programmato: La paginazione è tale per cui ogni programma viene diviso in blocchi di eguali dimensioni detti pagine logiche; analogamente la memoria centrale è divisa in pagine fisiche di dimensioni uguali a quelle delle pagine logiche. Vantaggi: le pagine hanno uguale dimensione. Svantaggi: arbitrarietà con cui le pagine logiche sono generate suddividendo il programma. La segmentazione è tale che la suddivisione del programma è eseguita con criteri logici e può essere controllata dal programmatore. Ciascun blocco ha dimensioni variabili ed è detto segmento. Vantaggi: Possibilità di far condividere a più processi alcuni segmenti. È possibile caricare in memoria un numero elevato di segmenti, non come le pagine. Svantaggi: La memoria è soggetta a frammentazione; Le tabelle impiantate per gestire la memoria virtuale con i segmenti sono più complesse di quelle con le pagine.

GESTIONE DI PERIFERICHE E FILE SYSTEM Il device management è la parte del SO che consente di definire dispositivi virtuali che: Mettono a disposizione le capacità delle periferiche per un certo tempo e per un certo processo; Permettono di gestire i comuni contrattempi che si possono verificare nelle operazioni stesse (errori di trasmissione, periferiche disattivate). SPOOL: consente a diversi processi l’ uso contemporaneo della stessa periferica. Il file di spool genera la coda di stampa numerando i file in coda. La logica è FIFO. Il file system è strutturato in modo gerarchico e regola l’ organizzazione, l’ assegnamento, la protezione e il ritrovamento di insiemi di dati su memoria di massa. Tiene traccia della posizione dei file e del loro stato usando particolari tabelle dette file directory; Decide le protezioni e regola gli accessi; Assegna un file al programma che lo ha richiesto; Toglie l’ uso del file ad un programma per renderlo disponibile ad altri. Il file system consente di riferirsi alle informazioni in termini di identificatori, piuttosto che di indirizzi fisici, utilizzando le directory (tabelle dei descrittori). Esse contengono: Il nome e il tipo del file; I tipi di protezione e di accessi consentiti; Il nome dell’ utente che creato o modificato il file; La dimensione del file in byte e il numero di record contenuti; La data della creazione, dell’ ultima modifica o dell’ ultimo accesso. Root:directory di più alto livello. Pathname: nome di file espresso tramite un cammino.

SHELL È un programma del SO che riceve in ingresso le richieste di esecuzione di operazioni, espresse usando il linguaggio dei comandi, e le rende possibili. In anni più recenti l’ interfaccia utente utilizza interfacce grafiche; il concetto è che l’interfaccia deve essere il più possibile user friendly. Windows si serve di librerie DLL che dispongono del codice necessario a definire il comportamento dei tipici oggetti Windows. Processi attivati dal S.O. Bootstrap = caricamento; il SO provvede a caricare sé stesso in memoria centrale. IPL (Initial Program Loader): è un programma registrato sulla memoria ROM che assume il controllo della CPU all’accensione e carica il SO in memoria centrale eventualmente attraverso un solo modulo del sistema, il quale assume il controllo e carica il resto. Viene caricato in memoria il kernel oltre ad altro software. Prima di tutto viene mandata in esecuzione la parte del nucleo che gestisce tutti gli altri processi, detto scheduler, che attiva la inizializzazione del sistema per il controllo delle risorse disponibili e le linee collegate ai terminali. Appare la maschera di login, in caso positivo di accesso viene fornito a ciascun utente un ambiente di lavoro (shell) col quale è possibile ottenere dal SO, con opportuni comandi, le funzioni necessarie all’applicazione richiesta. Lo scheduler lancia anche il gestore dello spool della stampante e il gestore dell’ accounting (controlla le risorse assegnate agli utenti e tempi di accesso al sistema). La sessione di chiusura è detta shutdown.

LIVELLO UTENTE A livello di UTENTE, il SO mette a disposizione alcuni software (programmi) di utilità che agevolano l’ utente nella sua attività di programmazione, sia attraverso comandi espliciti, sia attraverso routine che vengono richiamate dal sistema. Essi comprendono: Editor di testi Compilatori: trasformano il codice utente in codice macchina Linker: riuniscono tra loro i risultati di compilazioni diverse Interpreti: traducono una per volta le espressioni di comando in linguaggi evoluti Debugger: controllano l’ esecuzione dei programmi Gestori di maschere per il data entry Gestori delle comunicazioni: per la posta elettronica