S.O.S.B. STPD - 2A I - Conceitos Básicos de Sistemas Operacionais. 1 - Generalidades. 1.1 - Assuntos Gerais. - Apresentação do professor. - Horário de Aulas: Teóricas e Práticas. - Freqüência: Abonos de Faltas. - Avaliação do aprendizado. 1.2 - Apresentação Geral da Matéria e do Programa da Disciplina: Objetivos. 2 - Introdução e Conceituação Geral. 2.1 - Primeiros computadores. Não possuíam sistema operacional. Tinham que ser programados manualmente. Os engenheiros conectavam fios e relés para executar uma determinada operação. Concluído o trabalho dos engenheiros, o computador fazia os cálculos. Se fosse necessário efetuar cálculos diferentes, era preciso refazer a fiação. Os comandos eram inseridos no computador através dos cabos elétricos. 2.2 - Conceituação. O S. O. é um conjunto de rotinas e de programas que faz a interface entre o homem e a máquina. Os usuários não inserem as instruções diretamente no computador. Elas são entregues ao S. O. O S. O. se encarrega de determinar que o hardware execute os comandos. Conceitos Básicos de Sistemas Operacionais SOSB_UN1.DOC 1 S.O.S.B. STPD - 2A 3 - Histórico. 3.1 - Primeira Fase. Interação muito grande entre o homem e a máquina ( 4% de utilização ). - Década de 1950. Entrada e processamento seqüencial dos programas. Não existia a conceito de Sistema Operacional. A programação feita em painéis exigia um profundo conhecimento do hardware. O excesso de procedimentos manuais impediam o uso eficiente do computador. - Início da Década de 1960. Vários programas compartilham os recursos utilizando a CPU em turnos. Os programas deixaram de ser feitos diretamente no hardware: linguagens de programação Assembler e Fortran. Surgiram os primeiros S.O. procurando automatizar as tarefas manuais. 3.2 - Segunda Fase. A interação ainda era grande ( o aproveitamento passou para 20% ). - Meados da Década de 1960. Um mesmo S.O. era utilizado por computadores de modelos similares, tornando mais fácil a migração para sistemas maiores. Os Sistemas Operacionais passaram a Ter seu próprio conjunto de rotinas de operações de I/O. O hardware passou a implementar os canais de I/O permitindo a transferência de dados entre os dispositivos de I/O e a memória principal de forma independente da CPU. Conceitos Básicos de Sistemas Operacionais SOSB_UN1.DOC 2 S.O.S.B. STPD - 2A 3.3 - Terceira Fase. A interação direta do analista / programador com a máquina praticamente não existe ( não é mais necessária ). - Início da Década de 1970. Os S. O. manipulam equipamentos com múltiplos processadores. - Início da Década de 1980. Os Sistemas Operacionais permitem o compartilhamento de dados entre computadores diferentes. 4 - Composição dos Sistemas Operacionais. Composição. Rotinas / Comandos Residentes ( Supervisor ). Rotinas / Comandos Transientes. Recursos: CPU, Memória Principal e Periféricos. Os S. O. implementam a interface entre o usuário e o computador através de camadas. 4.1 - Principais Camadas. - Interpretador de comandos ( Shell ) Camada responsável por identificar e responder aos comandos do usuário. Apenas interpreta: não executa os comandos. Decompõe o comando do usuário em vários comandos mais simples. - Utilitários do sistema Conceitos Básicos de Sistemas Operacionais SOSB_UN1.DOC 3 S.O.S.B. STPD - 2A Rotinas que executam tarefas auxiliares e de apoio. Podem ser divididas em várias camadas. Faz as verificações e a preparação necessárias para atender a um comando ( uma solicitação do usuário ). Ex.: Um comando para impressão de um arquivo. Determinar se o arquivo existe; Verificar se o usuário tem permissão de acesso a ele; Identificar a estrutura dele; Localizá-lo; Efetuar a leitura; Especificar onde imprimir; Imprimir. - Núcleo ( Kernel ) Contém as rotinas mais críticas e mais freqüentemente utilizadas. Reside na Memória Principal. Executa os comandos, dando ao usuário o que ele solicitou. 5 - Sistemas Mono-usuários. Sistemas Mono-programados. 5.1 - Características. - Apenas um programa que está carregado na memória principal. - Capaz de gerenciar e executar apenas um programa. - O processador, a memória e os periféricos são dedicados a um único programa. 5.2 - Funções. Conceitos Básicos de Sistemas Operacionais SOSB_UN1.DOC 4 S.O.S.B. STPD - 2A - Efetuar o processamento de E/S. - Fazer o gerenciamento dos periféricos. - Gerenciar a memória principal. 5.3 - Vantagens / Desvantagens. - Vantagem Muito simples: Não existe preocupação com problemas de proteção, porque é utilizado por um único programa. - Desvantagens Ociosidade do processador: Fica parado enquanto espera por um evento ( por exemplo, digitação de um dado ). Sub-utilização da memória principal: geralmente o programa não a ocupa totalmente. Má utilização dos periféricos: não são utilizados de forma integral. Eles permanecem alocados e à espera de serviço por longos períodos. 5.4 - Sistemas Mono e Multitarefas. Tarefa - atividade de um programa que é executada de forma independente e compete por recursos. - Sistema Monotarefa Sistema capaz de executar de cada vez, apenas uma atividade do programa: as atividades são executadas seqüencialmente. - Sistema Multitarefas Sistema capaz de executar mais de uma atividade do programa ao mesmo tempo, de forma concorrente. Existem softwares básicos que funcionam como multitarefas mesmo quando são executados em S. O. monotarefa: neste caso, a característica é do software básico. ( Ex.: Editor de Texto WS, rodando em MS-DOS. ) 6 - Sistemas Multi-usuários. Conceitos Básicos de Sistemas Operacionais SOSB_UN1.DOC 5 S.O.S.B. STPD - 2A 6.1 - Sistemas Multi-programados. 6.1.1 - Características. - Vários programas estão carregados na memória principal e concorrem por recursos. - Capaz de gerenciar e executar vários programas, de forma concorrente. - O processador, a memória e os periféricos são compartilhados pelos programas. 6.1.2 - Funções. - Fazer o gerenciamento dos periféricos, da memória principal e da CPU. - Controlar os programas: impedir que eles interfiram uns com os outros. - Possibilitar o compartilhamento de arquivos de dados. 6.1.3 - Vantagens / Desvantagens. Ctrl+C = Abre a tela. - Vantagens Melhor utilização dos recursos do computador. Atendimento de um número maior de usuários. - Desvantagens Sistema maior e mais complexo: utiliza maior área de memória. Maior necessidade de empenho do processador para tarefas de gerenciamento e de controle. 6.1.4 - Tipos de processamento. Os S. O. multiprogramáveis podem ser classificados pela forma de interação com o usuário, permitindo a execução de três tipos de processamento. Processamento Interativo. Conceitos Básicos de Sistemas Operacionais SOSB_UN1.DOC 6 S.O.S.B. STPD - 2A Sistemas de Tempo Compartilhado: Time-Sharing. Características: - O registro é processado no momento da ocorrência do evento. - O processamento é realizado registro a registro. Permite a interação dos usuários com o sistema através de terminais de vídeo e de teclado: interação On-Line. O sistema cria para o usuário um ambiente de trabalho próprio, dando a impressão de que todo o sistema está dedicado exclusivamente a ele. Possui uma linguagem de controle que permite ao usuário comunicar-se diretamente com o sistema para obter informações. O processador é alocado para o programa do usuário, pelo S. O., em fatias de tempo: Time Slicing. Processamento Batch. Características: - Os registros são processados muito depois da ocorrência do evento. - O processamento é realizado por lotes de registros: arquivos. Pode ser bastante eficiente devido à melhor utilização do processador. Os tempos de resposta são muito longos, porque o processamento é basicamente seqüencial. Processamento em Tempo Real. Conceitos Básicos de Sistemas Operacionais SOSB_UN1.DOC 7 S.O.S.B. STPD - 2A Semelhante ao processamento interativo, diferenciando-se dele apenas no tempo de resposta que é exigido na execução das tarefas. Os tempos de resposta devem estar dentro de limites rígidos: o não cumprimento pode ocasionar perdas irreparáveis. Um programa executa o tempo que for necessário, até que termine ou apareça outro programa mais importante que ele para o sistema. Não existe Time Slicing. São utilizados no monitoramento de refinarias de petróleo, controle de tráfego aéreo, controle de processos, controle usinas termoeléctricas e nucleares: em qualquer ambiente onde a segurança é fator fundamental. 6.2 - Sistemas Multi-processados. Os sistemas multiprocessáveis possuem mais de um processador, que podem compartilhar o mesmo S. O. e a mesma memória ou possuir cada um o seu próprio sistema independente. A multiprogramação é utilizada para cada processador. 6.2.1 - Características. - Vários processadores executam simultaneamente vários programas: sendo um programa em cada um deles. - Capaz de gerenciar várias CPUs que compartilham a memória principal e os periféricos. - A memória e os periféricos são compartilhados pelos processadores. diferentes - Um dos processadores é definido como sendo o principal ( MASTER ) e os como secundários ( SLAVE ). 6.2.2 - Funções. - Fazer o gerenciamento dos periféricos, da memória principal e das CPUs. Conceitos Básicos de Sistemas Operacionais SOSB_UN1.DOC 8 S.O.S.B. STPD - 2A - Controlar os processadores e os programas: impedindo que eles interfiram uns com os outros. - Possibilitar o compartilhamento da memória e dos periféricos. - Balancear a carga de trabalho distribuindo-a entre os processadores. 6.2.3 - Vantagens / Desvantagens. - Vantagens Aumento da performance. Possibilidade de executar em paralelo funções de um sistema. - Desvantagens Sistema maior e mais complexo: utiliza maior área de memória. Maior necessidade de empenho do processador para tarefas de gerenciamento e de controle. 6.2.4 - Acoplamento. Sistemas Fracamente Acoplados. Cada CPU acessa sua própria memória principal e um conjunto de periféricos. Elas estão conectadas através de um Link de transmissão de dados. Sistemas Fortemente Acoplados. Todas as CPUs compartilham a mesma memória principal e o mesmo conjunto de periféricos. Elas estão conectadas através de um Link de transmissão de dados. - Sistemas Independentes. Conceitos Básicos de Sistemas Operacionais SOSB_UN1.DOC 9 S.O.S.B. STPD - 2A - Sistemas Assimétricos. - Sistemas Simétricos. 6.2.5 - Paralelismo. Pipelining. Processo que aloca cada etapa da execução da instrução para programas diferentes. Necessita de hardware e de S.O. especiais. Processamento Vetorial. Processamento Paralelo. --------------------xxxxxxxxxx-------------------MJF / mjf. Conceitos Básicos de Sistemas Operacionais SOSB_UN1.DOC 10