Schedulazione CPU: Tipi e Algoritmi
48 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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.

False (B)

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.

<p>latenza</p> Signup and view all the answers

Quale criterio di schedulazione misura il tempo totale trascorso da un processo nella coda di ready?

<p>Tempo di attesa (C)</p> Signup and view all the answers

Nella schedulazione preemptive, un processo mantiene la CPU fino al suo completamento o al passaggio allo stato di attesa.

<p>False (B)</p> Signup and view all the answers

Quale algoritmo di schedulazione assegna la CPU al processo che l'ha richiesta per primo?

<p>First Come First Served (FCFS) (D)</p> Signup and view all the answers

Perché la schedulazione preemptive può causare inconsistenza nei dati condivisi?

<p>La CPU può essere rilasciata prima del termine di un’operazione in corso.</p> Signup and view all the answers

Quale protocollo di condivisione è comunemente utilizzato nei sistemi UNIX per permettere relazioni molti a molti tra server e clienti?

<p>NFS (Network File System) (B)</p> Signup and view all the answers

Un sistema operativo monoutente può implementare la condivisione dei file conservando più attributi per ogni file e directory?

<p>True (A)</p> Signup and view all the answers

Cosa significa l'acronimo ACL in relazione alla protezione dei file in linux?

<p>Access Control List</p> Signup and view all the answers

Nei sistemi UNIX, i permessi di protezione dei file sono definiti da tre campi di 3 bit ciascuno, rappresentati da ______.

<p>rwx</p> Signup and view all the answers

Abbina i seguenti tipi di accesso ai file con le corrispondenti azioni:

<p>Lettura = Permette di visualizzare il contenuto del file. Scrittura = Permette di modificare il contenuto del file. Esecuzione = Permette di eseguire il file (se è un eseguibile). Cancellazione = Permette di eliminare il file dal sistema.</p> Signup and view all the answers

Quale dei seguenti NON è un tipo di operazione controllabile tipicamente offerto dai meccanismi di protezione dei file?

<p>Compilazione (A)</p> Signup and view all the answers

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.

<p>False (B)</p> Signup and view all the answers

Perché la possibilità di accedere direttamente a qualsiasi blocco sul disco è una caratteristica fondamentale per un file system efficiente?

<p>Riduce i tempi di accesso ai dati</p> Signup and view all the answers

Quale delle seguenti operazioni è eseguibile su una directory?

<p>Ricerca, creazione, rinomina e cancellazione di un file (D)</p> Signup and view all the answers

In una directory a singolo livello, è facile rispettare l'univocità dei nomi in un ambiente multiutente.

<p>False (B)</p> Signup and view all the answers

In una struttura di directory a due livelli, cosa è necessario per identificare univocamente un file?

<p>Nome del percorso</p> Signup and view all the answers

Nelle directory con struttura ad albero, ogni file ha un percorso _____ che va dalla radice al file stesso.

<p>univoco</p> Signup and view all the answers

Abbina i seguenti tipi di directory con le loro caratteristiche principali:

<p>Directory a singolo livello = Tutti i file sono contenuti in un'unica directory. Directory a due livelli = Ogni utente ha la propria directory. Directory con struttura ad albero = Gli utenti possono creare sottodirectory. Directory a grafo aciclico = Le directory possono condividere sottodirectory e file.</p> Signup and view all the answers

Cosa permette la struttura di directory a grafo aciclico che non è possibile con la struttura ad albero semplice?

<p>Condivisione di file e sottodirectory tra directory diverse (B)</p> Signup and view all the answers

Qual è la differenza fondamentale tra un percorso assoluto e un percorso relativo in una struttura di directory ad albero?

<p>Il percorso assoluto comincia dalla radice, il percorso relativo dalla directory corrente.</p> Signup and view all the answers

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?

<p>La modifica si riflette automaticamente anche nell'altra directory. (D)</p> Signup and view all the answers

Nello schema combinato utilizzato in UNIX, quanti puntatori nell'inode del file indirizzano direttamente ai blocchi dati?

<p>13 (C)</p> Signup and view all the answers

Nello schema combinato, un blocco di seconda indirezione contiene direttamente i dati del file.

<p>False (B)</p> Signup and view all the answers

Descrivi brevemente come funziona la lista dello spazio libero per la gestione dello spazio su disco.

<p>La lista dello spazio libero registra tutti i blocchi non allocati del disco. Per creare un nuovo file, si cerca nella lista la quantità di spazio richiesta e si alloca tale spazio al nuovo file. Quando si cancella un file, il suo spazio viene riaggiunto alla lista.</p> Signup and view all the answers

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.

<p>1</p> Signup and view all the answers

Qual è uno svantaggio principale dell'utilizzo di un vettore di bit per rappresentare lo spazio libero su un disco molto grande?

<p>Il vettore diventa molto ingombrante e potrebbe non stare interamente in memoria centrale. (D)</p> Signup and view all the answers

Nello schema combinato descritto, quanti blocchi dati totali sono allocabili, considerando i blocchi diretti, di prima indirezione, di seconda indirezione e di terza indirezione?

