Buscar

Sistema de computaçõa

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Sistemas Operacionais
Sistemas de Computação 
Operação dos Sistema de Computação
Controladora de memória
Memória
CPU
Barramento do sistema
Controladora de Disco
Controladora de Impress.
Controladora de Un de Fita
*
Sistemas Operacionais
Para que um computador comece a funcionar, ele precisa ter um programa inicial para executar. Este programa inicial, ou programa de partida (bootstrap program), tende a ser simples.
O sistema inicial inicializa os registradores de CPU e as controladoras de dispositivos, passando pelo conteúdo da memória. O programa de partida deverá saber onde se encontra o Sistema Operacional como carregá-lo e iniciar então o sistema.
A partir deste ponto o Sistema Operacional inicia a execução do primeiro processo e espera que algum evento ocorra.
A ocorrência de eventos é geralmente dada pela interrupção de Hardware ou Software. O hardware dispara uma interrupção enviando um sinal a CPU através do barramento. O software pode disparar uma interrupção executando uma operação especial denominada Chamada ao Sistema (System Call) ou Chamada ao Monitor (Monitor Call). 
*
Sistemas Operacionais
Os sistema Operacionais Modernos são baseados em Interrupções. Se não houver processos para executar, nenhum dispositivo de I/O ao qual fornecer serviço e nenhum usuário a ser atendido, o sistema operacional ficará parado esperando que algo aconteça.
Os eventos são quase sempre sinalizados pela ocorrência de uma interrupção ou um trap. Trap, ou exceção, é uma interrupção gerada por software causada por um erro (ex: divisão por zero ou ou acesso inválido a memória)
O fato de um sistema operacional ser baseado em interrupções define estrutura geral do sistema. Para cada tipo de interrupção, segmentos separados de código no Sistema Operacional detereminam a ação que deve ser realizada. 
*
Sistemas Operacionais
Estrutura de I/O.
Cada controladora está encarregada de um tipo específico de dispositivo (dependendo da controladora podemos ter mais de um dispositivo conectado)
Uma controladora mantém algum armazenamento em um buffer local e um conjunto de registradores de propósito especial. A controladora de dispositivo é responsável pela passagem dos dados entre o buffer local e o dispositivo por ela controlado.
Interrupção de I/O
Para começar uma operação a CPU carrega os registradores adequados dentro da controladora de dispositivo. A controladora, então, examina o conteúdo destes registradores para determinar que ação deve tomar. Após o término da ação ela dispara um interrupção para a CPU avisando do seu término.
*
Sistemas Operacionais
Interrupção de I/O (cont..)
Essa situação ocorrerá, em geral, como resultado de um processo de usuário que requisita o dispositivo. Uma vez iniciada a operação de I/O, dois roteiros são possíveis:
 a I/O é iniciada e em seguida, quando tiver sido concluída o controle é devolvido para o usuário (I/O síncrona)
 o controle ao programa de usuário é devolvido sem esperar que a I/O termine (I/O Assíncrona)
