






Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Si tratta di vere e proprie dispense da me create e con cui sono riuscita a superare l'esame a pieni voti. Le ho create unendo sbobinatura della lezione, libri appositi ed appunti supplementari. vi sono sia pdf inerenti alle generalità e caratteristiche basali di tutto ciò che concerne l'Informatica sia pdf equivalenti alla spiegazione dettagliata delle principali strutture e componenti di un qualsiasi calcolatore (nonché curiosità). Vi assicuro che basterà studiare solamente da questi 8 pdf per avere una preparazione completa e precisa di Informatica.
Tipologia: Sbobinature
1 / 12
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!







“Ha lo scopo di rendere utilizzabile l’architettura di elaborazione e sono a corredo dell’Hardware”. Spesso comprendono dei programmi di utilità, che mirano a semplificare l’interazione dell’utente con il sistema (= “SISTEMA OPERATIVO”).
“Infrastruttura software, che si pone come interfaccia fra Infrastruttura Hardware e l’utente o il software applicativo, e che serve a facilitare l’utilizzo e gestione delle varie risorse”. La sua funzione principale è quella di fornire dei servizi ai programmi applicativi ed agli utenti, rendendo le risorse fisiche presenti nel sistema informatico. Inoltre il SO è caratterizzato da:
Si occupa della rilevazione e, se possibile, soluzione degli eventuali malfunzionamenti provocati da guasti hardware o da operazioni scorrette compiute dal software applicativo. Quindi raccoglie messaggi di malfunzionamento anche da parte delle periferiche. Il sistema operativo offre pertanto offre 2 visioni:
Un sistema così concepito richiedeva un meccanismo (a quel tempo manuale) di prenotazione della macchina, al fine di determinare un ordine di caricamento ed esecuzione. La macchina consentiva dunque l’esecuzione di un solo programma alla volta. Con l’evoluzione questo schema di elaborazione seriale dei programmi venne migliorata con l’introduzione dei SISTEMI OPERATIVI A LOTTI (BATCH ) = Essi sono basati “sull’impiego di un componente software (“Monitor”), in grado di automatizzare l’avviamento e l’esecuzione di programmi, eliminando così i tempi morti e sgravando gli utenti da interventi manuali di gestione”. Tale monitor prevedeva il linguaggio JCL (“Job Control Language”). Nei sistemi operativi Batch le operazioni di ingresso ed uscita vengono eseguite tramite file ed ottimizzano con un’accurata distribuzione del tempo di calcolo i vari programmi da eseguire. Nonostante però tali forme di sistemi, è ancora necessario che il SO disponga di:
È importante specificare la differenza tra PROCESSO e PROGRAMMA =
Ogni processo nella loro gestione generale, può trovarsi in:
Il processo non si rende conto delle interruzioni. Il NUCLEO maschera al processo come effettivamente la sua elaborazione evolve nel tempo e rende trasparente la presenza delle operazioni di interruzione e riassegnamento del processore. Per quanto concerne il CONTESTO DI UN PROCESSO = L’insieme dei dati che rappresentano lo stato del processo sono: situazione della memoria, contenuto dei registri e livello di priorità. Si parlerà di DESCRITTORE DEL PROCESSO = “Struttura dati che contiene le informazioni usate per il salvataggio ed il ripristino del contesto”.
I processi possono essere eseguiti in modalità KERNEL, riserva ai servizi forniti dal SO, o USER (programmi applicativi) e non basta più un solo stato di esecuzione, ma è necessario distinguere le due situazioni. Dunque vi saranno 2 nuovi stati: esecuzione User ed esecuzione Kernel.
1. ESECUZIONE USER ESECUZIONE KERNEL Richiesta di servizi al SO da parte del processo utente, detta chiamata di sistema (“SVC”). Evento esterno segnalato da una periferica (Interrupt) 2. ESECUZIONE KERNEL ESECUZIONE USER Termine gestione Interrupt (“Return From Interrupt” = RTI) ES : P1 in esecuzione (USER) = Esegue una serie di istruzioni, richiede un servizio di I/O e lettura di un carattere da tastiera SO in esecuzione (KERNEL) = Decide di sospendere P1 finchè non termina l’operazione I/O richiesta, lo salva nel descrittore di P1 e lo sposta in attesa di “carattere da tastiera”. Sceglie P2 tra i processi pronti per mandarlo in esecuzione, ripristinando il suo contesto, e leggendo i dati dal descrittore dello stesso. Manda allora in esecuzione P2 restituendogli il controllo (RTI). P2 in esecuzione (USER) = Esegue una serie di istruzioni, ma poi arriva un Interrupt da tastiera (evento esterno) ed il controllo passa al SO (Interrupt)
I vantaggi dell’esecuzione concorrenti di più processi sono =
Vi sarà inoltre il MICROKERNEL = Si tratta di una struttura moderna in cui si assegnano al kernel poche funzioni essenziali, quali:
Uno stesso sistema operativo può avere anche organizzazione IBRIDA = Secondo la tecnica “MULTITHREADING”, i processi (“THREAD”) sono suddivisi in gruppi, ognuno dei quali consente solo a priori componenti la condivisione dei dati, mentre l’interazione con Thread di altri gruppi può avvenire solo mediante lo scambio di messaggi. Si tratta dunque di organizzazione ibrida in cui coesistono paradigmi di interazione basati su dati condivisi (come nel modello a strati) con altri che impiegano la comunicazione di messaggi (come nel modello client-server). In questo modo si semplificano e si rendono più efficienti l’interazione ed il cambio di contesto fra i processi appartenenti allo stesso gruppo di thread, aumentando lo sfruttamento complessivo della CPU ed incrementando il grado di concorrenza tra processi del sistema. L’uso dei Thread consente quindi la riduzione del sovraccarico legato al cambiamento di contesto. È utile per quelle applicazioni che svolgono compiti ragionevolmente indipendenti, che non necessitano pertanto di essere serializzati.
Vi furono 2 metodi di miglioramento della memoria e del suo sfruttamento:
1. SWAPPING Il SO ha la possibilità di trasferire il contenuto di un’area della memoria centrale nella cosiddetta AREA DI SWAP (= Area della memoria di massa), al fine di liberare spazio per i processi rimasti. [Per intendere è tipo la memoria di 2° livello]. Tale tecnica è appunto chiamata “SWAPPING” e viene applicata trasferendo su disco i dati relativi ai processi in stato di Attesa o di Pronto per l’esecuzione. In tal maniera vengono messi in esecuzione solo i processi ancora in memoria centrale. 2. MEMORIA PAGINATA La gestione della memoria avviene in generale in modo PAGINATO = “Blocchi multipli di byte utili per dividere la memoria fisica”. La paginazione consente in sè di estendere la dimensione di un processo, utilizzando delle zone di memoria non per forza contigue, e tenere in memoria solo la porzione ridotta del programma che si sta utilizzando. Ciò consiste nella suddivisione di programmi e memoria rispettivamente: - PAGINE LOGICHE (= Programmi divisi in sezioni di dimensioni fisse e uguali fra loro) - PAGINE FISICHE (= Memoria fisica divisa in sezioni con stessa dimensione delle logiche) Così è possibile mantenere in memoria solo la porzione del programma che si sta usando. In generale la paginazione si basa sul principio di “località spazio-temporale” = Non vale la pena di caricare in RAM tutto il codice, poichè l’esecuzione in un dato istante di tempo si limita ad una sezione limitata del codice stesso, che spesso viene riseguita. Vi è dunque il principio approssimativo del 10-90 (= 10% del codice richiede circa il 90% dell’intera elaborazione).
La memorizzazione in pagine fisiche delle pagine logiche permette di caricare i programmi in memoria centrale anche se non esiste un’area contigua sufficientemente ampia per contenerli, purchè sia globalmente disponibile una quantità di memoria sufficiente. La gestione della memoria in modo paginato vede la necessità che sia presente un dispositivo aggiuntivo, ovvero il MMU (“Memory Management Unit”) = Essa è in grado di convertire gli indirizzi logici cui fa riferimento il programma nei corrispondenti indirizzi fisici. Per fare ciò, la MMU si avvale di una “tabella delle pagine”, che mantiene la relazione tra ogni pagine logia ed indirizzo fisico. Ogni volta che si cerca di accedere ad un indirizzo relativo ad una pagina NON in memoria (“PAGE FAULT”), il sistema operativo, grazie all’intervento della MMU, provvede a liberare dello spazio in memoria, scaricando delle pagine sul disco e caricando quella richiesta. Si può ormai parlare di SEGMENTAZIONE DELLA MEMORIA = “Suddivisione della memoria in base alla tipologia d’informazione contenuta”. Uno dei vantaggi è la possibilità di fare condividere lo stesso codice a più processi, lasciando che agiscano su dati differenti. Si può allora organizzare la memoria associata al processo in modo da rendere possibile la gestione condivisa di alcune sue arti, così che la struttura non è più monolitica, ma suddivisa in vari segmenti (come in codici e dati). Con tale organizzazione il sistema operativo può consentire a più processi di condividere lo stesso segmento di codice e nel contempo operare su dati differenti.
È possibile fare una distinzione tra 2 figure, qui importanti: