A softirq megelőzhető?

Pontszám: 4,4/5 ( 39 szavazat )

Az alsó kettő megelőzheti egymást, felette azonban szigorú hierarchia: mindegyiket csak a felette lévők előzhetik meg . Például, amíg egy softirq fut egy CPU-n, más softirq nem akadályozza meg, de egy hardveres megszakítás igen. A rendszerben lévő többi CPU azonban függetlenül működik.

Megelőzhető a Soft IRQ?

Valójában az egyetlen esemény, amely megelőzheti a softirq-ot, egy megszakításkezelő . Egy másik szoftver, de ugyanaz futhat egy másik processzoron.

Megszakítható a Softirq?

Tegyük fel, hogy egy softirq függvény újra aktiválódik a do_softirq( ) végrehajtása során. A legrosszabb esetben a softirq nem hajtódik végre újra a következő időzítő megszakításig, még akkor sem, ha a gép tétlen. Ennek eredményeként a softirq késleltetési idő elfogadhatatlan a hálózati fejlesztők számára .

Megelőzhető az ISR?

Amikor egy periféria megszakítása aktiválódik, a main() helyett a megfelelő megszakítási szolgáltatási rutin (ISR) indul el. Ezt a folyamatot leíró szó az elővétel. ... Egyes processzorok támogatják a beágyazott megszakításokat. A programot megszakító ISR-t maga is megszakíthatja az ISR magasabb prioritású megszakítás miatt.

Mi az a Softirq?

A SoftIrq-ek lehetővé teszik, hogy a hardveres megszakítások kiszolgálásának kritikus része a lehető legrövidebb legyen ; ahelyett, hogy a teljes hw megszakítást helyben kellene feldolgozni, a fontos adatokat kiolvassák az eszközről a RAM-ba vagy más módon, majd elindul egy SoftIrq, hogy befejezze a munkát.

IRQ-k: a kemény, a lágy, a menetes és a megelőzhető

32 kapcsolódó kérdés található

Mi a különbség a Tasklet és a Softirq között?

Az azonos típusú Softirq-ok egyidejűleg több CPU-n is futhatnak . ... A Tasklet-ek különböznek a softirqs-től, mivel a tasklet mindig önmagához képest szerializált; más szóval, egy taskletet nem tud egyszerre két CPU végrehajtani. Mindazonáltal több CPU-n egyidejűleg is végrehajthatók különböző taskletek.

Mikor használjam a Taskleteket?

1) A Tasklet megszakítási környezetben használatos. Az összes feladatlet kódjának atominak kell lennie, így az atomi kontextusra alkalmazott összes szabályt alkalmazni kell rá. Mert pl. Nem tudnak aludni (mivel nem lehet átütemezni), és nem tarthatnak zárat sokáig.

Megszakítható a megszakítás?

Általában a megszakítási szolgáltatási rutin addig folytatódik , amíg a legtöbb rendszerben nem szakad meg . Ha azonban nagyobb rendszerünk van, ahol több eszköz is megszakíthatja a mikroprocesszort, akkor egy prioritási probléma adódhat.

Mi az elővásárlási megszakítás?

A számítástechnikában az elővásárlás egy végrehajtási feladat ideiglenes megszakítása azzal a szándékkal, hogy azt egy későbbi időpontban folytatni lehessen . Ezt a megszakítást egy külső ütemező hajtja végre, a feladat segítsége vagy közreműködése nélkül.

Mi az elővásárlási végzés?

b : olyan jogi doktrína, amely szerint a felsőbbrendű kormány (például egy állami kormány) jogszabályai kollíziós helyzetekben felülírják egy alsóbbrendű kormány (például önkormányzati) jogszabályait. 4 : megelőző támadás indításának politikája egy feltételezett küszöbön álló támadás megelőzése érdekében .

Mi a különbség a Workqueue és a Tasklet között?

A tálca mindig a megszakítási környezetben fut, ami azt jelenti, hogy amikor egy feladatsor fut, az olyan, mintha a processzor egy megszakítási szolgáltatási rutint hajtana végre. ... Másrészt a munkasor normál folyamatként fut, és nem megszakításként , így a worqueue elaludhat, szemaforokat tartalmazhat.

Biztonságos a szemafor használata a Taskletben?

Ez azt jelenti , hogy nem használhat szemaforokat vagy más blokkoló függvényeket egy feladatsorban . A feladatkészletek az összes megszakítás engedélyezésével is futnak, ezért óvintézkedéseket kell tennie (például tiltani kell a megszakításokat és be kell szereznie a zárolást), ha a tálca adatokat oszt meg egy megszakításkezelővel.

Mi a különbség a Kmalloc és a Vmalloc között?

