Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli

Sistemi Operativi, Slide di Fondamenti di informatica

Una panoramica sui sistemi operativi, descrivendone le funzioni essenziali e la struttura complessa. Vengono inoltre spiegati i concetti di mono/multitasking, mono/multiutente, memoria protetta, mono/multiprogrammazione e viene introdotto il concetto di file system. Viene anche fornita una descrizione delle differenze tra i file system FAT32, NTFS ed exFAT.

Tipologia: Slide

2021/2022

In vendita dal 12/09/2022

noemialderisi
noemialderisi 🇮🇹

6 documenti

Anteprima parziale del testo

Scarica Sistemi Operativi e più Slide in PDF di Fondamenti di informatica solo su Docsity! Informatica (lezione 4) Sistemi Operativi • Ms-Dos • Windows (98/Me/2k/Xp/2k3/Vista/7) • Linux/Unix • Mac-OS Un sistema operativo (S.O.) è un insieme di programmi che devono svolgere funzioni essenziali per l’uso di un sistema di elaborazione rendendo trasparenti all’utente le risorse Hardware. si occupa di gestire: • l’unità centrale • la distribuzione della memoria fra più programmi • le unità di input/output • le operazioni di lettura e scrittura sulle memorie di massa (gestione dei file) • Iterazione con l’utente I sistemi operativi hanno una struttura complessa, che può essere descritta come una gerarchia di macchine virtuali – Ciascun livello della gerarchia è relativo a una macchina virtuale del sistema operativo che gestisce una diversa tipologia di risorse – le risorse gestite sono i processori, la memoria, le periferiche, le memorie secondarie, l’interfaccia utente L’utente del calcolatore interagisce solo con l’interprete comandi del sistema operativo Caratteristiche S.O • Mono/multitasking esecuzione di un solo/più programma/i per volta • Time sharing tecnica di ripartizione del tempo d'utilizzo della CPU tra tutti i processi in esecuzione • Processo = qualsiasi programma in esecuzione gestito dal SO ogni processo ha un quanto di tempo (qualche millisecondo) della CPU ciascun processo/programma/utente ha l'illusione di disporre singolarmente della CPU • Mono/multiutente una/diverse persona/e possono collegarsi al sistema e gestire le proprie attività(contemporaneamente) • Memoria protetta ogni processo in corso utilizza una determinata area di memoria per il proprio funzionamento sicurezza di sistema garantendo la sua integrità nonostante il blocco di un processo. Mono programmazione Nella uni programmazione (ormai in disuso) il processore attende la fine delle operazioni di I/O per riprendere l’esecuzione dell’unico processo. Il programma viene lanciato, eseguito e terminato La CPU non è utilizzata al meglio. La CPU è molto più veloce delle periferiche (dispositivi di I/O e disco) quindi passa molto del suo tempo in attesa del completamento delle operazioni da parte di questi dispositivi. Durante queste fasi di attesa si dice che la CPU è idle. Esempio Mono Programmazione Un processo è costituito da 1000 istruzioni, la CPU ha frequenza di 1MHz, quindi il processo richiede: 103/106 sec = 1msec A metà esecuzione è richiesta la lettura di un dato dal disco. Il tempo di lettura è pari a 1msec.: tempo totale di esecuzione del processo = 2 msec. Idle time = 1 msec.: Il 50% del tempo totale di esecuzione è tempo sprecato. Multiprogrammazione Quando un processo si ferma in attesa di operazioni di I/O, la CPU passa ad eseguire un altro processo Il SO si occupa dell’alternanza tra i vari processi. Più programmi sembrano così essere eseguiti contemporaneamente, In realtà in ogni istante c’è sempre un solo processo in esecuzione, ma se l’alternanza è molto frequente si ha un’impressione di simultaneità, Il numero di processi “contemporaneamente” in esecuzione è comunque limitato ed è detto “grado di multiprogrammazione”. Nella multiprogrammazione o multitasking il processore salta da un processo all’altro. Kernel è responsabile della gestione del processore generalmente sotto il kernel esiste fisicamente un solo processore quindi il calcolatore potrebbe svolgere un solo programma alla volta (uni programmazione) il Kernel ha il compito di ripartire il tempo di calcolo del processore ai programmi in esecuzione, realizzando la multiprogrammazione, Ciascun programma ha l’impressione di essere l’unico programma eseguito dal calcolatore Il Kernel gestisce anche l’eventuale presenza di più processori. Scheduler Uno scheduler: che scandisce il tempo di esecuzione dei vari processi e assicura che ciascuno di essi venga eseguito per il tempo richiesto. Normalmente lo scheduler gestisce anche lo stato dei processi e può sospenderne l'esecuzione nel caso questi siano in attesa senza fare nulla (esempio classico è la richiesta di dati da disco). Nei sistemi operativi realtime lo scheduler si occupa anche di garantire una timeline, cioè un tempo massimo di completamento per ciascun task in esecuzione. Gestore della memoria I programmi per poter essere eseguiti devono essere caricati (almeno in parte) in RAM assieme ai loro dati. – caricatore o loader programma del kernel che carica i programmi. suddivide la RAM per assegnarne delle porzioni a ciascun programma in esecuzione. Memoria Virtuale Un sistema di memoria virtuale: che alloca la memoria richiesta dai programmi e dal sistema operativo stesso, salva sulla memoria di massa le zone di memoria temporaneamente non usate dai programmi. File System Il gestore di file system: si occupa di esaudire le richieste di accesso alle memorie di massa. Viene utilizzato ogni volta che si accede a un file su disco, e oltre a fornire i dati richiesti tiene traccia dei file aperti e dei permessi di accesso ai file. Compiti: – fornire programmi per accedere e gestire i file – rendere trasparente (nascondere) la struttura fisica della memoria di massa – ottimizzare l’occupazione della memoria di massa Il file system serve a stabilire in che modo i file vengono salvati e catalogati all’interno di un qualsiasi supporto di memorizzazione come: disco fisso, unità SDD, unità flash ecc. Per prima cosa bisogna sapere che ogni unità contiene una o più partizioni di memoria, nel secondo caso è possibile formattare ogni partizione di memoria con un file system differente. Il file system organizza la conservazione delle informazioni relative ad ogni file: nomi, permessi e tutti gli altri attributi. Tramite la creazione di un indice il file system è inoltre in grado di indicare al sistema operativo dove è memorizzato un file in modo che non sia obbligatorio effettuando una ricerca sull’intero disco. FAT 32 - NTFS - exFAT: differenze Il file system FAT32 è il più datato ed a questo è dovuta una delle sue principali limitazioni, l’impossibilità cioè di gestire file di dimensioni maggiori di 4 Gb. Anche le dimensioni delle partizioni di default erano limitate a 32 Gb (da cui il nome) ma ad oggi è possibile, utilizzando utilità esterne, arrivare al limite di 8 TB. FAT32 può essere ancor'oggi la scelta giusta per formattare un'unità USB che deve essere leggibile da quanti più dispositivi possibile (è compatibile con tutti i device, con tutte le varie versioni di Windows, Mac OS X e Linux ed in generale con qualunque dispositivo sia dotato di una porta USB) a patto ovviamente di non avere file di dimensioni superiori ai 4 GB da memorizzarvi. Il file system NTFS è la scelta giusta per formattare hard disk interni ed esterni. Le "asticelle" poste da NTFS sono talmente elevate, che il file system non crea problemi per la memorizzazione di nessun genere di file. Rispetto ai precedenti file system Microsoft, infatti, NTFS può memorizzare file di dimensioni fino a 16 TB e può supportare partizioni fino a 256 TB di dimensione. NTFS integra l'utilizzo di un journal ossia di un meccanismo che tiene traccia delle modifiche apportate al file system. Se un'operazione venisse interrotta a metà (ad esempio in seguito alla mancanza di energia elettrica), NTFS perde solo tale operazione evitando però che venga compromessa l'integrità del file system. Il file system, poi, consente l'assegnazione di permessi a file e directory, supporta la crittografia, permette l'uso dei nomi lunghi per i file (fino a 255 con la possibilità di caratteri Unicode, utili per rappresentare i caratteri usati in qualunque lingua al mondo) e dei cosiddetti hard links (associazione del nome di un file al suo contenuto). NTFS non è compatibile con tutti i sistemi operativi. Di default, ad esempio, Mac OS X può leggere da unità NTFS ma non scrivervi mentre molte distribuzioni Linux consentono oggi l'accesso anche in scrittura. Il file system exFAT è stato introdotto nel 2006 ed il suo supporto è stato introdotto anche nelle versioni più vecchie di Windows, exFAT è stato espressamente progettato per le unità flash come sostituto di FAT32. Esso, infatti, si conferma una file sytem leggero come FAT32, senza però le limitazioni di quest'ultimo e senza le caratteristiche "extra" che contraddistinguono NTFS. Conosciuto anche con l'appellativo di FAT64, exFAT consente la memorizzazione di file di dimensioni superiori a 4 GB (il limite teorico passa a 16 exabyte ossia 264 bytes). File System ReFS Il file system ReFS (Resilient File System) è il file system più recente di Microsoft, progettato per ottimizzare la disponibilità dei dati, gestire in modo efficiente la scalabilità per grandi quantità di dati e per garantire l’integrità dei dati per mezzo della cosiddetta resilienza alla corruzione dei file. ReFS è stato pensato per far fronte ai nuovi scenari di grande crescita dei dati e come base per le future innovazioni. ReFS utilizza cioè una struttura gerarchica a tabelle simile ai database relazionali. I riferimenti alle directory sono stivati in una tabella principale, detta Object Table. Per le directories vengono conservate singole tabelle contenenti i riferimenti ai singoli file; ciascun file viene poi posto in associazione con una tabella che ospita le informazioni addizionali (metadati). File ReFS integra anche le cosiddette funzionalità di resilienza: non c'è quindi più bisogno di usare utilità per il controllo della presenza di errori (ad esempio CHKDSK). Il file system, in caso di copie di file danneggiate, penserà automaticamente a ripristinarne la versione corretta. Ogni qualvolta un file viene letto e scritto, ReFS ne controlla il