Calcolatori elettronici: Software di...

44
Calcolatori elettronici: Software di base Andrea Passerini [email protected] Informatica Software

Transcript of Calcolatori elettronici: Software di...

Page 1: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Calcolatori elettronici: Software di base

Andrea [email protected]

Informatica

Software

Page 2: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Sistema operativo (SO)

E’ un’infrastruttura software che si pone come interfacciatra l’infrastruttura hardware e l’utente (o il softwareapplicativo: editor di testi, browser web, etc.).Consente di utilizzare le risorse del sistema informaticosenza preoccuparsi delle loro caratteristiche fisiche (e.g.tipo di processore, dimensione del bus dati, tipo dischermo)Consente l’utilizzo concorrente del sistema da parte di piuprogrammi ed eventualmente utenti (sistemi multiutente)rendendo transparente la gestione della concorrenzanell’utilizzo delle risorse.Virtualizza le caratteristiche dell’hardware, offrendo unavisione del sistema come macchina astratta (o virtuale).Esiste una grande quantita di sistemi operativi diversi:UNIX, Ubuntu GNU/Linux, Mac OS X, Windows Vista

Software

Page 3: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Sistema operativo

Sistema operativo

Applicativi

HARDWARE

Basic Input−Output System (BIOS)

Software

Page 4: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Basic Input-Output System (BIOS)

Caricamento del sistema operativo

Il sistema operativo e quell’insieme di programmi chepermette il normale funzionamento di un calcolatore.Il sistema operativo risiede su memoria di massa(tipicamente un hard-disk), e deve essere caricato inmemoria centrale per poter essere utilizzatoAll’atto dell’accensione del calcolatore, e necessario unqualche modo per avviare il caricamento in memoriacentrale del sistema operativoTale operazione viene eseguita dal BIOS

Software

Page 5: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Basic Input-Output System (BIOS)

Cos’eIl BIOS e un piccolo programma che si occupa diinizializzare il calcolatore all’accensione:

1 esegue dei test diagnostici per verificare l’hardwarepresente e il suo corretto funzionamento (interrompendosicon messaggi di errore se necessario)

2 inizializza l’hardware e gestisce i dettagli di basso livello delsuo utilizzo (interfacciandolo con il sistema operativo)

3 localizza il sistema operativo (andando a cercare in unazona predefinita dell’hard disk) e lo carica in memoria

4 cede il controllo della macchina al SO stesso

Il BIOS e scritto su una memoria EEPROM o flash, ossiauna memoria di sola lettura ma riprogrammabile,contenuta nella scheda madre

Software

Page 6: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Funzioni del sistema operativo

Esecuzione applicazioniAbbiamo detto che qualunque programma per essereeseguito dalla CPU deve stare in memoria centraleQuando viene richiesta l’esecuzione di un programma (adesempio aprendo un editor di testi tipo openoffice), il SO sioccupa di caricare tale programma in memoria centrale, edavviarne l’esecuzioneUn programma caricato in memoria centrale diventa unprocessoLa CPU quindi esegue le istruzioni di processi, che sonoprogrammi caricati in memoria

Software

Page 7: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Funzioni del sistema operativo

Accesso dispositivi di I/OL’interazione tra il calcolatore e l’utente avviene tramite deidispositivi di input-output detti periferiche (tastiera,schermo, stampante, etc)I dettagli del funzionamento di tali periferiche dipendonodalle loro caratteristiche specifiche (e.g. tensione dellatastiera, segnale da associare alla pressione di un tasto,etc)Il SO si occupa di mascherare tali dettagli di basso livello,e fornire le funzionalita delle periferiche tramite istruzioniastratte (lettura/scrittura)Questo semplifica notevolmente l’interazione dell’utente,ma anche dei programmi applicativi, con tali periferiche

Software

Page 8: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Funzioni del sistema operativo

