Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Prof. Rogério Colpani E-mail: rocolpani@gmail.com 1 1. Introdução. 2. Conceitos de Hardwares. 3. Conceitos de Softwares. 2Programação em Microinformática 3Programação em Microinformática Existe uma longa distância entre um determinado comportamento desejado e um conjunto de dispositivos eletrônicos (desorganizados). Dispositivos Eletrônicos Comportamento desejado 4Programação em Microinformática Um computador de uso geral pode ser visto como o ponto central de uma ponte para se caminhar de um conjunto de dispositivos eletrônicos até a obtenção de um comportamento desejado (função). Dispositivos Eletrônicos Comportamento desejado Computador de uso geral Arquitetura de computadores Software Transformação de um problema O objetivo final é transformar um problema, descrito em linguagem natural, em elétrons circulando através de um circuito. 5 Linguagem natural Algoritmo Programa Arquitetura do Computador Microarquitetura Circuitos lógicos Dispositivos Comportamento desejado: Aplicação Matéria Prima: Dispositivos eletrônicos 5Programação em Microinformática Linguagem natural Algoritmo Programa Arquitetura do Computador Microarquitetura Circuitos lógicos Dispositivos Sistemas Operacionais I Forma como nós seres humanos comunicamos Exemplos – Idiomas Inglês, Francês, Português 6Programação em Microinformática Linguagem natural Algoritmo Programa Arquitetura do Computador Microarquitetura Circuitos lógicos Dispositivos Sequência de passos bem definida que visa atingir um objetivo. Exemplos pseudocódigo, fluxograma e descrição narrativa 7Programação em Microinformática Linguagem natural Algoritmo Programa Arquitetura do Computador Microarquitetura Circuitos lógicos Dispositivos Conjunto de instruções que contém as operações necessárias para, a partir de dados inseridos, obter um resultado que será disponibilizado por algum dispositivo de saída. Exemplos Editores de texto, SO 8Programação em Microinformática Introdução Linguagem natural Algoritmo Programa Arquitetura do Computador Microarquitetura Circuitos lógicos Dispositivos Especificação formal de todas as funções que uma determinada máquina pode executar. Funções conhecidas como ISA (conjunto de instrução de máquina) 9Programação em Microinformática Linguagem natural Algoritmo Programa Arquitetura do Computador Microarquitetura Circuitos lógicos Dispositivos Implementação da ISA em um microprocessador, ou seja, a forma como as especificações da ISA ocorrerão. 10Programação em Microinformática Linguagem natural Algoritmo Programa Arquitetura do Computador Microarquitetura Circuitos lógicos Dispositivos Cada elemento da microarquitetura é composto por circuitos lógicos simples. 11Programação em Microinformática Linguagem natural Algoritmo Programa Arquitetura do Computador Microarquitetura Circuitos lógicos Dispositivos Cada circuito lógico é construído com dispositivos eletrônicos. Exemplo Transistores CMOS 12Programação em Microinformática 13Programação em Microinformática 14Programação em Microinformática Introduziu o conceito de computador controlado por programa armazenado. Dados e instruções no mesmo espaço de memória. Execução sequencial de instruções. 15Programação em Microinformática Durante sua operação, a execução de um programa é uma sequência composta por: 1. Busca da instrução: transfere instrução da posição de memória apontada pelo contador de programa (PC) para a CPU. 2. Executa a instrução: a unidade de controle decodifica a instrução e gerencia os passos para sua execução pela unidade lógica e aritmética (ULA). 16Programação em Microinformática Componentes básicos de um computador Memória Sistemas de E/S Barramentos Processador 17Programação em Microinformática Placa de circuito impresso (PCB) é um componente de hardware que fornece conexões elétricas entre dispositivos em vários lugares da placa. Computadores dependem das interações entre muitos dispositivos de hardware para satisfazer aos requisitos do sistema. Comunicação entre os componentes é feito por meio de barramentos. 18Programação em Microinformática Sistema básico de entrada/saída (BIOS): é um programa de computador pré-gravado em memória permanente e executado pelo computador quando ligado. Ele é responsável pelo suporte básico de acesso ao hardware, bem como por iniciar o sistema operacional. Onde se localiza ? O BIOS é armazenado em um chip ROM e está localizado na placa mãe. Dois programas: • Setup: usado para configurar alguns parâmetros do BIOS. • Post: uma sequência de testes de hardware do computador para verificar se o sistema se encontra em estado operacional. 19Programação em Microinformática Sequência de funcionamento Quando o computador é ligado 1. É realizado a leitura do CMOS (memória onde ficam armazenados informações sobre a configuração de hardware e a configuração inicial do computador). 2. POST: diagnósticos e testes realizados nos componentes físicos (disco rígido, processador ...). Os problemas são informados por uma combinação de sons numa determinada sequência ou exibidos na tela. 3. Ativação de outros BIOS possivelmente presentes em dispositivos instalados no computador. Exemplo, placa de vídeo. 4. Os dados são transferidos para a memória principal. 5. Leitura dos dispositivos de armazenamento, cujos detalhes e ordem de inicialização são armazenados no CMOS. Se há um SO instalado no dispositivo, então o BIOS terá informações para encontrá-lo. 20Programação em Microinformática Processador ULARegistradores Controle • Componente de hardware que executa um fluxo de instruções em linguagem de máquina. • Executa as instruções de programas armazenados na memória principal. • Funções • Busca instruções. • Decodifica instruções. • Executa instruções. 21Programação em Microinformática Unidade lógica e aritmética (ULA) Executa operações básicas de aritmética e lógica, como adição, multiplicação e comparações lógicas. 22Programação em Microinformática Unidade de controle Determina quais ações são tomadas pelo computador, baseado no valor de determinados registradores especiais (ou “de controle”). 23Programação em Microinformática Registradores São memórias de alta velocidade e guardam dados para uso imediato pelo processador. São conectados ao circuito do processador e localizados fisicamente próximo das unidades de execução. 24Programação em Microinformática 25Programação em Microinformática Consiste de um arranjo linear de células de armazenamento endereçáveis similares aos registradores, porém em quantidade muito maior. 26Programação em Microinformática O tamanho e a velocidade da memória são limitados pelas leis da física e da economia. Há um limite para a velocidade com que os elétrons podem viajar; quanto mais comprido o fio entre dois terminais, mais tempo demorará a transferência. É caro equipar processadores com grandes quantidades de memória que possam atender às requisições de dados à mesma (ou próxima) velocidade do processador. Compromisso custo/desempenho caracteriza a hierarquia de memória. 27Programação em Microinformática Registradores Cache L1 Cache L2 Memória principal Memória secundária custo velocidade Capacidade de armazenamento 28Programação em Microinformática Conjunto de conexões elétricas que transportam informações entre dispositivos de hardware. Os dispositivos enviam sinais elétricos pelo barramento para se comunicarem com outros dispositivos. Tipos de barramentos Dados: transmitem dados de um componente a outro. Endereço: determinam o local de um dado sendo acessado. Controle: determinam a direção de um determinado fluxo de dados, ou quando um componente pode acessar o barramento. 29Programação em Microinformática 30Programação em Microinformática Permite que dispositivos de hardware acessem a memória do sistema para leitura e escrita independentemente da CPU. Dessa forma a CPU fica livre para executar instruções de software. O DMA envia uma interrupção para o processador avisando que a transferência está completa e os dados estão disponíveis. 31Programação em Microinformática 1. Um processador envia uma solicitação de E/S ao DMA, que envia a solicitação ao disco. O processador continua executando instruções. 2. O disco envia dados ao DMA; os dados são colocados no endereço de memória especificado pelo comando do DMA. 3. O DMA envia uma interrupção ao processador indicando que a E/S foi concluída. Exemplo 32Programação em Microinformática O computador se comunica com o “mundo exterior” através do sistema de E/S. Exemplos de dispositivos de E/S Impressora, scanners, teclado, mouse, monitor, HD, microfone ... Os dispositivos de E/S não se conectam diretamente à CPU, mas através de interfaces (exemplo, controladora de disco), estas sim conectadas ao barramento. Arquiteturas de computador contêm recursos que executam funções de sistemas operacionais rapidamente em hardware para melhorar o desempenho. Também possuem recursos que habilitam o sistema operacional a impor rígida proteção, o que melhora a segurança e a integridade do sistema. • A maioria dos SOs depende de processadores para implementar seus mecanismos de proteção impedindo processos de acessar instruções privilegiadas ou de acessar memórias que não lhes foram alocadas. • Se os processos tentarem violar os mecanismos de proteção de um sistema, o processador alerta o SO para que ele possa reagir. Sistemas Operacionais I 3333Sistemas Operacionais Modo de acesso Importante Implementação de mecanismos de proteção ao núcleo do sistema e de acesso aos seus serviços. Caso uma aplicação, que tenha acesso ao núcleo, realize uma operação que altere sua integridade, todo o sistema poderá ficar comprometido e inoperante. Muitas das principais implementações de segurança de um sistema operacional utilizam um mecanismo presente no hardware dos processadores, conhecido como modo de acesso. Modos de acesso • Modo usuário. • Modo núcleo. 34Sistemas Operacionais Modo usuário Aplicação só pode executar instruções conhecidas como não- privilegiados, tendo acesso a um número reduzido de instruções. Modo núcleo Aplicação pode ter acesso ao conjunto total de instruções do processador. • Instruções privilegiadas: têm o poder de comprometer o sistema. • Instruções não privilegiadas: não oferecem perigo ao sistema. O modo de acesso é determinado por um conjunto de bits, localizado no registrador de status do processador, que indica o modo de acesso corrente. Por intermédio desse registrador, o hardware verifica se a instrução pode ou não ser executada. 35Sistemas Operacionais Apenas o SO tem acesso às instruções privilegiadas. ... Aplicação necessita de um serviço que pode colocar o sistema em risco, então ... 1. Solicitação é realizada através de uma chama de sistema. 2. A chama de sistema altera o modo de acesso do processador para modo núcleo. 3. Se caso um programa tente executar uma instrução privilegiada, sem o processador estar no modo núcleo, uma exceção é gerada e o programa é encerrado. 4. Se for permitido ele executa a tarefa solicitada. 5. O modo de acesso é retornado para o modo usuário ao término da rotina do sistema. 36Sistemas Operacionais Exemplo 1 Uma aplicação atualiza um arquivo em disco. O programa, por si só, não deve especificar diretamente as instruções que acessam seus dados no disco. Como o disco é um recurso compartilhado, sua utilização deverá ser gerenciada unicamente pelo SO, evitando que a aplicação possa ter acesso a qualquer área do disco sem autorização, o que poderia comprometer a segurança e a integridade do sistema de arquivos. 37Sistemas Operacionais Exemplo 2 Caso uma aplicação tenha acesso a áreas de memória onde está carregado o sistema operacional, um programador mal-intencionado ou um erro de programação poderia gravar nessa área, violando o sistema. Com o mecanismo de modo de acesso, para uma aplicação escrever numa área onde resida o SO o programa deve estar sendo executado no modo núcleo. 38Sistemas Operacionais Reflexão: princípio do privilégio mínimo De modo geral, o princípio do privilégio mínimo diz que, em qualquer sistema, deve-se dar às várias entidades somente as capacidades de que necessitam para realizar suas tarefas, mas não mais. Exemplos: • Você o emprega quando decide quem pode ter as chaves da sua casa. • Empresas o empregam quando permitem que funcionários tenham acesso à informações críticas e confidenciais. 39Sistemas Operacionais 44Programação em Microinformática 45Programação em Microinformática Para que o hardware tenha utilidade prática, deve existir um conjunto de programas utilizado como interface entre as necessidades do usuário e as capacidades do hardware. A utilização de softwares adequados às diversas tarefas e aplicações torna o trabalho dos usuários muito mais simples e eficiente. Um programa de computador é composto por uma sequência de instruções, que é interpretada e executada por um processador. 46Programação em Microinformática Nos primeiros SO´s, o ato de programar era bastante complicado, já que o programador deveria possuir conhecimento da arquitetura da máquina e programar através de fios. Programas desenvolvidos em linguagem de máquina. Surgimento das linguagens de programação O programador deixou de se preocupar com muitos aspectos pertinentes ao hardware, como em qual região de memória o programa deveria ser carregado... A utilização das linguagens facilitou a construção de programas, documentação e manutenção. 47Programação em Microinformática Os programas escritos em linguagens de programação criam o que denominamos de programa-fonte. Para o processador executar essas instruções, é necessário passar por uma etapa de conversão, onde toda a representação simbólica das instruções é traduzida para o código de máquina. Esta conversão é realizada por um utilitário denominado tradutor. Há dois tipos distintos de tradutores 1. Montador. 2. Compilador. 48Programação em Microinformática Programa- fonte Programa- objeto Tradutor 49Programação em Microinformática Montador (Assembler) o É o utilitário responsável por traduzir um programa-fonte em linguagem de montagem em um programa-objeto não executável (módulo-objeto). o A linguagem de montagem é particular para cada processador, assim como a linguagem de máquina, o que não permite que programas assembly possam ser portados entre diferentes máquinas. Linguagem de montagem Módulo-objetoMontador 50Programação em Microinformática Compilador o É o utilitário responsável por gerar, a partir de um programa escrito em uma linguagem de alto nível, um programa em linguagem de máquina não executável. o Exemplos de linguagens de programação: C/C++, Pascal, Cobol, Fortran ... Linguagem de alto nível Módulo-objetoCompilador 51Programação em Microinformática É considerado um tradutor que não gera módulo-objeto. A partir de um programa-fonte escrito em linguagem de alto nível, o interpretador, durante a execução do programa, traduz cada instrução e a executa imediatamente. Exemplos de linguagens interpretadas: Basic, Perl ... Desvantagem: tempo gasto na tradução das instruções de um programa toda vez que este for executado, já que não existe a geração de um código executável. 52Programação em Microinformática É o utilitário responsável por gerar, a partir de um ou mais módulos-objetos, um único programa executável. Suas funções básicas são resolver todas as referências simbólicas existentes entre os módulos e reservar memória para a execução do programa. 53Programação em Microinformática É o utilitário responsável por carregar na memória principal um programa para ser executado. Código absoluto: todas as referências a endereços no programa são posições físicas na memória principal, ou seja, o programa só poderia ser carregado a partir do endereço de memória especificado no seu próprio código. Código relocável: todas as referências a endereços no programa são relativas ao início do código, e não a endereços físicos de memória. Dessa forma, os programas puderam ser executados a partir de qualquer partição. 54Programação em Microinformática