Acabei de terminar um curso sobre sistemas operacionais e a definição de sistema operacional ainda não está clara para mim. Algum sistema operacional consome recursos como CPU e memória? Por exemplo, o algoritmo de escalonamento deve consumir algum poder de processamento para comparar tarefas para ver qual vai primeiro e qualquer estrutura de dados em que as tarefas são mantidas ocupa espaço.
Também o ato de saber o que fazer com a memória virtual deve exigir cálculos que consomem recursos, certo?
Hipoteticamente falando, se um computador com um programa e nenhum sistema operacional estivesse executando o programa, o programa seria executado até o fim mais rápido do que no mesmo computador, mas com um sistema operacional. Isso é verdade?
EDIT: Concordo que o curso foi uma porcaria total, para fins de diversão aqui está a definição de sistema operacional que nos foi dada
O que são sistemas operacionais? • Várias definições possíveis 1. O código que {Microsoft, Apple, comunidade Linux, Google} fornece 2. O código do qual você depende e que também não escreveu 3. O código que roda em modo privilegiado 4. O código que faz as coisas trabalho 5. O código que faz as coisas travarem (definição um tanto cínica) 6. E muitos outros...
O que são sistemas operacionais • Uma abstração – fornecendo uma interface apropriada para aplicativos executados em um computador para acessar os recursos desse computador – depende muito de como definimos “apropriado” • Uma maneira de abordar diferentes preocupações – desempenho no tempo – desempenho no espaço – compartilhamento e gestão de recursos – tolerância a falhas – segurança – comercialização
Essa zombaria de um livro didáticotivemos que gastar mais de US$ 100, define sistemas operacionais como "é aquele software do qual quase todo o resto depende. Isso ainda é vago, mas o termo é usado de uma maneira um tanto nebulosa em toda a indústria".
Responder1
O próprio sistema operacional consome recursos (além do espaço em que está instalado)?
Sim.
Acabei de terminar um curso sobre sistemas operacionais e a definição de sistema operacional ainda não está clara para mim.
Em um nível inferior, um sistema operacional não é diferente de qualquer outro programa; em última análise, nada mais é do que um monte de instruções da CPU. A única diferença é que as instruções de um sistema operacional fazem algo (mais ou menos) diferente das instruções de um programa.
A melhor maneira de descrever um sistema operacional é como ummeta-programa. Ou seja, em vez defazendo algo, o programa permiteoutroprogramas para fazer alguma coisa.
Algum sistema operacional consome recursos como CPU e memória?
Sim claro.
Por exemplo, o algoritmo de escalonamento deve consumir algum poder de processamento para comparar tarefas para ver qual vai primeiro e qualquer estrutura de dados em que as tarefas são mantidas ocupa espaço.
Exatamente. As funções do sistema operacional são apenas pilhas de instruções da CPU e, como as funções de um programa do usuário, ocupam espaço e devem ser executadas na CPU.
Também o ato de saber o que fazer com a memória virtual deve exigir cálculos que consomem recursos, certo?
Naturalmente.
Hipoteticamente falando, se um computador com um programa e nenhum sistema operacional estivesse executando o programa, o programa seria executado até o fim mais rápido do que no mesmo computador, mas com um sistema operacional. Isso é verdade?
Um pouco.
Lembre-se de que as CPUs são muito rápidas e podem executar ummuitoinstruções em um curto período de tempo. Além disso, os sistemas operacionais foram projetados e ajustados extensivamente para serem tão otimizados quanto possível, de modo que usem o mínimo de CPU e memória possível (pelo menos teoricamente). Como tal, os algoritmos que eles usam para coisas como agendamento, gerenciamento de memória, troca de tarefas, condução de hardware, etc. usam relativamente poucos recursos. Você pode ver isso em um gerenciador de tarefas; quando não há programas em execução e o sistema operacional está reduzido ao mínimo, haverá muito pouca memória em uso e a CPU funcionará a “0%”. (Novamente, estamos falando teoricamente; o Windows, por exemplo, tem estado “inchado” ultimamente, então pode não se aplicar mais a isso.)
Responder2
Se você acabou de fazer um curso sobre sistemas operacionais, deverá pedir seu dinheiro de volta. Sua pergunta é tão ingênua que não consigo acreditar que você não esteja procurando a solução para uma questão de dever de casa.
A visão moderna de um sistema operacional é uma coleção de provedores de serviços que os aplicativos podem usar para acessar recursos no computador, como memória, CPU e dispositivos de E/S. Exatamente onde a linha entre o sistema operacional e o aplicativo é traçada é uma questão religiosa (veja os debates entre Andrew Tanenbaum e Linus Torvalds).
Os sistemas operacionais modernos servem para apresentar abstrações de máquinas isoladas aos aplicativos, por exemplo, seu aplicativo não consegue acessar a memória que está sendo usada pelo meu aplicativo. Para fazer isso de maneira segura e protegida, o código crítico para gerenciar a abstração geralmente é isolado em algo chamado kernel do sistema operacional. Mais uma vez, a linha entre o que está no kernel e o que é uma biblioteca compartilhada no espaço do usuário está aberta ao debate.
Sério, se esse tipo de coisa não foi abordado no seu curso de sistema operacional, o que diabos foi?