59
Sistemas Operacionais Estruturas de Sistemas Operacionais Prof. Cid R Andrade [email protected] http://blog.cidandrade.pro.br

Estruturas de Sistemas Operacionais

Embed Size (px)

DESCRIPTION

Aula de Estruturas de Sistemas Operacionais

Citation preview

Page 1: Estruturas de Sistemas Operacionais

Sistemas Operacionais

Estruturas de Sistemas OperacionaisProf. Cid R Andrade

[email protected]://blog.cidandrade.pro.br

Page 2: Estruturas de Sistemas Operacionais

Agenda

Introdução Componentes de Sistemas Operacionais Serviços de Sistemas Operacionais Chamadas ao Sistema Programas de Sistema

Page 3: Estruturas de Sistemas Operacionais

Agenda

Estrutura do Sistema Máquinas Virtuais Java Projeto e Implementação

Page 4: Estruturas de Sistemas Operacionais

Introdução

Um sistema operacional fornece o ambiente no qual os programas são executados

A organização interna dos sistemas operacionais pode variar muito

Esta organização é definida no projeto do sistema operacional e é determinada pelo objetivo do desenvolvedor

Page 5: Estruturas de Sistemas Operacionais

Pontos de vista para análise

Examinar serviços oferecidos Analisar a interface para usuários e

desenvolvedores Analisar componentes internos e interconexões

Page 6: Estruturas de Sistemas Operacionais

Componentes do Sistema

Gerência de Processos Gerência da Memória Principal Gerência de Arquivos Gerência do Sistema de E/S Gerência de Armazenamento Secundário Redes Sistema de Proteção Sistema Interpretador de Comandos

Page 7: Estruturas de Sistemas Operacionais

Gerência de Processos

A grosso modo, um processo seria um programa em execução

Um processo pode precisar de recursos que são alocados durante sua execução

Recursos reutilizáveis são solicitados de volta ao término do processo

Um programa pode utilizar mais de um processo para sua execução

Page 8: Estruturas de Sistemas Operacionais

Gerência de Processos

Um sistema operacional, ao executar, contém uma coleção de processos

Alguns são processos de sistema Outros são processos de usuário

A Gerência de Processos é responsável por Criar e excluir processos de usuário e de sistema Suspender e retomar processos Fornecer mecanismos para sincronização e

comunicação entre processos e tratamento de deadlocks

Page 9: Estruturas de Sistemas Operacionais

Gerência da Memória Principal

A memória principal é um grande vetor de palavras ou bytes

Cada palavra ou byte tem seu próprio endereço A memória principal costuma ser o único

dispositivo de grandes proporções que a UCP pode endereçar e acessar diretamente

Para melhorar utilização da UCP e velocidade de resposta mantém-se vários programas ao mesmo tempo na memória

Page 10: Estruturas de Sistemas Operacionais

Gerência da Memória Principal

Existem muitos algoritmos diferentes para gerência da memória principal

A gerência de memória principal é responsável por

Manter registro de quais partes da memória estão em uso e por quem

Decidir quais processos devem ser carregados no espaço disponível

Alocar e desalocar espaço

Page 11: Estruturas de Sistemas Operacionais

Gerência de Arquivos

Um dos componentes mais visíveis do sistema operacional

Arquivos são armazenados em diferentes meios físicos

Cada meio e controlado por um dispositivo O sistema operacional abstrai as propriedades

físicas de cada dispositivo para fornecer acesso aos arquivos

Page 12: Estruturas de Sistemas Operacionais

Gerência de Arquivos

Arquivo é uma coleção de dados relacionados definidos por seu criador

Geralmente o arquivo representa programas ou dados (numéricos, alfabéticos ou alfanuméricos)

Arquivos podem ter forma livre ou rígida Arquivos são geralmente organizados em

diretórios Acesso deve ser controlado por usuário

Page 13: Estruturas de Sistemas Operacionais

Gerência de Arquivos

Gerência de Arquivos é responsável por Criação e exclusão de arquivos Criação e exclusão de diretórios Fornecer suporte para manipulação de arquivos e

diretórios Mapear arquivos no armazenamento secundário

Page 14: Estruturas de Sistemas Operacionais