Archiviazione dati e programmiDati e programmi vengono archiviati in memorie di massa,quali l’hard disk, che a differenza della memoria centralenon sono volatiliTale informazione viene tipicamento organizzatalogicamente per poterla reperire in maniera efficiente,suddividendola in una struttura gerarchica di cartelle(directory) e filesIl SO si occupa di gestire tale struttura tramite il filesystem, e di rendere trasparenti i dettagli della lettura escrittura dell’informazione dai supporti hardware

Software

Page 9: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Funzioni del sistema operativo

Controllo di accessoNei sistemi condivisi da piu utenti, e necessario fornire deimeccanismi di protezione che impediscano ad un utente dimodificare dati e programmi di un altro utenteTali meccanismi vengono implementati dal sistemaoperativo mediante un sistema di permessi che stabiliscecosa un certo utente puo e non puo fareTipicamente tali permessi servono anche ad evitare chel’utente inavvertitamente (o maliziosamente) modifichi odanneggi elementi del sistema operativo, file diconfigurazione, etc, modificando o compromettendo ilfunzionamento della macchina.Tali meccanismi sono sempre piu necessari in un contestoin cui i computer sono connessi alla rete Internet e quindifacilmente raggiungibili

Software

Page 10: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Funzioni del sistema operativo

Gestione malfunzionamentiI malfunzionamenti sono parte inevitabile delfunzionamento di un calcolatore, dovuti a guasti hardware(e.g. cali di tensione), situazioni di eccezione (e.g. finecarta nella stampante), o operazioni scorrette compiute daun’applicazione (scrivere in una parte di memoria riservataal SO)Il SO si occupa di rilevare tali problemi, risolvendoli inmaniera trasparente ove possibile (e.g. re-inviando unsegnale, terminando un processo che ha fattoun’operazione scorretta) o segnalando il problema (e.g.manca carta nella stampante)Il SO evita cosı che tali malfunzionamenti possanocompromettere il funzionamento complessivo del sistema

Software

Page 11: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Modello stratificato

un sistema operativo e tipicamente organizzato in modostratificato (a buccia di cipolla)lo strato piu esterno fa riferimento alle funzionalita messe adisposizione dagli strati piu interniil kernel (o nucleo) e lo strato piu interno e fa riferimentodiretto al BIOSl’approccio modulare allo sviluppo dei sistemi operativitende a ridurre le funzionalita del kernel al minimoindispensabile ed integrare le funzionalita ulteriori tramitemoduli (e.g. per la gestione delle periferiche).

Software

Page 12: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Componenti del sistema operativo

gestione dei processi gestisce i programmi in esecuzione(processi) pianificando il loro utilizzo della CPU

gestione della memoria controlla l’allocazione della memoria aidiversi programmi in esecuzione, garantendo aciascuno l’accesso ad un’area riservata

gestione delle periferiche garantisce l’accesso ai dispositivi diI/O mascherandone i dettagli fisici (tramite idrivers) e risolvendo gli eventuali conflitti perrichieste concorrenti

gestione dei file (file system) gestisce archiviazione e recuperodei dati nelle memorie di massa

interprete di comandi si interfaccia direttamente agli utentipermettendo di accedere alle funzionalita delsistema (e.g. shell UNIX o interfacce utentegrafiche)

Software

Page 13: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Processi e programmi

un processo (task) e un programma in esecuzione sulcalcolatoreun programma e un oggetto statico (una sequenza diistruzioni)un processo e dinamico nel senso che e dotato di unostato interno che cambia nel tempoLo stato di un processo e formato dai valori dei daticontenuti in memoria e nei registri della CPU (inparticolare il program counter che contiene l’indirizzo dellaprossima istruzione da eseguire)Lo stesso programma pio essere associato a piu processidistinti (detti figli, e.g. piu finestre di un browser web)

Software

Page 14: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Elaborazione parallela

L’architettura di Von Neumann si basa sul principio diesecuzione sequenziale di operazioni.Per molti problemi reali e facile trovare situazioni in cuicerti passi possano essere eseguiti in paralleloSi parla di elaborazione parallela a livello di:

dati nel caso in cui si debba svolgere la stessaoperazione indipendentemente su un insiemedi dati (e.g. l’aggiornamento dei pixel inun’immagine)

