Nível do Sistema Operacional

Propaganda
Nível do Sistema Operacional
(Aula 14)
Introdução a Sistemas Operacionais
Roberta Lima Gomes - LPRM/DI/UFES
Sistemas de Programação I – Eng. Elétrica
2007/1
Introdução
Hardware
Programas (aplicações)
Provê os recursos básicos de computação (CPU, memória, E/S,etc.)
Definem as maneiras pelas quais os recursos do sistema são
usados para resolver os problemas computacionais dos usuários
(compiladores, sistemas de banco de dados, vídeo games,
programas financeiros, etc.).
Usuários
Pessoas, máquinas, outros computadores.
Fato: o hardware de um computador, sozinho, não fornece
um ambiente simples, flexível e adequado para o
desenvolvimento e uso dos programas dos usuários.
Sistemas de Programação I – 2007/1
2
Profa Roberta L.G. - LPRM/DI/UFES
Introdução
Visão Abstrata
Sistemas de Programação I – 2007/1
3
Profa Roberta L.G. - LPRM/DI/UFES
Um Sistema Operacional...
... possibilita o uso eficiente e controlado dos
diversos componentes de hardware do computador.
... implementa políticas e estruturas de software de
modo a assegurar um melhor desempenho do
sistema de computação como um todo.
Nome dado a um conjunto de programas que
trabalham de modo cooperativo com o objetivo de
prover uma máquina mais flexível e adequada ao
programador do que aquela apresentada pelo
hardware sozinho
Sistemas de Programação I – 2007/1
4
Profa Roberta L.G. - LPRM/DI/UFES
Definições
“A program that controls the execution of application
programs.”
“An interface between applications and hardware.”
“Resource allocator”
Gerencia e aloca recursos.
“Control program”
“Programa que age como um intermediário entre o usuário de um
computador e o hardware deste computador”.
Controla a execução dos programas de usuário e operações de E/S
“Kernel”
O programa executado durante todo o tempo (os demais
programas são as aplicações de usuários)
Sistemas de Programação I – 2007/1
5
Profa Roberta L.G. - LPRM/DI/UFES
Função
“A principal função de um sistema operacional é
prover um ambiente no qual os programas dos
usuários (aplicações) possam rodar”. Isso envolve:
definir um framework básico para a execução dos
programas e
prover uma série de serviços (ex: sistema de arquivos,
sistema de E/S) e uma interface de programação para
acesso aos mesmos”.
Sistemas de Programação I – 2007/1
6
Profa Roberta L.G. - LPRM/DI/UFES
Organização Típica
Núcleo
Responsável pela gerência do processador, tratamento
de interrupções, comunicação e sincronização entre
processos.
Escalonamento de processos (programa em execução)
Gerente de Memória
(1)
Responsável pelo controle e alocação de memória aos
processos ativos.
Memória Virtual: Segmentação e Paginação
Sistema de E/S
Responsável pelo controle e execução de operações de
E/S e otimização do uso dos periféricos.
Sistemas de Programação I – 2007/1
7
Profa Roberta L.G. - LPRM/DI/UFES
Organização Típica
Sistema de Arquivos
(2)
Responsável pelo acesso e integridade dos dados
residentes na memória secundária.
FAT32, NTFS, ...
Processador de Comandos / Interface com o
Usuário
Responsável pela interface conversacional com o
usuário.
Sistemas de Programação I – 2007/1
8
Profa Roberta L.G. - LPRM/DI/UFES
Classificação
(1)
Quanto ao número de usuários:
Monousuários: projetados para suportar um único usuário.
Ex: MS-DOS, Windows 3x, Windows 9x.
Multiusuários: projetados para suportar várias sessões de usuários.
Ex: Windows NT(2000), UNIX.
Quanto ao número de tarefas:
Monotarefa: capazes de executar apenas uma tarefa (um aplicativo)
de cada vez.
Ex: MS-DOS
Multitarefa: capazes de executar
várias atividades simultaneamente
(Multiprogramação)
Processo 3
Processo 2
Ex:Windows, OS/2, Unix.
Processo 1
PROCESSO == Programa em Execução
Sistemas de Programação I – 2007/1
9
Profa Roberta L.G. - LPRM/DI/UFES
Classificação
(2)
Quanto ao tipo de serviço oferecido ao
usuário:
Sistemas de processamento em lotes
(“batch”)
Sistemas de tempo compartilhado (“timesharing”)
Sistemas de tempo real (“real-time”)
Sistemas de Programação I – 2007/1
10
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas de Lotes
Primeiro tipo de sistema operacional.
Monotarefa (ñ suportava multiprogramação)
Job é o conceito básico num sistema de lotes, sendo constituído do
programa a ser compilado e executado, acompanhado dos dados.
Sistemas de Programação I – 2007/1
11
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas de Tempo Compartilhado
A capacidade e o tempo de processamento da máquina
é dividida entre múltiplos usuários, que acessam o
sistema através de terminais.
Uso da técnica de multiprogramação para a manipulação
de múltiplos jobs interativos.
Uso de Memória Virtual
Jobs são constantemente
“trocados” entre memória e
disco (“swap”).
Sistemas de Programação I – 2007/1
12
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas de Tempo Real
Sistemas dedicados a uma classe de aplicações,
tipicamente de controle e medição, que exigem
monitoramento contínuo de instrumentos.
Ex: sistemas de controle industriais, sistemas
robóticos, sistemas de realidade virtual, automação
doméstica, etc.
Ex: QNX, CMX-RTX, LynxOS, RTMX, etc.
Possuem restrições temporais bem definidas
O tempo de resposta é considerado crítico
Sistemas de Programação I – 2007/1
13
Profa Roberta L.G. - LPRM/DI/UFES
Evolução dos S.O. x Arquitetura de Comp.
Sistemas
Sistemas
Sistemas
Sistemas
Sistemas
Sistemas de Programação I – 2007/1
Mainframes
Desktop
Distribuídos
Handheld
Paralelos
14
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Mainframes
Primeiros sistemas computacionais usados na
resolução de problemas comerciais e
aplicações científicas.
Nos dias atuais,são projetados para
processamento de grande volume de dados.
Arquitetura de hardware complexa.
Trabalham em multimodo (usualmente “batch”
e “time- sharing”).
Sistemas de Programação I – 2007/1
15
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Desktop
Integração em muito larga escala (VLSI) levou adiante o projeto
de miniaturização e barateamento dos equipamentos.
Surgiram os microcomputadores (Personal Computer - PC) de 16
bits da IBM e o Sistema Operacional da Microsoft MS-DOS,
criando a filosofia dos computadores pessoais.
Apresenta conveniência para o usuário, com um bom tempo de
resposta e uma boa taxa de processamento a um custo
relativamente baixo.
Pode rodar diferentes tipos de S.O. (Windows, MacOS, UNIX,
Linux, etc.)
Apesar de monousuárias, os S.O.s permitem que se executem
diversas tarefas concorrentemente
Multitarefa ou Multiprogramação
Sistemas de Programação I – 2007/1
16
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Distribuídos
(1)
Conjunto de computadores interconectados de forma a possibilitar a
execução de um serviço.
Requer uma infra-estrutura física de redes (LAN, WAN) e suporte de
protocolos de comunicação (TCP/IP).
A realização de uma tarefa é distribuída entre vários nós da rede.
A existência de várias máquinas é transparente, isto é, o Sistema
Operacional fornece uma visão única do sistema
Vantagens:
Compartilhamento de recursos;
Balanceamento de carga;
Aumento da velocidade de computação;
Maior confiabilidade
Sistemas de Programação I – 2007/1
17
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Distribuídos
(2)
Diferentes arquiteturas
Peer to Peer: Sistemas “fracamente acoplados” onde cada nó é uma
máquina independente, com seu próprio S.O. e sua própria memória
local
Cliente-servidor: Servidores são configurados para satisfazer as
consultas dos sistemas clientes (servidor de arquivos, servidor de mail,
servidor de ftp, etc.).
Sistemas de Programação I – 2007/1
18
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Handheld
Sistemas operacionais adaptados para dispositivos
móveis, como PDAs – Personal Digital Assistants e
telefones celulares.
Memória limitada, processador mais lento e display de pequenas
dimensões.
S.O. e aplicações projetados para minimizar o uso do
processador (redução do consumo da bateria).
Uso possível de tecnologias wireless, como Bluetooth,
para acesso remoto a e-mail e navegação Web.
Sistemas de Programação I – 2007/1
19
Profa Roberta L.G. - LPRM/DI/UFES
Sistemas Paralelos
São sistemas com mais de uma CPU atuando de modo colaborativo
(“multiprocessor systems”).
Os processadores compartilham o barramento, memória e relógio,
além de dispositivos periféricos
Principais vantagens:
Aumento da vazão (“throughput”).
Economia de escala;
Aumento da confiabilidade.
Asymmetric Multiprocessing
n processadores => n vezes mais rápido?
Relação de mestre-escravo
Symmetric Multiprocessing (SMP)
Cada processador roda uma cópia idêntica do sistema operacional.
A maioria dos sistemas operacionais modernos suporta SMP
Sistemas de Programação I – 2007/1
20
Profa Roberta L.G. - LPRM/DI/UFES
Monoprogramação
(1)
Os recursos computacionais estão inteiramente dedicados a um
único programa/tarefa.
A CPU fica ociosa durante muito tempo enquanto o programa
aguarda por um evento (digitação de um dado, leitura do disco,
etc.).
A memória principal é subutilizada caso o programa não a
preencha totalmente.
Os periféricos são dedicados a um único programa.
Não existe grandes preocupações com a proteção de memória.
A complexidade de implementação é relativamente baixa.
Sistemas de Programação I – 2007/1
21
Profa Roberta L.G. - LPRM/DI/UFES
Monoprogramação
Sistemas de Programação I – 2007/1
(2)
22
Profa Roberta L.G. - LPRM/DI/UFES
Multiprogramação
Vários programas (e vários usuários) competem pelos recursos do
sistema.
O objetivo é manter mais de um programa em execução
“simultaneamente”, dando a ilusão de que cada programa/usuário tem
a máquina dedicada para si.
A idéia é tirar proveito do tempo ocioso da CPU durante as operações
de E/S. Enquanto um programa espera por uma operação de leitura
ou escrita outros programas podem estar sendo processados no
mesmo intervalo.
(1)
Maximização do uso do processador e da memória.
Maior taxa de utilização do sistema como um todo (redução do custo total
máquina/homem).
Suporte de hardware:
Mecanismo de interrupção (sinalização de eventos).
Discos magnéticos (acesso randômico aos programas, melhor
desempenho em operações de E/S).
Memória Virtual
Sistemas de Programação I – 2007/1
23
Profa Roberta L.G. - LPRM/DI/UFES
Multiprogramação
Sistemas de Programação I – 2007/1
(2)
24
Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada
A Memória Virtual é uma extensão da memória RAM
(1)
Constituida da junção da memória principal com a memória secundária
Utilizamos para obter mais memória que o computador possui
fisicamente
Espaço de endereçamento: número de palavras endereçáveis
Se a máquina utiliza endereços de 16 bits => espaço de endereçamento
de 216 = 64 k endereços
No entanto uma máquina pode apresentar uma memória física menor
Sistemas de Programação I – 2007/1
25
Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada
Espaço de endereços virtuais x Espaço de endereços
físicos
Os programas “enxergam” o espaço de endereços virtuais
O espaço de endereçamento virtual é dividido em um
conjunto de páginas do mesmo tamanho
(2)
Ex: Páginas de 64kB, 4MB, ...
O espaço de endereçamento físico também é dividido de
forma similar ao virtual
Cada “pedaço” da memória principal, chamado de Moldura de
Página (Frame), deve ser capaz de armazenar exatamente uma
página
Sistemas de Programação I – 2007/1
26
Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada
(3)
A idéia é que o programador possa usar os
endereços virtuais
O S.O. dá a ilusão de que todos os endereços
virtuais são mantidos na memória principal
Páginas de 4k
Sistemas de Programação I – 2007/1
27
Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada
(3)
O S.O. dá a ilusão de que todos
os endereços virtuais são
mantidos na memória principal
A memória virtual deve ser
implementada através de uma
Tabela de páginas
Sistemas de Programação I – 2007/1
28
Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada
Programa em linguagem de máquina gera endereços virtuais
Endereços virtuais divididos em 2 campos
(4)
Endereço da página
Endereço do byte (ou palavra), dentro da página
CPU transforma endereço
virtual em endereço físico
Sistemas de Programação I – 2007/1
29
Profa Roberta L.G. - LPRM/DI/UFES
Memória Virtual Paginada
(5)
Exemplo de mapeamento
frame
frames
frame
Sistemas de Programação I – 2007/1
30
Profa Roberta L.G. - LPRM/DI/UFES
Referências
Andrew S. Tanenbaum, Organização Estruturada de Computadores, 5ª
edição, Prentice-Hall do Brasil, 2007. Capítulo 6
Sistemas de Programação I – 2007/1
31
Profa Roberta L.G. - LPRM/DI/UFES
Download