Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
8 8 22
SO Ⓒ Ⓒ 13-3-22
Evoluzione dei sistemi operativi
Sistemi di elaborazione dati
Si distinguono livelli SW/HW che a loro volta possono essere divisi.
Dispositivi fisici: salvano informazioni controllati dalla macchine (non accessibili direttamente dall'utente).
Software dell'ambiente:
Software di base programma: applicativi = SW
=> programma eseguibile (transversal, dollar, transaz, SO e ordini, comandi)
SO: mette a disposizione risorse della macchina e interfaccia fra applicativi e hardware.
Cose importanti per sistemi e l'utente
Di solito si lavora più di uno sull CPU. Casi e prestazioni migliorati, in passato si preferiva avere più memoria in un singolo CPU, ma con problemi di efficienza.
- Calcolare memoria temporale e nel tempo (ottimizzare)
- Ed anche a vari dischi, vedope, e variati alla CPU e può essere gestiti solo dal SO (o dall'hardware). Ci sono diversi livelli con modalità diverse.
- Icon:
- Terminali: permettono all'utente di interagire con il sistema operativo.
Nei nuovi sistemi multitasking ci sono più usi.
- Dischi/memoria a lungo termine
- Interfacce e rete (wirelessla(line)
- Input/output tastiera
- Input/output multimedia
Dispositivi di interfaccia con altri sistemi:
- Software deve gestire tutte le parti del sistema e deve fornire un ...
... interfaccia grafica ben distanti integrato da non programmarsatore
ora noti in particolari abbianze in fine di finzione
Software
- Programmi di sistema (o di base)
- Programmi applicativi:
Programmi di base rendono più facile l’utilizzo. Una sua parte è il SO.
SO USA interfaccia tra HW e utente:
- Supporta I/O
- Interrompe SO
- HW diverso, stesso SO
Classificazione dei SO
Ordine cronologico
- Decimali
- A lotti (batch)
- Multiprogrammazione
Prima generazione (1945-1955)
Erano basati sulle valvole (simili a transistor ma grosse e consume come lampadine), che si rompevano frequentemente.
Gestiti e progettati a livello universitario.
Non vi era SO, gli utenti interagivano con HW. Dati introdotti direttamente nella macchina.
Usati per calcolo numerico, programmi scritti in linguaggio macchina. Diversi i secondi I/O (lettura).
Semplificazioni concettuali: integrità delle valvole, negli ultimi anni, schede perforate.
Seconda generazione (1955-1965)
SO a lotti (esecuzione a lotti). Viene introdotto il transistor (dimensioni ridotte, meno manutenzione necessaria). Calcolatori venduti in decenni (milioni di $).
Programmi = job
Nascono linguaggi di programmazione (Fortran, Assembly)
Programmazione non più a contatto con la macchina.
schede umastro → elaborazione → nastro → stampa risultato (Basis software) (3 machine humans)
Struttura dei sistemi operativi
- Gestione dei processi
Processo: programmazione, esecuzione
- SO si occupa di creare, controllare processi, sospendere e ripristinare processi, e mette a disposizione meccanismi per sincronizzarli e metterli in comunicazione.
Gestione memoria centrale
Il SO gestisce la memoria centrale che è condivisa da CPU e dispositivi I/O. La memoria centrale è la memoria che la CPU può indirizzare direttamente. Le istruzioni possono essere eseguite (↔) solo se si trovano effettivamente in memoria. Per migliorare utilizzo della CPU occorre poter gestire più programmi in memoria.
Gestione memoria secondaria
- Il SO gestisce lo spazio libero e alloca lo spazio. L'accesso al disco è molto lento rispetto ai tempi di esecuzione dei programmi, quindi la gestione deve essere efficiente dato che il suo uso è molto frequente.
Gestione input/output
L'HW viene visto come "lentezza dei processi", il trasferimento dei dati è gestito con una interazione per non tenere il CPU in esecuzione.
- Ci sono driver specifici per dispositivi HW.
Gestione dei file
All'utente è offerta una visione logica dei file.
I file sono salvati su un supporto con certe caratteristiche di velocità, capacità, etc.
Il file è la sola unità logica di memoria.
Reti:
- Un sistema distribuito è un insieme di unità che non condividono componenti fisici, le unità comunicano attraverso _ (riga sottile illegibile).
- Dal punto di vista dell'utente appaiono come un unico sistema operativo.
- L'accesso a risorse condivise accelera il calcolo, aumenta disponibilità di dati e affidabilità.
SD 18-3-21
Rete virtuale
- All'avvio NAT/DHCP virtuale, le VM possono comunicare con l'host e con la rete. Se non c'è accesso alla rete comunicano solo tra loro e l'host.
- Le VM possono avere anche accesso diretto alla rete. Dal WEB sono indistinguibili da una macchina reale.
Tipi di virtualizzazione
- Emulazione: Viene eseguita un SO su una CPU completamente differente. Tutte le istruzioni sono virtualizzate (quindi interpretate e tradotte), ma per ora, è poco efficiente.
- Virtualizzazione: Prendi qualcosa, organizzi copie esatte di SO completi. (Creare uno, più file da simulare il disco fisso della macchina che stai considerando).
- Paravirtualizzazione: Il SO ospitato, dev'essere modificato, prima di essere eseguito.
Requisiti per la virtualizzazione
Le istruzioni vengono divise in 3 gruppi:
- Privilegiate: (Eseg. solo in user mode) di controllo (modificano risorse di sistema)
- Ciò che è installato dipende dalla config. del sistema
- Condizioni sufficienti perché si possa fare una VM (condit. di Poper e Goldberg) sono che le istruzioni di controllo devono essere un sottoinsieme delle istanz. privilegiate.
- Binary rewriting: Vengono esaminate le istruzioni di flusso e individuate quelle critiche, le istr. privilegiate sono sostituite con chiamate al monitor. Prestazioni più basse di una macchina non virtualizzata. Differenza con il 1 (pre-virtualizzazione di base in questo caso rewriting, include 4 tempi di compilazione).
Lo scheduler della CPU seleziona i processi in transito, quelli pronti per l’esecuzione e i processi il cui accesso passa tramite:
- Ricommissione in attesa
- Ricommissione in pronti
- In attesa pronta
- Terminato
Dispositivi: un modulo effettivo che di controllo della CPU il processo selezionato titolo.
Schedulare:
- Tempo di contesto + attesa min
- Pendenza di dispendi più piccoli possibile
Un algoritmo di scheduling dove soddisfare criteri, come ad esempio:
Alcuni quantitativi possono essere intransmissibili tra loro.
Tipi di scheduling:
- First Come First Served (FCFS)
I processi sono eseguiti nell'ordine in cui arrivano, in termini di efficienza è meglio sei processi più brevi, sono eseguiti per primi.
- Shortest Job First (SJFT)
Il sviluppo usato per i sistemi batch. Il primo processo da essere eseguito è quello con tempo di esecuzione minore, quindi devo eseguire tutti i processi.
Attivare i processi interattivi se si conosce l’esecuzione di ogni comando dato singolo nodo utilizzando calcoli basati sul comportamento possibile. Questo perché è preferibile comprende minimo tempo di risposta.
Esistono due lavori sistemi di SJFT:
- Non preemptivo: un processo in esecuzione non può essere interrotto
- Preemptive: se arriva un nuovo processo con tempo minore di quello che riempie al processo in selezione, quello nuovo accedere a CPU
Invecchiamento (aging)
Tecniche per stimolato il valore necessario di tempo:
Ti = 2 Tmis + (1-2) Tste
(di solito si usa 2+0,5)
Tempo pinto per la esecuzione nuova