istruzioni per istruzioni indipendenti da svolgere su datidistinti

processi per processi diversi che potrebbero essere inesecuzione allo stesso momento (e.g. usareun programma multimediale per ascoltaremusica mentre si utilizza un programma divideoscrittura)

Software

Page 15: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Parallelismo e Multitasking

Il parallelismo relativamente a dati e istruzioni e possibilesolo utilizzando architetture di elaborazione parallela,basate su:

La disponibilita di piu unita di elaborazioneLa presenza di pipeline che funzionano come catene dimontaggio per istruzioni (non realizzano parallelismo suidati)

Il parallelismo a livello di processo puo essere gestitodirettamente dal sistema operativo (multitasking)

Software

Page 16: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Multitasking

I tempi di esecuzione di tipi diversi di istruzioni sono moltodiversi.Le istruzioni aritmetico logiche sono ordini di grandezzapiu veloci delle istruzioni di I/O.Le istruzioni di I/O hanno tempi spesso non prevedibili apriori (e.g. la pressione di un tasto da parte dell’utente)La maggior parte dei programmi interattivi sono del tipo I/Obound, ossia impiegano la maggior parte del loro tempo inoperazioni di I/O, intervallate da brevi periodi dielaborazione.Sarebbe assolutamente inefficiente che nel momento incui il processo attualmente in esecuzione dovesse fareun’operazione di I/O, la CPU aspettasse la fine di taleoperazione rimanendo inoperosa.

Software

Page 17: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Multitasking

In un calcolatore sono attivi (ossia caricati in memoriacentrale) piu processi contemporaneamenteIn ogni istante un solo processo si trova realmente inesecuzione (la CPU puo eseguire una sola istruzione allavolta)Gli altri processi si possono trovare in uno dei due stati:

pronto in grado di essere eseguito non appena laCPU diviene disponibile (una certa politicadecide quale dei processi pronti mandare inesecuzione)

in attesa non in grado di essere eseguito poiche inattesa del verificarsi di un evento esterno (e.g.la pressione di un tasto della tastiera) perpassare allo stato di pronto

Software

Page 18: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Interruzioni

Se un processo A in esecuzione ha bisogno di accederead una periferica (e.g. al disco fisso) passa del tempoprima che la periferica sia effettivamente in grado dicomunicare i datiIn questo caso il processo genera un interrupt interno ed ilcontrollo passa al kernel, che mette A nello stato di attesaIl kernel manda in esecuzione un altro processo B tra quelliche si trovano nello stato pronto.Quando la periferica e pronta, viene generato un interruptesterno (hardware) avvisando il SO che il processo A puoessere risvegliato

Software

Page 19: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Interruzioni interne

L’interruzione interna avviene per mezzo di una particolarechiamata al sistema operativo da parte del processo(supervisor call)In assenza di tale meccanismo la CPU dovrebbe rimanerein un ciclo “idle” attendendo la risposta della periferica,sprecando tempo.E’ importante che il SO salvi il contesto del processo inesecuzione (contenuto dei registri) prima di sospenderlo,altrimenti non sarebbe possibile riportarlo correttamente inesecuzioneIl contesto viene salvato in un’area speciale di memoria(descrittore del processo)

Software

Page 20: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Interruzioni interne

Dopo il salvataggio del contesto il SO sceglie uno deiprocessi pronti e lo manda in esecuzione, caricando il suocontesto nei registri della CPUIn particolare, viene caricato il valore del Program Counterche permette di far ripartire l’esecuzione del processodall’istruzione successiva all’ultima precedentementeeseguitaL’attivita di sospendere un processo, salvarne il contesto,scegliere un altro processo ed attivarlo si chiamacontext-switchingIl componente del kernel che si incarica di questeoperazioni si chiama scheduler

Software

Page 21: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Interruzioni esterne

