SlideShare a Scribd company logo
1 of 29
Engenharia de Controle e Automação




            Automação em Tempo Real



              Módulo 1:
Introdução aos Sistemas de Automação
  A problem well stated is a problem half solved
  (Sir Isaac Newton)



Professor: Constantino Seixas Filho        sexta-feira, 12 de outubro de 2012
                                                                                1
Livro




   Seixas, Constantino e Szuster, Marcelo, Programação
    Concorrente em ambiente WNT: Uma visão de automação,
    Editora da UFMG, 2003


9290-102-24 (rev.:00)                                      2
Filosofia Geral – Modelo
   Hierárquico




9290-102-24 (rev.:00)         3
Programação Concorrente


   Programação concorrente x Programação Seqüencial




   Programação seqüencial [Gary Larson, The Far side Gallery]
9290-102-24 (rev.:00)                                           4
Monotarefa X Multitarefas

   Hoje tudo na vida é multitasking (multitarefas)
      Trabalho, esporte, lazer, cuidar de filhos, etc.

   Só faz sentido quando não estamos utilizando o mesmo recurso
    da máquina




9290-102-24 (rev.:00)                                              5
Por que programação
               concorrente ?

   O computador é mais rápido que seus usuários
    Exemplo: digitação
      Bom digitador: 60 palavras /minuto
      Tempo de processamento de 1 caracter = 10 s
      Computador realiza 10 s de trabalho a cada 2.3 dias

   Em geral várias atividades não concorrem pelos mesmos
    recursos: digitar, imprimir, ouvir mp3, baixar arquivos,
    compilar, etc.
   Melhor modelamento das atividades
   O próprio sistema operacional é formado por dezenas de
    processos concorrentes: arquitetura microkernel




9290-102-24 (rev.:00)                                          6
Arquitetura Microkernel


                            QNX
                            File
                           Manager                    CD-ROM
                                                        File
                                                      Manager                     Flash
                                                                                   File
                                                                                 Manager
              Process
              Manager                                              NFS File                               Process              File System
                               DOS File
                                                                   Manager                                Manager               Manager
                               Manager




kernel
                                                                                                                        Microkernel

                                                Software bus


code

                                                                                                           Device               Network
                                                                                              Neutrino    Manager               Manager
                                                                   Application
                  Photon                                                                      Network
                   GUI                    Character                                           Manager
                                          Manager
                 Manager




                                TCP/IP                                            CIFS File
                               Manager                                            Manager
                                                                                                         9290-102-24-002 (Rev.:00)
                                                                Mqueue
                                                                Manager




   9290-102-24 (rev.:00)                                                                                                                     7
Natureza das Aplicações

   Cíclicas (Evento de tempo)

   Em resposta a eventos de processo ou de operação

   Sincronizadas ao mudo externo

   De tempo real




9290-102-24 (rev.:00)                                  8
Definições Básicas

   Escalonamento

   Scheduler = Escalonador

   Time-sharing

   Time-slice = Quantum

   Tasks: implementadas como processos ou threads

   Colaborativo x Preemptivo




9290-102-24 (rev.:00)                                9
Preempção




9290-102-24 (rev.:00)   10
Chaveamento de Contexto


                            Chaveamento                 Chaveamento
               Processo A    de contexto   Processo B    de contexto   Processo A




   A programação concorrente é mais ineficiente que a
    programação seqüencial. Por que ?

   Só faz sentido quando não estamos utilizando o mesmo recurso
    da máquina

   Processor bound (intensivo) x I/O bound




9290-102-24 (rev.:00)                                                               11
Instruções Atômicas

    X : = X + 1;

                         CPU CISC     CPU RISC
                        inc <X>     ld AX, <X>
                                    inc <AX>
                                    ld <X>, AX




   Instruções atômicas são instruções que o processador executa
    como uma operação indivisível, isto é, sem interrupção




9290-102-24 (rev.:00)                                              12
CISC x RISC


  CISC = Complete Instruction Set Computer

   Instruction Set com grande repertório de instruções
   Instruções gastam vários clocks para completar
   Processador possui poucos registradores internos
   Instruções envolvem memória externa
   ALU para inteiros apenas
   Operações floating point executadas em co-processador
    externo
   Instruções utilizam microcódigo
   Exemplo: Intel 80386




9290-102-24 (rev.:00)                                       13
CISC x RISC

  RISC = Reduced Instruction Set Computer

       Instruction Set com pequeno repertório de instruções
       Instruções executam em apenas 1 ou menos ciclos de clock
       Processador possui muitos registradores internos
       Instruções buscam dados externos para registardor interno e
        operam com estes registardores
       Operações com inteiros e floating points
       Instruções não utilizam microcódigo
       Arquitetura pipeline e superescalar
       Exemplo: CPU Sparc SUN




9290-102-24 (rev.:00)                                                 14
Pipeline

   Várias operações simultâneas




                                                9290-102-24-003 (Rev.:00)




   A CPU trabalha como uma linha de montagem
9290-102-24 (rev.:00)                                                       15
Superescalar

   Duplicando a linha de montagem




                                     9290-102-24-003 (Rev.:00)



9290-102-24 (rev.:00)                                            16
Mais Conceitos

       S.O. Multitasking  Multiprogramação (multitasking)
       S.O. Multiusuário
       S.O. Multiprocessado  Programação paralela
       Multiprocessamento Simétrico (SMP)
       Programação Distribuída




9290-102-24 (rev.:00)                                         17
Interrelação entre Processos

   Não dependentes
   Contenção
   Cooperação




                                  P2
                             P1           P1
          P1                                    P3
                                  Mutex


                        P2
                                           P2

9290-102-24 (rev.:00)                                18
O Problema Fundamental da
   Programação Concorrente


                            Processo A                                        Processo B
    int ConfirmaReserva(int PosicaoDesejada)               int ConfirmaReserva(int PosicaoDesejada)
    { A1: if (MapaOcupacao[PosicaoDesejada]== LIVRE)       { B1: if (MapaOcupacao[PosicaoDesejada]== LIVRE)
      A2:     MapaOcupacao[PosicaoDesejada]=OCUPADO;         B2:      MapaOcupacao[PosicaoDesejada]= OCUPADO;
           else return(FALHA);                                     else return(FALHA);
           return(SUCESSO);                                        return(SUCESSO);
    }                                                      }




           L        L   L      O    L    L    L        L

           O        L   L      O    O    L   O     O




9290-102-24 (rev.:00)                                                                                           19
O Problema Fundamental da
   Programação Concorrente

                        Caso      Intercalação                          Resultado
                         1     A1, A2, B1, B2    Programa A retorna SUCESSO e o Programa B retorna FALHA
                         2     B1, B2, A1, A2    Programa A retorna FALHA e o Programa B retorna SUCESSO
                                                 Programa A retorna SUCESSO e o Programa B retorna
                         3     A1, B1, A2, B2
                                                 SUCESSO
                                                 Programa A retorna SUCESSO e o Programa B retorna
                         4     B1, A1, A2, B2
                                                 SUCESSO
                                                 Programa A retorna SUCESSO e o Programa B retorna
                         5     A1, B1, B2, A2
                                                 SUCESSO
                                                 Programa A retorna SUCESSO e o Programa B retorna
                         6     B1, A1, B2, A2
                                                 SUCESSO



       Conclusão:
        Na programação concorrente não basta que cada programa seqüencial
        esteja logicamente correto. É necessário que produza um resultado
        correto para qualquer ordem de intercalação de suas instruções com
        uma outra instância do mesmo programa ou com qualquer outro
        programa em execução. Isto não exclui o próprio sistema operacional

9290-102-24 (rev.:00)                                                                                      20
Exercícios: Mandelbrot Set



                        zn +1 = z 2 n + p                          p = x + jy


                               (real_max, imag_max)
                                                         (0,0)   coluna

                        y           P

                            Plano complexo                           Tela

                                                      linha
                                                                    T
                                x

                (real_min, imag_min)                                        (xmax, ymax)




9290-102-24 (rev.:00)                                                                      21
Exercícios: Mandelbrot Set

                             Por que este problema
                              é bom para ser dividido
                              entre diversos
                              processadores ?




9290-102-24 (rev.:00)                               22
Exercícios

   Como desenhar um círculo na tela do computador de forma
    eficiente e dividindo a tarefa entre pelo menos duas tarefas ?

   x2 + y2 = r2
   para 0<x<r

  x = r cos θ
  y = r sin θ
  para 0<θ<45o




9290-102-24 (rev.:00)                                                23
Exercícios

  void MidPointCircle(int raio, int valor) // Fonte: Foley van Damn
  // Assume centro do círculo na origem
  // Algoritmo usando apenas aritmética de inteiros
  {
      int x = 0;
      int y = raio;
      int d = 1 – raio;

     CirclePoints (x, y, valor);
     while (y > x) {
          if (d < 0)              // Seleciona E
              d += 2 * x + 3;
        else {                    // Seleciona SE
              d += 2 * (x-y) + 5;
              y--;                                  Princípio:
         }                                          // Compare dist de M ao centro com R2
     x++;                                            if M é interno ao círculo
     CirclePoints(x, y, valor);                           escolha E
      } // while                                    else escolha SE
  } // MidpointCircle

9290-102-24 (rev.:00)                                                                       24
Exercícios

     void CirclePoints(int X, int Y, int valor)
     begin
          PutPixel(CX + X, CY + Y, valor); // ponto no octante 1
          PutPixel(CX - X, CY + Y, valor); // ponto no octante 4
          PutPixel(CX - X, CY - Y , valor); // ponto no octante 5
          PutPixel(CX + X, CY – Y, valor); // ponto no octante 8
          PutPixel(CX + Y, CY + X, valor); // ponto no octante 2
          PutPixel(CX - Y, CY + X, valor); // ponto no octante 3
          PutPixel(CX - Y, CY – X, valor); // ponto no octante 6
          PutPixel(CX + Y, CY – X, valor) // ponto no octante 7
     end; // Circle Points




9290-102-24 (rev.:00)                                               25
Exercícios - Sort

      Colocar os números abaixo em ordem crescente usando um
       algoritmo que permita dividir a tarefa entre dois ou mais processos.
       Qual o algoritmo clássico mais aderente a este problema ?


      N = { 737, 4, 4354, 22, 54, 742, 672, 223, 42, 3, 77, 122, 4554,
       675, 1, 564, 12, 343 }




9290-102-24 (rev.:00)                                                         26
Exercícios - Escalonamento

     Um casal deve realizar três tarefas: cortar a grama, passar o
      aspirador no chão e dar banho e trocar o bebê. Todas as três
      tarefas levam trinta minutos para ser realizadas e podem ser
      executadas por uma pessoa individualmente. Como conseguir a
      melhor alocação destas tarefas no tempo de tal forma a terminar
         o mais rápido possível ?




9290-102-24 (rev.:00)                                                   27
Exercícios - Escalonamento

     Quatro pessoas têm de atravessar uma passarela bamba à noite.
      Há muitos buracos na passarela, que suporta apenas duas pessoas
      de cada vez (mais do que isso ela cai). O grupo deve usar uma
      lanterna para guiar seus passos; caso contrário, acabará caindo
      num buraco e morrendo. Só há uma lanterna. As quarto pessoas
      andam a velocidades diferentes. Adam consegue cruzar a
      passarela em um minuto; Larry, em dois minuto; Edge leva cinco
      minutos; e o mais lento, Bono, precisa de dez minutos. A passarela
      vai ruir dentro de exatamente dezessete minutos. Como os quarto
      podem atravessá-la ?




9290-102-24 (rev.:00)                                                      28
Muito Obrigado




      Constantino Seixas Filho
      constantino.seixas@task.com.br




9290-102-24 (rev.:00)                  29

More Related Content

What's hot

2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processosComputação Depressão
 
Modulo 1: Fundamentos e Tendencias
Modulo 1: Fundamentos e TendenciasModulo 1: Fundamentos e Tendencias
Modulo 1: Fundamentos e TendenciasWalter Cunha
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threadsfernandao777
 
Capítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosCapítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosWellington Oliveira
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisIsaac Vieira
 
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosLuiz Arthur
 
Aula 2 sistemas operacionais
Aula 2 sistemas operacionaisAula 2 sistemas operacionais
Aula 2 sistemas operacionaisCarlos Melo
 

What's hot (13)

2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
 
Unix - Sistema Operacional
Unix - Sistema OperacionalUnix - Sistema Operacional
Unix - Sistema Operacional
 
Modulo 1: Fundamentos e Tendencias
Modulo 1: Fundamentos e TendenciasModulo 1: Fundamentos e Tendencias
Modulo 1: Fundamentos e Tendencias
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threads
 
Capítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosCapítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais Modernos
 
Embarcados
EmbarcadosEmbarcados
Embarcados
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
SO-02 Processos
SO-02 ProcessosSO-02 Processos
SO-02 Processos
 
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
 
Aula 2 sistemas operacionais
Aula 2 sistemas operacionaisAula 2 sistemas operacionais
Aula 2 sistemas operacionais
 
Aula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoriaAula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoria
 
Conceito de processos
Conceito de processosConceito de processos
Conceito de processos
 

Viewers also liked

Viewers also liked (8)

Q159
Q159Q159
Q159
 
Gibi - Origem da vida
Gibi - Origem da vidaGibi - Origem da vida
Gibi - Origem da vida
 
Acao promo fermento
Acao promo fermentoAcao promo fermento
Acao promo fermento
 
Opinión positiva
Opinión positivaOpinión positiva
Opinión positiva
 
Warda 1100631042
Warda 1100631042Warda 1100631042
Warda 1100631042
 
Board
BoardBoard
Board
 
Matematica pascoa.docneg (2)
Matematica pascoa.docneg (2)Matematica pascoa.docneg (2)
Matematica pascoa.docneg (2)
 
Planet Earth
Planet EarthPlanet Earth
Planet Earth
 

Similar to Atr cap1

INT303 - Boot Remoto de Linux no Windows Server 2008 R2
INT303 - Boot Remoto de Linux no Windows Server 2008 R2INT303 - Boot Remoto de Linux no Windows Server 2008 R2
INT303 - Boot Remoto de Linux no Windows Server 2008 R2mestresemhd
 
5 sistemas supervisorios e redes industriais
5 sistemas supervisorios e redes industriais5 sistemas supervisorios e redes industriais
5 sistemas supervisorios e redes industriaisMarcos Sincerre
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634JADSON SANTOS
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkFlávio Lisboa
 
eboxx® - Central Monitoring
eboxx® - Central Monitoringeboxx® - Central Monitoring
eboxx® - Central MonitoringOhio University
 
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...André Curvello
 
Questoesde fso
Questoesde fsoQuestoesde fso
Questoesde fsopaulocsm
 
Manual Oppitz[1]
Manual Oppitz[1]Manual Oppitz[1]
Manual Oppitz[1]maureen3008
 
MANUAL OPPITZ
MANUAL OPPITZMANUAL OPPITZ
MANUAL OPPITZritasbett
 
Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Fernando Gomes Chaves
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscBruno Dias
 
Introdução aos Sistemas Operacionais
Introdução aos Sistemas OperacionaisIntrodução aos Sistemas Operacionais
Introdução aos Sistemas OperacionaisRodrigoMalara1
 
Computador de Bordo, Linux
Computador de Bordo, LinuxComputador de Bordo, Linux
Computador de Bordo, Linuxbarrosjonatas
 
sistemas operativos.ppt
sistemas operativos.pptsistemas operativos.ppt
sistemas operativos.pptssuserb52d9e
 

Similar to Atr cap1 (20)

INT303 - Boot Remoto de Linux no Windows Server 2008 R2
INT303 - Boot Remoto de Linux no Windows Server 2008 R2INT303 - Boot Remoto de Linux no Windows Server 2008 R2
INT303 - Boot Remoto de Linux no Windows Server 2008 R2
 
