Sistemas Operacionais Adão de Melo Neto 1 Computador Digital (Hardware) 2 Computador Digital Constituído por um conjunto de componentes interligados (hardware): processadores, memórias, registradores, barramentos, monitores impressoras, mouse, etc Computador Manipulam dados na forma de bits (bits 0 e 1) => uma maneira confiável de representação 3 Computador 3 subsistemas básicos: 4 Processador/UCP(Unidade Central de Processamento) 5 Processador 3 subsistemas básicos: - FUNÇÃO - Controlar as funções realizadas por cada subsistema -Executar programas em linguagem de máquina armazenados e na memória principal Programa (em linguagem de máquina): é uma série de instruções, armazenadas na 6 memória principal (na forma de 0’s e 1’s), executadas sequencialmente pela UCP (processador) através de operações básicas conhecidas pela mesma. Programa em linguagem de máquina na memória principal Conjunto de Instruções da UCP (processador). São as operações básicas conhecidas pelo processador O sistema hexadecimal é uma forma compacta de representação binária (0s e 1s) 7 Execução do Programa PC (Program counter) Armazena o endereço da próxima instrução que processador deve buscar e executar. 8 Unidade de Lógica e Aritmética: Realização de operações lógicas (testes e comparações) e aritméticas (somas e subtrações) Unidade de Controle: Controle das atividades de todos os componentes do computador (exemplo: gravação de um dado no disco, busca de uma instrução na memória) 9 Registradores: • Memória de alta velocidade utilizado para armazenamento temporário de dados. • Registradores de uso geral Manipulados diretamente por instruções •Registradores de uso específico Armazena informações de controle do processador e do sistema operacional 10 Exemplo: PC (Program Counter) PC (Program Counter ou Contador de Programa ) • Registrador que armazena o endereço da próxima instrução que processador deve buscar e executar. • Toda vez que o processador (UCP) executa uma instrução o PC é atualizado com um novo endereço PC (Program counter) 11 Memória 12 Endereço Permite o acesso ao conteúdo da célula Memória Principal (MP) Armazena instruções e dados das instruções a serem executadas pelo processador (UCP) Célula Composta por certo número de bits 13 Memória Principal (MP) Armazena instruções e dados das instruções as TIPO DE MEMÓRIA PRINCIPAL RAM (random acess memory) Pode ser lida ou gravada Volátil (não preserva conteúdo sem fonte de alimentação) Quase toda memória principal ROM (Read-Only Memory) Gravada pelo fabricante com programa Não-volátil 14 Memória Cache (MC) Aumentar a velocidade de acesso a instruções/dados Memória volátil de alta velocidade (muito maior que da memória principal). A memória cache é cara. Técnica: – Antes da CPU consultar a MP consulta-se a MC – Caso não encontra o bloco de dados na MC ele é transferido da MP para MC – Isto garante que os dados mais usados com mais frequência estejam na 15 memória cache. Memória Secundária (MS) Meio não-volátil de armazenamento de programas e dados Lenta Custo baixo Fitas magnéticas, disco magnético e disco ótico 16 Memórias Relação entre memórias 17 Dispositivo de Entrada/Saída Dispositivos usados como memória secundária – Discos e fitas – Custo baixo, tempo de acesso alta Dispositivos usados como interface homem-máquina – teclados, monitores, impressoras, caneta ótica, mouse, etc Dispositivos de E/S Permitir comunicação entre computador e mundo externo 18 Barramentos Barramentos Conjunto de fios paralelos onde trafegam informação como dados, endereços ou sinais de controle. 19 Barramentos Barramentos de Dados Transmite informações entre a CPU e memória principal/dispositivos E/S Barramentos de Endereços Utilizado pela CPU para especificar endereço da célula de memória ou dispositivo de E/S a ser acessado Barramentos de Controle É por onde a CPU envia pulsos de controle relativos as operações de leitura e de gravação 20 Pipelining • Técnica que permite o processador executar múltiplas instruções paralelamente (ao mesmo tempo) e em diferentes estágios (permitindo desta forma o aumento da velocidade) • A execução de uma instrução pode ser dividida em subtarefas 21 Ativação do Sistema - Ao ligar o computador, o sistema operacional tem que ser carregado da MS para a MP por um programa localizado em uma posição específica do disco. 22 Arquiteturas RISC e CISC RISC – Reduced Instruction Set Computer – Conjunto Reduzido de instruções – Instruções de máquina executadas diretamente pelo hardware. – Alta velocidade. – Pouco acesso a memória principal (MP) pois trabalham com muitos registradores. – Exemplo: Sparc (SUN) e RS-6000 (IBM) 23 Arquiteturas RISC e CISC CISC – Complex Instruction Set Computer – Conjunto Complexo (grande) de instruções – Baixa velocidade. – Exemplo: VAX (DEC) e Pentium (Intel) 24 Montador (assembler) Linguagem de máquina Linguagem Assembly Montador (assembler) Traduz um programa fonte em linguagem de montagem (linguagem assembly) 25 em um módulo-objeto (em linguagem de máquina) não executável. Compilador Programa em Linguagem C Compilador Traduz um programa em linguagem de alto-nível (pascal, fortran, cobol) em um 26 Módulo-objeto (em linguagem de máquina) não executável Compilador 27 Introdução a Sistemas Operacionais Adão de Melo Neto 28 Definição de SO Sistema Operacional Permite o compartilhamento de recursos de forma organizada É um conjunto de rotinas (programa) executado pelo processador que controla o funcionamento do computador como gerente dos diversos recursos (processadores, memórias e dispositivos de entrada e saída). Facilita o acesso aos recursos do sistema 29 Sistema Operacional Facilita o acesso aos recursos do sistema Disponibiliza uma Interface entre os usuários e Recursos do sistema (usuário não precisa conhecer detalhes do hardware). Permite eficiência e menor chance de erro 30 Sistema Operacional Compartilhamento de recursos de forma organizada Possibilita o acesso concorrente (“ao mesmo tempo”) a recursos compartilhados (memórias, discos, impressoras, por exemplo) de forma organizada e protegida 31 Sistema Operacional Computador – Hardware: • circuitos eletrônicos, cabos e fontes de alimentação – Software: • Através dele o computador consegue armazenar dados em discos, imprimir relatórios, gerar gráficos, etc 32 Sistema Operacional Primeiros computadores – Programação através de fios. Exigia grande conhecimento do hardware e de sua linguagem de máquina 33 Sistema Operacional Surgimento do SO – Interação entre usuário/computador mais simples, confiável e eficiente – Parte física do computador transparente ao usuário – Usuário enxerga a máquina como sendo apenas o sistema operacional • Nível 0: hardware • Nível 1: sistema operacional Sistema Operacional É um conjunto de rotinas (programa) executado pelo processador que controla o funcionamento do computador como gerente dos diversos recursos (processadores, memórias e dispositivos de entrada e saída). 34 Tipos de Sistemas Operacionais 35 Tipos de Sistemas Operacionais – O surgimento dos diversos tipos de SO está Intimamente relacionado com a evolução do hardware e das aplicações por ele suportadas 36 Sistemas Monoprogramáveis/Monotarefa Processador, memória e periféricos dedicados a execução de um único programa (na memória). Processador ocioso enquanto programa aguarda algum evento (exemplo: digitação de um dado) Simples de implementação. Não existe preocupação com compartilhamento de recursos Memória principal subutilizada (não preenchida completamente, Apenas um programa) Periféricos dedicados a um único usuário 37 Sistemas Monoprogramáveis/Monotarefa 38 Sistemas Multiprogramáveis/Multitarefa Vários programas dividem os recursos (processador, memória e periféricos) Na memória podem existir vários programas 39 Sistemas Multiprogramáveis/Multitarefa 40 Sistema Monoprogramável X Multiprogramável - Um programa na memória principal por vez. - UCP totalmente dedicada ao programa - Desperdício na utilização da UCP (ex: quando programa faz uma leitura no disco) - Subutilização da memória principal (apenas um programa). 41 Sistema Monoprogramável X Multiprogramável - Vários programas na memória principal CONCORRENDO pela utilização da UCP. - CPU totalmente dedicada aos vários programas - Menos desperdício na utilização da UCP =>Existem vários programas se revezando para utilização da UCP =>Quando um programa solicita uma operação de E/S, outros poderão utilizar a UCP - Melhor uso da memória principal. 42 Sistemas Multiprogramáveis/Multitarefa - Programas submetidos são armazenados em fitas/discos onde são executado sequencialmente -A UCP pode processar seqüencialmente cada job (tarefa), diminuindo o tempo de execução dos jobs e o tempo de transição entre eles. - Programas (Jobs) que normalmente não exigem iteração com usuário (programas envolvendo cálculos numéricos por exemplo). 43 Sistemas Multiprogramáveis/multitarefa - Processador Compartilhado: => Vários programas sendo executados pela divisão do tempo do processador em intervalos Time-Slace (fatia de tempo). => Programa não concluído no Time-Slace é substituído por outro. - Memória e periféricos são também compartilhados - Impressão de que todo sistema dedicado ao programa. - Permite a interação com o usuário - Implementação complexa 44 Sistemas Multiprogramáveis/multitarefa - Processador Compartilhado: => Vários programas sendo executados pela divisão do tempo do processador em intervalos Time-Slace (fatia de tempo). => Programa não concluído no Time-Slace é substituído por outro. - Memória e periféricos são também compartilhados - Impressão de que todo sistema dedicado ao programa. - Permite a interação com o usuário - Implementação complexa 45 Sistemas Multiprogramáveis/multitarefa - Semelhantes em implementação ao sistema de tempo compartilhado - Diferença: tempo de resposta exigido no processamento. - Idéia de “Time-Slice” não existe: O programa detém o processador (UCP) o tempo que for necessário, ou até que apareça outro programa mais prioritário (este controle é feito pela aplicação e não pelo Sistema operacional) - Monitoramente de refinarias, controle de tráfego aéreo, de usinas (aplicações onde o tempo de resposta é fundamental) 46 Sistemas Multiprogramáveis/multitarefa 47 Sistemas Multiprogramáveis/multitarefa 48 Sistemas Multiprogramáveis/multitarefa 49 Sistemas com múltiplos processadores - Duas ou mais UCPs (processadores) trabalhando em conjunto -Vantagem: => vários programas sendo executados ao mesmo tempo (em cada processador). => Um programa dividido em partes para execução simultânea em mais de um processador 50 Sistemas Fortemente Acoplados - SFA = Sistemas multiprocessadores - Várias CPUs compartilhando única memória e dispositivos E/S sendo gerenciados por um único sistema operacional - Desvantagem: => problema de concorrência (disputa) é introduzido (vários processadores tentando acessar a mesma área de 51 memória) Sistemas Fortemente Acoplados Assimétricos Organização Assimétrica = Organização Mestre/Escravo - Vantagem: organização simples de implementar - Desvantagem 1: => Não utiliza o hardware com eficiência. Somente o processador mestre pode executar serviços do sistema operacional (por exemplo operações E/S) O Processador escravo deve fazer requisição ao processador mestre (ineficiência caso escravo execute muitas operações E/S) -Desvantagem 2: 52 => Pode ocorrer falha do processador mestre Sistemas Fortemente Acoplados Simétricos (é o que existe !) Simetria dos dois processadores Todos podem realizar as mesmas funções - Vantagem: => Um programa pode ser executado por qualquer processador ou por vários processadores ao mesmo tempo (paralelismo) => Quando um processador falha o sistema continua a funcionar - Desvantagem: => Acessos simultâneos às mesmas áreas de memória: solução a cargo do hardware e do sistema operacional. => Implementação bastante complexa 53 Sistemas Fracamente Acoplados Dois ou mais sistemas de computação interligados em que cada um possui o seu próprio sistema operacional 54 Sistemas Operacionais de Rede 55 Sistemas Operacionais de Rede Permitem que uma estação compartilhe seus recursos como impressora, diretório com as demais estações da rede. 56 Sistema Operacional Distribuídos Sistemas Operacionais Distribuídos O sistema (operacional) distribuído esconde os detalhes das estações individuais e passa a tratá-los como um conjunto único, como se fosse um sistema fortemente acoplado simétrico Permite que uma aplicação seja dividida em partes sendo cada uma executada em estações diferentes 58 Sistemas OperacionaisDistribuídos Resumo