[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