Apresentação do PowerPoint

Propaganda
ARQUITETURA DE SISTEMAS
OPERACIONAIS
VISÃO GERAL DE UM SISTEMA OPERACIONAL
Prof. André Luís Alves
E. M. DR. LEANDRO FRANCESCHINI
INTRODUÇÃO
Programas computacionais (ou software) constituem o elo entre o
aparato eletrônico (ou hardware) e o ser humano. Tal elo se faz
necessário dada a discrepância entre o tipo de informação manipulada
pelo homem e pela máquina.
A máquina opera com cadeias de códigos binários enquanto o
homem opera com estruturas mais abstratas como conjuntos, arquivos,
algoritmos, etc.
É aí que entra o sistema operacional, o mais importantes do
softwares, que controla todos os recursos do computador e
proporciona a base de sustentação para a execução de programas
aplicativos.
O que é um Sistema Operacional?
• Software
✓Função
₋ Controlar o funcionamento do computador;
₋ Gerenciar a utilização e o compartilhamento de recursos (processador, memória e
dispositivos de E/S).
✓Objetivo
₋ Interface entre o usuário e o computador (utilização simples, rápida e segura).
• Sistemas Operacionais x Aplicações convencionais
₋ O Sistema Operacional não é executado de forma linear (início, meio e fim);
₋ Rotinas são executadas concorrentemente em função de eventos assíncronos.
Funções Básicas
1. Facilitar o acesso aos recursos do sistema
• Serve de interface entre os usuários e recursos disponíveis na máquina
• Comunicação transparente
• Trabalho eficiente e com menores chances de erro
2. Compartilhar os recursos de forma organizada e protegida
• Controle de acesso concorrente (Ex.: impressora compartilhada)
₊ O controle de acesso concorrente leva à diminuição de custos por favorecer o
compartilhamento de recursos.
VISÃO DE UM SISTEMA OPERACIONAL
(Máquina Virtual)
Máquina de camadas
O
computador
pode
ser
compreendido como uma máquina
de níveis, é o que chamamos de
visão modular. Dessa forma, um
computador possui tantos níveis
quanto forem necessários para
adequar o usuário às suas diversas
aplicações:
▪ Hardware: nível 0
▪ Software: nível 1
Histórico
Processamento batch
Tipos de Sistemas Operacionais
Sistema Operacional => Diretamente ligado à evolução do hardware.
Tipos de Sistemas Operacionais:
•Monoprogramáveis/Monotarefa
•Multiprogramáveis/Multitarefa
•Múltiplos Processadores
Monoprogramáveis/Monotarefa
SISTEMA
OPERACIONAL
Monoprogramáveis/Monotarefa
Características:
• Primeiros Sistemas Operacionais (1960)
• Executam um único programa
• Permitem que o processador, a memória e os periféricos fiquem dedicados
à execução de um único programa
Funcionamento: enquanto um programa aguarda por um evento (exemplo,
digitação de um dado), o processador permanece ocioso. A memória é
subutilizada caso o programa não a preencha totalmente e os periféricos
estão dedicados a um único usuário, nem sempre utilizados de forma
integral.
Monoprogramáveis/Monotarefa
Vantagens:
• Simples implementação;
• Sem problemas decorrentes do compartilhamento de recursos
(memória, processador e periféricos).
Desvantagens:
• Subutilização de recursos (memória, processador e periféricos)
Multiprogramáveis/Multitarefa
Multiprogramáveis/Multitarefa
Características:
• Evolução dos Monoprogramáveis;
• Recursos computacionais compartilhados entre os usuários e
aplicações.
Gerência de acesso concorrente: enquanto um programa espera por
uma operação de leitura ou gravação em disco, outros programas
podem estar sendo processados nesse mesmo intervalo de tempo
(memória e processador).
Multiprogramáveis/Multitarefa
Vantagens:
• redução custos pelo compartilhamento de recursos entre as diferentes
aplicações;
• redução total do tempo de execução das aplicações.
Desvantagem:
• apesar de mais eficientes que os monoprogramáveis,
implementação muito mais complexa
são
de
Multiprogramáveis (Monousuário/Multiusuário)
Tipos de sistemas multiprogramáveis em função do número de
usuários:
• Monousuário:
₋ Apenas um usuário interage com o sistema;
₋ Encontrados em computadores pessoais
(Workstation1).
e
estações
de
trabalho
• Multiusuário:
₋ Ambientes interativos que possibilitam a diversos usuários conectarem-se ao
sistema simultaneamente.
1Workstation:
nome genérico dado a computadores situados, em termos de potência de cálculo, entre o computador pessoal
e o computador de grande porte, ou mainframe.
Classificação dos Sistemas Multiprogramáveis
Os sistemas multiprogramáveis ou multitarefa podem ser classificados
pela forma com que suas aplicações são gerenciadas.
SISTEMAS BATCH
• Primeiros sistemas multiprogramáveis a serem implementados na
década de 1960;
• Usavam cartão perfurado para execução dos programas (Jobs) e
armazenavam o resultado em discos ou fitas para posterior execução;
• Não exigiam a interação do usuário com a aplicação;
• Aplicados a cálculos numéricos, compilações, ordenações e backups;
• Atualmente, Sistemas Operacionais implementam ou simulam o
processamento em batch, não existindo sistemas exclusivamente
dedicados a este tipo de processamento.
Sistemas de Tempo Compartilhado (time-sharing)
• Permitem que diversos programas sejam executados a partir da divisão do
tempo do processador em fatias de tempo (time-slice)
• Cada usuário tem um ambiente de trabalho, dando a impressão de que o
sistema é dedicado
• Permitem interação dos usuários através de terminais (vídeo, teclado,
mouse, etc)
• Linguagem de controle (comunicação através de comandos – sistemas
online)
• A maioria das aplicações comerciais é processada em sistemas timesharing (tempo de resposta curto menores custos devido ao
compartilhamento de recursos)
Sistemas de Tempo Real (Real Time)
• Critério de execução: prioridade
• Um programa utiliza o processador o tempo que for necessário ou até
que apareça outro mais prioritário, no entanto, a importância ou
prioridade de execução é definida pela própria aplicação
• Presentes em controle de processos (monitoramento de refinarias de
petróleo, controle de tráfego aéreo, de usinas termoelétricas, ou em
qualquer aplicação onde o tempo de processamento é fator
fundamental
Sistemas com Múltiplos Processadores
Sistemas com Múltiplos
Processadores
Sistemas Fortemente
Acoplados
Sistemas Fracamente
Acoplados
Sistemas Operacionais de
Rede
Sistemas Distribuídos
Sistemas com Múltiplos Processadores
• Duas ou mais UCPs (Unidades Centrais de Processamentos)
interligadas e trabalhando em conjunto
• Vantagem: permite que vários programas sejam executados ao
mesmo tempo ou que um mesmo programa seja subdividido em
partes para serem executadas simultaneamente em mais de um
processador
• Aplicações: processamento científico (desenvolvimento aeroespacial,
prospecção de petróleo, simulações, processamento de imagens e
CAD)
Sistemas com Múltiplos Processadores
Vantagens:
• Escalabilidade: capacidade de ampliar o poder computacional do
sistema apenas adicionando novos processadores
• Disponibilidade: capacidade de manter o sistema em operação
mesmo em casos de falhas. Se um processador falhar, outro assume
suas funções de maneira transparente ao usuário e suas aplicações
• Balanceamento de carga: distribuição do processamento entre os
processadores
Classificação dos Sistemas com Múltiplos
Processadores
Um fator chave no desenvolvimento de sistemas operacionais com múltiplos
processadores é a forma de comunicação entre as UCPs e o grau de
compartilhamento da memória e dos dispositivos de entrada e saída. Em
função desses fatores, podemos classificar os sistemas com múltiplos
processadores em fortemente acoplados ou fracamente acoplados
Fortemente Acoplados X Fracamente Acoplados
• Sistemas Fortemente Acoplados possuem apenas uma memória principal
sendo compartilhada por todos os processadores
• Sistemas Fracamente Acoplados têm sua própria memória individual
Classificação dos Sistemas com Múltiplos
Processadores
Fortemente Acoplados X Fracamente Acoplados
• Nos sistemas Fortemente acoplados a taxa de transferência entre
processadores e memória é muito maior que nos fracamente
acoplados
Sistemas Fortemente Acoplados (tightly
coupled)
• Possui vários processadores que compartilham uma única memória
física (shared memory)
• Dispositivos de E/S são gerenciados por apenas um sistema
operacional (ver modelo)
• Conhecidos como multiprocessdores
Sistemas Fortemente Acoplados
voltar
Sistemas Fracamente Acoplados (loosely
coupled)
• Possuem dois ou mais sistemas computacionais independentes
conectados através de linhas de comunicação
• Cada sistema computacional possui seu próprio sistema operacional e
gerencia seus próprios recursos (ver modelo)
• Conhecidos como multicomputadores
Sistemas Fracamente Acoplados (loosely
coupled)
voltar
Tipos de Sistemas Fracamente Acoplados
• Com a evolução dos computadores pessoais e das estações de
trabalho, além das telecomunicações e da tecnologia de redes, surgiu
um novo modelo de computação, chamado modelo de rede de
computadores (dois ou mais sistemas independentes (hosts),
interligados através de links, que oferecem algum tipo de serviço aos
demais (descentralização da informação)
• Com base no grau de integração dos hosts da rede, divide-se os
sistemas fracamente acoplados em:
• Sistemas Operacionais de Rede
• Sistemas Distribuídos
Tipos de Sistemas Fracamente Acoplados
Sistemas Operacionais de Rede X Sistemas Distribuídos
A grande diferença entre os dois modelos é a capacidade do sistema
operacional em criar uma imagem única dos serviços disponibilizados
pela rede
Sistemas Operacionais de Rede (SOR)
• Usuários tem conhecimento dos hosts e seus serviços
• Permitem que um host compartilhe seus recursos (impressora,
diretório, etc) com os demais hosts da rede. Exemplo: LANs
Tipos de Sistemas Fracamente Acoplados
Sistemas Distribuídos
• O sistema operacional esconde os detalhes dos hosts individuais e
passa a trata-los como um conjunto único, como se fosse um sistema
fortemente acoplado
• Permitem, p. ex., que uma aplicação seja dividida em partes e que
cada parte seja executada em hosts diferentes da rede de
computadores
• Para o usuário e suas aplicações é como se não existisse a rede de
computadores, mas sim um único sistema centralizado
Referências Bibliográficas
MACHADO, Francis B.; MAIA, Luiz P. SISTEMAS OPERACIONAIS. 4ª
Edição. Rio de Janeiro: LTC, 2007.
Exercícios
1. Como seria usar um computador sem um sistema operacional?
Quais são suas duas principais funções?
2. Cite duas principais dificuldades que um programador teria no
desenvolvimento de uma aplicação sem um sistema operacional.
3. Explique o conceito de máquina virtual. Qual a grande vantagem
em utilizar esse conceito?
4. Defina o conceito de máquina de camadas.
5. Quais os tipos de sistemas operacionais existentes?
Exercícios
6. Por que dizemos que existe subutilização de recursos em sistemas
monoprogramáveis?
7. Qual a grande diferença entre sistemas monoprogramáveis e
sistemas multiprogramáveis?
8. Quais as vantagens dos sistemas multiprogramáveis?
9. Um sistema monousuário pode ser um sistema multiprogramável?
Dê um exemplo.
10. Quais são os tipos de sistemas multiprogramáveis?
Exercícios
11. O que caracteriza o processamento batch? Quais aplicações podem
ser processadas nesse tipo de ambiente?
12. Como funcionam os sistemas de tempo compartilhado? Quais as
vantagens em utilizá-los?
13. Qual a grande diferença entre sistemas fortemente acoplados e
fracamente acoplados?
14. O que é um sistema fracamente acoplado? Qual a diferença entre
sistemas operacionais de rede e sistemas operacionais distribuídos?
15. Quais os benefícios de um sistema com múltiplos processadores em
um computador pessoal?
Exercícios
16. Qual seria o tipo de sistema operacional recomendável para uso como
servidor de aplicações em um ambiente corporativo?
17. Qual seria o tipo de sistema operacional recomendável para executar
uma aplicação que manipula grande volume de dados e necessita de um
baixo tempo de processamento?
____________
Nota: os exercícios deverão ser feitos à MÃO, individualmente ou em duplas,
e, entregues em data a ser estipulada.
Prof. André L. Alves
Download