So cap01
So cap01So cap01
So cap01
 
5 sistemas supervisorios e redes industriais
5 sistemas supervisorios e redes industriais5 sistemas supervisorios e redes industriais
5 sistemas supervisorios e redes industriais
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend Framework
 
Arquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completaArquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completa
 
Desk top virtual_gbanif
Desk top virtual_gbanifDesk top virtual_gbanif
Desk top virtual_gbanif
 
eboxx® - Central Monitoring
eboxx® - Central Monitoringeboxx® - Central Monitoring
eboxx® - Central Monitoring
 
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
 
Questoesde fso
Questoesde fsoQuestoesde fso
Questoesde fso
 
Manual Oppitz[1]
Manual Oppitz[1]Manual Oppitz[1]
Manual Oppitz[1]
 
MANUAL OPPITZ
MANUAL OPPITZMANUAL OPPITZ
MANUAL OPPITZ
 
S.o aula 5678
S.o aula 5678S.o aula 5678
S.o aula 5678
 
Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_cisc
 
Introdução aos Sistemas Operacionais
Introdução aos Sistemas OperacionaisIntrodução aos Sistemas Operacionais
Introdução aos Sistemas Operacionais
 
Computador de Bordo, Linux
Computador de Bordo, LinuxComputador de Bordo, Linux
Computador de Bordo, Linux
 
sistemas operativos.ppt
sistemas operativos.pptsistemas operativos.ppt
sistemas operativos.ppt
 

Recently uploaded

Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumPatrícia de Sá Freire, PhD. Eng.
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxKtiaOliveira68
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 

Recently uploaded (20)

Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comum
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptx
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 

