Fluxo de controle

293 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
293
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Fluxo de controle

  1. 1. Fluxo de Controle Saindo um pouco da visão de instruções separadas, vamos passar a olhar um programa como um todo, incluindo a ordem e a maneira como são executadas Fluxo de controle é justamente a ordem em que as instruções de um programa, armazenadas sequencialmente na memória, são executadas 1
  2. 2.  A essa altura, já estamos cansados de saber que as instruções de um programa, mesmo armazenadas sequencialmente na memória, não são necessariamente executadas na mesma sequência, por causa dos desvios que podem ocorrer ao longo da execução Excetuando os desvios, também já vimos e revimos que a execução da próxima instrução se dá através da incrementação do contador de programa (PC), o qual indica o endereço da instrução na memória Assim, temos os seguintes gráficos: 2
  3. 3.  O gráfico à esquerda representa os valores de PC ao longo do tempo em uma execução totalmente sequencial (ideal), enquanto o gráfico à direita exibe esses valores com a ocorrências de desvios 3
  4. 4.  Assim como em um programa escrito em linguagem de alto nível, é melhor organizar as instruções em métodos/funções em vez de deixar a “main” com um amontoado de instruções diferentes, o um macroprograma é melhor estruturado em procedimentos O fluxo de controle também é alterado com a chamada de um procedimento, mas com a vantagem de que a execução retorna à linha da chamada após o seu término Quando falamos sobre pilhas pela primeira vez, vimos que a chamada de um procedimento adiciona na pilha o endereço da chamada, justamente para que esse retorno aconteça 4
  5. 5.  Imagine os dois retângulos abaixo como sequências de instruções sendo executadas O procedimento à esquerda é chamado do programa principal, e chama vários outros procedimentos em pontos distintos 5
  6. 6.  Em alguns casos, são necessárias as chamadas co-rotinas, isto é, quando um procedimento A chama um procedimento B, e o mesmo após executar algumas instruções, volta a chamar o procedimento A. Este, por sua vez, retoma a execução a partir da linha onde o procedimento B havia sido invocado 6
  7. 7.  Outro modificador do fluxo de controle de um programa são as traps (armadilhas) que param a execução do programa por motivos de força maior. Ocorrências de overflow e outros tipos de exceções são alguns dos motivos Finalmente, existem as interrupções, que, assim como as traps, interrompem a execução de um programa. Porém, desta vez, trata-se de uma parada temporária, geralmente para dar vez a operações de E/S que, como vimos, tem prioridade sobre as demais 7

×