-
-
-
-
CENAPAD-MGCO
A seguir: Co-rotinas e Interrupções
Acima: Núcleos de Multiprogramação
Anterior: Interrupções: Tratamento por Software
- O núcleo apresentado aqui é inspirado em Modula-2
(Wirth, 1980?), uma linguagem sucessora do Pascal, com boas
ferramentas de modularização mas sem orientação a objetos
- O conceito de co-rotina implementado em Modula-2
é útil
para a estruturação
da programação de uma
áquina sequencial
sujeita a interrupções
- Uma variável do tipo co-rotina pode conter um ``contexto''
(no caso do XT, essencialmente BP e SP) do processador
- Trocas de contexto podem ser feitas através do procedimento
transfer(fromCoroutine, toCoroutine) ,
que armazena o contexto
corrente em fromCoroutine ,
e estabelece o contexto armazenado em toCoroutine ;
- Uma co-rotina é criada através de um procedimento
newCoroutine(procedimento inicial, área de trabalho)
- A área de trabalho irá conter a pilha associada a
esta co-rotina,
e é inicializada como se esta co-rotina tivesse sido interrompida
no início de seu procedimento inicial
Osvaldo Carvalho
-
Postscript -
Comentários?