Baixe o app para aproveitar ainda mais
Prévia do material em texto
O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Introdução a Sistemas Operacionais Sistemas Operacionais Tércio de Morais1 1Ciência da Computação Universidade Federal de Alagoas - Campus Arapiraca Arapiraca, 21 de maio de 2019 Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 1 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Agenda 1 O que são Sistemas Operacionais? 2 Resposabilidades do SO 3 Organização de Sistemas operacionais 4 Bootstrapping 5 Chamadas ao Sistema Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 2 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Objetivos Ao fim desta aula saberemos. . . O que é um Sistema Operacional Qual o papel de um SO Como está organizado um SO Como um SO é carregado no hardware Como uma aplicação faz chamadas ao sistema Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 3 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Agenda 1 O que são Sistemas Operacionais? 2 Resposabilidades do SO 3 Organização de Sistemas operacionais 4 Bootstrapping 5 Chamadas ao Sistema Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 4 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema O que são Sistemas Operacionais? Arquitetura de um Computador Moderno Um ou mais processadores Memória principal Sistema de armazenamento (discos) Impressoras Placa de rede Dispositivos de entrada e saída A questão é . . . Como fazer todos esses componentes trabalharem de forma integrada e coordenada? Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 5 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema O que são Sistemas Operacionais? Arquitetura de um Computador Moderno Um ou mais processadores Memória principal Sistema de armazenamento (discos) Impressoras Placa de rede Dispositivos de entrada e saída A questão é . . . Como fazer todos esses componentes trabalharem de forma integrada e coordenada? Exemplo: Motor Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 5 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema O que são Sistemas Operacionais? Arquitetura de um Computador Moderno Um ou mais processadores Memória principal Sistema de armazenamento (discos) Impressoras Placa de rede Dispositivos de entrada e saída A questão é . . . Como fazer todos esses componentes trabalharem de forma integrada e coordenada? Exemplo: Motor Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 5 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema O que são Sistemas Operacionais? Arquitetura de um Computador Moderno Um ou mais processadores Memória principal Sistema de armazenamento (discos) Impressoras Placa de rede Dispositivos de entrada e saída A questão é . . . Como fazer todos esses componentes trabalharem de forma integrada e coordenada? Sistemas Operacionais Exemplo: Motor Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 5 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Estrutura de um Sistemas Operacionais? O que conhecemos como SO não é, exatamente, um SO As distribuições de SO trazem um conjunto de ferramentas que vão muito além so SO O nosso propósito (contexto de Ciência da Computação) é estudar a integração do SO com o hardware: kernel, monitor ou supervisor Funções de um SO Gerenciar o compartilhamento de recursos de hardware entre entidades concorrentes Fornecer interfaces que abstraiam a complexidade e heterogeneidade do hardware Intermediar integrações entre aplicaões de alto nível e hardware Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 6 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Definição O que é um SO Conjunto de ferramentas que fornecem serviços, criando uma interface entre aplicações e o hardware ao mesmo tempo que gerencia os recursos do hardware compartilhando-os entre mútiplos porcessos Papel do SO Gerenciador de recursos – reponsável pelo hardware. Recebe solicitações de acesso por parte das aplicações podendo aceitar ou recusar. Se aceitar, alocar recursos de forma segura e eficiente. Exemplo: alocação de memória. Provedor de Serviços – ponto de vista do proprietário do sistema ou perspectiva da aplicação que espera abstração dos serviços de baixo nível. Exemplo: serviço de sockets. Máquina Virtual – Nesta perspectiva, a aplicação não sabe o que é SO nem hardware, nem quantas camadas de software básico existem acima do hardware. Exemplo: Máquina Virtual Java (JVM) e computação em nuvens. Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 7 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Agenda 1 O que são Sistemas Operacionais? 2 Resposabilidades do SO Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário 3 Organização de Sistemas operacionais 4 Bootstrapping 5 Chamadas ao Sistema Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 8 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Áreas de Resposabilidades do SO Processos Memória Dispositivos de E/S Sistemas de arquivos Segurança Redes Interface com o usuário Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 9 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Processos O que é Um processo é um programa em execução Um processo é executado na CPU A CPU é o recurso responsável pelo gerenciamento: Processos (inclusive o próprio processo) Serviços de suporte aos processos Criação Distruição Alteração de prioridade Comunicação interprocessos Sincronização Características Em sua maioria, estes serviços são executados por um processo para agir sobre o outro. Um processo pode agir sobre ele mesmo: destruição. O SO é responsável pelo escalonamento e troca de contexto na CPU. Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 10 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Memória Espaço de memória é responsabilidade crucial do SO O desempenho do sistema depende do subsistema de gerenciamento É necessário assegurar que processos não interfiram em áreas de memória de outros processos Serviços de suporte à memória Solicitação direta à memória Solicitação indireta à memória Liberar memória para o Solicitação Solicitar áreas de de memória compartilhadas entre processos Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais11 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Dispositivo de E/S Função primária do SO: fornecer serviços que simplifiquem o desenvolvimento de aplicações Como um programa envia um PDF para a Impressoras? Se não houvesse os drivers de impressora, o que aconteceria? E quando mudasse a impressora? Muitas vezes, o dispositivo é compartilhado por vários processos. Exemplo: acesso ao disco rígido Serviços do SO Associar dispositivo a um processo Ler dados de um dispositivo Escrever dados em um dispositivo Fechar e liberar Dispositivos Fornecer acesso exclusivo a dispositivos apropriados Funções especiais Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 12 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Sistema de Arquivos A maiorira das ações de dispositivos de E/S é armazenar e recuperar dados persistentes que chamamos de arquivos Serviços de Sistemas de Arquivos Suas funções são similares às funções de dispositivos de E/S Abrir e fechar um arquivo Leitura de arquivo Escrita de arquivo Procurar um local dentro de um arquivo Ler metadados Alterar metadados . Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 13 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Sistema de Arquivos A maiorira das ações de dispositivos de E/S é armazenar e recuperar dados persistentes que chamamos de arquivos Serviços de Sistemas de Arquivos Suas funções são similares às funções de dispositivos de E/S Abrir e fechar um arquivo Leitura de arquivo Escrita de arquivo Procurar um local dentro de um arquivo Ler metadados Alterar metadados Além disso, sistemas de arquivo perstam serviços às camadas superiores de conversão de nomes de arquivos em endereços de dados. É onde entra a ideia de espaço de nomes como um conjunto de nomes que um processo pode acessar. Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 13 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Segurança Aspecto transversal em SO Todas as outras áreas de responsabilidade tem a ver com elementos de segurança Um processo não pode encerrar outro Um processos não pode acessar a área de memória reservada ao kernel Acesso a dispositivos de E/S devem ser controlados por permissões e propriedades. Programas fazem solicitações ao SO e este determina se o program tem ou não permissão de acesso. Serviços do SO Configurar políticas de segurança Procurar políticas de segurança Autenticar-se em um sistema remoto Atender a uma solicitação de remota Criptografar/decriptografar mensagens Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 14 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Redes É uma das funções do subsistema de E/S A sua diferença está na necessidade de implementar pilhas de protocolos Construir uma mensagem para ser transmitida via rede é uma tarefa complexa O SO abstrai essa função para as aplicações de mais alto nível Exemplo: encapsulamento de mensagem de uma página de Web baseada no protocolo HTTP Serviços de redes do SO Estabelecer conexão com o serviço remoto Atender conexões de um cliente remoto Enviar mensagens via rede Receber mensagens via rede Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 15 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Interface com o usuário A maioria dos projetos de SO estruturam as interfaces como aplicação normal Atender as necessidades de usuários uma área muito ampla São exemplos de interface: Terminal de comandos DOS e Linux Gerenciador de tarefas do Windows Monitor de recursos Interface para gerenciamento da rede Não abordaremos esta responsabilidade em nosso curso Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 16 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Modelos Monolíticos Modelos em Camadas Modelos de Microkernel Modelos de Máquina Virtual Agenda 1 O que são Sistemas Operacionais? 2 Resposabilidades do SO 3 Organização de Sistemas operacionais Modelos Monolíticos Modelos em Camadas Modelos de Microkernel Modelos de Máquina Virtual 4 Bootstrapping 5 Chamadas ao Sistema Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 17 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Modelos Monolíticos Modelos em Camadas Modelos de Microkernel Modelos de Máquina Virtual Organização de Sistemas Operacionais Modelos Projetos de SO são projetos complexos e críticos. Algumas técnicas de Organização geral são comumente usadas: Modelos Monolítico Modelos em Camadas Modelos de Microkernel Modelos de Máquina Virtual Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 18 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Modelos Monolíticos Modelos em Camadas Modelos de Microkernel Modelos de Máquina Virtual Modelos Monolíticos Sistemas organizados como um único Programa Catacterizado pela a falta de um modelo de Organização Apesar de muitos projetos iniciais seguirem este modelo, é recomendado que se adote um modelo de organização q não seja monolítico Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 19 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Modelos Monolíticos Modelos em Camadas Modelos de Microkernel Modelos de Máquina Virtual Modelos em Camadas Modelo amplamente utilizado na computação – pilha de camadas Ideia de que cada camada acima aumenta o nível de abstração Princípio Uma camada superior chama funções da camada imediatamente inferior Uma função de uma camada inferior responde a chamadas da camada imediatamente superior Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 20 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Modelos Monolíticos Modelos em Camadas Modelos de Microkernel Modelos de Máquina Virtual Microkernel Boa parte da funcionalidade tradicional do kernel poderia ser retirada dele e movida para outros processos O papel principal do microkernel é escalonar os processos e torcar mensagens Princípios Kernel menor e mais fácil de escrever e manter Comunicação por troca de mensagens Funções de gerenciamento do SO como processos normais Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 21 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Modelos Monolíticos Modelos em Camadas Modelos de Microkernel Modelos de Máquina Virtual Máquina Virtual Ideia de fornecer a ilusãoque uma máquina que o SO gerencia O processo que roda neste SO tem a ilusão de estar “executando sozinho ”em um hardware Princípios Ilusão de muitas cópias de hardware Execução de mais de um SO sobre um mesmo hardware Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 22 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Agenda 1 O que são Sistemas Operacionais? 2 Resposabilidades do SO 3 Organização de Sistemas operacionais 4 Bootstrapping 5 Chamadas ao Sistema Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 23 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Bootstrapping Questão: o ovo ou a galinha? O SO só pode oferecer seus serviços depois de estar carregado na memória e em execução. No entanto, alocar memória, carregar código de um dispositivo de armazenamento e iniciar sua execução são serviços do próprio SO. Bootstrapping Processo de levar o sistema do hardware puro ao ponto de se ter um SO em execução para gereneciar o hardware. Também conhecido como partida a frio, partida não programada e carga do programa inicial (IPL – Initial Program Load). Abordagens Painel frontal – permitia o acesso para configuração da memória e CPU Programa de bootstrap – geralmente um código em cartão perfurado Memória somente de leitura – memória ROM (Read-Only Memory) Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 24 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Agenda 1 O que são Sistemas Operacionais? 2 Resposabilidades do SO 3 Organização de Sistemas operacionais 4 Bootstrapping 5 Chamadas ao Sistema Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 25 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Chamadas ao Sistema – System Calls Ligação entre a aplicação e o sistema Chamada ao sistema é um mecanismo pelo qual um processo pode solicitar os serviços de um SO. Proveem interfaces com os serviços disponibilizados pelo SO. Geralmente são rotinas escritas em C e C++ Serviços de mais baixo nívelpodem ser escritas em assembly Exemplos de chamadas do UNIX fork() – cria uma cópia de um processo existente exit() – encerra o processo solicitante open() – abre um arquivo para leitura ou gravação read() – lê dados de um arquivo ou dispositivo write() – grava dados em um arquivo ou dispositvo Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 26 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Organização de Sistemas operacionais Bootstrapping Chamadas ao Sistema Chamadas ao Sistema – Exemplo de chamada de sistema por uma aplicação Leitura de arquivo em C++ int load_hdr (char *name , char *buf) { int fd = open(name , O_RDONLY ); if(fd < 0) return fd; n = read(fd , buf , HDR_SIZE ); close(fd); return (n); } Tércio de Morais Introdução a Sistemas Operacionais Sistemas Operacionais 27 / 27 O que são Sistemas Operacionais? Resposabilidades do SO Processos Memória Dispositivo de E/S Sistema de Arquivos Segurança redes Interface com o usuário Organização de Sistemas operacionais Modelos Monolíticos Modelos em Camadas Modelos de Microkernel Modelos de Máquina Virtual Bootstrapping Chamadas ao Sistema
Compartilhar