





















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
Un ripasso sui componenti hardware di un calcolatore, con particolare attenzione all'architettura di Von Neumann e alle periferiche di input/output. Inoltre, vengono introdotti i concetti di firmware, BIOS e caricamento del sistema operativo, per poi passare alla descrizione delle funzioni di un sistema operativo e alla sua classificazione in base al numero di utenti e al tipo di lavoro svolto.
Tipologia: Dispense
1 / 29
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!






















La ALU legge i valori presenti in alcuni registri esegue le operazioni e memorizza il risultato in un altro registro.
È uno strumento programmabile per rappresentare, memorizzare ed elaborare informazioni. È un sistema costituito da molte componenti. Studiare l’architettura di un sistema significa: Individuare ciascun componente, comprendere i principi generali di funzionamento e le loro interazioni. Due macrocomponenti: -> Hardware -> Software (di base e applicativo)
La macchina di Von Neumann progettata nel 1945 è il primo calcolatore con programmi memorizzabili anziché codificati mediante cavi e interruttori. Vi sono 4 tipi di componenti funzionali:
L’unità centrale di elaborazione esegue istruzioni per l’elaborazione dei dati,svolge anche funzioni di controllo. Presiede all’esecuzione di un programma il quale è memorizzato in memoria centrale come sequenza di istruzioni del linguaggio macchina.
RICHIESTE.
0. Architettura di un calcolatore
Fornisce due sole operazioni Memorizzazione di un valore in una cella (scrittura) Accesso al valore memorizzato in una cella (lettura)
È l’unità responsabile della memoria, che memorizza
I dati, che rappresentano informazioni di interesse.
I programmi per l’elaborazione dati
Una unità di memoria è organizzata in celle
Possono essere accedute sia in lettura che in scrittura
Sono volatili
o I DATI MEMORIZZATI VENGONO PERSI ALLO SPEGNIMENTO DEL CALCOLATORE
Sono persistenti o MANTENGONO IL CONTENUTO ANCHE SENZA ALIMENTAZIONE
Permettono solo la lettura dei dati (o programmi) o MEMORIZZANO ALCUNI PROGRAMMI DI SISTEMA (FIRMWARE)
Evoluzioni delle memorie ROM:
-> PROM (scritte una sola volta)
-> EPROM (scritte più volte)
Memoria “intermedia” fra registri e RAM LA RAM HA TEMPI DI ACCESSO MOLTO ALTI RISPETTO ALLA VELOCITÀ DEI MICROPROCESSORI E NE RITARDA L’ELABORAZIONE.
Memorizza il contenuto di celle della RAM che potrebbero essere acceduti nuovamente dalla CPU SFRUTTA LA LOCALITÀ DEI PROGRAMMI (90%-10%)
Strategia di utilizzo: LA PRIMA VOLTA CHE LA CPU CARICA DATI DALLA MEMORI CENTRALE, QUESTI SONO CARICATI ANCHE SULLA CACHE LE VOLTE SUCCESSIVE, I DATI POSSONO ESSERE LETTI DALLA cache invece che dalla memoria centrale (più lenta)
TIPI DI MEMORIA CACHE: ->CACHE DI I° LIVELLO: CONTENUTA NEL MICROPROCESSORE ->CACHE DI II° LIVELLO: AGGIUNGIBILE SUCCESSIVAMENTE
CPU, MEMORIA ED INTERFACCE A PERIFERICHE
UNA TRASMETTE E L’ALTRA RICEVE
LA CPU (MASTER) SELEZIONA LA CONNESSIONE DA ATTIVARE E ORDINA IL TRASFERIMENTO DEI DATI
È un programma integrato direttamente in un componente elettronico.
All’avvio del computer, il BIOS (Basic Input-Output System) esegue una serie di test diagnostici per controllare lo stato di funzionamento dell'hardware e segnalare eventuali guasti rilevati tramite un codice sonoro (beep code);
Il programma di bootstrap scritto dal produttore della ROM è quel software che carica il sistema operativo una volta terminato il test dell’hardware.
un insieme di programmi che gestiscono le risorse hardware e software del sistema di elaborazione, ne semplificano l’utilizzo e lo ottimizzano. Senza il sistema operativo l’utente non sarebbe ingrado di comunicare con l’hardware della macchina.
Su una macchina possiamo installare diversi sistemi operativi.
E’ possibile installare sistemi operativi diversi sulla stessa macchina suddividendo il disco in due
partizioni e facendo scegliere all’utente, alla fine del programma di boot, con un menu, quale dei due
sistemi deve essere caricato. Per esempio possiamo installare un sistema operativo con licenza di utilizzo a pagamento come Windows oppure un sistema libero come Linux.
I programmi applicativi ogni volta che intendono comunicare con l’hardware devono «passare attraverso il
kernel» utilizzando le primitive di sistema costituenti il kernel.
L’interfaccia utente può:
- CUI (Command User Interface) LINEA DI COMANDO - GUI (Graphical User Interface).FRIENDLY USER
Gestione dei lavori:
**1. Monoprogrammati
Negli anni ‘70 sono nati i sistemi operativi desktop (Windows, Macintosh, Linux...).
Con la nascita del collegamento in rete, questi sistemi si sono evoluti comprendendo funzioni di
protezione dei file e della memoria da attacchi esterni.
Numero degli utenti:
1. Monoutente ->
Se possono essere usati da un solo utente alla volta.
2. Multiutente -> Se possono essere usati da più utenti alla volta. Ci sono diversi terminali collegati a una memoria
Tipo di lavoro svolto:
Nessuna di queste è esclusiva (Es: un sistema operativo può essere dedicato e interattivo insieme)
1. Dedicati -> Quando nascono per uno specifico compito. 2. General Pourpose ->
Q uando sono in grado di svolgere compiti differenti.
3. Batch (o a lotti) ->
Q uando l’utente non può interagire con la macchina durante l’esecuzione del programma.
4. Interattivi ->
Quando l’utente può interagire con la macchina durante l’esecuzione del programma.
5. Real Time ->
Quando deve fornire elaborazioni corrette in tempi esatti. Se il risultato arriva in ritardo è considerato inutilizzabile e quindi errato. Si impiegano nelle applicazioni scientifiche o di controllo industriale, nella multimedialità e nella realtà virtuale e presentano limiti di tempo ben definiti.
2 tipologie:
1. Hard Real Time: i compiti critici vengono completati in tempo. 2. Soft Real Time: i compiti critici hanno priorità sugli altri. 6. Transazionali ->
Un sistema è detto Transazionali quando le elaborazioni devono necessariamente arrivare al termine oppure fallire.
Un lavoro non può essere svolto a metà, o viene concluso oppure viene rifiutato.
Questi sistemi sono tipici per le operazioni di aggiornamento di basi di dati e di natura gestionale.
(ES: il prelievo Bancomat o fallisce o deve essere concluso non può essere svolto a metà).
Struttura a microkernel
Questa tecnica prevede di rimuovere dal nucleo tutti i componenti non essenziali, realizzandoli come
servizi esterni nello spazio utente. Nel microkernel vengono lasciate solamente le funzioni di gestione dei processi (programmi in esecuzione), d ella memoria e della comunicazione. I vantaggi sono:
I moderni sistemi operativi hanno una struttura mista tra quella a strati con quella
microkernel.
Per progettare un sistema operativo occorre:
I primi sistemi operativi erano scritti in linguaggio assemblativo. Oggi i moderni sistemi sono scritti in
linguaggi come C e C++.
-> Ciclo di vita di un processo
Il programma è una entità passiva formata da istruzioni (cicli, salti...) salvate nelle memorie. Quando un programma va in esecuzione diventa un processo.
Un processo è una entità attiva che evolve nel tempo, è formato da azioni da eseguire in sequenza e dai dati che vengono elaborati dalle azioni stesse.
L’oggetto che causa l’evoluzione del processo è detto processore (CPU).
Ad ogni processo è associato un descrittore di processo. Quando la CPU deve essere liberata, il descrittore viene aggiornato con tutti i dati relativi alla sua esecuzione come:
Il nucleo o kernel è la parte del sistema operativo più vicina all’hardware della macchina ed è strettamente dipendente dall’hardware. Le funzioni fondamentali del nucleo sono:
Creazione di un processo: Un processo può crearne altri. Il processo creante si chiama processo genitore mentre il nuovo processo si chiama processo figlio
Terminazione di un processo: Un processo termina quando:
5.
La più semplice politica di scheduling è la politica del torneo (Round
Robin) che prevede una coda circolare di processi pronti (Ready) e una
coda di processi in attesa (Waiting).
Tutti i processi sono ugualmente importanti e ciascuno ha un quantum di
tempo per utilizzare la CPU. Il processo nuovo che arriva finisce in fondo alla
coda di Ready mentre il processo che va in
esecuzione viene preso dalla testa della coda
(politica FIFO).
Quando ad un processo viene tolto l’uso della CPU può finire nella coda di Waiting oppure in
fondo alla coda di Ready e la CPU viene
assegnata al primo processo presente nella coda
di Ready.
Si può decidere di organizzare la coda dei processi pronti (Ready) con delle code di priorità.
(es: tempo che gli rimane per terminare la sua esecuzione).
Lo scheduler (che è anch’esso un processo però con priorità massima) sceglierà il processo da mandare in
esecuzione partendo dalla coda con la priorità più alta. Se quella coda è vuota passerà alla coda successiva e così via fino a
raggiungere quella con priorità più bassa.
E’ una variante dell’algoritmo di scheduling a code multiple ma
che tiene conto della storia passata dei processi per adeguare la priorità e il time slice.
Se un processo usa troppo tempo della CPU viene spostato in una coda a priorità più bassa e viceversa se
un processo attende troppo a lungo viene spostato in una coda con priorità più alta.
In alcuni casi i processi hanno bisogno di comunicare per cooperare.
Il S.O. mette a disposizione due modi complementari di comunicare:
Due processi possono entrare in concorrenza tra loro se richiedono la medesima risorsa oppure se uno ha bisogno dei risultati prodotti dall’altro per proseguire la sua esecuzione.
In questi casi si parla di elaborazione concorrente di processi e il sistema operativo deve prevedere dei
meccanismi di sincronizzazione dei processi.
Le parti di processo che possono generare conflitti con altri processi vengono dette regioni critiche.
Svantaggi: Questa politica è sensibile al variare del time slice che non deve essere ne troppo lungo ne troppo corto. Se è corto ci sono troppi context switch , se è troppo lungo diventa un FCFS. Può succedere che un processo breve sia in esecuzione e scada il suo time slice. Anche se gli mancava meno tempo degli altri per
Bisogna garantire:
Le soluzioni possibili che garantiscono la sincronizzazione
Le soluzioni possibili con costrutti di livello più alto (garantiscono la sincronizzazione senza errori dovuti all’abilitazione e disabilitazione delle interruzioni)
La realizzazione di un semaforo con coda d’attesa può condurre a situazioni in cui ciascun processo di un insieme di processi attende indefinitamente un evento.
Un insieme di processi è in stallo (o Deadlock ) se ciascun processo attende un evento che può essere causato solamente da un altro processo dell’insieme.
metodi per la gestione delle situazioni di stallo possono essere i seguenti:
La Starvation (Morte per fame) è la situazione in cui un processo pronto in attesa della CPU non va mai in esecuzione. ES: Un flusso costante di processi con priorità maggiore potrebbe causare questa situazione. ! Le conseguenze sono che il sistema si sovraccarica al punto da perdere tutti i processi non terminati.!
L’Aging è una soluzione al problema della starvation. Si potrebbe pensare di aumentare la priorità dei processi che restano più tempo nella coda di Ready.