Modulo 3 Software Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Cosa è il software E’ l’insieme di programmi che consente al computer di funzionare e di svolgere le funzioni richieste dall’utente. Esistono fondamentalmente due tipologie di software: • Software di sistema: gestisce il funzionamento delle varie parti del computer e l’interazione tra di esse • Software applicativo: svolge i compiti richiesti dall’utente Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Esempi di software di sistema ed applicativi Software di sistema Software applicativi Sistema Operativo Programmi per videoscrittura, gestione fogli di calcolo, gestione database Compilatori Programmi CAD (computer aided design) Internet browser, gestione posta elettronica Device drivers Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Il sistema operativo Il sistema operativo è un software (di sistema) che controlla l’esecuzione dei programmi applicativi e funge da interfaccia tra l’utente e l’hardware. Il sistema operativo realizza quindi una sorta di macchina virtuale che offre funzionalità di alto livello svincolando l’utente dai dettagli di basso livello relativi all’hardware del calcolatore. Pertanto macchine aventi un’architettura differente a livello hardware possono essere utilizzate allo stesso modo se su di esse è installato lo stesso sistema operativo. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Il sistema operativo • • • • Un generico sistema operativo si compone delle seguenti parti: Kernel: fornisce le funzionalità di base per tutte le altre componenti del sistema operativo Interfaccia utente: consente agli utenti di interagire con il sistema operativo Spooler: gestisce la coda in cui vengono memorizzati i dati in attesa di essere stampati Gestore del filesystem: si occupa della gestione dei file sui dispositivi di archiviazione Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Il sistema operativo • Gestore dei processi: provvede all’esecuzione dei processi utente e di sistema. • Gestore della memoria: provvede ad allocare la memoria e a suddividerla tra i vari processi • Gestione I/O: si occupa della gestione delle operazioni di input/output mettendo a disposizione dell’utente procedure di alto livello che mascherano l’hardware dei dispositivi di I/O (lettura e scrittura di dati sul disco, etc.) Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Il sistema operativo Il sistema operativo provvede anche a gestire in modo efficiente le risorse messe a disposizione dalll’hardware assegnandole ai processi ed agli utenti che ne fanno richiesta. Le risorse che il sistema operativo gestisce sono le seguenti: • Processore • Memoria • Dispositivi di input/output (I/O) Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Interazione tra utente e sistema operativo L’interazione tra l’utente ed il sistema operativo può avvenire in due modi distinti: • Tramite riga di comando ovvero un interfaccia testuale in cui devono essere digitati i comandi • Tramite l’interfaccia grafica o GUI (Graphical User Interface) Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Interfaccia testuale • L’utente deve impartire i comandi tramite la tastiera ovvero digitando i comandi nella sintassi tipica del sistema operativo che si sta utilizzando • Tale approccio è estremamente potente ed ha il vantaggio, a differenza delle interfacce grafiche, di richiedere un minimo dispendio di risorse per il suo funzionamento • Non è indicato per gli utenti alle prime armi in quanto richiede la conoscenza della sintassi dei comandi Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Esempio di interfaccia testuale Il comando da eseguire viene digitato subito dopo il “prompt”. Per confermare l’immissione del comando si preme “invio” Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè GUI • La GUI è un’interfaccia grafica che facilita notevolmente l’interazione tra l’utente ed il sistema operativo. • L’interazione tra utente e sistema operativo è molto più intuitiva in quanto non richiede la conoscenza della sintassi dei comandi ma si basa sull’utilizzo del mouse, delle icone e dei menù • La facilità di utilizzo è ottenuta a discapito di un maggiore dispendio di risorse di calcolo Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Esempio di interfaccia grafica Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Cosa è un processo E’ necessario distinguere tra programmi e processi. programma È un insieme di istruzioni finalizzato all’esecuzione di un determinato compito processo Oltre alle istruzioni comprende lo stato corrente delle variabili memorizzate nella memoria centrale e nei registri della CPU Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Processi E’ possibile distinguere i processi in esecuzione in due categorie: • Processi utente: sono relativi ai programmi applicativi mandati in esecuzione dall’utente (o dagli utenti) • Processi di sistema: sono processi del sistema operativo per la gestione del sistema e delle risorse In genere la CPU esegue sia processi di sistema che processi utente. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Sistemi operativi multiutente Un sistema operativo multiutente riesce a gestire diversi utenti attivi nello stesso momento sulla stessa macchina ovvero più utenti possono utilizzarlo contemporaneamente attraverso dei terminali connessi ad una stessa macchina Sistemi operativi multitasking Un sistema operativo è detto multitasking se è in grado di eseguire contemporaneamente più processi Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Gestione dei processi Politiche di scheduling Per eseguire più processi contemporaneamente il job scheduler provvede a selezionare il processo da mandare in esecuzione. Tra le varie politiche di scheduling ricordiamo le seguenti: • Con priorità: ad ogni processo viene assegnato un livello di priorità che può essere variato durante l’esecuzione dello stesso per consentire l’esecuzione di altri job o in seguito alle operazioni richieste dal processo (ad es. richiesta di esecuzione di operazioni di I/O) Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Gestione dei processi Politiche di scheduling • Round-robin: i processi vengono inseriti in una coda di attesa la cui disciplina di gestione è di tipo FIFO (First in First out) ovvero il primo processo ad essere eseguito è il primo ad essere stato inserito nella coda. Per dare l’illusione della simultaneità nell’esecuzione di più processi ad ogni processo viene assegnato un quanto di tempo terminato il quale l’esecuzione dello stesso viene sospesa temporaneamente per passare all’esecuzione di un nuovo processo. Dopo la sospensione un processo torna in coda d’attesa. Per poter riprendere l’esecuzione di un processo sospeso è necessario salvarne preventivamente lo stato prima dell’interruzione. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Gestione della memoria Il sistema operativo provvede anche a ripartire la memoria disponibile tra i vari processi in esecuzione evitando che un processo vada a scrivere dati in una zona di memoria che è già stata allocata ad un altro processo (protezione della memoria). Grazie al gestore della memoria è come se ogni processo disponesse di una memoria dedicata. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Partizionamento di un disco Mediante il partizionamento è possibile suddividere un disco fisico in più volumi o partizioni. La suddivisione logica di un disco fisico in partizioni consente la coesistenza sullo stesso disco fisico di più sistemi operativi (ad es. Linux e Windows XP). In ogni caso, indipendentemente dalla presenza o meno di più sistemi operativi, le singole partizioni appaiono al sistema operativo come dei dischi fisici distinti. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Formattazione di un disco E’ un’operazione che consente di preparare un disco (hard disk, floppy disk, chiave USB, etc.) per la memorizzazione dei dati mediante la creazione di un filesystem ovvero delle strutture necessarie per la scrittura, la lettura, lo spostamento e la cancellazione dei file. Esistono due tipi di formattazione: • Ad alto livello: cancella le informazioni sui file ma non il contenuto. Prima che i dati vengano sovrascritti è possibile recuperarli tramite appositi programmi. • A basso livello: prevede la cancellazione fisica dei dati con conseguente impossibilità di recuperarli. E’, in genere, effettuata dal costruttore del supporto e, solo raramente, dall’utente. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Blocco di boot Il blocco di boot contiene una routine in grado di caricare il sistema operativo e di avviarne l’esecuzione. Il trasferimento di tale routine dal blocco di boot alla memoria RAM viene comandato da un’altra routine (BIOS), memorizzata in una memoria ROM o FLASH, che provvede anche all’inizializzazione dei registri della CPU e dei controller dei dispositivi. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Device drivers Esistono due categorie di driver di dispositivo: Driver fisici: sono dispositivi hardware che sovrintendono al funzionamento delle varie periferiche. Sono detti anche device controller Driver logici: sono dei software che consentono di mascherare i dispositivi fisici fornendo all’utente delle funzionalità di alto livello Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Esempi di sistemi operativi • Sistemi operativi Microsoft: MSDos, Windows 95, 98, 2000, NT, XP, Vista • Sistemi operativi Apple • Sistemi operativi Unix/Linux Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Attributi di un file Il S.O. associa ad un file i seguenti attributi: • Nome: identifica il file all’interno del filesystem. Spesso il nome è seguito da una estensione che identifica la tipologia del file (ad es. exe per un file eseguibile, .txt per un file di testo, etc.) • Dimensioni del file espresse in KB • Date di creazione, modifica ed ultimo accesso al file • Percorso (path) del file all’interno del filesystem • Permessi di lettura, scrittura ed esecuzione da parte del proprietario, del gruppo di appartenenza di quest’ultimo e di tutti gli altri utenti. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Operazioni su file • • • • • Il S.O. consente di effettuare le seguenti operazioni su di un file: Creazione Cancellazione Spostamento Salvataggio Modifica degli attributi (nome, permessi di lettura, scrittura, proprietario, etc.) Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Struttura gerarchica del filesystem Per facilitare il reperimento delle informazioni all’interno di un filesystem quest’ultimo viene in genere organizzato secondo una struttura gerarchica ad albero in cui i nodi corrispondono alle directory e le foglie ai file. La radice dell’albero coincide, invece, con la radice dell’intero filesystem. Directory radice / documenti/ File1.exe File2.exe immagini/ File Appunti.txt Foto.jpg Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Directory • La directory è un tipo di file speciale che contiene informazioni su altri file • Il concetto di directory è di fondamentale importanza per la realizzazione di una struttura gerarchica nel filesystem. • Visualizzare il contenuto di una directory significa visualizzare l’elenco dei file e delle eventuali sub-directory contenuti all’interno della stessa ed i loro attributi Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Path assoluti e relativi I file e le directory all’interno del filesystem sono identificati da un path name. Esistono due differenti tipologie di path: Path assoluti: specificano il percorso o la posizione del file a partire dalla radice del filesystem. Ogni file o directory è identificato in modo univoco da un path assoluto. Path relativi: specificano il percorso di un file (o di una directory ) a partire da una directory che lo contiene. Per uno stesso file si possono avere più path relativi. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Path assoluti e relativi Sintassi Nei sistemi operativi Unix/Linux per separare i nomi dei file e delle directory quando si specifica un path (assoluto o relativo) si utilizza il simbolo / (slash) mentre nei sistemi operativi della famiglia Windows si utilizza il simbolo \ (backslash). Esempi: Path assoluto: /documenti/immagini/isole_eolie/stromboli.jpg Path relativo: / isole_eolie/stromboli.jpg (path relativo alla directory: /documenti/immagini/) Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Path assoluti e relativi Simbologia “padre” Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè Fine Modulo 3 Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè