Professional Documents
Culture Documents
Sistemas Monoprogramáveis/Monotarefa
Sistemas Multiprogramáveis/Multitarefa
Mark2
Eniac
Pascal Babbage
6 Sistemas Operacionais Luiz Arthur
Hardware
➢Dispositivos de entrada/saída.
Processador
Memória Principal
Atualmente, a grande maioria dos computadores utiliza o byte (8bits) como tamanho
de célula.
Memória Cache
A memória cache é uma memória volátil de alta velocidade, porém com pequena
capacidade de armazenamento. O tempo de acesso a um dado nela contido é muito
menor do que se este dado estivesse na memória principal. O propósito do uso da
memória cache é minimizar a disparidade existente entre a velocidade com que o
processador executa instruções e a velocidade com que os dados são acessados na
memória principal.
Memória Secundária
Dispositivos de Entrada/Saída
Barramento
Software
Interface/Shell Chamadas
ao SO
Usuário
Programa/ Sistema
Aplicativo Operacional
Tradutor
Interpretador
Linker
Loader
Depurador
Ativação/Desativação do Sistema
Concorrência
Porém para que seja executada uma arquitetura multiprogramável são necessárias
varias técnicas como veremos posteriormente.
21 Sistemas Operacionais Luiz Arthur
Interrupção e Exceção
Operações de Entrada/Saída
A evolução do modelo anterior foi permitir que, após o início da transferência dos
dados, o processador permanecesse livre para realizar outras tarefas. Assim, em
determinados intervalos de tempo, o sistema operacional deveria testar cada
dispositivo para saber do término da operação de E/S (polling). Esse tipo de
operação introduziu certo grau de paralelismo, visto que um programa
poderia ser processado, enquanto outro esperava pelo término de uma
operação de E/S. Com isso surgirão os primeiros sistemas multiprogramáveis.
O controlador por sua vez, ao receber, por exemplo, um sinal de leitura fica
encarregado de ler os blocos do disco e armazená-los em memória ou registradores
próprios. Em seguida, o controlador sinaliza uma interrupção ao processador.
Quando o processador atende a interrupção, a rotina responsável pelo tratamento
transfere os dados dos registradores do controlador para a memória principal. Ao
término da transferência, o processador pode voltar a executar o programa
interrompido e o controlador fica novamente disponível para outra operação.
Apesar da E/S controlada por interrupção ser muito mais eficiente que a controlada
por programa a transferência de grandes volumes de dados exige muitas
intervenções do processador, reduzindo sua eficiência. A solução para esse
problema foi a implementação de uma técnica de transferência de dados
denominada DMA (Direct Memory Access).
A técnica de DMA permite que um bloco de dados seja transferido entre a memória
principal e dispositivos de E/S, sem a intervenção do processador, exceto no início e
no final da transferência. Com estas informações, o controlador realiza a
transferência entre o periférico e a memória principal, e o processador é
interrompido somente no final da operação. A área de memória utilizada pelo
controlador na técnica de DMA é chamada de buffer de entrada e saída.
25 Sistemas Operacionais Luiz Arthur
Buffering
Spooling
Atualmente essa técnica está presente na maioria dos sistemas operacionais, sendo
utilizada no gerenciamento de impressão. No momento em que um comando de
impressão é executado, as informações que serão impressas são gravadas em um
arquivo em disco, conhecido como arquivo de spool, liberando imediatamente o
programa para outras atividades. Posteriormente, o sistema operacional encarrega-
se de direcionar o conteúdo do arquivo de spool para a impressora.
27 Sistemas Operacionais Luiz Arthur
Reentrância
Proteção do Sistema
➢ Gerência de memória;
As system calls podem ser entendidas como uma porta de entrada para o acesso ao
núcleo do sistema operacional e a seus serviços. Sempre que um usuário ou
aplicação desejar algum serviço do sistema, é realizada uma chamada a um de suas
rotinas através de uma system call (chamada ao Sistema).
Para cada serviço disponível existe uma system call associada e cada sistema
operacional tem seu próprio conjunto de chamadas, com nomes, parâmetros e
formas de ativação específicos. Isto explica por que uma aplicação desenvolvida
utilizando serviços de um determinado sistema operacional não pode ser portada
diretamente para outro sistema operacional.
32 Sistemas Operacionais Luiz Arthur
Uma tentativa de criar uma biblioteca de chamadas padronizada foi proposta pelos
institutos ISO e IEEE. O padrão POSIX (Portable Operating System Interface for
Unix), como foi definido, permitiu que uma aplicação desenvolvida seguindo este
conjunto de chamadas pudesse ser executada em qualquer sistema operacional que
oferecesse suporte ao padrão.
As system calls podem ser divididas por grupos de função vistas a seguir:
Modos de Acesso
Existem certas instruções que não podem ser colocadas diretamente à disposição
das aplicações, pois a sua utilização indevida ocasionaria sérios problemas à
integridade do sistema.
Por exemplo, suponha que uma aplicação atualize um arquivo de disco. O programa,
por si só, não pode especificar diretamente as instruções que acessam seus dados no
disco. Como o disco é um recurso compartilhado, sua utilização deverá ser
gerenciada unicamente pelo sistema operacional, evitando que a aplicação possa ter
a segurança e integridade do sistema de arquivos.
Assim, para que uma aplicação possa executar uma instrução privilegiada, é
necessário que no processador seja implementado o mecanismo de proteção
conhecido como modos de acesso.