Os sistemas operacionais modernos têm muitas responsabilidades na tarefa de gerir os recursos de um computador. Com isso, assinale a alternativa que lista as tarefas do sistema operacional.
Um sistema operacional é fundamentalmente um software, pode ser o Linux, Windows, Android, macOS, UNIX. No entanto, não resume aquilo que seus olhos conseguem ver ou ao que você consegue interagir. Em outras palavras, é um programa que conversa diretamente com o hardware da sua máquina.
O sistema operacional assegura que os programas funcionem corretamente. Mas antes de entendermos o que é um sistema operacional, precisamos definir o que é um sistema computacional.
Um computador moderno apresenta alguns elementos principais, que podemos destacar:
Um ou mais processadores (o core);
Memória principal;
Dispositivos de entrada e saída (E/S) como monitores e teclados.
Todos esses componentes lidam em conjunto com os programas na sua máquina. À primeira vista pode parecer pouca coisa mas você conhece de fato todos os componentes que pertencem ao seu computador? Sabe como todos eles funcionam?
Já pensou então se todo o usuário se preocupasse com detalhes de hardware para escrever um arquivo de texto, ou pior, se os desenvolvedores tivessem que aprender os pormenores dos componentes de um computador moderno para conseguir começar a programar? Parece um trabalho sem fim, não é?
Assim a gente não precisa se preocupar em administrar todos os recursos na mão, ou então, por exemplo, ter que deslocar um espaço na memória específico para determinada variável?
Ademais, certamente a quantidade de programadores e softwares disponíveis na atualidade não seria a mesma se houvesse a necessidade também de gerenciar formas de otimização dos recursos.
Muitas vezes o sistema operacional é considerado como um software base. Base porque fornece suporte às aplicações. Funciona como uma interface entre a aplicação e rotinas de E/S com o hardware, ou seja, é preciso de um sistema que faça essa conversa, e é nesse campo que o sistema operacional atua. Essa peça mais elementar de software opera em dois modos: o modo núcleo (modo supervisor) e modo usuário.
No modo supervisor o acesso é completo a todo o hardware, e é possível enviar qualquer instrução que a máquina seja capaz de executar. O modo usuário é mais restrito para instruções que interferem no controle da máquina, mas é onde todo o resto do software opera.
Na imagem abaixo, conseguimos visualizar de forma simplificada as responsabilidades dos modos usuário e núcleo, assim como o local de atuação dos programas de interface com o usuário (GUI ou shell):
Embora a divisão de responsabilidades pareça muito clara, em diversas ocasiões, a distinção entre o campo de atuação do sistema operação e o modo usuário (software usual) se torna complexa. Um exemplo dessa afirmação é um programa que funciona em modo usuário, mas executa tarefas privilegiadas, como permitir ao usuário a troca de senha.
Em outras palavras, definir exatamente um sistema operacional não é tão simples assim, mas conseguimos diferenciá-los de programas de usuário por meio de suas particularidades.
Em resumo, um sistema operacional é um software que apresenta duas características principais: 1) funcionar como uma ponte entre aplicações na camada do usuário e hardware; 2) e gerenciar os recursos de um sistema complexo (por exemplo, quando você executa vários programas ao mesmo tempo, na realidade é o seu sistema operacional que troca, em frações de segundos, o programa processado pela unidade central de processamento).
Além do mais, são programas robustos, complexos e possuem longa vida. Sobretudo pelo fato de serem muito difíceis de escrever, você acredita que o Linux tem cerca de cinco milhões de linhas? E isso só a parte que opera no modo núcleo!
Sistema operacional, o herói mascarado
Já discutimos que lidar com a arquitetura de hardware é algo muito trabalhoso, a linguagem de máquina é complexa e por essa razão todos os sistemas operacionais fornecem ao usuário um nível de abstração.
Para criar um arquivo, uma foto ou música no seu computador você não precisa conhecer os pormenores de hardware, mas usa a abstração fornecida para realizar essa tarefa. Dessa maneira, o hardware fica “escondido” nesse processo.
Os sistemas operacionais também fornecem uma série de benefícios, como maior portabilidade das aplicações (possibilidade de uso de uma mesma aplicação em diferentes computadores) e proporcionam o espaço para que as aplicações se dediquem a problemas de alto nível, ou seja, aos problemas que foram designadas para solucionar.
Além disso, só é possível executar múltiplos programas simultaneamente graças ao gerenciamento de recursos do sistema operacional.
O gerenciamento de recursos apresenta a multiplexação, que é o compartilhamento de recursos no tempo e no espaço. Em outras palavras, quando diferentes programas ou mesmo usuários realizam o revezamento no uso de um recurso, esse recurso é multiplexado no tempo.
Um exemplo bem comum de multiplexação no tempo é quando temos várias saídas de impressão em fila e apenas uma impressora, o que ocorre é que haverá uma decisão sobre qual documento será impresso primeiro.
Os sistemas operacionais hoje, na 5º geração de computadores, não se limitam aos desktops, mainframes ou notebooks. Observamos a presença em diferentes dispositivos, de IoT, celulares, até carros autônomos e muitos outros.
Diversas arquiteturas de sistemas operacionais foram criadas para atender a essas demandas especializadas. Vamos conhecer alguns?
Lista de comentários
Resposta:
O que é sistema operacional e qual o seu papel?
Um sistema operacional é fundamentalmente um software, pode ser o Linux, Windows, Android, macOS, UNIX. No entanto, não resume aquilo que seus olhos conseguem ver ou ao que você consegue interagir. Em outras palavras, é um programa que conversa diretamente com o hardware da sua máquina.
O sistema operacional assegura que os programas funcionem corretamente. Mas antes de entendermos o que é um sistema operacional, precisamos definir o que é um sistema computacional.
Um computador moderno apresenta alguns elementos principais, que podemos destacar:
Um ou mais processadores (o core);
Memória principal;
Dispositivos de entrada e saída (E/S) como monitores e teclados.
Todos esses componentes lidam em conjunto com os programas na sua máquina. À primeira vista pode parecer pouca coisa mas você conhece de fato todos os componentes que pertencem ao seu computador? Sabe como todos eles funcionam?
Já pensou então se todo o usuário se preocupasse com detalhes de hardware para escrever um arquivo de texto, ou pior, se os desenvolvedores tivessem que aprender os pormenores dos componentes de um computador moderno para conseguir começar a programar? Parece um trabalho sem fim, não é?
Assim a gente não precisa se preocupar em administrar todos os recursos na mão, ou então, por exemplo, ter que deslocar um espaço na memória específico para determinada variável?
Ademais, certamente a quantidade de programadores e softwares disponíveis na atualidade não seria a mesma se houvesse a necessidade também de gerenciar formas de otimização dos recursos.
Muitas vezes o sistema operacional é considerado como um software base. Base porque fornece suporte às aplicações. Funciona como uma interface entre a aplicação e rotinas de E/S com o hardware, ou seja, é preciso de um sistema que faça essa conversa, e é nesse campo que o sistema operacional atua. Essa peça mais elementar de software opera em dois modos: o modo núcleo (modo supervisor) e modo usuário.
No modo supervisor o acesso é completo a todo o hardware, e é possível enviar qualquer instrução que a máquina seja capaz de executar. O modo usuário é mais restrito para instruções que interferem no controle da máquina, mas é onde todo o resto do software opera.
Na imagem abaixo, conseguimos visualizar de forma simplificada as responsabilidades dos modos usuário e núcleo, assim como o local de atuação dos programas de interface com o usuário (GUI ou shell):
Embora a divisão de responsabilidades pareça muito clara, em diversas ocasiões, a distinção entre o campo de atuação do sistema operação e o modo usuário (software usual) se torna complexa. Um exemplo dessa afirmação é um programa que funciona em modo usuário, mas executa tarefas privilegiadas, como permitir ao usuário a troca de senha.
Em outras palavras, definir exatamente um sistema operacional não é tão simples assim, mas conseguimos diferenciá-los de programas de usuário por meio de suas particularidades.
Em resumo, um sistema operacional é um software que apresenta duas características principais: 1) funcionar como uma ponte entre aplicações na camada do usuário e hardware; 2) e gerenciar os recursos de um sistema complexo (por exemplo, quando você executa vários programas ao mesmo tempo, na realidade é o seu sistema operacional que troca, em frações de segundos, o programa processado pela unidade central de processamento).
Além do mais, são programas robustos, complexos e possuem longa vida. Sobretudo pelo fato de serem muito difíceis de escrever, você acredita que o Linux tem cerca de cinco milhões de linhas? E isso só a parte que opera no modo núcleo!
Sistema operacional, o herói mascarado
Já discutimos que lidar com a arquitetura de hardware é algo muito trabalhoso, a linguagem de máquina é complexa e por essa razão todos os sistemas operacionais fornecem ao usuário um nível de abstração.
Para criar um arquivo, uma foto ou música no seu computador você não precisa conhecer os pormenores de hardware, mas usa a abstração fornecida para realizar essa tarefa. Dessa maneira, o hardware fica “escondido” nesse processo.
Os sistemas operacionais também fornecem uma série de benefícios, como maior portabilidade das aplicações (possibilidade de uso de uma mesma aplicação em diferentes computadores) e proporcionam o espaço para que as aplicações se dediquem a problemas de alto nível, ou seja, aos problemas que foram designadas para solucionar.
Além disso, só é possível executar múltiplos programas simultaneamente graças ao gerenciamento de recursos do sistema operacional.
O gerenciamento de recursos apresenta a multiplexação, que é o compartilhamento de recursos no tempo e no espaço. Em outras palavras, quando diferentes programas ou mesmo usuários realizam o revezamento no uso de um recurso, esse recurso é multiplexado no tempo.
Um exemplo bem comum de multiplexação no tempo é quando temos várias saídas de impressão em fila e apenas uma impressora, o que ocorre é que haverá uma decisão sobre qual documento será impresso primeiro.
Os sistemas operacionais hoje, na 5º geração de computadores, não se limitam aos desktops, mainframes ou notebooks. Observamos a presença em diferentes dispositivos, de IoT, celulares, até carros autônomos e muitos outros.
Diversas arquiteturas de sistemas operacionais foram criadas para atender a essas demandas especializadas. Vamos conhecer alguns?
Explicação: