Sistemas Operacionais Introdução à Ciência da Computação Profa. Ana Paula Bacelo Profa. Fernanda Denardin Walker 1 Introdução Usuário 1 Compilador Usuário 2 Usuário 3 Editor de texto Browser ... Usuário n Quake Programas Aplicativos Sistema Operacional (infraestrutura) Hardware 2 Sistema Operacional Camada intermediária entre o software aplicativo e o hardware Responsável pelo gerenciamento e integração Software básico – indispensável para o funcionamento do computador Recursos gerenciados pelo S.O. Tempo de CPU Espaço de memória Espaço em disco Periféricos 3 Sistema Operacional É a parte de software que estende os recursos de hardware da máquina, tornando a utilização do equipamento mais fácil, mais eficiente e mais confiável. O objetivo do SO é permitir o uso do computador de forma fácil e eficiente. Cria um sistema computacional usável 4 SO é um programa de controle Controla dispositivos de Entrada e Saída Controla os programas que resolvem os problemas dos usuários (aplicativos) Drivers de dispositivos As aplicações possuem necessidades em comum que são atendidas pelo SO: alocação e controle de recursos Controla os usuários que utilizam o computador Previne erros e o uso impróprio do computador 5 Principais atribuições do SO Gerenciamento de Processos Gerenciamento de Memória Gerenciamento de Entrada/Saída Gerenciamento de Arquivos Gerenciamento de Processos Multiprogramação: Mais de um programa sendo executado ao mesmo tempo Diversos programas são mantidos na memória (um executando e vários esperando para executar) Torna mais eficiente o aproveitamento dos recursos computacionais O próprio SO é composto de vários programas O escalonador é o componente do SO responsável por selecionar um processo apto para executar no processador O objetivo é dividir o tempo do processador de forma justa entre todos processos aptos Gerenciamento de Memória Rotinas do SO que controlam o uso da memória. Controle de quais partes da memória encontram-se livres e quais estão em uso alocação da memória de acordo com as necessidades dos processos liberação da memória alocada após o término de um processo transferência do processo, ou parte dele, entre a memória principal e a memória secundária Gerenciamento de Entrada e Saída Uma das principais (e mais visíveis!) funções do SO é controlar os dispositivos de E/S emitir comandos para os dispositivos tratar interrupções tratar erros prover uma interface entre os dispositivos e o resto do sistema Gerenciamento de Arquivos Deve ser possível armazenar uma quantidade muito grande de informação A informação deve sobreviver ao término do processo que a usa Múltiplos processos devem ser capazes de acessar a informação concorrentemente Chamadas de sistema permitem as seguintes operações sobre arquivos: criar um arquivo escrever no arquivo ler o arquivo remover o arquivo Tipos de Sistemas Operacionais Monousuário X Multiusuário Monoprogramado X Multiprogramado Monoprocessado X Multiprocessado 11 Tipos de Sistemas Operacionais Monousuário O SO controla e considera apenas um usuário por vez. Ex. MS-DOS Multiusuário O SO identifica usuários diferentes por suas contas (username e senha) e permite perfis diferentes. Ex. Mac OS, Windows XP, Linux... 12 Tipos de Sistemas Operacionais Monoprogramado O SO permite a execução de apenas um programa do usuário por vez. Ex. MS-DOS Multiprogramado O SO gerencia os diversos programas em execução de forma aparentemente simultânea, apesar de ter apenas um processador. Ex. Mac OS, Windows XP, Linux... 13 Tipos de Sistemas Operacionais Monoprocessado O SO pode gerenciar vários programas executando, mas somente um processador em operação. Multiprocessado O SO controla e coordena os diversos processadores paralelos utilizados no sistema. 14 Sistemas Operacionais Clássicos Batch Time-sharing Real-time 15 Sistemas Operacionais tipo Batch Sistema Operacional em lote, era utilizado por terminais de máquinas de grande porte, que reuniam um “lote de programas” para enviar para execução. Com o passar do tempo, a palavra batch passou a designar um processo onde o usuário não interage com o seu programa. O que caracteriza um SO batch é o fato de não haver comunicação do usuário com o seu programa, durante a execução. 16 Sistemas Operacionais Time-sharing Sistema Operacional de Tempo Compartilhado é sinônimo de interação e multiprogramação. Um SO time-sharing permite que diversos usuários compartilhem o computador em um dado instante, dando a cada um a sensação de que o computador encontra-se dedicado a ele. Cada usuário possui seu programa (ou parte dele) na memória principal. O processador é alocado por um pequeno período de tempo (fatia de tempo ou time slice) a cada programa de usuário. 17 Sistema de Tempo Real Principal característica: Deve responder, dentro de um período de tempo previamente especificado (geralmente muito pequeno), a estímulos gerados externamente Portanto, os tempos de resposta são críticos Um SO tempo real utiliza conceitos de multiprogramação e oferece facilidades para as aplicações de tempo real Entre as facilidades está um escalonador preemptivo que leva em conta as prioridades dos processos. 18