{{ __('Painel do Aluno') }}


O que é Sistema Operacional










 O sistema operacional que aqui chamaremos de SO, é um programa ou um conjunto de programas cuja função principal é gerenciar os recursos do computador como um todo. Também pode ser definido como um software que inicializa o computador, quando o ligamos, e que serve como a conexão entre os hardwares e os demais programas. Os principais recursos do computador que o SO gerencia são: definir qual o programa recebe atenção do processador por meio do gerenciamento do processador, gerenciar a memória e sua utilização, criar um sistema de arquivos e cuidar de todos os dispositivos ligados a ele, além de fornecer uma interface entre o computador e o usuário do sistema . É, na verdade, o primeiro programa que o computador executa no momento que é ligado, chamado de bootstrapping, e fica funcionando até que o computador seja desligado. Com o sistema operacional não conseguimos realizar as tarefas como acessar uma página na internet, redigir um documento ou uma planilha, mas sem o SO os demais aplicativos não poderiam acessar os dispositivos de hardware ou fazer a comunicação entre os aplicativos. O sistema operacional pode ser visualizado como uma camada entre o hardware e os aplicativos. Como exemplo, a impressão de um documento: toda vez que um aplicativo necessita imprimir, este irá pedir ao SO que encaminhe seu material à impressora. É o SO que gerencia o envio do documento a impressora. Toda vez que um aplicativo precisa salvar uma informação para recuperá-la posteriormente, o aplicativo irá solicitar ao SO que ative o dispositivo de armazenamento (que pode ser o hd, pendrive, cartão de memória e etc).


Histórico dos Sistemas Operacionais

 Nos primórdios da computação, em meados da década de 40, não existia o conceito de sistema operacional propriamente dito, visto que, as operações eram definidas por meio de hardware. Nesse período, era muito comum que a mesma pessoa projetasse, programasse e utilizasse os computadores. A principal implicação desta abordagem é o fato de que era muito difícil criar rotinas programáveis, exigindo trabalho intenso dos operadores de máquinas.
  No início da computação, os sistemas operacionais eram únicos, pois cada mainframe (computador de grande porte) vendido necessitava de um sistema operacional específico para ele. Esse problema era resultado de arquiteturas diferentes e da linguagem de máquina utilizada. Na década de 1960, uma equipe de desenvolvedores da at&t Bell Labs resolveu trabalhar em um software mais objetivo e simplificado do que aquele que era utilizado nos mainframes da época. Após alguns anos, mais precisamente em 1969, o resultado foi o sistema operacional proprietário apelidado de unix (Serviço de Computação e Informação Uniplexada). Unix é um sistema operacional portável, multitarefa e multiutilizador originalmente criado por Ken Thompson, Dennis Ritchie, Douglas McIlroy e Peter Weiner, que trabalhavam nos Laboratórios Bell (Bell Labs) da at&t. A marca unix é uma propriedade do The Open Group, uma companhia formada por empresas de informática.

 De início, o sistema foi programado especificamente para um tipo de máquina, mas, em 1973, o software foi recodificado para a linguagem C. Apesar de se tratar de um software com código fechado, a at&t forneceu cópias para universidades. Em 1977, o un ix teve seu primeiro descendente. Ainda que tivesse características próprias, o SO bsd estava claramente ligado com seu antecessor, visto que utilizava parte do código-fonte e do design do sistema que foi criado pela at&t. De início, o sistema era apenas uma extensão do unix e agregava algumas poucas funcionalidades. Assim como seu “pai”, o bsd também adotou a ideia do código fechado (algo que foi mudado décadas depois), mas isso não era exatamente um problema, visto que ele era voltado para o uso em universidades e máquinas de grande porte.
Tanto o Unix quanto o bsd, em suas primeiras versões, foram desenvolvidos para o uso de computadores de grande porte, normalmente em universidades.

Contudo, alguns jovens programadores possuíam uma ideia absurda para época: criar sistemas operacionais para o uso de pessoas comuns. Um dos primeiros a pensar desta forma foi Steve Jobs, fundador da Apple. Desde a criação de sua empresa, seu principal objetivo foi a criação de computadores com sistemas operacionais fáceis de serem operados. O lançamento do Apple I em 1976, um dos primeiros computadores pessoais, foi um marco na história da computação.
Pela primeira vez, um pc (Personal Computer ou Computador Pessoal) continha um teclado fácil de ser utilizado, com uma minitelevisão adaptada como monitor. Assim, conhecimentos avançados de computação já não eram mais requisitos para se operar um pc. O Apple Machintosh foi lançado em 1984, introduzindo o conceito de desktop, utilizando ícones e pastas para representar programas e arquivos do modo como conhecemos hoje. Esta máquina acompanhava o revolucionário e inovador SO chamado mac os. No início dos anos 90, o mercado de sistemas operacionais sofreu novo boom com o lançamento do Windows 3.0 (1990) e do Windows 3.1(1992).