<p>13 + 256 + 256^2 + 256^3 (D)</p> Signup and view all the answers

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?

<p>(n° bit per parola)*(n° parole con tutti bit=0)+ spiazzamento nella parola del primo bit=1</p> Signup and view all the answers

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.

<p>False (B)</p> Signup and view all the answers

Prima della serie 2.6.x, cosa indicavano i numeri dispari nel versioning del kernel?

<p>Rami di sviluppo (B)</p> Signup and view all the answers

Nel modello a tre cifre (es. 2.6.x.y), la terza cifra viene incrementata solo in caso di aggiornamenti riguardanti la sicurezza.

<p>False (B)</p> Signup and view all the answers

Cos'è l'utente root in un sistema operativo multiuser?

<p>amministratore di sistema</p> Signup and view all the answers

L'esecuzione di più parti di uno stesso programma in contemporanea è detta ______.

<p>multithreading</p> Signup and view all the answers

Abbina le seguenti funzionalità del kernel con la loro descrizione:

<p>Multiuser = Più utenti possono interagire in contemporanea Multitasking = Esecuzione di più processi su una singola CPU a divisione di tempo Multithreading = Esecuzione di più parti di uno stesso programma in contemporanea Multiprocessing = Supporto per più processori in parallelo</p> Signup and view all the answers

Quale delle seguenti NON è una caratteristica del kernel?

<p>Incompatibilità con la maggioranza degli standard UNIX (B)</p> Signup and view all the answers

Chi ha fondato la Free Software Foundation (FSF) e in che anno?

<p>Richard Stallman, 1985</p> Signup and view all the answers

Qual è l'obiettivo principale del progetto GNU, alla base della Free Software Foundation?

<p>Realizzare un sistema operativo free, nel senso più esteso del termine (A)</p> Signup and view all the answers

Quale algoritmo di schedulazione del disco può causare la starvation di alcune richieste?

<p>SJF (A)</p> Signup and view all the answers

L'algoritmo C-SCAN serve le richieste durante il ritorno all'inizio del disco.

<p>False (B)</p> Signup and view all the answers

Come viene anche chiamato l'algoritmo SCAN a causa del suo funzionamento?

<p>Algoritmo dell'ascensore</p> Signup and view all the answers

Nei computer general purpose, di default si trova la schedulazione del disco di tipo ______ o LOOK.

<p>SSTF</p> Signup and view all the answers

Abbina i seguenti algoritmi di schedulazione del disco con le loro caratteristiche principali:

<p>SCAN = Serve le richieste mentre si muove verso entrambe le estremità del disco e poi inverte la direzione. C-SCAN = Serve le richieste solo in una direzione e torna all'inizio senza servire richieste. LOOK = Simile a SCAN, ma inverte la direzione alla richiesta più esterna invece che all'estremità del disco. C-LOOK = Simile a C-SCAN, ma torna indietro dalla richiesta più esterna invece che dall'inizio del disco.</p> Signup and view all the answers

Quale tipo di allocazione dei file tende a causare un maggiore movimento della testina del disco?

<p>Allocazione indicizzata (D)</p> Signup and view all the answers

Qual è il primo tipo di formattazione che viene eseguita su un disco prima di poter memorizzare i dati?

<p>Formattazione a basso livello (o fisica)</p> Signup and view all the answers

Quanti file system possono coesistere su una singola partizione del disco?

<p>Solo uno (D)</p> Signup and view all the answers

Flashcards

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

Trasferisce il controllo della CPU a un processo dalla coda di ready.

Schedulazione non-preemptive

La CPU viene rilasciata solo quando il processo termina o attende (I/O).

Schedulazione preemptive

La CPU può essere rilasciata prima del termine dell'operazione in corso (es: interrupt).

Signup and view all the flashcards

Dispatcher

Componente che assegna la CPU al processo scelto dallo scheduler.

Signup and view all the flashcards

Latenza del dispatcher

Tempo necessario per fermare un processo e avviarne un altro.

Signup and view all the flashcards

Utilizzo della CPU

Misura l'efficienza con cui la CPU viene utilizzata.

Signup and view all the flashcards

FCFS (First Come First Served)

Processo che riceve la CPU per primo, viene eseguito per primo.

Signup and view all the flashcards

Directory del dispositivo

Posizione in una partizione dove sono memorizzate le informazioni sui file per l'organizzazione.

Signup and view all the flashcards

Operazioni su directory

Ricerca, creazione, rinomina, cancellazione, elencazione e attraversamento.

Signup and view all the flashcards

Organizzazione directory

Organizzazione logica per efficienza, rinomina e raggruppamento dei file.

Signup and view all the flashcards

Directory a singolo livello

Tutti i file in un'unica directory; semplice ma inefficiente per molti utenti.

Signup and view all the flashcards

Directory a due livelli

Ogni utente ha la propria directory; migliore per la ricerca e l'univocità dei nomi.

Signup and view all the flashcards

Nome del percorso

Identifica univocamente un file indicando partizione, utente e nome del file.

Signup and view all the flashcards

Directory ad albero

