abstracao do hardware, fazendo o papel de intermediario entre o aplicativo (programa) e os componentes fisicos do computador (hardware); ounuma visao bottom-up, de baixo para cima: e um gerenciador de recursos, i.e., controla quais aplicacoes (processos) podem ser executadas, quando, que recursos (memoria, disco, perifericos) podem ser utilizados. A sigla usual para designar esta classe de programas e SO (em portugues) ou OS (do ingles Operating System).Um sistema operacional possui as seguintes funcoes: gerenciamento de processos;gerenciamento de memoria;sistema de arquivos;entrada e saida de dados. O sistema operacional multitarefa e preparado para dar ao usuario a ilusao que o numero de processos em execucao simultanea no computador e maior que o numero de processadores instalados. Cada processo recebe uma fatia do tempo e a alternancia entre varios processos e tao rapida que o usuario pensa que sua execucao e simultanea. Sao utilizados algoritmos para determinar qual processo sera executado em determinado momento e por quanto tempo. Os processos podem comunicar-se, isto e conhecido como IPC (Inter-Process Communication). Os mecanismos geralmente utilizados sao: sinais;pipes;named pipes;memoria compartilhada;soquetes (sockets);trocas de mensagens. O sistema operacional, normalmente, deve possibilitar o multiprocessamento (SMP ou NUMA). Neste caso, processos diferentes e threads podem ser executados em diferentes processadores. Para essa tarefa, ele deve ser reentrante e interrompivel, o que significa que pode ser interrompido no meio da execucao de uma tarefa. O sistema operacional tem acesso completo a memoria do sistema e deve permitir que os processos dos usuarios tenham acesso seguro a memoria quando o requisitam. Varios sistemas operacionais usam memoria virtual, que possui 3 funcoes basicas: assegurar que cada processo tenha seu proprio espaco de enderecamento, comecando em zero, para evitar ou resolver o problema de relocacao;prover protecao da memoria para impedir que um processo utilize um endereco de memoria que nao lhe pertenca;possibilitar que uma aplicacao utilize mais memoria do que a fisicamente existente.A memoria principal do computador e volatil, e seu tamanho e limitado pelo custo do hardware. Assim, os usuarios necessitam de algum metodo para armazenar e recuperar informacoes de modo permanente. Um arquivo e um conjunto de bytes, normalmente armazenado em um dispositivo periferico nao volatil (p.ex., disco), que pode ser lido e gravado por um ou mais processos.Os sistemas operacionais fornecem abstracao de hardware para que seus recursos possam ser usados de maneira correta e padronizada, mas para ser possivel operar um computador, e necessario fornecer tambem uma interface para que o usuario possa desfrutar dos recursos do sistema. Atualmente existem dois tipos de interface: o GUI (graphical user interface), conhecida tambem por interface grafica, e o CUI (command-line interface), sendo essa mais conhecida como interface de linha de comando.GUI (Graphical user interface) Nesse tipo de interface, o usuario tem a disposicao um ambiente de trabalho composto por menus, icones, janelas e outros itens disponiveis. O usuario interage com esse tipo de interface usando o mouse, podendo tambem usar o teclado e teclas de atalho. E possivel fazer todo tipo de tarefa usando interface grafica, como edicao de videos e imagens, sendo somente alguns tipos muito especificos de tarefas que se saem melhor