SlideShare una empresa de Scribd logo
1 de 43
Visão Geral: Estruturas do Sistema
Operacional
Sistemas Operacionais I
Prof. Alexandre Duarte : http://alexandrend.com
Centro de Informática | Universidade Federal da Paraíba
Estes slides são baseados no material que acompanha o livro Operating
Systems Concepts de Silberschatz, Galvin and Gagne
Objetivos
 Descrever os serviç os que o sistema
operacional oferece para usuários, processos e
outros sistemas
 Discutir as várias maneiras de estruturar um
sistema operacional
 Explicar como um sistema operacional é
instalado, customizado e inicializado
Serviços do sistema operacional
Serviços do sistema operacional:
comodidade do usuário
 Interface do usuário
 Quase todo sistema operacional oferece uma
 Varia entre interface de linha de comando (CLI), interface gráfica (GUI) e Batch
 Execuç ão de programas
 O sistema deve ser capaz de carregar um programa na memó ria e iniciar e
finalizar sua execuç ão com ou sem sucesso (indicando caso ocorra um erro)
 Operaç ões de E/S
 Um programa em execuç ão pode precisar realizar E/S, o que pode envolver um
arquivo ou algum dispositivo de E/S
 Manipulaç ão do Sistema de Arquivos
 O sistema de arquivos é de particular interesse. Obviamente, programas
precisam realizar uma série de operaç ões envolvendo arquivos e diretó rios,
incluindo: ler, gravar, criar, apagar, localizar, listar informaç ões e gerenciar
permissões
Serviços do sistema operacional:
comodidade do usuário
 Comunicaç ão
 Processos podem trocar informaç ão em um mesmo computador
ou através de uma rede
 A comunicaç ão pode ser realizada através de uma memó ria
compartilhada ou por troca de mensagens
 Detecç ão de erros
 O SO precisa estar constantemente ciente sobre possíveis erros
 Podem ocorrer na CPU, no hardware de memó ria, nos
dispositivos de E/S ou em um programa do usuário
 Para cada tipo de erro o SO deve tomar a medida apropriada
para garantir uma computaç ão correta e consistente
 Mecanismos de depuraç ão podem melhorar significativamente a
habilidade do usuário de fazer uso eficiente do sistema
Serviços do sistema operacional: operação
eficiente do sistema
 Alocaç ão de recursos
 Quando múltiplos usuários ou múltiplos jobs utilizam o sistema de forma
concorrente os recursos precisam ser alocados para cada um deles
 Contabilidade
 Controlar quanto de cada tipo de recurso os usuários utilizam
 Proteç ão e Seguranç a
 Os donos da informaç ão armazenada em um sistema com múltiplos usuários ou
em um computador conectado a rede podem desejar controlar o uso da
informaç ão
 Proteç ão envolve garantir que todo acesso a qualquer recurso do sistema é
controle
 Seguranç a do sistema contra intrusos requer autenticaç ão e se estende para
proteger dispositivos de E/S externos contra acessos inválidos
Interface do usuário: CLI
 Uma interface de linha de comando (CLI) ou
interpretador de comandos permite o
fornecimento direto de comandos ao sistema
 Algumas vezes são implementados no núcleo, algumas
vezes são implementados como programas do usuário
 Algumas vezes têm-se muitas variaç ões: shells
 Inicialmente recebe um comando do usuário e o executa
 Os comandos podem ser comandos internos do SO ou
apenas nomes de programas
 No segundo caso, adicionar novas funcionalidades ao
sistemas não requer alteraç ões no shell
Interface do usuário: GUI
 Uma metáfora mais amigável para a interface com o usuário
(desktop)
 Geralmente inclui mouse, teclado e monitor
 Icones representam arquivos, programas, aç ões ,etc
 Diferentes botões do mouse causam aç ões diferentes no objetos
da interface
 Conceito criado no Xerox PARC
 Muitos sistemas incluem tanto CLIs quanto GUIs
 Microsoft Windows tem uma GUI com um shell de comando
 Mac OS X da Apple usa a GUI “Aqua” com um kernel UNIX por
baixo e vários shells disponíveis
 Solaris tem uma CLI como GUIs opcionais (Java Desktop, KDE)
Interpretador de comando bash
GUI do Mac OS X
Chamadas de sistema
 Interface de programaç ão para os serviç os oferecidos pelo SO
 Geralmente escrita em uma linguagem de alto nível (C, C++)
 Na maioria das vezes são utilizadas pelos programas através de
uma Application Program Interface (API) de mais alto nível ao invés
de serem chamadas diretamente
 As três APIs mais comuns são Win32 API do Windows, POSIX API
para sistemas POSIX-based (incluindo praticamente todas as
versões do UNIX, Linux, e Mac OS X), e a API Java para a Java
Virtual Machine (JVM)
 Por que usar APIs ao invés de chamadas de sistema?
Implementação de chamadas de
sistema
 Tipicamente, cada chamada de sistema possui um número
associado
 A interface de chamada de sistemas mantém uma tabela
indexada com esses números
 A interface de chamada de sistema invoca a chamada
desejada no kernel do SO e retorna o estado e valores de
retorno para o usuário
 Quem faz a chamada não precisa ter qualquer informação
sobre como a chamada de sistema foi implementada
 Precisa apenas conhecer a interface e saber o que o SO fará
como resultado da chamada
 A maioria dos detalhes do SO ficam escondidos dos usuários
atrás de APIs
Relação entre API e chamada de
sistema
Exemplo: biblioteca padrão de C
 Programa em C invocando a funç ão printf(), que utiliza a
chamada de sistema write()
Passagem de parâmetros em chamadas de
sistema
 Frequentemente a execuç ão de uma chamada de
sistema requer mais do que a identificaç ão da chamada
desejada
 Existem três métodos comuns para passagem de
parâmetros para o SO
 Mais simples: passar os parâmetros em registradores
 Parâmetros armazenados em um bloco ou tabela na memó ria e
o endereç o do bloco passado através de um registrador
 Parâmetros inseridos em uma pilha pelo programa e
desempilhados pelo sistema operacional
 O método do bloco e da pilha não limitam o número ou
tamanho dos parâmetros
Passagem de parâmetros via tabela
Tipos de chamadas de sistema
 Controle de processos
 Gerencia de arquivos
 Gerencia de dispositivos
 Manutenç ão da informaç ão
 Comunicaç ão
 Proteç ão
Exemplos de chamadas de sistema do
Windows e Linux
Execução do MS-DOS
Apó s o boot Rodando um processo
FreeBSD rodando múltiplos
processos
Programas de sistema
 Programas de Sistema fornecem um ambiente conveniente para o
desenvolvimento e execuç ão de programas.
 Podem ser divididos em 7 categorias:
 Manipulaç ão de arquivos
 Informaç ões de estado
 Modificaç ão de arquivos
 Suporte a linguagens de programaç ão
 Carga e execuç ão de programas
 Comunicaç ão
 Aplicativos
 A visão que a maioria dos usuários tem do SO é definido pelos programas
de sistema e não pelas chamadas de sistema
Programas de sistema
 Fornecem um ambiente conveniente para desenvolvimento e execuç ão
de programas
 Alguns são apenas interfaces para chamadas de sistema; outros são
consideravelmente mais complexos
 Gerencia de arquivos: criar, remover, copiar, renomear, imprimir, listar,
e manipular arquivos e diretó rios
 Informaç ões de estado
 Consulta de informaç ões do sistema: data, hora, quantidade de memó ria
disponível, espaç o em disco, número de usuários
 Informaç ões detalhadas de desempenho, registro de execuç ão e depuraç ão
 Tipicamente estes programas formatam e imprimem informaç ões na saída
padrão
 Alguns sistemas podem implementar um registro, utilizado para armazenar
informaç ões de configuraç ão
Programas de sistema
 Modificaç ão de arquivos
 Editores de texto para criar e modificar arquivos
 Comandos especiais para localizar conteúdo em arquivos e realizar
transformaç ões no texto
 Suporte a linguagens de programaç ão
 Compiladores, montadores, depuradores, interpretadores
 Carga e execuç ão de programas
 Carregadores absolutos, carregadores com relocaç ão, editores de ligaç ão
 Comunicaç ão
 Prover mecanismos para criar conexões virtuais entre processos, usuários e
sistemas computacionais
 Permitir que usuários enviem mensagens para outros usuários, naveguem
em páginas na web, se conectem remotamente, transfiram arquivos de um
máquina para outra, etc
Projeto e implementação de sistemas
operacionais
 Não háuma soluç ão única universalmente aceita para o projeto e
desenvolvimento de sistemas operacionais mas algumas
abordagens têm sido utilizadas com sucesso
 A estrutura interna dos sistemas operacionais pode variar
amplamente
 Inicia-se pela definiç ão de objetivos e especificaç ões
 Afetada pela escolha do hardware e pelo tipo do sistema
 Requisitos do usuário e Requisitos do Sistema
 Requisitos do usuário: o SO deve ser conveniente, fácil de
aprender, confiável, seguro e rápido
 Requisitos do sistema: o SO deve ser fácil de projetar,
implementar e manter e também flexível, confiável, sem erros e
eficiente
Projeto e implementação de sistemas
operacionais
 Um princípio importante é separar política de
mecanismo
Política: O que seráfeito?
Mecanismo: Como fazer ?
 Mecanismos determinam como fazer algo,
políticas decidem o que deve ser feito
 A separaç ão de política de mecanismo é importante
pois permite uma maior flexibilidade caso decisões
políticas precisem ser alteradas mais tarde
Estrutura simples
 MS-DOS – escrito para prover o máximo de
funcionalidade utilizando o mínimo possível de
memó ria
 Não foi dividido em mó dulos
 Apesar de o MS-DOS ter alguma estrutura, suas
interfaces e funcionalidades não são bem
separadas
Estrutura em camadas do MS-DOS
Abordagem de camadas
 O sistema operacional é dividido em um número
de camadas (níveis), cada uma construída sobre
camadas inferiores.
 A camada mais baixa (camada 0) é o hardware
 A camada mais alta (camada N) é a interface do
usuário
 Como modularidade, camadas são selecionadas
de forma que uma cada só utilize serviç os e
funç ões de camadas de nível inferior
Camadas de um sistema operacional
UNIX
 Por conta de limitaç ões na funcionalidade do
hardware, o UNIX original tinha estruturaç ão
limitada.
 O UNIX é composto por duas partes distintas
 Programas de sistema
 Núcleo (kernel)
 Formado por tudo localizado abaixo da interface de
chamada de sistemas e acima do hardware
 Fornece o sistema de arquivos, escalonamento de CPU,
gerenciamento de memó ria, e outras funç ões do SO
 Um número muito grande de funç ões para um único nível
Estrutura de um sistema UNIX
tradicional
Estrutura de microkernel
 Move o máximo possível de funcionalidades do kernel para o
espaço do usuário
 Utiliza mecanismos de comunicação por troca de mensagens
para permitir a interoperação dos mó dulos
 Benefícios:
 Mais fácil estender um microkernel
 Mais fácil portar o sistema operacional para novas arquiteturas
 Mais confiável (menos có digo rodando em modo kernel)
 Mais seguro
 Desvantagens:
 Perda de desempenho por conta da comunicaç ão entre os
mó dulos em modo kernel e modo usuário
Módulos
 A maioria dos sistemas operacionais
modernos implementam mó dulos de kernel
 Abordagem orientada a objetos
 Cada componente chave é separado dos demais
 Conversam entre si através de interfaces bem
definidas
 Cada um pode ser carregado no kernel apenas
quando necessário
 De forma geral é similar ao uso de camadas
mas mais flexível
Abordagem em módulos do Solaris
Máquinas virtuais
 Uma máquina virtual leva a abordagem de camadas ao seu
limite. Ele trata o hardware e o kernel do sistema operacional
como se fossem ambos hardware
 A interface de uma máquina virtual fornece uma interface
idêntica ao hardware
 O sistema operacional hospedeiro (host) cria a ilusão de que
