O documento fornece uma introdução sobre sistemas operacionais, abordando conceitos como: funções de um SO, gerenciamento de memória, processos, threads e gerenciamento de dispositivos. O texto destaca a importância dos SO para o desempenho dos sistemas computacionais.
Aula 09 Processadores memórias e armazenamento Operador de microcomputador
Aula 5a - Sistemas Operacionais
1. Noções de computação –
Sistemas Operacionais
Em 2008...
e agora,
como estão?
Profª Jocelma Rios
Set/2012
2. O que pretendemos:
● Apresentar os conceitos básicos de SO
● Descrever as principais funções dos SO,
explicitando as ações, regras e
particularidades de cada uma
● Refletir sobre a importância dos sistemas
operacionais para o desempenho dos sistemas
computacionais
3. Sistemas Operacionais
● É um software ou um conjunto deles que tem como
função gerenciar os recursos do sistema
computacional, fornecendo uma interface entre o
usuário e a máquina.
● A maioria dos computadores pessoais o executa
através de outro programa armazenado numa
memória ROM chamado BIOS num processo chamado
"bootstrapping", ou simplesmente BOOT.
● Após executar testes e iniciar os componentes
da máquina (monitor, memória discos etc.), o
BIOS procura pelo SO em alguma unidade de
armazenamento, geralmente o Disco Rígido, e a
partir daí, assume o controle da máquina.
4. Sistemas Operacionais
● É o mais importante pacote de software de uma
máquina → qualquer outro sistema opera sobre
ele
– Ex.: Windows 9x, Windows NT, OS/2, Unix,
Linux, MAC OS, Android, etc.
● Funcionalidades:
– Interface com o usuário
– Gerenciamento de processos
– Gerenciamento de memória
– Gerenciamento de arquivos
– Gerenciamento de dispositivos
– Gerenciamento de proteção e segurança
5. Market Share dos SO
(Ago/2012)
Estimativa do uso de sistemas operacionais segundo uma amostra de computadores com
acesso a Internet (sempre verificar atualização na fonte) (Fonte: W3counter).
7. Gerenciamento de memória
● Por que gerenciar memória?
R: A memória principal é um recurso caro e escasso
RAM: R$ 30 / Gb Disco: R$ 0,154 / Gb
8. Por que gerenciar a memória?
● É necessário maximizar o número de usuários
e aplicações (processos) que utilizem de
forma eficiente o espaço de memória física
disponível
● É preciso evitar que um processo use/invada
o espaço de memória de outro causando
paralisação do sistema
● É preciso possibilitar ao usuário alternar
entre uma aplicação e outra
9. Gerenciamento de memória:
funções básicas
● Transferir programas da memória secundária
para a memória principal
● Reduzir o número de operações de E/S nessa
transferência (pois a memória secundária é
lenta)
● Manter na memória o maior número possível de
processos residentes, maximizando a
utilização de recursos
10. Gerenciamento de memória:
funções básicas
● Permitir que novos programas sejam aceitos
mesmo que não exista espaço livre de memória
● Permitir a execução de programas maiores do
que a memória física
● Proteger as áreas de memória ocupadas por
cada processo
● Oferecer mecanismos de compartilhamento de
dados e informações
11. Endereço
Memória
Conteúdo
A memória pode ser
vista como um array
(vetor) de células de
armazenamento
(palavras ou bytes),
cada partição com seu
endereço
12. Memória – hardware básico
A memória principal e os registradores
embutidos no próprio processador são os
únicos tipos de armazenamento acessíveis
diretamente pela CPU.
CPU
Portanto, quaisquer instruções em execução (e
os dados relacionados) precisam estar em um
desses dispositivos de armazenamento com acesso
direto.
Se os dados não estiverem na memória, eles
deverão ser movidos para lá antes que a CPU
possa fazer qualquer operação sobre eles.
13. Memória vs. registradores
● O acesso à memória principal pela CPU é mais
lento que no caso dos registradores porque os
dados precisam passar pelo barramento de
memória
● Existe um delay (espera) muito grande entre a
velocidade de processamento da CPU e a
leitura na memória principal
– Solução: memória cache – fica entre os
registradores e a memória RAM
● Proteção da memória exigida para garantir a
operação correta
15. Gerenciamento de memória
● O sistema operacional tem acesso completo à
memória e deve permitir que os processos dos
usuários tenham acesso seguro a ela quando o
requisitam.
● Vários SO usam memória virtual, que possui 3
funções básicas:
– assegurar que cada processo tenha seu próprio
espaço de endereçamento, começando em zero,
para evitar ou resolver o problema de relocação
– prover proteção da memória para impedir que um
processo utilize um endereço de memória que não
lhe pertença
– possibilitar que uma aplicação utilize mais
memória do que a fisicamente existente
16. Memórias física e virtual
● Memória física
– É a memória implementada pelo hardware
(RAM, ROM, Disco)
– Memória lógica de um processo
– É a memória endereçada pelas instruções de
máquina do processo
● Memória Virtual
– É implementada pelo SO, com o auxílio da
memória secundária (através de paginação
ou segmentação)
– Normalmente, é maior que a memória física
17. Gerenciamento de memória -
Swapping
● Ocorre quando não existir memória suficiente
para alocar um dado processo, já que nem
sempre é possível manter todos os processos
em memória
– Para isso, a gerência de memória reserva uma
área do disco para o seu uso em
determinadas situações, e um ou mais
arquivos são copiado da memória para o
disco
– Com isso, o SO consegue executar mais
processos do que caberia em um mesmo
instante na memória
18. Gerenciamento de memória -
Swapping
● Swapping impõe aos programas um grande custo em
termos de tempo de execução, pois é necessário
copiar arquivos para o disco e mais tarde
copiar novamente para a memória.
● Em sistemas onde o usuário interage com o
programa durante sua execução, o mecanismo de
swapping é utilizado em último caso, quando não
se é possível manter todos os processos na
memória, visto que a queda no desempenho do
sistema é imediatamente sentida pelo usuário.
19. Gerenciamento de arquivos
● Arquivos
– Criação, alteração e remoção
– Mapeamento em armazenamento secundário
– Suporte a primitivas para manipulação
● Diretórios
– Criação, alteração e remoção
● Segurança
– Backup
– Mecanismos de proteção
20. Gerenciamento de arquivos
●
É um utilitário do SO que gerencia discos
rígidos, volumes ou partições nele contidos
●
Permite inicializar discos, criar volumes,
formatar volumes com sistemas de arquivos FAT
(12…16), FAT32 ou NTFS e criar sistemas de
disco tolerantes a falhas
●
Permite executar a maioria das tarefas
relacionadas a discos sem reiniciar o sistema
ou interromper os usuários
O uso de arquivos em
disco é necessário pela
limitação de espaço da
memória
21. Disco rígido
●As trilhas são círculos concêntricos, que começam no
final do disco e vão se tornando menores conforme se
aproximam do centro.
●Cada trilha recebe um número de endereçamento, que
permite sua localização. A trilha mais externa recebe
o número 0 e as seguintes recebem os números 1, 2, 3,
e assim por diante.
●As trilhas se dividem em setores, que são pequenos
trechos onde são armazenados os dados, sendo que cada
setor guarda 512 bytes de informações.
●Um disco rígido atual possui até 900 setores em cada
trilha (o número varia de acordo com a marca e
modelo), possuindo sempre mais de 3000 trilhas.
22. Disco rígido
●Um HD é formado internamente por vários discos
empilhados, sendo o mais comum o uso de 2 ou 3
discos, podendo fazer gravação nas duas faces.
●Apesar de haver várias cabeças de leitura, elas não
se movimentam independentemente, pois são todas
presas à mesma peça metálica, chamada braço de
leitura (peça triangular, que pode se mover
horizontalmente). Assim, passa-se a considerar o
conjunto de trilhas como um cilindro.
● Por exemplo, o cilindro 1 é formado pela trilha 1 de cada
face de disco, o cilindro 2 é formado pela trilha 2 de cada
face, e assim por diante.
23. Disco rígido
Saiba mais: www.hardware.com.br/livros/hardware-manual/trilhas-setores-cilindros.html
24. Gerenciamento de processos
● É utilizada para investigar e depurar
processos irregulares, parar e reinicializar
processos e mostrar os processos que estão
sendo executados
– O escalonamento é feito com base em time-
sharing
● Atribui o processador para um processo da
fila de aptos para processar
– Prioriza I/O bound
– Modo usuário tem menor prioridade que o modo
kernel
– Utiliza semáforos e monitores como mecanismos
para garantir o escalonamento adequado
25. Processo - Definição
● Um processo é a unidade de trabalho em um
sistema moderno de tempo compartilhado
● Os termos tarefa, job ou processo são
equivalentes
● É o ambiente onde se executa um software
● O processo é quem define o ambiente, os
recursos, e os buffers disponíveis a este.
Nenhum programa é executado diretamente na
memória e sim em forma processo
26. Processo - Definição
● Diferenciação entre software e sua execução
(processo)
– Software: entidade estática e permanente
● Sequência de instruções
● Passivo sob o ponto de vista do SO
– Processo
● Entidade dinâmica e efêmera
● Altera seu estado à medida em que avança
sua execução
● Composto por código, dados e contexto
(valores)
● Identificado por um número único (PID)
27. Hierarquia entre processos
● Um processo (pai) pode criar outros
processos (filhos) e que podem, por sua vez,
criarem também outros processos de maneira
hierárquica (subprocesso)
● Quando um processo 'pai' morre, todos os
filhos 'morrem'
● Depois de um certo número de subprocessos, a
situação pode se tornar crítica gerando
erros no sistema
Processos independentes:
não apresentam
relacionamento com outros
processos
28. Criação de processos
● Inicialização de um software
● Logon de usuários
● Processo criado para execução de um
determinado serviço (daemons)
● Processo criado a partir de um
processo já existente (spawn)
29. Término de processos
● Final de execução (normal)
● Situações “anormais”
– Exceder tempo limite
– Falta de memória
– Erros de proteção
● Ex: tentativa de escrita em arquivo read-
only; acesso à área de memória não
autorizadas
– Erros aritméticos
● Ex: divisão por zero, overflow
– Erro em periféricos
– Execução de instruções inválidas (ex: privilegiadas)
– Deadlocks
30. Estados de um processo
Execução (Running):
→ Quando um processo está sendo processado pela
CPU. Tais processos se revezam na execução.
Pronto (Ready):
→ Quando um processo aguarda que o sistema
operacional aloque a CPU para sua execução.
Espera (Wait):
→ Quando um processo está aguardando algum
evento externo para prosseguir com o
processamento
31. Threads
● É onde um processo pode efetuar várias
operações concorrentemente ou
simultaneamente através das chamadas "Linhas
de execução"
– Uma linha de execução permite que o
usuário de programa, por exemplo,
utilize uma funcionalidade do ambiente
enquanto outras linhas de execução
realizam outros cálculos e operações
● Compartilham o mesmo espaço de endereçamento
34. Gerenciamento de dispositivos
● Implementado através de uma estrutura de camadas
de software e hardware
● Procura oferecer uma interface simples e
confiável para o usuário e as aplicações
● “Esconde” detalhes das camadas inferiores
● Dividido em dois grupos:
– 1o: visualiza os dispositivos de um modo único
– 2o: é específico para cada dispositivo
● A maior parte da gerência de E/S trabalha
independentemente de dispositivo, permitindo a
comunicação dos processos com qualquer tipo de
periférico, proporcionando maior flexibilidade
35. Gerenciamento de dispositivos
– Subsistema de E/S
● Independência de dispositivos - o sistema
deve se comunicar com qualquer tipo de
dispositivo conectado ao computador
● Acesso a dispositivos através bibliotecas
● Linguagens de auto nível permitem
portabilidade, como C ou Pascal
● A independência de dispositivos deve ser
realizada através de system calls, presentes
na camada de mais alto nível implementada
pelo sistema operacional
36. Gerenciamento de dispositivos
– Funções do Device Drivers
● Implementar todo o mecanismo de proteção de
acesso aos dispositivos.
● Mapear o nome do dispositivo com seu respectivo
driver, para acesso pelas camadas superiores
● Controlar os dispositivos de E/S de forma segura
e confiável obtendo um maior compartilhamento
● Bufferização, permitindo reduzir o número de
operações de E/S, utilizando-se de uma área de
memória intermediária chamada buffer
● Tratar erros que podem independente de
dispositivos (uma parte apenas)
37. Gerenciamento de dispositivos
- Controladoras
● São componentes eletrônicos (hardware)
responsáveis por manipular diretamente os
dispositivos de E/S
● Serve de comunicação do SO com os Dispositivos
● Em geral, possui memória e registradores
próprios para executar instruções enviadas pelo
device driver
● Em operações de leitura, armazena uma sequência
de bits vinda do dispositivo no seu buffer
interno e verifica a ocorrência de erros, não
havendo erros, o bloco é transmitido para a
memória principal (ex: como ocorre no HD)
38. Gerenciamento de dispositivos
- Controladoras
● Na maioria dos dispositivos orientados a bloco,
como discos, é implementada a técnica de DMA
para transferência de dados entre o controlador
e a memória principal:
– O device driver executa as operações de E/S
gravando os comandos nos registradores da
controladora
– A controladora executa a operação com o
dispositivo enquanto a CPU pode realizar
outras tarefas.
– O device driver, então, testa os resultados
através dos registradores do controlador.
39. Gerenciamento de dispositivos
● SCSI (Small Computer Systems Interface)
– Padrão popular para conexão de dispositivos
ao computador
– Inicialmente utilizado em RISC
– Define padrões de hardware e software que
permitem conectar ao computador qualquer
tipo de dispositivo, mesmo de fabricantes
diferentes
– O Sistema Operacional deve estar configurado
com um driver SCSI e o hardware com um
controlador SCSI onde os periféricos são
conectados
40. Gerenciamento de dispositivos
– Dispositivos de E/S
● Responsáveis pela comunicação entre o
computador e o mundo externo.
● Podem ser de 3 tipos: Entrada, Saída e
Entrada/Saída
● Comunicação efetuada através de blocos de
informações ou palavra a palavra,
realizando-se a transferência através de
controladoras sob supervisão da CPU
41. Gerenciamento de dispositivos
– Dispositivos de E/S
● Dispositivos Estruturados:
– Armazenam informações em blocos de tamanho fixo, cada
um com um endereço
– Blocos pode ser lidos ou gravados de forma
independentes (Ex: discos)
– Acesso Direto – blocos de dados pode ser recuperados
diretamente através de um endereço (Ex: discos)
– Acesso sequencial – para acessar um bloco de dados, o
dispositivo deve percorrer sequencialmente o meio
de armazenamento à procura do bloco (ex: fita)
● Dispositivos não-Estruturados:
– Podem enviar ou receber uma sequência de caracteres
sem estar estruturada no formato de um bloco (Ex:
impressoras, interfaces de rede)
43. Gerenciamento de
Proteção e Segurança
● Proteção: refere-se a qualquer mecanismo
através do qual seja possível controlar o
acesso de programas, processos e usuários a
programas
recursos definidos por um sistema de computação
● Segurança: é um conceito mais abrangente;
requer não somente um ambiente adequado de
proteção bem como considera o ambiente externo
no qual o sistema opera
44. Gerenciamento de
Proteção e Segurança
● Mecanismos de proteção, portanto, são
ferramentas utilizadas para implementar a
política de segurança definida pela organização
● Mecanismos de proteção não é o mesmo que
políticas de proteção
– Mecanismos determinam como algo será
feito
– Políticas decidem o quê será feito
45. Gerenciamento de
Proteção e Segurança - Objetivos
● A proteção pode melhorar a confiabilidade,
confiabilidade
detectando erros latentes nas interfaces entre
subsistemas componentes
● A detecção antecipada de erros da interface
pode impedir a contaminação de um subsistema
saudável por um subsistema defeituoso
● Um recurso não-protegido não pode se proteger
contra uso (ou mau uso) por um usuário não-
autorizado ou leigo
● Um sistema orientado a proteção provê meios de
distinguir entre o uso autorizado e o não-
autorizado
46. Gerenciamento de
Proteção e Segurança - Objetivos
● O papel da proteção em um sistema computacional é
prover um mecanismo para a execução das políticas
que governam o uso do recurso
– Tais políticas podem ser definidas no projeto
do SO ou pelo próprio usuário
– Podem variar com o tempo, por aplicação e com a
situação
● Princípio do menor privilégio
– O SO implementa seus recursos, programas,
chamadas de sistema e estruturas de dados de
modo que a falha ou o comprometimento de um
componente realize o mínimo de dano
47. Gerenciamento de
Proteção e Segurança - Domínio
● Um computador é uma coleção de processos e
objetos
– Objetos de hardware (CPU, memória, mouse)
– Objetos de software (arquivos, semáforos)
– Os objetos são essencialmente tipos de
dados abstratos
● Um processo só deverá ter permissão para acessar
os recursos para os quais tem autorização
● Num dado momento, um processo só deve ser capaz
de acessar aqueles recursos exigidos para
concluir sua tarefa → essa limitação reduz os
danos que podem ser causados por acesso indevido
48. Para refletir...
Analisando tecnicamente o
Windows sempre perde para
o Unix. Por que então
algumas empresas ainda
mantém parte de seus
servidores na plataforma
Windows?
49. Referências
● SILBERSCHATZ, A.; GALVIN, P.; GAGNE, G.
Sistemas operacionais com Java. Tradução de
Daniel Vieira. Revisão técnica de Sérgio
Guedes de Souza. 7. ed. Revista e ampliada.
Rio de Janeiro: Elsevier, 2008. Cap. 22
● TANENBAWN, A. Sistemas operacionais Modernos.
Tradução de Nery Machado Filho. Rio de
Janeiro: Prentice Hall, 1995. Cap. 1
50. Vídeos sugeridos
● Como funciona um Sistema Operacional
– www.youtube.com/watch?v=nt0P8ZAYuUo
● Introdução aos Sistemas Operacionais
– www.youtube.com/watch?v=Zl9w2HbUecU
● Entrevista sobre Sistemas Operacionais
– Parte I - www.youtube.com/watch?v=5H5nFPPnB4A
– Parte II - www.youtube.com/watch?v=cTFIR54UcL8
● História do Linux
– www.youtube.com/watch?v=OlQvGjX71cw