UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Sistemas Operacionais 1- Introdução aos SOs Prof. Sílvio Fernandes
Disciplina Sistemas Operacionais Cronograma Componentes e tipos de SO Gerência de Processos Gerência de Memória Gerência de Dispositivos Sistema de Arquivos Projeto de SO 2
Disciplina Sistemas Operacionais Avaliações 1ª: 08/04/2011 2ª: 20/05/2011 3ª: 21/06/2011 Reposições: 24/06/2011 4ª: 28/06/2011 Feriados 08/03/2011 e 22/04/2011 Processo de avaliação Provas teóricas, trabalhos de implementação e seminários 3
Disciplina Sistemas Operacionais Referências Andrew S. Tanenbaum. Sistemas Operacionais Modernos. 3ª Edição, Prentice Hall, 2009. Francis B. Machado e Luiz P. Maia. Arquitetura de Sistemas Operacionais. 3a. Edição. LTC, 2004. Harvey Deitel, Paul Deitel, Kate Steinbuhler. Sistemas Operacionais. 3ª. Edição. Prentice Hall, 2005 Abraham Silberschatz, Peter Galvin, Greg Gagne. Fundamentos de Sistemas Operacionais. 6ª. Edição. LTC, 2004. 4
Hardware Provê recursos para execução de instruções, manipulação de dados Programa de Aplicação Solução computacional de um problema Define a utilização dos recursos do sistema PROBLEMA O hardware sozinho não oferece um ambiente de utilização simples para resolução computacional de problemas 5
Problema Exemplo Considere a implementação de um sistema computacional onde duas entidades (software) produz e consome dados da memória, respectivamente Como sincronizar a produção e o consumo de dados? 6
Um Sistema Operacional...... possibilita o uso eficiente e controlado dos recursos de hardware... implementa políticas e estruturas de software de modo a assegurar um melhor desempenho do sistema de computação 7
Sistema computacional 1 ou mais processadores Memória principal Discos Impressora Teclado Monitor Rede Outros recursos de entrada e saída 8
Sistema operacional Gerenciar esses componentes e fornecer aos programas de usuário uma interface de hardware mais simples 9
Sistema operacional Oculta a complexidade do hardware SO é (normalmente) aquela parte do SW executada em modo supervisor ou núcleo 10
Modo núcleo Acesso completo a todo o hardware Pode executar qualquer instrução que a máquina seja capaz de executar Modo usuário Subconjunto de instruções de máquinas está disponível Aquelas que afetam o controle da máquina e a E/S são proibidas para esse modo 11
Sistema operacional É difícil definir SO como um SW que executa em modo núcleo, pois nem sempre é verdade Duas funções básicas não relacionadas Estender a máquina Gerenciar recursos 12
1. SO como máquina estendida Esconde complexidade e detalhes inerentes à manipulação e controle dos componentes de HW Fornece ao programador/usuário uma forma mais conveniente para a operação do computador Facilita/reduz tempo de preparação de um programa Permite a execução de um programa em ambientes diferentes 13
1. SO como máquina estendida A arquitetura da maioria dos computadores em nível de linguagem de máquina é primitiva e de difícil programação (especialmente E/S) Exemplo: E/S da unidade de discos flexíveis a partir do controlador NEC-PD765 O PD765 tem 16 comandos, especificados pela carga de 1 a 9 bytes no registrador do dispositivo Comandos para leitura e escrita de dados, movimentação do braço do disco, formatação de trilhas, inicialização, sinalização, reinicialização e recalibração do controlador 14
1. SO como máquina estendida Exemplo: E/S da unidade de discos flexíveis a partir do controlador NEC-PD765 Comandos básicos são read e write, cada um com 13 parâmetros agrupados em 9 bytes Especificam o endereço do bloco de dados, número de setores por trilha, o modo de gravação, o espaço livre entre setores e o que fazer com um marcador-deendereço-de-dados-removidos Quando termina o controlador retorna 23 campos de status e de erros agrupados em 7 bytes 15
1. SO como máquina estendida Exemplo: E/S da unidade de discos flexíveis a partir do controlador NEC-PD765 Se isso não bastasse, o programador da unidade de disco flexível ainda deve saber se o motor está ligado ou não O programador é forçado a equilibrar 2 fatores: longos atrasos na inicialização (para ligar) versus desgastes do disco flexível (e perda dos dados) se ligado por muito tempo Discos rígidos ainda são piores! 16
1. SO como máquina estendida Abstração é o elemento-chave para gerenciar complexidade SOs transformam o feio em bonito 17
SOs transformam o feio em bonito 18
2. SO gerenciador de recursos Para os usuários é conveniente um visão top-down (abstração do todo para as partes) Em uma visão botom-up (abstração das partes para o todo) Computadores modernos são constituídos por processadores, memórias, temporizadores, discos, apontadores de mouse, interface de rede, impressora e etc. 19
2. SO gerenciador de recursos Fornecer uma alocação ordenada e controlada dos recursos para os diversos processos que competem por eles 20
2. SO gerenciador de recursos Manter quem está usando qual recurso, garantindo suas requisições Manter o compartilhamento dos recursos No tempo No espaço Memória CPU 21
Classes SO de computadores de grande porte SO de servidores SO de multiprocessadores SO de computadores pessoais (PC) SO de computadores portáteis SO embarcados SO de nós sensores SO de tempo real SO de cartões inteligentes (smart cards) 22
SO de computadores de grande porte Estão no topo da hierarquia Grande capacidade de E/S Usados para processamento simultâneo de dezenas ou milhares de processos Aplicações como previsão do tempo Servidores Web Serviços de transação entre empresas (business-to-business) Ex: OS/390 (IBM) Gradativamente estão sendo substituídos por Linux 23
SO de servidores Executam em computadores que podem ser desde PC até computadores de grande porte Principal função é atender de forma eficiente centenas ou milhares de clientes de uma vez Principal exemplo são os servidores de serviços para internet Ex: Solaris, FreeBSD, Linux, Windows Server 200x 24
SO de multiprocessadores Muitos são variações dos SOs de servidores, com aspectos especiais de comunicação, conectividade e compatibilidade SO para servidores onde se tem suporte para múltiplos processadores Com o advento dos chips multinúcleo até computadores pessoais estão começando a lidar com multiprocessadores de pequena escala Ex: Linux, Windows 25
SO para computadores pessoais (PC) Fornecer uma boa interface para o usuário Amplamente usados para executar aplicativos como processadores de texto e navegadores web Ex: Linux, Windows, FreeBSD e MACOS 26
SO de computadores portáteis Usados em assistentes pessoais digitais (personal digital assistant PDA) e telefones celulares Cada vez mais sofisticados, com capacidade de manipular telefonia, fotografia digital e até aplicações de terceiros Começando a parecer com SO de PC de décadas atrás, mas sem grandes discos rígidos EX: Symbian OS, Palm OS, Android 27
SO embarcados Sistema Embarcados controlam dispositivos que geralmente não são considerados computadores e que não aceitam software instalados por usuários São encontrados em fornos de microondas, TV, carros, DVD, celulares e reprodutores de MP3 EX: QNX e VxWorks 28
SO de nós sensores (sensor node) Os nós sensores são computadores minúsculos que se comunicam entre si e com uma estaçãobase usando comunicação sem fio Os sensores são computadores (CPU, RAM, ROM e sensores ambientais), movidos a bateria com rádio integrados Têm energia limitada e devem funcionar por longos períodos de tempo, sozinhos, frequentemente em condições ambientais severas 29
SO de nós sensores (sensor node) O SO deve ser pequeno e simples porque os nós tem RAM pequena e a duração da bateria é importante Os programas são carregados antecipadamente Ex: TinyOS 30
SO de tempo real Tem o tempo como um parâmetro de funcionamento principal Usados em processos de controle de equipamentos industriais É comum a exigência de prazos rígidos para se realizar uma tarefa Sistema de tempo real crítico Controle de processo industriais, aviônica, exército e áreas de aplicação semelhante 31
SO de tempo real Sistema de tempo real não crítico: o descumprimento ocasional de um prazo, embora não desejável, é aceitável e não causa nenhum dano permanente Sistema de áudio digital ou multimídia Sistema portáteis, embarcados e de tempo real se sobrepõem de modo considerável Ex: VxWorks e QNX 32
SO de cartões inteligentes (smart cards) São os menores SO existentes, também são muito primitivos Possuem severas restrições de recursos com memória e energia Alguns são orientados a Java. A ROM do cartão possui um interpretador Java Um ou mais aplicativos (applets) podem ser interpretados pelo cartão 33
Referências Andrew S. Tanenbaum. Sistemas Operacionais Modernos. 3ª Edição, Prentice Hall, 2009. Francis B. Machado e Luiz P. Maia. Arquitetura de Sistemas Operacionais. 3a. Edição. LTC, 2004. 34