O que veremos nesta aula?
Tudo o que já vimos antes...
Principais Aspectos de
Sistemas Operacionais
Laboratório de Sistemas Operacionais – Aula 1
Flávia Maristela ([email protected])
Mas afinal, para que serve um sistema
operacional?
– Introdução
– Estrutura de sistemas computacionais
– Sistema operacional na visão do usuário
– Visão interna de um sistema operacional
– Processos e Threads
– Gerência de Memória
– Arquivos
– Entrada e Saída
Visão geral de um sistema
computacional
Um sistema computacional consiste em:
– Programas Aplicativos
– Programas do Sistema
– Dispositivos de Hardware
Sistema
Bancário
Editor de texto,
Planilha Eletrônica
Navegador
Compiladores
Editores
Interpretadores
de Comandos
Hardware
É necessário um componente capaz de...
Gerenciar diferentes recursos
– CPU, memória, disco, ...
Melhorar a performance do computador
– tempo de resposta, throughput*,...
É necessário um componente capaz de...
Servir de interface entre o hardware e o
resto do computador
Sistema
Bancário
Editor de texto,
Planilha Eletrônica
Navegador
Compiladores
Editores
Interpretadores
de Comandos
Sistema Operacional
Prover uma arquitetura que facilite a
programação:
Hardware
– É possível abstrair a camada de hardware!
Quais as principais funções de um
sistema operacional?
Gerenciar recursos de hardware
– Gerenciamento de Processador
– Gerenciamento de Memória
– Gerenciamento de E/S
Gerência de Arquivos
Gerenciando o hardware
(-- processador --)
O que faz o processador?
– Ele é cérebro do computador!
Ele busca suas instruções para execução na
memória
Instruções podem ser executadas de duas
formas:
– Modo kernel
– Modo usuário
Gerenciando o hardware
(-- processador --)
Modo kernel
– CPU pode executar qualquer instrução
– CPU tem acesso direto ao hardware
Modo usuário
– Permite a execução de apenas um subconjunto de
instruções
– Acesso limitado aos atributos das instruções
– Funções que envolvem E/S e proteção de memória
não são acessíveis
Gerenciando o hardware
(-- Entrada e Saída --)
Gerenciando o hardware
(-- memória --)
Para que serve a memória?
Segundo principal componente do computador.
Tipos de Memória:
–
–
–
–
Cache
Principal
Disco Magnético
Fita Magnética
Para pensar um pouco...
Dispositivos de E/S interagem fortemente
com o sistema operacional
Existe algum programa que precisa
executar no modo kernel?
Modos de realizar E/S:
Que programas executam no modo
usuário?
– Espera ociosa
– Interrupção
– Direct Memory Access (DMA)
Como um programa do modo usuário
pode acessar os dispositivos de E/S?
Como o usuário acessa o hardware?
De fora para dentro...
Sistema operacional na visão do usuário:
– system calls:
Sistema
Bancário
Editor de texto,
Planilha Eletrônica
Navegador
•
Compiladores
Editores
Interpretadores
de Comandos
•
•
•
Sistema Operacional
Hardware
Programas de sistema ou utilitários
– Controle permanece com o usuário
Chamadas de sistema (system calls)
usadas quando programas solicitam serviços ao sistema
operacional;
transferem a execução do programa para o sistema operacional;
São executadas em modo kernel
Exemplo: um usuário deseja ler o conteúdo de um arquivo texto.
#Algoritmo
1. usuário acessa o editor
2. editor faz uma chamada de sistema para o sistema operacional
3. sistema operacional verifica se o arquivo existe
4. se arquivo existe
5. chamada de sistema para ler conteúdo do arquivo
6. chamada de sistema para exibir conteúdo no terminal
7. senão
8.
Sistema operacional informa ao editor que arquivo não existe
– Controle é passado para o sistema operacional
Outros tipos de sistemas operacionais
Outros tipos de sistemas operacionais
Bart Simpson resolveu comprar um computador
e criar um sistema operacional apenas para
usar o Bloco de Notas. Que características
esse Sistema Operacional precisaria ter?
Mais tarde, Bart resolveu que gostaria também
de ouvir música, enquanto editava seu texto.
Que mudanças ele precisaria fazer no
Sistema Operacional?
Meu sistema
operacional vai ser
monousuário e
monotarefa!
Meu sistema operacional vai
precisar ser alterado para
considerar várias tarefas
sendo executadas!
Outros tipos de sistema operacional
Outros tipos de sistema operacional
Com relação ao usuário
– Monousuário vs. Multiusuário
Com relação ao número de tarefas que
podem ser executadas:
Monousuário
Multiusuário
Monoprogramação
Monotarefa
Multitarefa
Multiprogramação
Multitarefa
Multitarefa
– Monotarefa vs. Multitarefa
Com relação ao tipo de programação
– Monoprogramação vs. Multiprogramação
Outros tipos de sistema operacional
Sistemas Multiprogramaveis/Multitarefas
– Batch
– Time-sharing
– Distribuídos
– Tempo Real
– Embarcados
Para os alunos:
Pesquisem quais as principais características destes tipos de sistema
operacional para a próxima aula.
Mais algumas perguntas!
O computador realiza acessos simultâneos ao
processador, memória ou dispositivos de E/S?
Como é possível controlar o acesso simultâneo ao
processador?
– Escalonamento
Como é possível controlar o acesso simultâneo a
memória?
– Segmentação
Como é possível controlar o acesso simultâneo aos
dispositivos de E/S?
– Interrupção
Um presente para os alunos!
1.
2.
3.
4.
5.
6.
7.
8.
9.
Processos e Threads
O que é um sistema operacional?
Porque os sistemas operacionais foram criados?
Quais as principais funções de um sistema
operacional?
O que é kernel?
Quais os tipos de acesso a hardware? Quais as
diferenças entre eles?
O que são as interrupções? Para que servem?
O que são as system calls?
Quais os tipos de sistema operacional? Explique cada
um deles.
Caracterize as abordagens: kernel monolítico vs.
kernel em camadas.
Quantas operações você realiza
simultaneamente no seu
computador?
Processos
Vamos considerar um exemplo
O que é um processo?
Vamos fazer um bolo!
ENTRADA
(-- ingredientes --)
Programa vs. Processos
– Processo é uma atividade de um programa
1.
2.
3.
4.
Exemplo: vamos fazer um bolo!
5.
6.
– Fazer o bolo corresponde a fazer um
programa! Então, quais os principais
elementos de um programa?
Vamos considerar um exemplo
PROCESSAMENTO
(-- algoritmo --)
7.
8.
9.
10.
11.
Bater as claras em neve
Misturar açúcar e manteiga
Adicionar as gemas
Adicionar metade da farinha de
trigo
Adicionar metade do leite
Adicionar a outra metade da
farinha de trigo
Adicionar a outra metade do leite
Ligar o forno a 180°
Adicionar as claras
Despejar bolo na forma
Colocar a forma no forno
Estados de um processo
Clássicos
Programa: fazer um bolo
P1
P3
P2
P7
P5
P4
P6
P8
P9
P10
P11
– Execução
– Bloqueado
– Pronto (Apto)
Outros estados da literatura
– Iniciado
– Finalizado (terminado)
SAÍDA
(-- bolo --)
Voltando ao nosso exemplo...
Enquanto o bolo está sendo preparado, o filho do cozinheiro
cai da bicicleta e se machuca! O que fazer?
O cozinheiro vai interromper o bolo para dar os primeiros socorros ao filho!
P2
P3
P5
Estados dos processos:
– Em execução:
• Selecionar ingredientes
• Misturar açúcar e manteiga
• Fazer curativo
Programa: primeiros socorros
P1
Voltando ao nosso exemplo...
P6
– Bloqueado
• Acabou o leite
• Faltou algodão
P4
– Apto
Primeiros socorros
Bolo
• O bolo pode ser finalizado enquanto ele atende o filho
Bolo
tempo
Será que pode piorar?
Mas afinal, quem é que coloca ordem na casa?
– ESCALONADOR: implementação de baixo nível do
sistema operacional que controla o acesso a CPU
Imagine agora uma padaria, onde além do
bolo é necessário fazer pães, salgados,
doces...
– Em nosso exemplo:
• ESCALONADOR: a consciência do cozinheiro
• PROCESSADOR: cozinheiro
• PROCESSOS: atividades que ele precisava realizar
compartilhando os mesmos ingredientes
Isso se chama PROGRAMAÇ
PROGRAMAÇÃO CONCORRENTE
Visão clássica vs. Visão
contemporânea
Threads
Definição:
– “Entidades escalonadas para execução”
Espaço do usuário
Tanenbaum
Processo 1 Processo 1
Processo 1
Processo 1
– “Fluxo de execução dentro de um processo”
Kernel
Rômulo Oliveira
Kernel
Espaço do kernel
– “Unidade básica de utilização da CPU”
Silbershatz
Quando usamos as threads?
Threads compartilham os mesmos
recursos de um processo
– Quando precisamos de Programaç
Programação concorrente!
concorrente
Mais um presente!
1.
2.
3.
4.
O que é um processo?
Quais os estados de um processo?
Qual a diferença entre programa e processo?
O que é o escalonador? Pelo que ele é
responsável?
5. O que são as threads?
6. Qual a diferença entre processo e thread?
7. Para que servem as threads?
Memória
O que é a memória?
Gerência de Memória
– Exemplos: RAM, ROM, Flash, HD, pen-drive,
MP3, MP4, etc.
Tipos de memória
– Volátil
– Não-volátil
Hierarquia de Memória
Uma reflexão sobre gerência de memória
Cache
preço
Principal
velocidade
Disco Magnético
Capacidade
de armazenamento
Memória
P1
Fitas Magnéticas
Porque foi necessário criar esta estrutura de hierarquia
de memória?
Como podemos dividir a memória de forma que diferentes
programas possam acessar?
Uma reflexão sobre gerência de memória
Podemos dividir a memória em tamanhos iguais!
Memória
P1
P2
P1
P2
P3
Então, podemos dividir a memória em tamanhos diferentes!
P1
P2
P1
Uma reflexão sobre gerência de memória
P3
P4
P5
P1
P6
P1
P1
P4
P2
P
3
P2
P
3
P2
P
3
P2
P
3
E se o programa atingir o limite de memória disponível para ele?
Esta não é a melhor forma, pois pode haver desperdício!
Uma reflexão sobre gerência de memória
P1
P2
P3
P1
P1 ?
Como alocar um programa cuja necessidade total corresponde
a soma dos espaços disponíveis?
Como é possí
possível dividir e alocar adequadamente os espaç
espaços
de memó
memória?
Download

Baixar