Sistema operacional e hardware, como eles funcionam juntos em um PC?

Não importa se você usa Windows, Linux, macOS ou qualquer outro tipo de sistema operacional. Todos cumprem a mesma função que é comunicar o software com o hardware, realizar a gestão de rotinas e processos e muitas outras tarefas. Qual é a função do sistema operacional em seu sistema e como ele está relacionado ao hardware?

Todo PC nada mais é do que um sistema integrado de hardware e software, onde o sistema operacional é o que poderíamos chamar de programa mais importante, servindo como uma ponte entre os programas e o próprio hardware. Sem o sistema operacional, os programas não poderiam interagir com o hardware, pois estamos falando de dois mundos diferentes: o primeiro, que é basicamente intangível e que é o dos programas ou software, e o segundo, que é o dos processadores. e as memórias.

Sistema operacional e hardware, como eles funcionam juntos em um PC

Na realidade, quando qualquer um de nós faz uso de um aplicativo no computador, não estamos apenas usando esse aplicativo, o aplicativo usa o sistema operacional, que por sua vez usa o hardware. Então, se, por exemplo, você agora está escrevendo um email ou lendo este artigo, então você tem que saber que o que você está vendo na tela é o produto dessa relação entre o software, o sistema operacional e o hardware.

Os primeiros sistemas operacionais eram simples, mas à medida que o poder do hardware aumentava, tornou-se possível que eles fizessem mais e mais coisas, ao mesmo tempo que o sistema operacional tinha que gerenciá-los. Também não podemos esquecer a enorme variedade de hardware que existe para PC hoje. A maioria são produtos genéricos, mas outros requerem comunicação específica para funcionar corretamente.

O sistema operacional decide o que, onde e quando as coisas são executadas

Procesos Sistema Operativo

Os programas nada mais são do que uma série de instruções sequenciais que o CPU tem que ser executado, é verdade que um programa tem saltos e loops, se formos rigorosos um programa nada mais é do que isso. Dentro de cada programa, pode haver vários subprogramas executados em paralelo ou em série. Seja como for, estes têm que ser executados na CPU e existem dezenas de rotinas e processos que o sistema operativo tem de gerir a todo o momento.

Os programas não decidem qual processo ou rotina é executado a cada momento, nem onde e muito menos quando. Este é o trabalho do kernel do sistema operacional que gerencia os diferentes processos. Certamente você já forneceu o gerenciador de tarefas, especificamente para a guia de processos em segundo plano.

Pois bem, tudo isso é o que o sistema operativo tem que gerir e tem que fazer de tal forma que cada um dos programas receba do CPU o tempo de processamento de que necessita. Quando um programa ou o PC está lento, isso ocorre porque o sistema operacional não tem energia suficiente (ou otimização se necessário) da CPU para realizar suas tarefas do dia-a-dia.

Cliente VIP em RAM e processador

Sistema Operativo Procesos Memoria

O sistema operacional funciona como o resto dos programas em RAM, mas para evitar que o resto dos programas interfiram em seu funcionamento e até mesmo modifiquem os dados e instruções manipuladas pelo sistema operacional, o que se faz é reservar um espaço de RAM exclusivamente para o sistema operacional ao qual nenhum outro programa pode, em quaisquer circunstâncias, em condições normais.

Porque o sistema operacional é aquele que se comunica com o hardware, possui uma hierarquia que está acima dos demais programas, pois ao gerenciar a execução das rotinas, o sistema operacional também tem acesso para o espaço de RAM dos programas . Em outras palavras, o sistema operacional é como uma governanta que tem acesso a todos os cômodos da mansão que seriam memória, enquanto os programas teriam acesso limitado. No caso de estarmos executando um sistema operacional virtualizado, o hipervisor do sistema operacional é aquele que tem acesso direto ao hardware.

No entanto, nada é perfeito e há momentos em que podem ser criadas brechas de segurança que são exploradas por certos programas para executar códigos no espaço do sistema operacional. Por exemplo, os vírus de computador são assim chamados porque conseguem infectar a parte da memória atribuída ao sistema operacional com seu código, permitindo-lhes escapar de seu controle.

Comunicação entre o sistema operacional e o hardware

driver do sistema operativo

No PC, o acesso ao hardware é feito utilizando certos endereços de memória , que ao enviar dados para eles não causam um efeito de leitura ou escrita dos mesmos na RAM, mas acabam gerando uma ação específica no hardware associado àquele endereço de memória. De forma automática ou na sua falta, os dados servem como um método de entrada para a referida função. Hoje, devido à enorme quantidade de rotinas e processos que são executados, os drivers são utilizados para comunicar os programas com o hardware.

Portanto, quando o sistema operacional requer acesso a certas funções de hardware, ele torna os motoristas trabalham. Um motorista nada mais é do que um abstração de como o hardware funciona. Na computação, chamamos de abstração um programa que emula um elemento tanto quanto possível. No caso específico do driver, ele não emula o hardware em sua totalidade, mas o que faz é emular seu interface de comunicação . O próprio driver é então aquele que transforma isso em instruções que o hardware entende para que o sistema operacional possa se comunicar com os diferentes componentes e dispositivos do PC.

Apesar de na arquitetura x86 o endereçamento de memória e I / O ser unificado em níveis práticos e hoje está separado, já que o acesso em geral é feito através do MMU , é o IOMMU que se encarrega da comunicação com os periféricos, que está subordinado ao primeiro.

Resumindo, hardware e sistema operacional são essenciais entre eles, não funcionam sozinhos em nenhum caso e precisam de um terceiro ator como os drivers, o que complica ainda mais todo o framework em todas as suas funções.