Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc.



Documentos relacionados
SISTEMAS OPERACIONAIS

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

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

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

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Introdução. Prof. MSc. Hugo Souza

Turno/Horário Noturno PROFESSOR : Salomão Dantas Soares AULA Apostila nº

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

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

Sistemas Operacionais

Introdução à Sistemas Operacionais. Glauber Magalhães Pires

Sistemas Operacionais. Prof. André Y. Kusumoto

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Conceitos Básicos sobre Sistemas Operacionais

Arquitetura e Organização de Computadores

ARQUITETURA DE COMPUTADORES

Fundamentos de Sistemas Computacionais Introdução

Introdução. Software (Parte I)

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Abstrações e Tecnologias Computacionais. Professor: André Luis Meneses Silva /msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress.

Introdução a Banco de Dados Aula 03. Prof. Silvestri

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

SISTEMAS OPERACIONAIS

Sistemas Operacionais 2014 Sistema de E/S. Alexandre Augusto Giron

DISPOSITIVOS DE BLOCO. Professor: João Paulo de Brito Gonçalves

Gerenciamento de memória

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

FACENS Engenharia Mecatrônica Sistemas de Computação Professor Machado. Memória Armazenamento Sistema de Arquivos

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

Sistemas Operacionais

Nível do Sistema Operacional

Aula 03-04: Modelos de Sistemas Distribuídos

Introdução a Computação

AULA: Introdução à informática Computador Digital

Sistemas Operacionais

Conceito de Rede e seus Elementos. Prof. Marciano dos Santos Dionizio

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Organização de Computadores Como a informação é processada?

Visão Geral de Sistemas Operacionais

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza

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

Arquitetura dos Sistemas Operacionais

BARRAMENTO DO SISTEMA

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

Sistemas Operacionais

Sistemas Distribuídos

Introdução aos Computadores

Professor: Gládston Duarte

Figura 01 Kernel de um Sistema Operacional

2. A influência do tamanho da palavra

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

SISTEMAS OPERACIONAIS

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

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

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

Um retrospecto da aula passada... Um retrospecto da aula passada... Principais Aspectos de Sistemas Operacionais. Gerência de E/S

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Disciplina: Redes de Comunicação. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Setembro 2013

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistema de Memórias de Computadores

Programação Concorrente

Laboratório de Hardware

Sistemas Operativos I

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

Gerência de Memória. Paginação

11- Tornar transparente para o processador os detalhes de operação e controle dos dispositivos periféricos.

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO I Campus Rio Pomba

ESTRATÉGIAS /ACTIVIDADES. Fazer uma abordagem teórica e simples

Arquitetura de processadores: RISC e CISC

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

Sistemas Operacionais. Professor Leslier Soares Corrêa

Sistemas Operacionais

Sistemas Operacionais. Conceitos de um Sistema Operacional

Diagrama lógico da rede da empresa Fácil Credito

4 Estrutura do Sistema Operacional Kernel

Classificação Quanto. Sistemas de Lotes (2) Sistemas de Lotes (3)

Arquitetura e Organização de Computadores

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

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

Sistemas Operacionais

Dispositivos de Memória

Sistemas Operacionais

Estrutura de um Sistema Linux Moderno Padrões de um Sistema Linux. Prof. Claudio Silva

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Programador Web - Pronatec


REDES DE COMPUTADORES HISTÓRICO E CONCEITOS

Aula 01 Visão Geral do Linux

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

Computador Digital Circuitos de um computador (Hardware)

Permite a coleta de dados em tempo real dos processos de produção, possuindo, também, interfaces para a transferência dos dados para os sistemas

Sistemas Operacionais Gerência de Dispositivos

(Aula 15) Threads e Threads em Java

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

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

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

Transcrição:

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software Prof. MSc. Hugo Souza

Continuando nossas aulas relativas ao Módulo 1, veremos a seguir como está definida a organização estrutural dos sistemas operacionais em um contexto que aborda os componentes físicos e os tipos/modelos de software que os mesmos podem abranger: Nas próximas aulas abordaremos: Estrutura externa dos sistemas operacionais e suas principais características; Estrutura interna dos sistemas operacionais e suas principais características; Minitestes de avaliação; Exercícios;

Para identificar quais componentes devemos estudar é importante entender como essa organização está inicialmente dividida. Tanenbaum explica que a literatura classifica um sistema operacional quanto as estruturas externas e as estruturas internas; As estruturas externas dos S.O.s abordam: Processadores, memória, discos; Dispositivos de entrada/saída de dados; Canais de acesso e condução dos dados: barramentos; As estruturas internas dos S.O.s abordam: Sistemas monolíticos e sistemas em camadas; Micronúcleo e exonúcleo; Maquinas virtuais Modelo cliente-servidor;

