|
Все практически готово, когда поймал себя на мысле, что задач много, а стек один, и каждое приложение может находиться в подпрограмме, на момент, когда у нее отберут управление, а другое может находиться в подпрограмме, когда ей вернут управление. Как следствие - это приложение возвратится совсем не туда, откуда оно было вызвано. Выход вижу один - свой стек на каждую задачу. Морально я к этому еще не готов. Допустим - 8 задач, на каждую задачу нужно хранить 20 регистров плюс микростек не 8 вызовов. Получается 288 байт на нужды операционки. От такой цифры 3 года назад у меня волосы бы дыбом встали. Но сегодня, когда простенькая Mega8 и та имеет 1024 байта, и призадумаешся про о том, как отдать треть памяти на нужды системы.
Опять же, а скольки уровневый стек нужен для задачи?
E-mail: info@telesys.ru