Você está na página 1de 2

Suponha uma arquitectura sobre o modelo de 5 estados que consome programas constitudos por operaes definidas por dois

dgitos, exemplo de programa: 02 01 11 11 11 21 71 91 O primeiro valor, (02, um valor entre 00 e 99) indica o instante em que o processo inserido no estado NEW. Esse primeiro valor descartado quando o programa escrito em memria. Nas restantes operaes do programa, o primeiro dgito indica a instruo e o segundo indica a varivel onde se aplica essa operao. Assim existem 10 operaes diferentes e 10 variveis disponveis por programa. Ao contrrio do 1 Trabalho prtico em que o programa era guardado no respectivo PCB, aqui o programa guardado em memria, ficando o PCB apenas com a indicao da localizao do programa e com o PC (Program Counter) do respectivo programa.

Tabela das instrues: cdigos 0X 1X 2X 3X 4X 5X 6X 7X 8X 9X instrues ZERO X ADD X SUB X IF X BACK X FORW X FORK X DISK SAVE X COPY X EXIT significado X=0 X ++ X -If X ==0, goto next line (PC++); else goto next line +1 (PC += 2) Goto PC -= X Goto PC += X X = Fork() Wait X0 = X Exit

Todas as intrues consomem um ciclo temporal As instrues de 0 a 5 e a 8 mantm o processo em estado RUN A instruo 6 faz um fork duplicando o processo que ir para estado READY A instruo 7 simula uma escrita em disco envia o processo para estado BLOCK e consome 3 ciclos temporais em espera. A instruo 9 passa o processo para o estado EXIT

A memria onde as instrues so colocadas esttica e representada por um array MEM[] que tm um limite de 100 posies. (Este limite deve estar #define no vosso programa para permitir futuros ajustes). Tenha em conta que qualquer programa em memria reserva sempre espao para as 10 variveis, mesmo que no as use todas.

O programa acima referido seria representado no array da memria MEM[] da seguinte forma: 10 Variveis reservadas V0 V1 V2 V9 Instrues do Programa 01 11 11 11 21

71

91

Proceda a adaptao/reconstruo/construo do simulador do 1 Trabalho Prtico de modo a suportar a escrita dos programas em memria. Para esta primeira fase (at dia 8 Maio) pretende-se apenas que o input seja lido (preferencialmente de um ficheiro) e que os programas sejam escritos em memria medida que o processo chega ao estado NEW no instante de tempo correcto. E a cada ciclo efectuar um print da memria. Para esta primeira fase nada mais deve ser feito.

Exemplo de input: 01 01 11 11 11 21 71 91 02 01 12 13 14 24 71 90 03 01 11 11 31 41 71 91

Que obteria um print (no ciclo final) semelhante a: V1 V9 01 11 11 11 21 71 91 V0 V9 01 12 13 14 24 71 90 V0 V9 01 11 11 11 21 71 91

O resto do enunciado do 2 Trabalho Prtico ser apresentado dia 8 de Maio. E ser indicada a poltica de gesto de memria que dever ser implementada conjuntamente com alguns exemplos de programas que o simulador dever correr.