Gerência do Sistema de E/S

Subsistema de E/S consistem em Comunicar-se com as Gerências de Memória

Principal, Arquivos e Armazenamento Secundário para implementar buffering, cache e spooling

Interface geral de driver de dispositivo Drivers para dispositivos de hardware específicos

Apenas os drivers de dispositivo conhecem as peculiaridades do dispositivo específico

Page 15: Estruturas de Sistemas Operacionais

Gerência de Armazenamento Secundário

A memória principal é pequena para acomodação de todos dados e programas e é volátil

O sistema de computação fornece armazenamento secundário para dar suporte à memória principal

Page 16: Estruturas de Sistemas Operacionais

Gerência de Armazenamento Secundário

A Gerência de Armazenamento Secundário é responsável por

Gerência de espaço livre Alocação de espaço

O desempenho de um sistema de computação pode depender muito da velocidade do subsistema de disco e dos algoritmos que manipulam este subsistema

Page 17: Estruturas de Sistemas Operacionais

Redes

Processadores de sistemas distribuídos são conectados por redes de comunicação

O projeto da rede de comunicação deve considerar

Estratégias de conexão Roteamento de mensagens Problemas de disputa Segurança

Page 18: Estruturas de Sistemas Operacionais

Sistema de Proteção

Um sistema de computação pode ter vários usuários e permitir execução concorrente de múltiplos processos

Neste caso os processo precisam ser protegidos das atividades uns dos outros

Arquivos, segmentos de memória, UCP e outros recursos devem ser operados apenas pelos processos que tenham autorização adequada do sistema operacional

Page 19: Estruturas de Sistemas Operacionais

Sistema de Proteção

Proteção é qualquer mecanismo para controle de acesso de programas, processos ou usuários ao recursos de um sistema de computação

Page 20: Estruturas de Sistemas Operacionais

Sistema Interpretador de Comandos

Interface entre usuário e sistema operacional Alguns sistemas operacionais incluem o

interpretador de comandos no kernel Outros, como DOS e UNIX, tratam o

interpretador de comandos como um programa especial

Pode ser chamado de Interpretador de Linha de Comandos ou de shell

Page 21: Estruturas de Sistemas Operacionais

Sistema de Interpretador de Comandos

A função do Interpretador de Comandos é obter comandos e executá-los

Um interpretador de comandos amigável torna o uso do sistema mais agradável. São exemplos as interfaces do Macintosh ou do Windows

Há usuários que apreciam shells mais poderosos e complexos, como os do DOS ou UNIX

Page 22: Estruturas de Sistemas Operacionais

Serviços de Sistemas Operacionais

Para conveniência do programador e usuário Execução de programas Operações de E/S Manipulação do Sistema de Arquivos Comunicação entre Processos Detecção de Erros

Page 23: Estruturas de Sistemas Operacionais

Serviços para Sistemas Operacionais

Para operação eficiente do sistema Alocação de recursos Contabilização Proteção

Page 24: Estruturas de Sistemas Operacionais

Chamadas ao Sistema

Também chamadas System Calls Fornecem interface entre processos e o

sistema operacional Geralmente disponíveis como instruções em

Assembly e listadas nos manuais para programadores Assembly

Page 25: Estruturas de Sistemas Operacionais

Chamadas ao Sistema

Chamadas UNIX podem ser feitas diretamente a partir de um programa em C ou em outras linguagens

Chamadas Windows NT são feitas por intermédio da API Win32, disponível para os compiladores

Java não permite que as chamadas ao sistema sejam feitas diretamente

Page 26: Estruturas de Sistemas Operacionais

Chamadas ao Sistema

Métodos para passar parâmetros para o sistema operacional

Passar parâmetros para registrador Armazenar parâmetros em tabelas na memória e

passar endereço da tabela para registrador Armazenar parâmetros na pilha, que será lida pelo

sistema operacional

Page 27: Estruturas de Sistemas Operacionais

Chamadas ao Sistema

Categorias Principais Controle de Processos Manipulação de Arquivos Manipulação de Dispositivos Manutenção de Informações Comunicações

Page 28: Estruturas de Sistemas Operacionais

Controle de Processos