um processo tem seu pró prio processador e memó ria
 Cada convidado (guest) recebe sua pró pria có pia (virtual)
do computador
Histórico e benefícios das máquinas virtuais
 Apareceram inicialmente em 1972 em mainframes da IBM
 Consiste, fundamentalmente, em múltiplos ambientes de
execuç ão (sistemas operacionais diferentes) compartilhando o
mesmo hardware
 Protege um ambiente do outro
 Permite compartilhamento de arquivos
 Se comunicam entre si e com outros sistemas através da rede
 Consolidaç ão de muitos sistemas com pouca demanda de
recursos em poucos computadores com muitos recursos
 Muito útil para desenvolvimento e testes
 O padrão “Open Virtual Machine Format”, permite que uma
máquina virtual possa ser executada por diferentes
plataformas de virtualização
Máquinas virtuais
Para-virtualização
 Apresenta aos guests uma visão similar mas
não idêntica do hardware
 Os guests precisam ser modificados para
rodar em hardware para-virtualizado
Arquitetura do VMWare
A máquina virtual Java

Más contenido relacionado

La actualidad más candente

Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Leinylson Fontinele
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a InformáticaDaniel Brandão
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10ºteacherpereira
 
Conceitos BáSicos
Conceitos BáSicosConceitos BáSicos
Conceitos BáSicosNuno Antunes
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informáticasocrahn
 
Seguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - NovoSeguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - NovoLuiz Arthur
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Leinylson Fontinele
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 

La actualidad más candente (20)

Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Clock
ClockClock
Clock
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
Evolução do windows
Evolução do windows Evolução do windows
Evolução do windows
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
 
Informática Básica - Aula 04 - Software
Informática Básica - Aula 04 - SoftwareInformática Básica - Aula 04 - Software
Informática Básica - Aula 04 - Software
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10º
 
Conceitos BáSicos
Conceitos BáSicosConceitos BáSicos
Conceitos BáSicos
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informática
 
Seguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - NovoSeguranca da Informação - Introdução - Novo
Seguranca da Informação - Introdução - Novo
 
Principais protocolos de rede
Principais protocolos de redePrincipais protocolos de rede
Principais protocolos de rede
 
Scratch cap-1
Scratch cap-1Scratch cap-1
Scratch cap-1
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
História do windows
História do windowsHistória do windows
História do windows
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Virtualização - Máquinas Virtuais
Virtualização - Máquinas VirtuaisVirtualização - Máquinas Virtuais
Virtualização - Máquinas Virtuais
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 

Similar a Visão Geral: Estruturas do Sistema Operacional

Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisCid de Andrade
 
Sistemas Operacionais parte 2
Sistemas Operacionais  parte 2Sistemas Operacionais  parte 2
Sistemas Operacionais parte 2Matheus Brito
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosJoseVieira75
 
Introdução a Sistemas Operacionais
Introdução a Sistemas OperacionaisIntrodução a Sistemas Operacionais
Introdução a Sistemas OperacionaisLabin2bpm
 
Sistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago FalcãoSistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago FalcãoCamila Seródio
 
TA1 Slides Acessibilidade - Preto e Branco.pdf
TA1 Slides Acessibilidade - Preto e Branco.pdfTA1 Slides Acessibilidade - Preto e Branco.pdf
TA1 Slides Acessibilidade - Preto e Branco.pdfSandroPolizelLaurent
 
Sistemas Operacionais aula 02
Sistemas Operacionais  aula 02 Sistemas Operacionais  aula 02
Sistemas Operacionais aula 02 Diego Rodrigues
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Questoesde fso
Questoesde fsoQuestoesde fso
Questoesde fsopaulocsm
 
Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturasFábio Andrade
 
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSilvano Oliveira
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema OperacionalCláudia Costa
 

Similar a Visão Geral: Estruturas do Sistema Operacional (20)

Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
Sistemas Operacionais parte 2
Sistemas Operacionais  parte 2Sistemas Operacionais  parte 2
Sistemas Operacionais parte 2
 
SO - Aula 02 - Conceitos
SO - Aula 02 - ConceitosSO - Aula 02 - Conceitos
SO - Aula 02 - Conceitos
 
