Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

De Aulas

Afluentes: Sistemas Operacionais, Sistemas Distribuídos e Mobile

Visão Geral

Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

Máquina de Níveis

Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

Tipos de Sistemas Multiprogramáveis

  • Sistemas Batch X Tempo Compartilhado X Tempo Real
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

Sistemas Batch (LOTE)

  • Execução Sequencial.
  • Os JOBS não exigem interação com o usuário, como compilação, sorts, backups.
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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

Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

Com Memória Independente

Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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.
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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

Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?
  • 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.
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?
  • 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
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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.

Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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

Seti@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
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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
Qual a diferença entre sistemas Monoprogramáveis Multiprogramáveis e de múltiplos processos?

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

Formulário

  1. A que se deve a evolução dos Sistemas Operacionais? Exemplifique e comente.
  2. O que são Sistemas "Monoprogramáveis/monotarefa? Comente suas principais características.
  3. O que são Sistemas Multiprogramáveis/multitarefa? Comente suas principais características.
  4. Comente sobre as diferenças entre Sistemas Batch, Sistemas de tempo ompartilhado e Sistemas de tempo real.
  5. Caracterize os sistemas com Multiplos Processadores.
  6. Diferencie Sistemas Fortemente Acoplados de Sistemas Fracamente coplados. Cite e comente que tipos de aplicações podem melhor se adequar à cada um deles.
  7. Caracterize e faça comentários sobre Sistemas Simétricos, Assimétricos e com Multiprocessamento.
  8. O que são Sistemas Operacionais de Rede? Cite e comente suas características básicas.
  9. O que são Sistemas Operacionais Distribuídos? Cite e comente suas características básicas.
  10. Descreva os clustes, pesquise e apresente aplicações que utilizam clusters.
  11. Descreva com suas palavras o cluster beowulf e as caracteristicas que deve ter.
  12. O que são grids computacionais, mostre problemas que foram resolvidos com grids e descreva-os.

Qual a principal diferença entre sistemas Monoprogramáveis e sistemas Multiprogramáveis?

Os sistemas monoprogramáveis se caracterizam por permitir que o processador, a memória e os periféricos permaneçam exclusivamente dedicados à execução de um único programa. Nos sistemas multiprogramáveis ou multitarefa, os recursos computacionais são compartilhados entre os diversos usuários e aplicações.

O que são sistemas operacionais Multiprogramáveis ou multitarefas?

Os sistemas multiprogramáveis ou multitarefa são uma evolução dos sistemas monoprogramáveis. Neste tipo de sistema, por exemplo, enquanto um programa espera por uma operação de leitura ou gravação em disco, outros programas podem estar sendo processados neste mesmo intervalo de tempo.

Quais as vantagens dos sistemas Multiprogramáveis em relação aos Monoprogramáveis?

A principal vantagem dos sistemas multiprogramáveis é a redução de custos em função da possibilidade de compartilhamento dos diversos recursos entre as diferentes aplicações. Apesar de mais eficientes que os monoprogramáveis, são de implementação muito mais complexa.

Como se caracterizam os sistemas operacionais do tipo Monoprogramáveis ou Monotarefa?

Os sistemas monoprogramáveis ou monotarefa se caracterizam por permitir que o processador, a memória, e os periféricos fiquem dedicados a um único usuário (monousuário). Nesses sistemas, enquanto o programa aguarda por um evento, como a digitação de um dado, o processador ficará ocioso sem realizar qualquer tarefa.