Quando la periferica termina la sua operazione essagenera un interrupt esterno che si verifica in modoasincrono rispetto all’esecuzione delle istruzioni nella CPUAl verificarsi di questo evento il processo in esecuzionedeve essere sospeso (salvandone il contesto) per gestirel’interruptAll’interrupt e associato un numero intero N che loidentifica e che puo essere letto dalla CPU sul busAll’arrivo del segnale di interrupt la CPU modifica ilprogram counter con un valore calcolato sulla base di N,corrispondente all’indirizzo in memoria di una porzionespeciale di codice detta routine di servizio dell’interrupt

Software

Page 22: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Interruzioni esterne

La routine di servizio dell’interrupt provvede a raccogliere idati forniti dalla periferica oppure a continuare l’invio di altridati alla perifericaTerminata la routine di servizio, il processo che avevagenerato la richiesta di I/O viene spostato dallo stato diattesa allo stato di pronto (se la routine non implica unaoperazione di I/O)Il controllo torna al kernel che decide quale processo fartornare in esecuzione

Software

Page 23: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Scheduling

Un processo puo essere sospeso anche perche e scadutoun certo intervallo di tempo ad esso assegnatoIn questo modo si garantisce che tutti i processi inmemoria possano usare la CPU in maniera paritaria,evitando monopolizzazioni da parte di singoli processiIl processo in esecuzione viene sospeso e messo nellostato di pronto ed un altro processo viene messo in stato diesecuzioneLa scelta su quale processo eseguire tra quelli pronti vieneeffettuata dallo schedulerTipicamente si usa una coda con priorita (certi processopossono avere priorita maggiore di altri)UNIX, ad esempio, assegna maggiore priorita ai processiinterattivi

Software

Page 24: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Grafo delle transizioni

Processoin esecuzione

Processopronto

Processoin attesa

Interruzioneesterna

Interruzione

Fine quanto di tempo

Primo processo pronto

Fine esecuzione Inizio esecuzione

interna

Software

Page 25: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Politica di gestione

Round RobinIl kernel ha una coda dei processi pronti ed assegna aciascuno un quanto di tempo TLa coda viene gestita in modo FIFO (First In First Out)Il primo processo in coda viene messo nello stato diesecuzione per un tempo T e poi interrottoIl quanto di tempo T deve essere ampio rispetto al tempodi context-switchingNella coda entrano anche i processi che dallo stato diattesa vanno in stato di pronto per effetto di un’interruzioneesternaA seconda dei sistemi e possibile assegnare una priorita aiprocessi (e.g. con il comando nice in ambiente UNIX)

Software

Page 26: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Gestione della memoria centrale

Il sistema di gestione della memoria deve essere in gradopermettere ad un numero elevato di processi di risiedere inmemoria:

evitando conflitti tra i processi (e.g. evitando che unprocesso scriva dei dati nell’area di memoria contenente idati di un altro processo)ovviando alle limitazioni imposte dalla dimensione dellamemoria centrale

Software

Page 27: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Foreground e Background

Relativamente all’interazione con l’utente, un processo puoessere in due modalita:

in foreground quando il processo e abilitato all’interazionecon l’utente attraverso i dispositivi di I/O qualivideo e tastiera

in background quando, pur essendo attivo, il processo none in grado almeno temporaneamente diinteragire direttamente con l’utente

Software

Page 28: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Foreground e Background

La maggior parte dei processi generati dai programmiinterattivi e fatta per lavorare in foreground (e.g. la finestradi un programma di videoscrittura)Un utente e in genere in grado di interagire con un soloprocesso alla volta, per cui gli altri processi si troverannotipicamente in modalita background.Nel sistemi con interfaccia utente grafica, si associa ingenere ad ogni processo una finestra sullo schermo, eduna sola finestra e attiva (in foreground) in un certo istante,mentre e possibile attivare un’altra finestra (disattivandoautomaticamente quella precedentemente attiva) tramite ilmouse o con una combinazione di tasti.

Software

Page 29: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Demoni e agenti

Molti dei processi relativi alle funzioni interne del sistemaoperativo vengono:

attivati automaticamente dopo l’accensione edinizializzazione del calcolatoreeseguiti in background

Alcuni di essi, chiamati demoni sotto UNIX o agenti in altrisistemi, rimangono in attesa che uno specifico evento limandi in esecuzione,Esempi di demoni sono lo spooler di stampa, che gestiscela coda dei processi di stampa, ed i processi chedistribuiscono la posta elettronica agli utenti del sistema.

Software

Page 30: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Multiutenza

I SO piu evoluti (UNIX, NT) consentono la gestione di piuutenti, permettendo accesso simultaneo al sistema egarantendo la protezione dei datiUtenti diversi possono avere permessi diversi (ad esempioil permesso di eseguire comandi speciali)Esiste sempre un utente privilegiato che corrispondeall’amministratore del sistema (root sotto UNIX,administrator sotto NT).Il kernel mantiene informazioni sull’utente che ha lanciatoun processo o che accede ad una risorsa del sistema.

Software

Page 31: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Gestione delle periferiche

Il SO fornisce le funzionalita che consentono di effettuareoperazioni di lettura e scrittura con le periferiche mediantecomandi indipendenti dalla struttura hardware delleperiferiche.Tali comandi ad alto livello utilizzano meccanismi digestione di basso livello quali:

controller dispositivi hardware che effettuano a livellofisico le operazioni di trasferimento dati con leperiferiche

driver programmi software per la gestione delleperiferiche. Sono parte del sistema operativoanche se spesso realizzati dai produttori delleperiferiche o da sviluppatori indipendenti.

Software

Page 32: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Driver

Hanno lo scopo di mascherare le caratteristiche specifichedei controller.Forniscono un insieme di primitive (comandi) ad alto livelloper la gestione delle operazioni di I/O utilizzabili daiprogrammi applicativi e dagli utentiSi incaricano anche di ripetere piu volte un’operazione diI/O non andata a buon fine, segnalando eventualmente iltipo di malfunzionamentoPermettono di virtualizzare la presenza di piu perifericheintrinsecamente non condivisibili, tramite la tecnica dellospoolingI sistemi operativi piu recenti hanno funzionalita dette diPlug&Play che permettono di configurare automaticamenteil driver corretto per la nuova periferica collegata (che deveessere concepita per farsi riconoscere)

Software

Page 33: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Esempio: driver di stampa

Riceve dai processi i file da stampareAccoda i file in una apposita directory (coda) di spoolingInvia uno alla volta alla stampante i file contenuti nellacoda di spoolingPermette di cancellare file non ancora stampatirimuovendoli dalla coda di spooling.

Software

Page 34: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

File System

Scopi:

creare, leggere e scrivere filescollocare un file in uno spazio opportuno del disco(mascherando l’organizzazione fisica del disco in tracce esettori)organizzare gerarchicamente i files

I file sono inclusi all’interno di cartelle (directory) chegeneralmente sono organizzate ad albero (con radice)

Software

Page 35: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Esempio di struttura ad albero (UNIX)

STRUTTURA

TODO

01_sistemi_di_numerazione

02_rappresentazione_dati

content.tex

talk.tex

talk.pdf

content.tex

talk.tex

talk.pdf

Figures

armeno.pdf

ascii.pdf

campionamento.pdf

whales.pdf

SIE

home

/

Teaching

andrea

Lezioni

/home/andrea/Teaching/SIE/Lezioni/02_rappresentazione_dati/talk.pdf

Esempio di pathname:

Software

Page 36: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Funzioni del File System

Creazione di un file o di una directoryElencazione dei files in una directoryCambiamento di directory correnteCopia di files o concatenamentoModifica del nome di un fileRecupero della data di creazione, modifica, accessoProtezione

Software

Page 37: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Protezione nel File System (UNIX)

Si distingue tra:

proprietario del fileutente appartenente allo stesso gruppo del proprietarioaltro utente

Si distinguono i permessi di:

scritturaletturaesecuzione

In totale 9 flags specificano i permessi di un file:

r w x r w x r w x

owner group other

Software

Page 38: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Esempio (UNIX)

[andrea@praha 08_software]$ ls -lhatotal 220Kdrwxr-xr-x 3 andrea ai 4.0K 2007-02-25 17:14 .drwxr-xr-x 12 andrea ai 4.0K 2007-02-25 17:12 ..-rw-r--r-- 1 andrea ai 35K 2007-02-25 17:12 content.texdrwxr-xr-x 2 andrea ai 4.0K 2007-02-25 17:12 Figures-rw-r--r-- 1 andrea ai 161K 2007-02-25 17:14 talk.pdf-rw-r--r-- 1 andrea ai 2.6K 2007-02-25 17:14 talk.tex

Software

Page 39: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Significato dei permessi

Il significato dei permessi differisce se si tratta di file o didirectory

filelettura e possibile leggere il contenuto del file

scrittura e possibile modificare il contenuto del fileesecuzione e possibile eseguire il file (nel caso in cui il file

contenga un programma)

directory

lettura e possibile recuperare l’elenco dei file contenutinella directory

scrittura e possibile creare un nuovo file nella directoryesecuzione e possibile entrare nella directory o attraversarla

per entrare in una sua sottodirectory

Software

Page 40: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Shells

Una shell e un interprete di comandi che serve dainterfaccia tra l’utente ed il SOUNIX: sh, csh, bash, tcsh, etc.DOS: commandWindows: “Prompt dei comandi”Nei sistemi privi di interfaccia utente grafica, dopo l’avvioall’utente si presenta un’interfaccia testuale a riga dicomando (Command Line Interface o CLI) sulla quale epossibile scrivere direttamente i comandi di shell.Nei sistemi con interfaccia utente grafica, e semprepossibile ottenere un’interfaccia a riga di comando nellaquale inserire comandi di shell (il terminale).

Software

Page 41: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Esempi di comandi di shell UNIX(dos/windows)

ls (dir) elenca il contenuto di una directorycd (cd) cambia la directory correntecp (copy) copia un file in un altromv (move) sposta un file in un altrorm (del) cancella un filemkdir (md) crea una directorycat (type) visualizza il contenuto di un file sul terminale

Software

Page 42: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Dispositivi standard di I/O

I programmi scritti per terminali a carattere (compresi icomandi per shell) usano 3 dispositivi standard di I/O:

stdin (input)stdout (output)stderr (error)

Normalmente stdin e collegato alla tastiera, mentrestdout e stderr sono collegati al terminale video acaratteriI dispositivi possono essere “rediretti” su file o in ingressoad altri comandi tramite gli operatori di redirezione >, >>,<, |.

Software

Page 43: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Esempi di redirezione

ls > pippo.txt(sovrascrive pippo.txt)ls >> pippo.txt(appende a pippo.txt)sort < pippo.txt(ordina il contenuto di pippo.txt e manda in stdout)ls mydir | sort(manda in stdout la lista ordinata dei file contenuti inmydir)cat file.txt | sort | uniq > file2.txt(ordina il contenuto di file.txt, ne elimina le righeripetute e scrive il risultato su file2.txt)

Software

Page 44: Calcolatori elettronici: Software di basedisi.unitn.it/~passerini/teaching/2014-2015/informatica/... · 2014-09-10 · Basic Input-Output System (BIOS) Cos’e` Il BIOS e un piccolo

Interfaccia grafica

I moderni SO mettono a disposizione un’interfaccia afinestre per l’interazione con l’utente (Graphical UserInterface o GUI)Le interfacce grafiche si basano su uno stile di interazionedetto WIMP (Window, Icon, Menu, Pointing device)dall’insieme degli elementi tipici di tale interazione.L’interfaccia definisce uno standard per i vari widgets, ossiaelementi di controllo quali menu, bottoni, toolbars,scrollbars, finestre di dialogo, campi di testo, etc.Tali oggetti grafici elementari possono essere utilizzati neiprogrammi applicativi dotati di interfaccia grafica mediantechiamate alle API (Application Programming Interface)

Software