Gli utenti creano sottodirectory per organizzare i file; percorso univoco dalla radice.

Signup and view all the flashcards

Percorso assoluto

Inizia dalla radice e specifica il percorso completo al file.

Signup and view all the flashcards

Montaggio del file system

Verifica che il dispositivo abbia un file system valido e lo monta nel punto specificato.

Signup and view all the flashcards

Condivisione dei file

Implementabile dal S.O. conservando più attributi per ogni file e directory, definendo permessi di accesso.

Signup and view all the flashcards

Network File System (NFS)

Un protocollo di condivisione file presente in UNIX che permette relazioni molti a molti tra server e clienti.

Signup and view all the flashcards

Protezione dei file

Meccanismi che limitano i tipi di accesso ai file seguendo criteri definiti dal proprietario.

Signup and view all the flashcards

ACL (Access Control List)

Access Control List: lista controllata dal sistema operativo ad ogni tentativo di accesso.

Signup and view all the flashcards

Categorie di utenti (protezione)

Proprietario, gruppo e universo. Definiscono chi ha accesso al file.

Signup and view all the flashcards

Permessi UNIX (rwx)

rwx (lettura, scrittura, esecuzione) per proprietario, gruppo e altri.

Signup and view all the flashcards

Caratteristiche del file system

Possibilità di riscrivere i file nello stesso posto e accesso diretto ai blocchi di informazioni.

Signup and view all the flashcards

Svantaggio della schedulazione SJF su disco

Schedulazione che può causare la starvation di alcune richieste a causa della sua natura orientata al tempo di servizio più breve (SJF).

Signup and view all the flashcards

Algoritmo SCAN (dell'ascensore)

Algoritmo in cui il braccio del disco si muove da un estremo all'altro, servendo le richieste lungo il percorso e invertendo la direzione all'estremità.

Signup and view all the flashcards

C-SCAN (Circular Scan)

Variante di SCAN che, una volta raggiunta l'estremità del disco, torna all'inizio senza servire richieste durante il ritorno.

Signup and view all the flashcards

LOOK e C-LOOK

Varianti di SCAN e C-SCAN in cui il braccio inverte la direzione alla richiesta finale, senza raggiungere l'estremità del disco.

Signup and view all the flashcards

SSTF (Shortest Seek Time First)

Algoritmo che seleziona la richiesta più vicina alla posizione corrente della testina.

Signup and view all the flashcards

Formattazione a basso livello (fisica)

Processo di divisione del disco in settori che possono essere letti e scritti dal controller.

Signup and view all the flashcards

Partizionamento del disco

Processo in cui il S.O. registra le sue strutture dati sul disco, partizionandolo in gruppi di cilindri.

Signup and view all the flashcards

Formattazione logica

Processo di creazione di un file system su una partizione del disco.

Signup and view all the flashcards

Numeri pari (kernel)

Prima del 2.6.x, indica un ramo stabile del kernel Linux.

Signup and view all the flashcards

Numeri dispari (kernel)

Prima del 2.6.x, indica un ramo di sviluppo del kernel Linux.

Signup and view all the flashcards

Multiuser

Permette a più utenti di interagire con il sistema contemporaneamente.

Signup and view all the flashcards

Multitasking

Esecuzione simultanea di più processi su una singola CPU dividendosi il tempo.

Signup and view all the flashcards

Multithreading

Esecuzione simultanea di più parti (threads) di uno stesso programma.

Signup and view all the flashcards

Multiprocessing

Supporto per l'uso di più processori in parallelo per maggiore potenza di calcolo.

Signup and view all the flashcards

Username

Nome logico che identifica univocamente un utente nel sistema operativo.

Signup and view all the flashcards

Utente root

Utente con i massimi privilegi nel sistema operativo, responsabile dell'amministrazione.

Signup and view all the flashcards

Schema combinato

Uno schema di allocazione che utilizza puntatori multipli (diretti e indiretti) per indirizzare i blocchi dati.

Signup and view all the flashcards

Blocchi diretti

I primi puntatori nell'inode che puntano direttamente ai blocchi contenenti i dati del file.

Signup and view all the flashcards

Blocchi indiretti

Blocchi che contengono indirizzi ad altri blocchi, estendendo la capacità di indirizzamento dei file.

Signup and view all the flashcards

Blocco di seconda indirezione

Blocco che contiene un elenco di indirizzi a blocchi di prima indirezione, permettendo un'allocazione più estesa.

Signup and view all the flashcards

Lista dello spazio libero

Una lista di tutti i blocchi del disco che non sono attualmente in uso.

Signup and view all the flashcards

Vettore di bit

Implementazione della lista dello spazio libero dove ogni bit rappresenta un blocco (1=libero, 0=occupato).

Signup and view all the flashcards

Lista collegata (spazio libero)

Una lista in cui ogni blocco libero contiene un puntatore al blocco libero successivo.

Signup and view all the flashcards

Spiazzamento

Posizione del primo bit con valore 1 all'interno di una parola.

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.

Quiz Team

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.

More Like This

Use Quizgecko on...
Browser
Browser