1ª aula sistema operacional
1ª aula  sistema operacional1ª aula  sistema operacional
1ª aula sistema operacional
 
1843
18431843
1843
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Aula 02
Aula 02Aula 02
Aula 02
 
Introdução a Sistemas Operacionais
Introdução a Sistemas OperacionaisIntrodução a Sistemas Operacionais
Introdução a Sistemas Operacionais
 
S.o aula 1234
S.o aula 1234S.o aula 1234
S.o aula 1234
 
Sistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago FalcãoSistemas Operacionais - 2º unidade - Tiago Falcão
Sistemas Operacionais - 2º unidade - Tiago Falcão
 
TA1 Slides Acessibilidade - Preto e Branco.pdf
TA1 Slides Acessibilidade - Preto e Branco.pdfTA1 Slides Acessibilidade - Preto e Branco.pdf
TA1 Slides Acessibilidade - Preto e Branco.pdf
 
Sistemas Operacionais aula 02
Sistemas Operacionais  aula 02 Sistemas Operacionais  aula 02
Sistemas Operacionais aula 02
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
So cap01
So cap01So cap01
So cap01
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Questoesde fso
Questoesde fsoQuestoesde fso
Questoesde fso
 
Aula 03 isc -softwares-hardwares-arquiteturas
Aula 03   isc -softwares-hardwares-arquiteturasAula 03   isc -softwares-hardwares-arquiteturas
Aula 03 isc -softwares-hardwares-arquiteturas
 
02 so
02 so02 so
02 so
 
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdfSO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
SO01 - Sistemas-Operacionais - Introdução Historico Conceitos.pdf
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema Operacional
 

Más de Alexandre Duarte

Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosAlexandre Duarte
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Alexandre Duarte
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaAlexandre Duarte
 
Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como CiênciaAlexandre Duarte
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: IntroduçãoAlexandre Duarte
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerAlexandre Duarte
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBAlexandre Duarte
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisAlexandre Duarte
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e ClassificaçãoAlexandre Duarte
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2DAlexandre Duarte
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1DAlexandre Duarte
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de DadosAlexandre Duarte
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosAlexandre Duarte
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de SurveysAlexandre Duarte
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Alexandre Duarte
 

Más de Alexandre Duarte (20)

Projeto de Experimentos
Projeto de ExperimentosProjeto de Experimentos
Projeto de Experimentos
 
Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de Experimentos
 
Causalidade e Abdução
Causalidade e AbduçãoCausalidade e Abdução
Causalidade e Abdução
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!
 
Atividades Científica
Atividades CientíficaAtividades Científica
Atividades Científica
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de Pesquisa
 
Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como Ciência
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: Introdução
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPB
 
Agrupamento com K-Means
Agrupamento com K-MeansAgrupamento com K-Means
Agrupamento com K-Means
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis Nominais
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e Classificação
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2D
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1D
 
Transformação de Dados
Transformação de DadosTransformação de Dados
Transformação de Dados
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de Dados
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de Experimentos
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de Surveys
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01
 

Último

Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxAntonioVieira539017
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPaulaYaraDaasPedro
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...MariaCristinaSouzaLe1
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...andreiavys
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptjricardo76
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do séculoBiblioteca UCS
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeitotatianehilda
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 

Último (20)

Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 

