Podcast
Questions and Answers
Quale dei seguenti è un esempio di schedulazione non-preemptive?
Quale dei seguenti è un esempio di schedulazione non-preemptive?
- Il sistema operativo forza un processo a cedere la CPU dopo un certo periodo di tempo.
- Un interrupt che causa il passaggio da 'run' a 'ready'.
- Un processo termina la sua esecuzione.
- Un processo passa dallo stato 'run' allo stato 'wait' a causa di una richiesta di I/O. (correct)
Un processo I/O-bound è caratterizzato da picchi di CPU lunghi e infrequenti.
Un processo I/O-bound è caratterizzato da picchi di CPU lunghi e infrequenti.
False (B)
Come viene chiamato il componente che assegna la CPU al processo selezionato dallo scheduler, gestendo il cambio di contesto?
Come viene chiamato il componente che assegna la CPU al processo selezionato dallo scheduler, gestendo il cambio di contesto?
Dispatcher
Il tempo necessario per fermare un processo e avviarne un altro è noto come ________ del dispatcher.
Il tempo necessario per fermare un processo e avviarne un altro è noto come ________ del dispatcher.
Quale criterio di schedulazione misura il tempo totale trascorso da un processo nella coda di ready?
Quale criterio di schedulazione misura il tempo totale trascorso da un processo nella coda di ready?
Nella schedulazione preemptive, un processo mantiene la CPU fino al suo completamento o al passaggio allo stato di attesa.
Nella schedulazione preemptive, un processo mantiene la CPU fino al suo completamento o al passaggio allo stato di attesa.
Quale algoritmo di schedulazione assegna la CPU al processo che l'ha richiesta per primo?
Quale algoritmo di schedulazione assegna la CPU al processo che l'ha richiesta per primo?
Perché la schedulazione preemptive può causare inconsistenza nei dati condivisi?
Perché la schedulazione preemptive può causare inconsistenza nei dati condivisi?
Quale protocollo di condivisione è comunemente utilizzato nei sistemi UNIX per permettere relazioni molti a molti tra server e clienti?
Quale protocollo di condivisione è comunemente utilizzato nei sistemi UNIX per permettere relazioni molti a molti tra server e clienti?
Un sistema operativo monoutente può implementare la condivisione dei file conservando più attributi per ogni file e directory?
Un sistema operativo monoutente può implementare la condivisione dei file conservando più attributi per ogni file e directory?
Cosa significa l'acronimo ACL in relazione alla protezione dei file in linux?
Cosa significa l'acronimo ACL in relazione alla protezione dei file in linux?
Nei sistemi UNIX, i permessi di protezione dei file sono definiti da tre campi di 3 bit ciascuno, rappresentati da ______.
Nei sistemi UNIX, i permessi di protezione dei file sono definiti da tre campi di 3 bit ciascuno, rappresentati da ______.
Abbina i seguenti tipi di accesso ai file con le corrispondenti azioni:
Abbina i seguenti tipi di accesso ai file con le corrispondenti azioni:
Quale dei seguenti NON è un tipo di operazione controllabile tipicamente offerto dai meccanismi di protezione dei file?
Quale dei seguenti NON è un tipo di operazione controllabile tipicamente offerto dai meccanismi di protezione dei file?
La capacità di un sistema operativo di 'montare' un file system significa che crea una copia fisica dei file dalla partizione remota alla partizione locale.
La capacità di un sistema operativo di 'montare' un file system significa che crea una copia fisica dei file dalla partizione remota alla partizione locale.
Perché la possibilità di accedere direttamente a qualsiasi blocco sul disco è una caratteristica fondamentale per un file system efficiente?
Perché la possibilità di accedere direttamente a qualsiasi blocco sul disco è una caratteristica fondamentale per un file system efficiente?
Quale delle seguenti operazioni è eseguibile su una directory?
Quale delle seguenti operazioni è eseguibile su una directory?
In una directory a singolo livello, è facile rispettare l'univocità dei nomi in un ambiente multiutente.
In una directory a singolo livello, è facile rispettare l'univocità dei nomi in un ambiente multiutente.
In una struttura di directory a due livelli, cosa è necessario per identificare univocamente un file?
In una struttura di directory a due livelli, cosa è necessario per identificare univocamente un file?
Nelle directory con struttura ad albero, ogni file ha un percorso _____ che va dalla radice al file stesso.
Nelle directory con struttura ad albero, ogni file ha un percorso _____ che va dalla radice al file stesso.
Abbina i seguenti tipi di directory con le loro caratteristiche principali:
Abbina i seguenti tipi di directory con le loro caratteristiche principali:
Cosa permette la struttura di directory a grafo aciclico che non è possibile con la struttura ad albero semplice?
Cosa permette la struttura di directory a grafo aciclico che non è possibile con la struttura ad albero semplice?
Qual è la differenza fondamentale tra un percorso assoluto e un percorso relativo in una struttura di directory ad albero?
Qual è la differenza fondamentale tra un percorso assoluto e un percorso relativo in una struttura di directory ad albero?
Supponendo di avere una struttura di directory a grafo aciclico, cosa succede se un file condiviso tra due directory viene modificato in una di esse?
Supponendo di avere una struttura di directory a grafo aciclico, cosa succede se un file condiviso tra due directory viene modificato in una di esse?
Nello schema combinato utilizzato in UNIX, quanti puntatori nell'inode del file indirizzano direttamente ai blocchi dati?
Nello schema combinato utilizzato in UNIX, quanti puntatori nell'inode del file indirizzano direttamente ai blocchi dati?
Nello schema combinato, un blocco di seconda indirezione contiene direttamente i dati del file.
Nello schema combinato, un blocco di seconda indirezione contiene direttamente i dati del file.
Descrivi brevemente come funziona la lista dello spazio libero per la gestione dello spazio su disco.
Descrivi brevemente come funziona la lista dello spazio libero per la gestione dello spazio su disco.
In un vettore di bit per la gestione dello spazio libero, un blocco libero ha il rispettivo bit settato a ______, mentre un blocco occupato lo ha settato a 0.
In un vettore di bit per la gestione dello spazio libero, un blocco libero ha il rispettivo bit settato a ______, mentre un blocco occupato lo ha settato a 0.
Qual è uno svantaggio principale dell'utilizzo di un vettore di bit per rappresentare lo spazio libero su un disco molto grande?
Qual è uno svantaggio principale dell'utilizzo di un vettore di bit per rappresentare lo spazio libero su un disco molto grande?
Nello schema combinato descritto, quanti blocchi dati totali sono allocabili, considerando i blocchi diretti, di prima indirezione, di seconda indirezione e di terza indirezione?
Nello schema combinato descritto, quanti blocchi dati totali sono allocabili, considerando i blocchi diretti, di prima indirezione, di seconda indirezione e di terza indirezione?
Come si ottiene il numero di blocco a partire dallo spiazzamento del primo bit con valore 1 nel vettore di bit che rappresenta lo spazio libero?
Come si ottiene il numero di blocco a partire dallo spiazzamento del primo bit con valore 1 nel vettore di bit che rappresenta lo spazio libero?
La lista collegata per la gestione dello spazio libero memorizza l'indirizzo del primo blocco libero in una locazione speciale sul disco, e ogni blocco libero contiene un puntatore al blocco libero precedente.
La lista collegata per la gestione dello spazio libero memorizza l'indirizzo del primo blocco libero in una locazione speciale sul disco, e ogni blocco libero contiene un puntatore al blocco libero precedente.
Prima della serie 2.6.x, cosa indicavano i numeri dispari nel versioning del kernel?
Prima della serie 2.6.x, cosa indicavano i numeri dispari nel versioning del kernel?
Nel modello a tre cifre (es. 2.6.x.y), la terza cifra viene incrementata solo in caso di aggiornamenti riguardanti la sicurezza.
Nel modello a tre cifre (es. 2.6.x.y), la terza cifra viene incrementata solo in caso di aggiornamenti riguardanti la sicurezza.
Cos'è l'utente root in un sistema operativo multiuser?
Cos'è l'utente root in un sistema operativo multiuser?
L'esecuzione di più parti di uno stesso programma in contemporanea è detta ______.
L'esecuzione di più parti di uno stesso programma in contemporanea è detta ______.
Abbina le seguenti funzionalità del kernel con la loro descrizione:
Abbina le seguenti funzionalità del kernel con la loro descrizione:
Quale delle seguenti NON è una caratteristica del kernel?
Quale delle seguenti NON è una caratteristica del kernel?
Chi ha fondato la Free Software Foundation (FSF) e in che anno?
Chi ha fondato la Free Software Foundation (FSF) e in che anno?
Qual è l'obiettivo principale del progetto GNU, alla base della Free Software Foundation?
Qual è l'obiettivo principale del progetto GNU, alla base della Free Software Foundation?
Quale algoritmo di schedulazione del disco può causare la starvation di alcune richieste?
Quale algoritmo di schedulazione del disco può causare la starvation di alcune richieste?
L'algoritmo C-SCAN serve le richieste durante il ritorno all'inizio del disco.
L'algoritmo C-SCAN serve le richieste durante il ritorno all'inizio del disco.
Come viene anche chiamato l'algoritmo SCAN a causa del suo funzionamento?
Come viene anche chiamato l'algoritmo SCAN a causa del suo funzionamento?
Nei computer general purpose, di default si trova la schedulazione del disco di tipo ______ o LOOK.
Nei computer general purpose, di default si trova la schedulazione del disco di tipo ______ o LOOK.
Abbina i seguenti algoritmi di schedulazione del disco con le loro caratteristiche principali:
Abbina i seguenti algoritmi di schedulazione del disco con le loro caratteristiche principali:
Quale tipo di allocazione dei file tende a causare un maggiore movimento della testina del disco?
Quale tipo di allocazione dei file tende a causare un maggiore movimento della testina del disco?
Qual è il primo tipo di formattazione che viene eseguita su un disco prima di poter memorizzare i dati?
Qual è il primo tipo di formattazione che viene eseguita su un disco prima di poter memorizzare i dati?
Quanti file system possono coesistere su una singola partizione del disco?
Quanti file system possono coesistere su una singola partizione del disco?
Flashcards
Picchi CPU e I/O
Picchi CPU e I/O
Alternanza tra periodi di utilizzo intenso della CPU e periodi di attesa per operazioni di I/O.
Schedulatore a breve termine
Schedulatore a breve termine
Trasferisce il controllo della CPU a un processo dalla coda di ready.
Schedulazione non-preemptive
Schedulazione non-preemptive
La CPU viene rilasciata solo quando il processo termina o attende (I/O).
Schedulazione preemptive
Schedulazione preemptive
Signup and view all the flashcards
Dispatcher
Dispatcher
Signup and view all the flashcards
Latenza del dispatcher
Latenza del dispatcher
Signup and view all the flashcards
Utilizzo della CPU
Utilizzo della CPU
Signup and view all the flashcards
FCFS (First Come First Served)
FCFS (First Come First Served)
Signup and view all the flashcards
Directory del dispositivo
Directory del dispositivo
Signup and view all the flashcards
Operazioni su directory
Operazioni su directory
Signup and view all the flashcards
Organizzazione directory
Organizzazione directory
Signup and view all the flashcards
Directory a singolo livello
Directory a singolo livello
Signup and view all the flashcards
Directory a due livelli
Directory a due livelli
Signup and view all the flashcards
Nome del percorso
Nome del percorso
Signup and view all the flashcards
Directory ad albero
Directory ad albero
Signup and view all the flashcards
Percorso assoluto
Percorso assoluto
Signup and view all the flashcards
Montaggio del file system
Montaggio del file system
Signup and view all the flashcards
Condivisione dei file
Condivisione dei file
Signup and view all the flashcards
Network File System (NFS)
Network File System (NFS)
Signup and view all the flashcards
Protezione dei file
Protezione dei file
Signup and view all the flashcards
ACL (Access Control List)
ACL (Access Control List)
Signup and view all the flashcards
Categorie di utenti (protezione)
Categorie di utenti (protezione)
Signup and view all the flashcards
Permessi UNIX (rwx)
Permessi UNIX (rwx)
Signup and view all the flashcards
Caratteristiche del file system
Caratteristiche del file system
Signup and view all the flashcards
Svantaggio della schedulazione SJF su disco
Svantaggio della schedulazione SJF su disco
Signup and view all the flashcards
Algoritmo SCAN (dell'ascensore)
Algoritmo SCAN (dell'ascensore)
Signup and view all the flashcards
C-SCAN (Circular Scan)
C-SCAN (Circular Scan)
Signup and view all the flashcards
LOOK e C-LOOK
LOOK e C-LOOK
Signup and view all the flashcards
SSTF (Shortest Seek Time First)
SSTF (Shortest Seek Time First)
Signup and view all the flashcards
Formattazione a basso livello (fisica)
Formattazione a basso livello (fisica)
Signup and view all the flashcards
Partizionamento del disco
Partizionamento del disco
Signup and view all the flashcards
Formattazione logica
Formattazione logica
Signup and view all the flashcards
Numeri pari (kernel)
Numeri pari (kernel)
Signup and view all the flashcards
Numeri dispari (kernel)
Numeri dispari (kernel)
Signup and view all the flashcards
Multiuser
Multiuser
Signup and view all the flashcards
Multitasking
Multitasking
Signup and view all the flashcards
Multithreading
Multithreading
Signup and view all the flashcards
Multiprocessing
Multiprocessing
Signup and view all the flashcards
Username
Username
Signup and view all the flashcards
Utente root
Utente root
Signup and view all the flashcards
Schema combinato
Schema combinato
Signup and view all the flashcards
Blocchi diretti
Blocchi diretti
Signup and view all the flashcards
Blocchi indiretti
Blocchi indiretti
Signup and view all the flashcards
Blocco di seconda indirezione
Blocco di seconda indirezione
Signup and view all the flashcards
Lista dello spazio libero
Lista dello spazio libero
Signup and view all the flashcards
Vettore di bit
Vettore di bit
Signup and view all the flashcards
Lista collegata (spazio libero)
Lista collegata (spazio libero)
Signup and view all the flashcards
Spiazzamento
Spiazzamento
Signup and view all the flashcards
Study Notes
Certo, ecco le note di studio sul testo fornito:
Teoria dei Sistemi Operativi
- Un sistema operativo è un insieme di programmi essenziali per la gestione delle risorse hardware del computer.
- Funge da tramite tra gli applicativi utente e l'hardware, decidendo come allocare le risorse richieste.
- Il kernel è il programma sempre in esecuzione all'interno del sistema operativo.
Sistemi Mainframe
- I sistemi mainframe, utilizzati per applicazioni commerciali e scientifiche, si dividono in:
- Sistemi a lotti: l'utente manda un "job" all'operatore che lo esegue sulla macchina e consegna il risultato quando pronto.
- Sistemi multiprogrammati: mantengono più job in memoria per evitare che la CPU rimanga inattiva durante le operazioni di I/O.
- Sistemi time-sharing: assegnano ad ogni processo utente una porzione di tempo per l'uso della CPU, dando l'impressione all'utente di un sistema dedicato.
Sistemi Desktop
- Sistemi desktop: ottimizzano uso della CPU, comodità e velocità di risposta, gestendo anche la protezione dei file in reti.
Sistemi Multiprocessore
- Sistemi multiprocessore (paralleli o strettamente accoppiati): usano più processori che comunicano e condividono risorse.
- Vantaggi: quantità maggiore di output, economia di scala e aumento dell'affidabilità .
- Tipi: simmetrico (SMP), dove ogni processore esegue una copia del S.O., e asimmetrico, con un processore master che gestisce il lavoro degli altri.
Sistemi Distribuiti
- Sistemi distribuiti (con "processori lascamente accoppiati"): costituiti da reti di computer che non condividono memoria e clock; richiedono una connessione di rete.
- Si dividono in sistemi client-server (server con collo di bottiglia) e peer-to-peer (più efficienti).
Sistemi Cluster
- I sistemi cluster sono computer collegati tramite LAN che condividono la memoria di massa, offrendo affidabilità tramite ridondanza e monitoraggio.
- Si dividono in cluster simmetrici (macchine che si controllano a vicenda) e asimmetrici (una macchina esegue operazioni e l'altra esegue il controllo).
Sistemi Real-Time
- Sistemi real-time: completano le operazioni in tempi prefissati, importanti in determinate operazioni.
- Si dividono in: hard real-time (compiti critici completati nei tempi stabiliti, mischiabile con memorie volatili e di sola lettura) e soft real-time (massima priorità ai processi critici senza tempo massimo di completamento,mischiabile con i S.O. general pourpose).
Sistemi Palmari
- Sistemi palmari: utilizzati in dispositivi portatili di ridotte dimensioni gestendo hardware poco efficiente per ottimizzare l'uso della batteria.
Computer Embedded
- Computer embedded: usano sistemi operativi real-time con hardware e prestazioni limitate e interfaccia limitata.
Funzionamento del Computer
- CPU e periferiche di I/O concorrono per l'accesso alla memoria.
- Programma di bootstrap: avvia e inizializza il sistema, caricando il kernel del S.O.
- Sistemi operativi moderni sono interrupt driven, con eventi segnalati tramite interrupt hardware o software.
Vettori Interrupt
- Il vettore degli interrupt contiene gli indirizzi delle routine di gestione dell'interrupt (interrupt handler).
- Polling: scansione dei dispositivi per verificare richieste di interrupt (spreca tempo di CPU).
Struttura dell'I/O
- Ogni controller di dispositivo I/O ha buffer e registri speciali.
- Operazioni I/O possono essere sync (bloccano il processo) o async (non bloccano il processo).
Device Status Table
- La Device Status Table indica, per ogni dispositivo, il tipo, l'indirizzo e lo stato attuale.
DMA
- Molti dispositivi I/O ad alta velocità usano il DMA (Direct Memory Access) per trasferire dati senza intervento della CPU.
Struttura della Memoria
- La memoria centrale RAM ospita i programmi in esecuzione.
- La memoria secondaria (disco magnetico) memorizza in maniera permanente dati e programmi.
I/O Memory Mapped
- Blocchi di indirizzi della memoria che puntano ai registri del controller del dispositivo (porte I/O).
Disco Magnetico
- Diviso in tracce circolari e settori.
- Tempo di trasferimento dati: dipende dal tasso di trasferimento e dal tempo di posizionamento (seek + latenza).
Drive o Lettore di Dischi
- Collegato a un computer tramite cavi chiamati I/O bus (EIDE, ATA, SCSI).
Coerenza Della Cache
- Problema risolto via hardware per garantire che cache e registri CPU abbiano la stessa versione dei dati.
Protezioni Hardware
- Sistemi operativi multiprogrammati devono assicurare che un programma errato non influenzi gli altri.
- Modalità di funzionamento: utente (bit di modalità = 1) e supervisore (bit di modalità = 0).
- Istruzioni privilegiate eseguibili solo in modalità supervisore.
Chiamate di Sistema
- Un processo chiede al S.O. l'esecuzione di istruzioni privilegiate tramite chiamate di sistema. Un hardware genera una trap nel caso di parametri illegali, in modo da fornire un messaggio di errore (es. accesso a locazioni della memoria di altri processi, con istruzioni privilegiate).
Registro Base o Registro Limite
- Per proteggere i programmi l'uno dall'altro sono definiti range di indirizzi legali di un programma.
Timer
- Il Timer impedisce ad un programma di trattenere la CPU per un tempo infinito o serve per il time sharing usando in modo appropriato il time slice.
Processo
- Il processo ha bisogno di determinate risorse per eseguire e vanno alloccate durante la creazione o l'esecuzione. E può essere a singolo flusso di attività /a più flussi di esecuzione (multithreaded). I processi associati allo stesso programma sono codici separati e sezioni di dati differenti ad accesso sicuro.
- Va deciso ogni utente come e se può accedere a i dati/programmi.
Memoria Secondaria
- Il file system permette di salvare dati e programma e va definito come utilizzarlo o accedervi. Usata quindi come sorgente o destinazione del processo in esecuzione.
- L'utente impartisce degli ordini tramite istruzioni di controllo, tramite shell ed è sempre lì ad attendere comandi. Di tipo grafica o a caratteri, con oggetti eseguibili, precostituiti o batch (svolte in gruppo). Si compilava, fornisce librerie di supporto e vari funzioni per i compilatori.
Passare Parametri al S.O.
- Si può fare tramite:
- Nei registri
- In un blocco
- Stack
Struttura S.O. (Architettura)
- Diviso in piccole parti per faciliarne le modifiche: a struttura semplice (minima gerarchia ES: Ms-Dos), o monolitica (Unix), o a strati (Os/2), o a microkemel (So Mach), ibrida (Mac Os X). Struttura modulare (Solaris, Linux, Mac Os X , Unix) usa programmazioni orientate ad oggetti, con interfacce protette/definite, come se fosse a strati.
Macchina Virtuale
- Hardware a kernel trattati come blocco, con CPU schedulata. Con vantaggi di protezione risorse (condivise via software da minidisk), e per lo sviluppo dei S.O. per via del tempo di sviluppo per via delle interruzioni del sistema e il tempo di sviluppo.
- Vanno definiti subito obiettivi, hardware e tipi di S.O..
Obiettivi
- User-friendly
- Affidabile
- Veloce
- Scalabile
- Affidabile,flessibile, efficiente
- Soggette a specifiche non soggette a stand.
Microkernel
- Implementano primitive indipendenti dalla politica aggiungendo meccanismi o appositi modelli.
Windows
- Politica e meccanismi fusi in un unico sistema per un rafforzamento globale.
Linguaggi di programmazione
- Scrivere con C e C++ agevolato.
Generazione S.O.
- Sysgen (esegue in modo appropriato il S.O. su tal macchina), info hardware, CPU, memoria, dispositivi disponibili, e che funge automaticamente sul tipo di macchina.
Boot.
- Procedura di avvio del computer.
Caricatore Bootstrap / MBR
- Recupera il bootstrap porgram dal disco.
Processo
- Programma in esecuzione che passa per stati in un periodo di tempo.
- Ogni CPU può eseguirne solo uno mentre il processo può essere eseguito su più CPU.
Submit
- Viene quando S.O. idintifica le risorse.
Hold
- Qunado S.O. ordina le richieste.
Macroscheduling
- Si definisce ordine di ingresso delle richeste. Process Scheduler (in memoria): Definisce le richieste, fa riferimento il Process Control block (in esecuzione) e lo aggiorna volta x volta.
MicroScheduling
- Esegue operazione in modo non agevolato se bisogna aspettare operazione in arrivo,
- A quel punto si salva il Process Control block e si mette il in attesa finita l'operazione può passare a running che viene liberato dopo l'uso.
Long-Term Scheduling
- Controlla il livello di multi programmazione.
Short-Term Scheduling
- Sceglie il processo da eseguire assegnando la CPU.
Medium Termin Scheduling
- Si riprende l'esecuzione quando lo swap è terminato.
Creazione processo:
- Il proceso padre crea un processo figlio, e l'operazione si ripete.
Operazioni figli
- Possono usare le stesse risorse del padre. Condivide lo spazio oppure carica un nuovo programma.
Chiamate di sistema
Fork() Padre crea il figlio con un copia dello spazio indirizzamento, puà ò andare in esecuzione con una exec(). Il padre si può mettere in pausa con wait(). Con exit() l'operazione viene terminata ma l'utente può vederlo finchè non lo elimina manualmente. In un gestore di memoria, va usato il garbage collector per non avere in memoria le risorse anche se terminato il thread, altrimenti riduce le prestazione della macchina.
Processi cooperanti
- Si scambiano informazioni su cui si gestisce quindi l'accesso.
Produttore/Consumatore
- Paradigma per processi cooperanti, i due processi si scambiano informazioni con apposito buffer. Ci sono buffer illimitati e limititati, consumatore aspetta che siano vuoti e produrre se pieno.
Comunicazioni tra processi
- Tramiti Inter Process Communication scmabio di messaggi (Send/receive).
Comunicazioni Dirette
- Schema simmetrico (sia mittente che destinatario sanno l'altro nome). Schema asimmetrico lo sanno i mittenti (send()), i destinatari con una variabile con riceve.
Indirette
- Tramite mailbox.
Socket
- Estremi di comunicazione usati in reti. LoopBack : 127.0.0.1 usato dal computer per riferirsi a se stesso.
Remote Procedure Call
- Consente di inserire dei processi grazie all'uso messaggi di protocollo standard (invia a demone RPC, con valori in formato XDA (external data rappresention) ad architettura remota. Se non arriva conferma client esegue l'ordinamento per intero o solo 1 volta.
Remote Method Invocation
- Permette thread per connettere oggetti remoti a computer connessi alla rete.
Thread
- Consente ad i programmi di compiere un'operazione per volta creando processi figli onerosi, vantaggi:
- Economia -Condivisione delle risorse.
Kernel Gestiti direttente
- Si assegna a thread kernel a chiamate bloccanti, upcall è la procedura gestita col gestore upcall a carico del sistema.
API
- Standard Posix (API fatte usando questa specifica con Linux, Solaris, Windows).
Schedulatore CPU
- Non preemptivate-> lo stato va da Wait, Run, Terminated in modo volontario
- Preemtivate-> Se da run a ready o da wait la CPU si può arrestare, anche involontariamente, e può lasciare condivisione dati, portando a incosistenza.
Dispatcher
- DÃ il controllo della CPU a schedulatore.
Criterio diSchedulazione( Algoritmi )
- FCFS First Come First Served (Tempo lungo medio, ogni ciclo ha razione di tempo di CPU ad intervalli regolari)
- SJF ShorterJobFirst o SRTF Sost Short Remaining Time First (Priorita')
- Round Robin (con priorità , può portare a starvation)
CODA a più LIvelli
- Interattività o Background. Puà ò cambiare coda, evitando che i processi restino nelle code a bassa priorità ' alzando in coda per evitare La Starvation (il quanto varia in base al contesto); si definiscono il numero di code, il metodo e il momento.
Schedulazione Threads
- PCS in competizione del thread, SCS competizione del sistema (Modello Uno a Uno usa SCO. SCS spesso è basato su una priorità definita da programmatore).
Processi Cominicazioone
Paradigma Producttore Consumatore
- Aggiungiamo un buffer per maggiori elementi e la sua relazione con l'aiuto del contatore, dove quest'ultimo ha un valore in base All'ordine delle azioni (il produttore esegue registri, aspetta condizione, etc.), cosa succede se contatore e risorsa condivisa è mutua esclusione. A tal proposito i Thread manipulano le informazioni e non ce ne sono molte.
Condizioni
- Mutua esclusione e se lo esegue qualcun altro non può esser fatto il processo, i
- Progresso,
- Attessa LImitattta,
- Soluzioni Software(complesse e efficaci) Il Software Bakery attribuisce numero progressivo per farli accedere, ma in molti sono eseguiti ad alta frequenza e ne causa problematiche pesanti. Soluzione-> disabilitazzione dell'interruttore.
Loking
- Semaforo iniziliazzionne tramite unlock; e se non esegue l'operazione correttata ripercuote sull 'intero codice e si usa istruzioni atomiche. Va usata blocco e rilascio che fa passare a Wait e riprende l'attività , con attesa attiva, tramite release; il codice e più' breve ma l'attesa e costante. Gli stalli con il codice vanno evitati facendo procedere in modo logico. L'imput più che non è lo schema applicato correttamente.
Monitor
- Costrutto in cui di linguaggio ad alto livello presenta operazioni definite con mutua esclusione, wait e singola per implementarare (block con relase).. DEADlock in cui un processo non puo' essere eseguito per via si stalli (per es con 2 dischi P1 e P2 lo usano a Test se serve l'altra, causando STallo -> non si possono gestire le risorse).
Requisiti necessari in Deadlock
- mutua esclusione
- possesso attenta
- Nessun rellascio anticipato -Attesa circolare
- Si può escludere quello che è possibile .
Deadlock.
Esamininare le richieste in modo continuo e esclude la richiesta
Detect and Recover
- Si rileva, e si recupera con allgoritmi specific per individuare qual è.
Memoria
In memoria le linee delle risorse devono andarci in modo coerente ed è importante che i dati combacino e non facciano "bordello". Compillatore unisce indirizzi in posissioni fisiche e logiche con tabelle aggiornate in tempo. Si conettte su 3 livellli:
- Compillazione,
- Caricamento,
- Esecuzione Gli iindirizzi sonno riallocatti da il sistema centrale, dove se c'è bisogno si aggiorna tutto di nuovo. L'iindrizzizzo lògico viene generato dalla cpu, quelle fisiche dalle aree fisiche assegnate. L'mmU trasmorma virtuale in fisica sfruttando supporto hardwware. Limite di range che non può essere alterato.
###Carricamento Dinamico Il loader carica solo le parti necessarie al programma, mentre il resto solo al momento. Più veloce ma funzionamneto piu lento, con il tutto in una tabella ad esso allocata per non avere errori. Permittennedo di rialloca in fase di esecuzione e caricando il codice ad eseguiire, se necessario. Va usato anche overlay che permette di far trapassare l’Utente. Puòò fare quindi una swapp, si usa il medium scheduling (attutata da mmU con trasferimento dati) o uno più lento.
Tecniche per la compillazzione
- Overlay
- Compillazione Contiqua , si inserice nella code e si inserisse il processo intero. Se le code sonno piene, si può usare partizioni multiple multiple. Non si può spostare
- ALLOcazzione Dinamicanna si può essere allocata a a più livelli come :
- FIRST Fit se il processo va ad alloccare più e piu code
- Best Fit se s'assegna il codice a piccolii pezzi. Se si usa la compattazione, non si può manomettere da lì.
Paginnazionne
Si divide la memoria fisica (frame) e lògica (paggine) nell’area di codice. Allore ha una traduzzione da tabella che permette lalloccaggio dove con la TLB si velocizza questa tabella, poi ci possono essere BIt per convalidare se il processo è corretto o meno. Puìò non essere utile negli indirizzzzi.
Si può operare in tabelle separate invertitte e per un miglioramentto della TLB la gestione avviene se è fatta da software nel
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Esplora i concetti fondamentali della schedulazione della CPU, inclusi gli approcci preemptive e non-preemptive. Approfondisci gli algoritmi di schedulazione e il ruolo del dispatcher nel cambio di contesto. Comprendi l'impatto della schedulazione sulla consistenza dei dati e i protocolli di condivisione nei sistemi.