Colloquio di informatica (5 crediti) - Università degli studi della Tuscia Dipartimento di Scienze Ecologiche e Biologiche Corso di laurea in ...
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Università degli studi della Tuscia Dipartimento di Scienze Ecologiche e Biologiche Corso di laurea in Scienze Ambientali A.A. 2013-2014 - II semestre Colloquio di informatica (5 crediti) Prof. Pier Giorgio Galli (pggalli@unitus.it)
Trattamento dei dati e sistemi informatici Hardware + Software = Sistema Informatico + Trattamento dati = Sistema informativo
Il software • Il termine software è un neologismo della lingua inglese costituito dall’unione di due parole, soft(morbido) e ware (manufatto, componente, oggetto). • Indica un programma o un insieme di programmi in grado di essere eseguiti su un elaboratore. • Il software comprende tutti i programmi, indipendentemente dal tipo di compito o di compiti che un programma è in grado di svolgere.
Il software di base Comprende tutti quei programmi necessari al funzionamento di base del computer. Consiste del sistema operativo e degli strumenti di sviluppo software (ovvero orientati alla programmazione). Si pone perciò come un intermediario tra l’hardware e l’utente e tra l’hardware ed il software applicativo.
Il software applicativo E’ l’insieme dei programmi finalizzati a risolvere problemi specifici dell’utente. Ad esempio, in un contesto di produttività individuale, possiamo considerare la suite Microsoft Office Word: videoscrittura Excel: foglio di elettronico Power Point: presentazioni O l'analoga suite (gratuita) Open Office : Write: videoscrittura Calc: foglio di elettronico Draw: presentazioni
Il software di base L'utente interagisce [direttamente] con il sistema operativo ad esempio per copiare un file da una cartella ad un'altra; per connettere una nuova stampante; per installare/disinstallare un'applicazione; per localizzare la lingua, ecc. Software di base (sistema operativo, ambienti di sviluppo, tools di sistema…) Hardware
Il software applicativo Software applicativo (calcolatrice, videoscrittura, foglio elettronico, giochi, …) Software di base (sistema operativo, ambienti di sviluppo, tools di sistema…) Hardware
Il software applicativo L'utente interagisce con il software Il software applicativo applicativo (es. interagisce con il sistema Power Point, salva operativo (es. esecuzione con nome) del comando salva con nome) Hardware Il sistema operativo gestisce l'I/O per l'esecuzione del comando
Il sistema operativo • un Sistema Operativo è un insieme di programmi responsabile del controllo e della gestione dei componenti hardware che costituiscono un computer e dei programmi applicativi che su di esso vengono eseguiti. • Un sistema operativo mette a disposizione dell’utente un’interfaccia per accedere, ovvero per esprimere i comandi dell’utente nei confronti delle risorse hardware (dischi, memoria, I/O in generale) del sistema.
Due grandi famiglie Mainframe Midrange PC Mobilità UNIX Linux (Open source) Mac OS (Apple) iOS (Apple) Android (Google) Windows Windows server Windows
Sistema operativo Interfaccia (shell) Nucleo del sistema operativo (kernel) Gestore della Gestore dei memoria File system Gestore I/O processi centrale Hardware
I processi • Per processo si intende un'istanza di un programma in esecuzione. Più precisamente è un'attività controllata da un programma che si svolge su un processore sotto la supervisione del sistema operativo. • Un programma è costituito dalle istruzioni (implementazione dell'algoritmo). È un'entità statica, che rimane immutata durante l'esecuzione. • Il processo è l'entità utilizzata dal sistema operativo per rappresentare una specifica esecuzione di un programma. Esso è quindi un'entità dinamica, che dipende dai dati che vengono elaborati, e dalle operazioni eseguite su di essi. Il processo è quindi caratterizzato, oltre che dal codice eseguibile, dall'insieme di tutte le informazioni che ne definiscono lo stato, come il contenuto della memoria indirizzata, i thread, i descrittori dei file e delle periferiche in uso. Da Wikipedia, l'enciclopedia libera.
Time sharing In informatica il time-sharing (termine di origine inglese che tradotto letteralmente significa "condivisione di tempo") è un approccio concorrente del sistema operativo all'uso delle risorse di processamento attraverso il quale l'esecuzione o attività della CPU viene suddivisa intervalli temporali (quanti di tempo) da assegnare sequenzialmente a vari processi. 1) Ambienti monoutente (es. PC, tablet, …). L'assegnazione della CPU ai processi avviene in tempi tanto rapidi da dare all'utente l'impressione che i processi vengano eseguiti contemporaneamente. 2) Ambienti multiutente (es. server, computer centralizzati). In un contesto di computer condiviso attraverso più utenti possono, con i loro programmi in esecuzione, interagire con il sistema centralizzato In questo caso la CPU del computer centrale viene utilizzata per rispondere alle richieste dei singoli utenti, passando rapidamente da uno all'altro dando così l'impressione ad ognuno di avere a disposizione il computer centrale interamente per sé.
Transizioni di stato dei processi Nuovo Pronto Attesa Esecuzione Terminato
Gestore dei processi Quando un programma utente è stato avviato la CPU esegue le istruzioni in linguaggio macchina che lo compongono Il gestore dei processi controlla la terminazione, interruzione e riattivazione, sincronizzazione dei processi in esecuzione Dallo stato di pronto allo stato di esecuzione: • il SO stabilisce quale dei processi pronti debba essere mandato in esecuzione; • la scelta è fatta in base ad un algoritmo di scheduling: per esempio, si esegue il primo della coda dei processi pronti, oppure quello con priorità massima, ... Dallo stato di esecuzione allo stato di attesa: • il processo chiede delle risorse di I/O o attende un evento • il SO salva tutte le informazioni necessarie a riprendere l’esecuzione del processo al verificarsi dell'evento o all'ottenimento della risorsa
Gestore dei processi Dallo stato di attesa allo stato di pronto: • si verifica l’evento atteso dal processo e il SO sposta quel processo nella coda dei processi pronti Dallo stato di esecuzione allo stato di pronto: • il processo in esecuzione viene interrotto dal SO (es. perché termina il quanto di tempo a disposizione, oppure perché la CPU riceve un interrupt); • il SO salva tutte le informazioni necessarie a riprendere l’esecuzione del processo.
Gestione della memoria Centrale 1. Il sistema di elaborazione può eseguire più applicazioni "contemporaneamente" (es. iTunes mentre navigo nel web e leggo le slide di informatica); 2. le applicazioni per essere eseguite devono risiedere nella memoria primaria (centrale); 3. la memoria centrale (RAM) può non essere abbastanza capiente per contenere tutte le applicazioni che l'utente vuole eseguire contemporaneamente… Come risolvere il problema?
Memoria virtuale • La memoria virtuale è una architettura di sistema capace di simulare uno spazio di memoria centrale (memoria primaria) maggiore di quello fisicamente presente o disponibile; questo risultato si raggiunge utilizzando spazio di memoria secondaria (di massa) su altri dispositivi o supporti di memorizzazione, di solito le unità a disco. La memoria centrale fisicamente presente diventa quindi la parte effettivamente utilizzata di quella virtuale, più grande: questo stratagemma è utile in virtù del principio di località e riuso dell'esecuzione dei programmi. • La memoria di massa utilizzata a questo scopo è comunemente chiamata spazio di swap o file di paging. Le operazioni di spostamento delle pagine dallo spazio di swap alla memoria fisica sono chiamate swapping. Da Wikipedia, l'enciclopedia libera. Considerando che la velocità di accesso alle memorie di massa è minore rispetto alle RAM, maggiore è la quantità di RAM installata in un computer installata in un computer maggiore sarà la velocità nell'esecuzione dei programmi!
Memoria virtuale - schema Memoria centrale Memoria di massa (veloce) (lenta) allocata per allocata per CPU ogni processo ogni processo in esecuzione
File system Il file system è il componente del sistema operativo responsabile della gestione dei dati nelle memorie secondarie • gestisce la corrispondenza tra l’organizzazione logica e l’organizzazione fisica dei dati; • i dati nelle memorie secondarie sono organizzati logicamente in volumi, cartelle e file; • i dati nelle memorie secondarie sono organizzati fisicamente in dischi, superfici, cilindri e settori; • garantisce in modo ottimale lo spazio disponibile • garantisce all'utente l'accesso ai dati anche in contesti concorrenti; • fornisce meccanismi di protezione; • rende disponibili in modo semplice le operazioni di uso comune sui file;
File system Il gestore dei file (file system) è, informalmente, un meccanismo con il quale i file sono immagazzinati e organizzati su un dispositivo di archiviazione, come un hard disk o un CD-ROM. Più formalmente, un file system è l’insieme delle strutture di dati e delle tecniche necessarie per la memorizzazione, l’organizzazione gerarchica, la manipolazione, l’accesso e la lettura dei dati.
File system Il file system è il componente del sistema operativo responsabile della gestione dei dati nelle memorie secondarie • gestisce la corrispondenza tra l’organizzazione logica e l’organizzazione fisica dei dati; • i dati nelle memorie secondarie sono organizzati logicamente in volumi, cartelle e file; • i dati nelle memorie secondarie sono organizzati fisicamente in dischi, superfici, cilindri e settori; • garantisce in modo ottimale lo spazio disponibile • garantisce all'utente l'accesso ai dati anche in contesti concorrenti; • fornisce meccanismi di protezione; • rende disponibili in modo semplice le operazioni di uso comune sui file; Organizzazione logica Organizzazione Fisica
File system Il file system è il componente del sistema operativo responsabile della gestione dei dati nelle memorie secondarie • gestisce la corrispondenza tra l’organizzazione logica e l’organizzazione fisica dei dati; • i dati nelle memorie secondarie sono organizzati logicamente in volumi, cartelle e file; • i dati nelle memorie secondarie sono organizzati fisicamente in dischi, superfici, cilindri e settori; • garantisce in modo ottimale lo spazio disponibile • garantisce all'utente l'accesso ai dati anche in contesti concorrenti; • fornisce meccanismi di protezione; • rende disponibili in modo semplice le operazioni di uso comune sui file; Organizzazione logica Organizzazione Fisica
Cancellazione logica e fisica dei file Il file system nell'eseguire il comando di eliminazione di un file dalla memoria di massa (eliminazione dal cestino), non cancella fisicamente i bit che compongono il file, ma memorizza in un indice di allocazione l'area fisica della memoria assegnata al file come riusabile per la memorizzazione di un altro file. (Questo rende possibile recuperare un file anche dopo averlo eliminato dal cestino) Durante la fase di memorizzazione di un nuovo file, quando non è presente abbastanza spazio fisico contiguo per memorizzazione dei dati, il file system collega gli spazi fisici a disposizione con catene logiche e assegnando le varie parti ad un unico file logico. Questo comportamento, a lungo andare, provoca il fenomeno della frammentazione.
La deframmentazione La deframmentazione è un'operazione di ottimizzazione dell'archiviazione dei dati nella memoria di massa di un computer che consiste nel ridurre la frammentazione esterna dei file presenti sulla memoria stessa (es: un disco fisso) ristrutturandone l'allocazione facendo in modo che ciascun file risulti memorizzato in una zona contigua dal punto di vista fisico; questo diminuisce drasticamente i tempi di accesso e lettura ai file. La deframmentazione è un'operazione che può essere svolta in modo automatico dal file system durante il suo regolare funzionamento oppure eseguita tramite esplicita richiesta dell'utente tramite l'esecuzione di un programma. Da Wikipedia, l'enciclopedia libera.
Eliminazione sicura file • Distruzione fisica della memoria • Smagnetizzazione (es. degausser) • Software specifici (es. Ccleaner) Degausser CCleaner
Gestore dispositivi I/O. I driver. Il sistema operativo oltre, alla gestione delle memorie di massa (attraverso il file system), gestisce il trasferimento dei dati con tutti gli altri dispositivi di I/O (periferiche). In questo contesto il produttore del sistema operativo deve conoscere nei dettagli il funzionamento di ogni dispositivo hardware di I/O. Due sono gli approcci: • sistemi operativi nei quali possono essere connesse solo determinati dispositivi per i quali il produttore del sistema operativo provvede a scrivere l’interfaccia; • Sistemi operativi (più diffusi) per i quali il produttore della periferica provvede alla scrittura dell’interfaccia (driver)
La leggerezza del software Poi, l'informatica. E' vero che il software non potrebbe esercitare i poteri della sua leggerezza se non mediante la pesantezza del hardware; ma è il software che comanda, che agisce sul mondo esterno e sulle macchine, le quali esistono solo in funzione del software, si evolvono in modo d'elaborare programmi sempre più complessi. La seconda rivoluzione industriale non si presenta come la prima con immagini schiaccianti quali presse di laminatoi o colate d'acciaio, ma come i bits d'un flusso d'informazione che corre sui circuiti sotto forma d'impulsi elettronici. Le macchine di ferro ci sono sempre, ma obbediscono ai bits senza peso. ITALO CALVINO, Lezioni americane. Sei proposte per il prossimo millennio.
Killer application La locuzione inglese killer application, significa letteralmente applicazione assassina, ma viene intesa nel senso metaforico di applicazione decisiva, vincente. Applicazione assassina si riferisce a un prodotto di successo costruito su una determinata tecnologia (quindi una applicazione di quella tecnologia), grazie al quale la tecnologia stessa penetra nel mercato, imponendosi rispetto alle tecnologie concorrenti e aprendo la strada alla commercializzazione di altre applicazioni secondarie. Da wikipedia, l’enciclopedia libera. Esempi da manuale: • Visicalc • Wordstar • …
Licenza d’uso La licenza o contratto d'uso, in informatica è il contratto con il quale il titolare dei diritti di sfruttamento economico sul software (programma informatico) definisce il regime giuridico di circolazione e le limitazioni nell'utilizzo e nella cessione dell'opera. Licenze per il software software proprietario / closed source EULA [End User License Agreement] (prodotti commerciali) shareware (uso di prova propedeutico all’acquisto) freeware (uso gratuito) Licenze per il software libero e open source Alcune licenze per il software libero sono la GNU General Public License (GPL), la GNU Lesser General Public License (LGPL) e la WTFPL. Alcuni software sono disponibili sotto licenza artistica, licenza Apache, Licenza Mozilla Public License 2.0 (MPL) o sotto altre licenze libere o open source come le licenze BSD. Da Wikipedia, l’enciclopedia libera.
La GNU General Public License (GPL) La GNU General Public License, comunemente indicata con l'acronimo GNU GPL o semplicemente GPL, è una licenza per software libero, originariamente stesa nel 1989 da Richard Stallman per distribuire i programmi creati nell'ambito del Progetto GNU della Free Software Foundation (FSF) per il progetto GNU. Essa garantisce agli utenti finali come organizzazioni, imprese o semplici individui, di utilizzare, condividere e persino modificare il software. Il GPL è una licenza copyleft, il che significa che le opere derivate possono essere distribuite solo sotto gli stessi termini di licenza. GPL è stata la prima licenza copyleft per uso generale. Da Wikipedia, l’enciclopedia libera
Puoi anche leggere