:: Organização de Computadores II ::






Fluxo de Controle

Refere-se à ordem em que instruções, expressões e chamadas de função são executadas ou avaliadas em programas de computador sob programação imperativa ou funcional.

Os tipos de fluxo de controle disponíveis mudam de linguagem para linguagem, mas podem ser cruamente caracterizados por seus efeitos. O primeiro é a continuação da execução em uma outra instrução, como na estrutura sequencial ou em uma instrução jump. O segundo é a execução de um bloco de código somente se uma condição é verdadeira, uma estrutura de seleção. O terceiro é a execução de um bloco de código enquanto uma condição é verdadeira, ou de forma a iterar uma coleção de dados, uma estrutura de repetição. O quarto é a execução de instruções distantes entre si, em que o controle de fluxo possivelmente volte para a posição original posteriormente, como chamadas de subrotinas e corotinas. O quinto é a parada do programa de computador.

Interrupções e sinais são mecanismos de baixo nível que podem alterar o fluxo de controle de forma similar a uma subrotina, mas geralmente em resposta a algum estímulo externo ou um evento ao invés de uma estrutura de controle em uma linguagem.

Em nível de linguagem de máquina, as instruções de estruturas de controle geralmente funcionam ao alterar o contador de programa. Para algumas CPUs, as únicas instruções de estruturas de controle disponíveis são os diversos tipos de jump condicional.

Vamos ver algumas definições:

PROCEDIMENTO - quando a chamada procedimento terminar sua tarefa, ela retorna o controle para o comando ou instrução seguinte a chamada. É necessário uma estrutura de pilha para armazenar parametros, endereços de retorno e variáveis, se houve.

CO-ROTINA - quando 2 procedimentos, cada um considerando o outro como procedimento (no sentido dele ser chamado), executar alguma tarefa e então retornar para o comando seguinte à chamada.
Para implementar co-rotinas são necessárias múltiplas pilhas, pois cada co-rotina pode também chamar procedimentos de modo usual e ainda fazer chamadas de co-rotinas.

TRAP (ARMADILHA) - tipo de procedimento iniciado por alguma condição causada pelo programa. Usualmente uma condição importante e rara (Ex.: overflow).

INTERRRUPÇÕES - são modificações no fluxo de controle causadas não por uma execução de programa, mas por outra coisa, usualmente relacionada a Entradas e Saídas. Neste caso, o computador volta ao estado anterior à interrupção.

Depois de fecharmos as instruções, faremos um apanhado geral num nível mais acima: o Sistema Operacional.

Continua >>