AMIGA # 1
Замкнутый круг, в результате которого — \"зависание\" машины. Поэтому уровень ОС на приведенной иерархической схеме соответствует уровню процессов. Иллюзия одновременного исполнения нескольких программ создается за счет быстрого переключения активных процессов (задач), что происходит 50 раз в секунду. Задача (процесс) может находиться как в активном состоянии (или в очереди на получение процессорного времени), так и \"спать\", т.е. ожидать некоторого события, чтобы перейти в активное состояние. Если задача не активна, то затраты процессорного времени на её обслуживание близки к нулю. В связи с этим большая просьба для господ программистов: никогда не пишите циклы, которые вертятся, ожидая какого-либо внешнего события! На Амиге это считается грубейшей ошибкой и признаком вашего полного программистского бессилия. Вам необходимо сообщить системе, какие именно события вас интересуют, после чего воспользоваться чем-нибудь вроде функции библиотеки \"exec.library\" Wait(). Как только произойдет одно из интересующих вас событий, вы выскочите из Wait() и можете спокойно анализировать что там случилось и что делать дальше. Теперь, после затянувшегося вступления, можно и про CHANGETASKPRI рассказать. Эта команда позволяет изменить приоритет некоторого CLI-процесса (приоритет задач с помощью CHANGETASKPRI менять нельзя), выделив ему большую или меньшую долю процессорного времени. В AmigaOS практически всегда одновременно работают несколько процессов и/или задач (например, на компьютере автора только при старте системы запускаются сразу 42 процесса/задачи, которые далее работают постоянно). Вы можете посмотреть, что творится в вашей системе, исполнив команду TASKLIST с диска, прилагаемого к этой книге. Обычный приоритет задач/процессов равен нулю. Старайтесь не поднимать его выше пяти, если вы не вполне отдаете себе отчет в последствиях своих действий. В системе всегда работает несколько задач, которые должны очень быстро реагировать на различные внутренние события и возможное замедление их реакции на эти события из-за неоправданно высокого приоритета вашей задачи ни к чему хорошему не приведет.
|