Sistemas Operacionais

Documentos relacionados
APOSTILA 2 - TUTORIA SISTEMAS OPERACIONAIS

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 07

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

ESTRUTURA DOS SISTEMAS OPERACIONAIS

Estrutura do Sistema Operacional

Algoritmos e Lógica de Programação Sistemas Operacionais

Sistemas Operacionais. Introdução a Sistemas Operacionais

Sistemas Operacionais. Estrutura do Sistema Operacional: Modos de Acesso

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Sistemas Operacionais

Sistemas Operacionais. Estrutura do Sistema Operacional

Sistemas Operacionais. Prof. Andrique Amorim

Chamadas de Sistema (SYSCALL)

Estruturas de Sistemas Operacionais

COMPONENTES CENTRAIS DO SISTEMA OPERACIONAL. Prof. Eduardo H. S. Oliveira

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

INTRODUÇÃO A SISTEMAS OPERACIONAIS

2 - Organização do Sistema Operativo. Prof. Ricardo Silva

Estrutura do SO. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Sistemas operacionais INTRODUÇÃO

Sistemas Operacionais Aula 3

Gerência de Dispositivos. Adão de Melo Neto

Aula 2: Tipos de Sistemas Operacionais. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

SO: Introdução e Estrutura. Sistemas Operacionais Flavio Figueiredo (

Capítulo 11 Estudo de Caso 2: Windows 2000

Conceitos básicos e serviços dos Sistemas Operacionais

Sistemas de Operação

Introdução a Sistemas Operacionais

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

APOSTILA 1 - TUTORIA SISTEMAS OPERACIONAIS

Informática Sistemas Operacionais Aula 5. Cleverton Hentz

Informática básica. Professor: Francisco Ary

Thread. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Sistemas Operacionais (SO)

Sistemas Operacionais. Entrada/Saída

HISTÓRIA DOS SISTEMAS OPERACIONAIS. Prof. Alan F.M.

Sistema Operacional. O S.O. é o programa mais importante do computador. - Realizar a interação entre o usuário, o hardware e o firmware -(BIOS)

Introdução aos Sistemas Operacionais

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistema Operacional. Etapa

Sistemas Operacionais

Gerência de Dispositivos. Adão de Melo Neto

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

PROVA 03/07 Segunda-feira (semana que vem)

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

Aula 5 Arquitetura do Sistema Operacional

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais. Maria de Fátima de Freitas Bueno Marcílio

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO O SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

GERENCIAMENTO DE PROCESSOS E MEMÓRIA

Introdução ao Linux. Thiago Yukio Kikuchi Oliveira

Introdução à Sistemas Operacionais

Informática básica. Professor: Francisco Ary

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Apresentação da Disciplina

Introdução à Computação

INFORMÁTICA (NCINF) SOFTWARE SISTEMAS OPERACIONAIS

Informática. Sistemas Operacionais. Professor Márcio Hunecke.

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Sistemas Operacionais de Tempo Real. Sérgio Campos

Disciplina: Sistemas Operacionais

Programação de Computadores I

SISTEMAS OPERACIONAIS. Prof. André Aparecido da Silva.

Montagem e Manutenção

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Aula 1: Introdução aos Sistemas Operacionais. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Técnico Subsequente em Redes de Computadores Introdução a Sistemas Abertos (ISA)

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Sistemas Operacionais. Sistema de entrada e Saída

Introdução aos Sistemas Operacionais

Programas Aplicativos. Sistema Operacional. Hardware

Sistemas Operacionais João Bosco T. Junior. Sistemas Operacionais João Bosco Junior - V1.3

Revisão FUI. Tiago Alves de Oliveira

Arquitetura de Sistemas Operacionais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO PROFESSOR CARLOS MUNIZ

Uma Proposta para Migração de Páginas Linux

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento

Sistemas Operacionais II. Prof. Gleison Batista de Sousa Aula 01

Introdução. Introdução aos Sistemas Operacionais Volnys Bernal. Sumário. Introdução aos Sistemas Operacionais. Sobre esta apresentação

Técnicas Avançadas de Programação

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Sistemas Operacionais. Visão Geral

Disciplina: Introdução aos Sistemas Operacionais Professor: Fernando H. Santorsula

Introdução à Informática

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

O que é um sistema distribuído?

Sistemas Operacionais I

Ivinhema-MS. Prof. Esp. Carlos Roberto das Virgens.

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade

Transcrição:

Andrique Amorim www.andrix.com.br professor@andrix.com.br Arquitetura dos Sistemas Operacionais

Previously on OS...

Arquitetura: O QUE É? Estrutura básica sobre a qual é projetado o sistema operacional Como as ABSTRAÇÕES são realmente implementadas Como o sistema computacional deve ser solicitado e atender aos aplicativos, Como interagem as partes do SO entre si

E essa tal ABSTRAÇÃO?

Abstração

Elementos de um SO Kernel Shell System-calls

Elementos de um SO

Chamadas do Sistema System-calls São chamadas (solicitações) a procedimentos (ou serviços) do SO, feitas por um usuário (ou aplicativo).

Chamadas do Sistema System-calls Chamadas são usadas para gerenciar processos, arquivos, diretórios e outros.

Chamadas do Sistema APLICATIVOS NÚCLEO HARDWARE CHAMADAS

Chamadas do Sistema Em geral, quando se faz um programa, existem certas instruções que o programa em execução (processo), pode executar. EXEMPLO: operar com posições de memória pertencentes ao seu espaço de endereçamento.

Chamadas do Sistema: EXEMPLO Um processo pode perfeitamente somar o conteúdo de duas posições de memória e armazenar numa terceira sem precisar do Sistema Operacional. Entretanto, caso esse processo precisa armazenar isso em um arquivo, mandar via rede ou simplesmente mostrar na tela, ele vai precisar do Sistema operacional para isso.

Chamadas do Sistema

Chamadas do Sistema COMO FUNCIONA?

Chamadas do Sistema 1 - Quando a chamada de sistema é invocada, o programa que a invocou é interrompido, e a informação necessária para continuar a sua execução é salva.

Chamadas do Sistema 2 - O processador inicia a execução do código. 3 - Quando a chamada termina, o controle retorna para o programa e o estado previamente salvo é restaurado 4 - programa continua a sua execução.

Chamadas do Sistema

Chamadas do Sistema Em alguns casos, o retorno de fato para o programa não é imediato. Entrada/saída

Chamadas do Sistema Os sistemas operacionais atuais tem centenas de chamadas de sistema. LINUX tem quase 300 chamadas de sistema diferentes FREEBSD APROXIMADAMENTE 330 chamadas

Chamadas do Sistema Linux System Call Table Alguns exemplos de chamadas &eax Name Source 1 sys_exit kernel/exit.c 3 sys_read fs/read_write.c 6 sys_close fs/close.c 21 sys_mount fs/super.c 37 sys_kill kernel/signal.c

Chamadas do Sistema COMO USAR?

Chamadas do Sistema É preciso conhecer a API (conjunto de procedimentos) do sistema operacional que define quais chamadas estão disponíveis e quais são os parâmetros que devem ser passados.

Chamadas do Sistema: UNIX Para ler ou escrever um arquivo, deve-se primeiro usar uma chamada open. Ela especifica o nome do arquivo e o modo de abertura. Para criar um novo arquivo é usado O_CREAT.

Chamadas do Sistema: UNIX Para cada arquivo, o Unix registra o modo do arquivo, o tamanho e o momento da última modificação. A chamada stat mostra essas informações.

Chamadas do Sistema Existem certas chamadas de sistema que não podem ser colocadas diretamente à disposição das aplicações. A sua utilização indevida ocasionaria sérios problemas à integridade do sistema.

E as arquiteturas?

Arquiteturas: TIPOS

Monolítico É a arquitetura mais antiga e mais comum. Cada componente do SO é contido no núcleo (kernel) e pode comunicar-se com qualquer outro componente diretamente.

Monolítico Dois tipos de chamadas: 1 - o modo Kernel, onde é permitida a execução de todas as instruções básicas da máquina e; 2 - o modo usuário, para os programas de usuário, onde certas instruções, como aquelas que controlam entrada/saída não podem ser executadas.

Monolítico

Monolítico Todos os componentes do núcleo operam em modo núcleo e se inter-relacionam conforme suas necessidades, sem restrições de acesso entre si. Código no nível núcleo tem acesso pleno a todos os recursos e àreas de memória.

Monolítico 1.Essa intercomunicação direta permite rapidez na resposta de sistema operacional monolíticos. 2.A interação direta entre componentes também leva a sistemas mais compactos.

Monolítico 3.Qualquer componente do núcleo pode acessar os demais componentes sem qualquer impedimento. 1.Componentes todos juntos, é difícil identificar a origem de um determinado problema ou erro.

Monolítico 2.Caso um componente do núcleo perca o controle devido a algum erro, esse problema pode se alastrar rapidamente por todo o núcleo, levando o sistema ao colapso (travamento, reinicialização ou funcionamento errado).

Monolítico

Monolítico 3. Manutenção e evolução do kernel se tornam mais complexas, porque as dependências e pontos de interação entre os componentes podem não ser evidentes.

Monolítico 4. Pequenas alterações na estrutura de dados de um componente podem ter um impacto inesperado em outros componentes, caso estes acessem aquela estrutura diretamente.

Monolítico Ótimo Desempenho Não é tão Robusto (segurança) Dificuldade de desenvolvimento Dependências entre componentes

Monolítico A arquitetura monolítica foi a primeira forma de organizar os sistemas operacionais; sistemas UNIX antigos e o MS-DOS seguiam esse modelo.

Monolítico Atualmente, apenas sistemas operacionais embutidos usam essa arquitetura, devido as limitações do hardware sobre o qual executam.

Monolítico O núcleo do Linux nasceu monolítico, mas vem sendo paulatinamente estruturado e modularizado desde a versão 2.0 (embora boa parte de seu código ainda permaneça no nível de núcleo).

Monolítico Alguns exemplos de sistemas que utilizam este tipo de núcleo: * BSD * Linux * MS-DOS e derivados, incluindo Windows 95, Windows 98 e Windows ME * Solaris

Sistemas em camadas À medida que os sistemas operacionais tornaram-se mais complexos e maiores, projetos puramente monolíticos tornaram-se inviáveis.

Sistemas em camadas A arquitetura em camada, ou modular, tornou-se uma boa opção, agrupando camadas de componentes, ou seja, conjunto de procedimentos, que realizam tarefas similares.

Sistemas em camadas Arquitetura modular SOFTWARE HARDWARE

Sistemas em camadas 1) Cada camada comunica-se somente com as suas camadas imediatamente inferior e superior. 2) Uma camada inferior sempre presta um serviço à sua camada superior, sendo que a camada superior não sabe como o serviço é feito, apenas o solicita.