As estruturas externas relevam os fatores de organização e comunicação do sistema operacional com o hardware; Cada periférico precisa ser identificado e gerenciado intimamente pelo S.O. para alcançar uma melhor performance nas operações de máquina, rendimento nos resultados, economia de tempo, além da diminuição dos custos que podem ser gerados; É importante observar que o funcionamento do hardware em comunicação com o S.O. ocorre em um baixo nível [linguagem de máquina]. Caso essa comunicação não exista torna-se inviável para os programadores trabalharem neste contexto;

A primeira estrutura externa é o processador. Ele tem como função buscar a primeira instrução da memória, decodificá-la para determinar seus operandos e as operações que serão realizadas através de um ciclo; Cada processador tem estruturas menores denominadas de registradores que salvam os operandos e delimitam quais recursos serão necessários nas operações; Dois registradores indispensáveis são o contador de programa que contém o endereço de memória da próxima instrução a ser buscada e ponteiro de pilha que aponta a última posição da memória que foi acessada;

Alguns processadores têm condições de realizar estas operações separadamente e fora de ordem, sendo essa organização denominada como pipeline; Imagine a leitura de uma instrução n, a decodificação de uma instrução n+1 e execução da instrução n+2 em um formato de três estágios; Os pipelines podem ser invocados em dois modos: núcleo e usuário. O modo núcleo é aquele em que o próprio S.O. deverá gerenciar suas operações, tais como a repartição de disco, memória, etc.; No modo usuário o gerenciamento é definido pelo cliente nos aplicativos que o S.O. poderá fornecer suporte quando forem instalados;

Um processador simples é constituído por uma Unidade de Controle e uma Unidade de Lógica e Aritmética. Entre estas unidades existem canais de comunicações denominados de barramentos, responsáveis por controlar a ordem das instruções e o fluxo de dados que são movimentados entre os registradores;

O segundo componente da estrutura externa é a memória de acesso, também conhecida como memória randômica [RAM] ou não randômica [ROM]; Esse dispositivo tem como função armazenar temporariamente os dados, programas e demais informações que estão sendo processadas pelas unidades lógica e de controle do processador; Comparada as memórias locais do processador esta memória é mais lenta por gerir diretamente os componentes físicos. No primeiro caso [RAM] a estrutura é constituída por blocos em que os dados são alocados através de pequenas unidades [bits e kbs] para direcionarem o acesso aos recursos;

No segundo caso, a ROM, as estruturas estão implementadas diretamente nos dispositivos compactos [E/S] formulando o acesso local e mais rápido; Há ainda a memória flash que possui uma configuração de armazenamento dos dados sem a necessidade de condensação elétrica. A estrutura é basicamente a mesma, obtendo como diferencial um desgaste menos presente em sua organização caso a formatação dos dados seja algo comum de ser realizado;

Exemplo de uma infraestrutura da memória flash particionada;

A terceira estrutura externa relacionada aos sistemas operacionais são os discos. O armazenamento nessas estruturas é realizado com duas prioridades: prover o gerenciamento e controle de acesso ao dados; Em larga parte, a hierarquia é constituída pelo disco magnético (disco rígido). Um disco magnético consiste em um ou mais pratos magnéticos que rodam a 5.400, 7.200 ou 10.800 rpm; A informação é escrita no disco em uma série de discos concêntricos em que cada cabeça ou cabeçote de leitura escreve em uma trilha formando o cilindro que formata a estrutura;

Muitos computadores mantêm uma organização conhecida como memória virtual. Esse esquema possibilita executar programas maiores que a memória física colocando-os em disco e usando a memória principal como cache; Esse esquema requer o mapeamento de endereços de memória rapidamente para converter o endereço que o programa gerou no endereço físico em RAM; Esse mapeamento é realizado por uma parte da CPU chamada unidade de gerenciamento de memória (MMU);

Estrutura de um disco rígido convencional;

Outra estrutura indispensável requerida para o funcionamento dos sistemas operacionais são os dispositivos de entrada e saída de dados; Conhecidos como dispositivos de E/S estas estruturas são constituídos, geralmente, em duas partes: o controlador e o dispositivo nativo; O controlador é um chip que gerencia as operações físicas entre os dispositivos. Ele recebe os comandos binários do S.O. e para verificar a leitura e escrita de dados;

A outra parte do dispositivo é a interface nativa [dispositivo real] responsável por armazenar as informações designadas pelo controlador; Como a comunicação entre os dispositivos é realizada pelo controlador, os sistemas operacionais enxergam na maioria das vezes apenas as informações técnicas e não o dispositivo em si; O controle de entrada e saída pode ser realizado de três maneiras diferentes: Chamada de usuário através de um software de alto nível; Invocação pelo S.O. através de um driver de acesso [iniciação e interrupção]; Acesso direto, configurado através de um chip [Direct memory access DMA];

Organização básica entre as três estruturas externas;

Já os barramentos caracterizam os canais de controle e movimentação dos dados entre as estruturas externas do sistemas operacionais; Um barramento possui um padrão de comunicação que é reconhecido/identificado por uma série de padrões tais como comutação, multiplexação, codificação e decodificação; Os principais tipos, utilizados em uma arquitetura de S.O. são o barramento de cache, barramento local [processador], barramento de memória, barramento USB, barramento SCSI, barramento IDE e PCI; Veremos a seguir dois deles;

Já os barramentos caracterizam os canais de controle e movimentação dos dados entre as estruturas externas do sistemas operacionais; Um barramento possui um padrão de comunicação que é reconhecido/identificado por uma série de padrões tais como comutação, multiplexação, codificação e decodificação; Os principais tipos, utilizados em uma arquitetura de S.O. são o barramento de cache, barramento local [processador], barramento de memória, barramento USB, barramento SCSI, barramento IDE e PCI; Veremos a seguir dois deles;

O primeiro é o Universal Serial Bus [USB] que possui uma estrutura baseada em quatro vias, sendo duas para fornecer energia e as demais controle e acesso aos dados; É característico por possuir um driver genérico [dispositivo-raiz] que pode ser lido por todos os dispositivos de E/S que possuem internamente algum canal de controle [se podem enviar algum dado]; O barramento small computer system interface [SCSI] é um barramento de alto desempenho destinado a discos, scanners e outros hardware que possuam rápida comunicação de dados;

É popular em sistemas da Apple e reconhecidos principalmente para sistemas Unix. A Intel também programa/programou durante vários anos aplicativos que usam a identificação de dispositivos através deste padrão;

As estruturas internas tem como função alinhar em qual contexto [serviços] os sistemas operacionais podem abranger através de sua configuração ao nível de programação; A primeira delas, não sem bem uma estrutura, mas sim uma categoria são os sistemas monolíticos. A organização monolítica é de longe a mais comum visto que o sistema operacional é executado como um único programa no modo núcleo; O sistema é escrito através de uma coleção de rotinas, interligadas a um programa binário através de interfaces comuns contidas em cada uma, podendo umas invocarem as outras de acordo com a tarefa;

Para cada chamada do sistema há uma rotina encarregada para fornecer o suporte de operações. As rotinas estão dividas basicamente em três camadas: Rotina principal: corresponde ao software principal em modo núcleo, que caracteriza o kernel do S.O.; Rotinas de serviço: correspondem a rotinas específicas para os serviços configurados no S.O. Ex.: pacotes de dados e batchs; Rotinas de utilidades: são rotinas que mantem o controle e configuração das rotinas de serviço.

Os sistemas em camadas possuem uma hierarquia de rotinas bem mais definida em relação aos monolíticos; O primeiro sistema construído com essa sintaxe foi o THE [Technische Hogeschool Eindhoven] sendo implementado em seis camadas com uma arquitetura baseada em lotes com 32 k de memória e palavras de 27 bits; O sistema possuía seis camadas, com as seguintes funções:

Camada Função 5 O operador 4 Programas de usuário 3 Gerenciamento de entrada/saída 2 Comunicação operador-processo 1 Memória e gerenciamento de tambor 0 Alocação do processador e multiprogramação Níveis de camadas e organização do S.O.;

Outra generalização do conceito de camadas estava presente no sistema MULTICS. Em vez de camadas, o sistema era escrito através de anéis concêntricos, sendo os anéis internos mais privilegiados [acesso a máquina] do que os externos; As chamadas eram gerenciadas por uma unidade de controle denominada de TRAP; O acesso aos parâmetros podia ser realizado de maneira individual [processos individuais] para operações simples como leitura, escrita e execução dos dados;

Com a abordagem do sistema de camadas, os projetistas podem escolher onde traçar a fronteira núcleo-usuário; Isso implica dizer que os processos de núcleo podem ser administrados pelo sistema operacional em caráter de rotina [obrigatório] enquanto os demais processos podem ser facilmente gerenciados pelo usuário; Desta forma, para alcançar alta confiabilidade por meio de uma divisão do sistema operacional em módulos pequenos, bem definidos, apenas um desses módulos, o micronúcleo, é executado no modo núcleo e o restante executado como processos de usuário;

