Vocês Lembram o que e SO?
Realizar um estudo comparativo entre 2
sistemas operacionais de mesmo
segmento presentes no mercado;
◦
Apresentar Vantagens;
◦
Apresentar Desvantagens ;
◦
Uma Opinião Critica.
Grupos de no máximo 4 pessoas;
7 minutos por grupo;
Apresentação Próxima Aula dia
PROCESSADOR
Também denominado unidade central de processamento (UCP), gerencia todo o sistema computacional controlando as operações realizadas por cada unidade funcional.
Cada processador é composto por uma unidade de controle, unidade lógica e aritmética, e registradores.
A unidade de controle (UC) é responsável por gerenciar as
atividades de todos os componentes do computador, como a gravação de dados em disco ou a busca de instruções na memória.
A sincronização de todas as funções do processador e realizada através de um sinal de clock. Este sinal é um pulso gerado siclicamente (inicio, meio e fim) que altera variáveis de estado do processador. O sinal de clock é gerado a partir de um cristal de quartzo que, devidamente polarizado, oscila em uma determinada frequência estável e bem determinado.
PROCESSADOR
Os registradores são dispositivos com a função principal de
armazenar dados temporariamente. O conjunto de registradores funciona como uma memória de alta velocidade interna do
processador, porém com uma capacidade de armazenamento reduzida e custo maior que o da memória principal.
Alguns registradores podem ser manipulados diretamente por instruções (registradores de uso geral), enquanto outros são
responsáveis por armazenar informações de controle do processador e do sistema operacional (registradores de uso específico). Entre os registradores de uso específico, merecem destaque:
> o contador de instruções (CI) ou program counter (PC) contém o endereço da próxima instrução que o processador deve buscar e executar;
> o apontador da pilha (AP) ou stack pointer (SP) contém o
endereço de memória do topo da pilha, ,que é a estrutura de dados onde o sistema mantém informações sobre programas que estão sendo executados e tiveram que ser interrompidas;
> o registrador de status ou program status word (PSW) é responsável por armazenar informações sobre a execução de instruções, como a ocorrência de overflow.
MEMÓRIA PRINCIPAL
A memória principal, primária ou real é o local onde são armazenados instruções e dados, composta por unidades de acesso chamadas
células, sendo cada célula composta por um determinado número de bits (Unidade básica de memória, sendo 0 ou 1).
O acesso ao conteúdo de uma célula é realizado através da
especificação de um número chamado endereço, que é uma referência única que podemos fazer a uma célula de memória.
A especificação do endereço é realizada através de um registrador denominado registrador de endereço de memória (memory address register – MAR).
Outro registrador usado em operações com a memória é o
registrador de dados da memória (memory buffer register – MBR). Este registrador é utilizado para guardar o conteúdo de uma ou mais células de memória, após uma operação de leitura, ou para guardar o dado que será transferido para a memória em uma operação de gravação.
A memória principal pode ser classificada em função de sua volatilidade.
RAM – (Random Access Memory) – são voláteis ROM – (Read-Only Memory) – não voláteis
MEMÓRIA CACHE
É uma memória volátil de ala velocidade, porém com pequena
capacidade de armazenamento. O tempo de acesso a um dado nela contido é muito menor que se o mesmo estivesse na memória
principal. O propósito da memória cache e diminuir a disparidade de velocidade de acesso entre o processador e a memória principal.
Um processador pode ser projetado com diversos níveis de cache, conforme especificação do fabricante. Como exemplos, o processador da Motorola Power PC G4 possui cache de nível 2, enquanto o
MEMÓRIA SECUNDÁRIA
A memória secundária é um meio permanente, isto é, não é volátil de armazenamento de programas e dados. Enquanto a memória principal precisa estar sempre energizada para manter suas informações, a
memória secundária não precisa de alimentação.
Caracterizam-se por ter capacidade de armazenamento superior ao da memória principal e o custo relativamente baixo, porém o tempo de acesso à memória secundária é bem superior ao da memória principal.
BARRAMENTO
O barramento ou bus é um meio de comunicação compartilhado que permite a comunicação entre as unidades funcionais de um sistema computacional. Através de condutores, informações como dados,
endereços e sinais de controle trafegam entre processadores, memórias e dispositivos de E/S.
BARRAMENTO
Os barramentos são classificados em três tipos:
> Barramento processador-memória: são de curta extensão e alta velocidade para que seja otimizada a transferência de
informação entre o processador e a memória.
> Barramento de E/S: Possuem maior extensão, são mais lentos e permitem a conexão de diferentes dispositivos.
> Barramento de backplane: Este faz a função de integrar os outros dois barramentos.
PIPELINING
Pipelining é uma técnica que permite ao processador
executar múltiplas instruções paralelamente em estágios
diferentes. O conceito de pipeline se assemelha muito a
uma linha de montagem, onde uma tarefa é dividida em
uma sequência de subtarefas, executadas dentro de uma
linha de produção.
PIPELINING
O processador, através de suas várias unidades funcionais de pipeline, funciona de forma a permitir que, enquanto uma instrução se encontra em fase de execução, uma outra instrução possa estar na fase de busca simultaneamente.
O pipelining pode ser empregado em sistemas com um ou mais
processadores, em diversos níveis, e tem sido a técnica de paralelismo mais utilizada para aumentar o desempenho dos sistemas
ARQUITETURA RISC e CISC
A linguagem de máquina de um computador é a linguagem que é realmente entendida pelo processador. Cada processador possui um conjunto de instruções de máquina, definido por seu fabricante, que fazem referências a detalhes, como registradores, modos de
endereçamento e tipos de dados, que caracterizam um processador e suas funcionalidades.
Um programa em linguagem de máquina pode ser diretamente executado por um processador, não requerendo qualquer tipo de tradução ou relocação. Quando escrito em linguagem de máquina de um determinado processador, um programa não pode ser executado em outra máquina de arquitetura diferente.
ARQUITETURA RISC e CISC
Um processador com arquitetura RISC (Reduced
Instruction Set Computer) se caracteriza por possuir
poucas instruções de máquina, em geral bastante simples,
que são executadas diretamente pelo hardware. (Fácil
implementação do pipeline por ter muitos registradores).
ARQUITETURA RISC e CISC
Os computadores com arquitetura CISC (Complex
Instruction Set Computers) já possuem instruções
complexas que são interpretadas por microprogramas.
(Difícil implementação do pipeline por ter poucos
ANÁLISE DE DESEMPENHO
Para avaliar o desempenho de processadores, diversas variáveis devem ser consideradas, entre as quais o intervalo de tempo entre os pulsos de um sinal de clock, conhecido como ciclo de clock.
A frequência de clock é o inverso do ciclo de clock e indica o número de pulsos elétricos gerados em um segundo.
O desempenho de um processador poder avaliado pela comparação dos tempos que processadores distintos levam para executar um mesmo programa, denominado tempo de UCP, que leva em consideração apenas o tempo para executar as instruções pelo processador, não incluindo a espera em operações de E/S.
TRADUTOR
Nos primeiros sistemas computacionais, o ato de programar era bastante complicado, já que o programador deveria possuir conhecimento da
arquitetura da máquina e programar em painéis através de fios. Esses programas eram desenvolvidos em linguagem de máquina e carregados diretamente na memória principal para execução.
Com o surgimento das primeiras linguagens de montagem ou assembly e das
linguagens de alto nível, o programador deixou de se preocupar com muitos aspectos pertinentes aos hardware, como em qual região da memória o programa deveria ser carregado ou quais endereços de memória seriam reservados para as variáveis.
Apesar das inúmeras vantagens proporcionadas pelas linguagens de montagem e de alto nível, os programas escritos nessas linguagens não estão prontos para ser
diretamente executados pelo processador (programas-fonte). Para isso eles precisão passar por uma etapa de conversão, onde toda representação simbólica das instruções é traduzida para código de máquina. Esta conversão é realizada por um utilitário
INTERPRETADOR
É considerado um tradutor que não gera módulo-objeto, a partir de um programa-fonte escrito em linguagem de alto nível, o interpretador, durante a execução do programa, traduz cada instrução e a executa imediatamente.
A maior desvantagem na utilização de interpretadores é o tempo gasto na tradução das instruções de um programa toda vez que este for executado, já que não existe a geração de um código executável.
LINKER
O linker ou editor de ligação é o utilitário responsável por gerar, a partir de um ou mais módulos-objeto, um único programa executável. Suas funções básicas são resolver todas as referências simbólicas existentes entre os módulos e reservar memória para a
LOADER
O loader ou carregador é o utilitário responsável por carregar na memória principal um programa para ser executado. O procedimento de carga varia com o código gerado pelo liker e, em função deste, o loader é classificado como sendo do tipo absoluto ou
relocável.
Absoluto: O loader necessita conhecer o endereço de memória inicial e o tamanho do módulo para realizar o carregamento, então, transfere o programa da memória
secundária para a memória principal e inicia sua execução.
Relocável: O programa pode ser carregado em qualquer posição de memória, e o loader é responsável pela relocação no momento do carregamento.
DEPURADOR
O depurador (debugger) é o utilitário que permite ao usuário acompanhar toda a execução de um programa a fim de detectar erros na sua lógica. Este utilitário oferece ao usuário recursos como:
> acompanhar a execução do programa instrução por instrução; > possibilitar a alteração e a visualização do conteúdo de variáveis; > implementar pontos de parada dentro do programa (breakpointer); > etc.
o Sistemas Monoprogramáveis:
Apenas um programa sendo executado a cada vez Execução de um novo programa deve esperar o
encerramento do programa sendo executado
o Sistemas Multiprogramáveis:
Permite a concorrência dos programas
Execução de novos programas inicia-se durante a
Sist. Monoprogramável x Multiprogramável
o Vantagens dos Sistemas Multiprogramáveis:
Tempo total de execução de vários programas
torna-se menor
Uso mais racional dos recursos
o Melhor aproveitamento do espaço de memória o Aproveitamento do processador durante
operações de E/S
o Cada programa (processo) ocupa uma fatia de
2
(a) Sistema Monoprogramável
tempo tempo
E/ S E/ S
UCP livre UCP 1 1
1
Sist. Monoprogramável x Multiprogramável
Comparação entre monoprogramação e multiprogramação
Monoprogramação Multiprogramação Utilização de CPU 17% 33% Utilização da Memória 30% 67% Utilização do disco 33% 67% Utilização de Impressora 33% 67% Tempo total de processamento 30 min 15 min
Qual a vantagem então dos sistemas,
Multiprogramaveis?
Por que diminuir o tempo total de
processamento pode ser considerado
uma coisa boa?
Sist. Monoprogramável x Multiprogramável o Troca de contexto:
Mudança de um processo para outro faz com que
todo o conteúdo dos registradores seja trocado (estado do sistema)
Quando um processo retorna à sua execução, todo o
contexto imediatamente anterior à sua saída deve ser recuperado
fornecer ao processador, ele tem duas
alternativas de comunicação:
1
– Aguardar até que o processador o
consulte
OBS: pode ser demorado caso o processador esteja
ocupado com outras tarefas (o que geralmente ocorre).
2
– Notificando o processador enviando
a ele uma requisição de INTERRUPÇÃO
(exceções).
Interrupção e Exceção
o Durante a execução de um programa, alguns eventos
inesperados podem ocorrer, ocasionando um desvio forçado no fluxo de execução
Sinalização de operação de E/S de dispositivo
externo (interrupção)
Problemas decorrentes da execução de instruções
do programa (exceção)
o Ao final de cada instrução, a UC verifica a ocorrência
de interrupção ou exceção
o Processador interrompe o programa em execução para
Interrupção e Exceção
o Mecanismo de interrupção
Sinal de interrupção gerado para o processador Processador termina a instrução corrente e
identifica qual interrupção foi gerada
Registradores PC e de status são salvos, PC recebe
endereço inicial da rotina de tratamento
Rotina de tratamento salva demais conteúdos de
registradores na pilha de controle e é executada
Após o término, todos os registradores são
o Para cada tipo de interrupção existe uma rotina de
tratamento associada para a qual o fluxo de execução é desviado
o Dois métodos para tratamento de interrupções Vetor de interrupção
o Contém o endereço inicial de todas as rotinas
de tratamento p/ cada tipo de evento
A partir de um registrador de status
o Uma única rotina que verifica o tipo de evento e
Interrupção e Exceção
o Interrupções são decorrentes de eventos assíncronos,
sem relação com o programa corrente
Podem ocorrer múltiplas vezes num mesmo
intervalo de tempo (simultaneamente)
Rotina de tratamento pode desabilitar tratamento
das demais interrupções
o Interrupções mascaráveis
Demais interrupções podem ser enfileiradas
o Exceções são eventos síncronos, resultado direto da
execução do programa corrente
Divisão por zero
Overflow em operação aritmética
o São previsíveis e só podem ocorrer um de cada vez o Tratamento equivalente ao da interrupção
o Rotina de tratamento para uma determinada exceção
39
Definição : “São desvios forçados no fluxo de execução de um
programa.
>Podem ocorrer devido a eventos:
•
Externos:
•
Evento externo ao Sistema Operacional
•
Sinalização de algum dispositivo de Hardware.
•
Causados pelo usuário ou operador do sistema
Pode ser:
• Temporária: o operador da um pause (HOLD ou STOP) na execução do programa,
executa um outro programa e ao final retorna a execução do programa interrompido. • Definitiva: queda de luz.
40
programa.
Ex: Solicitação do próprio programa por I/O ou
porque o programa demorou muito tempo para
ser executado.
Também pode ser:
• Temporárias: para e retorna após um processamento de um I/O, por
exemplo.
• Definitiva: Para mas não retorna devido a um erros como divisão por zero
42
Interrupção de HARDWARE:
Ocorre em decorrência a um dispositivo de hardware
externo ao processador ou algum temporizador.
Exemplos:
•
mouse, teclado, dispositivos de E/S
43
•
Interrupção por Excessão:
Ocorre em consequência de algum erro durante a
execução de algum programa. Podem ser:
•
Erros aritméticos: Ex: divisões por zero..., overflow
(erros de acesso à memória), estouro de buffer....
•
Erros relacionados à segurança: Ex: tentativa de acesso
ilegal à memória, tentativa de execução de instrução
privilegiada do administrador do sistema.
44
É quando um programa ou aplicativo solicita ao
processador algum recurso de hardware.
•
Exemplos: Leitura de gravação de arquivos, leitura do
teclado, impressão na tela, etc...
o Antes, instruções de E/S específicas para cada periférico
eram executadas pela CPU
o Surgimento do controlador de dispositivo desonerou o
processador e permitiu maior agilidade
o Processador não mais se comunica diretamente com o
dispositivo, somente via controlador
Instruções de E/S mais simplificadas
Inicialmente operava em modo busy-wait,
posteriormente fazendo polling nos dispositivos, finalmente se valendo de interrupção para avisar término da operação de E/S
Memória Principal UCP Controlador Dispositivos de E/ S Operações de Entrada/Saída
o Transferência de grande volume de dados entre
controladora e MP onera por demais o processador
o Solução usando DMA – Direct Memory Access
Permite que dados sejam transferidos entre
controladoras e MP sem intervenção do processador, exceto no início e no final
Área de memória usada pelo controlador de DMA é
chamada buffer de entrada/saída
Controle de barramento assumido
temporariamente pelo DMA, processador limitado a acessar caches
Canal de E/S
o Introduzido pela IBM no sistema 7094
o Canal de E/S é um processador com capacidade de
executar programas de E/S e controle total dos dispositivos
o Instruções de E/S armazenadas na MP ou no canal de
E/S, porém executadas pelo canal de E/S
Processador instrui o canal de E/S a executar um
programa de canal, responsável por especificar dispositivos, buffers e ações
Ao final da transferência, gera interrupção o Pode controlar múltiplos dispositivos de E/S
Memória Principal UCP Canal de E/ S Controlador Dispositivos de E/ S Controlador Dispositivos de E/ S
Buffering
o Consiste em utilizar uma área na memória principal para
transferência de dados entre dispositivos de E/S e a MP
o Numa operação de leitura do dispositivo:
Dado é transferido para buffer sem onerar o
processador, dispositivo fica liberado após conclusão
o Numa operação de gravação p/o dispositivo:
Dado é escrito rapidamente no buffer, liberando o
processador para outras atividades enquanto este é gravado no dispositivo.
Memória Principal UCP Buffer gravação gravação leitura leitura Controlador
Buffering
o Unidade de transferência é o registro, cujo tamanho
depende do tipo de dispositivo
Vários registros podem ser armazenados num buffer Buffer conterá dados lidos mas ainda não
processados, ou dados processados mas ainda não gravados
o Buffering minimiza problemas decorrentes da
disparidade de velocidades, compatibilizando tempos de acesso de maneira que processador e dispositivo de E/S não fiquem ociosos
o Simultaneous Peripheral Operation On-line, introduzido
no fim dos anos 1950
o Técnica usa uma área do disco (arquivo) para buffering
de impressão
o Tudo que é submetido para impressão vai para o
arquivo de spool, liberando o programa de origem
o SO é quem gerencia os jobs de impressão
Programa Arquivo Impressora
de Spool
Sistema Operacional
Reentrância Capacidade de um código executável ser compartilhado por diversos usuários, exigindo que apenas uma cópia do programa esteja na memória.Memória Principal código reentrante área de dados do usuário A
usuário A usuário C
usuário B usuário D
área de dados do usuário B área de dados do usuário C área de dados do usuário D