No final dos anos 90, o código do Macintosh apresentava muitos problemas, o que obrigou que um novo plano fosse traçado. Em 2001, a Apple surpreendeu o mundo da informática, abandonando o seu próprio código e reescrevendo todo o seu sistema operacional usando o Unix como base. A partir daí ele passou a se chamar MAC OSX, sistema que continua forte até os dias de hoje.

Principais funções de um Sistema Operacional



 O sistema operacional pode ser visto como um programa de grande complexidade, responsável por todo o funcionamento de uma máquina, desde o software até o hardware instalado. O SO está por trás de tudo que é feito pelo computador por meio de uma programação complexa que comanda todas as funções da máquina.

 Os principais sistemas operacionais utilizados nos computadores pessoais na atualidade e suas devidas variações são: Windows, Linux e o Mac OS.

  Um sistema operacional possui basicamente as seguintes funções: gerenciamento de processos, gerenciamento de memória, sistemas de arquivos e entrada e saída de dados.

Gerenciamento de processos



Um sistema operacional multitarefa é preparado para dar uma visão ao usuário de que o número de processos que executam simultaneamente é maior que o número de processos instalados. Cada processo possui uma parte do tempo e a alternância desses processos é tão rápida que dá uma impressão aos usuários de que tudo está sendo executado simultaneamente. Para determinar qual o processo que está sendo executado naquele instante, são utilizados algoritmos que fazem o gerenciamento dos processos. A comunicação, entre os diversos processos, é chamada de ipc (Inter-Process Communication). Os mecanismos que estão por trás dessa comunicação são: os sinais, pipes, named pipes, memória compartilhada, soquetes (sockets) e troca de mensagens. O sistema operacional deve possibilitar normalmente o multiprocessamento. Neste caso, processos distintos e threads (fluxos de execução) podem ser executados em diferentes processadores. Para isso, o processo deve ser gerenciável a ponto de sofrer uma interrupção durante a execução de uma tarefa caso necessite.

Gerenciamento de memória

 O sistema operacional tem acesso completo à memória lógica e física do sistema, permitindo que os processos dos usuários tenham acesso seguro quando fazem solicitação de alocação de memória.   O principal objetivo do gerenciamento de memória nos sistemas operacionais é apresentar técnicas de gerência de memória que possibilitam o carregamento de todo, ou parte, do programa a ser executado para a memória. Entretanto, um programa não precisa estar todo na memória para executar. Às vezes, algumas partes de programa não são necessárias o tempo todo.  As técnicas de gerência de memória estão intimamente ligadas ao hardware do computador. Na prática, as arquiteturas existentes no mercado, possuem uma série de detalhes que tornam complexa a sua implementação, utilizando os mecanismos de gerência de memória. A memória pode ser definida como lógica e física.  A memória lógica de um processo é que o processo é capaz de endereçar e acessar usando as suas instruções. Em outras palavras, é aquela que o processo enxerga. Todos os endereços manipulados pelo processo são endereços lógicos.  A memória física é implementada pelos circuitos integrados de memória, pela eletrônica do computador. O endereço físico é aquele que vai para a memória física usada para endereçar os circuitos integrados de memória.  Também temos os espaços de endereçamentos lógicos e físicos. Os espaços de endereçamentos lógicos são formados por todos os endereços lógicos que o processo pode gerar. Existe um espaço de endereçamento lógico por processo. Já o espaço de endereçamento físico é formado por todos os endereços aceitos pelos circuitos integrados da memória.  A unidade de gerência de memória (Memory Management Unit, mmu) é o componente do hardware responsável por prover os mecanismos básicos que serão usados pelo sistema operacional para gerenciar a memória. Em outras palavras, é a mmu que vai mapear os endereços lógicos gerados pelos processos nos correspondentes endereços físicos que serão enviados para a memória.

