Sistemas Operacionais: Aspectos Gerais Prof. Rafael J. Sandim Cronograma O que é um sistema operacional História dos sistemas operacionais Conceitos de sistema operacional Chamadas de sistema A estrutura do sistema operacional Resumo O que é um sistema operacional Sem software o computador não é nada! Com software podemos: Armazenar informações Processar informações Recuperar informações Exibir informações O software pode ser dividido em dois tipos: Programas de Sistema Gerenciam a operação do computador. Programas de Aplicativos Executam o trabalho que o usuário deseja. O que é um sistema operacional O programa de sistema mais fundamental é o sistema operacional O Sistema operacional controla todos os recursos de hardware do computador e fornece a base sobre o qual os programas aplicativos podem ser escritos. Um sistema de computador consiste basicamente em: Um ou mais processadores Memória Principal Discos (memória secundária) Interfaces de Rede Dispositivos de entrada e saída O que é um sistema operacional Escrever um programa que controla e usa, corretamente, todos os componentes de um sistema de computador é uma tarefa difícil. Imaginem se todos os programadores tivessem que escrever códigos para controlar todos os componentes que utilizam quando executam seu programa Sistema Operacional isola os programadores da complexidade do hardware. Sistema Operacional é uma camada de Software “por cima” do hardware básico que gerencia todas as partes dos sistema e oferece ao usuário uma interface mais fácil de entender. O que é um sistema operacional O que é um sistema operacional Dispositivos Físicos Circuitos integrados, cabos, fontes de alimentação etc. Microprogramação Software primitivo, controla os dispositivos e fornece uma interface limpa para a próxima camada. Localizando normalmente em memórias ROM É um interpretador que busca instruções de linguagem de máquina, como: ADD, MOVE, JUMP, e os executa como uma série de pequenos passos. O conjunto de instruções que o Microprograma interpreta define a linguagem de máquina. O que é um sistema operacional Linguagem de Máquina Não é realmente parte do hardware, mas os fabricantes sempre a descrevem assim em seus manuais de hardware. Alguns computadores são chamados de RISC, nessas maquinas não tem o nível de Microprogramação, ou seja, as instruções são executadas diretamente na máquina. Motorola 680x0 tem microprogramação, mas o IBM PowerPC não. Linguagem de maquina tem entre 50 e 300 instruções O que é um sistema operacional Sistema Operacional Esconder toda essas complexidade e oferecer um conjunto mais conveniente de instruções para o programador trabalhar. READ BLOCK FROM FILE é conceitualmente mais simples do que se preocupar com os detalhes do movimento das cabeças de disco, esperar que elas abaixem e assim por diante. Programas de Sistema Interpretadores de comando Sistemas de Janelas Compiladores Editores e programas Programas não são parte do sistema operacional O que é um sistema operacional É aquela porção do software que executa em modo kernel ou no modo de supervisor. Ele é protegido do usuário pelo hardware, exceto em microprocessadores muito antigos, onde o hardware não possibilitava tal proteção. Os compiladores e editores executam no modo de usuário. Programa Aplicativo São comprados, instalados ou escritos pelos usuários para resolverem seus problemas particulares. processadores de texto, planilhas eletrônicas, programas de cálculo de engenharia e jogos. O que é um sistema operacional: É difícil definir ao certo, porque um sistema operacional executa basicamente duas funções não relacionadas O sistema operacional como uma máquina estendida O sistema operacional como um gerenciador de recursos O sistema operacional como uma máquina estendida Deste pondo de vista, a função do sistema operacional é apresentar ao usuário o equivalente de uma máquina estendida ou máquina virtual que é mais fácil de programar que o hardware subjacente. Ver exemplo do drive de disquete O que é um sistema operacional: Drive de Disquete Controlador usado: NEC PD765 Tem 16 comandos Cada um especificado carregando entre 1 e 9 bytes em um registrador especifico Comandos para ler, gravar dados, mover o braço de disco, formatar trilhas, inicializar, avaliar, ressetar e recalibrar a controladora e as unidades. Comandos mais básicos READ e WRITE, cada um requer 13 parâmetros, compactados em 9 bytes. Parâmetros especificam itens como setores por trilha, o modo de gravação utilizado no meio físico, tamanho do intervalo entre os setores e o que fazer com uma marca de endereço de dados excluídos etc. O que é um sistema operacional: Quando a operação é completada O programador também deve estar atento se o motor do drive está ligado ou desligado Ele deve ser ligado (com uma demora longa de inicialização) antes de os dados poderem ser lidos ou gravados O motor não pode permanecer ligado por muito tempo, senão o disquete irá se degastar Será que o programador quer ficar lidando com o hardware em baixo nível? 23 campos de status e erro Compactados em 7 bytes Para o programador, o disquete tem uma coleção de arquivos. Cada arquivo pode ser aberto para leitura e gravação, então fechado. O sistema esconde os detalhes indesejáveis ao programador O que é um sistema operacional: O sistema operacional como um gerenciador de recursos Gerenciar todas as partes de um sistema complexo Nessa visão, o sistema operacional deve fornecer uma alocação ordenada e controlada dos processadores, das memórias e dos dispositivos de entrada e saída entre os vários programas O que aconteceria se três programas que executam em algum computador tentassem imprimir simultaneamente na mesma impressora? E quando um computador (ou uma rede) tem múltiplos usuários, e todos estão alterando o mesmo arquivo, o que aconteceria se o SO não protegesse os dados nesse tipo de situação? O que é um sistema operacional: O sistema operacional como um gerenciador de recursos Essa visão do sistema operacional sustenta que sua tarefa primária é monitorar quem está utilizando qual recurso, atender requisições de recurso, medir a utilização dos recursos e medir as requisições conflitantes de diferentes programas e usuários.