I sistemi operativi Funzioni principali e caratteristiche Funzionamento

  • Slides: 50
Download presentation
I sistemi operativi Funzioni principali e caratteristiche

I sistemi operativi Funzioni principali e caratteristiche

Funzionamento della macchina Una macchina funziona solo se, oltre ad avere le necessarie componenti

Funzionamento della macchina Una macchina funziona solo se, oltre ad avere le necessarie componenti hardware, è dotata di un adeguato software detto ”di base”, tecnicamente chiamato ”sistema operativo” (SO) Il SO è una serie di programmi che permettono di accettare i comandi utente e connettere le periferiche alla macchina

Struttura del’hardware Un sistema è composto da processore, memorie e bus che collegano i

Struttura del’hardware Un sistema è composto da processore, memorie e bus che collegano i vari componenti. La larghezza in bit delle parole contenute nei registri concorre a determinare la potenza del processore

Il processore Un processore è una entità complessa formata da uno o più CORE

Il processore Un processore è una entità complessa formata da uno o più CORE e vari componenti di supporto. Ogni core in un dato momento esegue un processo.

Scelta del sistema Un sistema operativo verrà prodotto in diverse versioni, per vari tipi

Scelta del sistema Un sistema operativo verrà prodotto in diverse versioni, per vari tipi di processore. Per esempio potremo avere versioni a 32 o 64 bit, da usare rispettivamente su processori a 32 o 64 bit. Anche il resto del sistema, bus, memorie, andrà dimensionato di conseguenza. Esistono dei requisiti HW minimi di sistema, senza i quali non può funzionare.

Questo diagramma, detto Onion Skin, raffigura un sistema operativo

Questo diagramma, detto Onion Skin, raffigura un sistema operativo

Macchine virtuali Un sistema operativo può anche girare all’interno di un altro sistema operativo.

Macchine virtuali Un sistema operativo può anche girare all’interno di un altro sistema operativo. In questo caso si parla di macchine virtuali. Una macchina virtuale può essere anche diversa dal sistema su cui gira, per esempio un Windows all’interno di un Linux o viceversa. Una macchina virtuale è più lenta della corrispondente macchina reale.

Macchine virtuali multiutente In un server posso avere anche più macchine virtuali funzionanti in

Macchine virtuali multiutente In un server posso avere anche più macchine virtuali funzionanti in contemporanea. Ogni macchina è indipendente e può essere riavviata a piacimento senza influenzare le altre, usando parte della memoria e del tempo macchina.

Componenti del SO Il SO riceve i comandi tramite una ”interfaccia”, che può essere

Componenti del SO Il SO riceve i comandi tramite una ”interfaccia”, che può essere grafica o a caratteri. Nella modalità grafica i comandi vengono impartiti tramite azioni su icone Nella modalità carattere i comandi vengono scritti tramite parole chiave ed eventualmente parametri, e le risposte sono fornite tramite un testo

Esempio di schermata di interfaccia grafica

Esempio di schermata di interfaccia grafica

Interfacce L’interfaccia più semplice è quella a caratteri, in cui si inseriscono comandi testuali

Interfacce L’interfaccia più semplice è quella a caratteri, in cui si inseriscono comandi testuali su una riga, detta “riga di comando”, all’interno di una finestra terminale; i comandi vanno memorizzati dall’utente L’interfaccia grafica permette di operare con icone e simboli, attraverso uno strumento di puntamento (mouse o altro), effettuando operazioni di evidenziazione, trascinamento e spostamento (drag and drop)

Esempio di finestra terminale aperta nell’interfaccia grafica

Esempio di finestra terminale aperta nell’interfaccia grafica

Interfaccia a caratteri vs grafica Le interfacce grafiche sono più comode e funzionali, ma

Interfaccia a caratteri vs grafica Le interfacce grafiche sono più comode e funzionali, ma più pesanti in termini di risorse di sistema. Sono anche più vulnerabili ad attacchi esterni. Le interfacce a carattere sono più difficili da usare ma più leggere, meno vulnerabili e molto più efficienti nel comandare una macchina a distanza.

Dove troviamo il sistema • Il sistema operativo risiede in una cartella o directory,

Dove troviamo il sistema • Il sistema operativo risiede in una cartella o directory, detta appunto “di sistema”, che per MS Windows normalmente è “C: Windows”, ma potrebbe anche essere un’altra. • Nella cartella principale del sistema troviamo delle sottocartelle anch'esse dedicate a parti del sistema operativo • Normalmente queste cartelle non vanno toccate senza una ragione molto valida

Il kernel • Il kernel, o nucleo del Sistema Operativo, è una parte fondamentale

