Sistemas Operacionais Profa. Lucilene Luciano Prof Alexandre Peres 1º. Semestre O que é um Sistema Operacional ? Camada de software entre o hardware e as aplicações dos usuários Sistema Bancário Compiladores Office Browser I.Explorer Editores Interpretador de comandos Sistema Operacional Programas de aplicação Programas de Sistema Linguagem de máquina Microarquitetura Dispositivos físicos Hardware Funções do Sistema Operacional A partir da máquina real (hardware), criar uma máquina estendida (abstrata). Gerenciar os recursos de hardware disponíveis às aplicações. O SO como máquina abstrata Ocultar a complexidade do hardware. Oferecer interfaces padronizadas de acesso ao hardware. Permitir uma visão homogênea de dispositivos distintos. Clicar em um arquivo aplicação S.O. Assign(file, “D:\README.TXT”); open(file); read(file, ch); … close(file); Move head to sector 123 in FAT read 256 bytes to mem 36234H move head to sector 4684753 read 1024 bytes to mem 578567 ... O SO como Gerenciador de Recursos Recursos da máquina processadores espaço em memória arquivos conexões de rede dispositivos externos Controle de acesso equilibrar uso evitar conflitos O SO como Gerenciador de Recursos source app source app source app sdgf jhgsdfj dsjhf khj khj HKjhkjghj hg jhgj jgh jhg jhg jhg jhg kjhg jhgj hg jhg kjhkjhgjhg jhg jhg jhg jh kjhjkhgjhgjh kgjhgjhgjhgj aplicação aplicação aplicação Sistema Operacional Serviços de Sistemas Operacionais Cada S.O. oferece serviços e programas específicos, porém apresentam funções em comum. Execução de programas: capacidade de carregar, executar e encerar um programa. Operações de I/O: deve fornecer meios para controlar arquivos ou dispositivos de I/O. Manipulação do sistema de arquivos: ler, gravar, criar e excluir arquivos. Comunicação: comunicação de processos. Detecção de erros: notar falhas de CPU, memória ou dispositivos de I/O e tomar medidas adequadas. Serviços de Sistemas Operacionais Alocação de recursos: gerenciar recursos de memória, CPU ou dispositivos I/O. Contabilização: manter um registro dos usuários que utilizam os recursos do computador referente a quantidade e que tipo de recursos. Proteção: A proteção visa garantir que todo acesso aos recursos do sistema seja controlado, evitando conflitos e integridade dos dados. Entendendo o Sistema Operacional Usuário controlando o Hardware Usuário Hardware Entendendo o Sistema Operacional Programa controlando o Hardware Software Usuário Hardware Entendendo o Sistema Operacional Interpretador de Comando (Shell) ou Interface Gráfica Sistema Operacional Usuário Hardware Entendendo o Sistema Operacional Programas fazendo solicitação ao Sistema Operacional, que as repassa ao hardware. Sistema Operacional Usuário Software Hardware Entendendo o Sistema Operacional Interpretador de Comando ou Interface Gráfica Sistema Operacional Usuário Software Alguns programas podem acessar diretamente o Hardware Hardware Capacidade de execução de tarefas TIPO Monotarefa Multitarefa ou Multiprogramável DEFINIÇÃO O sistema operacional tem capacidade de executar apenas um programa ou tarefa de cada vez. Exemplo: CP/M, MSDOS Sistemas Operacionais que tem a capacidade de executar mais de uma tarefa ou programa simultaneamente: Exemplo: Unix, Windows, Linux, OS/400. SUBDIVISÃO CARACTERÍSTICAS Não tem Cooperativa O S.O. define uma fatia de tempo (time-slice) para cada programa. Ex.: Windows até 3.1 Preemptiva O S.O define prioridades conforme a necessidade momentânea de cada programa. Sistema Operacional Multitarefa Interpretador de Comando ou Interface Gráfica S. O. Usuários Coop. ou Preemp. Software Software Hardware S. O. Multitarefa / Multiprogramável Os sistemas multiprogramados podem ser classificados de acordo com a forma que interagem com os usuários, podendo ser divididos em sistemas batch, de tempo compartilhado e de tempo real. Sistemas Batch: Os sistemas batch (lote) caracterizam-se por terem seus programas armazenados em disco ou fita, onde esperam para ser executados seqüencialmente. Quando um programa é iniciado ele tem a posse total do sistema até que sua execução termine. Quando um programa termina, um outro programa (também chamado Job) é colocado em execução imediatamente. · Os programas que são executados em batch não precisam de interação com o usuário. Eles lêem e gravam seus dados de discos ou fitas. S. O. Multitarefa / Multiprogramável Sistemas de Tempo Compartilhado: Os sistemas de tempo compartilhado (time–sharing) permitem a interação dos usuários com o sistema, basicamente através de terminais de vídeo e teclado (interação on–line). Dessa forma, o usuário pode interagir em cada fase do desenvolvimento de suas aplicações e , se preciso, modificá-las imediatamente. · Para cada usuário, o sistema operacional aloca uma fatia de tempo do processador. Nesses sistemas, não só o processador é compartilhado mas também a memória e os periféricos. O sistema cria para cada usuário um ambiente de trabalho próprio, dando a impressão de que todo o sistema está dedicado, exclusivamente, a ele. S. O. Multitarefa / Multiprogramável Sistemas de Tempo Real (real time): são bem semelhantes em implementação aos sistemas de tempo compartilhado. A maior diferença é o tempo de resposta exigido na execução das tarefas. Enquanto em sistemas de tempo compartilhado o tempo de resposta pode variar sem comprometer as aplicações em execução, nos sistemas de tempo real os tempos de resposta devem estar dentro de limites rígidos, que devem ser obedecidos, caso contrário, poderão ocorrer problemas irreparáveis. · Nos sistemas de tempo real não existe a idéia de fatia de tempo, utilizada pelos sistemas time-sharing. Um programa executa o tempo que for necessário, ou até que apareça outro prioritário em função de sua importância no sistema. Esta importância ou prioridade de execução é controlada pela própria aplicação e não pelo sistema operacional. · Esses sistemas são normalmente usados em controle de processos, como no monitoramento de refinarias de petróleo, controle de tráfego aéreo, usinas nucleares, etc. O S. O. quanto aos usuários Monousuário Pode fornecer programas/serviços para vários usuários, porém este programas serão executados na máquina solicitante (cliente). X Multiusuário O Sistema atende diversos usuários com a possibilidade de executar os programas no próprio servidor. Estrutura de um sistema operacional Sistemas Operacionais são estudados dividindo-se suas principais funcionalidades. Tipicamente divide-se a funcionalidade de um sistema operacional em: · Gerência de processos · Gerência de memória: responsável pelo controle e alocação de memória aos processos ativos. · Sistema de arquivo: responsável pelo acesso e integridade dos dados residentes em memória secundária (por exemplo disco, fita, etc). · Controle de I/O (controle de entrada / saída): responsável pelo controle e execução de operações de Entrada/Saída, bem como da otimização do uso dos periféricos. Conceito de Processo • Um processo é basicamente um programa em execução acompanhado dos valores atuais do contador de programas, dos registradores e de variáveis. • cada processo tem sua própria CPU virtual. • A CPU executa apenas um processo por vez. Trocando, a todo momento, de um processo para outro. (pseudo-paralelismo). ESTADOS DE PROCESSO - Novo: o processo está sendo criado; - Em execução: as instruções estão sendo executadas - Em espera: o processo está esperando a ocorrência de algum evento. (ex.: I/O) - Pronto: temporariamente parada para dar lugar a outro processo - Encerrado: o processo terminou sua execução Mudança de Estado de um Processo novo carga programa encerrado alocação da CPU aceito pronto fim de execução rodando fim do quantum Espera por I/O Conclusão de I/O em espera Visualizar: Lista de processos do Windows 2000 Desempenho Programa X Processo Programa: noção estática conjunto de instruções não possui um estado interno Processo: noção dinâmica programa em execução possui um estado interno