Освой компьютер
И последний момент: не увлекайтесь использованием спрайтов! На
карточках их нет, да и во многих режимах чипсета, отличающихся от
PAL и NTSC, все восемь спрайтов, в силу некоторых особенностей, просто
недоступны, и гарантируется наличие только одного спрайта - мыши. Несколько слов о многозадачности. Теперь о \"многозадачности\", точнее о ее конкретной реализации в
AmigaOS. Каждый процесс имеет свой приоритет, а при постановке процессов
в очередь на исполнение, эта очередь сортируется по приоритетам процессов:
имеющий наибольший приоритет процесс получит управление первым. Процессы,
имеющие одинаковые приоритеты, будут выполняться одновременно.
Пользовательские задачи, работающие на нулевом приоритете, будут
выполняться параллельно. Тут кроется основная ошибка начинающих
программистов - из того, что задачи будут работать одновременно, делается
неправильный вывод: при ожидании чего-либо задача может просто крутиться
в цикле, например, проверяя состояние какого-то бита и постоянно переходя
на эту проверку, если проверка показала, что состояние не изменилось.
Такое еще можно простить программам в однозадачных системах. На Амиге же
это приводит к тому, что эта задача начинает \"зажирать\" некоторый процент
машинного времени, заметно мешая остальным задачам (для пользователя это
выглядит так, как будто остальные задачи начинают \"тормозить\"). Кроме
того, задачи с меньшим приоритетом рискуют вообще не получить управления,
и будут стоять на месте до завершения такого процесса. Такой подход в
корне неверен, и задаче, ожидающей какого-либо события, следует
воспользоваться средствами \"отдачи\" управления системе \"до лучших времен\".
Другая тонкость многозадачности состоит в следующем: принятая в
AmigaOS схема распределения времени приводит к тому, что при работе
какого-либо процесса, не отдающего никому управление, процесс с меньшим
приоритетом никогда не получит управления, так как будет всегда становиться
в очередь на исполнение за ним.
AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.
|