Insegnamento di Informatica – a.a. 2016-17 Macerata, A.A. 2016-2017 Introduzione ai sistemi operativi INSEGNAMENTO DI INFORMATICA – A.A. 2016-17 Francesco Ciclosi Insegnamento di Informatica – a.a. 2016-17 Una semplice definizione Il sistema operativo è un software che controlla le operazioni complessive di un computer Fornendo e garantendo: • I mezzi attraverso cui un utente può memorizzare e recuperare i file • L’interfaccia per richiedere l’esecuzione dei programmi • L’ambiente necessario per eseguire i programmi Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Le tipologie di sistemi operativi Esistono varie tipologie (commerciali e non) di sistemi operativi • Ad esempio: Windows, Linux, Mac OS, Unix Tali differenze tra i sistemi determinano variazioni: • Negli strumenti di lavoro disponibili • Nella filosofia di distribuzione e di manutenzione In ogni caso tutti i sistemi operativi più diffusi affrontano e risolvono gli stessi tipi di problemi Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 C’era una volta… (1/3) Negli anni 40’ e 50’ gli elaboratori erano di dimensioni enorme e occupavano intere stanze L’esecuzione dei programmi richiedeva: • Il montaggio dei nastri • L’inserimento delle schede perforate nel lettore • L’impostazione dei dispositivi di commutazione L’utente era il responsabile dell’esecuzione dei suoi programmi Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 C’era una volta… (2/3) L’esecuzione di un programma (il job) era gestito come un’attività separata Per poter eseguire le elaborazioni all’utente veniva concesso per un certo periodo di tempo l’utilizzo esclusivo del calcolatore L’attività era divisa in: 1. Lunghi periodi di caricamento del programma 2. Brevi periodi di esecuzione del job Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 C’era una volta… (3/3) In tale ambiente le principali funzioni dei sistemi operativi erano quelle di: • Semplificare il caricamento dei programmi • Velocizzare il passaggio da un job all’altro Il primo passo fu quello di separare gli utenti dall’ubicazione fisica delle macchine Nasce la figura dell’operatore che • segue il funzionamento della macchina • funge da tramite tra l’utente e la stessa macchina Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 L’operatore Riceveva dall’utente che voleva far eseguire un programma i seguenti elementi • Il programma • I dati necessari • Le istruzioni speciali sui requisiti del programma Caricava tali informazioni nella memoria di massa del calcolatore e ne avviava l’esecuzione Infine restituiva all’utente i risultati ottenuti Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Elaborazione batch L’elaborazione «a lotti» (o batch) consiste: 1. Nel caricamento di più job riuniti in un singolo batch all’interno della memoria di massa del calcolatore 2. Nella successiva esecuzione da parte del sistema operativo dei job, senza bisogno che avvenga alcuna interazione con l’utente Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 La coda dei job I job presenti nella memoria di massa attendono l’esecuzione in una coda di job La coda è una struttura dati In una coda gli oggetti sono ordinati secondo il metodo FIFO (first-in, first-out) Gli oggetti sono rimossi dalla coda nell’ordine di arrivo Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 FIFO e priorità dei job Nella realtà il modello FIFO non è strettamente seguito dalla maggior parte delle code di job I sistemi operativi tengono in considerazione anche le priorità dei job Un job in coda può essere superato da un altro inserito successivamente, purché quest’ultimo abbia priorità più alta Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Schema dell’elaborazione batch Dominio dell’utente Job: programma, dati, istruzioni Dominio del computer Coda di job Risultati Esecuzione dei job Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Il problema dell’interazione L’utilizzo dell’operatore come interfaccia tra calcolatore e utente ha un grande svantaggio Poiché Toglie all’utente la possibilità di interagire con i propri programmi Tale situazione non sempre è accettabile: • OK per situazioni in cui ogni dato e decisione è scelto aprioristicamente (es: gestione paghe) • KO se l’interazione è inevitabile (es: word-processor) Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 L’elaborazione interattiva Nasce come risposta al problema dell’interazione Consente al sistema operativo di garantire l’esecuzione di programmi che richiedono un dialogo continuo con l’utente Utilizza terminali remoti o stazioni di lavoro Richiede che la velocità delle azioni del computer siano adeguate ai tempi dell’utente Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Schema dell’elaborazione interattiva Dominio dell’utente Programmi, dati, istruzioni Dominio del computer Esecuzione dei programmi Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 L’elaborazione real-time Un computer che esegue operazioni in tempo reale, le esegue secondo precise scadenze dell’ambiente esterno reale Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Problematiche dei sistemi multiutente Quando più utenti richiedono di utilizzare l’elaborazione in tempo reale di un calcolatore si possono verificare dei problemi Infatti Quando due utenti richiedono contemporaneamente l’accesso interattivo, l’esecuzione real-time può essere bloccata se il sistema continua a eseguire un solo job alla volta Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Il time-sharing È una tecnica che viene adottata dai sistemi operativi per fornire contemporaneamente i servizi a più utenti Prevede • la suddivisione del tempo in intervalli (quanti) • l’esecuzione di ciascun job per un solo quanto Al termine di ogni quanto il job corrente viene messo in «stand-by» e si passa all’esecuzione di un altro job, fino allo scadere del quanto successivo Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 La multiprogrammazione Le tecniche di multiprogrammazione sono utilizzate sia nei sistemi monoutente che in quelli multiutente • Time-sharing, fa riferimento all’utilizzo di un singolo computer da parte di più utenti • Multitasking, fa riferimento a un singolo utente che esegue simultaneamente più task (o compiti) La rapida alternanza dei job crea l’illusione della simultaneità Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 L’amministratore di sistema Ha sostituito la funzione dell’operatore Si occupa della gestione del sistema senza occuparsi di gestire fisicamente l’elaborazione Ovvero si occupa di: • • • • Aggiornare l’hardware e il software Gestire gli account Gestire lo spazio nella memoria di massa Risolvere i problemi Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 L’evoluzione dei S.O. Da: semplici programmi • In grado di recuperare dati ed eseguire programmi, un’istruzione alla volta A: complessi sistemi • I grado di: o Coordinare il time-sharing o Gestire il contenuto delle memorie di massa o Rispondere (anche direttamente) alle richieste degli utenti Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 I processori paralleli Sono processori che operano indipendentemente l’uno dall’altro Condividono alla pari le risorse del sistema La loro attività è coordinata dal sistema operativo CPU 1 Cache Memoria di sistema CPU 2 Sistema di I/O Cache Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Utilizzo di più CPU I moderni S.O. consentono di lavorare con più di un processore Possono sia assegnare operazioni diverse a processori distinti, sia suddividere il tempo di ciascun processore • Bilanciamento, distribuzione dinamica dei task tra i vari processori, in modo da garantire il massimo efficientamento delle risorse • Scalabilità, divisione dei task in un numero di sotto-task, secondo il numero di processori a disposizione Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 Sistemi operativi e reti Alcuni sistemi software si occupano di coordinare le attività delle reti Il campo del networking è un’estensione di quello dei sistemi operativi L’obiettivo è quello di realizzare la gestione delle risorse, per molti utenti, su molte macchine e non più su di un solo computer Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 I sistemi embedded Sono sistemi operativi che si occupano di gestire dispositivi dedicati a compiti specifici • Es: elettrodomestici, apparecchi medicali, smartphone, centraline auto Richiedono normalmente le seguenti caratteristiche: • Basso consumo energetico • Capacità di operare in modo continuativo senza sorveglianza umana • Funzionamento real-time Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code Insegnamento di Informatica – a.a. 2016-17 I miei contatti linkedin http://it.linkedin.com/pub/francesco-ciclosi/62/680/a06/ facebook https://www.facebook.com/francesco.ciclosi twitter @francyciclosi www http://docenti.unimc.it/f.ciclosi http://www.francescociclosi.it Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati © Francesco Ciclosi – Settembre 2016 CC-BY-SA 4.0 – Common Deed – Legal Code