funcionalidades de um sistema operacional · funcionalidades de um sistema operacional prof. dr....
TRANSCRIPT
Funcionalidades de um Sistema Operacional
Prof. Dr. André Carvalho [email protected]
Agenda
n Gerências ¡ Processos, memória, E/S, arquivos,
proteção e outras gerências n Serviços n Chamadas ao sistema n Estrutura de um SO
2
Gerência de Processos
n Um processo é um programa em execução
n Demanda recursos como: ¡ Tempo de CPU ¡ Espaço em memória ¡ Arquivos ¡ Dispositivos de E/S
3
Gerência de Processos
n Distr ibuição da capacidade de processamento: ¡ de forma justa entre as aplicações. ¡ evitando que uma aplicação monopolize
o processador. ¡ respeitando as prioridades dos usuários.
4
Gerência de Processos
n O S.O. provê a ilusão de que existe um processador independente para cada tarefa. ¡ Facilita o trabalho dos programadores de
aplicações ¡ Permite a construção de sistemas mais
interativos.
5
Gerência de Processos
n Tarefas do S.O. relacionadas a gerência de processos ¡ Criação e destruição de processos ¡ Suspensão e continuação dos processos. ¡ Disponibilização de mecanismos para:
n Sincronização de processos n Comunicação entre processos
6
Gerência de Memória
n A memória pode ser vista como um longo vetor de palavras (sequências de bytes)
n Cada palavra tem seu próprio endereço.
n A memória é então um repositório para acesso ráp ido de dados compartilhados entre os dispositivos de E/S e a CPU. 7
Gerência de Memória
n A Gerência de memória tem como objetivo fornecer a cada aplicação uma área de memória: ¡ Própria ¡ Independente ¡ Isolada das demais aplicações e
inclusive do núcleo do sistema.
8
Gerência de Memória
n O isolamento das áreas de memória d a s a p l i c a ç õ e s m e l h o r a 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.
9
Gerência de Memória
n Além disso, caso a memória RAM existente seja insuficiente para as aplicações, o sistema operacional p o d e a u m e n t á - l a d e f o r m a transparente às aplicações. ¡ Usando o espaço disponível em um meio
de armazenamento secundário (como um disco rígido).
¡ Memória Virtual 10
Gerência de Memória
n Endereçamento virtual ¡ Desvincula os endereços de memória
vistos por cada aplicação dos endereços acessados pelo processador na memória RAM.
11
Gerência de Memória
n Uma aplicação pode ser carregada em qualquer posição livre da memória. ¡ Programador não tem de se preocupar
com os endereços de memória onde ela irá executar.
¡ Memória pode ser realocada de acordo com a conveniência do S.O.
12
Gerência de E/S
n Também chamada de gerência de dispositivos
n Em um sistema de computação existem vários dispositivos diferentes ¡ Pen drive, disquetes, discos IDE e SCSI
n A ideia é permitir, através de drivers, o uso de forma comum
13
Gerência de E/S
n As funções da gerência de E/S são: ¡ 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.
14
Gerência de Arquivos
n Um arquivo (file) é uma coleção de informações relacionadas de acordo os objetivos do seu criador. ¡ Programas (fonte ou objeto). ¡ Dados.
15
Gerência de Arquivos
n 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.
16
Gerência de Arquivos
n O S.O. é responsável por: ¡ Criar e remover arquivos (e diretórios). ¡ Dar suporte a operações primitivas para
manipulação de dados e diretórios. ¡ M a p e a r a r q u i v o s e m m e m ó r i a
secundária. ¡ Manter coerência entre as imagens na
memória primária e secundária.
17
Gerência de Arquivos
n É 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] 18
Proteção
n Proteção: Mecanismos de controle de acesso aos recursos de sistema e de usuário por parte dos programas.
n Funções: ¡ Fazer distinção entre o uso autorizado e
não autorizado. ¡ Especificação de medidas de controle. ¡ Garantia da execução destas medidas.
19
Proteção
n Para proteger os recursos do sistema c o n t r a a c e s s o s i n d e v i d o s , é necessário: a) definir usuários e grupos de usuários; b) identificar os usuários que se conectam
ao sistema, através de procedimentos de autenticação;
20
Proteção
c) 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;
d) registrar o uso dos recursos pelos usuários, para fins de auditoria e contabilização.
21
Outras gerências dos S.O. modernos
n Várias outras vêm se agregar aos sistemas modernos, para cobrir aspectos complementares, ¡ Interface gráfica ¡ Suporte de rede ¡ Multimídia ¡ Energia
22
Outras gerências dos S.O. modernos
n Gerência de rede ¡ Implementam métodos e políticas para a
comunicação e o compartilhamento de recursos entre vários computadores em uma mesma rede.
¡ Protocolos de comunicação ¡ Compartilhamento de dispositivos (disco,
impressora, etc.) ¡ Acesso compartilhado de usuários
23
Visão geral das funcionalidades de um S.O.
24
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
Estrutura de um S.O.
n Núcleo – Coração do S.O. ¡ Gerência de recursos de hardware. ¡ Implementação de abstrações usadas pelas
aplicações. n Drivers – Módulos de código específicos
para acessar dispositivos físicos. ¡ Muitas vezes construido pelo fabricante do
hardware.
25
Estrutura de um S.O.
n Código de inicialização. ¡ Uso do hardware requer uma série de tarefas
complexas, como reconhecimento de dispositivos, teste e configuração.
¡ Carregar o núcleo do sistema.
n Programas utilitários. ¡ Não essenciais. ¡ Facilitam o uso. ¡ Formatação de disco, manipulação de arquivos,
calculadora, editor de texto, etc. 26
27
S.O. – Política vs. Mecanismo
n Política – Decisões mais abstratas, através de algoritmos de alto nível. ¡ Quantidade de memória reservada a uma aplicação, qual o
próximo processo a utilizar a CPU, Qual pacote de rede enviar. n Mecanismo – procedimentos de baixo nível, implementação
no hardware das políticas. ¡ Acesso à memória propriamente dita, envio do pacote de rede. ¡ Genéricos, de modo a suportar mudanças nas políticas.
n Separação flexibiliza o S.O., possibilitando mudanças de políticas sem grandes traumas.
28
Serviços do S.O.
Serviços do S.O.
n Um S.O. deve fornecer aos programas e seus usuários uma série de serviços necessários a sua execução.
n Quando necessário, o programa invoca estes serviços do S.O.
n I s t o t r a z c o n v e n i ê n c i a a o s desenvolveres dos programas.
Serviços do S.O.
n Execução de programas ¡ Carregar um programa na memória e
colocá-lo em execução na CPU. ¡ Tratar o fim da execução (anormal ou
não). n Operações de E/S
¡ Prover os meios para intermediar as ações entre estes programas e os dispositivos.
Serviços do S.O.
n Manipulação de Arquivos ¡ Serviços básicos de leitura, escrita,
criação e remoção. n Comunicação
¡ Troca de informação entre processos executando no mesmo computador ou em computadores distintos em uma mesma rede.
Serviços do S.O.
n 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.
Funções adicionais
n Funções relacionas à eficiência do sistema: ¡ Alocação de recursos para múltiplos usuários e
processos utilizando o sistema ao mesmo tempo.
¡ Manutenção de estatísticas da utilização dos recursos para garantir o bom funcionamento ou para estimar custos de operação.
¡ Garantir a proteção no acesso aos recursos do sistema
Chamadas de Sistema (System Calls)
Chamadas de Sistema
n A interação entre os programas em execução e o sistema operacional se dá através de chamadas de sistema (system calls)
n G e r a l m e n t e i m p l e m e n t a d o s c o m o instruções da linguagem de montagem (assembly).
n Algumas linguagens de alto-nível (ex.: C)
Chamadas de Sistema
n M é t o d o s p a r a p a s s a g e m d e parâmetros em chamadas de sistema: ¡ Através de registradores ¡ Os parâmetros são armazenados em
uma tabela na memória e o endereço da tabela é passado em um registrador.
¡ Usando uma estrutura de pilha, os parâmetros são empi lhados pelo programa e desempilhados pelo S.O.
Chamada de Sistema
Passagem de Parâmetros
Tipos de Chamadas
n Controle de Processos n Manipulação de Arquivos e Diretórios n Comunicações
Controle de Processos
Controle de Processos (Execução no MS-DOS)
n Sistema Mono-Tarefa
n Sistema “Livre” n Executando um Programa
Controle de Processos (Execução no UNIX)
n Sistema Multi-Tarefa
Manipulação de Arquivos
Manipulação de Arquivos
Modelos de Comunicação
n Troca de Mensagens n Memória Compartilhada
Comparação de Chamadas
Programas de Sistema
n Programas de Sistema (utilitários) ¡ Manipulação de Arquivos ¡ Informação de Status ¡ Suporte a linguagem de programação ¡ Carga e execução de programas ¡ Comunicações
n Em muitos casos, atua como uma “casca”: para os usuários executarem chamadas de sistema.
Estruturas de Sistema
Estrutura Monolítica
n A maior parte do núcleo do S.O. trabalha em modo kernel. ¡ Acesso completo ao sistema.
n Vantagem: Desempenho. ¡ Qualquer parte do sistema pode acessar
qualquer coisa, como hardware e outras partes do núcleo.
n Desvantagem: ¡ Tolerância menor a falhas. ¡ Maior possibilidade de travamentos.
50
Estrutura Monolítica: MS-DOS
n MS-DOS ¡ Concebido para prover o máximo de
funcionalidade ocupando o mínimo de espaço
¡ Não há uma separação explícitas dos módulos componentes.
Estrutura do MS-DOS
Estrutura Monolítica: UNIX
n Por causa das limitações de HW, o UNIX original consistia de duas partes: ¡ Programas de Sistema ¡ Kernel: Implementação das funções de
system call e interface com o HW. n file system, escalonamento de CPU, gerência
de memória, etc.
Estrutura do UNIX
Abordagem em Camadas
n O S.O. é divido em camadas, cada uma construída no top de outra camada de nível mais baixo.
n Camada 0 é o HW e camada N é a interface com o usuário.
n Em cada camada são usadas funções e serviços implementados na camada imediatamente abaixo.
Camadas em um S.O.
Sistema Operacional “THE”
Camadas do OS/2
Cliente Servidor e Microkernels
n Esta abordagem consiste em mover o máximo possível de código para as camadas superiores deixando um microkernel mínimo para as tarefas críticas.
n Um processo de usuário (cliente) envia uma requisição a um processo servidor que executa a tarefa e envia os resultados
n O kernel cuida da comunicação entre clientes e servidores.
Cliente Servidor e Microkernels
n Os servidores, atuando como usuários, em geral fazem requisições ao kernel para ter acesso aos recursos de hardware.
n Problemas em um servidor específico não perturbam o sistema
Cliente Servidor e Microkernels
n Cliente requisita n ações ao servidor.
Grande flamewar entre Linus Torvalds e A. Tanenbaum
n Vale a leitura desta discussão em uma lista de emails entre Linus Torvalds (criador do Linux) e Andrew Tanenbaum (autor do mais famoso livro de S.O.)
n http://oreilly.com/catalog/opensources/book/appa.html
62
Máquinas Virtuais
n Extensão da abordagem de camadas. n O kernel S.O. é tratado com se fosse parte
do HW. n Uma máquina virtual provê uma interface
similar ao do hardware da máquina. n O S.O. cr ia a i lusão de múlt iplos
processadores cada um com a sua própria memória virtual.
Máquinas Virtuais
Máquinas Virtuais
n Provêm completo isolamento dos recursos do sistema uma vez que que as MVs são isoladas umas das outras.
n O isolamento, no entanto, impede o compartilhamento direto de recursos.
Máquinas Virtuais
n São a p la ta fo rma i dea l pa ra desenvo l v imen to de s i s temas operacionais pois não põe em risco a operação do sistema Real.
n Difíceis de implementar devido ao esforço em emular a interface da máquina real.
Tipos
n Máquinas virtuais de sistema. ¡ Suporte a sistemas operacionais inteiros
rodando sobre eles. ¡ VMWare, Virtualbox
n Máquinas virtuais de aplicação ¡ Suporte apenas a aplicações específicas. ¡ Java, Wine.
67
Java Virtual Machine
Plataforma Java
Arquivos Java “.class”
Ambiente de Desenvolvimento