SlideShare uma empresa Scribd logo
1 de 7
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
 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
 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
 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
 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
 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
 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

Mais conteúdo relacionado

Mais procurados

Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
Talles Nascimento Rodrigues
 

Mais procurados (11)

Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
Estrategias de backup e recovery
Estrategias de backup e recoveryEstrategias de backup e recovery
Estrategias de backup e recovery
 
3 escalonamento processos
3 escalonamento processos3 escalonamento processos
3 escalonamento processos
 
Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"
 
MALHA ABERTA E MALHA FECHADA
MALHA ABERTA E MALHA FECHADAMALHA ABERTA E MALHA FECHADA
MALHA ABERTA E MALHA FECHADA
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Processos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosProcessos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson Treinamentos
 
Soa#cap4.1 gestor de pacotes
Soa#cap4.1   gestor de pacotesSoa#cap4.1   gestor de pacotes
Soa#cap4.1 gestor de pacotes
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Airmax
AirmaxAirmax
Airmax
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamento
 

Destaque (17)

Aspectos basicos de hardware e software
Aspectos basicos de hardware e softwareAspectos basicos de hardware e software
Aspectos basicos de hardware e software
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Principios da microprogramacao
Principios da microprogramacaoPrincipios da microprogramacao
Principios da microprogramacao
 
Montagem
MontagemMontagem
Montagem
 
Aspectos basicos de hardware e software
Aspectos basicos de hardware e softwareAspectos basicos de hardware e software
Aspectos basicos de hardware e software
 
Instrucoes
InstrucoesInstrucoes
Instrucoes
 
Arquiteturas de computadores! slidesversaopdf
Arquiteturas de computadores!   slidesversaopdfArquiteturas de computadores!   slidesversaopdf
Arquiteturas de computadores! slidesversaopdf
 
Microprogramacao
MicroprogramacaoMicroprogramacao
Microprogramacao
 
Pipeline
PipelinePipeline
Pipeline
 
Macroprogramacao
MacroprogramacaoMacroprogramacao
Macroprogramacao
 
Pilhas
PilhasPilhas
Pilhas
 
Introducao
IntroducaoIntroducao
Introducao
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Maquinas multinivel
Maquinas multinivelMaquinas multinivel
Maquinas multinivel
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Maquinas multinivel
Maquinas multinivelMaquinas multinivel
Maquinas multinivel
 

Semelhante a Fluxo de controle

Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdfAula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
MatheusNS1
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Robson Ferreira
 

Semelhante a Fluxo de controle (20)

S.o aula 9101112
S.o aula 9101112S.o aula 9101112
S.o aula 9101112
 
Processador mips - pipeline
Processador mips - pipelineProcessador mips - pipeline
Processador mips - pipeline
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
S.o aula 1516
S.o aula 1516S.o aula 1516
S.o aula 1516
 
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdf
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdfAula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
 
SO - Aula 05 - Concorrencia
SO - Aula 05 - ConcorrenciaSO - Aula 05 - Concorrencia
SO - Aula 05 - Concorrencia
 
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdfAula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrência
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
 
Aula 3 AEDI.pdf
Aula 3 AEDI.pdfAula 3 AEDI.pdf
Aula 3 AEDI.pdf
 
Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptx
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
 
Mudança de runlevels e desligamento do sistema
Mudança de runlevels e desligamento do sistemaMudança de runlevels e desligamento do sistema
Mudança de runlevels e desligamento do sistema
 
SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Java básico - Módulo 05 - Estruturas de Repetição
Java  básico - Módulo 05 - Estruturas de RepetiçãoJava  básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 05 - Estruturas de Repetição
 
Elementos do Sistema Operacionais
Elementos do Sistema OperacionaisElementos do Sistema Operacionais
Elementos do Sistema Operacionais
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 

Fluxo de controle

  • 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.  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.  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.  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.  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.  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.  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