A Kmalloc() a kerneltől kért memória lefoglalására szolgál. A lefoglalt memóriát az API adja vissza, és az fizikailag és gyakorlatilag egybefüggő . ... A Vmalloc() a kernel memóriájának lefoglalására szolgál. A lefoglalt memória gyakorlatilag egybefüggő, de fizikailag nem szomszédos.

Mi az a Tasklet?

A Tasklet-ek egy halasztási séma, amelyet ütemezhet egy regisztrált függvény későbbi futtatására . A felső fele (a megszakításkezelő) kis mennyiségű munkát végez, majd az alsó felében ütemezi a feladatsort a későbbi végrehajtásra.

Mi az a kernelszál?

A kernelszál egy kernelentitás, mint a folyamatok és megszakításkezelők ; ez a rendszerütemező által kezelt entitás. A kernelszál egy folyamaton belül fut, de a rendszer bármely más szála hivatkozhat rá. ... A könyvtár saját felületet használ a kernelszálak kezelésére a felhasználói szálak végrehajtásához.

Mi az a Request_threaded_irq?

A request_threaded_irq() függvény hozzáadásra került, hogy a fejlesztők a megszakításkezelő kódot két részre oszthassák. Az egyik rész, amely blokkolt megszakításokkal fog végrehajtani, és egy másik rész, amelyet egy kernelszál hajthat végre blokkolt megszakítások nélkül.

Mi a különbség a megszakítás és a csapda között?

A csapdák és a megszakítások kétféle esemény. A csapdát egy felhasználói program emeli ki, míg a megszakítást hardvereszköz, például billentyűzet, időzítő stb. emeli. A csapda átadja a vezérlést a csapdakezelőnek, a megszakítás pedig a megszakításkezelőnek.

Mi a különbség az elővásárlás és a megszakítás között?

Főnevekként a megszakítás és az elővásárlás közötti különbség az, hogy a megszakítás a megszakítás aktusa , vagy a megszakítás állapota, míg az elővásárlás valaminek megvásárlása, mielőtt azt másoknak eladásra kínálnák.

Megszakítható a spinlock?

@egér: Valaki megoszt egy spin zárolást egy megszakításkezelővel, ha ugyanazokhoz a megosztott adatokhoz fér hozzá, mint a megszakításkezelő. A mutexek nem tilthatják le a megszakításokat , mivel ha letiltod a megszakításokat és alszol, soha nem fogsz felébredni!

Ha a megszakítási jelző le van tiltva, mikor igaz a következő?

Ha a trigger jelző be van állítva, de a megszakítások le vannak tiltva (I=1), a megszakítási szint nem elég magas , vagy a jelző hatástalanítva van, a kérés nem kerül elutasításra. Inkább a kérést függőben tartják, elhalasztják egy későbbi időpontra, amikor a rendszer megfelelőnek ítéli a kérések kezelését.

Milyen kiváltó okok a megszakításhoz?

Triggerelési módszerek Minden megszakítási jel bemenetet úgy terveztek, hogy egy logikai jelszint vagy egy adott jelél (szintátmenet) indítsa el őket. A szintérzékeny bemenetek folyamatosan kérik a processzorszolgáltatást mindaddig, amíg egy adott (magas vagy alacsony) logikai szintet alkalmaznak a bemeneten.

Milyen hátrányai vannak a megszakítások letiltásának?

A megszakítások letiltásának a következő hátrányai vannak:
  • Ügyelni kell arra, hogy ne tiltsuk le túl sokáig a megszakításokat; a megszakításokat előidéző ​​eszközöket szervizelni kell!
  • A megszakítások letiltása megakadályozza az összes többi tevékenységet, még akkor is, ha sok esetben soha nem hajtják végre ugyanazt a kritikus régiót.

Mi az a Container_of?

A container_of figyelembe veszi az életkor eltolását a struktúra elején a mutató helyes helyének meghatározásához . Ha a kor_ptr mutatóból kivonja a mező életkorának eltolását, akkor a megfelelő helyet kapja. Ezt teszi a makró utolsó sora: (type *)( (char *)__mptr - offsetof(type,member) );

Miért használ a Linux Taskleteket?

Tasklet a Linux kernelben A Taskleteket a későbbiekben elvégzendő munkák sorba állítására használják . A Tasklet-ek párhuzamosan is futtathatók, de ugyanaz a feladatlap nem futtatható több CPU-n egyszerre. Ezenkívül minden egyes tálca csak az ütemező CPU-n fog futni a gyorsítótár használatának optimalizálása érdekében.

Milyen előnyökkel jár a megszakításkezelő felső és alsó felére való rendszerezése?

A nagy különbség a felső fele kezelője és az alsó fele között az, hogy minden megszakítás engedélyezve van az alsó fele végrehajtása során – ezért az biztonságosabb időben fut. A tipikus forgatókönyvben a felső fele menti az eszközadatokat egy eszközspecifikus pufferbe, ütemezi az alsó felét, és kilép: ez nagyon gyors.