Fundamentos de Sistemas Computacionais Introdução



Documentos relacionados
SISTEMAS OPERACIONAIS

Sistemas Operacionais

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Infra-Estrutura de Software. Introdução. (cont.)

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Sistemas Operacionais. Estruturas de SO. Edeyson Andrade Gomes.

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas Operacionais Introdução. Professora: Michelle Nery

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas Operacionais

Sistema Operacional Correção - Exercício de Revisão

Sistemas Operacionais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS

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

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Figura 01 Kernel de um Sistema Operacional

Sistemas Operacionais. Professor Leslier Soares Corrêa

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

SISTEMAS OPERACIONAIS 2007

ESTUDO DE CASO WINDOWS VISTA

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

4 Estrutura do Sistema Operacional Kernel

Estrutura, Processos e Threads

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Sistemas Operacionais

Sistemas Operacionais

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Sistemas Operacionais

Conceitos Básicos sobre Sistemas Operacionais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais Gerência de Dispositivos

Visão Geral de Sistemas Operacionais

Sistemas Operacionais Introdução

6 - Gerência de Dispositivos

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Introdução. Sistemas Operacionais

Introdução à Computação: Sistemas de Computação

Introdução aos Sistemas Operativos

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Arquitetura de Computadores para. Sistemas Operacionais. Sistemas Operacionais. Sumário

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

Sistemas Operacionais

Sistemas Operacionais I. Introdução

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Sistemas Operacionais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais. Introdução

SISTEMAS OPERACIONAIS

A Evolução dos Sistemas Operacionais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br Roteiro. Componentes do Sistema

Sistemas Distribuídos

Fundamentos de Sistemas Operacionais

Everson Scherrer Borges João Paulo de Brito Gonçalves

MANUTENÇÃO DE MICRO. Mário Gomes de Oliveira

Noções básicas de Informática: Software

Introdução aos Sistemas Operacionais

Prof. José Maurício S. Pinheiro UniFOA

Processos e Threads (partes I e II)

SISTEMAS OPERACIONAIS. Prof. André Dutton

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

1.2 Tipos de Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Máquina de estados UNIX O

Dispositivos de Memória

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

SO Sistemas Operacionais

Programação Concorrente Processos e Threads

Sistemas Operacionais Aula 03: Estruturas dos SOs. Ezequiel R. Zorzal

Introdução aos Computadores

Classificação de SO (Sistemas Operacionais) Técnico de Informática 2º. Módulo Profa. Madalena Pereira da Silva

Sistemas Operacionais. Conceitos de um Sistema Operacional

Pós-Graduação, Maio de 2006 Introdução aos Sistemas Operacionais. Prof. Dr. Ruy de Oliveira CEFET-MT

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Arquitetura dos Sistemas de Informação Distribuídos

Organização e Arquitetura de Computadores

Sistemas Operacionais

Transcrição:

Fundamentos de Sistemas Computacionais Introdução Prof. Eduardo Alchieri

Sistema Computacional Hardware Software Usuários Um ou mais processadores, memória, discos, impressoras, teclado, mouse, monitor, interfaces de rede e outros dispositivos de entrada e saída Software básico (Programas de Sistema) Gerenciam a operação do computador Software Aplicativo (Programas Aplicativos) Auxiliam os usuários em suas atividades específicas

Fonte: Livro Sistemas Operacionais Modernos de Tanenbaum

Onde o Sistema Operacional de encaixa? Fonte: Livro Sistemas Operacionais Modernos de Tanenbaum

O que é um Sistema Operacional? É uma máquina estendida Esconde os detalhes que precisam ser executados Apresenta uma interface com os usuários mais amigável e mais fácil de usar É um gerenciador dos recursos do computador É um programa cuja tarefa principal é controlar o funcionamento do computador, como um gerente dos diversos recursos disponíveis no sistema Exemplos de recursos: memória e processador (CPU). Funções de um Sistema Operacional: Facilidade de acesso aos recursos do sistema Compartilhamento de recursos de forma organizada e protegida

Sistema operacional como uma máquina estendida A arquitetura (conjunto de instruções, organização da memória, estrutura de barramentos, etc.) da maioria dos computadores em nível de linguagem de máquina é primitiva e de difícil programação Exemplo: E/S em discos flexíveis controlados pelo NEC-PD765 16 comandos especificados pela carga de 1 a 9 bytes no registrador do dispositivo São comandos para leitura e escrita de dados, movimento do braço do disco, formatação das trilhas. Servem também para inicialização, sinalização, reinicialização e calibração do controlador e das unidades de disquete Os comandos mais básicos (read e write) necessitam de 13 parâmetros agrupados em 9 bytes Quando a operação termina, o chip controlador retorna 23 campos de status e de erros agrupados em 7 bytes

Exemplo: E/S em discos flexíveis controlados pelo NEC-PD765 Além disso, o programador da unidade de discos deve saber se o motor está ligado ou não O motor não pode ficar ligado por muito tempo para não desgastar o disco Caso um programador tivesse que se preocupar com tudo isso, não conseguiria escrever sua aplicação O programador busca lidar com essas unidades de um modo mais abstrato e simples No caso de um disco, uma abstração típica seria aquela compreendida por um disco que contém uma coleção de aquivos com nomes. Cada arquivo pode ser aberto para leitura ou escrita, ser lido ou escrito, e por fim, fechado Todos os outros detalhes (exemplo: verificar se o motor está ligado) não devem fazer parte desta abstração

Processadores, memórias, discos, e outros dispositivos são muito complicados e apresentam interfaces difíceis. Desta forma, uma das principais tarefas de um sistema operacional é ocultar o hardware e oferecer aos programas abstrações precisas, claras, elegantes e coerentes. Os sistemas operacionais transformam o feio em bonito! Fonte: Livro Sistemas Operacionais Modernos de Tanenbaum

Sistema operacional como um gerenciador de recursos O sistema operacional gerencia todas as partes de um sistema complexo Processadores, memória, discos, etc. O sistema operacional deve fornecer uma alocação ordenada e controlada dos recursos computacionais de um sistema Exemplo: Vários programas tentando imprimir ao mesmo tempo Caso não tivesse controle, as primeiras linhas impressas poderiam ser do programa 1, as seguintes do programa 2, e assim por diante O sistema operacional é responável por traze ordem para esta possível confusão

Dentro desta visão de SO, sua principal função é manter o controle sobre quem está usando determinado recurso, mediando conflitos entre diferentes programas Este gerenciamento causa o compartilhamento (multiplexação) de recursos de duas formas: No tempo: diferentes programas ou usuários aguardam a sua vez para utilizar o recurso Determinar a ordem de acesso ao recurso é tarefa do SO Exemplo: sistema com uma única CPU e múltiplos programas precisando desta CPU para executar No espaço: diferentes programas ou usuários uma parte do recurso Questões como justiça e proteção da parte do recurso alocada a um programa é tarefa do SO Exemplo: a memória principal é normalmente dividida entre vários programas em execução Outro exemplo: o disco rígido é compartilhado no espaço

O que os sistemas operacionais controlam? Um sistema operacional esta intimamente ligado ao hardware do computador no qual ele é executado Deve estender o conjunto de instruções do computador e gerenciar seus recursos Fonte: Livro Sistemas Operacionais Modernos de Tanenbaum

Para cada recuso da máquina, o SO deve: Manter informações sobre o recurso Decidir quem pode acessar o recurso Alocar o recurso Liberar o recurso Quanto ao controle de utilização de recursos, o SO deve: Ser eficiente (maximizar a utilização) Possuir um tempo de resposta aceitável (ser justo)

O sistema operacional pode ser visto a partir do: Usuário Deve oferecer facilidade e transparência na utilização Deve garantir o bom desempenho da máquina Sistema É o gerente dos recursos Deve lidar com detalher do hardware

História dos sistemas operacionais

A evolução dos sistemas operacionais acontece basicamente devido a: Evolução do hardware existente Surgimento de novo hardware Oferta de novos serviços Interface gráfica Ferramentas de gerenciamento de recursos Necessidade de reajustes Um S.O. pode conter falhas Está relacionada à arquitetura dos computadores

Primeira Geração (1945 1955): Válvulas e Painéis Máquinas enormes, com milhares de válvulas Segunda Geração (1955 1965): Transistores e Sistemas em Lote Aumento da velocidade de processamento graças à troca de válvulas por transistores (semicondutores) Processamento de Jobs (tarefas) era feito em lotes (batch) Terceira Geração (1965 1980): Circuitos integrados e multiprogramação Surgimento de SO mais voltado ao usuário Criação da técnica da multiprogramação: mais de uma tarefa sendo executada pelo processador ''ao mesmo tempo'' Quarta Geração (A partir de 1980): Computadores pessoais Surgem os circuitos LSI (Large Scale Integration), que são chips com milhares de transistores em cada centímetro quadrado de silício

