Sistema operacional: o “deus ex machina” de nossos dispositivos
É inegável, vivemos imersos em um mar de aparelhos eletrônicos. A consequência direta é que, cada vez mais frequentemente, até mesmo os não especialistas têm que lidar com termos técnicos. Graças à crescente difusão de dispositivos comumente usados ou mais avançados, ouvimos muito frequentemente sobre o sistema operacional (em inglês, Operating System, abbr. OS).
De smartphones a TVs, de rádios a muitos dispositivos vestíveis (em inglês, wearable). Cada um desses dispositivos eletrônicos, desde os menores e mais rudimentares até os maiores e mais complexos, nos forçam, na verdade, nos forçam a interagir com um sistema operacional moderno.
Mas o que é um sistema operacional? Estamos realmente certos de que sabemos?
Qual é o sistema operacional
Devemos pensar no sistema operacional como um intermediário , ou seja, um programa muito complexo capaz de fornecer um vasto ambiente onde o usuário pode executar suas aplicações ou emitir comandos de forma adequada e eficiente.
Um computador é constituído de forma modular: entre os vários módulos podemos encontrar teclado, vídeo, rato, discos, memória de massa, memória central, dispositivos de entrada/saída abbr. EU. Escrever programas que levem em conta toda essa complexidade ou delegar seu uso correto ao desafortunado usuário seria impensável. Uma das principais tarefas de um sistema operacional é gerenciar o hardware do dispositivo e fornecer aos programas do usuário uma interface simplificada.
O SO torna toda a hierarquia de comandos e ações transparente para o usuário que, a partir das aplicações, se desdobra até a verdadeira microarquitetura do sistema computacional. O sistema operacional é, portanto, um software que supervisiona o funcionamento do dispositivo atuando como intermediário entre o usuário e o hardware ; o objetivo é fornecer um ambiente no qual executar programas de forma eficiente. De fato, o sistema operacional pode ser observado de diferentes perspectivas, destacando diferentes aspectos e tarefas:
- gerenciar a interação usuário-computador;
- interface entre aplicativos e recursos computacionais;
- gerenciar o compartilhamento de recursos;
- otimizar o uso de recursos.
Um pouco de história
Como todas as coisas , os sistemas operacionais também evoluíram ao longo dos anos . Eles sempre estiveram estritamente ligados à arquitetura da máquina em que foram executados, a ponto de criar uma correspondência um a um com o computador.
Um dos primeiros computadores, neste caso mecânico, foi o projetado pelo matemático inglês Charles Babbage e foi chamado de "motor analítico". Esta máquina, devido a uma série de dificuldades da época, inclusive a natureza problemática da construção de rodas mecânicas, não conseguiu funcionar adequadamente. Mas a grande intuição do matemático foi perceber que seria necessário um software para sua máquina analítica.
A tarefa de desenvolver um software primordial para sua invenção foi confiada ao que hoje é considerado o primeiro programador da história. Esta foi Ada Lovelace , matemática e escritora inglesa , condessa de Lovelace e filha de Lord Byron e da matemática Isabella Noel Byron. Ada também traduziu e expandiu um artigo científico de Federico Mebabrea ( Notions sur la machine analytique de Charles Babbage ) que continha referências a procedimentos para calcular números de Bernoulli.
Estrutura e funcionalidade do sistema operacional
Os primeiros computadores (década de 1940 e início de 1950) não tinham sistema operacional . Na memória principal, apenas as instruções e os dados do único programa em execução eram carregados e residiam. Devido a alguns gargalos, principalmente devido à grande diferença entre a velocidade de transferência de dados de e para os dispositivos de entrada/saída e a velocidade de execução das instruções, o que levou a uma inatividade improdutiva da CPU, nos anos seguintes surgiram sistemas com características diferentes: sistemas operacionais multiprogramados.
Na base da multiprogramação está a ideia de permitir o aumento do uso da CPU organizando os trabalhos de forma a mantê-la sempre ativa. Isso acontece porque o sistema operacional mantém vários jobs ( jobs ) na memória central ao mesmo tempo. Ao executar um trabalho, você pode se encontrar na situação de concluir uma operação de entrada/saída. Tal evento em um sistema não multiprogramado deixaria a CPU ociosa (enquanto a operação de E/S for executada). No entanto, isso não acontece em sistemas com multiprogramação, em que o sistema operacional passa para a execução de outro processo, obtendo assim que a CPU nunca fique ociosa .
Na década de 1960, portanto, com a multiprogramação, as CPUs passaram a executar vários programas ao mesmo tempo . Aproveitando o tempo morto ou aguardando a conclusão das operações de E/S de um programa para avançar na execução de outro job. O próximo passo, na década de 1970, foi a vez dos sistemas operacionais de compartilhamento de tempo e dos sistemas baseados em prioridades. No compartilhamento de tempo, o sistema operacional deve ser capaz de interromper a execução de um programa para iniciar outro , enquanto na multiprogramação com prioridade, todos os programas recebem uma precedência que mede a importância ou urgência da execução.
O sistema operacional, tendo que escolher entre vários programas prontos para execução, escolhe aquele de maior prioridade; se um usuário executa um novo programa, o sistema operacional verifica sua prioridade e, se necessário, interrompe o software em execução para iniciar a nova solicitação de inicialização. O sistema operacional deve otimizar o uso dos recursos e atuar como uma ponte entre eles e o software.
A estrutura do sistema operacional
Todo o sistema é visto como uma série de níveis de baixo para cima : em primeiro lugar estão os dispositivos de hardware e imediatamente acima encontramos o resto dos níveis nos quais os componentes do sistema operacional estão incluídos e onde cada nível é visto como um máquina virtual, capaz de fornecer determinados serviços. Cada camada opera na máquina virtual de camada inferior e representa uma máquina virtual de camada superior mais poderosa.
Os sistemas operacionais modernos desfrutam de uma arquitetura micro-kernel. Subjacente a esta arquitetura está a ideia de ter um núcleo de sistema operativo que desempenhe um mínimo de funções essenciais. Todas as outras funções são tratadas da mesma forma que os aplicativos. Poucas atividades são reservadas para o micro kernel, como gerenciamento de processador, interrupções e comunicação entre processos.
Todas as funcionalidades do sistema operacional que não estão incluídas no microkernel são agrupadas em uma única camada externa ao próprio microkernel. Para criar sistemas mais simples e flexíveis em sistemas micro-kernel, apenas o núcleo é executado em modo reservado, diferentemente dos sistemas operacionais tradicionais .
O artigo Sistema operacional: o “deus ex machina” de nossos dispositivos foi escrito em: Tech CuE | Engenharia de close-up .