Buscar

SO_04 - Serviços do SO.pdf

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Operacionais
Prof. Fernando Eryck
2012.2
Redes de Computadores
SUMÁRIO
� Componentes de um SO 
�Serviços do Sistema
�Chamadas de Sistema
�Diferentes Estruturas de S.O
�Máquinas Virtuais
Serviços do Sistema Operacional
�Execução de programas
�O sistema deve ser capaz de carregar um programa na memória
�O programa deve poder terminar sua execução de modo normal ou 
anormal (indicando erro)anormal (indicando erro)
�Controle de operações de E/S
� Um programa em execução pode requerer I/O. 
� I/O pode envolver um arquivo ou dispositivo
�Manipulação de arquivos e sistemas de arquivos
�Os programas precisam ler , gravar, criar e apagar arquivos pelo 
nome
Serviços do Sistema Operacional
�Comunicação (local e em rede) 
� Comunicação entre processos sendo executados em um mesmo 
computador
� Comunicação entre processos sendo executados em computadores � Comunicação entre processos sendo executados em computadores 
diferentes, interligados por uma rede.
�Deteccção de erros
� Erros no hardware (memória, fonte, dispositivos, etc)
� Erro no programa do usuário
� Para cada tipo de erro, o sistema operacional tem que executar a 
ação apropriada, de modo a garantir o processamento correto e 
contínuo
Serviços Adicionais do SO
� Alguns serviços não focam no usuário diretamente, mas 
garantem a operação eficiente do próprio sistema opercional
�Alocação de recursos
� CPU, memória, armezanamento, etc� CPU, memória, armezanamento, etc
�Contabilidade
� N. Usuários, recursos utilizados, erros, etc.
�Proteção
� Segurança do sistema
Chamadas de Sistema (System Calls)
�Intruções privilegiadas
�Surgiram com os sistemas multiprogramados para garantir que a 
atividade errônea ou maliciosa de um programa não cause 
interferência ou destruição do outrointerferência ou destruição do outro
� Introduz-se no hardware dois estágios: modo usuário e modo 
núcleo
�Para executar uma instrução privilegiada, o usuário é obrigado a 
mudar o estado da máquina para núcleo através de instrução do 
tipo “chamadas ao sistema” que desvia o programa para uma 
rotina do S.O
Chamadas ao Sistema (System Calls)
�Chamadas ao Sistema 
�É forma como os programas solicitam serviços ao SO e, por isso, é 
conhecida como a interface entre os programas que estão 
rodando e o sistema operacionalrodando e o sistema operacional
�Elas desenvolvem o acesso aos dados e recursos que usuários não 
podem acessar diretamente. 
�Ex.:
�Criação de um novo processo
�Leitura e escrita de blocos de arquivos no disco
�Estabelecimento de uma conexão de rede com um computador 
remoto
Chamadas ao Sistema (System Calls)
�Chamadas ao Sistema (cont.)
�Quando uma chamada ao sistema é realizada, um chaveamento 
do modo usuário para o modo núcleo (ou kernel) é 
automaticamente realizada através de uma interrupção de automaticamente realizada através de uma interrupção de 
software conhecida como trap.
�As chamadas ao sistema estão disponíveis em assembly mas 
muitos sistemas como Unix e Windows também as disponibilizam 
em linguagem de alto nível como C, C++ e Perl.
Chamadas ao Sistema (System Calls)
�Chamadas ao Sistema: Exemplo
�Os programas utilizam constante chamadas ao sistema, escondidas do 
programador pelos compiladores. Por exemplo, para realizar uma simples 
leitura em um arquivo várias chamadas ao sistema são utilizadas:
� Para solicitar que o usuário informe o nome do arquivo usa-se uma 
chamada para escrever na tela e outra para realizar a leitura do teclado;
� Para realizar a operação de leitura, uma chamada é realizada para abrir o 
arquivo, outra para ler os dados do arquivo. Se o arquivo não existir, uma 
chamada é utilizada para realizar o término anormal do processo;
� Para fechar o arquivo utiliza-se outra chamada ao sistema;
� E, finalmente, para imprimir uma mensagem na tela outra chamada é 
realizada.
Chamadas ao Sistema (System Calls)
�Chamadas ao Sistema: Passagem de parâmetros
�Diretamente através de registradores;
�Através de blocos ou tabelas em memória;
�Através da pilha em execução
• Registradores = Memória interna mínima localizada na CPU
• Tabelas em memória = Memória
• Pilhas = Área de memória reservada pelo S.O/programas como área de arquivamento 
temporário
Chamadas ao Sistema (System Calls)
Passagem de parâmetros em forma de tabela
Tipos de Chamadas de Sistema 
�Chamadas ao Sistema: Tipos
�Controle de processos
�Gerência de arquivos
�Gerência de dispositivos
�Manutenção de informações do sistema
�Comunicação
Tipos de Chamadas de Sistema 
�Controle de processos
�End - finalização ordenada de um processo 
� Abort - finalização de um processo devido a um erro 
� Load – Permite carregar um programa em memória 
�execute – Executa de forma controlada um outro programa
�Create – Criação de um novo processo
� terminate – Força a finalização de outro processo filho do 
processo evocado
Tipos de Chamadas de Sistema 
�Controle de processos (cont.)
�Wait time – suspende a execução de um processo durante um 
tempo determinado
�Wait event – Bloqueia um programa até que um determinado �Wait event – Bloqueia um programa até que um determinado 
evento aconteça.
�Ex.: Um outro processo filho termine / Receba um sinal
�Wait signal – permite sinalizar a ocorrência de um evento ao SO
�Allocate, free memory – Alocar e liberar memória
Tipos de Chamadas de Sistema 
�Gerenciamento de arquivos
�Create, delete
�Open, close
�Read, write, reposition
�Get/set attributes
�Ex.: Nome, tipo, permissões
Tipos de Chamadas de Sistema 
�Gerenciamento de dispositivos
�Request – Solicita ao SO acesso exclusivo a um dispositivo
�Release – Sinaliza ao SO que já não necessita de um determinado 
recursorecurso
�Read, write, reposition 
�Get/set attributes
Tipos de Chamadas de Sistema 
�Gerenciamento de informações
�Get /set time or date
�Get / set system data
�Permite escrever ou ler dados internos do SO
�Get/set process, file or device attributes 
�Permite escrever e ler os atributos
Tipos de Chamadas de Sistema 
�Gerenciamento de Comunicação
�Open, accept, close, wait for connection
�Send, receive messages 
�Transfer status information
Tipos de Chamadas de Sistema 
�Gerenciamento de Comunicação
�Modelo de Comunicações 
�Passagem de mensagens – útil quando pequenas quantidades 
de dados precisam ser trocadas / Para comunicação entre 
computadorescomputadores
�Memória compartilhada – permite máxima velocidade e 
eficiência de comunicação
Programas de Sistema 
�Programas de sistema proporcionam um ambiente 
eficiente para o desenvolvimento e execução de programas
�Acabam por definir o S.O na visão dos usuários
�Manipulação de arquivos�Manipulação de arquivos
� Informações de status do sistema
�Modificação de arquivos
�Suporte a linguagens de programação
�Controle e execução de programas
�Comunicação
�Aplicações de uso comum
Estrutura do S.O 
�Sistemas operacionais estão entre os sistemas de 
software mais complexos existentes
�No passado, eram escritos como um único programa, em 
linguagem de máquinalinguagem de máquina
�O aumento da complexidade levou à busca por outras formas de 
organização interna
�Estrutura Simples (Monolítico)
� Camadas
�Micro-kernel
�Máquinas virtuais 
Sistema Monílitico
�Organização monolítica é a mais comum – Um sistema 
operacional é estruturado como um conjunto de procedimentos, 
sendo que cada procedimento pode chamar os demais sempre 
que necessário
� Pode ser comparada como uma aplicação formada por vários 
procedimentos que são compilados separadamente e depois 
linkados formando um grande e único programa executável
�Não há estruturação�Grande desempenho
�Uma falha pode paralisar todo o núcleo
Sistema Monílitico
System Calls
aplicaçãoaplicação
Modo usuário
Modo Kernel
Hardware
Estrutura do MS-DOS (Monolítica)
�Escrito para microprocessadores simples, com 
poucos recursos de proteção
�Máximo de funcionalidade no menor espaço
�Não é dividido em camadas ou módulos�Não é dividido em camadas ou módulos
�Apesar de ter alguma estrutura, interfaces e níveis de 
funcionalidade não são bem definidos nem isolados (inclusive por 
limitações dos computadores em que executava)
Estrutura de Camadas do MS-DOS
Sistema Monolítico - Unix
�Originalmente limitado pelo HW da época. Com o tempo foi 
crescendo e gerando versões diferentes
�O linux é derivado conceitualmente do Unix, apesar de ter sido 
desenvolvido separadamentedesenvolvido separadamente
�Originalmente, é composto por duas partes principais apenas:
� O núcleo do sistema ou kernel
� Os programas do sistema: shells, editores, etc.
Sistema Monolítico - Unix
Estrutura em camadas
�O S.O é dividido em níveis, cada um construído sobre os níveis 
inferiores
� O nível 0 é o hardware
� O nível mais alto é a interface com o usuário� O nível mais alto é a interface com o usuário
�Vantagens 
�Com a modularidade, cada nível se torna mais fácil de construir, 
usando as funções e/ou operações dos níveis inferiores
� isola o sistema operacional, facilitando sua alteração e depuração, 
além de criar uma hierarquia de níveis de modos, protegendo as 
camadas mais internas
Estrutura em camadas
�Desvantagem - o empilhamento de várias camadas de software 
faz com que cada pedido de uma aplicação demore mais tempo 
para chegar até o dispositivo periférico ou recurso a ser acessado, 
prejudicando o desempenho do sistema
Estrutura em camadas
Estrutura em camadas
Arquitetura do Android - SO da Google
Estrutura em camadas do Unix
Estrutura em Micro-kernel
�Sistemas com muita funcionalidade dentro do kernel podem ser 
tornar muito complexos
�Método que estrutura o sistema operacional removendo todos 
os componentes não essenciais do kernel e implementa estes os componentes não essenciais do kernel e implementa estes 
como programas de nível de sistema e de usuário
�Tarefas são executadas por processos que trocam mensagens 
entre si
�Menos código em modo protegido (kernel)
�Mais fácil de estender (novos processos)
�Mais fácil de portar para outras arquiteturas
Estrutura em Micro-kernel
�Novos serviços são adicionados ao espaço do usuário, não 
exigindo modificação do kernel
�Caso o kernel precise ser modificado, as mudanças são menores 
– o microkernel é um kernel reduzido– o microkernel é um kernel reduzido
�Proporciona maior segurança e confiabilidade – a maioria dos 
serviços operam como processos do usuário
�Se um serviço falhar, o restante do SO permanecerá intocável
� Ex.: Apple MacOS X, Tru64Unix, QNX, WinNT (Híbrida)
Estrutura em Micro-kernel do Mach
Estrutura inicial do Windows NT
Máquinas Virtuais
�Extensão do enfoque em camadas?
�Um S.O pode ser colocado sobre uma outra camada que o 
separa do HW
�Uma máquina virtual é uma abstração de SW e HW oferecida �Uma máquina virtual é uma abstração de SW e HW oferecida 
para um S.O como se fosse a máquina pura onde ele espera 
executar
�O nível inferior (que cria as máquinas virtuais) oferece uma 
interface equivalente ao HW
�Diversos S.O podem executar de forma protegida uns dos outros
Máquinas Virtuais
�Os recursos do computador real são compartilhados entre as 
máquinas virtuais
�Escalonamento da CPU pode dar a impressão que cada S.O 
tem seu próprio processadortem seu próprio processador
�Recursos restritos podem ser virtualizados de forma que 
cada S.O veja um recurso só seu.
Máquinas Virtuais
Máquinas Virtuais
�Conceito originalmente utilizado em mainframes IBM (VM/CMS)
�Cada usuário tinha a visão que seu terminal se comportava 
como um computador individual
�Na verdade, os terminais estavam ligados a um grande �Na verdade, os terminais estavam ligados a um grande 
mainframe que executava as máquinas virtuais
�Impressoras e leitoras de cartões eram virtualmente 
conectadas a cada máquina virtual
Máquinas Virtuais
�Máquinas virtuais são completamente isoladas do HW real e das 
demais máquinas
�A camada de virtualização adiciona overheads
�Não é possível compartilhar recursos de forma flexível – cada �Não é possível compartilhar recursos de forma flexível – cada 
máquina tem sua cota do recurso
�Recurso muito útil para pesquisa e desenvolvimento de S.O
�Não exige HW isolado para desenvolvimento de testes
�Implementação é díficl pelo esforço necessário para isolar e 
duplicar o HW
Máquina Virtual Java
�Máquina virtual do tipo interpretado
�Permite os programas em java funcionar em qualquer 
plataforma de hardware e software
�Programas java são compilados para instruções (bytecode) de �Programas java são compilados para instruções (bytecode) de 
uma máquina virtual java (JVM)
�Um interpretador que carrega e executa aplicativos em Java, 
onde este converte os bytecode em códigos executáveis de 
máquina
�Compiladores just-in-time (JIT) aumentam o desempenho 
�Transformam bytecode em instruções da máquina real
Máquina Virtual Java (JVM)

Outros materiais