Visão Geral: Estruturas do Sistema Operacional

  • 1. Visão Geral: Estruturas do Sistema Operacional Sistemas Operacionais I Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática | Universidade Federal da Paraíba Estes slides são baseados no material que acompanha o livro Operating Systems Concepts de Silberschatz, Galvin and Gagne
  • 2. Objetivos  Descrever os serviç os que o sistema operacional oferece para usuários, processos e outros sistemas  Discutir as várias maneiras de estruturar um sistema operacional  Explicar como um sistema operacional é instalado, customizado e inicializado
  • 3. Serviços do sistema operacional
  • 4. Serviços do sistema operacional: comodidade do usuário  Interface do usuário  Quase todo sistema operacional oferece uma  Varia entre interface de linha de comando (CLI), interface gráfica (GUI) e Batch  Execuç ão de programas  O sistema deve ser capaz de carregar um programa na memó ria e iniciar e finalizar sua execuç ão com ou sem sucesso (indicando caso ocorra um erro)  Operaç ões de E/S  Um programa em execuç ão pode precisar realizar E/S, o que pode envolver um arquivo ou algum dispositivo de E/S  Manipulaç ão do Sistema de Arquivos  O sistema de arquivos é de particular interesse. Obviamente, programas precisam realizar uma série de operaç ões envolvendo arquivos e diretó rios, incluindo: ler, gravar, criar, apagar, localizar, listar informaç ões e gerenciar permissões
  • 5. Serviços do sistema operacional: comodidade do usuário  Comunicaç ão  Processos podem trocar informaç ão em um mesmo computador ou através de uma rede  A comunicaç ão pode ser realizada através de uma memó ria compartilhada ou por troca de mensagens  Detecç ão de erros  O SO precisa estar constantemente ciente sobre possíveis erros  Podem ocorrer na CPU, no hardware de memó ria, nos dispositivos de E/S ou em um programa do usuário  Para cada tipo de erro o SO deve tomar a medida apropriada para garantir uma computaç ão correta e consistente  Mecanismos de depuraç ão podem melhorar significativamente a habilidade do usuário de fazer uso eficiente do sistema
  • 6. Serviços do sistema operacional: operação eficiente do sistema  Alocaç ão de recursos  Quando múltiplos usuários ou múltiplos jobs utilizam o sistema de forma concorrente os recursos precisam ser alocados para cada um deles  Contabilidade  Controlar quanto de cada tipo de recurso os usuários utilizam  Proteç ão e Seguranç a  Os donos da informaç ão armazenada em um sistema com múltiplos usuários ou em um computador conectado a rede podem desejar controlar o uso da informaç ão  Proteç ão envolve garantir que todo acesso a qualquer recurso do sistema é controle  Seguranç a do sistema contra intrusos requer autenticaç ão e se estende para proteger dispositivos de E/S externos contra acessos inválidos
  • 7. Interface do usuário: CLI  Uma interface de linha de comando (CLI) ou interpretador de comandos permite o fornecimento direto de comandos ao sistema  Algumas vezes são implementados no núcleo, algumas vezes são implementados como programas do usuário  Algumas vezes têm-se muitas variaç ões: shells  Inicialmente recebe um comando do usuário e o executa  Os comandos podem ser comandos internos do SO ou apenas nomes de programas  No segundo caso, adicionar novas funcionalidades ao sistemas não requer alteraç ões no shell
  • 8. Interface do usuário: GUI  Uma metáfora mais amigável para a interface com o usuário (desktop)  Geralmente inclui mouse, teclado e monitor  Icones representam arquivos, programas, aç ões ,etc  Diferentes botões do mouse causam aç ões diferentes no objetos da interface  Conceito criado no Xerox PARC  Muitos sistemas incluem tanto CLIs quanto GUIs  Microsoft Windows tem uma GUI com um shell de comando  Mac OS X da Apple usa a GUI “Aqua” com um kernel UNIX por baixo e vários shells disponíveis  Solaris tem uma CLI como GUIs opcionais (Java Desktop, KDE)
  • 10. GUI do Mac OS X
  • 11. Chamadas de sistema  Interface de programaç ão para os serviç os oferecidos pelo SO  Geralmente escrita em uma linguagem de alto nível (C, C++)  Na maioria das vezes são utilizadas pelos programas através de uma Application Program Interface (API) de mais alto nível ao invés de serem chamadas diretamente  As três APIs mais comuns são Win32 API do Windows, POSIX API para sistemas POSIX-based (incluindo praticamente todas as versões do UNIX, Linux, e Mac OS X), e a API Java para a Java Virtual Machine (JVM)  Por que usar APIs ao invés de chamadas de sistema?
  • 12. Implementação de chamadas de sistema  Tipicamente, cada chamada de sistema possui um número associado  A interface de chamada de sistemas mantém uma tabela indexada com esses números  A interface de chamada de sistema invoca a chamada desejada no kernel do SO e retorna o estado e valores de retorno para o usuário  Quem faz a chamada não precisa ter qualquer informação sobre como a chamada de sistema foi implementada  Precisa apenas conhecer a interface e saber o que o SO fará como resultado da chamada  A maioria dos detalhes do SO ficam escondidos dos usuários atrás de APIs
  • 13. Relação entre API e chamada de sistema
  • 14. Exemplo: biblioteca padrão de C  Programa em C invocando a funç ão printf(), que utiliza a chamada de sistema write()
  • 15. Passagem de parâmetros em chamadas de sistema  Frequentemente a execuç ão de uma chamada de sistema requer mais do que a identificaç ão da chamada desejada  Existem três métodos comuns para passagem de parâmetros para o SO  Mais simples: passar os parâmetros em registradores  Parâmetros armazenados em um bloco ou tabela na memó ria e o endereç o do bloco passado através de um registrador  Parâmetros inseridos em uma pilha pelo programa e desempilhados pelo sistema operacional  O método do bloco e da pilha não limitam o número ou tamanho dos parâmetros
  • 17. Tipos de chamadas de sistema  Controle de processos  Gerencia de arquivos  Gerencia de dispositivos  Manutenç ão da informaç ão  Comunicaç ão  Proteç ão
  • 18. Exemplos de chamadas de sistema do Windows e Linux
  • 19. Execução do MS-DOS Apó s o boot Rodando um processo
  • 21. Programas de sistema  Programas de Sistema fornecem um ambiente conveniente para o desenvolvimento e execuç ão de programas.  Podem ser divididos em 7 categorias:  Manipulaç ão de arquivos  Informaç ões de estado  Modificaç ão de arquivos  Suporte a linguagens de programaç ão  Carga e execuç ão de programas  Comunicaç ão  Aplicativos  A visão que a maioria dos usuários tem do SO é definido pelos programas de sistema e não pelas chamadas de sistema
  • 22. Programas de sistema  Fornecem um ambiente conveniente para desenvolvimento e execuç ão de programas  Alguns são apenas interfaces para chamadas de sistema; outros são consideravelmente mais complexos  Gerencia de arquivos: criar, remover, copiar, renomear, imprimir, listar, e manipular arquivos e diretó rios  Informaç ões de estado  Consulta de informaç ões do sistema: data, hora, quantidade de memó ria disponível, espaç o em disco, número de usuários  Informaç ões detalhadas de desempenho, registro de execuç ão e depuraç ão  Tipicamente estes programas formatam e imprimem informaç ões na saída padrão  Alguns sistemas podem implementar um registro, utilizado para armazenar informaç ões de configuraç ão
  • 23. Programas de sistema  Modificaç ão de arquivos  Editores de texto para criar e modificar arquivos  Comandos especiais para localizar conteúdo em arquivos e realizar transformaç ões no texto  Suporte a linguagens de programaç ão  Compiladores, montadores, depuradores, interpretadores  Carga e execuç ão de programas  Carregadores absolutos, carregadores com relocaç ão, editores de ligaç ão  Comunicaç ão  Prover mecanismos para criar conexões virtuais entre processos, usuários e sistemas computacionais  Permitir que usuários enviem mensagens para outros usuários, naveguem em páginas na web, se conectem remotamente, transfiram arquivos de um máquina para outra, etc
  • 24. Projeto e implementação de sistemas operacionais  Não háuma soluç ão única universalmente aceita para o projeto e desenvolvimento de sistemas operacionais mas algumas abordagens têm sido utilizadas com sucesso  A estrutura interna dos sistemas operacionais pode variar amplamente  Inicia-se pela definiç ão de objetivos e especificaç ões  Afetada pela escolha do hardware e pelo tipo do sistema  Requisitos do usuário e Requisitos do Sistema  Requisitos do usuário: o SO deve ser conveniente, fácil de aprender, confiável, seguro e rápido  Requisitos do sistema: o SO deve ser fácil de projetar, implementar e manter e também flexível, confiável, sem erros e eficiente
  • 25. Projeto e implementação de sistemas operacionais  Um princípio importante é separar política de mecanismo Política: O que seráfeito? Mecanismo: Como fazer ?  Mecanismos determinam como fazer algo, políticas decidem o que deve ser feito  A separaç ão de política de mecanismo é importante pois permite uma maior flexibilidade caso decisões políticas precisem ser alteradas mais tarde
  • 26. Estrutura simples  MS-DOS – escrito para prover o máximo de funcionalidade utilizando o mínimo possível de memó ria  Não foi dividido em mó dulos  Apesar de o MS-DOS ter alguma estrutura, suas interfaces e funcionalidades não são bem separadas
  • 27. Estrutura em camadas do MS-DOS
  • 28. Abordagem de camadas  O sistema operacional é dividido em um número de camadas (níveis), cada uma construída sobre camadas inferiores.  A camada mais baixa (camada 0) é o hardware  A camada mais alta (camada N) é a interface do usuário  Como modularidade, camadas são selecionadas de forma que uma cada só utilize serviç os e funç ões de camadas de nível inferior
  • 29. Camadas de um sistema operacional
  • 30. UNIX  Por conta de limitaç ões na funcionalidade do hardware, o UNIX original tinha estruturaç ão limitada.  O UNIX é composto por duas partes distintas  Programas de sistema  Núcleo (kernel)  Formado por tudo localizado abaixo da interface de chamada de sistemas e acima do hardware  Fornece o sistema de arquivos, escalonamento de CPU, gerenciamento de memó ria, e outras funç ões do SO  Um número muito grande de funç ões para um único nível
  • 31. Estrutura de um sistema UNIX tradicional
  • 32. Estrutura de microkernel  Move o máximo possível de funcionalidades do kernel para o espaço do usuário  Utiliza mecanismos de comunicação por troca de mensagens para permitir a interoperação dos mó dulos  Benefícios:  Mais fácil estender um microkernel  Mais fácil portar o sistema operacional para novas arquiteturas  Mais confiável (menos có digo rodando em modo kernel)  Mais seguro  Desvantagens:  Perda de desempenho por conta da comunicaç ão entre os mó dulos em modo kernel e modo usuário
  • 33.
  • 34.
  • 35.
  • 36. Módulos  A maioria dos sistemas operacionais modernos implementam mó dulos de kernel  Abordagem orientada a objetos  Cada componente chave é separado dos demais  Conversam entre si através de interfaces bem definidas  Cada um pode ser carregado no kernel apenas quando necessário  De forma geral é similar ao uso de camadas mas mais flexível
  • 37. Abordagem em módulos do Solaris
  • 38. Máquinas virtuais  Uma máquina virtual leva a abordagem de camadas ao seu limite. Ele trata o hardware e o kernel do sistema operacional como se fossem ambos hardware  A interface de uma máquina virtual fornece uma interface idêntica ao hardware  O sistema operacional hospedeiro (host) cria a ilusão de que um processo tem seu pró prio processador e memó ria  Cada convidado (guest) recebe sua pró pria có pia (virtual) do computador
  • 39. Histórico e benefícios das máquinas virtuais  Apareceram inicialmente em 1972 em mainframes da IBM  Consiste, fundamentalmente, em múltiplos ambientes de execuç ão (sistemas operacionais diferentes) compartilhando o mesmo hardware  Protege um ambiente do outro  Permite compartilhamento de arquivos  Se comunicam entre si e com outros sistemas através da rede  Consolidaç ão de muitos sistemas com pouca demanda de recursos em poucos computadores com muitos recursos  Muito útil para desenvolvimento e testes  O padrão “Open Virtual Machine Format”, permite que uma máquina virtual possa ser executada por diferentes plataformas de virtualização
  • 41. Para-virtualização  Apresenta aos guests uma visão similar mas não idêntica do hardware  Os guests precisam ser modificados para rodar em hardware para-virtualizado

Notas del editor

  1. Monolítico: Linux, Microkernel: GNU Hurd (Debian Hurd, Gentoo Hurd) Híbrido: Windows NT, Windows 8, Windows Server 2012, Windows Phone, OS X, iOS