Innholdsfortegnelse:
- Definisjon - Hva betyr kritisk seksjonsrutine (CSR)?
- Techopedia forklarer kritisk seksjonsrutine (CSR)
Definisjon - Hva betyr kritisk seksjonsrutine (CSR)?
Critical seksjonsrutine (CSR) er en kodeseksjon som en prosess får en eksklusiv lås for at ingen andre prosesser kan utføre den samtidig. Ofte kjøres en eller flere prosesser samtidig i et operativsystem, og tvinger disse prosessene til å konkurrere med hverandre om tilgang til filer og ressurser. Bare en prosess skal få tilgang til ressursen mens en del av koden relatert til ressursen kjøres.
For å sikre at en prosess i CSR ikke mislykkes mens andre prosesser venter, settes en tidsbegrensning av prosessstyringskomponenten. Dermed kan en prosess ha tilgang til en eksklusiv lås i bare en begrenset periode.
Techopedia forklarer kritisk seksjonsrutine (CSR)
De viktigste kravene for å implementere en CSR er:
- Gjensidig ekskludering: Når en prosess kjøres i en CSR, kan ingen andre prosesser komme inn.
- Fremdriftsbetingelse: Hvis ingen prosesser kjøres i en CSR og det er noen prosesser som ønsker å gå inn i den, kan de gjøre det på en bestemt tid. En av prosessene går inn i CSR mens andre venter.
- Begrenset venting: Når en prosess ber om å gå inn i en CSR og før forespørselen blir gitt, må det være en øvre grense for antall prosesser som venter på å komme inn i CSR i løpet av denne perioden for å sikre at ingen prosesser sulter og hver prosess i ventekøen får en tur til å gå inn i CSR.
CSR, i et bestemt stykke kode, kan identifiseres gjennom følgende egenskaper:
- Kode er preget av en lese-skrive-oppdateringssekvens av operasjoner.
- Deler av kodeendringsvariablene i en annen kode, som utfører en lese-skrive-oppdateringssekvens.
- Tilstedeværelsen av kode som får tilgang til en datastruktur av en annen kode ved å modifisere den, eller kode som bruker en datastruktur som kan endres av en annen prosess.
Konseptet med kritisk seksjon kan brukes på maskinvare som bruker avbrytelsesanlegget. Hver gang en prosess kommer inn i en kritisk del, bør alle avbrudd på prosessoren være deaktivert slik at andre prosesser ikke kan be om en lås på ressursen. Tilsvarende, når en prosess avslutter kjøringen, blir avbrytelser aktivert igjen. En annen tilnærming er å bruke en semafor, en spesiell variabel som fungerer som et signal for å lede utførelsen eller avslutningen av en prosess.