Critical Section Routine (CSR)

Autore: Randy Alexander
Data Della Creazione: 2 Aprile 2021
Data Di Aggiornamento: 11 Maggio 2024
Anonim
Lecture series 2 on GGCSR
Video: Lecture series 2 on GGCSR

Contenuto

Definizione - Cosa significa Critical Section Routine (CSR)?

Critical section routine (CSR) è una sezione di codice per la quale un processo ottiene un blocco esclusivo in modo che nessun altro processo possa eseguirlo contemporaneamente. Spesso, uno o più processi vengono eseguiti contemporaneamente in un sistema operativo, costringendo questi processi a competere tra loro per l'accesso a file e risorse. È consentito consentire a un solo processo di accedere alla risorsa mentre viene eseguita parte del codice relativo alla risorsa.

Per garantire che un processo nel CSR non fallisca mentre altri processi sono in attesa, il componente di gestione del processo imposta un limite di tempo. Pertanto, un processo può avere accesso a un blocco esclusivo solo per un periodo di tempo limitato.


Un'introduzione a Microsoft Azure e Microsoft Cloud | In questa guida imparerai cos'è il cloud computing e in che modo Microsoft Azure può aiutarti a migrare e gestire la tua azienda dal cloud.

Techopedia spiega la Critical Section Routine (CSR)

I requisiti principali per l'implementazione di una CSR sono:

  • Esclusione reciproca: quando un processo è in esecuzione in un CSR, nessun altro processo può entrare.
  • Condizione di avanzamento: se nessun processo è in esecuzione in un CSR e ci sono alcuni processi che desiderano inserirlo, possono farlo in un determinato periodo di tempo. Uno dei processi entra nel CSR mentre altri attendono.
  • Attesa vincolata: quando un processo richiede di inserire un CSR e prima che la richiesta sia concessa, deve esserci un limite superiore al numero di processi in attesa di entrare nel CSR durante questo periodo per garantire che nessun processo muoia di fame e ogni processo nella coda di attesa ottiene un turno per entrare nel CSR.

Il CSR, in un determinato codice, può essere identificato tramite le seguenti proprietà:


  • Il codice è caratterizzato da una sequenza di operazioni di lettura-scrittura-aggiornamento.
  • Le sezioni del codice modificano le variabili in un altro codice, che esegue una sequenza di operazioni di lettura-scrittura-aggiornamento.
  • La presenza di codice che accede a una struttura di dati di qualche altro codice modificandolo, o codice che utilizza una struttura di dati che potrebbe essere modificata da qualche altro processo.

Il concetto di sezione critica può essere applicato all'hardware che utilizza la funzione di interruzione. Ogni volta che un processo entra in una sezione critica, tutti gli interrupt sul processore devono essere disabilitati in modo che altri processi non possano richiedere un blocco sulla risorsa. Allo stesso modo, quando un processo termina l'esecuzione, gli interrupt vengono nuovamente abilitati. Un altro approccio consiste nell'utilizzare un semaforo, una variabile speciale che agisce come un segnale per dirigere l'esecuzione o la conclusione di un processo.