Il kernel • Il kernel, o nucleo del Sistema Operativo, è una parte fondamentale che, se compromessa, non garantisce più la funzionalità del SO • Tutto quello che sta fuori dal kernel può interrompersi senza compromettere il sistema.

Composizione del kernel Il kernel si compone di: • Gestore processi • Gestore periferiche

Composizione del kernel Il kernel si compone di: • Gestore processi • Gestore periferiche • Gestore memoria • File System Queste componenti dialogano tra loro nella gestione delle operazioni.

File System • Il file system è una parte del kernel che gestisce la

File System • Il file system è una parte del kernel che gestisce la collocazione dei file sulle memorie di massa. • Tiene traccia di molte informazioni come nome, dimensione data di modifica e accesso, e svariate altre. • Tiene traccia della posizione fisica del file • In un FS, la File Allocation Table è un indice dei dati memorizzati, in due copie.

Le librerie Se per ogni software si dovesse scrivere integralmente il codice operativo, lo

Le librerie Se per ogni software si dovesse scrivere integralmente il codice operativo, lo sforzo sarebbe molto maggiore. Di conseguenza si usano delle “cassette degli attrezzi” che contengono pezzi di codice predefiniti ed utilizzabili nei programmi: le cosiddette librerie. Queste librerie sono aggiornate secondo necessità, e vengono condivise dai programmi diversi sulla macchina.

Compatibilità tra librerie Ogni libreria può fare riferimento in cascata ad altre librerie, e

Compatibilità tra librerie Ogni libreria può fare riferimento in cascata ad altre librerie, e si parla di “dipendenza”. In questo caso un errore che si verifica potrebbe essere attribuibile anche a librerie a monte di quella utilizzata. In alcuni casi può non esservi soluzione ad un conflitto di librerie, e quindi due software possono essere incompatibili.

Librerie di sistema e non Le librerie possono essere di sistema o applicative, cioè

Librerie di sistema e non Le librerie possono essere di sistema o applicative, cioè appartenenti ad un programma (software applicativo) specifico. Le librerie di programma, essendo usate solo dal software che le introduce nel sistema, sono meno critiche. Un errore si ripercuote solo su di esso. Se si modificano le librerie di sistema, un loro errore può ripercuotersi su altri programmi. Si parla di”side effect”, o effetto collaterale.

Esempi di importazione di libreria ``` vb Imports System. Data. Ole. Db ``` csharp

Esempi di importazione di libreria ``` vb Imports System. Data. Ole. Db ``` csharp using System. Data; using System. Data. Ole. Db; ``` Qui a lato abbiamo due esempi di importazione di librerie. Infatti, prima di chiamare delle funzioni appartenenti ad una libreria dobbiamo importare la libreria stessa nel programma; il primo esempio è in Visual Basic, il secondo in C#

Chiamata di funzione di libreria Se vogliamo chiamare una funzione di libreria, dobbiamo elencarne

Chiamata di funzione di libreria Se vogliamo chiamare una funzione di libreria, dobbiamo elencarne anche i parametri di ingresso e uscita, come nell’esempio sottostante:

Le Dynamic Link Libraries Le librerie possono essere associate a più programmi CONTEMPORANEAMENTE. In

Le Dynamic Link Libraries Le librerie possono essere associate a più programmi CONTEMPORANEAMENTE. In questo caso diventano a collegamento dinamico (dynamic link), e ne esiste una sola copia caricata in ogni momento. Quando l’ultimo programma che la usa viene terminato, la libreria viene scaricata dalla RAM.

Partizione e formattazione Una partizione è l’uso di un pezzo di memoria di massa

Partizione e formattazione Una partizione è l’uso di un pezzo di memoria di massa codificato attraverso uno specifico File System. La formattazione organizza una partizione logica secondo le specifiche di un file system In una unità fisica possono coesistere due o più partizioni logiche, formattate eventualmente in modo diverso.

Diritti di accesso In un file system ogni file può essere dotato di specifici

Diritti di accesso In un file system ogni file può essere dotato di specifici diritti di accesso. Questi possono non essere uguali per tutti gli utenti. File system più semplici possono non prevedere la gestione degli utenti.

RAID Per Redundant Array of Inexpensive Disk si intende un sistema di uno o

RAID Per Redundant Array of Inexpensive Disk si intende un sistema di uno o più dischi che effettua copie multiple dei dati gestiti. In caso di guasto ad un disco abbiamo le copie sugli altri dischi del sistema.

Il boot manager Su diverse partizioni posso installare diversi sistemi operativi ed eventualmente con

Il boot manager Su diverse partizioni posso installare diversi sistemi operativi ed eventualmente con diversi file system. In ogni momento solo un s. o. sarà in esecuzione; il bootstrap carica il sistema. Per scegliere con quale sistema fare il bootstrap, useremo uno strumento chiamato boot manager, che mi permetterà di scegliere all’avvio della macchina

Sospensione e ibernazione -1 Se non vogliamo spegnere un sistema abbiamo due opzioni: Sospensione,

Sospensione e ibernazione -1 Se non vogliamo spegnere un sistema abbiamo due opzioni: Sospensione, o ibernazione.

Sospensione e ibernazione - 2 Sospensione, in cui la macchina viene messa in uno

Sospensione e ibernazione - 2 Sospensione, in cui la macchina viene messa in uno stato di basso consumo ed i processi sospesi, ma serve una fonte di alimentazione, per esempio la batteria di un portatile. Ibernazione, in cui viene fatta una “foto” del contenuto di processore e RAM (anche memoria virtuale) e salvata su una memoria di massa. A questo punto si può anche togliere l’alimentazione senza danni.

Memoria virtuale e cache La memoria virtuale è un pezzo di unità di memoria

Memoria virtuale e cache La memoria virtuale è un pezzo di unità di memoria di massa, che viene usato come estensione della RAM Per usarla, paghiamo un prezzo in termini di carico di lavoro del sistema; se esagero con il suo uso il sistema tenderà a rallentare o al limite bloccarsi.

Versioni del sistema • Ogni sistema operativo è ormai in realtà una famiglia di

Versioni del sistema • Ogni sistema operativo è ormai in realtà una famiglia di sistemi, e viene aggiornato nel tempo cambiando costantemente • Al 2018, Microsoft Windows è arrivato alla versione 10. La precedente era la 8, ma ne venne rilasciata la versione 8. 2 con modifiche sostanziali; • Comunque di ogni versione esistono varie “edizioni”, come Home Edition, Professional o Premium

Aggiornamenti • Durante la vita di una versione, i produttori permettono di aggiornare il

Aggiornamenti • Durante la vita di una versione, i produttori permettono di aggiornare il sistema in due modi: • Con gli aggiornamenti automatici, in cui attraverso una indispensabile connessione di rete il sistema viene modificato su base pressoché quotidiana • Con gli aggiornamenti cumulativi, o “service pack”, che possono essere scaricati ed applicati in un'unica soluzione

Pro e contro degli aggiornamenti • Con l'aggiornamento automatico la macchina ha tutte le

Pro e contro degli aggiornamenti • Con l'aggiornamento automatico la macchina ha tutte le caratteristiche più recenti del sistema, ma alcuni programmi specifici o periferiche più vecchie possono cessare di funzionare improvvisamente perché il sistema non li riconosce più correttamente • Con il service pack il sistema non è sempre aggiornato e quindi é più vulnerabile, ma è sempre stabile

Sistemi utente e server • Normalmente sulle nostre macchine troviamo sistemi operativi orientati a

Sistemi utente e server • Normalmente sulle nostre macchine troviamo sistemi operativi orientati a gestire il singolo utente, o al più pochi utenti che si danno il cambio; il limite non è la macchina ma il sistema, ma si possono anche fornire limitati servizi ad altri • Esistono anche altri sistemi operativi, come la famiglia MS Windows Server o i vari UNIX e Linux, che invece possono supportare le richieste contemporanee anche di centinaia di utenti

Server • Una macchina server (dall'inglese to serve = servire), fornisce un qualche tipo

Server • Una macchina server (dall'inglese to serve = servire), fornisce un qualche tipo di servizio ad un gruppo di utenti • Esistono server che condividono file in rete (file server), server che gestiscono la stampa di molti utenti su una stampante (print server), server di posta elettronica (mail server), server che gestiscono grandi quantità di dati in modo organizzato (database server)

Client • La macchina che fruisce delle risorse di un server è detta client

Client • La macchina che fruisce delle risorse di un server è detta client (letteralmente cliente) • Le risorse possono essere disponibili in ambiente locale, quindi all'interno di una rete di proprietà privata) • In alternativa abbiamo risorse remote: la rete è pubblica e le risorse di privati, con accesso di norma regolato da contratto, a titolo gratuito od oneroso

Sistemi multitasking • Attualmente le macchine sono in grado senza difficoltà di svolgere più

Sistemi multitasking • Attualmente le macchine sono in grado senza difficoltà di svolgere più compiti (detti task) contemporaneamente, e i sistemi in grado di farlo sono detti multitasking • Alcune macchine sono per necessità o scelta di tipo monocompito (monotasking): ad esempio una lavatrice domestica o un macchinario industriale controllati da processore, o la centralina di iniezione di un'automobile

Multitasking e processi Un sistema multitasking gestisce più processi contemporaneamente La Gestione Risorse (Task

Multitasking e processi Un sistema multitasking gestisce più processi contemporaneamente La Gestione Risorse (Task Manager) di MS Windows visualizza i processi attivi e il loro impatto sul sistema.

Memoria virtuale Quando la memoria fisica è scarsa, si può usare una parte della

Memoria virtuale Quando la memoria fisica è scarsa, si può usare una parte della memoria di massa per emulare la RAM: abbiamo la “memoria virtuale”. La memoria virtuale è più lenta e se usata estensivamente rallenta l’intero sistema. Per ottimizzare la memoria fisica, i programmi non vengono caricati in RAM per intero ma a pezzi, o “pagine”: si chiama paging.

Lo swap La memoria virtuale è utilizzata ampiamente dai sistemi, ma ad un prezzo.

Lo swap La memoria virtuale è utilizzata ampiamente dai sistemi, ma ad un prezzo. Per spostare i processi inattivi in cache, e viceversa rispostarli in RAM quando vengono riattivati, si spende tempo di CPU e occupazione del bus Quindi se si esagera coi processi aperti, il sistema passerà il tempo a spostare i processi invece che a lavorare per l’utente.

Driver • Perché una periferica venga riconosciuta da un sistema operativo serve un pezzo

Driver • Perché una periferica venga riconosciuta da un sistema operativo serve un pezzo di software che la piloti, detto driver (dall'inglese to drive = pilotare) • Questo driver è strettamente legato al sistema operativo, e viene anche aggiornato dal produttore della periferica • Se si cambia sistema quindi si deve cambiare driver; anche un aggiornamento può comportare questa necessità

Codec • Codec è la sigla di Codificatore / Decodificatore • Un Codec è

Codec • Codec è la sigla di Codificatore / Decodificatore • Un Codec è un software che codifica e decodifica un segnale audio o video in formato compresso • Se il codec con cui è stato trattato un file non è presente sulla macchina sulla quale si riproduce il file, questo non verrà decodificato.

Backup • Sulla macchina risiedono i programmi ed i dati; questi ultimi di norma

Backup • Sulla macchina risiedono i programmi ed i dati; questi ultimi di norma sono creati o manutenuti dagli utenti e a differenza dei programmi non sono sostituibili • L'unico modo di preservarli è quello di effettuare dei salvataggi periodici, detti backup • Un backup si può effettuare su un qualunque supporto di memoria di massa

Affidabilità dei backup • I salvataggi effettuati sulle chiavette (o pennette) usb, in realtà

Affidabilità dei backup • I salvataggi effettuati sulle chiavette (o pennette) usb, in realtà delle memorie flash riscrivibili, sono utili ma non affidabili in modo assoluto, perchè una chiavetta si può bruciare o corrompere, o essere attaccata da un virus. • Lo stesso problema si ha per un salvataggio su hard disk • Le migliori garanzie nel tempo le danno i CD e i DVD non riscrivibili

Lista di sicurezza • Ogni utente dovrebbe avere una lista dei programmi installati sul

Lista di sicurezza • Ogni utente dovrebbe avere una lista dei programmi installati sul proprio computer, ed i relativi dischi di installazione • Ogni utente dovrebbe sapere in quali cartelle sono concentrati i propri dati • Altra cosa importante è scrivere le password di accesso ai servizi locali e di rete e conservarle in posti sicuri e riservati

Antivirus • Una macchina può danneggiarsi per cause “naturali” o essere attaccata da programmi

Antivirus • Una macchina può danneggiarsi per cause “naturali” o essere attaccata da programmi malevoli, detti virus • In ogni caso, spesso è proprio l'utente con la sua incuria a dare via libera al virus • Un antivirus è inefficace se non aggiornato, esattamente come un sistema operativo • Non esiste antivirus capace di difendere una macchina da un utente incapace

Gestione utenti • Un sistema operativo multiutente permette di gestire l’accesso, anche contemporaneo di

Gestione utenti • Un sistema operativo multiutente permette di gestire l’accesso, anche contemporaneo di più utenti. • Di norma uno di questi è il sistema stesso. • Gli utenti hanno specifici privilegi sui file e sulle periferiche, quindi possono stabilire chi legge, scrive o esegue un file, o chi usa una stampante o un disco. • Gli utenti sono proprietari dei processi.

Gestore processi in Windows 7

Gestore processi in Windows 7

Diritti di accesso ai file • Un file ha diritti di accesso in lettura,

Diritti di accesso ai file • Un file ha diritti di accesso in lettura, scrittura ed esecuzione. • Il comando UNIX per stabilire questi diritti è chmod [diritti] [file] • Esistono utilità grafiche per modificare questi diritti in Wondows e UNIX/LINUX

Esempio di chmod in terminale UNIX

Esempio di chmod in terminale UNIX