Il software e il sistema operativo Il software Un computer non è costituito solamente da circuiti elettronici e da parti meccaniche. Ciò che gli permette di funzionare e di svolgere una gamma estremamente differenziata di mansioni, è il Software Il software rappresenta dunque, in opposizione alle componenti fisiche della macchina, la sua organizzazione logica e funzionale, di cui è opportuno mettere in rilievo due caratteristiche importanti: 1. l’indipendenza dal supporto materiale 2. la non permanenza. 2 Il software L’indipendenza dal supporto Consente di memorizzare gli stessi dati o programmi su supporti diversi, dalla memoria RAM alle memorie di massa magnetiche (hard disk, floppy disk) o ottiche (CD-ROM), senza modificarne le caratteristiche logiche e funzionali. La non permanenza E’ a fondamento della capacità del computer di assumere di volta in volta, a seconda del software trasferito nella sua memoria centrale, architetture logiche diverse, vale a dire diverse funzionalità e diverse interfacce con l’utente, pur lasciando invariata la sua struttura fisica o materiale. 3 Il software 4 Categorie di software Il software è tradizionalmente suddiviso in tre grandi categorie: i sistemi operativi, i programmi applicativi e i linguaggi di programmazione (o sistemi di sviluppo). I sistemi operativi garantiscono il funzionamento di base della macchina, consentendo agli altri programmi di “dialogare” con l’hardware, cioè di sfruttarne le risorse. I programmi applicativi sono quelli che determinano di volta in volta le funzioni specifiche del computer: videoscrittura, calcolo, grafica, videogame… I linguaggi di programmazione, sono programmi che consentono di realizzare altri programmi, e sono progettati per facilitare il lavoro dei programmatori professionisti, di coloro, cioè, che progettano e scrivono il codice del software utilizzato dagli utenti finali. 5 Il sistema operativo 6 Il sistema operativo E’ un insieme di programmi che gestiscono l’elaboratore e rendono possibile l’interazione uomo-macchina. continua … 7 Il sistema operativo Cominciamo col dare un’occhiata un po’ più ravvicinata al sistema operativo… I dati per essere elaborati devono essere convogliati dalla RAM all’unità centrale. Dopo l’elaborazione, vengono ricollocati nella memoria di lavoro, dalla quale saranno eventualmente prelevati di nuovo, per essere elaborati ancora o inviati al dispositivo di uscita (video, stampante...). Questo traffico continuo di pacchetti di informazioni, contenenti dati e istruzioni operative, che vanno e vengono, avviene al ritmo di milioni di operazioni ogni secondo. Per evitare la congestione totale, il “sistema operativo” le smista ordinatamente. continua … 8 Il sistema operativo Il sistema operativo, dunque, è il programma che stabilisce le regole per l’intero movimento dei dati; esso fornisce un “guscio”, una base indispensabile perché possano funzionare gli altri programmi. Ogni calcolatore ha bisogno di un sistema operativo, che in genere varia da un tipo all’altro di computer (molti computer, tuttavia, possono funzionare con sistemi operativi di volta in volta diversi). continua … 9 Il sistema operativo Quando si accende un computer, esso esegue alcune operazioni e poi va subito a ricercare il sistema operativo. I programmi, ideati per applicazioni che dovranno “girare” su un determinato calcolatore, devono essere scritti per quel particolare sistema operativo che fa funzionare la macchina. Allo stesso modo, i dischi magnetici (hard disk e floppy disk) sono formattati, cioè predisposti all’uso, in modo diverso dai vari sistemi operativi. Non è generalmente possibile, dunque, usare su un computer che utilizza un certo sistema operativo un dischetto formattato con un altro sistema. continua … 10 Il sistema operativo Con Mac è possibile, grazie a Apple File Exchange, che nelle ultime versioni di Mac OS è stato incorporato direttamente nel sistema, formattare in MS-DOS, leggere e salvare files in un dischetto MS-DOS. Gli ultimi modelli di Macintosh hanno inoltre la possibilità di montare schede per l’emulazione dei PC Pentium. 11 Le funzioni del sistema operativo 12 Le funzioni del sistema operativo L’insieme dei programmi che definiscono un S.O. è articolato in una molteplicità di sottoprogrammi che hanno il compito principale di realizzare alcune funzioni essenziali di ogni sistema di elaborazione. Le principali tra queste funzioni riguardano: - la gestione dei processi; - la gestione dei meccanismi di ingresso-uscita; - la gestione dei file. Per eseguire tali funzioni il SO dovrà fare corrispondere ad alcuni particolari comandi, prodotti in modo esplicito dall'utente oppure interni ad un particolare programma e poi tradotti da un compilatore, la «chiamata» di uno specifico modulo che li rende esecutivi. continua … 13 Le funzioni del sistema operativo -La gestione dei processi Da un punto di vista generale l'attività della macchina è ricondotta alla nozione di processo. Il termine processo viene usato nel senso di un programma in esecuzione, tramite un processore. La gestione di un processo comporta che alternativamente alcune risorse del sistema (apparecchiature di I/O, CPU o altro) vengano rese disponibili in modo dedicato per avviarne l'esecuzione. Ad assegnazione avvenuta, il SO deve attivare una sequenza ordinata di passi strettamente connessa al tipo di processo. Ad esempio, a caricamento in memoria avvenuto, si dovrà attivare la fase di compilazione, eseguire propriamente il lavoro, richiedere periferiche esterne per la scrittura dei risultati (stampanti o dischi). continua … 14 Le funzioni del sistema operativo -La gestione dei meccanismi di ingresso-uscita Le operazioni di I/O sono organizzate come comandi al SO per ottenere il servizio corrispondente. I problemi più rilevanti da risolvere sono dovuti alla presenza di periferiche di vario genere e quindi le tecniche da adottare devono essere rese indipendenti dalle periferiche fisiche disponibili. Per ottenere questo il SO utilizza istruzioni generali che eseguono la chiamata di particolari moduli di programma del SO in modo indipendente dalle periferiche collegate. L'utente inoltre «non vede» né in che modo vengono realizzate le operazioni di ingresso o di stampa dei dati, né come il SO realizza queste due funzioni. continua … 15 Le funzioni del sistema operativo -La gestione dei file. Il lavoro sugli archivi è una delle attività prevalenti in programmazione. Grandi masse di dati devono essere conservate integralmente e in modo permanente e su di esse devono essere continuamente possibili operazioni di lettura e aggiornamento. Il SO dovrà pertanto garantire un accesso veloce alle informazioni archiviate e quindi consentire al programmatore un lavoro che non richieda la conoscenza da parte sua delle effettive posizioni fisiche dei singoli dati. È il SO che, a partire da istruzioni di tipo logico, dovrà ricercare la collocazione fisica dei dati. Sono inoltre presenti in ogni SO funzioni che garantiscono l'integrità e la riservatezza dei dati, mediante particolari meccanismi di duplicazione dei file o di parole chiave (password) assegnate ai soli utenti abilitati all'intervento. 16 CLASSIFICAZIONE DEI SISTEMI OPERATIVI La seguente classificazione fa riferimento alla struttura hardware delle macchine attualmente più diffuse. Si possono avere: - SO in regime di multiprogrammazione; il sistema porta avanti in modo contemporaneo più processi in quanto la struttura hardware è dotata almeno di due processori, una CPU è un canale di I/O. Il SO assume livelli di notevole complessità in quanto deve garantire la corretta esecuzione di attività multiple, senza interferenze distruttrici. - SO in regime di monoprogrammazione; in questo caso le macchine sono dotate di un unico processore e quindi può essere eseguito un solo processo alla volta. Il SO presenta una struttura semplificata in quanto non deve occuparsi dell'esecuzione simultanea di più processi. 17 La struttura modulare del sistema operativo Poiché ogni SO è un insieme di moduli software che devono essere implementati per poter eseguire una particolare funzione, la ricerca di questi ultimi anni ha portato ad una suddivisione del sistema nel suo complesso in una serie di livelli gerarchicamente distinti. Questa suddivisione è comunemente detta la «cipolla del software» poiché, se si esclude l'hardware, ogni suo strato individua un particolare gruppo di moduli software e conseguentemente di funzioni che svolgono una attività specifica. continua … 18 La struttura modulare del sistema operativo “a buccia di cipolla” La struttura di un sistema operativo prevede un’organizzazione a livelli con una precisa gerarchia. Ogni livello è in grado di assolvere determinati compiti e solo quelli. Le funzioni di ogni livello vengono viste solo dal livello immediatamente superiore. Il nucleo di questa struttura, detto anche kernel (nocciolo), è la parte del sistema operativo più vicina alla macchina e dipende in modo molto stretto dall'hardware. continua … 19 La struttura modulare del sistema operativo 1. Le funzioni del nucleo sono le seguenti: creazione e terminazione dei processi (programma in esecuzione tramite un processore) assegnazione della CPU ai diversi processi sincronizzazione tra i processi sincronizzazione dei processi con l'ambiente esterno. 2. Il livello successivo è quello che si occupa della gestione della memoria centrale, vale a dire della sua organizzazione e sfruttamento; normalmente essa viene divisa in blocchi logici chiamati pagine o segmenti. continua … 20 La struttura modulare del sistema operativo 3. Il modulo di gestione delle periferiche consente l'utilizzo delle periferiche da parte degli utenti gestendo le loro caratteristiche fisiche ed ottimizzando i tempi di accesso e di utilizzo in caso di condivisione da parte di più utenti. 4. Il modulo File System è la parte del sistema operativo che gestisce l'organizzazione dei dati nelle memorie di massa. Le sue funzioni principali sono: mantiene la traccia dei lavori memorizzati su una memoria di massa ricordando la posizione, la lunghezza in byte ed altre informazioni di utilità assegna le protezioni ed i diritti di accesso ad un lavoro continua … secondo le richieste dell'utente 21 La struttura modulare del sistema operativo predispone le funzioni di utilità, quali la lista dei lavori memorizzati, la loro cancellazione, duplicazione predispone e gestisce l'organizzazione di una memoria di massa. 5. Il modulo programmi applicativi è l'insieme di tutti quei programmi che facilitano l'utente nello svolgimento di lavori di uso comune; fra questi ricordiamo: l'editor di testi che consente di scrivere programmi, ma anche lettere, promemoria o altro il programma di formattazione dei dischi il programma di copiatura di dischi o per lavori particolari continua … sugli archivi registrati 22 La struttura modulare del sistema operativo i programmi per la gestione della data e dell'ora del computer e così via. 6. L‘interprete dei comandi, a volte indicato anche con il termine inglese shell, è il modulo del sistema operativo più vicino all'utente. Quando l'utente vuole ordinare al computer di compiere una certa operazione, deve esprimere il comando con un linguaggio e con modalità precise; il controllo della correttezza sintattica (con eventuale comunicazione degli errori) e l'attivazione della funzione richiesta dal comando sono affidati all'interprete. 23 Interfaccia utente Interfaccia utente: Interfaccia a linea di comando L'evoluzione dei sistemi operativi ha modificato le modalità di espressione dei comandi (interfaccia utente): 1. le linee di comando → espressioni verbali scritte in linguaggio specifico che l'utente digita e che vengono accettate ed analizzate dall'interprete solo quando si preme il tasto INVIO; sono di questo tipo i sistemi operativi DOS e UNIX; continua … 25 Interfaccia utente: Interfaccia a linea di comando Interfaccia testuale MS-DOS (1981) 26 MS-DOS: L’interfaccia a linea di comando Per anni il più diffuso dei sistemi operativi per personal computer è stato l’MS-DOS della Microsoft. L’MS-DOS è caratterizzato da una spartana interfaccia a linea di comando o a caratteri, basata sulla metafora del dialogo uomo-macchina. In pratica, ogni comando impartito al sistema operativo deve essere scritto alla tastiera e “inviato” al sistema stesso con l’apposito tasto di conferma (“Invio”). Il sistema risponde a sua volta, a conclusione delle operazioni richieste, con brevi messaggi di conferma o, in caso di problemi di natura sintattica o di qualsiasi altro tipo di malfunzionamento, con altrettanto brevi, e spesso sibillini, messaggi d’errore. I comandi più importanti dell’MS-DOS servono a manipolare i “files”. continua … 27 MS-DOS: COMANDI INTERNI I comandi interni del DOS risiedono permanentemente in memoria e sono sempre disponibili fino allo spegnimento della macchina. 28 MS-DOS: COMANDI INTERNI 29 MS-DOS: COMANDI ESTERNI Molti comandi vengono caricati in memoria dall’indice dell’hard disk su cui sono stati registrati solo quando se ne ha bisogno. Per tale motivo vengono solitamente chiamati comandi esterni. 30 Interfaccia utente: Interfaccia a menu 2. i menu → comandi già predisposti sul video in particolari zone ed attivabili mediante la pressione di un tasto specifico normalmente evidenziato 31 Interfaccia utente: Interfaccia grafica 3. le icone → gli elementi più importanti di una interfaccia grafica. Sono segni grafici (normalmente dei disegni) che indicano un particolare comando che viene selezionato da un puntatore che scorre sullo schermo comandato da un mouse. Interfaccia grafica Macintosh (1984) continua … 32 Interfaccia utente: Interfaccia grafica Interfaccia grafica Windows 3.1 (1990) continua … 33 Interfaccia utente: Interfaccia grafica Interfaccia grafica Windows 95 (1995) continua … 34 Interfaccia utente: Interfaccia grafica Interfaccia grafica Windows XP (2001) continua … 35 Windows: Le interfacce grafiche Il successo, a partire dalla metà degli anni ‘80, dei sistemi operativi basati sulla grafica, tipici dei Macintosh della Apple e degli Amiga della Commodore, ha convinto la Microsoft a dotare anche l’MSDOS di un’interfaccia grafica, battezzata come Windows. Le prime due versioni di Windows, tuttavia, non riuscirono ad imporsi. Con la versione 3, invece, il successo è stato travolgente: quasi tutti i produttori di computer basati su processori Intel vendono ora le loro macchine con Windows preinstallato. Il successo, infine, ha spinto la Microsoft a fare di Windows (a partire da Windows NT e Windows 95) un sistema operativo del tutto indipendente e non più un semplice rivestimento grafico di MS-DOS, il quale è mantenuto come opzione interna solo per garantire la compatibilità con le vecchie applicazioni. continua … 36 La metafora della scrivania Le interfacce grafiche si basano sulla metafora della scrivania: lo schermo del computer rappresenta la superficie di una scrivania “virtuale”, sulla quale sono collocati diversi “oggetti”, direttamente manipolabili mediante il puntatore del mouse. Alla metafora del dialogo uomo-macchina, tipica delle interfacce a caratteri, si sostituisce un ambiente che simula la manipolazione di oggetti astratti, rappresentati graficamente, attraverso il mouse, o meglio il suo puntatore, costituito generalmente da una piccola freccia che si sposta sullo schermo. L’interazione con il sistema operativo della macchina diventa muta e gestuale, ma molto più semplice ed intuitiva. continua … 37 La metafora della scrivania Gli oggetti manipolabili rappresentati sulla scrivania appartengono a 3 categorie principali: le icone, le finestre, i menu. Per questo si usa anche, a proposito delle interfacce grafiche, l’acronimo WIMP: “Windows Icons Mouse Pull-down menu”. Un altro vantaggio delle interfacce grafiche, rispetto a quelle a caratteri come MS-DOS, è di poter visualizzare i documenti sullo schermo esattamente con lo stesso aspetto che assumeranno sulla carta, una volta stampati. Per questo motivo si parla anche di interfacce WYSIWYG (“What You See Is What You Get”, quello che vedi è quello che ottieni). 38 Il sistema operativo - I file Gestione dei file e dei dati L'insieme dei file, detto anche file system, è tipicamente organizzato in una struttura ad albero, i cui nodi sono detti directory (o cartelle) e le cui foglie contengono i singoli file. Il percorso di accesso ad un oggetto (file o programma) parte dall'indirizzo del disco (C ad esempio) e segue la struttura gerarchica delle cartelle sino all'oggetto voluto: 40 C:\Docenti\Tempo Parziale\Rossini.doc. Gestione dei file e dei dati In Windows il percorso può essere visualizzato anche in forma di struttura ad albero attivando la funzione gestione o esplora risorse (a seconda della versione) o il File Manager (nelle prime versioni). 41 I file e il codice ASCII -Tabella ASCII estesa I caratteri si ottengono tenendo premuto il tasto Alt e digitando col tastierino numerico il codice decimale corrispondente Esempio: la È si ottiene digitando 212 mentre si tiene premuto il tasto Alt 42 Utilità di sistema Utilità di sistema Oltre al componente per la gestione di file, i sistemi operativi comprendono programmi di utilita' (o utility di sistema) che realizzano varie funzionalita' utili alla gestione dell'elaboratore. 1. Formattazione. Un programma di utilita' è adibito alla formattazione dei dischi, che consiste nella suddivisione del disco in tracce circolari e settori a spicchio. Tale programma crea anche la tabella di collocazione dei file (FAT) che permette la localizzazione dei file fornendo la corrispondenza nome-indirizzo sul disco. 44 Struttura meccanica dei dischi. traccia testina settore cilindro piatto braccio rotazione 45 Struttura meccanica dei dischi. settori tracce gap tra settori gap tra tracce 46 Struttura meccanica dei dischi. 47 Struttura meccanica dei dischi. Nei SO Microsoft i settori del disco sono raggruppati in cluster. Un cluster è quindi un insieme di settori e costituisce l’unità elementare (costituita da N settori contigui) di memorizzazione per il computer. Il numero di settori che forma un cluster dipende dal tipo di computer. I cluster sono numerati e la corrispondenza tra cluster e settori è riportata in una lista, gestita dal SO, chiamata FAT . La FAT (File Allocation Table): è una tabella usata dal S.O. per localizzare i cluster assegnati a ciascun file. Il DOS e le prime versioni di Windows usavano una FAT con elementi da 16 bit (max 64K cluster nella partizione). Da Windows 95 in poi è usata una FAT da 32-bit (FAT32) che consente partizioni da 2TB Da Widows NT in poi NTFS usa cluster da 0.5 a 4 KB (1 8 48 settori). La FAT – Esempio 49 Utilità di sistema - Scanning Questo programma di utilita' effettua una scansione del disco per individuare eventuali porzioni di memoria rovinate e marcarle in modo tale che non siano poi usate dal sistema operativo. Inoltre permette entro certi limiti di localizzare eventuali dati persi a causa di guasti del sistema. Fare … Risorse del computer → hdd → File → Proprietà → Strumenti → Esegui ScanDisk 50 Utilità di sistema – Deframmentazione (defrag) Quando un disco è vuoto i file vengono memorizzati in cluster adiacenti. Tuttavia, successive cancellazione e aggiunte di file possono rendere sempre piu' piccoli gli spazi liberi adiacenti, cosi che un singolo file puo' venire memorizzato su cluster non piu' adiacenti ma sparsi sul disco. Questo crea un rallentamento delle funzioni del calcolatore perchè i tempi necessari per le operazioni di lettura e scrittura vengono ad essere aumentati.. Si puo' ovviare a questo problema usando una utility di deframmentazione, che sposta i dati sul disco in modo tale da memorizzare i dati di uno stesso file su cluster contigui e da ricompattare lo spazo vuoto. Fare … Start → Programmi → Accessori → Utilità di sistema → Utilità di deframmentazione dischi 51 File frammentati e deframmentati 52 Utilità di sistema - Backup. Dato che i dischi sono soggetti ad errori e malfunzionamenti, per evitare la perdita irrimediabile di dati è utile eseguire periodicamente il salvataggio dei dati su dispositivi di memoria ausiliari (hard disk, floppy, DVD o nastri). Tale salvataggio, detto backup, puo' essere fatto utilizzando un opportuno programma di sistema che di solito provvede anche alla compressione dei dati per ottimizzare l'uso dello spazio di memoria. Fare … Start → Programmi → Accessori → Utilità di sistema → Backup 53 Fine 54