Muitos micronúcleos foram implementados ao longo dos anos. Eles estão presentes em aplicações críticas que exigem a alocação dos processos de núcleo com precisão quanto as chamadas; Fora do núcleo, os sistemas que implementam esse escopo são formados geralmente por três camadas de processos, todas executando em modo usuário: Camada inferior (drivers): contém os parâmetros de gerenciamento do hardware; Camada de modo usuário (servidores): responsável pelo ciclo de vida dos processos de usuário; Camada de programas (aplicações): são as aplicações linkadas aos processos de núcleo executadas em nível de usuário;

Modo usuário Processo Shell Fazer Outro... Programas de usuário FS Proc. Reenc.... Outro Servidores Disco TTY Rede Impr.... Outro Drivers O micronúcleo controla interrupções, processos, escalonamento, IPC. Relógio Sys Estrutura do sistema MINIX 3. Modelo micronúcleo;

Uma ligeira variação da ideia de micronúcleo é distinguir entre duas classes de processos, os servidores, que prestam algum serviço, e os clientes, que usam esses serviços; Esse modelo é conhecido como modelo clienteservidor. Frequentemente a camada inferior é o micronúcleo, mas ele não é obrigatório. A essência é a presença de processos, clientes e servidores; A comunicação é muitas vezes realizada por meio de troca de mensagens. Para obter um serviço, o cliente constrói uma mensagem para o servidor requerendo as condições necessárias (fluxo, ordem, algoritmos) aguardando em seguida uma resposta de aprovação;

Uma generalização óbvia dessa ideia é executar clientes e servidores em computadores diferentes, conectados por uma rede local ou de grande área; Um servidor pode prestar a comunicação com vários clientes paralelamente gerenciando as requisições e suas respectivas respostas com vários tipos de equipamentos, dentre computadores, tablets, smartphones; Isso exige a integração com várias arquiteturas diferentes, plataformas, tecnologias e outros aspectos [serviços, infraestruturas e dispositivos];

Um sistema operacional necessita criar várias abstrações para processos diferentes. Cada processo, thread e demais estruturas internas são gerenciadas de maneira diferente; O coração do sistema, conhecido como monitor de máquina virtual, é executado diretamente sobre o hardware e implementa a multiprogramação, provendo assim, não uma, mas várias máquinas virtuais para a próxima camada; Essas máquinas virtuais não são máquinas estendidas, com arquivos e outras características convenientes cópias de hardware e software;

Escopo em camadas de uma máquina virtual;

Há também as máquinas virtuais que trabalham com um formato de interface sobre outras máquinas virtuais; Utilizam proteção e segurança de dados précompilados; A função dessa segunda máquina virtual é interpretar os códigos, programas e demais estruturas compatíveis ao seu compilador compactado ; A JVM, por exemplo, é um exemplo de máquina virtual interpretativa. Ela identificar os bytecodes em Java e provem a execução dos programas em quaisquer dispositivos que contenham esse framewok instalado;

Estrutura de uma JVM sistemas operacionais;

Em vez de clonar a máquina real, como é no caso das máquinas virtuais, outra estratégia é dividi-la ou, em outras palavras, dar a cada usuário um subconjunto de recursos; Na camada mais inferior, executando em modo núcleo, há um programa denominado exonúcleo. Sua tarefa é alocar recursos às máquinas virtuais e então verificar as tentativas de usá-los para assegurar-se de que nenhuma máquina tente usar recursos de outra; A vantagem do esquema exonúcleo é que o mesmo poupa uma camada de mapeamento. Nos outros projetos as VMs pensam que possuem a infraestrutura;

Desta forma, há um valor emergente [que pode alterar] em cada máquina virtual, sendo algo gerenciável mediante a política de escalonamento, divisão e expansão de recursos adotada pelo sistema operacional; Isso implica dizer que cada S.O. atribui as regras de estabelecer o ciclo de atividades que são realizadas em suas estruturas internas [criação, funcionamento e encerramento; Cada estrutura dessa é conhecida como processos e threads, que veremos com mais detalhes nas próximas aulas [processos e threads];

O material para os estudos já está disponível no site da disciplina em: http://hugovlsouza.com Também já está disponível a descrição do segundo miniteste: O que representa a arquitetura de Von Neumman? Explique qual importância desse modelo para a evolução dos sistemas operacionais e tecnologias atuais ; Nas próximas aulas veremos a estrutura dos processos nos sistemas operacionais;