Atr cap1

  • 1. Engenharia de Controle e Automação Automação em Tempo Real Módulo 1: Introdução aos Sistemas de Automação A problem well stated is a problem half solved (Sir Isaac Newton) Professor: Constantino Seixas Filho sexta-feira, 12 de outubro de 2012 1
  • 2. Livro  Seixas, Constantino e Szuster, Marcelo, Programação Concorrente em ambiente WNT: Uma visão de automação, Editora da UFMG, 2003 9290-102-24 (rev.:00) 2
  • 3. Filosofia Geral – Modelo Hierárquico 9290-102-24 (rev.:00) 3
  • 4. Programação Concorrente  Programação concorrente x Programação Seqüencial Programação seqüencial [Gary Larson, The Far side Gallery] 9290-102-24 (rev.:00) 4
  • 5. Monotarefa X Multitarefas  Hoje tudo na vida é multitasking (multitarefas)  Trabalho, esporte, lazer, cuidar de filhos, etc.  Só faz sentido quando não estamos utilizando o mesmo recurso da máquina 9290-102-24 (rev.:00) 5
  • 6. Por que programação concorrente ?  O computador é mais rápido que seus usuários Exemplo: digitação  Bom digitador: 60 palavras /minuto  Tempo de processamento de 1 caracter = 10 s  Computador realiza 10 s de trabalho a cada 2.3 dias  Em geral várias atividades não concorrem pelos mesmos recursos: digitar, imprimir, ouvir mp3, baixar arquivos, compilar, etc.  Melhor modelamento das atividades  O próprio sistema operacional é formado por dezenas de processos concorrentes: arquitetura microkernel 9290-102-24 (rev.:00) 6
  • 7. Arquitetura Microkernel QNX File Manager CD-ROM File Manager Flash File Manager Process Manager NFS File Process File System DOS File Manager Manager Manager Manager kernel Microkernel Software bus code Device Network Neutrino Manager Manager Application Photon Network GUI Character Manager Manager Manager TCP/IP CIFS File Manager Manager 9290-102-24-002 (Rev.:00) Mqueue Manager 9290-102-24 (rev.:00) 7
  • 8. Natureza das Aplicações  Cíclicas (Evento de tempo)  Em resposta a eventos de processo ou de operação  Sincronizadas ao mudo externo  De tempo real 9290-102-24 (rev.:00) 8
  • 9. Definições Básicas  Escalonamento  Scheduler = Escalonador  Time-sharing  Time-slice = Quantum  Tasks: implementadas como processos ou threads  Colaborativo x Preemptivo 9290-102-24 (rev.:00) 9
  • 11. Chaveamento de Contexto Chaveamento Chaveamento Processo A de contexto Processo B de contexto Processo A  A programação concorrente é mais ineficiente que a programação seqüencial. Por que ?  Só faz sentido quando não estamos utilizando o mesmo recurso da máquina  Processor bound (intensivo) x I/O bound 9290-102-24 (rev.:00) 11
  • 12. Instruções Atômicas X : = X + 1; CPU CISC CPU RISC inc <X> ld AX, <X> inc <AX> ld <X>, AX  Instruções atômicas são instruções que o processador executa como uma operação indivisível, isto é, sem interrupção 9290-102-24 (rev.:00) 12
  • 13. CISC x RISC CISC = Complete Instruction Set Computer  Instruction Set com grande repertório de instruções  Instruções gastam vários clocks para completar  Processador possui poucos registradores internos  Instruções envolvem memória externa  ALU para inteiros apenas  Operações floating point executadas em co-processador externo  Instruções utilizam microcódigo  Exemplo: Intel 80386 9290-102-24 (rev.:00) 13
  • 14. CISC x RISC RISC = Reduced Instruction Set Computer  Instruction Set com pequeno repertório de instruções  Instruções executam em apenas 1 ou menos ciclos de clock  Processador possui muitos registradores internos  Instruções buscam dados externos para registardor interno e operam com estes registardores  Operações com inteiros e floating points  Instruções não utilizam microcódigo  Arquitetura pipeline e superescalar  Exemplo: CPU Sparc SUN 9290-102-24 (rev.:00) 14
  • 15. Pipeline  Várias operações simultâneas 9290-102-24-003 (Rev.:00)  A CPU trabalha como uma linha de montagem 9290-102-24 (rev.:00) 15
  • 16. Superescalar  Duplicando a linha de montagem 9290-102-24-003 (Rev.:00) 9290-102-24 (rev.:00) 16
  • 17. Mais Conceitos  S.O. Multitasking  Multiprogramação (multitasking)  S.O. Multiusuário  S.O. Multiprocessado  Programação paralela  Multiprocessamento Simétrico (SMP)  Programação Distribuída 9290-102-24 (rev.:00) 17
  • 18. Interrelação entre Processos  Não dependentes  Contenção  Cooperação P2 P1 P1 P1 P3 Mutex P2 P2 9290-102-24 (rev.:00) 18
  • 19. O Problema Fundamental da Programação Concorrente Processo A Processo B int ConfirmaReserva(int PosicaoDesejada) int ConfirmaReserva(int PosicaoDesejada) { A1: if (MapaOcupacao[PosicaoDesejada]== LIVRE) { B1: if (MapaOcupacao[PosicaoDesejada]== LIVRE) A2: MapaOcupacao[PosicaoDesejada]=OCUPADO; B2: MapaOcupacao[PosicaoDesejada]= OCUPADO; else return(FALHA); else return(FALHA); return(SUCESSO); return(SUCESSO); } } L L L O L L L L O L L O O L O O 9290-102-24 (rev.:00) 19
  • 20. O Problema Fundamental da Programação Concorrente Caso Intercalação Resultado 1 A1, A2, B1, B2 Programa A retorna SUCESSO e o Programa B retorna FALHA 2 B1, B2, A1, A2 Programa A retorna FALHA e o Programa B retorna SUCESSO Programa A retorna SUCESSO e o Programa B retorna 3 A1, B1, A2, B2 SUCESSO Programa A retorna SUCESSO e o Programa B retorna 4 B1, A1, A2, B2 SUCESSO Programa A retorna SUCESSO e o Programa B retorna 5 A1, B1, B2, A2 SUCESSO Programa A retorna SUCESSO e o Programa B retorna 6 B1, A1, B2, A2 SUCESSO  Conclusão: Na programação concorrente não basta que cada programa seqüencial esteja logicamente correto. É necessário que produza um resultado correto para qualquer ordem de intercalação de suas instruções com uma outra instância do mesmo programa ou com qualquer outro programa em execução. Isto não exclui o próprio sistema operacional 9290-102-24 (rev.:00) 20
  • 21. Exercícios: Mandelbrot Set zn +1 = z 2 n + p p = x + jy (real_max, imag_max) (0,0) coluna y P Plano complexo Tela linha T x (real_min, imag_min) (xmax, ymax) 9290-102-24 (rev.:00) 21
  • 22. Exercícios: Mandelbrot Set  Por que este problema é bom para ser dividido entre diversos processadores ? 9290-102-24 (rev.:00) 22
  • 23. Exercícios  Como desenhar um círculo na tela do computador de forma eficiente e dividindo a tarefa entre pelo menos duas tarefas ? x2 + y2 = r2 para 0<x<r x = r cos θ y = r sin θ para 0<θ<45o 9290-102-24 (rev.:00) 23
  • 24. Exercícios void MidPointCircle(int raio, int valor) // Fonte: Foley van Damn // Assume centro do círculo na origem // Algoritmo usando apenas aritmética de inteiros { int x = 0; int y = raio; int d = 1 – raio; CirclePoints (x, y, valor); while (y > x) { if (d < 0) // Seleciona E d += 2 * x + 3; else { // Seleciona SE d += 2 * (x-y) + 5; y--; Princípio: } // Compare dist de M ao centro com R2 x++; if M é interno ao círculo CirclePoints(x, y, valor); escolha E } // while else escolha SE } // MidpointCircle 9290-102-24 (rev.:00) 24
  • 25. Exercícios void CirclePoints(int X, int Y, int valor) begin PutPixel(CX + X, CY + Y, valor); // ponto no octante 1 PutPixel(CX - X, CY + Y, valor); // ponto no octante 4 PutPixel(CX - X, CY - Y , valor); // ponto no octante 5 PutPixel(CX + X, CY – Y, valor); // ponto no octante 8 PutPixel(CX + Y, CY + X, valor); // ponto no octante 2 PutPixel(CX - Y, CY + X, valor); // ponto no octante 3 PutPixel(CX - Y, CY – X, valor); // ponto no octante 6 PutPixel(CX + Y, CY – X, valor) // ponto no octante 7 end; // Circle Points 9290-102-24 (rev.:00) 25
  • 26. Exercícios - Sort  Colocar os números abaixo em ordem crescente usando um algoritmo que permita dividir a tarefa entre dois ou mais processos. Qual o algoritmo clássico mais aderente a este problema ?  N = { 737, 4, 4354, 22, 54, 742, 672, 223, 42, 3, 77, 122, 4554, 675, 1, 564, 12, 343 } 9290-102-24 (rev.:00) 26
  • 27. Exercícios - Escalonamento  Um casal deve realizar três tarefas: cortar a grama, passar o aspirador no chão e dar banho e trocar o bebê. Todas as três tarefas levam trinta minutos para ser realizadas e podem ser executadas por uma pessoa individualmente. Como conseguir a melhor alocação destas tarefas no tempo de tal forma a terminar o mais rápido possível ? 9290-102-24 (rev.:00) 27
  • 28. Exercícios - Escalonamento  Quatro pessoas têm de atravessar uma passarela bamba à noite. Há muitos buracos na passarela, que suporta apenas duas pessoas de cada vez (mais do que isso ela cai). O grupo deve usar uma lanterna para guiar seus passos; caso contrário, acabará caindo num buraco e morrendo. Só há uma lanterna. As quarto pessoas andam a velocidades diferentes. Adam consegue cruzar a passarela em um minuto; Larry, em dois minuto; Edge leva cinco minutos; e o mais lento, Bono, precisa de dez minutos. A passarela vai ruir dentro de exatamente dezessete minutos. Como os quarto podem atravessá-la ? 9290-102-24 (rev.:00) 28
  • 29. Muito Obrigado Constantino Seixas Filho constantino.seixas@task.com.br 9290-102-24 (rev.:00) 29