Ученик Zet9! прочитали ли Вы список рекомендуемой литературы? Ознакомились ли с рекомендованными ссылками?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Привет, народ!
Как, по-вашему, системные процедуры для ОС следует оптимизировать по размеру кода или по скорости?
Я думаю, что по размеру важнее - ведь вызовы системных функций интенсивностью не отличаются?
С уважением,
Gris / Red Triangle.
_____________________________________
ZX-EVO/TS-Labs config/NGS/HDD/SD-card
Amiga A1200/Blizzard 1230@50/32/60GB
Amiga A1200/Apollo 1260@66/32/60GB
UnAmiga (C5) AGA GM7123 VideoDAC
По данному признаку процедуру оптимизировать невозможно: она не может быть "чуть-чуть не реентерабельной".
Вот для Спека с его ограниченным адресным пространством и слабым CPU, что предпочтительней, чтобы, к примеру, захват памяти занимал 100 байт и 400 тактов или же 80 байт и 450 тактов?
С уважением,
Gris / Red Triangle.
_____________________________________
ZX-EVO/TS-Labs config/NGS/HDD/SD-card
Amiga A1200/Blizzard 1230@50/32/60GB
Amiga A1200/Apollo 1260@66/32/60GB
UnAmiga (C5) AGA GM7123 VideoDAC
Если malloc была прервана в момент частичного изменения списков памяти, то другая задача, выполняя malloc, разрушит их.
А если процедуре нужны Forbid() и Permit(), то она уже не реентерабельна.
Не так ли?
Что и требовалось доказать.Может. Правда в абсолюте это называется "нереентерабельность".
По существу кто-то может высказаться?
С уважением,
Gris / Red Triangle.
_____________________________________
ZX-EVO/TS-Labs config/NGS/HDD/SD-card
Amiga A1200/Blizzard 1230@50/32/60GB
Amiga A1200/Apollo 1260@66/32/60GB
UnAmiga (C5) AGA GM7123 VideoDAC
по существу я бы сказал так: it depends
если у тебя места под код ос полно (например она в странице сидит), тогда по скорости оптимизируй и не парься. если же места мало, то тогда по размеру. ну и зависит еще от типа того, что ты оптимизируешь. если это шедулер, постоянно выполняющийся, то его лучше так и так по скорости, а если это редко запускаемая штука типа создания потока - ее можно сделать медленной. думаю, даже тот же malloc() можно сделать медленным.
Реентерабельность в данном случае зависит исключительно от факта использования общих данных. Примитивы синхронизации как раз и предназначены для разделения доступа.
1) Что делают эти функции?
2) Помимо модели "одна куча на всех", есть еще и другие модели, более ресурсоемкие, но и более безопасные.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)