Sisällysluettelo:
- Määritelmä - Mitä kriittinen osio rutiini (CSR) tarkoittaa?
- Techopedia selittää kriittisen osion rutiinia (CSR)
Määritelmä - Mitä kriittinen osio rutiini (CSR) tarkoittaa?
Kriittinen leikkausrutiini (CSR) on osio koodia, jolle prosessi saa yksinoikeuden lukituksen, jotta mikään muu prosessi ei voi suorittaa sitä samanaikaisesti. Usein yksi tai useampi prosessi suoritetaan samanaikaisesti käyttöjärjestelmässä, pakottaen nämä prosessit kilpailemaan keskenään tiedostojen ja resurssien saatavuudesta. Vain yhdellä prosessilla tulisi olla pääsy resurssiin, kun osa resurssiin liittyvästä koodista suoritetaan.
Jotta varmistetaan, että CSR: n prosessi ei epäonnistu, kun muut prosessit odottavat, prosessinhallintakomponentti asettaa aikarajan. Siten prosessilla voi olla pääsy yksinoikeiseen lukkoon vain rajoitetun ajan.
Techopedia selittää kriittisen osion rutiinia (CSR)
Pääasialliset vaatimukset CSR: n toteuttamiselle ovat:
- Keskinäinen poissulkeminen: Kun prosessi suoritetaan CSR: ssä, mikään muu prosessi ei pääse.
- Edistymistila: Jos mitään prosessia ei suoriteta CSR: ssä ja on joitain prosesseja, jotka haluavat tulla siihen, ne voivat tehdä sen tietyn ajan. Yksi prosesseista tulee CSR: ään, kun taas muut odottavat.
- Rajoitettu odotus: Kun prosessi pyytää syöttämään CSR: ää ja ennen pyynnön hyväksymistä, CSR: ää saapua odottavien prosessien lukumäärällä on oltava yläraja tänä aikana, jotta voidaan varmistaa, ettei mikään prosessi nälkää ja jokainen odotusjonon prosessi. saa vuoron kirjoittaakseen CSR: n.
Tietyn koodin CSR voidaan tunnistaa seuraavilla ominaisuuksilla:
- Koodille on ominaista luku-kirjoitus-päivitys -jaksot.
- Koodiosat muuttavat muuttujia toisessa koodissa, joka suorittaa luku-kirjoitus-päivitys -jakson.
- Koodin olemassaolo, joka käyttää jonkin muun koodin tietorakennetta muuttamalla sitä, tai koodi, joka käyttää tietorakennetta, jota jokin muu prosessi voisi muokata.
Kriittisen osan käsitettä voidaan soveltaa laitteistoon, joka käyttää keskeytystilaa. Aina kun prosessi saapuu kriittiseen osaan, kaikki prosessorin keskeytykset tulee poistaa käytöstä, jotta muut prosessit eivät voi pyytää resurssin lukitsemista. Samoin kun prosessi päättää suorituksen, keskeytys otetaan uudelleen käyttöön. Toinen lähestymistapa on käyttää semaforia, erityistä muuttujaa, joka toimii signaalina prosessin suorittamisen tai lopettamisen ohjaamiseksi.