Vídeo Aula
SOFTWARE
Já sabemos que o computador é dado pela equação:
COMPUTADOR = SOFTWARE + HARDWARE
Já vimos os perfis de consumo de usuários e classificamos os hardware de acordo com o perfil e também classificamos o hardware em dispositivos de entrada e dispositivos de saida.
Tipo de Software
Pode-se dividir os softwares em duas grandes classes: Sistemas Operacionais e Outros. Esse tipo de divisão mostra como os sistemas operacionais são importantes. Vamos ver abaixo:
Sistemas Operacionais
É o conjunto de programas que gerenciam recursos, processadores, armazenamento, dispositivos de entrada e saída e dados da máquina e seus periféricos. O sistema que faz comunicação entre o hardware e os demais softwares. O Sistema Operacional cria uma plataforma comum a todos os programas utilizados. Exemplos: Dos, Unix, Linux, Mac OS, OS-2, Windows NT.
Um sistema operacional moderno é capaz de gerenciar um computador completamente dando suporte aos programas instalados e atendendo todas as requisições e necessidades do usuário. As principais prioriedades de um sistema operacional moderno são:
Funcionamento em modo protegido: Em oposição ao modo real o modo protegido permite que várias atividades sejam executadas ao mesmo tempo (multitarefa) com a criação de maquinas virtuais para execução destas várias tarefas, uso de memória virtual que é a capacidade de simular memória principal nos dispositivos de memória secundária (normalmente um disco rígido) quando a memória principal é exaurida, através da criação de um arquivo especial chamado arquivo de “SWAP” ou arquivo de paginação. No arquivo de “SWAP” o sistema operacional constrói uma estrutura lógica semelhante a memória RAM (memória principal do computador) e passa a utilizar este arquivo como uma memória RAM verdadeira, isso permite ao computador executar aplicativos que demandem mais memória do que o computador realmente tem. A desvantagem é que o computador terá o seu funcionamento vagaroso visto que os tempos de acesso da memória secundária do tipo disco rígido é cerca de 1000 (mil) vezes mais lento que os tempos de acesso de memória principal do tipo RAM.
Na figura abaixo tem-se uma representação de como o sistema operacional funciona e interage com o hardware, aplicativos e usuário.
Observa-se pela figura que o usuário interage com os aplicativos e o sistema operacional e não consegue acessar o hardware, assim como os aplicativos. Outro detalhe muito importante é que os aplicativos são projetados para um determinado sistema operacional, ou seja, antes de adquirir um programa é necessário saber para qual sistema operacional.
Um sistema operacional é responsável pelo controle do computador depois que os programas da BIOS (Basic Input and Output System) terminam suas tarefas.
Um sistema operacional possui as seguintes funções:
- gerenciamento de processos;
- gerenciamento de memória;
- gerenciamento de recursos;
- entrada e saída de dados;
- sistema de arquivos.
Gerenciamento de memória
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 (Tanenbaum, 1999);
- 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.
Swapping
Dentro de gerenciamento de memória, pode não ser possível manter todos os processos em memória, muitas vezes por não existir memória suficiente para alocar aquele processo. Para solucionar esse problema existe um mecanismo chamado swapping, onde a gerência de memória reserva uma área do disco para o seu uso em determinadas situações, e um processo é completamente copiado da memória para o disco; este processo é retirado da fila do processador e mais tarde será novamente copiado para a memória; Então, o processo ficará ativo na fila novamente. O resultado desse revezamento no disco é que o sistema operacional consegue executar mais processos do que caberia em um mesmo instante na memória. Swapping impõe aos programas um grande custo em termos de tempo de execução, pois é necessário copiar todo o processo para o disco e mais tarde copiar novamente todo o processo para a memória. Em sistemas onde o usuário interage com o programa durante sua execução, o mecanismo de swapping é utilizado em último caso, quando não se é possível manter todos os processos na memória, visto que a queda no desempenho do sistema é imediatamente sentida pelo usuário.
Gerenciamento de recursos
Uma das tarefas com extrema importância atribuída ao sistema operacional é o gerenciamento de recursos, que tem a função de definir políticas para gerenciar o uso dos recursos de hardware pelos aplicativos, resolvendo disputas e conflitos. Vários programas de entrada de dados competem pela vez na CPU (Unidade Central de Processamento) e demandam memória, espaço em disco e largura. O sistema operacional tem a função de cuidar de cada aplicativo e para que os mesmos tenham recursos necessários para o melhor funcionamento e gerencia a capacidade limitada do sistema para que possa atender todas as necessidades de aplicativos e usuários.
Entrada e saída de dados
Sistemas operacionais controlam e gerenciam a entrada e saída (E/S) de dispositivos por três razões. Primeiro, porque a maioria do hardware do dispositivo utiliza uma interface de baixo nível, a interface do software é complexa. Em segundo lugar, porque um dispositivo é um recurso compartilhado, um sistema operacional fornece acesso de acordo com as políticas que tornam a partilha justa e segura. Em terceiro lugar, um sistema operacional define uma interface de alto nível que esconde detalhes e permite que um programador possa usar um conjunto coerente e uniforme das operações ao interagir com os dispositivos.
O subsistema de E/S pode ser divididos em três peças conceituais:
- Uma interface abstrata que consiste funções de E/S de alto nível que os processos possam usar para executar I / O;
- Um conjunto de dispositivos físicos;
- Software de driver de dispositivo que conecta os dois.
Sistema 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.
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.
Veja abaixo um bom vídeo que explica um pouco mais sistemas operacionais.