Sistemas em camadas A implementação de uma camada pode ser modificada sem exigir modificação em outra camada, pois possuem componentes autocontidos.

Sistemas em camadas Essa abordagem de estruturação de software fez muito sucesso no domínio das redes de computadores, através do modelo de referencia OSI.

Sistemas em camadas 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.

Sistemas em camadas Não é tão óbvio dividir as funcionalidades de um núcleo em camadas horizontais de abstração crescente, pois essas funcionalidades são interdependentes, embora tratem muitas vezes de recursos distintos.

Sistemas em camadas A estruturação em camadas é apenas parcialmente adotada hoje em dia. Alguns sistemas implementam uma camada inferior de abstração do hardware para interagir com os dispositivos (a camada HAL Hardware Abstraction Layer, implementada no Windows NT e seus sucessores)

Sistemas em camadas Também organizam em camadas alguns subsistemas como a gerência de arquivos e o suporte de rede.

Sistemas em camadas Exemplos de sistemas fortemente estruturados em camadas: IBM OS/2 MULTICS

Micro-kernel Possui apenas um núcleo que provê recursos mínimos necessários ao ambiente.

Micro-kernel Núcleo somente com o código de baixo nível necessário para interagir como hardware. Todos os aspectos de alto nível, como: políticas de uso do processador e da memória, o sistema de arquivos o controle de acesso aos recursos são implementados fora do núcleo, em processos que se comunicam usando as primitivas do núcleo.

Micro-kernel Por fazer os núcleos de sistema ficarem menores, essa abordagem foi denominada micro-nucleo (ou μ-kernel).

Micro-kernel

Micro-kernel Exemplo: usando essa abordagem o código de acesso aos blocos de um HD seria mantido no núcleo, enquanto as abstrações de arquivo e diretório seriam criadas e mantidas por um código fora do núcleo, executando da mesma forma que uma aplicação do usuário.

Micro-kernel Essa arquitetura de kernel tem a vantagem de separar os serviços de forma que se acontecer algum problema em algum serviço, esse serviço não vai afetar o kernel como o todo.

Micro-kernel Algumas das funções do sistema operacional foram separadas em programas chamados Servidores.

Micro-kernel As interações entre componentes e aplicações são feitas através de trocas de mensagens.

Micro-kernel Exemplo: Uma aplicação deseja abrir um arquivo no disco rígido.

Micro-kernel 1) A app envia uma mensagem para o gerente de arquivos que, por sua vez, 2) se comunica com o gerente de dispositivos para obter os blocos de dados relativos ao arquivo desejado.

Micro-kernel 3) Os processos não podem se comunicar diretamente, devido as restrições impostas pelos mecanismos de proteção do hardware.

Micro-kernel Todas as mensagens são transmitidas através de serviços do micro-núcleo.

Micro-kernel Muito investigados durante os anos 80. Exemplos: Mach Chorus Hurd Minix QNX

Micro-kernel Customizar o SO iniciando somente os componentes necessários ou escolhendo os componentes mais adequados às aplicações que serão executadas.

Micro-kernel As trocas de mensagens entre componentes pode ser bastante elevadas, o que prejudica seu desempenho e diminui a aceitação desta abordagem.

Monolítico Vs Micro-kernel Sistema operacional baseado em kernel monolítico Sistema operacional baseado em Microkernel

Híbridos Tem a capacidade de agregar ou desagregar funcionalidades, sem perder performance ou estabilidade presentes na sua estrutura inicial.

Híbridos EXEMPLOS: MacOS X Windows 2000 Windows NT Windows 7 BeOS