conceitos básicos – sistemas operacionais

Propaganda
CONCEITOS BÁSICOS – SISTEMAS OPERACIONAIS
AULA 01 – Sistemas Operacionais
Gil Eduardo de Andrade
O conteúdo deste documento é baseado no livro do Prof. Dr. Carlos Alberto Maziero,
disponível no link: http://www.ppgia.pucpr.br/~maziero. Acesso efetuado em 20/06/2011.
Introdução
Um sistema de computação é constituído basicamente por hardware e software, existindo
uma grande distância entre os circuitos eletrônicos e dispositivos de hardware e os programas em
software. Os circuitos são complexos, acessados através de interfaces de baixo nível (geralmente
usando as portas de entrada/saída do processador) e muitas vezes suas características e seu
comportamento dependem da tecnologia usada em sua construção. Por exemplo, a forma de
acesso de baixo nível a discos rígidos IDE difere da forma de acesso a discos SCSI ou leitores de
CD. Essa grande diversidade pode ser um grande problema para o desenvolvedor de aplicativos.
Com isso torna-se desejável oferecer aos programas uma forma de acesso homogênea aos
dispositivos físicos, que possibilite abstrair as diferenças tecnológicas entre eles.
O sistema operacional é uma camada de software que opera entre o hardware e os
programas aplicativos voltados ao usuário final. O sistema operacional é uma estrutura de
software ampla, muitas vezes complexa, que incorpora aspectos de baixo nível (como drivers de
dispositivos e gerência de memória física) e de alto nível (como programas utilitários e a própria
interface gráfica). A figura a seguir ilustra a arquitetura geral de um sistema de computação
típico. Nela, podemos observar elementos de hardware, o sistema operacional e alguns
programas aplicativos.
Estrutura de um sistema de computação típico
Os objetivos básicos de um sistema operacional podem ser sintetizados em duas palavraschave: “abstração” e “gerência”, cujos principais aspectos são detalhados a seguir.
Abstração de Recursos
Acessar os recursos de hardware de um sistema de computação pode ser uma tarefa
complexa, devido às características específicas de cada dispositivo físico e a complexidade de
suas interfaces. Por exemplo, a seqüência a seguir apresenta os principais passos envolvidos na
abertura de um arquivo (operação open) em um leitor de disquete:
1. verificar se os parâmetros informados estão corretos (nome do arquivo, identificador do leitor
de disquete, buffer de leitura, etc);
2. verificar se o leitor de disquetes está disponível;
3. verificar se o leitor contém um disquete;
4. ligar o motor do leitor e aguardar atingir a velocidade de rotação correta;
5. posicionar a cabeça de leitura sobre a trilha onde está a tabela de diretório;
6. ler a tabela de diretório e localizar o arquivo ou subdiretório desejado;
7. mover a cabeça de leitura para a posição do bloco inicial do arquivo;
8. ler o bloco inicial do arquivo e depositá-lo em um buffer de memória.
Assim, o sistema operacional deve definir interfaces abstratas para os recursos do
hardware, visando atender os seguintes objetivos:
→ Prover interfaces de acesso aos dispositivos, mais simples de usar que as interface de baixo
nível, para simplificar a construção de programas aplicativos. Por exemplo: para ler dados de um
disco rígido, uma aplicação usa um conceito chamado arquivo, que implementa uma visão
abstrata do disco rígido.
→ Tornar os aplicativos independentes do hardware. Ao definir uma interface abstrata de
acesso a um dispositivo de hardware, o sistema operacional desacopla o hardware dos
aplicativos e permite que ambos evoluam de forma mais autônoma. Por exemplo, o código de
um editor de textos não deve ser dependente da tecnologia de discos rígidos utilizada no sistema.
→ Definir interfaces de acesso homogêneas para dispositivos com tecnologias distintas.
Através de suas abstrações, o sistema operacional permite aos aplicativos usar a mesma interface
para dispositivos diversos. Por exemplo, um aplicativo acessa dados em disco através de
arquivos e diretórios, sem precisar se preocupar com a estrutura real de armazenamento dos
dados, que podem estar em um disquete, um disco IDE, uma máquina fotográfica digital
conectada à porta USB, um CD ou mesmo um disco remoto, compartilhado através da rede.
Gerência de Recursos
Os aplicativos utilizam o hardware para executar suas funções: ler e armazenar dados,
editar e imprimir documentos, navegar na Internet, tocar música, etc. Com diversar atividades
em execução, e diversos possíveis acessos simultâneos ao hardware, conflitos podem surgir.
Cabe ao sistema operacional definir políticas para gerenciar o uso dos recursos de hardware
pelos aplicativos, e resolver eventuais disputas e conflitos. Exemplos:
→ O uso desse processador deve ser distribuído entre os aplicativos presentes no sistema, de
forma que cada um deles possa executar na velocidade adequada para cumprir suas funções sem
prejudicar os outros.
→ Ataques de negação de serviço (DoS – Denial of Service). Consistem em usar diversas
técnicas para forçar um servidor de rede a dedicar seus recursos a atender um determinado
usuário, em detrimento dos demais. Por exemplo, ao abrir milhares conexões simultâneas em um
servidor de e-mail.
Funcionalidades
Cada recurso do sistema possui suas particularidades, o que impõe exigências específicas
para gerenciar e abstrair os mesmos.
Funcionalidades do sistema operacional
Gerência do processador: visa distribuir a capacidade de processamento de forma justa1 entre
as aplicações, evitando que uma aplicação monopolize esse recurso e respeitando as prioridades
dos usuários. O sistema operacional provê a ilusão de que existe um processador independente
para cada tarefa.
Gerência de Memória: tem como objetivo fornecer a cada aplicação uma área de memória
própria, independente e isolada das demais aplicações e inclusive do núcleo do sistema, isso
melhora a estabilidade e segurança do sistema como um todo.
Gerência de Dispositivos: visa implementar a interação com cada dispositivo por meio de
drivers e criar modelos abstratos que permitam agrupar vários dispositivos distintos sob a mesma
interface de acesso.
Gerência de Arquivos: construída sobre a gerência de dispositivos e visa criar arquivos e
diretórios, definindo sua interface de acesso e as regras para seu uso.
Gerência de Proteção: para proteger os recursos do sistema contra acessos indevidos, é
necessário: a) definir usuários e grupos de usuários; b) identificar os usuários que se conectam ao
sistema, através de autenticação; c) definir e aplicar regras de controle de acesso aos recursos,
aplicando essas regras através de procedimentos de autorização; d) registrar o uso dos recursos
pelos usuários, para fins de auditoria e contabilização.
Além dessas funcionalidades básicas oferecidas pela maioria dos sistemas operacionais,
várias outras vêm se agregar aos sistemas modernos, para cobrir aspectos complementares, como
a interface gráfica, suporte de rede, fluxos multimídia, gerência de energia, etc.
As funcionalidades do sistema operacional geralmente são inter-dependentes: por
exemplo, a gerência do processador depende de aspectos da gerência de memória, assim como a
gerência de memória depende da gerência de dispositivos e da gerência de proteção.
Download