O computador só é capaz de fazer funcionar um programa informático (chamado às vezes aplicação ou software) através de um sistema operacional. A máquina deve estar em condições de efectuar diversas operações preparatórias para assegurar o intercâmbio entre o processador, a memória, e os recursos físicos (periféricos).
13:59
O sistema operacional (SE ou OS abreviatura do termo inglês Operating System), está encarregue de garantir a ligação entre os recursos materiais, o utilizador e as aplicações (tratamento de texto, jogos de vídeo,...). Assim, quando um programa deseja aceder a um recurso material, não é necessário enviar informações específicas ao periférico, basta enviar as informações ao sistema operacional, que se encarrega de transmití-las ao periférico referido através do seu piloto. Na ausência de pilotos, cada programa deverá reconheçer e assegurar a comunicação com cada um dos periféricos!

O sistema operacional permite assim "dissociar" os programas e o material, simplificando a gestão dos recursos e oferecendo ao utilizador um interface homem-máquina (notado "IHM") simplificado para lhe permitir livrar-se da complexidade da máquina física.
Os papéis do sistema operacional são diversos
O sistema operacional é composto por um conjunto de softwares que permitem gerir as interacções com o material. Neste conjunto de softwares distinguem-se geralmente os seguintes elementos:
Um sistema operacional é "multi-tarefas" (em inglês multithreaded) quando várias "tarefas" (igualmente chamadas "processos") podem ser executadas simultaneamente.
As aplicações são compostas em sequência de instruções que se chamam "processos ligeiros" (em inglês "threads"). Estes threads serão alternadamente activos, em espera, suspensos ou destruídos, de acordo com a prioridade que lhes é associada, ou executados sequencialmente.
Um sistema é préemptivo quando possui um planificador, que reparte, de acordo com critérios de prioridade, o tempo da máquina pelos diferentes processos que fazem pedidos.
O sistema é de tempo partilhado quando uma quota de tempo é atribuída a cada processo pelo comando. É nomeadamente o caso dos sistemas multi-utilizadores, que permitem a vários utilizadores utilizar simultaneamente numa mesma máquina aplicações diferentes ou similares: o sistema então é "transacional". Com efeito, o sistema atribui a cada utilizador uma fracção de tempo.
O multiprocessing é uma técnica que consiste em fazer funcionar vários processadores em paralelo para obter uma potência de cálculo maior do que a obtida com um processador topo de gama ou a fim de aumentar a disponibilidade do sistema (em caso de avaria de um processador).
Chama-se SMP (Symmetric Multiprocessing ou Symmetric Multiprocessor) a uma arquitetura na qual todos os processadores têm acesso a um espaço de memória partilhada.
Um sistema multiprocessador deve por conseguinte ser capaz de administrar a partilha da memória por vários processadores, mas igualmente de distribuir a carga de trabalho.
Os sistemas embarcados são sistemas operacionais previstos para funcionar em máquinas pequenas, como PDA ((personal digital assistants ou em português, assistentes numéricos pessoais) ou aparelhos electrónicos autónomos (sondas espaciais, robots, computador de bordo de veículo, etc.), possuindo uma autonomia reduzida. Assim, uma característica essencial dos sistemas embarcados é a sua gestão avançada da energia e a sua capacidade para funcionar com recursos limitados.
Os principais sistemas embarcados para o "grande público" para assistentes numéricos pessoais é :
Os sistemas tempo real (real time systems), essencialmente utilizados na indústria, são sistemas cujo objectivo é funcionar num ambiente temporariamente forçado. Um sistema tempo real deve assim funcionar de maneira fiável de acordo com restrições temporais específicas, ou seja, deve ser capaz de forncer um tratamento correcto das informações recebidas em intervalos de tempo bem definidos (regulares ou não).
14:22
Eis aqui alguns exemplos de sistemas operacionais tempo real:
Distinguem-se vários tipos de sistemas operacionais, capazes de gerenciar simultaneamente informações de um comprimento de 16 bits, 32 bits, 64 bits ou mais.
| Sistema <th width="86">Codificação | Mono-utilizador <th width="114">Multi-utiliszador | Mono-tarefa | Multitarefas | ||
|---|---|---|---|---|---|
| DOS | 16 bits | X | X | ||
| Windows3.1 | 16/32 bits | X | não preemptivo | ||
| Windows95/98/Me | 32 bits | X | cooperativo | ||
| WindowsNT/2000 | 32 bits | X | preemptivo | ||
| WindowsXP | 32/64 bits | X | preemptivo | ||
| Unix / Linux | 32/64 bits | X | preemptivo | ||
| MAC/OS X | 32 bits | X | preemptivo | ||
| VMS | 32 bits | X | preemptivo |