Sistemas Operacionais, o que são?
Autor: Adriano | Publicado: 2010-04-17T17:34:00-07:00

Olá pessoal, aqui estou mais uma vez para falar um pouco sobre informática, dessa vez será sobre os sistemas operacionaisSistema Operacional é um programa  ou um conjunto de programas cuja função é gerenciar os recursos do  sistema (definir qual programa recebe atenção do processador, gerenciar  memória, criar um sistema de arquivos, etc.), além de fornecer uma interface  entre o computador e o usuário.  É o primeiro programa que a máquina executa no momento em que é ligada  (num processo chamado de bootstrapping)  e, a partir de então, não deixa de funcionar até que o computador seja  desligado. O sistema operacional reveza sua execução com a de outros  programas, como se estivesse vigiando, controlando e orquestrando todo o  processo computacional. Existem dois modos distintos de conceituar um  sistema operacional: pela perspectiva do usuário ou programador (visão top-down): é  uma abstração do hardware, fazendo o papel de intermediário  entre o aplicativo (programa) e os componentes físicos do computador (hardware);  ounuma visão bottom-up, de baixo para cima: é um gerenciador de  recursos, i.e., controla quais aplicações (processos) podem ser executadas,  quando, que recursos (memória, disco, periféricos) podem ser utilizados. A sigla usual para designar esta classe de programas é SO (em  português) ou OS (do inglês Operating System).Um sistema operacional possui as seguintes funções: gerenciamento de processos;gerenciamento de memória;sistema de arquivos;entrada e saída de dados. O sistema operacional multitarefa é preparado para dar ao usuário a  ilusão que o número de processos em execução simultânea no computador é  maior que o número de processadores instalados. Cada processo recebe uma  fatia do tempo e a alternância entre vários processos é tão rápida que o  usuário pensa que sua execução é simultânea. São utilizados algoritmos para determinar qual processo será  executado em determinado momento e por quanto tempo. Os processos podem comunicar-se, isto é conhecido como IPC (Inter-Process  Communication). Os mecanismos geralmente utilizados são: sinais;pipes;named pipes;memória 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 interrompível, o que significa que pode ser interrompido no  meio da execução de uma tarefa. O sistema operacional tem acesso completo à memória do sistema e deve  permitir que os processos dos usuários tenham acesso seguro à memória  quando o requisitam. Vários sistemas operacionais usam memória virtual, que possui 3  funções básicas: assegurar que cada processo tenha seu próprio espaço de  endereçamento, começando em zero, para evitar ou resolver o problema de  relocação;prover proteção da memória para impedir que um processo utilize um  endereço de memória que não lhe pertença;possibilitar que uma aplicação utilize mais memória do que a  fisicamente existente.A memória principal do computador é volátil, e seu tamanho é limitado  pelo custo do hardware. Assim, os usuários necessitam de algum  método para armazenar e recuperar informações de modo permanente. Um arquivo é um conjunto de bytes, normalmente armazenado em um  dispositivo periférico não volátil (p.ex., disco), que pode ser lido e  gravado por um ou mais processos.Os sistemas operacionais fornecem abstração de hardware para que  seus recursos possam ser usados de maneira correta e padronizada, mas  para ser possível operar um computador, é necessário fornecer também uma  interface para que o usuário possa desfrutar dos recursos do sistema.  Atualmente existem dois tipos de interface: o GUI (graphical  user interface), conhecida também por interface gráfica, 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 usuário tem a  disposição um ambiente de trabalho composto por menus, ícones, janelas e  outros itens disponíveis. O usuário interage com esse tipo de interface  usando o mouse, podendo também usar o teclado e teclas de  atalho. É possível fazer todo tipo de tarefa usando interface  gráfica, como edição de vídeos e imagens, sendo somente alguns tipos  muito específicos de tarefas que se saem melhor em linha de comando.  Acrescentar facilidade de uso e agilidade é o objetivo da GUI, tendo a  desvantagem de consumir muito mais memória que interfaces de linha de  comando. Em sistemas unix-likes, existe a possibilidade de  escolher o gerenciador de janelas a utilizar, aumentando em muito a  liberdade de escolha do ambiente.CUI  (Command-line user interface) Além da interface gráfica, existe a interface de linha de  comando, que funciona basicamente com a digitação de comandos, sendo  nesse relativamente pouco interativa. Os comandos digitados são  interpretados por um interpretador de comandos,  conhecidos também por shells, bastante comuns em sistemas unix-likes.  Um exemplo de interpretador de comandos seria o Bash.  Usada geralmente por usuários avançados e em atividades específicas,  como gerenciamento remoto, utiliza poucos recursos de hardware em  comparação a interface gráfica. Nesse tipo de ambiente, raramente se  usa o mouse, embora seja possível através do uso da biblioteca ncurses  no desenvolvimento dos softwares.Exemplos de sistemas  operacionais WindowsMac  OS XLinuxSolarisFreeBSDHaikueComStationFreeDOSUnix System VMINIXOpenBSDNetBSDDragonflyBSDMenuetOSGoogle Chrome OS Espero que tenham gostado do post, até mais.