Estruturas de Sistemas Operacionais

Agora que já tivemos uma visão externa do SO, vamos estudar a sua estrutura interna Estrutura de um SO Sistemas monolíticos Sistemas em camadas Micronúcleo Sistemas cliente-servidor Máquinas virtuais Exonúcleo

Sistemas monolíticos É a organização mais comum, na qual o SO inteiro é executado como um único programa no modo núcleo O S.O. é escrito como uma coleção de procedimentos, sendo que cada um pode chamar um dos demais sempre que necessário Cada procedimento possui uma interface bem definida Não há estrutura clara em camada. Geralmente, o SO apresenta três niveis : um procedimento principal que chama os procedimentos de serviço um conjunto de procedimentos de serviço que tratam as chamadas ao sistema, e um conjunto de procedimentos que ajudam os procedimentos de serviço

Sistemas monolíticos

Sistemas em camadas Sistemas que apresentam uma hierarquia de camadas Sistema dividido em níveis de complexidade, sendo que os níveis inferiores prestam serviços para os superiores As diversas camadas do sistema são dependentes, e possuem funções específicas O primeiro sistema operacional construído em camadas foi o THE (Technische Hogeschool Eindhoven), na Holanda em 1968

Sistemas em camadas THE Camada 5 4 3 2 1 0 Função Operador Programa usuário Gerenciamento de E/S Comunicação operador-processo Gerenciamento de memória Alocação do processador e multiprogramação

Micronúcleo A idéia é colocar o mínimo possível do SO no modo núcleo Um erro no núcleo pode ser fatal Aproximadamente 10 erros por 1000 linhas de código Um SO monolítico de 5 milhões de linhas contém aproximadamente 50 mil erros no núcleo Alcançar alta confiabilidade por meio da divisão do sistema em módulos pequenos, bem definidos, e apenas um módulo destes, o nicronúcleo, é executado em modo núcleo Por exemplo, um erro em um driver de som não derruba todo o sistema

Micronúcleo

Sistemas cliente-servidor Tendência dos sistemas operacionais: levar código para as camadas mais altas, deixando o mínimo para o kernel. O sistema operacional é dividido em partes, sendo cada uma responsável por oferecer um conjunto de serviços, como serviços de arquivo, serviços de criação de processos, serviços de memória e serviços de escalonamento, etc. Sempre que uma aplicação deseja algum serviço ela solicita ao processo responsável. A aplicação que solicita o serviço é chamada de cliente, enquanto o processo que responde à aplicação é chamado de servidor

Sistemas cliente-servidor Processos: Cliente: solicita o serviço Servidor: executa em modo usuário, não tem acesso direto ao hardware Na ocorrência de problemas o sistema não é completamente derrubado Kernel: gerencia a comunicação (troca de mensagens) entre clientes e servidores Apenas o núcleo do sistema executa no modo Kernel Este modelo permite que os servidores executem em modo usuário, ou seja, não tenham acesso direto a certos componentes do sistema

Sistemas cliente-servidor Como os servidores se comunicam através de troca de mensagens, não importa se os clientes e servidores estão sendo processados em um sistema com um único processador, com múltiplos processadores (fortemente acoplados ou fracamente acoplados)

Máquinas Virtuais IBM foi a pioneira em trabalhar com MV Usando técnicas de memória virtual e de escalonamento de processos, o sistema operacional pode criar a ilusão de que um processo tem sua própria memória e processador O monitor de máquina virtual pode ser executado diretamente sobre o hardware (hipervisor de tipo 1) ou sobre um SO hospedeiro (hipervisor de tipo 2, como ex.: VMWare)

Máquinas Virtuais Essas máquinas virtuais não são máquinas estendidas, com arquivos e outras características convenientes Na verdade, são cópias exatas do hardware, inclusive com modo usuário/kernel, E/S, interrupções e tudo o que uma máquina real tem Como cada máquina é uma cópia do hardware básico, cada uma delas pode executar um sistema operacional distinto

Exonúcleo No modelo anterial, o hardware de cada máquina virtual é um clone do verdadeiro hardware do sistema. Exemplo: cada máquina pensa que tem seu próprio disco, com blocos indo de 0 a um valor máximo, de modo que o monitor de máquina virtual deve manter tabelas para remapear os endereços de disco No modelo exonúcleo, cada máquina recebe um sibconjunto de recursos Uma grande vantagem desse esquema é que ele poupa uma camada de mapeamento O exonúcleo precisa somente manter o registro de para qual máquina virtual foi atribuído qual recurso