Tipos de Sistemas Operacionais
Conteúdo integrante da disciplina de Sistemas Operacionais
Visão Geral
Máquina de Níveis
Introdução
- Evolução dos Sistemas Operacionais -> Hardware
- Programa e Job X Processo e Subprocesso X Tarefa e Thread.
- Tipos de Sistemas Operacionais
- Monoprogramáveis / Monotarefa
- Multiprogramáveis / Multitarefa
- Multiplos Processadores
Sistemas Monoprogramáveis / Monotarefa
- Execução de um único programa (JOB).
- Relacionados ao surgimento dos mainframes -> PCs, estaçoes de trabalho
- Todos recursos do sistema ligados a apenas uma tarefa
Sistemas Multiprogramáveis / Multitarefa
- Mais complexos e eficientes que os monoprogramáveis.
- Vários programas dividem os mesmos recursos.
- Sistema Operacional gerencia o acesso concorrente aos recursos e dispositivos.
- Aumento de produtividade
- Mais de um usuário pode interagir com o sistema.
- Sistemas Monousuários X Multiusuários
Tipos de Sistemas Multiprogramáveis
- Sistemas Batch X Tempo Compartilhado X Tempo Real
Sistemas Batch (LOTE)
- Execução Sequencial.
- Os JOBS não exigem interação com o usuário, como compilação, sorts, backups.
Sistemas de Tempo Compartilhado (Sistemas OnLine)
- Interação usuário – Vídeo, Teclado, Mouse, etc.
- Usuário comunica direto com o Sistema Operacional.
- Cada usuário possue fatias de tempo dos recursos, aparentando estarem dedicados.
Sistemas de Tempo Real
- Tempos de respostas devem estar dentro de limites rígidos.
- Recursos dedicado ao Programa de maior prioridade, controlado pela própria aplicação.
Sistemas com Múltiplos Processadores
- Uma ou mais CPUs interligadas, trabalhando em conjunto.
- Fator Chave = Comunicação entre CPUs e grau de compartilhamento dos recursos.
- Sistemas Fortemente Acoplados X Fracamente Acoplados
Sistemas Fortemente Acoplados
- Vários processadores compartilhando única memória e apenas um Sistema Operacional
- Vários programas podem ser executados ao mesmo tempo
- Um programa pode ser dividido em subprogramas.
- Ampliação da capacidade, adquirindo apenas novos processadores, menos custos.
Com Memória Compartilhada
Com Memória Independente
Sistemas Assimétricos
- Um processador primário responsável pelos demais e pelo Sistema Operacional
- Outros processadores são secundários e executam programas de usuários
- Se o processador primário falhar, o sistema para.
- O Sistema pode ser reconfigurado para outro processador assumir
- Utilização ineficiente do Hardware devido a assimetria dos processadores, que não realizam as mesmas funções.
Sistemas Simétricos
- Todos processadores têm as mesmas funções.
- Podem executar o Sistema Operacional Independentemente.
- Sistema Operacional e Hardware responsáveis pela distribuição dos recursos.
- Se o sistema falha, o sistema continua rodando.
- Mais poderosos que o s assimétricos, melhor balanceamento do processamento e das operações de I/O.
- Implementação bastante complexa.
Multiprocessamento
- Uma tarefa pode ser dividida e executada, ao mesmo tempo, por mais de um processador.
- Processamento Vetorial
- Permite manipulação de vetores inteiros
- Exemplo “c = a + b” substitui ”para i=1 até 100 fazer c[i] = a[i] + b[i]”
- Possui também um processador escalar
- Identifica o tipo de instrução e envia ao processador adequado
- Processamento Paralelo
- Aplicação pode ser executada por mais de um processador
- A aplicação precisa ser dividida em partes independentes
Sistemas Fracamente Acoplados
- Possui dois ou mais sistemas de computação interligados
- Cada nó possui seu sistema operacional gerenciando os recursos.
Sistemas Operacionais de Rede
- Cada nó possui
- seu próprio Sistema Operacional, podendo eles serem diferentes
- conexão à outros nós
- recursos de hardware compartilhados
- total independência dos outros
- Caso algum nó caia, o sistema pode continuar rodando apesar de alguns recursos indisponíveis
- Exemplo : Local Area Network (LAN).
Sistemas Operacionais Distribuídos
- Cada nó possui
- Seu próprio Sistema Operacional que devem ser todos iguais.
- Recursos de hardware
- Possui um relacionamento mais forte entre seus componentes.
- Para o usuário é como se não existisse uma rede de computadores, mas apenas um único sistema centralizado.
- Vantagem da possibilidade do balanceamento da carga (processador mais ocioso é escolhido).
- Exemplo de SO distribuído: Amoeba
Clusters
- Num cluster, qualquer usuário conectado ao mesmo poderá Ter acesso aos dispositivos compartilhados, independente de que sistema ele está rodando a aplicação.
- Permite que a aplicação seja dividida em diferentes partes, podendo cada uma ser processada em um sistema independente (aplicação distribuída).
- Possui a vantagem da redundância, se ocorrer algum problema com algum componente outro assume o papel do defeituoso.
- Conjunto de estações de trabalho ou PCs
- Interconexão: redes locais
- Nós: elementos de processamento = processador + memória
- Não existe um escalonador centralizado
- Redes de interconexão tendem a ser mais lentas do que sistemas fortemente acoplados
- Cada nó tem seu próprio escalonador local
- Compartilhamento de recursos sem partição dedicada a uma aplicação
- Aplicação deve considerar impacto no desempenho
- Não tem o sistema dedicado
- Possibilidade de compor um sistema de alto desempenho e um baixo custo
Cluster Beowulf
Beowulf é um poema épico, escrito em língua anglo-saxã, por autor desconhecido, possivelmente no século VIII, cujo único manuscrito existente está datado para ca. 1 000. Escrito em 3 182 linhas, com o emprego de aliteração, é o poema mais longo do pequeno conjunto da literatura anglo-saxã, e um marco da literatura medieval. Aborda eventuais acontecimentos e personagens da Dinamarca, e em menor grau do sul da Suécia, no século VI, tendo como figura central o lendário Beowulf.
Beowulf é um projeto para aglomerados de computadores (ou Clusters) para computação paralela, usando computadores pessoais, não especializados e portanto mais baratos. O projeto foi criado por Donald Becker da NASA, e são utilizados em todo mundo, por exemplo no processamento de dados com finalidade científica e na renderizacão de filmes de animação 3D.
Site: https://www.beowulf.org/
O objetivo era construir um cluster "poderoso" e, ao mesmo tempo, poupar gastos com equipamentos, licenças de software e manutenção. O cluster montado por Thomas Sterling e Donald Becker para a NASA, por exemplo, era composto por 16 PCs com processador Intel 486 DX4 e sistema operacional Linux conectados por uma rede Ethernet de 10 Mb/s. Esta foi uma solução consideravelmente mais barata e, possivelmente, menos complexa que um supercomputador.
- Um cluster Beowulf se define, basicamente, pela ênfase nas seguintes características
- entre os nós, deve haver pelo menos um que atue como mestre para exercer o controle dos demais. As máquinas mestres são chamadas de front-end; as demais, de back-end. Há a possibilidade de existir mais de um nó no front-end para que cada um realize tarefas específicas, como monitoramento, por exemplo;
- a comunicação entre os nós pode ser feita por redes do tipo Ethernet, mais comuns e mais baratas;
- não é necessário o uso de hardware exigente, nem específico. A ideia é a de se aproveitar componentes que possam ser encontrados facilmente. Até mesmo PCs considerados obsoletos podem ser utilizá-los;
- o sistema operacional deve ser de código aberto, razão pela qual o Linux e outras variações do Unix são bastante utilizados em cluster Beowulf;
- os nós devem se dedicar exclusivamente ao cluster;
- deve-se fazer uso de uma biblioteca de comunicação apropriada, como a PVM (Parallel Virtual Machine) ou a MPI (Message Passing Interface). Ambas são direcionadas à troca de mensagens entre os nós, mas o MPI pode ser considerado mais avançado que o PVM, uma vez que consegue trabalhar com comunicação para todos os computadores ou para apenas um determinado grupo.
Grids: Grades Computacionais
Set@Home
- Projeto para procura de vida Extra-terrestre
- Radiotelescópio de Arecibo
- Artigo: SETI@home: An Experiment in Public-Resource Computing in ACM, Vol. 45 No. 11, November 2002, pp. 56-61
Grids
- Utilização de computadores independentes geograficamente distantes
- Diferenças: clusters X grades
- heterogeneidade de recursos
- alta dispersão geográfica (escala mundial)
- múltiplos domínios administrativos
- controle totalmente distribuído
- controlados por diferentes entidades e diversos domínios administrativos
- Vários projetos tem proposto o desenvolvimento de middlewares de gerenciamento
- camada entre a infra-estrutura e as aplicações a serem executadas na grade computacional
- Aplicação deve estar preparada para:
- Dinamismo
- Variedade de plataformas
- Tolerar falhas
Sobre a utilização de Grids
- Sistema não dedicado e diferentes plataformas
- Usuários da grids devem obter autorização e certificação para acesso aos recursos disponíveis na grade computacional
- Falhas nos recursos tanto de processamento como comunicação são mais freqüentes que as outras plataformas paralelas
- Mecanismos de tolerância a falhas devem tornar essas flutuações do ambiente transparente ao usuário
- Deve haver gerenciamento da execução da aplicação através de políticas de escalonamento da aplicação ou balanceamento de carga
- Deve ser feito escalonamento durante a execução da aplicação se faz necessário devido as variações de carga dos recursos da grade
Lista de Exercícios
- A que se deve a evolução dos Sistemas Operacionais? Exemplifique e comente.
- O que são Sistemas "Monoprogramáveis/monotarefa? Comente suas principais características.
- O que são Sistemas Multiprogramáveis/multitarefa? Comente suas principais características.
- Comente sobre as diferenças entre Sistemas Batch, Sistemas de tempo ompartilhado e Sistemas de tempo real.
- Caracterize os sistemas com Multiplos Processadores.
- Diferencie Sistemas Fortemente Acoplados de Sistemas Fracamente coplados. Cite e comente que tipos de aplicações podem melhor se adequar à cada um deles.
- Caracterize e faça comentários sobre Sistemas Simétricos, Assimétricos e com Multiprocessamento.
- O que são Sistemas Operacionais de Rede? Cite e comente suas características básicas.
- O que são Sistemas Operacionais Distribuídos? Cite e comente suas características básicas.
- Descreva os clustes, pesquise e apresente aplicações que utilizam clusters.
- Descreva com suas palavras o cluster beowulf e as caracteristicas que deve ter.
- O que são grids computacionais, mostre problemas que foram resolvidos com grids e descreva-os.