1 / 138

Il Sistema Operativo Rappresentazione dell’Informazione Cenni di Programmazione

Il Sistema Operativo Rappresentazione dell’Informazione Cenni di Programmazione. Politecnico di Milano Facoltà del Design – Bovisa Prof. Gianluca Palermo Dipartimento di Elettronica e Informazione gpalermo@elet.polimi.it http://home.dei.polimi.it/gpalermo. Indice. Il sistema operativo

bowen
Download Presentation

Il Sistema Operativo Rappresentazione dell’Informazione Cenni di Programmazione

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Il Sistema Operativo Rappresentazione dell’Informazione Cenni di Programmazione Politecnico di Milano Facoltà del Design – Bovisa Prof. Gianluca PalermoDipartimento di Elettronica e Informazionegpalermo@elet.polimi.ithttp://home.dei.polimi.it/gpalermo

  2. Indice • Il sistema operativo • Software di sistema e applicativo • Architettura di un sistema operativo • Classificazione dei sistemi operativi • Bootstrap • Panoramica dei principali sistemi operativi • MS DOS, MS Windows, UNIX, Linux, BSD, Mac OS • Rappresentazione dell’informazione • Numeri • Caratteri e testi • Audio • Immagini • Video • Cenni di programmazione • Linguaggi di programmazione • Fasi della programmazione • Paradigmi di programmazione • Costrutti elementari di un linguaggio di programmazione Cultura tecnologica del progetto

  3. Software: di sistema e applicativo • Di sistema: controlla il comportamento del sistema stesso • il più importante dei software di sistema è il sistema operativo: • controlla le risorse del sistema • fornisce la base su cui costruire tutti gli altri programmi • Applicativo: risolve i problemi dell’utente, appoggiandosi sullo strato fornito dal sistema operativo Cultura tecnologica del progetto

  4. Il sistema operativo • Con il termine sistema operativo si intende l’insieme di programmi e librerie che opera direttamente sulla macchina fisica... • ... mascherandone le caratteristiche specifiche... • ... e fornendo agli utenti un insieme di funzionalità di alto livello Cultura tecnologica del progetto

  5. Sistemi Operativi • MS-DOS • MS-Windows (95, 98, 2000, XP, Vista) • Unix • Commerciali: Sun Solaris, IBM AIX, HP-UX,… • Linux • BSD • Mac OS • Mac OS X • Altri (IBM AS/400, Symbian,…) Cultura tecnologica del progetto

  6. Architettura di un S.O. - 1 • Un moderno S.O. è organizzato secondo una architettura “a strati” (a cipolla) • Ogni strato implementa una macchina virtuale più potente del precedente • Appoggiandosi alle funzionalità offerte dallo strato precedente • Tale approccio permette una chiara separazione tra interfaccia e implementazione delle diverse funzionalità • Ogni strato è costituito da un insieme di programmi e librerie • I meccanismi di chiamate tra livelli possono essere diversi • chiamate a sottoprogrammi, interruzioni sincrone o asincrone, invio di messaggi a processi Cultura tecnologica del progetto

  7. Programmi utente Interprete dei comandi Interfaccia grafica Gestore del file system Gestore delle periferiche Gestore della memoria Gestore dei processi (nucleo) Macchina fisica Architettura di un S.O. - 2 Interfacce utente Gestori di risorse (kernel) Cultura tecnologica del progetto

  8. Il Nucleo • Il nucleo • Si appoggia direttamente sulla macchina fisica • Effettua la gestione dei processi • In un sistema multitasking realizza una macchina virtuale in cui ad ogni processo è assegnata un processore virtuale • Comprende i principali programmi di risposta ad interruzione • Realizza le primitive di sincronizzazione e scambio messaggi tra processi Cultura tecnologica del progetto

  9. Il nucleo • La macchina virtuale realizzata dal nucleo Processore virtuale Processore virtuale Processore virtuale ... Bus di sistema Disco Memoria centrale Interfaccia delle periferiche Cultura tecnologica del progetto

  10. Il gestore della memoria • Il gestore della memoria • Realizza le funzionalità di allocazione della memoria • Supera i limiti della memoria fisica e mostra ai processi uno spazio di memoria virtuale • Partiziona la memoria tra i vari processi che la richiedono • Garantendo la protezione delle diverse zone di memoria Cultura tecnologica del progetto

  11. Il gestore della memoria • La macchina virtuale realizzata dal gestore della memoria Memoria virtuale Memoria virtuale Memoria virtuale ... Processore virtuale Processore virtuale Processore virtuale ... Bus di sistema Disco Interfaccia delle periferiche Cultura tecnologica del progetto

  12. Il gestore delle periferiche • Il gestore delle periferiche • Maschera le caratteristiche fisiche delle periferiche • Fornisce agli strati superiori un insieme di procedure di alto livello per l’accesso alle diverse periferiche • Offre ad ogni processo la visibilità di un insieme di periferiche virtuali dedicate • Gestisce, almeno in parte, i malfunzionamenti delle periferiche Cultura tecnologica del progetto

  13. Il gestore delle periferiche • La macchina virtuale realizzata dal gestore delle periferiche Interfaccia periferichevirtuali Interfaccia periferichevirtuali Memoria virtuale Memoria virtuale ... Bus Bus Processore virtuale Processore virtuale Bus di sistema Disco Cultura tecnologica del progetto

  14. Il gestore del file system • Il gestore del file system • E’ responsabile della gestione delle periferiche di massa • Hard disk • CD / DVD • Memory stick USB • ... • Fornisce agli strati superiori un insieme di procedure per l’accesso al file system • Garantisce la protezione nell’accesso ai file Cultura tecnologica del progetto

  15. Il gestore del file system • Le funzioni di base che sono supportate da un file system sono • Il recupero di dati precedentemente memorizzati • L’eliminazione di dati obsoleti • La modifica/aggiornamento di dati preesistenti • La copia di dati • Tra supporti di memorizzazione diversi (ad es. da HD a CD) • In cartelle diverse nello stesso supporto Cultura tecnologica del progetto

  16. Il gestore del file system • I dati contenuti nella memoria di massa vengono strutturati e gestiti mediante una organizzazione in file • Un file è un contenitore logico identificato da un nome (filename) • I filename generalmente sono composti da due parti • ad es. curriculum_vitae.doc • Il filename vero e proprio (curriculum_vitae) • L’estensione (doc) Cultura tecnologica del progetto

  17. Il gestore del file system • L’estensione è spesso associata al programma che ha generato il file e individua pertanto la tipologia del contenuto del file • .exe  file eseguibili • .txt  file di testo • .doc  documenti di testo (MS Word) • .wav  file audio • .bmp  immagine in formato bitmap • ... • Ad ogni file sono poi associati dal sistema operativo altri dati • Data di creazione / modifica • Lunghezza del file (in byte) • Utenti/Gruppi che possono accedere ai file Cultura tecnologica del progetto

  18. Il gestore del file system • I file vengono suddivisi in più contenitori logici, chiamati directory, cataloghi o cartelle (folders) • Le cartelle sono organizzate secondo una struttura ad albero • Il file system contiene una directory detta radice dell’albero che può contenere file o altre cartelle • Ciascun file è individuato univocamente dal suo nome completo o percorso assoluto • Ad es. D:\downloads\temp\002.part • Due file con lo stesso nome in due cartelle distinte, ad esempio • D:\Immagini\Compleanno\foto1.jpg • D:\Documenti\foto1.jpg fanno riferimento a due file che in generale possono essere DIVERSI Cultura tecnologica del progetto

  19. Il gestore del file system D: Documenti Downloads Incoming Temp ... ... Cultura tecnologica del progetto

  20. Il gestore del file system • La macchina virtuale realizzata dal gestore del file system Interfaccia periferichevirtuali Interfaccia periferichevirtuali Memoria virtuale Memoria virtuale ... ... File File File File ... Bus Bus Processore virtuale Processore virtuale Bus di sistema Cultura tecnologica del progetto

  21. L’interprete dei comandi e l’interfaccia grafica • L’interprete comandi e l’interfaccia grafica • Costituiscono l’interfaccia verso l’utente • Consentono l’interazione dell’utente con il s.o. e con i programmi applicativi in esecuzione • Permettono di accedere ai programmi conservati su memoria di massa e mandarli in esecuzione • allocando la memoria necessaria e creando il processo relativo • Nel caso di un sistema multiutente forniscono ai diversi utenti la visione di una macchina virtuale dedicata Cultura tecnologica del progetto

  22. Una possibile classificazione dei moderni S.O. • I moderni sistemi operativi possono essere classificati in: • Sistemi monotask: • Permettono l’esecuzione di un solo programma utente per volta (es. DOS) • Il computer a disposizione del programma dall’inizio alla fine della sua esecuzione • Coda dei job, gestita FIFO (first in, first out) e/o con priorità • Sistemi multitask • Permettono l’esecuzione di più programmi utente contemporaneamente • Classificazione ulteriore: • Multitasking cooperativo (Windows 3.1, MacOS) • Multitasking preemptive (Windows 95/98/NT, Unix) • Time sharing o meno Cultura tecnologica del progetto

  23. Svantaggi dei sistemi monoprocessore mono-tasking • Nessuna interazione utente-programma • Lentezza: la CPU non può essere usata da nessun processo mentre il programma in esecuzione svolge operazioni di I/O (molto piu’ lente di letture/scritture in Memoria) • Esempio: DOS è un SO monotasking; non si può fare niente altro mentre si formatta un floppy o si memorizzano dati su disco Cultura tecnologica del progetto

  24. Multitasking (time sharing) • Ripartizione del tempo di CPU tra tutti i processi che la vogliono • Ogni job rimane in esecuzione solo per un quanto di tempo, poi l’esecuzione passa al prossimo job e il primo va in attesa  Esecuzione globale più veloce • Durata del quanto di tempo tra 100 e 200 millisecondi  granularità molto fine • A ciascun utente sembra di avere la CPU tutta per lui, solo più lenta Cultura tecnologica del progetto

  25. Stati di un processo Selezione primo processo pronto e sua esecuzione Inizio esecuzione Processo in esecuzione Processi pronti Termine quanto di tempo Processo in attesa Richiesta di operazione di I/O Completamento operazione di I/O (evento esterno atteso) Cultura tecnologica del progetto

  26. Attesa • Se il processo richiede operazioni ad altri dispositivi (es. Operazioni di I/O), la CPU rimarrebbe inutilizzata  • lo scheduler mette il processo in stato di attesa, • il dispatcher sceglie un nuovo processo tra i pronti dalla tabella, • quando l’operazione sarà finita, lo scheduler dichiarerà di nuovo pronto il processo • Permette un utilizzo molto più efficiente delle risorse di elaborazione • Esempio: • durante la digitazione di un documento di testo, l’utente compie molte pause per riflettere sul contenuto che sta scrivendo • questo tempo è usato dal sistema per compiere altre operazioni in contemporanea (ad es. gestire la ricezione di e-mail) Cultura tecnologica del progetto

  27. Sistemi mono e multi-processore • Time sharing in sistemi mono-processore: multi-tasking (più programmi in esecuzione con una sola CPU) • Sistemi multiprocessore: • le varie CPU possono lavorare contemporaneamente su job diversi • ciascuna CPU opera in multi-tasking Cultura tecnologica del progetto

  28. Bootstrap: avvio del SO • All’inizio, la CPU ha in indirizzo fissato nel registro contatore di programma, che punta all’indirizzo nella ROM (Read Only Memory) ove inizia il programma di bootstrap che è sempre memorizzato lì • L’esecuzione del programma di bootsrap trasferisce il kernel del Sistema Operativo da una parte prestabilita della memoria di massa (hard-disk, floppy-disk, CD-Rom,…) in memoria principale • Quindi l’esecuzione prosegue con un salto all’area di memoria principale contenente il Sistema Operativo (che quindi viene mandato in esecuzione) • Tra le prime operazione del kernel del Sistema Operativo vi sono tipicamente quelle di caricamento di altri componenti software: • driver delle periferiche installate • programmi di sistema lanciati automaticamente all’avvio Cultura tecnologica del progetto

  29. Bootstrap Cultura tecnologica del progetto

  30. MS-DOS • Sviluppato dalla Microsoft nel 1981 per il PC IBM • Adottato da altri con PC IBM-compatibili • Molto limitato: • mono-utente, • mono-tasking • Circa 50 comandi per il SO: • DIR per vedere il contenuto di una directory • COPY per copiare file • DEL per cancellare un file • REN per cambiare il nome a un file • CD per muoversi in un altra directory • MD per creare nuove directory • RD per cancellare directory • Nome file: per eseguire il file (se eseguibile) • … Cultura tecnologica del progetto

  31. MS Windows – Elementi principali • Interfaccia grafica • Mouse che sposta un cursore • Cut & paste (copia e incolla) • Drag & drop (trascina e lascia) • Icone associate a file, directory, dischi, … • Directory come cartelle • Pulsanti • Finestre: cornici con strumenti • Menu di comandi Cultura tecnologica del progetto

  32. Breve storia di windows 1/2 • Nel 1980 la Microsoft era una piccola società con 40 dipendenti, che fatturava 8 milioni di dollari. • Bill Gates venne contattato dall'IBM, che in quel periodo dominava il mercato degli elaboratori mainframe ed aveva appena iniziato la realizzazione di un personal computer, per scrivere un nuovo sistema operativo. • Nasce così l'MS DOS ed esplode il boom del computer per tutti. • Due anni dopo Bill Gates annuncia la nascita di una prima versione di Windows (1982). Non è un sistema operativo, ma una semplice interfaccia grafica attaccata al DOS molto rozza. Gli utenti cominciano a prendere confidenza con questa nuova dimensione. • A maggio, nel 1990, viene lanciato Windows 3.0 e un anno dopo esce Windows 3.1. • Nel '94 il fatturato è di 4,65 miliardi di dollari. • Nel '95 viene lanciato Windows 95 e i dollari salgono a quasi 6 miliardi. Internet Explorer comincia ad insidiare la posizione di leader tra i browser di Netscape. • Infine nel '98 esce la nuova versione di Windows (Windows 98) e nel frattempo la crescita del sistema operativo di rete, Windows NT, si consolida fino a creare serie minacce a ben più blasonati sistemi. Cultura tecnologica del progetto

  33. Breve storia di windows 2/2 • Il successore di windows NT è Windows 2000. Windows 2000 compare in due versioni: la Professional e la Server. La prima è la soluzione ideale per applicazioni desktop mentre la seconda per la gestione e l’amministrazioni di reti, domini, ecc. • Con il nuovo millennio si registra l’uscita del nuovo Windows Millennium Edition (ME), praticamente un Windows 98 SE rivisto nella grafica, potenziato a livello di funzioni multimediali e nel quale fa la sua definitiva scomparsa il buon vecchio DOS. • Alla fine del 2002 viene presentato Windows XP nelle versioni Home, Professional e Server. La prima prenderà il posto di Windows ME mentre le altre due sostituiranno le analoghe versioni di Windows 2000. • Windows XP presenta un’interfaccia completamente ridisegnata, un ottimo supporto alle periferiche attualmente sul mercato e una grande supporto ai prodotti multimediali non ultimi i videogame grazie all’integrazione diretta delle DirectX. • Windows XP è presente sul mercato anche nella versione a 64 bit per processori Alpha. • Nel 2006 è stata rilasciato Windows Vista. Tra le principali novità: pieno supporto dei processori a 64 bit (funziona però anche a 32 bit); nuovo motore per l’interfaccia grafica; funzionalità avanzate di ricerca dei documenti archiviati; maggiore protezione rispetto agli attacchi informatici. Cultura tecnologica del progetto

  34. Unix • Sistema Operativo: • multi-utente, • multi-tasking, con time-sharing • Nato negli anni ’60 con un progetto congiunto AT&T e MIT • Concepito per poter funzionare su diverse piattaforme hardware con adattamenti limitati • Interprete dei comandi: shell • testuale • più di 300 comandi, con opzioni • Disponibilità di interfaccia grafica (finestre, mouse, etc.) messa a disposizione da un insieme di moduli separati (sistema X Window) Cultura tecnologica del progetto

  35. Linux • Linux è una delle molte varianti di Unix con la peculiarità di essere open source (= il cui codice sorgente è liberamente disponibile) • La sua nascita è dovuta in parte alle restrizioni imposte da AT&T all’uso di del codice sorgente di UNIX per la didattica: • hanno indotto Andy Tanenbaum allo sviluppo di MINIX, un implementazione di UNIX per scopi didattici • MINIX ha ispirato Linus Torvalds a realizzare una propria implementazione del kernel UNIX • Il kernel sviluppato da Linus è stato combinato con una suite di programmi UNIX, sviluppati nell’ambito del progetto GNU (iniziativa che ha originato il movimento open source), per formare la prima distribuzione di Linux e renderla disponibile su Internet come software open source • Oggi esistono innumerevoli distribuzioni di Linux, distinte per diverse combinazioni di kernel, interfacce grafiche (le più note sono Gnome e KDE) e programmi di utilità. Cultura tecnologica del progetto

  36. Linux Gnome   KDE Cultura tecnologica del progetto

  37. BSD • BSD è un’altra versione open source del sistema operativo Unix, in questo caso nata alla University of California, Berkeley (USA) • Ritenuto più stabile di Linux (anche grazie ad un gruppo di sviluppo più ristretto, quindi più controllabile) ma il numero di applicazioni disponibili è più ristretto (principalmente applicazioni per i server) • Oggi esistono 4 distribuzioni principali di BSD: • 3 distribuzioni free: FreeBSD, OpenBSD, NetBSD • 1 distribuzione a pagamento, all’interno del Sistema Operativo Apple MAC OS-X Cultura tecnologica del progetto

  38. MAC OS-X Architettura MAC OS-X Applicazioni • MAC OS-X è l’ultima generazione di S.O. per i personal computer prodotti da Apple • Abbandonato il precedente sistema operativo Apple ha costruito la nuova generazione del proprio S.O. a partire da una variante di BSD, chiamata Darwin, che rimane open source • A questo nucleo, Apple ha aggiunto componenti proprietari, dall’interfaccia grafica (Aqua) ad una suite di applicazioni e utilities. GUI  Kernel, gestori di risorse e servizi di base Cultura tecnologica del progetto

  39. Indice • Il sistema operativo • Software di sistema e applicativo • Architettura di un sistema operativo • Classificazione dei sistemi operativi • Bootstrap • Panoramica dei principali sistemi operativi • MS DOS, MS Windows, UNIX, Linux, BSD, Mac OS • Rappresentazione dell’informazione • Numeri • Caratteri e testi • Immagini • Video • Suoni • Cenni di programmazione • Linguaggi di programmazione • Fasi della programmazione • Paradigmi di programmazione • Costrutti elementari di un linguaggio di programmazione Cultura tecnologica del progetto

  40. Codifica posizionale dei numeri: il sistema arabico • Il sistema di numerazione arabico sfrutta una codifica posizionale • Ogni cifra assume un valore particolare a seconda della posizione assunta all’interno del numero • Esempio: 01 è diverso da 10 • Il sistema arabico usa 10 cifre • Si parla di numerazione in base 10 • Il valore di una cifra  all’interno di un numero è pari a: x 10ndove n è la posizione occupata dalla cifra  all’interno del numero (si conta da destra partendo da 0) • Esempio:1257 = 7 x 100 + 5 x 101 + 2 x 102 + 1 x 103 Cultura tecnologica del progetto

  41. Codifica dati e istruzioni Algoritmi = istruzioni + dati. Per scrivere un programma che descriva un algoritmo è necessario rappresentare istruzioni e dati utilizzando un formato che il calcolatore sia in grado di: Memorizzare Elaborare Trasmettere Cultura tecnologica del progetto

  42. Codifica dati e istruzioni Alfabeto dei simboli Esempio: cifre 0,1 Esempio: cifre 0,1, 2, …, 9, separatore decimale (,), separatore delle migliaia (.), segno positivo (+) e negativo (-). Regole di composizione (sintassi) che definiscono le sequenze di cifre (parole) ammissibili: Esempio: 1.234,5 è la rappresentazione di un numero reale. Esempio: 1,23,45 non lo è. Cultura tecnologica del progetto

  43. Codifica dati e istruzioni Codice (semantica): insieme di regole che ad ogni configurazione ammissibile associa un’entità di informazione 1.234,5 = 1 x 103 + 2 x 102 + 3 x 101 + 4 x 100 + 5 x 10-1 1,23,45 = ? Lo stesso alfabeto può essere utilizzato con codici diversi: 123,456 = 1 x 102 + 2 x 101 + 3 x 100 + 4 x 10-1 + 5 x 10-2 + 6 x 10-3 (IT) 123,456 = 1 x 105 + 2 x 104 + 3 x 103 + 4 x 102 + 5 x 101 + 6 x 100 (UK) Cultura tecnologica del progetto

  44. Codifica binaria dell’informazione Il calcolatore utilizza un alfabeto binario: usiamo dispositivi elettronici digitali in grado di assumere due solo stati: acceso/spento, ON/OFF, 1/0, VERO/FALSO. Un alfabeto binario non limita le funzionalità di un calcolatore. Il simbolo o cifra binaria si indica con bit (da Binary digIT): quantità d’informazione che si ottiene selezionando una configurazione da un insieme che ne contiene due. La risposta SI oppure NO a una domanda porta 1 bit di informazione. Cultura tecnologica del progetto

  45. Codifica binaria dell’informazione Il calcolatore tratta diversi tipi di dati (numeri, caratteri, ecc.) tutti rappresentati con la codifica binaria. Problema: assegnare un codice univoco a tutti gli oggetti compresi in un insieme predefinito. Esempio: associare un codice binario ai giorni della settimana. Cultura tecnologica del progetto

  46. Codifica binaria dell’informazione Quanti oggetti diversi posso codificare con parole binarie composte da k bit? 1 bit: 21 = 2 stati (0, 1)  2 oggetti 2 bit: 22 = 4 stati (00, 01, 10, 11)  4 oggetti 3 bit: 23 = 8 stati (000, 001, 010, 011, 100, 101, 110, 111)  8 oggetti … k bit: 2kstati  2k oggetti Cultura tecnologica del progetto

  47. Codifica binaria dell’informazione Se passiamo da una parola binaria di k bit ad una parola di k+1 bit si raddoppia il numero di oggetti che si possono rappresentare (2k+1). Cultura tecnologica del progetto

  48. Codifica binaria dell’informazione Quanti bit mi servono per codificare N oggetti: N  2k  k  log2 N  k = log2 N Ipotesi implicita: le parole di un codice hanno tutte la stessa lunghezza. Cultura tecnologica del progetto

  49. Definire un codice Identificare due insiemi: Insieme delle configurazioni ammissibili; Insieme degli oggetti da rappresentare. Associare gli elementi dei due insiemi Cultura tecnologica del progetto

  50. Esempio Associare una codifica binaria ai giorni della settimana. Quanti bit devono avere le parole binarie usate per identificare i giorni della settimana (7 oggetti diversi)? k = log2 7 = 3 Cultura tecnologica del progetto

More Related