Operating system
Operating system (OS), programa que gerencia os recursos de um computador, especialmente a alocação desses recursos entre outros programas. Os recursos típicos incluem a unidade central de processamento (CPU), memória do computador, armazenamento de arquivos, dispositivos de entrada/saída (E/S) e conexões de rede. As tarefas de gerenciamento incluem o agendamento da utilização de recursos para evitar conflitos e interferências entre programas. Ao contrário da maioria dos programas, que completam uma tarefa e terminam, um sistema operacional é executado indefinidamente e termina apenas quando o computador é desligado.
Sistemas operacionais multiprocessados modernos permitem que muitos processos estejam ativos, onde cada processo é um “fio” de computação sendo usado para executar um programa. Uma forma de multiprocessamento é chamada time-sharing, que permite que muitos usuários compartilhem o acesso ao computador, alternando rapidamente entre eles. O time-sharing deve se proteger contra interferências entre os programas dos usuários, e a maioria dos sistemas usa memória virtual, na qual a memória, ou “espaço de endereçamento”, usada por um programa pode residir na memória secundária (como em um disco rígido magnético) quando não estiver em uso imediato, para ser trocada de volta para ocupar a memória principal do computador mais rápido sob demanda. Essa memória virtual aumenta o espaço de endereços disponível para um programa e ajuda a evitar que os programas interfiram entre si, mas requer um controle cuidadoso por parte do sistema operacional e um conjunto de tabelas de alocação para manter o controle do uso da memória. Talvez a tarefa mais delicada e crítica para um sistema operacional moderno seja a alocação da CPU; cada processo é permitido usar a CPU por um tempo limitado, que pode ser uma fração de segundo, e então deve desistir do controle e ficar suspenso até sua próxima volta. A mudança entre processos deve utilizar a CPU enquanto protege todos os dados dos processos.
Os primeiros computadores digitais não tinham sistemas operacionais. Eles rodavam um programa de cada vez, que tinha o comando de todos os recursos do sistema, e um operador humano forneceria quaisquer recursos especiais necessários. Os primeiros sistemas operacionais foram desenvolvidos em meados da década de 1950. Estes eram pequenos “programas supervisores” que forneciam operações básicas de E/S (como o controle de leitores de cartões perfurados e impressoras) e mantinham contas de uso de CPU para faturamento. Os programas supervisores também forneciam recursos de multiprogramação para permitir que vários programas fossem executados ao mesmo tempo. Isto era particularmente importante para que estas máquinas multimilionárias iniciais não ficassem ociosas durante as lentas operações de E/S.
Os computadores adquiriram sistemas operacionais mais poderosos nos anos 60 com o surgimento do time-sharing, que exigia um sistema para gerenciar vários usuários compartilhando o tempo de CPU e terminais. Dois primeiros sistemas de time sharing foram o CTSS (Compatible Time Sharing System), desenvolvido no Massachusetts Institute of Technology, e o Dartmouth College Basic System, desenvolvido no Dartmouth College. Outros sistemas multiprogramados incluíram o Atlas, na Universidade de Manchester, Inglaterra, e o OS/360 da IBM, provavelmente o pacote de software mais complexo dos anos 60. Após 1972, o sistema Multics para o computador GE 645 da General Electric Co. (e mais tarde para os computadores da Honeywell Inc.) tornou-se o sistema mais sofisticado, com a maioria das capacidades de multiprogramação e time-sharing que mais tarde se tornaram padrão.
Os minicomputadores dos anos 70 tinham memória limitada e exigiam sistemas operacionais menores. O sistema operacional mais importante desse período foi o UNIX, desenvolvido pela AT&T para grandes minicomputadores como uma alternativa mais simples aos Multics. Tornou-se amplamente utilizado nos anos 80, em parte porque era gratuito para as universidades e em parte porque foi concebido com um conjunto de ferramentas que eram poderosas nas mãos de programadores qualificados. Mais recentemente, o Linux, uma versão open-source do UNIX desenvolvida em parte por um grupo liderado pelo estudante finlandês de ciências da computação Linus Torvalds e em parte por um grupo liderado pelo programador americano Richard Stallman, tornou-se popular tanto em computadores pessoais quanto em computadores maiores.
Além desses sistemas de uso geral, sistemas operacionais de uso especial rodam em computadores pequenos que controlam linhas de montagem, aeronaves e até mesmo eletrodomésticos. Eles são sistemas em tempo real, projetados para fornecer resposta rápida aos sensores e para usar suas entradas para controlar máquinas. Também foram desenvolvidos sistemas operacionais para dispositivos móveis, tais como smartphones e tablets. O iOS da Apple Inc., que roda em iPhones e iPads, e o Android da Google Inc. são dois sistemas operacionais móveis proeminentes.
Cortesia da Apple
Do ponto de vista de um usuário ou de um programa aplicativo, um sistema operacional fornece serviços. Alguns destes são comandos simples do usuário como “dir”-show the files on a disk-while outros são “chamadas de sistema” de baixo nível que um programa gráfico pode usar para exibir uma imagem. Em ambos os casos o sistema operacional fornece acesso apropriado aos seus objetos, as tabelas de localização do disco em um caso e as rotinas para transferir dados para a tela no outro. Algumas de suas rotinas, aquelas que gerenciam a CPU e a memória, são geralmente acessíveis apenas a outras partes do sistema operacional.
Sistemas operacionais contemporâneos para computadores pessoais geralmente fornecem uma interface gráfica de usuário (GUI). A GUI pode ser uma parte intrínseca do sistema, como nas versões antigas do Mac OS da Apple e do Windows OS da Microsoft Corporation; em outras é um conjunto de programas que dependem de um sistema subjacente, como no sistema X Window para UNIX e no Mac OS X.
da Apple.