Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura de um Sistema Operacional Eduardo Feitosa efeitosa@icomp.ufam.edu.br Agenda ● Serviços ● Funcionalidades ○ Gerência de processos, memória, E/S, arquivos, proteção ● Elementos do sistema operacional Serviços Serviços de um SO ● Um S.O. deve fornecer aos programas e seus usuários uma série de serviços necessários a sua execução. ● Quando necessário, o programa invoca estes serviços do S.O. ● Isto traz conveniência aos desenvolveres dos programas. Serviços de um SO ● Execução de programas ○ Capacidade de carregar um programa na memória e colocá-lo em execução na CPU. ○ Tratar adequadamente o fim da execução (anormal ou não). ● Operações de E/S ○ Programas de usuário não podem manipular os dispositivos de E/S diretamente. ○ O S.O. deve prover os meios para intermediar as ações entre estes programas e os dispositivos. ● Manipulação de Arquivos ○ Serviços básicos de leitura, escrita, criação e remoção. Serviços de um SO ● Comunicação ○ Troca de informação entre processos executando no mesmo computador ou em computadores distintos em uma mesma rede. ● Detecção de erros ○ Garantir a correta execução dos programas, detectando (e até mesmo tratando) erros no sistema, no hardware ou nos programas de usuário. Serviços Adicionais ● Alocação de recursos para usuários e processos simultaneamente. ● Manutenção de estaIsJcas da uJlização dos recursos para garanJr o bom funcionamento ou para esJmar custos de operação. ● GaranJr a proteção no acesso aos recursos do sistema. Funcionalidades Visão geral das funcionalidades de um SO Núcleo Gerência de processo Gerência de memória Interface gráfica Outras gerências Suporte a rede Gerência de proteção Gerência de arquivos Gerência de E/S Gerência de Processos ● Um processo é um programa em execução ○ Programa = arquivo estático (imagem) ○ Processo = programa executando = programa + estados ● Processo é a unidade básica de execução em um S.O. ○ Cada processo tem um número, seu process identifier (pid). ● Um processo demanda: (i) Tempo de CPU; (ii) Espaço em memória; (iii) Arquivos; (iv) Dispositivos de E/S Gerência de Processos ● Distribuir a capacidade de processamento das aplicações ○ Proporcionar jusPça = evitar que uma aplicação monopolize um recurso, respeitando as prioridades dos usuários. ● Fornecer a ilusão de que existe um processador independente para cada tarefa ○ Facilita o trabalho dos programadores de aplicações e permite a construção de sistemas mais interaPvos ● Tarefas da gerência de processos ○ Criação e destruição de processos ○ Suspensão e conPnuação dos processos. ○ Disponibilização de mecanismos para sincronização de processos e comunicação entre processos Gerência de Memória ● A memória pode ser vista como um longo vetor de palavras (sequências de bytes), onde cada palavra tem seu próprio endereço. ● A memória é então um repositório para acesso rápido de dados compartilhados entre os dispositivos de E/S e a CPU. ● Objetivo: ○ Fornecer a cada aplicação uma área de memória própria, independente e isolada das demais aplicações e inclusive do núcleo do sistema. Gerência de Memória ● ObjeJvo: ○ O isolamento das áreas de memória das aplicações melhora a estabilidade e segurança do sistema como um todo, pois impede aplicações com erros (ou aplicações maliciosas) de interferir no funcionamento das demais aplicações. ● Acabou a memória RAM, e agora? ○ O SO pode aumentá-la de forma transparente às aplicações, usando o espaço disponível em um meio de armazenamento secundário (como um disco rígido). ○ Essa é a noção de memória virtual, que desvincula os endereços de memória vistos por cada aplicação dos endereços acessados pelo processador na memória RAM. Gerência de E/S ● Também chamada de gerência de dispositivos ● Em um sistema de computação existem vários dispositivos diferentes (Pen drive, disquetes, discos IDE e SCSI,...) ● A ideia é permitir, através de drivers, o uso de forma comum ● Funcionalidades: ○ Controle e gerência de buffer e cache. ○ Interface genérica para comunicação com drivers. ○ Alocação de drivers para dispositivos de hardware específicos. Gerência de Arquivos ● Um arquivo (file) é uma coleção de informações relacionadas de acordo os objeJvos do seu criador. ● A gerência de arquivos é construída sobre a gerência de E/S e visa criar arquivos e diretórios, definindo sua interface de acesso e as regras para seu uso. ● O S.O. é responsável por: ○ Criar e remover arquivos (e diretórios). ○ Dar suporte a operações primiPvas para manipulação de dados e diretórios. ○ Mapear arquivos em memória secundária. ○ Manter coerência entre as imagens na memória primária e secundária. Gerência de Arquivos ● É importante observar que os conceitos abstratos de arquivo e diretório são tão importantes e difundidos que muitos sistemas operacionais os usam para permitir o acesso a recursos que nada tem a ver com armazenamento. ○ Conexões de rede (socket UNIX) e informações do kernel (diretório /proc do UNIX) ○ Sistema operacional experimental Plan9 [Pike et al., 1993] Gerência de Proteção ● Proteção: Mecanismos de controle de acesso aos recursos de sistema e de usuário por parte dos programas. ● Funções: ○ Fazer disPnção entre o uso autorizado e não autorizado. ○ Especificação de medidas de controle. ○ GaranPa da execução destas medidas. Gerência de Proteção ● Para proteger os recursos do sistema contra acessos indevidos, é necessário: ○ definir usuários e grupos de usuários; ○ identificar os usuários que se conectam ao sistema, através de procedimentos de autenticação; ○ definir e aplicar regras de controle de acesso aos recursos, relacionando todos os usuários, recursos e formas de acesso e aplicando essas regras através de procedimentos de autorização; ○ registrar o uso dos recursos pelos usuários, para fins de auditoria e contabilização Outras Funcionalidades ● Interface gráfica ● Suporte de rede ● MulJmídia ● Energia Elementos Elementos de um SO ● Um S.O. não é um bloco único e fechado de so]ware executando sobre o hardware. ● É composto por diversos componentes, cada um com objeJvos e funcionalidades complementares. Elementos de um SO ● Os elementos são: ○ Núcleo (Kernel), Drivers, Código de inicialização e Programas utilitários Elementos de um SO ● Núcleo ○ Coração de um S.O. ○ Responsável pela gerência de recursos do hardware usados pelas aplicações. ○ Também implementa as principais abstrações utilizadas Elementos de um SO ● Drivers ○ Módulos de código específicos para acessar dispositivos físicos. ○ Exemplos: drivers de disco rígidos IDE, SCSI, portas USB, impressoras, placa de vídeo. ○ Tipicamente construído pelo fabricante do hardware. ○ Deve ser compilado para ser acoplado ao S.O. Elementos de um SO ● Códigos de inicialização ○ Tem a função de executar uma série de tarefas complexas para iniciar (aPvar) o hardware. ○ Reconhecer os disposi,vos instalados, testá-los e configurá-los. ○ Outra tarefa é carregar o núcleo do S.O. em memória e iniciar sua operação Elementos de um SO ● Programas utilitários ○ Facilitam o uso do sistema computacional, provendo funcionalidades complementares ao núcleo. ○ Formatação de discos e mídias, configuração de dispositivos, manipulação de arquivos, interpretar comandos, terminal, interface gráfica, gerência de janelas.... Elementos de um SO Introdução aos Sistemas Operacionais Eduardo Feitosa efeitosa@icomp.ufam.edu.br
Compartilhar