next up previous
Next: Escalonamento e fim dos Up: Multiplexação do Processador Previous: Estruturas de Dados

Criação de processos e coStart

 
class Process {

Coroutine coroutine;

byte[] workArea;

int state;

public Process(procedure initialProcedure,

int workAreaSize) {

coroutine = createCoroutine(initialProcedure,

new byte[workAreaSize]);

/* cria a co-rotina correspondente ao processo */

kernel.addProcess(this);

state = READY;

}

}

no kernel:

public void addProcess(Process p){

ready.put(p);

nrofActiveProcess++;

}

public void coStart() {

transfer(fatherCoroutine, kernelCoroutine);

}



Osvaldo Sergio F. de Carvalho
Wed Mar 19 14:56:39 EST 1997