Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS Prof. Luiz di Marcello luizdimarcello@gmail.com SISTEMAS OPERACIONAIS Prof. Luiz di Marcello AULA 1 - OBJETIVOS GERAIS ❖ Entender as funções de um sistema operacional ❖ Entender a posição que um sistema operacional ocupa em um sistema computacional ❖ Conhecer os componentes de um sistema operacional ❖ Conhecer a evolução histórica dos sistemas operacionais ❖ Diferenciar os tipos de sistemas operacionais existentes ❖ Compreender a importância de conhecer o funcionamento de um sistema operacional para solução de problemas SISTEMAS OPERACIONAIS O HARDWARE E O SISTEMA OPERACIONAL ✓ Você comprou os componentes e montou o computador ✓ Você o ligou na tomada e pressionou o botão POWER ✓ Ele começa a inicialização do sistema e… o computador não está “operacional” para utilização ✓ Falta instalar o Sistema Operacional SISTEMAS OPERACIONAIS ✓ Montar o hardware: conexão dos componentes físicos ✓ Ligar na tomada: energização da placa-mãe e componentes ✓ Ocorre o boot: série de processos responsáveis pela inicialização do computador https://www.tecmundo.com.br/aumentar-desempenho/11266-como- funciona-o-boot-de-um-computador.htm O HARDWARE E O SISTEMA OPERACIONAL SISTEMAS OPERACIONAIS Prof. Luiz di Marcello DEFINIÇÃO DE SISTEMA OPERACIONAL É um conjunto de programas responsável pela gerência de recursos de hardware, segurança de acesso e utilização e interface com os usuários USUÁRIOS HARDWARE UCP DISPOSITIVOS DE E/S MEMÓRIA PRINCIPAL PROGRAMADORES SISTEMAS E APLICATIVOS BANCOS DE DADOS OUTROS USUÁRIOS • MS-DOS • WINDOWS 3.11, 95/98, XP, VISTA, 7, 8, 10 • LINUX (MANDRIVA, UBUNTU, FEDORA) • mac-OS High Sierra • iPhone OS11, Android 8, Windows 10 Mobile PROCESSADORES/UCP/CPU • INTEL: ATOM, CELERON, i3, i5, i7 • AMD: ATHLON, TURION, X2, SEMPRON • Apple A9, Samsung Exynos, Qualcomm Snapdragon SISTEMA OPERACIONAL DEVICE DRIVERS SO FT W A R E PODER DE PROCESSAMENTO TROCA E ARMAZENAMENTO SISTEMAS OPERACIONAIS Prof. Luiz di Marcello OUTRAS DEFINIÇÕES ✓ Conjunto de programas indispensáveis ao funcionamento do computador, cuja função é: 1) servir de interface (ligação, elo) entre o homem e a máquina; 2) fazer a comunicação entre o usuário, o computador e seus periféricos ✓ Conjunto de rotinas executadas pelo processador, da mesma forma que os nossos programas. Controla o funcionamento do computador, como um gerente dos vários recursos disponíveis no sistema Por ser um conjunto de programas precisa da CPU para executar ! Lembre-se disso ! Que tal assistirmos a um vídeo... SISTEMAS OPERACIONAIS Prof. Luiz di Marcello Gerenciador de Processos Gerenciador de Memória Gerenciador de Disco Gerenciador de Rede Gerenciador de E / S Gerenciador de Arquivos Sistema de Proteção Sistema Interpretador de Comandos COMPONENTES DE UM SISTEMA SISTEMA OPERACIONAL SISTEMAS OPERACIONAIS Prof. Luiz di Marcello executa espera espera Tempo MONOTAREFA Tempo MULTITAREFA espera esperaPrograma A espera esperaPrograma B espera executaexecuta executaexecuta CONCORRENTE ≠ SIMULTÂNEO CLASSIFICAÇÃO DE SISTEMAS executaPrograma A SISTEMAS OPERACIONAIS Prof. Luiz di Marcello ❖ Processador, memória principal e dispositivos de E/S (periféricos) ficam dedicados a um único usuário/programa.O sistema operacional só tem capacidade de controlar e gerenciar um programa de cada vez ❖ Os programas são executados instrução-a-instrução, até que seu processamento seja concluído, ou seja, todos os recursos da máquina são alocados para um único programa até a conclusão de sua execução ❖ São de simples implementação, se comparados a outros sistemas, não havendo muita preocupação com problemas de proteção, pois só existe um usuário/programa utilizando-o CLASSIFICAÇÃO DE SISTEMAS: MONOTAREFA SISTEMAS OPERACIONAIS Prof. Luiz di Marcello ❖ Os recursos da máquina são alocados de modo dinâmico entre o número de programas ativos de acordo com o nível de prioridade ou o estágio de execução de cada um dos programas. O sistema operacional gerencia o acesso concorrente aos seus diversos recursos, de forma ordenada e protegida ❖ São mais complexos e eficientes do que os sistemas monotarefa, já que vários programas utilizam os mesmos recursos. Existem vários tipos de gerenciamento das aplicações (gerência/interação com usuários) nesses sistemas: ❖ BATCH (LOTE) - Os programas quando executados são armazenados em disco ou fita, onde esperam para serem ‘atendidos’. Normalmente, esses programas (jobs) não exigem interação com os usuários (por exemplo, compilações e linkedições) CLASSIFICAÇÃO DE SISTEMAS: MULTITAREFA SISTEMAS OPERACIONAIS Prof. Luiz di Marcello ❖ TIME-SHARING (TEMPO-COMPARTILHADO) - O sistema operacional aloca uma ‘fatia de tempo’ (time-slice) do processador para cada usuário. Caso o programa do usuário não esteja concluído nesse intervalo de tempo, ele é substituído por um de outro usuário, e fica esperando por uma nova fatia de tempo. Permitem a interação dos usuários com o sistema ❖ REAL-TIME (TEMPO-REAL) - Semelhante ao time-sharing, sendo a maior diferença o tempo de resposta exigido na execução. 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. Não existe a idéia de fatia de tempo, um programa executa o tempo que for necessário, ou até que apareça outro prioritário em função de sua importância CLASSIFICAÇÃO DE SISTEMAS: MULTITAREFA SISTEMAS OPERACIONAIS Prof. Luiz di Marcello CLASSIFICAÇÃO DE SISTEMAS MONOUSUÁRIO USUÁRIO = GENTE e NÃO PROGRAMA! TODO SISTEMA MULTIUSUÁRIO É OBRIGATORIAMENTE MULTITAREFA MULTIUSUÁRIO SIGNIFICA MAIS DE UMA PESSOA NO MESMO SISTEMA INTERAGINDO SIMULTANEAMENTE SISTEMAS OPERACIONAIS Prof. Luiz di Marcello ❖ MONOPROCESSADO: Único processador, sendo este controlado pelo sistema operacional instalado ❖ MULTIPROCESSADO: ▪ Possui mais de um processador, sendo que estes podem compartilhar o mesmo sistema operacional, ou cada um pode possuir o seu próprio sistema ▪ Permite que vários programas sejam executados ao mesmo tempo, ou que um programa seja dividido em subprogramas/threads, para execução simultânea por mais de um processador. ▪ Possibilitam aumentar a capacidade computacional com menor custo (escalabilidade), permitem a reconfiguração (sistema continua o processamento, mesmo se um dos processadores falhar ou parar de funcionar) e o balanceamento (distribuição da carga de processamento) CLASSIFICAÇÃO DE SISTEMAS: PROCESSADORES SISTEMAS OPERACIONAIS Prof. Luiz di Marcello ❖ MULTIPROCESSADO: ▪ Valem todos os conceitos de multitarefa para os vários processadores ▪ Surgem novos problemas de concorrência, pois vários processadores, por exemplo, podem estar acessando as mesmas áreas de memória ▪ Existem diferentes forma de comunicação entre esses processadores e também diferentes graus de compartilhamento da memória principal e dos dispositivos de E/S: ➢ fortemente acoplados – dois ou mais compartilhando uma única memória e controlados por apenas um único sistema operacional ➢ fracamente acoplados – caracterizam-se por possuir dois ou mais processadores (multicomputadores), conectados e com funcionamento independente. Podem ser controlados por sistemas operacionais diferentes (ex.: cluster) CLASSIFICAÇÃO DE SISTEMAS: PROCESSADORES SISTEMAS OPERACIONAIS Prof. Luiz di Marcello AULA 2 - OBJETIVOSGERAIS ❖ Compreender os fundamentos de sistemas concorrentes ❖ Entender a importância e o funcionamento dos mecanismos de interrupção ❖ Entender o funcionamento de uma chamada ao sistema (“system call”) ❖ Identificar as estruturas existentes de sistemas operacionais SISTEMAS OPERACIONAIS Prof. Luiz di Marcello CONCEITOS DE SOFTWARE (RELEMBRANDO...) O hardware sozinho não tem utilidade, tornando-se necessária a existência de um conjunto de programas relacionado mais diretamente com os serviços do sistema operacional, possibilitando inclusive a criação de aplicativos pelos usuários desenvolvedores de sistemas (programadores) TRADUTOR ❖ O surgimento das primeiras linguagens de montagem, e das linguagens de alto nível, diminuiu a necessidade de conhecimento de hardware por parte do programador, quando os programas eram desenvolvidos em linguagem de máquina SISTEMAS OPERACIONAIS Prof. Luiz di Marcello CONCEITOS DE SOFTWARE (RELEMBRANDO...) ❖Apesar das facilidades para o programador, os programas escritos nessas linguagens (código fonte) não estão prontos para serem diretamente executados pelo processador, que só consegue executar instruções escritas em linguagem de máquina ❖ A conversão de linguagem de montagem ou alto nível para linguagem de máquina é iniciada pelo software denominado tradutor, onde toda representação simbólica é traduzida para código de máquina. O código gerado pelo tradutor é denominado código objeto, que, apesar de estar em código de máquina, ainda não é executável ❖ O tradutor, dependendo da linguagem de programação utilizada que esteja sendo transformada, pode ser chamado de montador (linguagens de montagem - Assembly) ou compilador (linguagens de alto nível – Pascal, C, C++) SISTEMAS OPERACIONAIS Prof. Luiz di Marcello CONCEITOS DE SOFTWARE (RELEMBRANDO...) ❖ Exemplo: O Assembly é uma linguagem de montagem formada por símbolos alfabéticos. Foi a primeira evolução para tornar os programas mais representativos da intenção do programador e, portanto, mais inteligível ❖ O montador Assembler é desenvolvido para entender as instruções de um processador específico (Pentium, por exemplo) e converte-las em código binário (instruções de máquina) daquele processador. Sendo assim, não se pode utilizar o montador para programas escritos na linguagem Assembly de outro processador SISTEMAS OPERACIONAIS Prof. Luiz di Marcello CONCEITOS DE SOFTWARE (RELEMBRANDO...) INTERPRETADOR ❖ Tradutor que não gere código objeto e que a partir de um programa em código fonte, escrito em linguagem de alto nível, traduz cada instrução e a executa em seguida ❖ Desvantagem: tempo gasto na tradução das instruções de um programa toda vez que este for executado, já que não existe a geração de código executável (Basic, Java) LINKER (LINKEDITOR, LINKAGE EDITOR) ❖ Responsável por gerar a partir de um ou mais módulos objeto, um único programa executável ❖ Resolver todas as referências simbólicas existentes entre os módulos e reservar memória para a execução do programa (relocação). De início o programa executável gerado somente podia ser carregado em uma determinada região da memória (código absoluto), o que inviabilizava a multitarefa SISTEMAS OPERACIONAIS Prof. Luiz di Marcello CONCEITOS DE SOFTWARE (RELEMBRANDO...) LOADER ❖ Também chamado de carregador, é o utilitário que carrega/leva o programa para a memória principal para que este seja então executado ❖ Como pudemos constatar anteriormente, o procedimento de carga varia com o código gerado pelo linker, que em função disso é classificado como sendo do tipo absoluto ou relocável DEPURADOR ❖ Todos sabemos que os programadores podem cometer erros de lógica no desenvolvimento de programas ❖ O depurador (debugger) permite ao usuário controlar toda a execução de um programa a fim de depurá-lo/torná-lo puro/detectar erros, através de alguns recursos: acompanhamento da execução instrução por instrução; monitoramento e alteração do conteúdo das variáveis (watchpoint); implementação de pontos de parada no decorrer da execução do programa (breakpoint) SISTEMAS OPERACIONAIS Prof. Luiz di Marcello CONCEITOS DE SOFTWARE (RELEMBRANDO...) LINGUAGEM DE CONTROLE OU DE COMANDO ❖ É a forma mais direta de um usuário se comunicar com o sistema operacional, possibilitando ao usuário acesso a rotinas específicas do sistema ❖ Os comandos quando digitados pelo usuário são interpretados por um programa denominado interpretador de comandos ou shell, que verifica a sintaxe do comando, envia mensagens de erro e faz chamadas na rotinas do sistema ❖ A evolução de tais linguagens originam as interfaces gráficas e no futuro, com a introdução das linguagens naturais, os sistemas passarão a reconhecer comandos falados e escritos, como fazemos habitualmente em nosso dia-a-dia SISTEMAS OPERACIONAIS Prof. Luiz di Marcello CONCEITOS DE SOFTWARE (RELEMBRANDO...) Aplicativos Utilitários Sistema Operacional Linguagem de Máquina Microprogramação Hardware (lógica digital) H A R D W A R E L IN G U A G E N S D E P R O G R A M A Ç Ã O E O S IS T E M A O P E R A C IO N A L LINGUAGEM DE MÁQUINA ❖ É a linguagem de programação que o processador realmente consegue entender ❖ Cada processador possui um conjunto único de instruções de máquina definido pelo fabricante, que especifica detalhes, como registradores, modos de endereçamento e tipos de dados ❖ O programa nessa linguagem é totalmente codificado em formato binário ❖ A figura ao lado mostra o conceito de máquina de níveis SISTEMAS OPERACIONAIS Prof. Luiz di Marcello SISTEMAS MULTITAREFA ✓ Sistema multitarefa Programas executados concorrentemente Ganho considerável na utilização do processador, memória, periféricos e no tempo de reposta é considerável Maior complexidade do sistema operacional ✓ O sistema operacional multitarefa ao executar os programas (código executável) simplesmente não os leva para memória e pronto Necessita de alguns controles que permitem que esses programas sejam executados de forma ordenada, sem que um invada a área dos outros, ou mesmo, quando a execução de um deles seja interrompida, ele volte a executar do ponto onde ocorreu essa parada ✓ Estrutura de controle criada e mantida pelo sistema operacional para que os processos sejam mantidos em execução (nome, prioridade, contexto, estado, arquivos abertos, etc.) por ele, chamamos de processo (estudaremos mais adiante) SISTEMAS OPERACIONAIS Prof. Luiz di Marcello SISTEMAS MULTITAREFA ✓ Um sistema operacional, de uma maneira geral, busca: ▪ OTIMIZAR A UTILIZAÇÃO DA UCP – o processador deve permanecer a maior parte do seu tempo ocupado. Este recurso deve ser aproveitado da melhor forma possível pelos processos em execução; ▪ AUMENTAR O THROUGHPUT – o número de processos executados em um determinado intervalo de tempo (throughput) deve ser sempre aumentado; ▪ DIMINUIR OS TEMPOS DE TURNAROUND DOS PROCESSOS – o tempo que o processo leva desde a sua criação até o seu término (turnaround) deve ser diminuído, ou seja, o processo deve ser atendido o mais rápido possível; ▪ TORNAR RAZOÁVEL O TEMPO DE RESPOSTA – o tempo decorrido do momento da submissão de um pedido ao sistema até a resposta ser produzida, ou seja, o tempo gasto até o retorno de uma resposta pelo sistema, geralmente limitado pela velocidade do dispositivo de saída. SISTEMAS OPERACIONAIS Prof. Luiz di Marcello MECANISMOS PARA IMPLEMENTAÇÃO MULTITAREFAE/S CONTROLADA POR PROGRAMA ❖ O controle das operações de E/S era feito pela UCP ❖ Os programas continham instruções de E/S e o programador necessitava conhecer detalhes específicos de cada periférico ❖ Posteriormente, surge o controlador (ou interface), e a UCP não se comunica mais de forma direta com os dispositivos de E/S COMO VERIFICAR O TÉRMINO DA OPERAÇÃO? BUSY WAIT ✓A UCP sincroniza com o dispositivo de E/S o início da transferência de dados e, após iniciada esta transferência, o sistema ficava PERMANENTEMENTE testando o estado do dispositivo para saber se a operação tinha chegado ao final. Desta forma a UCP mantinha-se ocupada até o término da operação de E/S, caracterizando um procedimento de "espera ocupada" (busy wait), desperdiçando-se tempo precioso para execução de outros programas SISTEMAS OPERACIONAIS Prof. Luiz di Marcello MECANISMOS PARA IMPLEMENTAÇÃO MULTITAREFA COMO VERIFICAR O TÉRMINO DA OPERAÇÃO? POLLING ✓ Após o início da transferência de dados, a UCP ficava livre para se ocupar de outras tarefas, sendo o sistema operacional responsável por realizar um teste PERIODICAMENTE para saber do término ou não da operação de E/S em cada dispositivo ✓ Esse paralelismo de operações permitiu o surgimento dos primeiros sistemas operacionais multiprogramáveis ✓ O principal problema associado a esse mecanismo consistia no fato de que é difícil a determinação do correto intervalo de tempo. Caso o tempo fosse superior ao que seria adequado, passaria a ocorrer um atraso no serviço das operações de E/S associadas ao dispositivo; já se o tempo fosse inferior ao que seria adequado, será perdido tempo de processamento ao ser executada a leitura repetitiva do estado do dispositivo SISTEMAS OPERACIONAIS Prof. Luiz di Marcello MECANISMOS PARA IMPLEMENTAÇÃO MULTITAREFA TÉCNICA DE BUFFERING ❖ A técnica de buffering consiste na utilização de uma área de memória (volátil) para transferência de dados entre os periféricos e a UCP, denominada buffer ❖ Com isso, a UCP pode manipular os dados antes de transferí-los para o dispositivo periférico de E/S, reduzindo a perda de eficiência decorrente da disparidade existente entre o tempo de processamento e o tempo gasto para realização de uma operação de E/S ❖ Exemplos: Editores de texto mantêm as alterações que devem ser gravadas; então quando o usuário salva o arquivo, o editor atualiza o arquivo em disco com o conteúdo do buffer; Alguns sistemas operacionais costumam utilizar uma área para buffer de disco onde armazenam temporariamente os dados lidos do disco (cache) SISTEMAS OPERACIONAIS Prof. Luiz di Marcello MECANISMOS PARA IMPLEMENTAÇÃO MULTITAREFA TÉCNICA DE SPOOLING ❖ O SPOOL (Simultaneous Peripheral Operations On- Line) consiste na utilização de um meio magnético de armazenamento (disco, fita) como um grande buffer ❖ Exemplos: Nas impressões os documentos são preparados para impressão e armazenados em uma área no disco; Processamento batch de tarefas em um sistema REENTRÂNCIA ❖ Capacidade de um código de programa (código reentrante) ser compartilhado por diversos usuários, ou mesmo outros processos, exigindo apenas uma cópia do programa na memória ❖ O código reentrante não pode ser modificado enquanto estiver em execução ❖ Cada usuário ou processo pode estar executando um ponto diferente e manipulando sua própria área de dados
Compartilhar