[OSy] Ktore z funkcii/makier na zakazovanie/povolovanie preruseni maju byt rekurzivne?

Lubomír Bulej lubomir.bulej at mff.cuni.cz
Thu Oct 28 20:43:23 CEST 2004


Dobry den,

> Nejak sa neviem vymotat z tychto styroch funkcii:
> 
> save_and_disable_interrupts
> restore_interrupts
> enable_interrupts
> disable_interrupts
> 
> Podla zadania by enable/disable_interrupts malo povolit/zakazat
> prerusenia bez ohladu na vsetko. Podla toho, co je napisane v synch.h

V tomto ohledu je smerodatne zadani, enable/disable povoli/zakaze preruseni, 
save_and_disable uschova status registr do poskytnute promenne a zakaze
preruseni, restore pouze obnovi status registr z poskytnute promenne, to
zda dojde k povoleni preruseni je dano obsahem poskytnute promenne.

 > Potom co ma robit druhy par save_and_disable/restore_interrupts?
 > Ukladanie status registru rozhodne nie je reentrantne, pretoze ak
 > zavolame dvakrat po sebe save_and_disable_interrupts a potom dvakrat
 > restore_interrupts, tak ich budeme mat stale zakazane. Ako to ma teda
 > byt?

save_and_disable/restore je reentrantni na urovni volani funkcni, coz je to co 
nejspis budete potrebovat. V ramci jedne funkce kontrolu nad prerusenimi 
neztratite.


Lubomir Bulej



More information about the NSWI004 mailing list