Galleria mappe mentale Mappa mentale del sistema operativo del computer
Questa è una mappa mentale sui sistemi operativi dei computer, inclusi processi e thread, gestione della memoria, gestione dei file, gestione IO, ecc. Spero che aiuti tutti.
Modificato alle 2023-12-08 15:46:30個人求職簡歷模板的暗黑配色方案,包括個人簡介、職業規劃、行業經驗、自我評價等多個部分,讓你的簡歷更出彩。使用模板可以極大地提高效率,用戶不需要從頭開始設計結構和內容,只需在模板的基礎上填寫或添加自己的信息即可,這樣可以節省大量的時間和精力,歡迎參考使用!持續分享給大家……
Se non sai come scrivere un articolo, sarai nei guai come manager dei sistemi informativi. Una guida passo passo su come scrivere un documento sulla gestione del rischio. Se ne hai bisogno, ritiralo velocemente!
Il programma dietetico formula un programma dietetico scientifico e ragionevole per soddisfare i nutrienti e l'energia richiesti dal corpo, mantenendo così una buona salute e una buona postura.
個人求職簡歷模板的暗黑配色方案,包括個人簡介、職業規劃、行業經驗、自我評價等多個部分,讓你的簡歷更出彩。使用模板可以極大地提高效率,用戶不需要從頭開始設計結構和內容,只需在模板的基礎上填寫或添加自己的信息即可,這樣可以節省大量的時間和精力,歡迎參考使用!持續分享給大家……
Se non sai come scrivere un articolo, sarai nei guai come manager dei sistemi informativi. Una guida passo passo su come scrivere un documento sulla gestione del rischio. Se ne hai bisogno, ritiralo velocemente!
Il programma dietetico formula un programma dietetico scientifico e ragionevole per soddisfare i nutrienti e l'energia richiesti dal corpo, mantenendo così una buona salute e una buona postura.
sistema operativo
Capitolo 1 Panoramica
concetto di base
Una raccolta di programmi che controlla e gestisce le risorse hardware e software dell'intero sistema informatico, organizza e pianifica razionalmente il lavoro del computer e l'allocazione delle risorse e fornisce agli utenti interfacce e ambienti convenienti.
caratteristica
concorrente
Più eventi si verificano nello stesso intervallo di tempo
Diverso dal parallelo Il parallelismo è parallelismo allo stesso tempo
condiviso
condivisione reciprocamente esclusiva
Solo un processo può accedere alle risorse entro un tempo specificato
Solo dopo che il processo ha avuto accesso e rilasciato la risorsa un altro processo può accedere alla risorsa.
risorse critiche
È consentito l'accesso a un solo processo per un periodo di tempo
Come: dispositivi fisici, stack, variabili, tabelle, ecc.
Visita contemporaneamente
Consentire l'accesso "simultaneo" da parte di più processi in un periodo di tempo
Allo stesso tempo, macroscopicamente, A livello micro, possono accedere alle risorse in modo alternato (time-sharing)
La condivisione delle risorse è condizionata dalla concorrenza dei programmi. Se la concorrenza dei programmi non è consentita, non ci sarà alcuna condivisione delle risorse.
Due caratteristiche fondamentali
virtuale
Le entità diventano controparti logiche
Esecuzione simultanea tramite multiprogrammazione
Utilizzare la tecnologia multiprogrammazione per dividere una CPU fisica in più CPU logiche
tecnologia virtuale
tecnologia di multiplexing a divisione di tempo
condivisione del tempo
tecnologia di multiplexing a divisione spaziale
archiviazione virtuale
asincrono
L'esecuzione del processo non avviene in un unico passaggio, ma in modo discontinuo poiché le risorse sono limitate.
Il sistema operativo funge da interfaccia tra l'utente e il sistema hardware del computer
Come gli utenti utilizzano i computer
1) Interfaccia di comando
tramite interprete dei comandi
Anche il parser dei comandi della shell è un'interfaccia di comando
Interfaccia di comando in linea
Adatto per sistemi time-sharing e real-time
Enfasi sull'interattività dell'utente
Interfaccia di comando offline
Non è richiesta alcuna operazione manuale
per sistemi di elaborazione batch
Insieme ai lavori pre-preparati, vengono consegnati al sistema. Quando i lavori vengono pianificati, l'interprete dei comandi del sistema ne controlla l'esecuzione.
2) Interfaccia del programma
Consiste in chiamate di sistema
Utilizzare le chiamate di sistema per richiedere al sistema operativo di fornire servizi per esso
Il sistema operativo non fornisce chiamate di sistema per la cache di sistema e la cache è trasparente per l'utente.
percorso di sviluppo
1) Fase di funzionamento manuale
Al momento non esiste un sistema operativo e tutto il lavoro viene eseguito manualmente
2) Fase di elaborazione batch
Sistema di elaborazione batch a corsia singola
1) Sequenzialità
2) Automaticità
3) Unidirezionalità
Nella memoria viene eseguito un solo programma
Sistema di elaborazione batch multicanale
attraverso tecniche di multiprogrammazione
Più programmi entrano nella memoria contemporaneamente e vengono eseguiti alternativamente all'interno della CPU.
Hardware/software condiviso
Quando un programma viene sospeso a causa di IO, la CPU esegue immediatamente un altro programma.
tramite interruzione
vantaggio
1) Canali multipli
2) Macroparallelismo
3) Microseriale
4) Elevato tasso di utilizzo e grande produttività
Svantaggi: tempi di risposta lunghi, nessuna interazione umana fornita, nessun controllo sul computer
3) Sistema operativo in time-sharing
Più utenti condividono un host contemporaneamente tramite il terminale
Attraverso la rotazione degli intervalli di tempo
Realizzare l'interazione uomo-computer
1) Simultaneità
2) Interattività
3) Indipendenza
Più utenti operano in modo indipendente senza interferire tra loro
4) Tempestività
Ottieni risposta in breve tempo
4) Sistema operativo in tempo reale
Completare attività urgenti (attività preventive ad alta priorità) entro un certo limite di tempo, Non è necessario fare la coda per gli intervalli di tempo
5) Sistema operativo di rete e sistema informatico distribuito
sistema operativo di rete
Ogni computer è organicamente integrato
sistema informatico distribuito
Ogni computer ha lo stesso status
6) Sistema operativo del personal computer
vincere, Linux, Mac OS
Ambiente operativo
Modalità operativa del processore
1) Istruzioni privilegiate
Direttive che gli utenti non sono autorizzati a utilizzare
Istruzione IO, impostazione istruzione di interruzione, invio parola di stato, salvataggio registro, impostazione orologio
Può essere eseguito solo in modalità kernel
2) Istruzioni non privilegiate
Direttive che consentono agli utenti di utilizzare
Nessun accesso diretto alle risorse hardware e software del sistema
Consenti l'accesso solo allo spazio degli indirizzi dell'utente
chiamata di sistema
Le istruzioni trap, note anche come istruzioni di gestione degli accessi, vengono utilizzate per avviare chiamate di sistema e richiedere al sistema di fornire servizi.
Viene utilizzato in modalità utente. Quindi non è un'istruzione privilegiata
Il programma viene eseguito in modalità utente
I programmi del kernel vengono eseguiti in modalità kernel
L'istruzione per passare alla modalità utente è un'istruzione privilegiata
L'applicazione richiede servizi dal sistema operativo tramite istruzioni di gestione degli accessi, genera un evento di interruzione e converte il sistema operativo in modalità kernel.
Il processo di esecuzione delle istruzioni generalizzate (comandi di chiamata di sistema) deve avvenire nello stato del kernel. E la sua chiamata potrebbe essere in modalità utente o modalità kernel.
Il passaggio dalla modalità utente alla modalità kernel deve passare un'interruzione
Finché si verifica un'interruzione, passerà inevitabilmente allo stato del kernel.
chiamata di subroutine
Salva solo i punti di interruzione
Indirizzo dell'istruzione successiva
Modalità utente→modalità core
esempio
Richiedere servizi di sistema
Si verifica un'interruzione
Errore del programma utente
Il programma utente desidera eseguire istruzioni privilegiate
La conversione dalla modalità utente alla modalità core è completata dall'hardware
Deve essere raggiunto attraverso interruzioni
Finché si verifica un'interruzione, deve essere elaborata e convertita nello stato del kernel.
Quando lo stato utente entra nello stato core, non solo lo stato viene cambiato, ma anche lo stack viene convertito nello stack di sistema.
gestione dell'orologio
Implementare la commutazione del processo attraverso la gestione dell'interruzione dell'orologio
interruzione dell'orologio
Elaborare le informazioni relative al tempo per decidere se eseguire lo scheduler
Tempo di sistema, intervallo di tempo, ritardo, tempo di utilizzo della CPU, timer, ecc.
Interruzioni ed eccezioni
interrompere (interruzione esterna)
Il sistema operativo non può funzionare senza interruzioni
Solo una piccola parte della funzione appartiene al kernel, proteggendo e ripristinando le informazioni sulla scena di interruzione, Trasferire il controllo al relativo handler
dati salvati
Salvataggio dell'hardware
computer
Parola di stato PSW
salvataggio del sistema operativo
registro generalex
anormale (interruzione interna)
Codice di operazione illegale, indirizzo fuori dai limiti, overflow, errore di pagina, auto-trappola, ecc.
Chiamata di sistema, comando di accesso
Le eccezioni non possono essere mascherate e devono essere gestite immediatamente non appena si verificano.
primitivo
è una procedura
1) Nella parte inferiore del sistema operativo
2) Il programma funziona in modo atomico
3) Il programma ha una durata breve e chiamate frequenti
4) Componenti del kernel
stile di gestione
Gestione dei dispositivi
Gestione dei processi
gestione della memoria
struttura del sistema operativo
approccio a strati
È difficile definire ogni livello
Modulare
Le interfacce tra moduli sono difficili da soddisfare le esigenze effettive
nocciolo di macro
I principali moduli funzionali vengono tutti eseguiti nello stato del kernel come un insieme strettamente correlato.
vincere, Linux, iOS, Android
microkernel
Le funzioni principali vengono mantenute nel kernel e le funzioni che non è necessario eseguire in modalità kernel vengono trasferite nella modalità utente.
Il servizio file viene eseguito in modalità utente
Lo svantaggio principale sono i problemi di prestazioni
Sistema operativo Hongmeng
Avvio del sistema operativo
Attiva CPU
Eseguire l'istruzione JMP per passare al BIOS
Registrare l'indirizzo di ingresso del programma di interruzione del BIOS
Autotest dell'hardware
Caricare il disco rigido con il sistema operativo
Caricare l'MBR del record di avvio principale
L'MBR contiene la tabella delle partizioni hardware
L'MBR controlla la tabella delle partizioni per trovare la partizione attiva e trasferisce il programma di avvio della partizione in memoria per l'esecuzione.
Scansiona la partizione del disco rigido
Carica il record di avvio PBR (Partition Boot Record)
Trova e attiva il programma nella directory root della partizione utilizzata per avviare il sistema operativo
Carica il gestore di avvio
Situato sul disco rigido e utilizzato per avviare il sistema operativo
Carica il sistema operativo
macchina virtuale
Capitolo 2 Processi e thread
Processi e thread
concetto
PCB del blocco di controllo del processo
Abilitare ogni programma (inclusi i dati) che partecipa all'esecuzione simultanea per essere eseguito in modo indipendente
Il PCB è l'unico segno dell'esistenza del processo
Entità del processo (immagine)
Si compone di tre parti: segmento di programma, segmento di dati rilevanti e PCB
Un processo è il processo in esecuzione di un'entità di processo
È un'unità indipendente per l'allocazione delle risorse e la pianificazione nel sistema.
caratteristica
è causato dall'esecuzione simultanea di più programmi
Dinamico
Concorrenza
indipendenza
Asincronicità
Stato del processo e transizioni
Stato di esecuzione→Stato di blocco
Proteggi la scena
Composizione del processo
PCB
Sezione programma
Segmenti di codice del programma che possono essere pianificati dal processo per essere eseguiti dalla CPU
segmento di dati
controllo di processo
I programmi utilizzati per il controllo del processo sono chiamati primitivi
Ogni processo genitore e figlio ha il proprio PCB
Il processo genitore e il processo figlio condividono alcune risorse, ma non condividono lo spazio degli indirizzi virtuali
processo terminato
evento
Termina normalmente
fine anomala
intervento esterno
processi
Recupera PCB, leggi lo stato
Terminare l'operazione
Fornire risorse ad altri processi
o restituito al sistema operativo
Uccidi tutti i processi figli
Rimuovere la PCB
comunicazione di processo
Scambio di informazioni tra processi
comunicazione di basso livello
Funzionamento FV
non può essere interrotto
comunicazioni avanzate
spazio di archiviazione condiviso
I thread all'interno di un processo condividono naturalmente lo spazio del processo Lo spazio del processo è condiviso tra i processi tramite speciali chiamate di sistema.
messaggistica
Lo scambio di dati avviene in messaggi formattati
comunicazione diretta
metodo di comunicazione indiretta
L'entità intermedia è la casella di posta
comunicazione via tubazione
I dati sono i primi ad entrare, i primi a uscire nella pipeline
Il file pipe esiste in memoria
Se i dati vengono letti vuoti, il processo di lettura si blocca
È possibile accedere ai tubi solo tramite il processo di creazione
I tubi ordinari consentono solo la comunicazione unidirezionale
Thread e multithreading
È un'unità di esecuzione CPU di base
È l'unità più piccola del flusso di esecuzione del programma
Il blocco di controllo del filo TCB è composto da
ID discussione
contatore di programma
registro impostato
Composizione della pila
Area di archiviazione specifica del thread
Nello stesso processo, più thread possono essere eseguiti contemporaneamente
Dopo aver introdotto i thread
Il processo funge da unità di allocazione delle risorse di sistema all'esterno della CPU.
Thread come unità di allocazione del processore
Il processo è l'unità di base che possiede le risorse nel sistema. I thread non possiedono le risorse di sistema.
Implementazione del thread
Classificazione
thread a livello di utente
Tutto il lavoro viene svolto dall'applicazione nello spazio utente
Il cambio di thread non richiede spazio nel kernel e ha un sovraccarico basso
Scegli diversi algoritmi di pianificazione secondo necessità
Se un thread a livello utente viene bloccato, viene bloccato anche l'intero processo.
Thread a livello di kernel
Completo di supporto del sistema operativo
Il cambio di thread dello stesso processo richiede il passaggio dalla modalità utente alla modalità kernel, il che è costoso
È possibile programmare più thread dello stesso processo per l'esecuzione in parallelo sulla CPU contemporaneamente
modello multi-thread
molti a uno
Più utenti mappati su un core
Uno a uno
molti a molti
Pianificazione del processore
Concetto di pianificazione
Seleziona un processo dalla coda pronta secondo un determinato algoritmo e assegnagli il processore
Lavori e processi
I lavori vengono inviati dagli utenti e si basano sulle attività dell'utente. Il processo è generato dal sistema operativo ed è l'unità di base per l'allocazione delle risorse e il funzionamento indipendente.
Gerarchia di pianificazione
Pianificazione avanzata
pianificazione del lavoro
La pianificazione del lavoro è la pianificazione tra la memoria e l'archiviazione ausiliaria
Ogni lavoro viene caricato una sola volta e caricato una volta
Pianificazione intermedia
pianificazione della memoria
Il programma chiama e chiama
Migliora l'utilizzo della memoria e il throughput del sistema
I processi che non sono temporaneamente in esecuzione vengono pianificati nella memoria esterna e sospesi.
programmazione di basso livello
pianificazione del processo
La frequenza di pianificazione del processo è elevata
Il più elementare e indispensabile
Prestazione
Utilizzo della CPU
Tempo di lavoro effettivo della CPU / (attesa effettiva)
Tempo di consegna
Tempo di consegna = tempo di completamento del lavoro – tempo di invio del lavoro
Tempo medio di consegna = ∑tempo di consegna / n
Tempo di consegna ponderato = tempo di consegna del lavoro / tempo di esecuzione effettivo del lavoro
Tempo medio di consegna ponderato = ∑tempo di consegna ponderato / n
tempo di attesa
Tempo di risposta
Implementazione della pianificazione
pianificatore
codatore
Spedizioniere
cambio di contesto
Esegui un gran numero di istruzioni di caricamento/memorizza e salva il contenuto del registro
Tempistiche di pianificazione, commutazione e processi
Situazioni in cui la pianificazione e il passaggio non possono essere eseguiti
1) Durante il processo di gestione degli interrupt
2) Il processo è nella sezione critica del kernel di sistema
Dopo essere entrato nella sezione critica, chiudila, I processi non devono essere cambiati prima dello sblocco
3) Durante il processo atomico
Durante i processi atomici, anche le interruzioni vengono mascherate
Situazioni che possono essere programmate e scambiate
programmazione senza privazione
Si verifica una condizione di pianificazione e il processo corrente non può continuare.
programmazione delle privazioni
L'elaborazione dell'interruzione termina
La trappola finisce
Metodo di pianificazione
Non preventivo
Lasciamo che il processo attuale continui anche se è pronto un processo di emergenza
Preventivo
Gli eventi di emergenza hanno una priorità più alta
Processo di uscita
Quando non ci sono altri processi in esecuzione sul sistema, abilitare inattivo inattivo
Schedulazione di due thread
livello utente
Cambio di filo all'interno dello stesso processo, utilizzando un numero limitato di istruzioni macchina
livello del kernel
Il kernel seleziona un thread specifico da eseguire e gli assegna un intervallo di tempo
Algoritmo di pianificazione
Primo arrivato, primo servito
algoritmo inalienabile
L'algoritmo è semplice e poco efficiente
Favorevole alle operazioni impegnative della CPU Non favorevole alle operazioni di I/O occupate
Prima i lavori brevi
I lavori con il tempo di esecuzione più breve hanno la precedenza
Non va bene per lavori lunghi
Mancata considerazione dell’urgenza del lavoro
Tempo medio di attesa, tempo medio di consegna più basso
programmazione prioritaria
Eseguire in base alla priorità del lavoro
Può essere utilizzato sia per la pianificazione dei processi che per la pianificazione dei lavori
priorità
priorità statica
Una volta deciso, non può essere modificato
priorità dinamica
La priorità può essere modificata in base alla situazione
in linea di principio
1) Processo di sistema > Processo utente
2) Processo interattivo > processo non interattivo
3) Processo IO > Processo di calcolo
Perché l'IO Device è più lento della CPU
Priorità del rapporto di risposta elevato
Rapporto di risposta = (tempo di attesa, tempo di servizio richiesto) / tempo di servizio richiesto
rotazione degli intervalli di tempo
per sistemi di time sharing
Se l'intervallo di tempo è abbastanza grande da consentire l'esecuzione di tutti i processi in un intervallo di tempo, L'algoritmo di rotazione degli intervalli di tempo degenera nel primo arrivato, primo servito
coda multilivello
Processi di tipi o proprietà diversi vengono assegnati a code pronte diverse
Coda di feedback multilivello
Più code pronte, ciascuna con priorità diverse
La dimensione della porzione di tempo del processo di ciascuna coda è diversa
Ogni coda è il primo arrivato, primo servito
Le code sono programmate per priorità
Confrontare
Commutazione del processo
cambio di contesto
Il contesto si riferisce a: il contenuto dei registri della CPU e del contatore del programma in un determinato momento
La CPU passa a un altro processo e deve salvare lo stato del processo corrente e ripristinare lo stato dell'altro processo.
Aggiorna PCB
Interruttore di modalità
Passaggio dalla modalità utente alla modalità kernel
Sincronizzazione e mutua esclusione
concetto
risorse critiche
È consentito utilizzarlo solo a un processo alla volta
Come stampante, variabile, dati
Zona di ingresso
Verificare se è possibile accedere alla sezione critica
sezione critica
Il codice nel processo che accede alle risorse critiche
Zona di uscita
Cancellare il flag che indica che è in corso l'accesso alla sezione critica
area rimanente
il resto del codice
Sincronizzazione dei processi
rapporto restrittivo diretto
La relazione tra i processi è una collaborazione diretta e la concorrenza dei processi è asincrona.
mutuamente esclusivi
vincoli indiretti
Quando un processo accede a una risorsa critica, un altro processo deve attendere
criteri
Libero di entrare
Se sei occupato, aspetta
attesa limitata
Garantito per entrare nella sezione critica entro un tempo limitato
cedi e aspetta
Quando il processo non può entrare nella sezione critica, il processore viene immediatamente rilasciato per evitare che il processo sia occupato in attesa.
metodi mutuamente esclusivi
Metodo di implementazione del software
metodo del segno singolo
Controllare prima il metodo del doppio contrassegno
Metodo del doppio segno post-ispezione
algoritmo di Peterson
Per evitare che due processi entrino nella sezione critica e attendano indefinitamente, viene impostata la variabile turn
Metodo di implementazione dell'hardware
Metodo di mascheramento delle interruzioni
Metodo di comando hardware
testandset
scambio
Vantaggi dei metodi di implementazione hardware
Funziona con qualsiasi numero di processi
discordanza
Potrebbe verificarsi fame
blocco mutex
acquisire
prendi il lucchetto
pubblicazione
serratura di rilascio
segnale
Il funzionamento del fotovoltaico è in realtà composto da due processi ininterrotti
L'operazione p è l'operazione di attesa, che significa attendere finché la risorsa non è disponibile. Se la risorsa non è disponibile, entra nello stato di blocco. Il processo durante l'operazione p è in stato di esecuzione
L'operazione V è un'operazione singola, il che significa che il processo rilascia una risorsa in modo che il numero di risorse disponibili per l'allocazione nel sistema sia 1
semaforo intero
registrare il semaforo
Utilizzo dei semafori per ottenere la sincronizzazione dei processi
Utilizzo dei semafori per implementare la mutua esclusione dei processi
Il valore iniziale del mutex è generalmente 1, il che significa che solo un processo alla volta può entrare nella sezione critica. Quando è 0, significa che un processo è entrato nella sezione critica e non c'è nessun processo in attesa al di fuori della sezione critica. Quando il mutex è inferiore a 0, significa che è presente un processo nella sezione critica. Il valore assoluto del mutex indica il numero di processi in attesa all'esterno della sezione critica.
Utilizzo del semaforo per implementare il precursore
gestione
Strumento di sincronizzazione dei processi
Mutua esclusione del processo garantito
In grado di ottenere la sincronizzazione e la mutua esclusione tra i processi
Solo un processo alla volta utilizza una risorsa condivisa
Una struttura dati che rappresenta una risorsa condivisa e un programma di gestione delle risorse che consiste in un insieme di procedure che operano su tale struttura dati condivisa in tempo reale
Il segnale è diverso dal funzionamento V Se non vi è alcun processo bloccato a causa della condizione, il segnale non ha alcun effetto.
Problemi di sincronizzazione
problema produttore-consumatore
problema lettore-scrittore
leggi prima
Scrivi prima
Il problema della cena dei filosofi
Possibili problemi: quando tutti afferrano le bacchette (algoritmo goloso), può verificarsi una situazione di stallo.
problema del fumatore
situazione di stallo
definizione
Deadlock causato da più processi in competizione per una risorsa
Questi processi non possono continuare senza forze esterne
causa
1) Competizione per le risorse di sistema
Risorse irrinunciabili nel sistema, la quantità non è sufficiente a soddisfare molteplici processi
2) La sequenza di avanzamento del processo è illegale
Ordine improprio di richiesta e rilascio delle risorse
Condizioni necessarie perché si verifichi uno stallo
1) Condizioni mutuamente esclusive
Una determinata risorsa è occupata da un solo processo durante un determinato periodo di tempo
2) Nessuna privazione di condizioni
non può essere anticipato da altri processi
3) Richiedere e mantenere le condizioni
Il processo ha occupato una risorsa e ha richiesto contemporaneamente un'altra risorsa e la risorsa occupata non viene rilasciata.
4) Attesa in loop
Le risorse occupate da ciascun processo vengono contemporaneamente richieste dal processo successivo
Strategia di gestione dello stallo
1) Prevenzione dello stallo
Distruggi una o più delle quattro condizioni necessarie
1. Distruzione delle condizioni di mutua esclusione
Consenti la condivisione delle risorse di sistema
2. Distruggere le condizioni di non-privazione
Rilasciare i processi che occupano risorse e che non possono continuare a essere eseguiti
3. Distruggi la richiesta e mantieni la condizione
Richiedi tutte le risorse richieste contemporaneamente e non metterlo in funzione prima che le sue risorse siano esaurite.
4. Interrompi il ciclo e attendi
Adottare il metodo di allocazione sequenziale delle risorse
2) Evitare lo stallo
Evitare che il sistema entri in uno stato non sicuro
1. Stato di sicurezza del sistema
Prima che il sistema assegni le risorse, dovrebbe innanzitutto calcolare la sicurezza dell'allocazione.
stato sicuro
Non deve esserci alcuna situazione di stallo
stato non sicuro
Potrebbe entrare in una situazione di stallo
2. Algoritmo del banchiere
Evitare che il sistema entri in uno stato non sicuro
3) Rilevamento e rilascio dello stallo
Rilevare il verificarsi di una situazione di stallo e adottare alcune misure per risolverla
Se il sistema non adotta alcuna misura durante l'assegnazione delle risorse al processo, dovrebbero essere forniti metodi di rilevamento e rilascio dei deadlock.
Mappa di allocazione delle risorse
I cerchi nella casella rappresentano le risorse
Richieste di chiamate edge dirette dal processo alla risorsa
rilascio dello stallo
1) Privazione di risorse
Il processo che blocca la situazione di stallo prenderà le proprie risorse e le assegnerà ad altri processi in situazione di stallo.
2) Annullare il processo
Annullare forzatamente alcuni o addirittura tutti i processi bloccati e privarli delle risorse
3) Ripristino del processo
Lasciare che un processo in stallo venga ripristinato abbastanza da evitare lo stallo
Confrontare
La differenza tra stallo e fame
fame
L'esecuzione di un processo viene posticipata a tempo indeterminato
Può esserci un solo processo che porta alla fame
Può essere pronto o bloccato.
situazione di stallo
Il processo è giunto a un punto morto e non può andare avanti.
Il numero di processi che entrano in una situazione di stallo deve essere uguale o maggiore di due
Il processo in cui si verifica il deadlock deve essere in uno stato bloccato
Capitolo 3 Gestione della memoria
concetto
La gestione della memoria serve a supportare meglio l'esecuzione simultanea di più programmi
Collegamento e caricamento del programma
Collegamento
collegamento statico
La funzione libreria viene collegata ad un modulo di caricamento e viene modificato il relativo indirizzo.
Collegamento dinamico al caricamento
Durante il caricamento in memoria, collegarsi durante il caricamento
Collegamento dinamico runtime
I moduli oggetto che non vengono utilizzati durante l'esecuzione non verranno caricati in memoria o collegati ai moduli.
carico
Assolutamente montato (statico)
in fase di programmazione
Adatto per programmi a canale singolo, l'indirizzo logico e l'indirizzo di memoria sono esattamente gli stessi
Può essere fornito dal programmatore oppure tramite compilazione o assembly.
carico rilocabile
trasferimento statico
Il processo di modifica delle istruzioni e degli indirizzi dei dati nel programma di destinazione durante il caricamento è chiamato rilocazione.
Non modificare dopo il caricamento
Durante il caricamento, modificare l'indirizzo logico nell'indirizzo fisico finale
Caricamento dinamico del runtime
delocalizzazione dinamica
Dopo che il caricatore ha caricato il modulo in memoria, non converte immediatamente l'indirizzo relativo del modulo caricato in un indirizzo assoluto, ma posticipa il processo di conversione fino all'esecuzione.
Può essere scambiato dopo il caricamento
Gli indirizzi dopo il caricamento in memoria sono tutti indirizzi relativi.
protezione della memoria
Aggiungere l'indirizzo logico al valore di riposizionamento per ottenere l'indirizzo fisico
Il registro degli indirizzi di confine determina se è fuori limite
Il caricamento del registro di rilocazione e del registro degli indirizzi di confine deve utilizzare istruzioni privilegiate, che vengono completate dal kernel del sistema operativo e non possono essere modificate dall'utente.
condivisione della memoria
È possibile condividere solo le aree di sola lettura
Il codice rientrante (codice puro) consente l'accesso da parte di più processi ma non consente la modifica da parte di alcun processo
La tecnologia rientrante riduce i trasferimenti di codice in entrata e in uscita, riducendo il numero di scambi per migliorare le prestazioni del sistema.
Copri e scambia
copertina
I segmenti di programma a cui accedere vengono inseriti nell'area di copertura e gli altri segmenti vengono inseriti nella memoria esterna. Il sistema deve trasferirli nell'area di copertura prima di chiamare e sostituire i segmenti originali.
scambio
Trasferire il programma in attesa dalla memoria alla memoria ausiliaria, che è la pianificazione intermedia
gestione continua dell'allocazione
unica allocazione contigua
L'area di sistema viene utilizzata dal sistema operativo e si trova nella parte bassa dell'indirizzo.
Nella memoria dell'area utente c'è solo un programma utente
Utilizza la tecnologia di sovrapposizione
Gestione delle partizioni
La soluzione di gestione dello storage più semplice che soddisfa la multiprogrammazione con il minor costo
Allocazione fissa delle partizioni
La memoria utente è divisa in diverse aree di dimensione fissa e ciascuna partizione carica solo un lavoro.
domanda
1) Il programma è troppo grande per adattarsi a qualsiasi partizione, quindi utilizzare la tecnologia di sovrascrittura
2) Se il programma è troppo piccolo e inserito nella partizione, si verificherà una frammentazione interna
Allocazione dinamica delle partizioni
Nel corso del tempo, nella memoria vengono creati molti piccoli blocchi di memoria, chiamati frammentazione esterna
Risolto dalla tecnologia compatta, il sistema operativo muove e organizza i processi
strategia di allocazione
algoritmo di primo adattamento
Link in ordine crescente di indirizzo
Algoritmo di adattamento del vicino
Quando si alloca la memoria, la ricerca inizia dalla posizione in cui è terminata l'ultima ricerca.
algoritmo di miglior adattamento
Le partizioni libere formano una catena di partizioni libere in ordine crescente di capacità.
Genera i detriti più esterni
algoritmo del peggiore adattamento
Formare una catena di partizioni libere in ordine decrescente di capacità
Recuperare la memoria
Unione di aree libere tramite la tecnologia di giunzione
1) L'area di ripristino è adiacente alla precedente partizione libera del punto di inserimento
Unisci due partizioni e modifica la dimensione della voce precedente della tabella delle partizioni sommando le due
2) L'area di ripristino è adiacente alla partizione libera dopo il punto di inserimento
La dimensione della voce della tabella delle partizioni modificata è la somma delle due
3) L'area di recupero è adiacente ai due tramezzi prima e dopo il punto di inserimento
Modifica la dimensione della voce precedente della tabella delle partizioni sommando le tre
Annulla la voce successiva della tabella delle partizioni
4) L'area di riciclaggio non ha partizioni libere adiacenti
Crea una nuova voce nella tabella per l'area di riciclaggio, inserisci l'indirizzo iniziale, la dimensione e inserisci la catena di partizione libera
Lo spazio degli indirizzi fisici fornito dal sistema all'utente corrisponde alla dimensione totale dello spazio meno la lunghezza della tabella delle pagine o della tabella dei segmenti.
Gestione dell'impaginazione
La gestione del cercapersone produce frammentazione interna ma non produce frammentazione esterna
Un blocco in un processo è chiamato pagina, mentre un blocco in memoria è chiamato frame di pagina.
La struttura dell'indirizzo determina la dimensione dello spazio di indirizzamento della memoria virtuale
Il sistema crea una tabella delle pagine per ciascun processo e la tabella delle pagine viene archiviata in memoria.
L'indirizzo iniziale della tabella delle pagine viene inserito nel registro degli indirizzi di base della tabella delle pagine
Una volta determinata la dimensione della pagina, tutte le pagine hanno la stessa dimensione (potenza di 2)
Autorità di traduzione degli indirizzi
Gestione della segmentazione
generare frammentazione esterna
Continuo all'interno di un segmento, ma non è necessario che sia continuo tra i segmenti
La segmentazione avviene quando gli utenti programmano, il programma viene diviso in diversi segmenti logici secondo la logica.
legati alla struttura logica
Collegamento dinamico che facilita i programmi
Gestione della pagina dei segmenti
generare frammentazione interna
Il sistema crea una tabella di segmenti per il processo e ogni segmento dispone di una tabella di pagine.
Approccio segmentato alla gestione e all'allocazione dello spazio degli indirizzi degli utenti Metodo di paging per gestire e allocare lo spazio degli indirizzi fisici
Un accesso richiede in realtà tre accessi alla memoria principale.
gestione della memoria virtuale
caratteristica
più volte
Il lavoro viene suddiviso in più tempi e caricato in memoria.
intercambiabilità
Richiama i programmi e i dati non utilizzati dalla memoria
virtualità
Espandi logicamente la capacità di memoria
Capacità effettiva della memoria virtuale ≤ capacità di memoria capacità di archiviazione esterna
La capacità massima della memoria virtuale ≤ la capacità massima che i bit dell'indirizzo del computer possono ospitare
Implementazione
1) Richiedere la gestione del cercapersone
Richiede supporto hardware
Memoria, memoria esterna, meccanismo di interruzione, conversione di indirizzi, ecc.
Meccanismo della tabella delle pagine
Numero di pagina, numero di blocco fisico, bit di stato, campo di accesso, bit di modifica, indirizzo di memoria esterna
Meccanismo di interruzione per errore di pagina
Quando la pagina a cui si accede non è in memoria, viene generato un interrupt per errore di pagina e viene richiesto al sistema di trasferirla in memoria.
Il tasso di errore di pagina è influenzato dalla dimensione della pagina, dal numero di blocchi fisici allocati, dall'algoritmo di sostituzione e dalla programmazione.
Autorità di traduzione degli indirizzi
Allocazione dei frame di pagina
insieme residente
Una raccolta di frame di pagina assegnati a un processo
Meno frame di pagina vengono assegnati a un processo, più processi risiederanno nella memoria principale, migliorando l'utilizzo della CPU.
Un processo ha troppo poche pagine nella memoria principale e il tasso di errore di pagina è relativamente alto.
Strategia di allocazione della memoria
1) Assegnazione fissa della sostituzione locale
Assegnare un certo numero di blocchi fisici al processo Dopo che si verifica un errore di pagina, selezionare una pagina dalla pagina di memoria allocata al processo e richiamarla.
2) Sostituzione globale dell'allocazione variabile
Assegna un certo numero di blocchi fisici, che possono essere aumentati o diminuiti opportunamente Sostituzione globale: seleziona un blocco dai blocchi fisici liberi e assegnalo al processo e trasferisci la pagina mancante
3) Sostituzione locale con sostituzione variabile
Quando manca una pagina, solo questo processo può selezionare una pagina dalle pagine di memoria e richiamarla.
Algoritmo di caricamento dei blocchi fisici
strategia di allocazione fissa
1) Algoritmo di distribuzione media
2) Distribuire proporzionalmente
Assegnare proporzionalmente in base alle dimensioni del processo
3) Assegnazione delle priorità
Assegnazione in base all'urgenza
È ora di caricare la pagina
Caricare prima di correre
Chiamato durante il runtime
algoritmo di sostituzione
1) Miglior algoritmo di sostituzione
Elimina le pagine che non verranno mai utilizzate o le pagine che non sono state utilizzate per il periodo di tempo più lungo
2) Algoritmo first in first out
Si verificherà l'anomalia di Belady
Il numero di blocchi fisici allocati aumenta e il numero di errori di pagina aumenta invece di diminuire.
3) Non utilizzato di recente e per molto tempo
Richiede supporto hardware per registri e stack
Poiché deve calcolare le pagine che non sono state visitate di recente, è costoso.
4) Algoritmo dell'orologio
5) Algoritmo dell'orologio migliorato
Aggiunto bit di modifica
Dai priorità alle pagine che non sono state utilizzate o modificate
Giudizio basato sul bit di accesso A e sul bit di modifica M
Jitter e set di lavoro
Jitter
La pagina appena sostituita deve essere reinserita immediatamente (le pagine vengono caricate e scaricate frequentemente)
Tasso elevato di errori di pagina
motivo
Ci sono troppi processi in esecuzione simultaneamente nel sistema e troppo pochi blocchi fisici allocati a ciascun processo.
insieme di lavoro
Una raccolta di pagine a cui un processo accederà entro un certo periodo di tempo
Previeni il jitter
2) Richiedere la gestione dei segmenti
3) Richiedi la gestione della pagina del segmento
Capitolo 4 Gestione dei documenti
proprietà del file
nome
tipo
Creatore
proprietario
Posizione
misurare
Proteggere
tempo
Il file è un tipo di dati astratto, una struttura di dati
Blocco controllo file FCB
voce della directory dei file
Struttura dati che memorizza varie informazioni richieste dal file di controllo
Accesso per nome
Contiene: informazioni di base, informazioni sul controllo degli accessi, informazioni sull'utilizzo
inode del nodo indice
Directory dei file sul disco
nodo indice del disco
Ogni file ha un nodo indice del disco univoco
Identificatore primario, tipo, autorizzazioni, indirizzo fisico, lunghezza, conteggio collegamenti, tempo di accesso
nodo indice di memoria
Nodi di indice archiviati in memoria
Quando il file viene aperto, il nodo indice del disco viene copiato nel nodo indice della memoria.
Numero di nodo, stato, conteggio accessi, numero di dispositivo logico, puntatore di collegamento
Operazioni sui file
aprire e chiudere
Aprire
Chiama open per cercare nella directory in base al nome del file, copiare gli attributi del file specificato (inclusa la posizione fisica) dalla memoria esterna alla voce della tabella dei file aperti nella memoria e restituire il numero della voce all'utente
Memorizza FCB nella tabella delle directory dei file di memoria
chiusura
Chiudi chiamata, il sistema aprirà la tabella dei file per eliminare questa voce
Durante la chiamata di lettura, se il file non è in memoria, il processo va in stop.
Protezione dei file
Protezione della password
La password è memorizzata all'interno del sistema e non è sufficientemente sicura.
Protezione tramite crittografia
Impedisci il furto dei file
Controllo di accesso
Controlla il modo in cui gli utenti accedono ai file
La struttura logica del file
File non strutturati (file in streaming)
Organizzazione sequenziale in record (raccolte ordinate)
Esistono file strutturati (file registrati)
file di sequenza
struttura della stringa
Ordinati per tempo di deposito
struttura sequenziale
Ordina per parola chiave
file indice
file di registrazione a lunghezza fissa
file di registrazione a lunghezza variabile
ricerca sequenziale
file di sequenza dell'indice
N record sono divisi in √N gruppi. Sono presenti √N voci nella tabella dell'indice e sono necessarie √N/2 √N/2 ricerche in totale.
file diretto/file hash
Dato il valore della chiave del record o il valore della chiave trasformato dalla funzione hash, viene determinato l'indirizzo fisico del record.
La struttura fisica del file
Assegnazione
allocazione continua
Supporta l'accesso sequenziale/random
Velocità di accesso elevata
L'eliminazione ripetuta di file crea frammentazione esterna
Scomodo da aggiungere, eliminare o modificare
Il campo dell'indirizzo fisico del file nella voce della directory del file include l'indirizzo del primo blocco e la lunghezza dell'area di allocazione del file.
Assegnazione del collegamento
Metodo di allocazione discreta
Eliminati i detriti esterni
Scomodo da controllare
collegamento implicito
Adatto solo per accesso sequenziale
La directory contiene un puntatore al primo blocco del file e un puntatore all'ultimo blocco
generare frammentazione interna
collegamento esplicito
Una tabella di collegamento che memorizza esplicitamente i puntatori di collegamento in memoria è denominata tabella di allocazione file (FAT). Ciascuna voce memorizza il numero di blocco del disco successivo
C'è solo una FAT nell'intero disco ed è anche una struttura dati.
Le voci FAT corrispondono ai blocchi del disco fisico uno a uno. Il numero speciale -1 può essere utilizzato per rappresentare l'ultimo blocco e altri numeri possono essere utilizzati per indicare che il blocco del disco è libero e non solo registra la relazione di collegamento ogni blocco, ma segna anche il pezzo del disco libero
allocazione dell'indice
Supporta l'accesso casuale
L'accesso non è veloce quanto l'assegnazione continua
nessun detrito esterno
Allocazione mista dell'indice
Sommario
Struttura delle directory
Struttura di directory singola
Accesso per nome
La velocità di ricerca è lenta, non sono consentiti nomi duplicati e la condivisione è scomoda
Struttura della directory secondaria
Risolto il problema del nome duplicato
Impossibile classificare i file, mancanza di flessibilità
struttura delle directory ad albero
L'accesso ai file da parte di un processo equivale alla directory corrente.
È necessario accedere ai nodi intermedi passo dopo passo in base al nome del percorso, il che aumenta il numero di accessi al disco.
Struttura delle directory dei grafi aciclici
Per i file condivisi esiste un solo file reale e qualsiasi modifica sarà visibile agli altri utenti.
Implementazione della directory
elenco lineare
Accetta un elenco lineare di nomi di file e puntatori
L'utilizzo di una struttura a catena può ridurre il tempo di eliminazione dei file
Ricerca che richiede tempo
Tabella hash
Trova rapidamente
Necessità di evitare conflitti
Condivisione di file
condivisione statica
Collegamento reale (basato sul nodo indice)
L'indirizzo fisico del file e le informazioni sugli attributi del file non vengono più inseriti nella voce della directory, ma nel nodo indice.
Il nodo indice ha anche un conteggio, che indica che è condiviso da più utenti.
Collegamenti software (utilizzando collegamenti simbolici)
Creare un file di collegamento e trovare il file in base al nome del percorso nel file
Solo il proprietario del file ha un puntatore al suo nodo indice Gli altri utenti hanno solo il percorso di questo file
Ogni volta che accedi a un file, devi leggere il disco più volte, il che è costoso.
Quando si condividono file di rete, è necessario fornire solo l'indirizzo di rete del computer in cui si trova il file e il nome del percorso del file.
condivisione dinamica
Più utenti operano contemporaneamente su un file
Sistema di file
La struttura del file system nella memoria esterna
formato fisico
Dividere settori, controllare settori danneggiati, sostituire settori danneggiati
formattazione logica
Partizione del disco, inizializzazione completa del file system di ciascuna partizione
produrre
MBR del record di avvio principale
Determina la partizione attiva e leggi il blocco di avvio
blocco di avvio
L'MBR esegue il programma nel blocco di avvio e avvia il sistema operativo
superblocco
Contiene tutte le informazioni chiave del file system Al primo avvio del file system, il superblocco viene letto nella memoria.
Gestione dello spazio libero
Ad esempio: bitmap
l'area dei nodi
I nodi dell'indice vengono archiviati in modo continuo e hanno la stessa dimensione.
Root directory
La struttura del file system in memoria
zona utente
descrittore di file/handle di file
zona del nocciolo
cache della directory
Tabella dei file aperti di sistema
solo uno
L'utente apre la tabella dei file
Contiene l'indice della tabella dei file aperti di sistema
file system virtuale
Fornire un'interfaccia di chiamata di sistema unificata e standard agli utenti di livello superiore Proteggi le differenze di implementazione dei file system specifici sottostanti
È necessario che i file di livello inferiore implementino determinate funzioni
Ogni file aperto creerà un vnode nella memoria principale, rappresentato da una struttura dati unificata
vnode esiste solo nella memoria principale L'inode verrà caricato nella memoria principale e archiviato nella memoria esterna.
Montaggio del file system (installazione)
Registrare il file system appena montato nel file system virtuale, La tabella di montaggio della memoria contiene informazioni per ciascun file system
Il file system appena montato deve fornire un elenco di indirizzi di funzioni al file system virtuale.
Montare il file system nel punto di montaggio (directory principale)
Gestione dello spazio file
Divisione dello spazio di archiviazione
Dividere il disco fisico in volumi di file (disco logico, volume logico)
Un volume di file può essere composto da più dischi fisici
Inizializzazione dello spazio di archiviazione
Inizializzazione del volume del file
area dell'elenco
Memorizza le informazioni sulla directory dei file FCB, informazioni utilizzate per la gestione dello spazio di archiviazione su disco
area dell'archivio
Memorizza i dati del file
gestione dello spazio
metodo della lista libera
Appartiene al metodo di allocazione continua
Assegnare spazio di archiviazione contiguo ai file
È possibile utilizzare il primo adattamento, il miglior adattamento e il peggiore adattamento
Il riciclaggio equivale all'allocazione dinamica
metodo della lista libera
Catena di dischi libera
Collega i blocchi del disco libero come un elenco collegato
Il blocco del disco libero memorizza un puntatore al successivo blocco del disco libero.
distribuire
Trova i blocchi del disco che soddisfano le condizioni attraverso l'algoritmo di adattamento
Riciclare
Appendi i blocchi di dischi riciclati all'estremità della catena
L’allocazione e il riciclaggio sono semplici ma inefficienti
catena di estensione libera
Diversi blocchi consecutivi di disco libero costituiscono un'area libera del disco
La lunghezza dell'extent viene registrata nel primo blocco disco libero dell'extent ed è un puntatore all'extent successivo.
distribuire
Di solito primo adattamento
Riciclare
Unisci l'area di rivendicazione con le estensioni libere adiacenti
L’allocazione e il riciclaggio sono problematici, ma efficienti
Metodo bitmap
Utilizzare bit binari per indicare se viene utilizzato un blocco del disco
Numero del disco b = n×i j
n rappresenta la lunghezza della parola
i rappresenta la dimensione del carattere (numero di riga)
io = b/n
rimuovere
j rappresenta il numero di bit (numero di colonna)
j = b%n
Prendi il resto
Applicabile sia alle allocazioni continue che a quelle discrete
Metodo di collegamento dei gruppi
Il blocco della catena di gruppi (superblocco) viene utilizzato per memorizzare il numero del blocco del disco libero e il numero del gruppo successivo di blocchi del disco libero.
Il numero di blocco del blocco del disco libero è il primo numero di blocco del disco del blocco di gruppo (estensione)
Il numero di un gruppo è limitato, ad esempio: solo 100 blocchi di disco liberi possono formare un gruppo
Se non è presente alcun blocco del disco libero per il gruppo successivo, il numero del blocco viene impostato su -1
distribuire
Assegna dall'ultimo blocco del disco e modifica il numero di blocchi del disco liberi nel superblocco
Se un determinato blocco memorizza il successivo gruppo di informazioni, le informazioni devono essere copiate nel superblocco e quindi allocate.
Riciclare
Se il superblocco non è pieno
Quindi inserire il blocco riciclato direttamente dopo il superblocco
Se il superblocco è pieno
Metodo di inserimento della testa simile a un elenco collegato
disco
struttura
disco
traccia
settore
È un blocco del disco
Ogni settore ha la stessa capacità e il settore più interno ha la densità più alta.
Disco
Ad ogni superficie del disco corrisponde una testina magnetica
cilindro
Le tracce con la stessa posizione relativa su tutti i dischi formano un cilindro
L'indirizzo del disco è rappresentato da (numero cilindro-numero disco-numero settore)
Algoritmo di pianificazione del disco
Il tempo necessario per leggere e scrivere
tempo di ricerca
Inizia il braccio della testa
Tempo impiegato
testa mobile
Sono necessari m per coprire una traccia e devono estendersi su n tracce.
=sm×n
Tempo di trasmissione
Tempo di lettura/scrittura
La velocità di rotazione è r, il numero di byte letti e scritti è b e il numero di byte su ciascuna traccia è N
= b/(r N)
ritardo
La velocità del disco è r
= 1/(2r)
Algoritmo di pianificazione del disco
Influirà direttamente sul tempo di ricerca
Primo arrivato, primo servito
Prima il tempo di ricerca più breve
Può causare fame
Algoritmo di scansione
La testa magnetica può muoversi solo nella direzione opposta quando si sposta sulla traccia più interna o più esterna.
Anche se lo strato più esterno o più interno non elabora la richiesta, devi comunque spostarti qui prima di iniziare a muoverti nella direzione opposta.
Non causerà la fame
guarda l'algoritmo
Miglioramenti dell'algoritmo di scansione
Se non ci sono altre richieste nella direzione del movimento della testa, puoi cambiare direttamente la direzione.
Scansione del ciclo (invio dell'ascensore)
Risolve il problema della risposta irregolare dell'algoritmo di scansione a varie posizioni
Non rispondere ad alcuna richiesta al ritorno e spostarsi direttamente alla fine di partenza
Cambia direzione solo dopo esserti spostato fino al bordo (uguale all'algoritmo di scansione)
Algoritmo c-look
Miglioramenti alla scansione del loop
Non è necessario spostarsi sul bordo per cambiare la direzione. La direzione di movimento può essere modificata senza alcuna altra richiesta.
Modi per ridurre la latenza
Numerazione alternativa
Mantenere i settori logicamente adiacenti fisicamente separati
Denominazione fuori luogo
Lascia che i settori dello stesso settore siano sfalsati (ad esempio, il settore 0 e il settore 1 sono separati da settori con altri numeri)
Progettazione della struttura degli indirizzi
Numero del cilindro-numero del disco-numero del settore
Tempo di movimento della testa ridotto
Gestione del disco
Inizializzazione del disco
formato fisico
Dividere ciascuna traccia del disco in settori
Partizione
Partizionare il disco, ogni partizione è composta da diversi cilindri
formattazione logica
Crea file system
blocco di avvio
All'accensione del computer sono necessarie una serie di operazioni di inizializzazione, che si completano eseguendo il programma bootloader.
Il bootloader completo è memorizzato nel blocco di avvio (blocco di avvio) del disco, che si trova in una posizione fissa sul disco
Elaborazione blocco errata
I blocchi danneggiati sono guasti hardware
Per disco semplice
I blocchi danneggiati sono opachi per il sistema operativo (verranno contrassegnati)
Per dischi complessi
settore di riserva
Per i dischi complessi, il controller del disco manterrà un elenco collegato di blocchi danneggiati, lo inizializzerà durante la formattazione fisica e utilizzerà settori di riserva per sostituire i blocchi danneggiati.
Unità SSD a stato solido
principio
Basato sulla memoria flash Appartiene alla ROM cancellabile elettricamente (EEPROM)
composizione
livello di traduzione flash
Numero del blocco logico di traduzione
Trova la pagina corrispondente
supporti di memorizzazione
Chip di memoria flash multipli
Ogni chip contiene più blocchi
Ogni blocco contiene più pagine
Leggere e scrivere performance
nelle pagine
in blocchi
Supporta l'accesso casuale
Velocità di lettura elevata Velocità di scrittura lenta
Confronto con il disco rigido meccanico
L'SSD legge e scrive più velocemente dei dischi rigidi meccanici e ha accesso casuale
L'SSD è silenzioso e silenzioso
Un determinato blocco di SSD verrà danneggiato dopo essere stato cancellato più volte. I settori meccanici del disco rigido non verranno danneggiati a causa della scrittura pesante
Indossare il livellamento
operazioni di cancellazione medie tra i blocchi
Livellamento dinamico dell'usura
Durante la scrittura dei dati, dare la priorità ai blocchi di memoria flash con meno cancellazioni accumulate.
livellamento dell'usura statica
Il vecchio blocco è responsabile delle operazioni di lettura. Il nuovo blocco è responsabile delle operazioni di scrittura.
Statico è meglio che dinamico
Capitolo 5 Gestione IO
Classificazione delle apparecchiature
dispositivo di blocco
Lo scambio di dati avviene a blocchi
Velocità di trasmissione elevata
dispositivo di carattere
Lo scambio di dati è in caratteri
La velocità di trasferimento è bassa e non gestibile
dispositivo a bassa velocità
Mouse e tastiera
attrezzatura a media velocità
stampante
apparecchiature ad alta velocità
unità disco, unità CD
interfaccia io
controllore del dispositivo
Situato tra la CPU e il dispositivo
Interfaccia tra il controller del dispositivo e la CPU
Contiene linee dati, linee indirizzo, linee di controllo
Interfaccia tra il controller del dispositivo e il dispositivo
Nel controller sono presenti una o più interfacce del dispositivo
logica
Realizzare il controllo delle apparecchiature
Funzioni del controller del dispositivo
Accetta comandi per identificare la CPU
scambio di dati
Identificare e segnalare lo stato del dispositivo
riconoscimento dell'indirizzo
buffer dei dati
controllo degli errori
porto io
Registri nel controller del dispositivo a cui può accedere direttamente la CPU
In altre parole, più porte io formano un'interfaccia io
registro dati
registro di stato
registro di controllo
Metodo di comunicazione CPU e porta io
Indirizzamento indipendente
Assegnare un numero di porta a ciascuna porta e solo il sistema operativo può accedere alla porta utilizzando speciali istruzioni io
Indirizzamento unificato
A ciascuna porta viene assegnato un indirizzo di memoria univoco
metodo di controllo io
controllo diretto del programma
La CPU controlla lo stato della periferica in un ciclo finché non determina che la parola si trova nel registro dati dell'io controller.
Modalità guidata dall'interruzione
Consentire ai dispositivi io di interrompere attivamente il funzionamento della CPU e richiedere servizi, liberando così la CPU
Interrompere la CPU ogni volta che è necessario trasferire dati
Modalità DMA
Stabilire un percorso di scambio dati diretto tra i dispositivi io e la memoria
Interrompe la CPU al termine del batch di trasferimento dati richiesto
Quando la CPU emette un'istruzione, può solo leggere o scrivere blocchi di dati consecutivi.
Modalità di controllo del canale
Un processore specificamente responsabile dell'input e dell'output
è un tipo di hardware
La CPU emette un comando io, indicando la posizione del programma canale e del dispositivo io per l'esecuzione.
Il canale esegue il programma del canale in memoria
I canali condividono la memoria con la CPU
gerarchia del software io
Software io utente
Implementare la tecnologia di spooling
tecnologia dei dispositivi virtuali
Migliorare l'utilizzo di attrezzature esclusive
Converti un dispositivo esclusivo in un dispositivo condiviso
Allevia la contraddizione tra l'alta velocità della CPU e la bassa velocità del dispositivo io
tramite software
Richiede supporto tecnico multi-programmazione
Il sistema apre due aree nell'area fissa del disco, pozzetti di ingresso e uscita.
Apri due buffer in memoria: buffer di input e buffer di output
Stampante condivisa
Dispositivo esclusivo
Un dispositivo che consente l'uso seriale da parte di singoli processi
Utilizza l'allocazione statica
Dispositivo condiviso
Un dispositivo che consente a più processi di utilizzarlo insieme
Utilizzo simultaneo in senso macro Microscopicamente si alterna ancora
Utilizza l'allocazione dinamica
Principi di stampa condivisi
Il sistema inserisce le richieste di stampa richieste da ciascun utente nel vano di input del disco e utilizza la differenza di velocità tra disco, memoria e CPU per ottenere un'alternanza microscopica e una simultaneità macroscopica.
Software indipendente dal dispositivo (software indipendente dal dispositivo)
indipendenza
Il dispositivo con cui l'utente sta programmando non ha nulla a che fare con il dispositivo reale
Funzione
Gestisci la tabella dei dispositivi logici
Configurare solo una tabella di dispositivi logici del sistema LUT
Configura la LUT della tabella dei dispositivi logici per ciascun utente
controllo degli errori
Assegnazione e riciclaggio delle apparecchiature
Fattori considerati nell'allocazione
Proprietà intrinseche del dispositivo
Algoritmo di allocazione dei dispositivi
Sicurezza dell'allocazione dei dispositivi
Metodo di distribuzione sicuro
Dopo che il processo ha emesso una richiesta io, entra nello stato di blocco e non viene rilasciato finché l'operazione io non viene completata.
CPU e dispositivi io diventano lavoro seriale
Metodo di allocazione non sicuro
Dopo che il processo ha emesso una richiesta io, continua a essere eseguito e può ancora emettere richieste io. Entrerà in blocco solo quando la richiesta io non può essere soddisfatta.
situazione di stallo possibile
strategia di allocazione
allocazione statica
Assegnare tutte le risorse necessarie fin dall'inizio
allocazione dinamica
Continuare l'allocazione secondo necessità durante l'esecuzione del processo
Struttura dei dati di allocazione dei dispositivi
Relazione tra canale, controller e dispositivo
Tabella di controllo del dispositivo DCT
Rappresenta un determinato dispositivo e il contenuto della voce della tabella corrisponde a ciascun attributo del dispositivo.
Tabella di controllo del controller COCT
Tabella di controllo canali CHCT
Ogni canale corrisponde a un CHCT
Tabella dispositivi di sistema SDT
Compresi tutti i dispositivi
Miglioramenti alla fase di assegnazione
Nome del dispositivo logico fornito dall'utente
Attraverso la mappatura dei nomi dei dispositivi logici e dei nomi dei dispositivi fisici (tabella dei dispositivi logici LUT)
Le voci LUT includono nomi di dispositivi logici, nomi di dispositivi fisici e indirizzi di voci di driver di dispositivo.
Gestione del buffer
Scopo
Risolve il problema dell'accumulo di dati causato dalla velocità di input e output inferiore alla velocità di elaborazione della CPU
buffer singolo
Calcolare il tempo di elaborazione di ciascun dato
Assumi uno stato iniziale e calcola il tempo necessario per raggiungere questo stato la prossima volta
Il tempo di input nel buffer è T, il tempo di trasferimento del buffer nell'area di lavoro è M e il tempo di elaborazione dei dati è C
Stato iniziale: area di lavoro piena, buffer vuoto
Tempo impiegato per elaborare ciascun blocco di dati: MAX (C, T) M
La formula è di riferimento, i problemi specifici vengono analizzati in dettaglio e viene utilizzato un diagramma di Gantt.
doppio buffering
L'area di lavoro è vuota, un buffer è vuoto e un buffer è pieno.
Tempo impiegato per elaborare ciascun blocco di dati: MAX (C M, T)
pool buffer
Abilita processi simultanei per input e output in modo efficiente
Implementare la pianificazione io
Utilizzare un algoritmo per determinare un buon ordine per elaborare le richieste io
Protezione del dispositivo
I dispositivi vengono visualizzati come file speciali, a ciascun file viene assegnato FCB e le autorizzazioni vengono impostate
driver del dispositivo
Controllo specifico sui dispositivi hardware
Calcola il numero del cilindro, il numero della testina, il numero del settore, ecc. del disco in cui si trovano i dati
Dispositivi diversi richiedono driver diversi
ioAPI
interfaccia del dispositivo a caratteri
get/put chiama, legge e scrive un carattere sul dispositivo a caratteri
bloccare l'interfaccia del dispositivo
chiamata di sistema lettura/scrittura: legge e scrive caratteri cercare: modificare
Interfaccia del dispositivo di rete
interfaccia presa di rete chiamata di sistema socket: crea un socket di rete e specifica il protocollo di rete bind: associa il socket alla porta locale connect: collega il socket all'indirizzo remoto read/write: legge e scrive dati dal socket
Bloccante/non bloccante io
blockingio
Il programma emette una chiamata di sistema io e il processo si blocca e attende.
non bloccante io
Il programma emette una chiamata di sistema io e la chiamata di sistema può tornare rapidamente e il processo non ha bisogno di bloccarsi e attendere.