Notícia da Semana - Informática Caro leitor, começo a matéria já com a seguinte pergunta: "Você sabe o que é um Sistema Oper...

Você Sabe o que é um Sistema Operacional?

12:15 Digital Max - Nova Iguaçu 0 Comments

Notícia da Semana - Informática



Caro leitor, começo a matéria já com a seguinte pergunta: "Você sabe o que é um Sistema Operacional?"

Faço a previsão em que sua resposta será algo como: "Um sistema Operacional ou Sistema Operativo é um sistema Windows, Android, Mac, Meego, Linux etc", certo?

Sim, na teoria está certo! Agora de um jeito mais técnico, falando sobre Sistemas Operacionais é algo muito mais abrangente do que dizer simplesmente o "nome" de um suposto sistema operacional atual. Vamos dar início a uma saga dividida em 3 partes focando no real significado sobre o que é um Sistema Operacional, sua diferenciação e quais são seus tipos.

Um sistema operacional (SO) é um conjunto de softwares que gerencia o hardware de computador e fornece recursos comuns e serviços para outros programas (softwares) ou aplicativos (softwares). O sistema operacional é o componente vital de um computador. O sistema operacional atua como um intermediário entre os programas e o hardware do computador. Os sistemas operacionais podem ser encontrados em praticamente qualquer dispositivo que contém um computador a partir de telefones celulares e consoles de videogame, supercomputadores e servidores web, usinas nucleares etc.



História dos Sistemas Operacionais:


Antes da década de 1950, os computadores eram muito difíceis de serem programados. Era necessário conhecer totalmente sua arquitetura, e tal operação era efetuada em painéis com cerca de 6.000 conectores, em linguagem de máquina. Nesta fase primórdia os computadores ainda não tinham dispositivos de interação com o usuário, como teclados, mouse e monitores.

Já na década de 50, houve avanço na tecnologia através da utilização de transistores, que melhorou a velocidade dos processadores e a capacidade dos meios de armazenamento, em especial a memória e os discos magnéticos. Por volta de 1953 foi introduzido o primeiro sistema operacional, na verdade um programa de controle que permitia uma interação limitada entre o operador e a máquina, com foco na otimização na execução de tarefas. Em meados de 1959 foi criada uma versão de sistema operacional que já implementava conceitos básicos de memória virtual que são utilizados até hoje.



Na década de 60, com o surgimento de circuitos integrados, foi possível difundir o uso de sistemas computacionais em empresas, diminuindo custos e tamanho dos equipamentos. Um fato importante esta década de 60 foram as inúmeras inovações na área de sistemas operacionais, indícios que estão presentes até hoje, como os Ambientes de Multitarefa, Multiprogramação, Multiprocessamento e Time-sharing, técnicas que foram evoluindo tecnológicamente até a década de 70, onde também foram implementadas as novas tecnologias baseadas em arquitetura VLSI (chips), as primeiras redes de computadores e o desenvolvimento de diversas linguagens de programação de alto nível.

Já a década de 80 foi marcada pela criação dos microcomputadores, baseados em microprocessadores de uso pessoal. Liderados pela IBM, diversos fabricantes seguiram a mesma linha de raciocínio e desenvolvimento. Ainda na década de 80, aconteceu uma divisão da indústria que continuou inovando na produção de equipamentos de grande porte e os diversos modelos de microcomputadores, que também precisavam de sistemas operacionais bastante evoluídos.


Neste avanço foram utilizadas as técnicas modernas que eram utilizadas nos ambientes de grande porte (mainframes), para serem implementados em sistemas operacionais para os microcomputadores, todas inicialmente monousuário/monotarefa (devido à baixa capacidade de armazenamento dos micros, da época). Com o avanço da tecnologia, os pequenos micros ao longo do tempo foram ganharam discos rígidos e outros periféricos, que deram a possibilidade para criação de sistemas operacionais muito mais evoluídos.

Quais São os Tipos de Sistemas Operacionais:


Sistemas Mono Programáveis / Mono Tarefa
Os primeiros sistemas operacionais eram voltados tipicamente para a execução de um único programa. Qualquer outra aplicação, para ser executada, deveria aguardar o término do programa corrente. Neste tipo de sistema, o processador, a memória e os periféricos permanecem exclusivamente dedicados à execução de um único programa.

Os sistemas monoprogramáveis estão diretamente ligados ao surgimento, na década de 50/60, dos primeiros computadores. Embora os sistemas operacionais já tivessem evoluído com as tecnologias de multitarefa e multiprogramáveis, os sistemas monoprogramáveis
voltaram a ser utilizados na plataforma de microcomputadores pessoais e estações de trabalho devido à baixa capacidade de armazenamento destas máquinas, na época.

Era muito clara a desvantagem deste tipo de sistema, no que diz respeito à limitação de tarefas (uma tarefa de cada vez), o que provocava um grande desperdício de todos os recursos de hardware.



Comparados a outros sistemas, os sistemas monoprogramáveis são de simples implementação, não existindo muita preocupação com problemas de compartilhamento de recursos, tais como memória, processador e dispositivos de E/S.


Sistemas Multiprogramáveis / Multitarefa

Constituindo-se uma evolução dos sistemas monoprogramáveis, neste tipo de sistema os recursos computacionais são compartilhados entre os diversos usuários e aplicações: Ex. enquanto um programa espera por um evento, outros programas podem estar processando neste mesmo intervalo de tempo. Neste caso, podemos observar o compartilhamento da memória e do processador.
Quem fica a cargo deste processo é o sistema operacional, pois gerencia o acesso concorrente aos seus diversos recursos, como processador, memória e periféricos, de forma ordenada e protegida. As vantagens do uso deste tipo de sistema são a redução do tempo de resposta das aplicações, além dos custos reduzidos devido ao compartilhamento dos recursos do sistema entre as diferentes aplicações utilizadas. Apesar de mais eficientes que os monoprogramáveis, os sistemas multiprogramáveis são de implementação muito mais complexa.



Os sistemas multiprogramáveis/multitarefa podem ser classificados de acordo com a forma com que suas aplicações são gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado e também de tempo real.


Sistemas BATCH

Foram os primeiros sistemas multiprogramáveis a serem implementados na década de 60. Nesta modalidade, os programas eram submetidos para execução através de cartões perfurados e armazenados em disco ou fita, para posterior execução. Vem daí o nome batch
(lote de cartões). O processamento em batch tem como característica não exigir interação do usuário como sistema ou com a aplicação. Todas as entradas ou saídas são implementadas por meio de algum tipo de memória secundária, geralmente disco ou fita.

Aplicações deste tipo eram utilizadas em cálculo numérico, compilações, backups, etc. Estes sistemas, se bem projetados, podem ser bastante eficientes devido à melhor utilização do processador, mas podem oferecer tempos de resposta bastante longos.

Nos sistemas operacionais atuais que utilizamos em nosso dia-a-dia, estes que simulam este tipo de processamento em Batch, não havendo sistemas totalmente dedicados a este tipo de execução em lote.


Sistemas de Múltiplos Processadores

Os sistemas com múltiplos processadores caracterizam-se por possuir duas ou mais CPUs interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em várias partes para serem executadas simultaneamente em mais de um processador.

Esta técnica permitiu a criação de sistemas computacionais voltados para processamento científico, prospecção de petróleo, simulações para aeronaves ou corridas , processamento de imagens e CAD.
Um fator chave no desenvolvimento dos sistemas multiprocessados é a forma de comunicação entre as CPUs e o grau de compartilhamento da memória e seus dispositivos de E/S. Em função destes fatores, podemos classificar os sistemas multiprocessados de acordo com a figura a seguir:



Na figura acima podemos perceber a divisão dos sistemas multiprocessados em duas categorias iniciais:

Sistemas fortemente acoplados e Sistemas fracamente acoplados. A grande diferença entre estas duas categorias é que nos sistemas fortemente acoplados existe apenas uma memória a ser compartilhada pelos processadores do conjunto, já nos sistemas fracamente acoplados, cada sistema tem sua própria memória individual. A taxa de transferência entre processadores e memória em sistemas fortemente acoplados é muito superior se comparada aos sistemas fracamente acoplados.

Nos sistemas fortemente acoplados a memória principal e os dispositivos de E/S são gerenciados por um único sistema operacional. Quando todos os processadores na arquitetura são iguais, diz-se que o sistema é simétrico. No entanto, quando os processadores são diferentes, dá-se a arquitetura a denominação assimétrica.

Nos sistemas fracamente acoplados, como os processadores estão em arquiteturas diferentes, somente interligados por cabos de interconexão, cada CPU constitui uma máquina independente, com memória própria, dispositivos de E/S e sistemas operacionais completamente independentes.

Nesta subdivisão, temos como exemplo as redes e os sistemas distribuídos. No ambiente de rede, existem dois ou mais sistemas independentes (hosts ou PC's), interligados, que oferecem algum tipo de serviço aos demais, permitindo que um host compartilhe seus recursos, como impressora e arquivos com os outros hosts da rede.

Enquanto nos sistemas em rede os usuários têm conhecimento dos hosts e seus serviços, nos sistemas distribuídos o sistema operacional esconde os detalhes dos hosts individuais e passa a tratá-los apenas como um único conjunto, como se fosse um sistema único e fortemente acoplado.

Os sistemas distribuídos permitem, por exemplo, que uma aplicação seja dividida em partes e que cada parte seja executada por hosts diferentes na rede. Para os usuários e suas aplicações é como se não existisse a rede, mas um único sistema centralizado.

Um ex. clássico de sistemas distribuídos são os clusters que são muito utilizados em servidores de bancos de dados e Web. Em um cluster podem existir dois ou mais servidores ligados por algum tipo de conexão de alto desempenho, e o usuário não conhece os nomes dos membros do cluster e nem quantos são (ato completamente transparente para o usuário).



Quando é necessário algum serviço, basta solicitar ao cluster para obtê-lo, sem se preocupar com quem vai dispor e oferecer o respectivo serviço solicitado.


Resumindo…

Talvez o conteúdo desta matéria seja técnico demais, mas serve como material de referência caso necessite saber um pouco mais sobre sistemas distribuídos, sistemas fracamente acoplados, múltiplos processadores ou sistemas operacionais mono tarefa.