A torre de um computador pessoal (especificamente um Power Mac G5).
Um computador é um dispositivo ou máquina para fazer cálculos ou operações que são expressável em controlar numéricos ou lógicos termos. Os computadores são feitos de componentes que executam funções simples bem definidas. As interações complexas desses componentes dotar os computadores com a capacidade de processar informações. Se for corretamente configurado (geralmente por programação) um computador pode ser feito para representar algum aspecto de um problema ou parte de um sistema. Se um computador configurado desta forma é dada de entrada de dados apropriados, então ele pode resolver automaticamente o problema ou a prever o comportamento do sistema.
A disciplina que estuda a teoria, design e aplicação de computadores é chamado de ciência da computação.
Os computadores podem funcionar através do movimento de peças mecânicas, elétrons, fótons, partículas quânticas ou qualquer outro fenômeno físico bem compreendido. Embora os computadores tenham sido construído a partir de muitas tecnologias diferentes, quase todos os tipos populares de computadores têm componentes eletrônicos.
Computadores podem modelar diretamente o problema a ser resolvido, no sentido de que o problema a ser resolvido é mapeado, tanto quanto possível sobre os fenômenos físicos a ser explorado. Por exemplo, os fluxos de electrões pode ser utilizado para modelar o fluxo de água em uma represa. Tais analógicos computadores foram comuns na década de 1960, mas agora são mais raros.
Na maioria dos computadores hoje, o problema é primeiro traduzido em termos matemáticos, tornando toda a informação relevante para o binário de base de dois sistema de numeral (uns e zeros). Em seguida, todas as operações em que as informações são reduzidas a simples álgebra booleana.
Circuitos eletrônicos são então utilizadas para representar operações booleanas. Uma vez que quase todas as matemáticas pode ser reduzida para operações booleanas, um computador electrónico suficientemente rápido é capaz de atacar a maioria dos problemas matemáticos (e a maioria dos problemas de processamento de informação que pode ser traduzido para os matemáticos). Esta idéia básica, que fez modernos computadores digitais possível, foi formalmente identificado e explorado por Claude E. Shannon.
Os computadores não podem resolver todos os problemas matemáticos. Alan Turing identificado que problemas poderiam e não poderia ser resolvido por computadores, e ao fazê-lo fundada ciência da computação teórica.
Quando o computador estiver concluído o cálculo do problema, o resultado deve ser exibido para o usuário como saída por meio de dispositivos de saída, como lâmpadas, LEDs, monitores e impressoras.
Os usuários novatos, especialmente crianças, muitas vezes têm dificuldade em compreender a idéia importante que o computador é apenas uma máquina, e não pode "pensar" ou "compreender" as palavras que ele exibe. O computador está simplesmente executando uma pesquisa mecânica em tabelas pré-programadas de linhas e cores, que são depois traduzidas em padrões arbitrários de luz por o dispositivo de saída. É o cérebro humano que reconhece que tais padrões formar letras e números, e atribui significado para eles. Todos os computadores existentes que fazer é manipular elétrons que são logicamente equivalente a uns e zeros; não há meios conhecidos para emular com sucesso da compreensão humana ou auto-consciência. Veja a inteligência artificial.
A palavra foi originalmente usada para descrever uma pessoa que realizou as artes e esse uso ainda é válido (embora ele está se tornando bastante raro no Estados Unidos e Reino Unido). O OED2 lista o ano 1897 como o primeiro ano a palavra foi usada para se referir a um dispositivo calculador mecânico. Por 1946 várias eliminatórias foram introduzidas pelo OED2 de diferenciar entre os diferentes tipos de máquina. Estes qualificadores incluído analógicos, digitais e eletrônicos. No entanto, a partir do contexto da citação, é óbvio estes termos utilizados antes a 1946.
Veja o Wiktionary entrada para a palavra "computador" para definições, traduções e x etimologia detalhado.
Dispositivos de computação dobraram em capacidade (instruções processadas por segundo por $ 1000) cada 18 a 24 meses desde 1900. Gordon E. Moore, co-fundador da Intel, descrita pela primeira vez esta propriedade do desenvolvimento dos computadores em 1965. Sua observação tornou-se conhecida como Lei de Moore, embora, naturalmente, não é realmente uma lei, mas sim uma tendência significativa. Mão-na-mão com este aumento de capacidade por unidade de custo tem sido um processo igualmente dramática de miniaturização. Os primeiros computadores eletrônicos, tais como o ENIAC (anunciada em 1946), eram enormes dispositivos que pesavam toneladas, ocupava salas inteiras, e exigia muitos operadores a funcionar com êxito. Eles eram tão caros que apenas os governos e grandes organizações de investigação podiam pagar por elas e foram considerados tão exótico que apenas um punhado jamais seria necessário para satisfazer a demanda global. Por outro lado, os computadores modernos são ordens de magnitude mais poderoso, mais barato, menor e se tornaram onipresentes em muitas áreas. O progresso exponencial do desenvolvimento dos computadores faz a classificação dos computadores problemático desde que os computadores modernos são muitas ordens de magnitude mais poderoso do que os dispositivos anteriores.
As seções seguintes descrevem abordagens diferentes para classificar os computadores.
O coloquial natureza desta abordagem de classificação significa que é ambígua. É usual para corrente única, dispositivos vulgarmente disponíveis para ser incluído. A natureza rápida do desenvolvimento dos computadores significa novos usos para os computadores são frequentemente encontrados e as definições atuais rapidamente tornar-se desatualizado. Muitas classes de computador que não são mais utilizados, tais como analisadores diferenciais, não são incluídos em tais listas. Outros esquemas de classificação são necessários para definir de forma inequívoca a palavra "computador".
Uma abordagem menos ambígua para a classificação de máquinas de computação é por sua tecnologia de implementação. Os primeiros computadores eram puramente mecânico. Nos anos 1930 componentes eletro-mecânicos (relés) foram introduzidos a partir do setor de telecomunicações, e nos anos 1940 os primeiros puramente eletrônicos computadores foram construídos a partir de válvulas térmicas (tubos). Nos anos 1950 e 1960 válvulas foram gradualmente substituídas por transistores e no final dos anos 1960 e início dos anos 1970 semicondutores circuitos integrados (chips de silício) foram adotadas e têm sido o esteio da tecnologia da computação desde então.
Esta descrição de tecnologias de implementação não é exaustiva; que abrange apenas o mainstream do desenvolvimento. Historicamente muitas tecnologias exóticas têm sido explorados e abandonados. Por exemplo, os modelos econômicos foram construídos usando a água que flui através de múltiplos canais de-constrição, e entre 1903 e 1909 Percy E. Ludgate desenvolveu um projeto para uma máquina programável analítica baseada em tecelagem tecnologias em que as variáveis ??foram levadas em ônibus espaciais.
Esforços estão em andamento para desenvolver computadores ópticos que usam a luz em vez de eletricidade. A possibilidade de que o DNA pode ser usada para computação também está a ser explorado. Um radical nova área de investigação que poderia levar a computadores com dramáticas novas capacidades é o campo de quantum computing, mas este está atualmente em seus estágios iniciais. Com a exceção de computadores quânticos, a tecnologia de implementação de um computador não é tão importante para fins de classificação como as características que implementa máquina.
Os computadores modernos combinam características fundamentais do projeto que têm sido desenvolvidos por vários colaboradores ao longo de muitos anos. Estas características são muitas vezes independente da tecnologia de implementação. Os computadores modernos derivam suas capacidades globais da forma como esses recursos interagir. Algumas das características mais importantes do projeto estão listadas abaixo.
A decisão fundamental na concepção de um computador é se deve ser digitais ou analógicos. Computadores digitais processar valores numéricos ou simbólicos discretos, enquanto computadores analógicos processar sinais de dados contínuos. Desde os anos 1940 computadores digitais tornaram-se, de longe, o mais comum, embora computadores analógicos ainda são usadas para alguns propósitos especializados, tais como robótica e ciclotrão controle. Outras abordagens, como a computação de pulso e computação quântica pode ser possível, mas são utilizadas para fins especiais ou são ainda experimentais.
Um projeto de desenvolvimento significativo na computação digital foi a introdução de binário como o interno sistema numeral. Isto elimina a necessidade de transportar os mecanismos complexos necessários para computadores baseados em outros sistemas de numeração, tais como o sistema decimal. A adoção de binário resultou em modelos simplificados para implementar funções aritméticas e operações lógicas.
A capacidade de programar um computador - fornecê-lo com um conjunto de instruções para execução - sem reconfigurar fisicamente a máquina é um elemento fundamental da maioria dos computadores. Esta funcionalidade foi significativamente prolongada quando as máquinas foram desenvolvidas que poderiam dinamicamente controlar o fluxo de execução do programa. Isto permitiu computadores para controlar a ordem em que o programa de instruções foi executado com base nos dados calculados pelo programa, uma vez que executada. Este grande avanço design foi simplificado pelo introdução de aritmética binária que pode ser usado para representar várias operações lógicas.
Durante o curso de um cálculo, é frequentemente necessário armazenar valores intermédios para uso em cálculos posteriores. O desempenho de muitos computadores é em grande parte ditada pela velocidade com que eles podem ler e escrever valores de e para esta memória, ea capacidade total da memória. Originalmente memória foi usada apenas para valores intermédios, mas nos anos 1940, foi sugerido que o próprio programa pode ser armazenado neste caminho. Este avanço levou ao desenvolvimento dos primeiros computadores de programa armazenado do tipo utilizado hoje em dia.
Talvez a melhor maneira de classificar os diversos tipos de dispositivo de computação é pelas suas capacidades intrínsecas ao invés de seus uso, tecnologia de implementação ou de design características. Os computadores podem ser subdivididos em três tipos principais baseados na capacidade: dispositivos Single-propósito que pode computar apenas uma função (por exemplo, The Antikythera Mechanism 87 aC, e Lord Kelvin 's Tide preditor 1876), dispositivos para fins especiais que podem calcular uma gama limitada de funções (por exemplo, Charles Babbage 's motor diferença No 1. 1832 e Vannevar Bush' s analisador diferencial 1932), e dispositivos Geral-Finalidade do tipo usado hoje. Historicamente, a palavra de computador tem sido usado para descrever todos estes tipos de máquinas, mas uso coloquial moderna normalmente limita o prazo de máquinas de uso geral.
Por definição, um computador de uso geral, pode resolver qualquer problema que pode ser expresso como um programa e executado dentro dos limites práticos definidos por: o armazenamento da capacidade do computador, o tamanho do programa, a velocidade de execução do programa, e a fiabilidade do máquina. Em 1934 Alan Turing provou que, dado o programa certo, qualquer computador de uso geral poderia emular o comportamento de qualquer outro computador. Esta prova matemática era puramente teórico como não há computadores de uso geral existia na época. As implicações desta prova são profundas; por exemplo, qualquer computador de uso geral existente é teoricamente capaz de emular, embora lentamente, qualquer computador de uso geral que pode ser construído no futuro.
Os computadores com capacidades de uso geral são chamados Turing completo e esse status é usado frequentemente como o limiar de capacidade que define os computadores modernos, no entanto, essa definição é problemática. Vários dispositivos de computação com desenhos simplistas foram mostrados para ser Turing completo. O Z3, desenvolvido por Konrad Zuse em 1941 é o primeiro computador de trabalho que tem sido mostrado para ser Turing completo, até ao momento (a prova foi desenvolvido em 1998). Enquanto o Z3 e possivelmente outros dispositivos precoces podem ser teoricamente Turing-complete eles são impraticáveis ??como computadores de uso geral. Eles mentem no que é conhecido como o humor Turing Tar-Pit (http://catb.org/~esr/jargon/html/T/Turing-tar-pit.html) - "um lugar onde tudo é possível, mas nada de interesse é prático "(Ver O Jargon File (http://catb.org/~esr/jargon/)). Os computadores modernos são mais do que teoricamente de uso geral; eles também são ferramentas práticas de uso geral. O computador moderno, digital, eletrônico, de propósito geral foi desenvolvido, por muitos colaboradores, durante um período prolongado de meados dos anos 1930 até o final dos anos 1940, durante este período muitas máquinas experimentais foram construídos que foram possivelmente Turing-completo (ABC, ENIAC, Harvard Mk I, Colossus etc ver a história do hardware). Todas estas máquinas foram reivindicados, em um momento ou outro, como o primeiro computador, mas todos eles tinham utilidade limitada como dispositivos de resolução de problemas de uso geral e seus projetos foram descartados.
Durante o final dos anos 1940 o primeiro projeto para uma Stored-programa de computador foi desenvolvido e documentado (ver O primeiro rascunho) na Escola Moore de Engenharia Elétrica no The University of Pennsylvania. A abordagem descrita por este documento tornou-se conhecida como a arquitetura de von Neumann, depois de seu único autor chamado John von Neumann embora outros na Escola Moore essencialmente inventou o design. A arquitetura de von Neumann resolveu os problemas inerentes ao desenho da ENIAC, que foi, em seguida, em construção, ao armazenar o programa de máquinas na sua própria memória. Von Neumann fez o design disponíveis para outros pesquisadores logo após o ENIAC foi anunciada em 1946. Os planos foram desenvolvidos para implementar o projeto na Escola Moore em uma máquina chamada EDVAC. O EDVAC não estava operacional até 1953 devido a dificuldades técnicas na implementação de uma memória confiável. Outros institutos de pesquisa, que obtiveram cópias do design, resolvido os problemas técnicos consideráveis ??de implementação de uma memória de trabalho antes que a equipe Moore School e implementou seus próprios computadores de programa armazenado. No fim da primeira operação com sucesso os primeiros 5 computadores de programa armazenado, que implementaram as principais características do von Neumann Architecture foram:
O projeto Programa Armazenado definido pela arquitetura de von Neumann, finalmente, permitiu computadores para facilmente explorar o seu potencial de uso geral. Ao armazenar o programa do computador na sua própria memória, tornou-se possível a rápida "salte" de uma sequência de instruções para outra com base no resultado da avaliação de uma condição definida dentro do programa. Esta condição geralmente avaliada valores de dados calculados pelo programa e programas permitidos para se tornar altamente dinâmico. O projeto também apoiou a capacidade de automaticamente re-escrever o programa como ele executado - um poderoso recurso que deve ser usado com cuidado. Estas características são fundamentais para a forma como os computadores modernos trabalhar.
Para ser preciso, a maioria dos computadores modernos são de programa armazenado binário, eletrônico, de propósito geral, os dispositivos de computação.
Os computadores de uso especial que eram populares nos anos 1930 e início dos anos 1940 não foram completamente substituídos por computadores General-Purpose. Como o custo e o tamanho dos computadores diminuiu e suas capacidades têm aumentado, tornou-se rentável para usá-los para aplicações de uso especial. Muitas domésticas e industriais dispositivos, incluindo, telefones celulares, gravadores de vídeo, automotivo sistemas de ignição, etc agora contêm computadores de uso especial. Em alguns casos, esses computadores são Turing-completa (Jogos de vídeo, PDAs), mas muitos estão programados uma vez na fábrica e só raramente, ou nunca, reprogramado. O programa que estes dispositivos de executar é muitas vezes contida numa Apenas memória de leitura (ROM chip), que precisam de ser substituídos para alterar a operação da máquina. Computadores integrados dentro de outros dispositivos são comumente referido como micro controladores ou computadores embarcados.
Computadores de uso único foram os primeiros dispositivos de computação. Dado alguns insumos que pudessem calcular o resultado da única função que foi implementado pelo seu mecanismo. Computadores de uso geral foram quase totalmente substituídas computadores de uso único e com isso criaram um campo completamente novo do esforço humano - Desenvolvimento de Software. Computadores de uso geral deve ser programado com um conjunto de instruções específicas para a tarefa eles são obrigados a realizar e as instruções são conhecidas coletivamente como software de computador. A concepção dos dispositivos de computação de propósito único e muitos dispositivos de computação de propósito especial é agora um exercício conceitual que consiste apenas de projetar software.
Computadores podem ser classificados de acordo com a forma como eles são operados pelos próprios usuários. Existem dois tipos principais: processamento em lote e processamento interativo.
Os primeiros computadores eletrônicos digitais, com seu grande tamanho e custo, principalmente cálculos científicos realizados, muitas vezes para apoiar os objetivos militares. O ENIAC foi originalmente concebido para calcular balística disparando mesas para artilharia, mas também foi usado para calcular as densidades de nêutrons transversais para ajudar no projeto da bomba de hidrogênio. Este cálculo, realizado em dezembro, 1945 através de janeiro, 1946 e envolvendo mais de um milhão de cartões perfurados de dados, mostrou o projeto então sob consideração seria um fracasso. (Muitos dos mais poderosos supercomputadores disponíveis hoje são também utilizados para armas nucleares simulações.) O CSIR Mk I, o primeiro australiano computador de programa armazenado, os padrões de chuva avaliados para a área de influência do Snowy Mountains Scheme, uma grande hidrelétrica projeto de geração. Outros eram usados ??em criptoanálise, por exemplo primeira programável do mundo (embora não de uso geral) computador eletrônico digital, Colossus, construído em 1943, durante a Segunda Guerra Mundial. Apesar deste foco inicial de aplicações científicas, os computadores foram rapidamente utilizados em outras áreas.
Desde o início, computadores de programas armazenados foram aplicados a problemas de negócios. A LEO, um programa de computador armazenado construído por J. Lyon e Co. no Reino Unido, era operacional e sendo usado para gerenciamento de inventário e outros fins 3 anos antes de a IBM construiu seu primeiro comercial computador de programa armazenado. Reduções contínuas no custo e tamanho dos computadores viu-los adotado por organizações cada vez menores. E com a invenção do microprocessador nos anos 1970, tornou-se possível a produção de computadores de baixo custo. Nos anos 1980, os computadores pessoais tornou-se popular para muitas tarefas, incluindo contabilidade, escrita e impressão de documentos, previsões de calcular e outras tarefas matemáticas repetitivas envolvendo planilhas.
Na década de 1970, engenheiros de computação em instituições de pesquisa em todo os EUA começaram a ligar os seus computadores usando tecnologia de telecomunicações. Este esforço foi financiado pela ARPA, e a rede de computadores que ele produziu foi chamada de ARPANET. As tecnologias que fez a propagação Arpanet possível e evoluiu. Com o tempo, a rede se espalhou para além das instituições acadêmicas e tornou-se conhecida como a Internet. Nos anos 1990, o desenvolvimento da World Wide Web tecnologias permitiu que as pessoas não-técnicos para utilizar a Internet, e cresceu rapidamente para se tornar um global de meio de comunicação.
Enquanto as tecnologias utilizadas nos computadores mudaram dramaticamente desde a primeira eletrônica, de propósito geral, os computadores dos anos 1940 (ver história da computação hardware para mais detalhes), a maioria ainda usar a arquitetura de von Neumann.
O funcionamento desse computador é, em princípio bastante simples. Tipicamente, em cada ciclo de relógio, o computador obtém dados e instruções a partir da sua memória. As instruções são executadas, os resultados são armazenados, ea próxima instrução é buscada. Este procedimento se repete até que uma instrução de parada é encontrado.
O von Neumann arquitetura descreve um computador com quatro seções principais: a Unidade Lógica e Aritmética (ALU), o circuito de controle, a memória e os dispositivos de entrada e de saída (coletivamente denominados de I / O). Estas partes estão interligados por um feixe de fios (um "bus") e são geralmente conduzidos por um temporizador ou relógio (embora outros eventos poderiam conduzir os circuitos de controlo).
As instruções do computador não são tão ricos como uma linguagem humana. Um computador tem somente um número limitado de bem definidas, instruções simples, mas eles não são ambíguas. Tipos típicos de instruções suportados pela maioria dos computadores são "copiar o conteúdo da célula de memória 5 e colocar a cópia na célula 10", "adicionar o conteúdo da célula 7 para o conteúdo da célula 13 e colocar o resultado na célula 20", "se o conteúdo da célula 999 são 0, a instrução seguinte é a célula 30 ".
As instruções são representadas no computador como binário código - um sistema de contagem de base dois. Por exemplo, o código para um tipo de operação "cópia" na linha de microprocessadores Intel é 10110000. A instrução especial definido que um computador específico suporta é conhecido como o computador linguagem de máquina.
Na prática, as pessoas normalmente não escrever as instruções para os computadores diretamente em linguagem de máquina, mas sim utilizar um "alto nível" linguagem de programação que é então traduzido para a linguagem de máquina automaticamente por programas de computador especiais (intérpretes e compiladores). Algumas linguagens de programação mapear muito de perto para a linguagem de máquina, como Assembly Language (línguas de baixo nível); no outro extremo, línguas como o Prolog são baseadas em princípios abstratos muito distantes dos detalhes da operação real da máquina (linguagens de alto nível).
A memória é uma sequência de células numeradas, contendo cada uma um pequeno pedaço de informação. A informação pode ser uma instrução para dizer ao computador o que fazer. A célula pode conter dados que o computador precisa para executar a instrução. Qualquer célula pode conter, e de fato o que está em um dados de tempo pode ser instruções mais tarde.
Em geral, o conteúdo de uma célula de memória podem ser alterados em qualquer altura - é um bloco de rascunho em vez de uma placa de pedra.
O tamanho de cada célula, e o número de células, varia muito de computador para computador, e as tecnologias usadas para implementar memória têm variado muito - desde eletromecânicos relés, para tubos cheios de mercúrio (e nascentes posteriores) em que foram formadas impulsos acústicos , para matrizes de imãs permanentes, para individuais de transistores, de circuitos integrados com milhões de condensadores numa única chip de.
A CPU
A unidade aritmética e lógica, ou ALU, é o dispositivo que executa elementares operações, tais como operações aritméticas (adição, subtração, e assim por diante), lógicas operações (AND, OR, NOT), e operações de comparação (por exemplo, comparando o conteúdo de dois bytes para a igualdade). Esta unidade é onde o "verdadeiro trabalho" é feito.
A unidade de controle mantém o controle do que bytes de memória conter a instrução corrente que o computador está executando, contando a ALU que operação para executar e recuperar as informações (de memória) que ele precisa para realizá-lo, e transfere o resultado de volta para o adequado localização de memória. Uma vez que isso ocorre, a unidade de controle vai para a próxima instrução (normalmente localizado no próximo slot (endereço de memória), a menos que a instrução é uma instrução de salto informando o computador que a próxima instrução está localizado em outro local). Quando se refere a memória, a instrução corrente pode usar vários modos de endereçamento para determinar o endereço na memória relevante. Além disso, algumas placas-mãe de computador vai suportar processadores duais ou mais. Servidores estão geralmente fazem uso de multi processadores / dual.
O I / O permite que o computador para obter informações do mundo exterior, e enviar os resultados do seu trabalho lá atrás. Há uma ampla gama de dispositivos de I / O, a partir dos familiares teclados, mouses, monitores, telas sensíveis ao toque e disquetes drives, unidades de CD / DVD, impressoras para o mais incomum, como scanners e webcams.
O que todos os dispositivos de entrada têm em comum é que eles codificam (converter) informações de algum tipo em dados, que pode ainda ser processada pelo sistema de computador digital. Os dispositivos de saída, por outro lado, decodificar os dados em informações que podem ser compreendidos pelo utilizador do computador. Neste sentido, um sistema de computador digital é um exemplo de um sistema de processamento de dados.
Os computadores de hoje colocar o ALU e unidade de controle em um único circuito integrado conhecido como a Unidade Central de Processamento ou CPU. Tipicamente, a memória do computador está localizada na alguns pequenos circuitos integrados perto da CPU. A esmagadora maioria da massa do computador é ou sistemas auxiliares (por exemplo, a fornecer energia eléctrica) ou dispositivos de I / O.
Alguns computadores maiores diferem do modelo acima em um grande respeito - eles têm múltiplas CPUs e unidades de controle que trabalham simultaneamente. Além disso, alguns computadores, usado principalmente para fins de investigação e computação científica, têm divergido significativamente do modelo acima, mas eles encontraram pouca aplicação comercial, porque o seu modelo de programação ainda não foi padronizado.
Os programas de computador são simplesmente grandes listas de instruções para o computador executar, talvez com tabelas de dados. Muitos programas de computador contêm milhões de instruções, e muitas dessas instruções são executadas repetidamente. Um moderno típico PC (no ano 2003) pode executar cerca de 2-3 bilhões de instruções por segundo. Os computadores não ganhar as suas capacidades extraordinárias através da capacidade de executar instruções complexas. Em vez disso, eles fazem milhões de instruções simples organizados por pessoas conhecidas como "programadores". Bons programadores desenvolver conjuntos de instruções para executar tarefas comuns (por exemplo, desenhar um ponto na tela) e, em seguida, fazer esses conjuntos de instruções disponíveis a outros programadores.
Hoje em dia, a maioria dos computadores parecem executar vários programas ao mesmo tempo. Isto é geralmente referido como multitarefa. Na realidade, a CPU executa as instruções de um programa, em seguida, após um curto período de tempo, que muda para um segundo programa executa e algumas das suas instruções. Este pequeno intervalo de tempo é muitas vezes referida como uma fatia de tempo. Isso cria a ilusão de vários programas que estão sendo executados simultaneamente através da partilha de tempo da CPU entre os programas. Isto é semelhante à forma como um filme é simplesmente uma rápida sucessão de tramas fixas. O sistema operacional é o programa que normalmente controla esse compartilhamento de tempo.
Quando um computador está executando ele precisa de um programa, se existe ou não é um trabalho útil para fazer. Em um computador desktop típico, este programa é o sistema operacional (OS). O sistema operacional decide quais programas são executados, quando e quais recursos (como memória ou de entrada / saída - I / O) os programas vão começar a usar.
O sistema operacional também fornece uma camada de abstração sobre o hardware, e dá acesso ao fornecer serviços a outros programas, como o código ("drivers") que permitem que programadores escrevam programas para uma máquina sem a necessidade de conhecer os detalhes íntimos de todo o anexado dispositivos eletrônicos.
A maioria dos sistemas operacionais que possuem camadas de abstração de hardware também fornecem uma padronizado interface de usuário. O sistema operacional mais popular continua sendo a Microsoft o Windows família de sistemas operacionais.
A maioria dos computadores são computadores muito pequenos, muito barato embutidos em outras máquinas. Estes sistemas embarcados têm programas, mas muitas vezes não têm um sistema operacional reconhecível.