Hoje falaremos um pouco sobre sistemas operacionais, estudando através do livro Arquitetura de Sistemas Operacionais, dos mestres Francis Berenger Machado e Luiz Paulo Maia.
Recomendo muito a leitura do livro, sério. Os autores trazem inclusive um breve apanhado sobre arquitetura de computadores, que serve muito bem para refrescar a memória.
Abordarei aqui:
- O que é um sistema operacional?
- Quais são as funções de um sistema operacional?
- Quais os tipos de sistemas operacionais?
Como já sabemos, um computador é uma máquina de camadas, ou seja, possui diferentes níveis, do hardware até abstrações mais avançadas. Podemos entender que o sistema operacional está acima da camada 0, que seria o hardware.
O fato do sistema operacional ser mais abstrato que o hardware nos permite utilizar o computador como se o mesmo nem existisse, sem se preocupar em interagir com os componentes físicos.
O que é um sistema operacional?
Podemos entender como sistema operacional um:
(...) conjunto de rotinas executadas pelo processador (...)
… Assim como um software, um programa comum que nós usuários utilizamos.
O objetivo do sistema operacional é ser uma interface entre o usuário e o computador, o que torna nossa vida mais simples, pois não precisamos conhecer a fundo detalhes sobre hardware e implementar tudo do zero para resolver nossos problemas.
Essas rotinas são executadas simultaneamente (concorrentemente) com base em eventos, que podem ocorrer a qualquer momento.
Quais são as funções de um sistema operacional?
A função principal de um sistema operacional é:
(...) controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus diversos recursos, como processadores, memórias e dispositivos de entrada e saída.
Em outras palavras, a função do sistema é controlar o hardware e gerenciar o uso de seus recursos.
Quais os tipos de sistemas operacionais?
Existem alguns tipos de sistemas operacionais e iremos abordar aqui os sistemas monotarefa, sistemas multitarefa e os sistemas com múltiplos processadores.
Sistemas monoprogramáveis/monotarefa
Em computadores mais antigos os sistemas operacionais funcionavam de forma bloqueante, digamos assim. Eram voltados a uma única tarefa, como numa única thread de execução. Só era possível fazer qualquer outra coisa com o sistema após o término da tarefa.
Temos que 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.
Por um lado a implementação desse tipo de sistema operacional é mais simples, mas por outro seu uso é limitado.
Sistemas multiprogramáveis/multitarefa
Nesse tipo de sistema temos que:
(...) os recursos computacionais são compartilhados entre os diversos usuários e aplicações.
Aqui vemos o sistema operacional gerenciando o acesso para diversas aplicações e usuários, simultaneamente.
A depender do número de usuários podemos classificar o sistema multiprogramável como:
- Monousuário: aqui temos uma única pessoa interagindo com o sistema
- Multiusuário: nesse tipo temos dois ou mais usuários interagindo com o sistema simultaneamente
Podemos classificar os sistemas multitarefa a depender da forma como gerenciam as aplicações:
- Sistemas batch
- Sistemas de tempo compartilhado
- Sistemas de tempo real
Vamos entender cada um deles.
Sistemas batch
Esse sistema foi bastante implementado na década de 60, na época dos cartões perfurados. Aqui não é necessário que os usuários interajam com a aplicação durante o processamento de uma tarefa.
As entradas e saídas desse tipo de sistema operacional são fornecidas por uma memória secundária. Hoje em dias computadores modernos simulam o processamento batch.
Sistemas de tempo compartilhado (time-sharing)
Nesse tipo de sistema operacional temos que:
(...) permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos, denominados fatia de tempo (time slice) (...)
Aqui o sistema possui uma linguagem específica de controle para que o usuário possa dar comandos no sistema operacional. Como você deve ter pensado, esse tipo de sistema é bastante comum atualmente.
Um sistema de tempo compartilhado permite que, se a fatia de tempo não for suficiente, o processamento da tarefa pode ser pausado e depois retomado.
Sistemas de tempo real (real time)
Este tipo de sistema é muito semelhante ao de tempo compartilhado, a diferença é que em sistemas de tempo real o tempo de processamento da tarefa não pode variar, ele é rígido e precisa ser obedecido para funcionar corretamente.
Ou seja, não há a ideia de fatia de tempo, o programa utilizará o processador pelo tempo que for necessário ou até que apareça outro programa mais importante. Um exemplo aqui são sistemas operacionais com aplicações de monitoramento de usinas de petróleo.
Sistemas com múltiplos processadores
Sobre esse tipo de sistema temos que:
(...) caracterizam-se por possuir duas ou mais CPUs interligadas e trabalhando em conjunto.
Temos três características importantes sobre esse tipo de sistema operacional:
- Escalabilidade: tem a capacidade de aumentar o poder computacional adicionando mais processadores
- Disponibilidade: consegue manter-se em operação em situação de falha
- Balanceamento de carga: pode distribuir o processamento entre os processadores considerando a “carga de trabalho” de cada um
Como exemplo, podemos pensar aqui em sistemas dedicados a processamento científico.
Os sistemas com múltiplos processadores podem ser divididos em fortemente acoplados ou fracamente acoplados.
Sistemas fortemente acoplados (tightly coupled)
Aqui os processadores são gerenciados por um sistema operacional e compartilham a mesma memória e dispositivos de entrada e saída.
Podemos pensar em sistemas comuns atualmente como Linux, MacOS e Windows.
Esse tópico me fez pensar no Dell G5 com Intel hexa core que está custando absurdos 9000 coronas.
Sistemas fracamente acoplados (loosely coupled)
São sistemas que possuem dois ou mais sistemas operacionais conectados se comunicando.
Inicialmente, lá pena década de 80, as aplicações eram centralizadas em um sistema de grande porte. Conforme os computadores evoluíram, atualmente conseguimos ver computadores conectados em forma de rede (redes de computadores). Pensando em cada host da rede:
(...) podemos dividir os sistemas fracamente acoplados em sistemas operacionais de rede e sistemas distribuídos.
Em sistemas operacionais de rede os usuários conhecem os hosts e os serviços que estes oferecem, mas em um sistema distribuído o mesmo esconde detalhes dos hosts e de seus serviços para tratá-los como uma coisa única (como se fosse fortemente acoplado).
Um exemplo comum de sistema distribuído são os clusters, onde temos servidores interligados.
Fontes:
MACHADO, Francis Berenger; MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais: Incluindo Exercícios com o Simulador SOSIM e Questões do ENADE. Rio de Janeiro: LTC, 2013.
Imagem:
TANENBAUM, Andrew S; AUSTIN, Todd. Organização estruturada de computadores. Tradução Daniel Vieira; revisão técnica Wagner Luiz Zucchi. São Paulo: Pearson Prentice Hall, 2013.
Photo by Alex Motoc on Unsplash
Photo by Panos Sakalakis on Unsplash
Esse texto não tem intenção de esgotar o tema. Acrescente nos comentários, e também aponte erros quando os identificar.
Top comments (0)