Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy
počítačové znalosti >> Hardware >> CPU >> .

Čo sa stane, keď sa dvaja procesori pokúsia získať prístup k globálnej pamäti v presne rovnakom okamihu?

Keď sa dvaja procesori pokúsia získať prístup k rovnakému umiestneniu v globálnej pamäti v rovnakom okamihu, pretekárska podmienka sa vyskytuje. Výsledok závisí výlučne od pamäťovej architektúry systému a na to, ako sa zaoberá súčasným prístupom. Existuje niekoľko možností:

* Undefinované správanie: Toto je najhorší scenár. Výsledok prístupu pamäte je nepredvídateľný. Zápis jedného procesora by mohol prepísať ostatné alebo časti oboch, ktoré by mohli byť prepletené, čo vedie k poškodeniu údajov. Neexistuje žiadna záruka, ktorá prevádzka procesora bude úspešná alebo spôsob, akým budú údaje ovplyvnené. Toto je bežné v systémoch bez mechanizmov synchronizácie prístupu k pamäti.

* Korupcia údajov: Zápis jedného procesora môže prepísať údaje napísané druhým procesorom, čo má za následok stratené údaje alebo nesprávne hodnoty. Toto je veľmi častý výsledok, ak nedôjde k synchronizácii.

* ľubovoľný výsledok: Hardvér alebo operačný systém systému si môžu zvoliť prístup jedného procesora k úspechu a druhý zlyhať, alebo by mohol neočakávaným spôsobom kombinovať operácie. Výsledok nie je deterministický.

* arbitráž na úrovni hardvéru: Niektoré architektúry môžu mať hardvérové ​​mechanizmy (napríklad arbiter zbernice), ktoré uprednostňujú jeden procesor pred druhým. To predstavuje nedeterministický prvok, pretože priorita sa môže líšiť v závislosti od rôznych faktorov.

* Výnimka/chyba: Systém by mohol zistiť konflikt a zvýšiť výnimku alebo chybu, potenciálne zastavenie vykonávania alebo spôsobenie zlyhania programu. To však nie je zaručené; Mnoho systémov jednoducho umožňuje, aby rasová podmienka pokračovala bez oznámenia.

Na zabránenie týmto problémom musia programátori používať synchronizačné mechanizmy. Tieto mechanizmy presadzujú objednávanie prístupov do pamäte, čím sa bránia rasovým podmienkam. Príklady zahŕňajú:

* mutexes (vzájomné vylúčenie): Iba jeden procesor môže držať MUTEX v ktoromkoľvek danom čase, čím sa bráni súčasnému prístupu k zdieľaným zdrojom.

* semafory: Všeobecnejšie ako mutexes, čo umožňuje zložitejšiu kontrolu prístupu k zdieľaným zdrojom.

* Atomické operácie: Operácie, ktoré sú zaručené, že sa vykonávajú atómové (ako jedna, nedeliteľná jednotka), ktorá bráni súčasnej modifikácii.

* Bariéry pamäte/ploty: Tieto presadzujú objednávanie pamäťových operácií, čím sa zabezpečujú dokončenie určitých operácií skôr, ako začnú ostatné.

Stručne povedané, súčasný prístup k rovnakému umiestneniu pamäte bez správnej synchronizácie je vážna chyba programovania, ktorá môže viesť k nepredvídateľnému a nespoľahlivému správaniu. Robustné programovanie viacerých procesorov si vyžaduje dôkladné zváženie a implementáciu synchronizačných techník.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené