image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image

DN

Daniel Nascimento29/11/2023 19:30
Compartilhe
Nexa - Análise Avançada de Imagens e Texto com IA na AWSRecomendados para vocêNexa - Análise Avançada de Imagens e Texto com IA na AWS

Evolução dos Sistemas Operacionais: Monoprogramáveis, Multiprogramáveis e Múltiplos Processadores

    Sistemas monoprogramáveis, também conhecidos como sistemas monotarefa, são aqueles projetados para executar apenas um programa por vez. Eles foram comuns nos estágios iniciais da computação e apresentam algumas características distintas que podem ser ilustradas de forma mais didática.

    Características dos Sistemas Monoprogramáveis

    Exclusividade de Recursos: O sistema concentra todos os recursos disponíveis no computador para a execução de um único programa. Isso significa que o processador, a memória e outros periféricos são dedicados inteiramente à tarefa em execução.

    Ineficiência durante Espera: Uma desvantagem desses sistemas é evidente quando o programa precisa esperar por algum evento externo, como entrada do usuário ou leitura de um arquivo. Durante esses períodos de espera, o processador permanece ocioso(sem uso), resultando em subutilização dos recursos do sistema.

    Exemplo Prático

    Vamos imaginar um sistema monoprogramável em um contexto de processamento de texto. Suponha que um usuário abra um editor de texto simples para escrever um documento. Nesse momento, todo o sistema está dedicado a essa tarefa. Se o usuário estiver digitando ativamente, o processador estará ocupado processando as teclas pressionadas e atualizando a tela. No entanto, se o usuário pausar e pensar em realizar alguma outra tarefa, o sistema permanecerá focado na edição de texto, mesmo que não haja entrada de dados.

    Durante esse período de espera, o processador e outros recursos podem ser considerados desperdiçados, já que não estão sendo utilizados de maneira eficiente. Se houver outros programas ou tarefas que poderiam estar sendo executados simultaneamente, o sistema monoprogramável não aproveita essas oportunidades.

    Os sistemas multiprogramáveis foram desenvolvidos para superar as limitações dos sistemas monoprogramáveis, permitindo a execução simultânea de vários programas ou tarefas no mesmo dispositivo. Essa abordagem é fundamental para otimizar o uso dos recursos do sistema e melhorar a eficiência global. 

    Execução Simultânea

    Imagine um usuário precisando realizar diferentes tarefas em um computador , como processamento de texto, navegação na web e edição de imagens. Em um sistema multiprogramável, o usuário pode iniciar cada aplicativo e realizar suas tarefas de forma independente, mesmo que outros aplicativos também estejam utilizando o mesmo dispositivo.

    Otimização de Recursos

    Quando um programa está aguardando algum evento, como entrada do usuário ou leitura de um arquivo, em vez de deixar o processador ocioso, o sistema multiprogramável pode direcionar a execução para outro programa ativo. Isso otimiza o uso do processador e outros recursos, aproveitando ao máximo a capacidade do sistema.

    Redução de Custos

    A execução simultânea em sistemas multiprogramáveis desempenha um papel fundamental na redução de custos. Ao permitir que vários aplicativos sejam executados por um usuário simultaneamente, esses sistemas multiprogramáveis compartilham eficientemente os recursos do sistema. Essa capacidade de compartilhamento ativo resulta em uma utilização mais completa do hardware disponível, maximizando a capacidade do sistema.

    Quando um usuário está aguardando, por exemplo, o carregamento de uma página na web, o processador pode ser direcionado para realizar tarefas intensivas em outros aplicativos, garantindo uma eficiência contínua. Essa abordagem significa que, mesmo durante períodos de inatividade de um usuário específico, os recursos do sistema estão continuamente envolvidos em outras tarefas, otimizando assim o investimento em hardware.

    Exemplo Prático

    Vamos considerar um sistema operacional que suporta multitarefa em um ambiente de escritório. Vários funcionários estão utilizando um único sistema, mas com três monitores com periféricos diferentes. Cada funcionário pode ter um processador de texto aberto para redação de documentos, um navegador para pesquisa na web e um software de planilha para análise de dados.

    Enquanto um funcionário está digitando no processador de texto, outro pode estar executando cálculos em uma planilha e um terceiro pode estar navegando na internet. Se um dos funcionários pausar para pensar ou realizar uma ação que não exige a atenção total do sistema, o processador pode ser redirecionado para os outros usuários, garantindo que o tempo de inatividade seja minimizado.

    Esse modelo de multitarefa em um ambiente de escritório ilustra como os sistemas multiprogramáveis podem acomodar as necessidades de vários usuários, proporcionando eficiência, redução de custos e uma experiência mais dinâmica e produtiva.

    Principais diferenças entre sistemas multiprogramáveis e monoprogramáveis. 

    Em um sistema operacional monoprogramável, o processador é dedicado à execução de um único programa por vez. Isso significa que o sistema aguarda a conclusão de uma tarefa antes de iniciar outra. O processador é totalmente alocado para a execução do programa em execução, sem divisão de recursos.

    Ao migrar para um sistema operacional multiprogramável, o processador é dividido para suportar a execução simultânea de vários programas. O escalonador do sistema decide quais programas serão executados e por quanto tempo cada um terá acesso ao processador. O processador agora alterna entre os programas, oferecendo a ilusão de execução simultânea para os usuários.

    Essa divisão é geralmente realizada por meio de técnicas de escalonamento, como o escalonamento por prioridade, fatia de tempo ou filas de processos. Cada programa recebe uma fatia de tempo para ser executado, e o sistema operacional gerencia eficientemente a transição entre os programas em execução. Essa abordagem multiprogramável melhora a utilização dos recursos do processador, aumentando a eficiência do sistema.

    Sistema de Tempo Compartilhado, a CPU é dividida em pequenos intervalos chamados fatias de tempo, que são compartilhadas entre diferentes tarefas. Cada usuário interage com o sistema como se fosse o único, embora os recursos sejam compartilhados entre vários usuários e programas.

    Se uma tarefa não puder ser concluída dentro de sua fatia de tempo, o sistema operacional a interrompe temporariamente, aguardando sua próxima oportunidade enquanto outras tarefas são executadas.

    Esse sistema visa proporcionar uma experiência interativa e responsiva, permitindo que os usuários realizem diversas tarefas simultaneamente, como edição de documentos, navegação na internet e envio de e-mails. Atualmente, é o modo de processamento mais amplamente utilizado.

    Sistema de Tempo Real, é um tipo específico de sistema operacional desenvolvido para lidar com eventos e tarefas em tempo real, com exigências rigorosas de prazos. Nele, as tarefas devem ser concluídas dentro de prazos específicos, chamados de deadlines, para garantir o correto funcionamento do sistema.

    Ao contrário de sistemas operacionais convencionais, não há conceito de fatia de tempo; um programa retém o controle do processador até sua conclusão ou até que um programa com prioridade mais alta solicite o recurso. As prioridades dos programas são estabelecidas pela própria aplicação, não pelo sistema operacional.

    Esses sistemas são amplamente empregados em aplicações críticas, como controle industrial, monitoramento médico e controle de tráfego aéreo, nos quais a resposta em tempo real é crucial. Eles são meticulosamente projetados para oferecer alta confiabilidade, determinismo e baixa latência, assegurando que as tarefas sejam executadas no prazo necessário.

    Sistemas com Múltiplos Processadores, ou sistemas com múltiplos processadores, são projetados para aumentar o poder de processamento dividindo tarefas entre vários processadores. Essa abordagem por ser simultânea aprimora o desempenho, sendo particularmente eficaz em tarefas divisíveis, como renderização gráfica, simulações científicas e processamento de grandes volumes de dados.

    Estes sistemas não só melhoram a eficiência, mas também oferecem maior confiabilidade e disponibilidade. Em casos de falha em um processador, os outros continuam operando, proporcionando tolerância a falhas cruciais para sistemas críticos, como servidores de banco de dados e ambientes de missão crítica.

    Esses sistemas podem variar desde configurações com dois processadores até sistemas com centenas ou milhares. Podem ser construídos em diferentes arquiteturas, como múltiplos núcleos em um único chip, múltiplos chips em uma placa-mãe ou sistemas distribuídos (nuvem) em várias máquinas interconectadas.

    Por isso os sistemas com múltiplos processadores podem ser subdivididos em dois grupos:

    Sistemas Fortemente Acoplados, neste tipo de sistema, processadores compartilham elementos como memória e dispositivos de entrada/saída. Esses sistemas, frequentemente em uma única máquina física ou em um conjunto altamente interconectado, eficientemente compartilham recursos, permitindo comunicação rápida e acesso direto aos recursos compartilhados.

    Exemplos: Mainframes e servidores de alto desempenho são exemplos de sistemas fortemente acoplados. Eles são fundamentais em ambientes de processamento de transações financeiras, manipulação de grandes volumes de dados, e em aplicações que demandam alta taxa de transferência e baixa latência.

    Esses sistemas estão amplamente presentes, sendo implementados na maioria dos sistemas operacionais, inclusive em dispositivos pessoais e móveis.

    Sistemas Fracamente Acoplados ,neste tipo de sistema, os componentes são independentes e se comunicam por meio de redes, como LANs ou WANs. Cada componente possui recursos dedicados, como processadores, memória e dispositivos de entrada/saída.

    Exemplos: Clusters de servidores, sistemas de computação em nuvem e redes de sensores distribuídos são exemplos de sistemas fracamente acoplados. Eles são ideais para ambientes distribuídos, nos quais os componentes estão fisicamente separados e podem estar localizados em diferentes máquinas ou locais geográficos.

    Esses sistemas oferecem flexibilidade, escalabilidade e tolerância a falhas, já que a falha de um componente afeta apenas a parte do sistema associada a esse componente. No entanto, a comunicação entre os componentes pode ser mais lenta devido à transmissão de dados pela rede, tornando a coordenação e sincronização mais desafiadoras.

    Conclusão

    Ao longo da história da computação, testemunhamos uma notável evolução nos sistemas operacionais, desde os monoprogramáveis, que dedicavam todos os recursos a uma única tarefa, até os multiprogramáveis e sistemas com múltiplos processadores, que buscaram otimizar o uso eficiente dos recursos, permitindo a execução simultânea de múltiplos programas.

    Os sistemas multiprogramáveis superaram as limitações dos monoprogramáveis, possibilitando uma distribuição mais inteligente dos recursos do sistema. A capacidade de execução simultânea não apenas aumentou a eficiência, mas também reduziu custos, proporcionando uma experiência mais dinâmica para os usuários. A introdução de sistemas de tempo compartilhado e tempo real demonstra a diversidade de aplicações e exigências que os sistemas operacionais modernos precisam atender.

    Além disso, a ascensão dos sistemas com múltiplos processadores marcou um salto significativo em termos de desempenho e confiabilidade. Desde sistemas fortemente acoplados, presentes em mainframes e servidores de alto desempenho, até sistemas fracamente acoplados, como clusters de servidores e ambientes em nuvem, a abordagem simultânea se tornou essencial para enfrentar os desafios contemporâneos.

    Compartilhe
    Recomendados para você
    Microsoft AI for Tech - Azure Databricks
    Microsoft Certification Challenge #3 DP-100
    Decola Tech 2025
    Comentários (0)
    Recomendados para você