*
Sistemas Operacionais
Interrupção de I/O (cont..)
A principal vantagem da I/O assíncrona é a maior eficiência do sistema
*
Sistemas Operacionais
Estrutura de DMA
Considere um driver simples de entrada num terminal. Quando uma linha vai ser lida do termina, o primeiro caractere digitado é enviado ao computador. Quando este caractere é recebido, o dispositivo de comunicação assíncrona (ou porta serial), ao qual a linha do terminal está conectada, interrompe a CPU. Quando este pedido de interrupção chega, a CPU está pronta para executar alguma instrução (se a CPU estiver no meio de uma execução a interrupção fica pendente).
Supondo que esteja-se digitando em um terminal de 9600 baud, o terminal pode transferir um caractere a cada 1 milisegundo ou seja 1000 microsegundos. Uma rotina de serviços bem escrita pode precisar de 2 microsegundos por caractere para inserir caracteres no buffer, deixando 998 microsegundos de cada 1000 para computação de CPU.
*
Sistemas Operacionais
Estrutura de DMA
Considerando esta disparidade, a I/O assíncrona geralmente recebe baixa prioridade de interrupção, permitindo que outras interrupções mais importantes sejam processadas primeiro. 
Dispositivos de alta velocidade (ex: discos, fitas ou uma placa de rede), no entanto, podem transferir informações em velocidades de memória; logo a CPU precisaria de 2 microsegundos para responder cada interrupção, com cada interrupção chegando a 4 micro segundos (por exemplo). Isso não deixaria muito tempo para execução dos processos.
Para resolver este problema, o Acesso Direto à Memória (DMA - Direct Memory Access) é usado para dispositivo de I/O de alta velocidade. Depois de configurar os buffers, ponteiros e contadores para o dispositivo de I/O, a controladora de dispositivo transfere um bloco inteiro de dados direto entre seu próprio buffer e a memória, sem intervenção da CPU.
*
Sistemas Operacionais
Estrutura de DMA
A operação básica da CPU é a mesma. Um programa de usuário, ou o próprio sistema operacional, pode solicitar a transferência de dados. O S.O. encontra um buffer (vazio para entrada ou cheio para saída) de um pool de buffers para transferência. Em seguida uma parte do S.O., chamada de “driver de dispositivo” configura os registradores da controladora de DMA para usar os endereços de origem e destino adequados e o tamanho da transferência. A controladora de DMA é então instruída a começar a operação de I/O. Enquanto a controladora de DMA está executando a transferência de dados a CPU está livre para executar outras tarefas.
Como a memória pode geralmente transferir uma palavra de cada vez a controladora de DMA “rouba” ciclos de memória da CPU. O que pode causar redução na velocidade da CPU durante o processo de transmissão da DMA. A controladora de DMA interrompe a CPU quando a transmissão estiver completa.
*
Sistemas Operacionais
Estrutura de Armazenamento
 Memória principal: Os programas de computador precisam estar na memória principal, também chamada de Memória de Acesso Aleatório ou RAM (Random Access Memory), para serem executados. A memória Principal é a única área de armazenamento que o processador pode acessar diretamente (geralmente é pequena e é volátil).
 Memória Secundária: Discos Magnéticos, Fitas e outros.