Sistemas de arquivos

 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.  Os sistemas operacionais agrupam os dados em compartimentos lógicos para armazená-los em disco (memória secundária, tais como hd, pendrive, etc). Esses grupos de dados são chamados de arquivos. Os computadores armazenam informações em arquivos e estes podem conter instruções de programas ou dados criados e usados por um programa.  A maioria dos programas vem com inúmeros arquivos. Esses programas também permitem que você crie seus próprios conjuntos de dados e armazene-os como arquivos. O SO também mantém uma lista de arquivos contidos nos discos.  Um arquivo é um conjunto de bytes, normalmente armazenado em um dispositivo periférico não volátil, como por exemplo, um disco rígido que pode ser lido e gravado por um ou mais processos. Eles são normalmente implementados a partir de discos magnéticos (sta llings,,2010).  Um arquivo pode conter um programa executável, um código fonte (código escrito em uma linguagem de programação), um texto, uma planilha, uma figura, uma fotografia, uma música, um vídeo ou um conjunto de arquivos compactados.  Pastas (ou diretórios) são conjuntos de referências a arquivos. As pastas são úteis para organizar os arquivos do sistema e do usuário. É comum mesmo em computadores pessoais a existência de milhares de arquivos do sistema. As pastas permitem separá-los em grupos facilitando sua localização e manuseio.  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, também se faz necessário fornecer uma interface que o usuário possa desfrutar dos recursos do sistema facilitando inclusive a localização e controle dos arquivos gravados.  Existem atualmente dois tipos de interfaces, a gui (Graphical user Interface), também conhecida como interface gráfica, e a cui (Command-Line Interface), ou interface de linha de comando. Utilizando um SO como o Windows, por exemplo, temos a gui. A interface do SO DOS (Disk Operating System) é do tipo cui.

Classificação dos SOs

Segundo Machado (2014), os sistemas operacionais estão aqui classificados em duas divisões: quanto a sua arquitetura (projeto) e quanto ao gerenciamento dos processos.
Em relação a sua arquitetura, temos:
» Núcleo monolítico ou monobloco: o núcleo consiste em um único processo executando as principais funções em uma memória protegida;
» Micronúcleo ou modelo cliente – servidor: o núcleo consiste de funções mínimas como comunicação e gerenciamento de processos, sistemas de arquivos e gerenciamento de memória. São executadas no espaço do usuário;
» Sistemas de camadas: funções do núcleo irão executar em camadas distintas, de acordo com seu nível de privilégio;
» Monitor de máquinas virtuais: fornece uma abstração do hardware para vários sistemas operacionais. Ex: VMware, Xen dentre outros.
Em relação ao gerenciamento de processos, temos:
» Monotarefa: pode-se executar apenas um processo de cada vez. Exemplo, MS-DOS.
» Multitarefa: além do próprio SO, vários processos estão carregados em memória, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador é distribuído de modo que o usuário tenha a impressão que diversos processos estão sendo executados simultaneamente. Exemplos são os SOs Linux, Windows, FreeBSD e Mac OS X.
» Multiprocessamento: o SO distribui as tarefas entre dois ou mais processadores.
» Multiprogramação: o SO divide o tempo de processamento entre vários processos mantendo o processador sempre ocupado.
Além dessas classificações, encontra-se na literatura uma divisão quanto à quantidade de usuários que podem utilizar o sistema simultaneamente. São eles, os monousuários e os multiusuários.
Em um SO monousuário apenas um usuário acessa o sistema por vez, apesar de suportar recursos como troca de usuários e os multiusuários, vários usuários podem utilizar o computador ao mesmo tempo, seja por terminais ou por conexão remota SSH.

Hoje em dia se destacam no mercado corporativo e doméstico três sistemas operacionais, windows, Mac OS, Linux.

...

O Windows é um sistema operacional desenvolvido pela Microsoft. É um dos sistemas operacionais mais populares e amplamente utilizados em computadores pessoais e em uma variedade de dispositivos, como laptops, tablets e desktops. O Windows oferece uma interface gráfica do usuário (GUI) que permite aos usuários interagir com o computador de forma intuitiva, usando ícones, menus e janelas.

...

Linux é um sistema operacional de código aberto e livre, baseado no kernel Linux. Ele foi criado por Linus Torvalds em 1991 e se tornou uma alternativa popular ao Windows e a outros sistemas operacionais proprietários.

...

O macOS é um sistema operacional desenvolvido pela Apple exclusivamente para os computadores Mac. É um sistema operacional baseado em Unix e oferece uma interface gráfica do usuário (GUI) elegante e intuitiva.