Chamadas comuns end, abort load, execute create, terminate get attributes, set attributes wait for time wait event, signal event alocate e free memory

Page 29: Estruturas de Sistemas Operacionais

Manipulação de Arquivos

Chamadas comuns create, delete open, close read, write, reposition get attributes, set attributes

Page 30: Estruturas de Sistemas Operacionais

Manipulação de Dispositivos

Chamadas comuns request, release read, write, reposition get attributes, set attributes logically attach, logically detach

Page 31: Estruturas de Sistemas Operacionais

Manutenção de Informações

Chamadas comuns get time, get date, set time, set date get system data, set system data get process attributes, get file attributes, get device

attributes set process attributes, set file attributes, set device

attributes

Page 32: Estruturas de Sistemas Operacionais

Comunicações

Chamadas comuns create, delete communication connection send, receive messages transfer status information attach, detach remote devices

Page 33: Estruturas de Sistemas Operacionais

Programas de Sistema

Os programas de sistema fornecem um ambiente conveniente para o desenvolvimento e execução de programas.

Gerência de arquivos: criam, excluem, copiam, renomeiam, imprimem, fazem dump, listam e manipulam arquivos e diretórios

Informações de status: informam sobre data, hora, quantidade de memória, espaço em disco disponível e outros.

Page 34: Estruturas de Sistemas Operacionais

Programas de Sistema

Modificação de Arquivo: criação e modificação do conteúdo de arquivos

Suporte à linguagem de programação: compiladores, montadores e interpretadores

Carregamento e execução de programas: utilitários de carga absolutos e relocáveis, linkeditores e utilitários de carga em overlay

Comunicações: mecanismos para conexões virtuais entre processos, usuários e sistemas de computação

Page 35: Estruturas de Sistemas Operacionais

Estrutura do Sistema

Tipos de Estruturas Estrutura Simples Abordagem em Camadas Microkernels

Page 36: Estruturas de Sistemas Operacionais

Estrutura Simples

Comum em sistemas que começaram como sistemas pequenos que cresceram além do escopo original, como o DOS.

Page 37: Estruturas de Sistemas Operacionais

Abordagem em camadas

Método de modularização O sistema operacional é dividido em camadas,

cada qual construída sobre as anteriores Cada camada consiste de uma estrutura de

dados e um conjunto de rotinas que podem ser chamadas por camadas de nível mais alto

A principal dificuldade está na definição adequada das camadas. Este modelo costuma ser menos eficiente

Page 38: Estruturas de Sistemas Operacionais

Microkernels

Em meados da década de 1980, pesquisadores da Carnegie Mellon University desenvolveram o Mach, baseado no Unix e com arquitetura microkernel.

São removidos os componentes não-essenciais do kernel e implementados como programas de sistema e de nível de usuário

Page 39: Estruturas de Sistemas Operacionais

Microkernels

A principal função do microkernel é fornecer comunicação entre programa cliente e serviços em execução no espaço do usuário

O programa cliente e o serviço nunca interagem diretamente, mas por meio de troca de mensagens pelo microkernel

Page 40: Estruturas de Sistemas Operacionais

Microkernels

Novos serviços podem ser adicionados ao espaço do usuário

Modificações do kernel tendem a ser menores Projetos são mais facilmente portáveis Abordagem é utilizada pelo Unix Digital, MacOs

X Server e Minix

Page 41: Estruturas de Sistemas Operacionais

Estrutura de Sistemas

Windows NT utiliza uma estrutura híbrida. Parte da estrutura utiliza camadas, mas os subsistemas Win32, OS/2 e Posix executam no espaço do usuário e trocam mensagens pelo kernel

Page 42: Estruturas de Sistemas Operacionais

Máquinas Virtuais

Com as técnicas de escalonamento de UCP e de memória virtual, o sistema operacional pode criar ilusão de que um processo tem seu próprio processador com sua memória.

Neste caso ele fornece aos processos uma interface idêntica ao hardware. Desta forma, cada processo recebe uma cópia virtual do computador

Page 43: Estruturas de Sistemas Operacionais

Máquinas Virtuais

Page 44: Estruturas de Sistemas Operacionais

Implementação

Muito trabalho é necessário para implementar o conceito de Máquinas Virtuais

A máquina virtual precisa implementar os modos usuário e monitor

Os modos usuário virtual e monitor virtual executam em modo usuário físico

Page 45: Estruturas de Sistemas Operacionais

Benefícios

Este conceito oferece proteção total dos recursos do sistema

Não há problemas de segurança pois cada máquina virtual é completamente isolada das outras

Este é um excelente veículo para pesquisa e desenvolvimento de sistemas operacionais

Page 46: Estruturas de Sistemas Operacionais

Java

Java é uma tecnologia introduzida pela Sun Microsystems em 1995

Componentes essenciais Especificação da linguagem de programação Interface de programação de aplicações (API) Especificação da máquina virtual

Page 47: Estruturas de Sistemas Operacionais

Linguagem de Programação

Orientada a objetos Independente de arquitetura Suporta threads Segurança Robustez

Page 48: Estruturas de Sistemas Operacionais

API

API base Linguagem (lang) Gráficos (awt) E/S (io) Redes (net)

Extensão Comércio, segurança, mídia e outros

Page 49: Estruturas de Sistemas Operacionais

Máquina Virtual Java

Consiste de carregador de classes e interpretador Java

Interpretador pode Interpretar um bytecode por vez Compilar just-in-time Ser implementado em hardware

Page 50: Estruturas de Sistemas Operacionais

Ambiente de desenvolvimento

Consiste de Ambiente de compilação Ambiente de execução

O ambiente de compilação transforme um arquivo-fonte em um bytecode

O ambiente de execução carrega e interpreta os bytecodes

Page 51: Estruturas de Sistemas Operacionais

Projeto e Implementação

O primeiro objetivo do projeto é definir objetivos e especificações

Objetivos de usuário: conveniência, usabilidade, facilidade de aprender, confiabilidade, segurança e eficiência

Objetivos do sistema: facilidade de projeto, flexibilidade, confiabilidade

Page 52: Estruturas de Sistemas Operacionais

Mecanismos e Políticas

Mecanismos determinam como fazer alguma coisa

Políticas determinam o que será feito

Page 53: Estruturas de Sistemas Operacionais

Implementação

Originalmente os sistemas operacionais eram escritos em Assembly

O primeiro sistema operacional não escrito em Assembly foi o MCP, escrito em uma variante de ALGOL

Hoje os sistemas operacionais são escritos em C, C++ e Assembly apenas nos escalonadores e drivers de dispositivo

Page 54: Estruturas de Sistemas Operacionais

Implementação

Linguagens de alto nível são escritos de forma mais rápida, mais compacta, mais fácil de entender e de depurar

Os inconvenientes são desempenho reduzido e maiores requisitos de armazenamento

Page 55: Estruturas de Sistemas Operacionais

Geração do sistema

Em geral os sistemas operacionais são projetados para executar em qualquer máquina de determinada classe, com distintas configurações

Em cada local de instalação o sistema deve ser gerado e configurado. Este processo é denominado Geração de Sistema (Sysgen)

Page 56: Estruturas de Sistemas Operacionais

Geração de Sistema

Dados a serem determinados Tipo, opções e quantidade de UCP Quantidade de memória disponível Periféricos disponíveis, seus endereços,

interrupções e características Opções de sistema operacional desejadas Criação do Gerenciador de Inicialização ou

Gerenciador de Boot

Page 57: Estruturas de Sistemas Operacionais

Bibliografia

SILBERSCHATZ, A.; GALVIN, P.; GAGNE, G. Sistemas Operacionais: Conceitos e Aplicações. Tradução de Applied operating system concepts por Adriana Rieche. Rio de Janeiro: Campus, 2000. 585 p.

Observação: As imagens utilizadas nesta apresentação foram obtidas da fonte aqui citada

Page 58: Estruturas de Sistemas Operacionais

Avisos legais

Todas as marcas citadas são propriedade de seus respectivos proprietários

Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-Uso Não-Comercial-Vedada a Criação de Obras Derivadas 3.0. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/ ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

Page 59: Estruturas de Sistemas Operacionais

Sistemas Operacionais

Estruturas de Sistemas OperacionaisProf. Cid R Andrade

[email protected]://blog.cidandrade.pro.br