*
Sistemas Operacionais
Hierarquia de Armazenamento
*
Sistemas Operacionais
Os registradores internos da CPU são geralmente acessíveis em um ciclo de clock da CPU. A maioria das CPUs pode descodificar instruções e realizar operações simples sobre o conteúdo do registrador a taxas de uma ou mais operações por pulso de clock. O mesmo não ocorre com a memória principal que é acessada via uma transação no barramento de memória. O acesso a memória pode levar muitos ciclos até ser concluído e neste caso o processador fica aguardando já que não possui dados suficientes para realizar a operação. Devido a alta freqüência de acesso a memória esta situação é intolerável. 
Um buffer de memória, chamado de cache, é usado para acomodar este diferença de velocidade
Caching
*
Sistemas Operacionais
O caching é um princípio importante dos sistemas de computação. As informações são normalmente mantidas em algum sistema de armazenamento (como a memória principal). A medida que usadas, as informações são copiadas temporariamente para para um sistema de armazenamento mais rápido, o cache. Quando precisamos de uma determinada informação, primeiro vamos ao cache verificar sua disponibilidade, se estiver, é de lá que a usamos, caso contrário vamos ao sistema de armazenamento principal (supondo que esta está lá) e então gravamos na cache, partindo do pressuposto que ele tem grande possibilidade de ser recentemente reutilizado. 
Caching (cont...)
Coerência e Consistência
Memória Secundária 
Memória Principal 
Cache
*
Sistemas Operacionais
Proteção de Hardware
Proteção I/O
(Várias Instruções -como I/O -só podem ser executados em Modo
Monitor)
Proteção de Memória
(Memória Sistema Operacional reside protegida contra modific. do usuário )
Proteção de CPU 
(Timer para evitar que processos de usuários entrem em laços infinitos)
Operação em Modo Dual (Usuário e Monitor ou Supervisor)
*
Sistemas Operacionais
Estrutura de Sistemas Operacionais
A estrutura e funcionamento de um SO são tópicos de difícil compreensão. Um SO não é executado como uma aplicação seqüencial, com início, meio e fim. As rotinas do SO são executadas sem uma ordem predefinida. A execução é baseada em eventos assíncronos. Para tentar entender o conceito de estrutura de um SO, primeiro é necessário definir o que seja Núcleo (Kernel) de um Sistema Operacional, as Chamadas ao Sistema e Modos de Acesso.
*
Sistemas Operacionais
Núcleo de um Sistema Operacional
O Núcleo (Kernel) é o software que fornece serviços básicos para todas as outras partes de um SO. De forma mais detalhada, o Núcleo é um conjunto de rotinas que oferecem serviços aos usuários do sistema e suas aplicações, bem como a outras rotinas do próprio SO.
Um núcleo pode ser contrastado com um interpretador de comandos, conhecido como shell nos sistemas UNIX, o qual não é parte do SO mas que desempenha um relevante papel interagindo com comandos do usuário. Dentre as principais funções do Núcleo estão: 
- tratamento de interrupções;
- gerenciamento de processos (criação e destruição de processos; sincronização e comunicação entre processos,...);
- gerenciamento de memória;
- gerenciamento do sistema de arquivos;
- operações de E/S.
*
Sistemas Operacionais
Núcleo de um Sistema Operacional (cont...)
Os serviços do Núcleo são solicitados por outras partes do SO ou por aplicações de usuários, por meio de um conjunto especificado de interfaces de programa (rotinas) conhecidas como Chamadas ao Sistema (System Calls).
Chamadas ao Sistema (System Calls)
As Chamadas ao Sistema são um mecanismo de proteção ao Núcleo do sistema e de acesso aos seus serviços. O usuário (ou aplicação), quando deseja solicitar algum serviço do SO, realiza uma chamada a um de seus serviços por meio de uma rotina (procedimento de biblioteca) que está diretamente associada às System Calls. A Figura abaixo mostra a relação entre a rotina de biblioteca, usada pelos programas dos usuários, e as System Calls.
*
Sistemas Operacionais
Chamadas ao Sistema (System Calls) (cont...)
*
Sistemas Operacionais
Modos de Acesso (Abstração)
*
Sistemas Operacionais
Interpretador de Comando do Sistema Operacional
Um Interpretador de Comandos não faz parte de um SO, embora seja extremamente útil. No UNIX, o interpretador de comandos é chamado de shell e ele é a interface primária entre um usuário sentado em frente ao computador e o SO. O shell e o Núcleo do SO são programas separados que se comunicam por meio de um conjunto de System Calls.
No caso do UNIX, considerando a interface de linha de comando, o shell mostrará um prompt após o usuário ter entrado no sistema (login). Supondo que seja o Bourne Shell, este prompt será $. Então, seja o caso do usuário digitar na linha de comando o seguinte:
$ ls (Enter)
*
Sistemas Operacionais
Interpretador de Comando do Sistema Operacional
O comando ls lista arquivos e diretórios. O shell lerá, então, o comando digitado no terminal e entenderá que o usuário deseja executar o comando no arquivo /bin/ls. Então, o shell solicita ao Núcleo que crie um novo processo filho (rotina: fork;System Call: FORK). O processo filho executará o comando (ls) digitado pelo usuário por meio de outra System Call: EXEC (rotina execve, por exemplo). O shell se suspenderá, esperando que o processo filho termine de executar. Quando o processo filho terminar de executar, ele avisa ao Núcleo, por meio da System Call EXIT (rotina: exit) e o núcleo, por sua vez, acorda o shell e avisa-o que ele pode continuar a executar. O shell mostra o prompt novamente e espera por um novo comando. O que é importante é perceber que o shell é um programa comum de usuário. Tudo o que ele precisa é a habilidade de ler ou escrever para o terminal, e a capacidade de interagir com o Núcleo do SO. 
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais