slide 1 sistemas operacionais - departamento de computaçãoregina/slidesso/sobasico.pdf · • o...
TRANSCRIPT
Slide 1
SISTEMAS OPERACIONAIS
Profa. Regina Borges de AraujoLivro texto:
Modern Operating Systems 2nd edition - Andrew S. Tanenbaum, Prentice Hall, 2001
Outras referências:Operating System Concepts (5a. Edição) –
Silberschatz & Galvin, John Wiley, 1999
Operating Systems (2a. Edição) - William Stallings,Prentice Hall, 1995
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 2
Avaliação• Média = (NP1 + NP2)/2*0.7 + NT*0.2 + Npart*0.1
Informação sobre o curso• www.dc.ufscar.br/~regina/ensino
SISTEMAS OPERACIONAIS
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 3
Primeira Aula• Linux x Windows
www.dicas-l.unicamp.br/Palestras/Futuro-do-Linux/futuro-do-linux.pdf
• Linux x Minix (Debate Tanenbaum x Linus Torvald)http://www.oreilly.com/catalog/opensources/book/appa.html
SISTEMAS OPERACIONAIS
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 4
Leia Linux x Windows e responda:1. Porque o Linux é considerado software livre?2. Você acha que o Linux apresenta ameaças ao império do
Windows/MS? Justifique a sua resposta.3. Escreva (em no máximo uma página) uma Defesa do SO
Linux 4. Escreva (em no máximo uma página) uma Defesa do SO
Windows/MSLeia o debate Tanenbaum x Linus Torvald e
responda:1. O que é o Minix?2. A comparação entre Minix e Linux é justa? Qual dos dois
é o melhor SO?
SISTEMAS OPERACIONAIS
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 5
• Introdução• O que é um Sistema Operacional?• História dos Sistemas Operacionais• Conceitos de Sistemas Operacionais• Estruturas de Sistemas Operacionais
Tópicos Introdutórios
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 6
Software do Computador:• Programas do Sistema• Programas de Aplicação
Tópicos Introdutórios
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 7
Sistema Operacional
Mais fundamental de todos os Mais fundamental de todos os Programas do SistemaProgramas do Sistema
Tópicos Introdutórios
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 8 Componentes de um Sistema
Computacional
Reserva de Passagens
SistemaBancário Jogos
Compiladores EditoresInterpretadorde Comandos
Sistema Operacional
Linguagem de Máquina
Microprogramação
Dispositivos Físicos
Programas de Aplicação
Programas do Sistema
Hardware
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 9
• Introdução• O que é um Sistema Operacional?• História dos Sistemas Operacionais• Conceitos de Sistemas Operacionais• Estruturas de Sistemas Operacionais
Tópicos Introdutórios
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 10
Definição de Sistema Operacional:
• Máquina Virtual• Gerenciador de Recursos
Tópicos Introdutórios
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 11
• Introdução• O que é um Sistema Operacional?• História dos Sistemas Operacionais• Conceitos de Sistemas Operacionais• Estruturas de Sistemas Operacionais
Tópicos Introdutórios
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 12
• Primeira Geração (1945-1955)• Segunda Geração (1955-1965)• Terceira Geração (1965-1980)• Quarta Geração (1980-1990)
História dos Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 13
Primeira Geração (1945-1955)
• Válvulas • Placas de Conexão (PlugBoards)
História dos Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 14
Segunda Geração (1955-1965) -Transistores e Sistemas em Lote
• Computadores de grande porte (mainframes)• Jobs• Entrada (através de cartões) e Saída computadores
mais baratos (IBM 1401)• Processamento computadores mais sofisticados
(IBM 7094)• Sistemas em Lote programados em Fortran e
Assembly• FMS e IBM/IBSYS• Aplicações na área científica e de engenharia
História dos Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 15
Terceira Geração (1965-1980):CIs e Multiprogramação
Partições de
Memória
Job 3
Job 2
Job 1
S.O.
História dos Sistemas Operacionais
• Sistema IBM/360 (família de computadores compatíveis – todo software roda em todos os modelos) .... 370, 4300, 3080 e 3090.
• Requisitos conflitantes SO e problemas gigantescos• UCP ociosa 80/90% para E/S popularização da multiprogramação• Do cartão para o disco, do disco para memória, da memória para o disco,
do disco para a impressora Spooling• Tempo rápido de resposta Tempo Compartilhado (Timesharing)
CTSS (Compatible Time Sharing System)
MULTICS (PL/I) (multiplexed Information and Computer Service)
• Mini-computadores• Unix
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 16
Quarta Geração (1980 – presente) Computadores Pessoais - LSI
• Intel 8080 - CP/M (Control Program for Microcomputers) –domínio de 5 anos - popularização dos PCs (microcomputadores)
• IBM projeta o IBM/PC , DOS/BASIC, MS-DOS • IBM PC/AT/80286 em 1983 (morte do CP/M)• Xenix (versão Unix da MS)• Doug Engelbart inventa GUI (adotada pela Xerox e incorporada
em suas máquinas)• LISA (Apple) incorpora GUI – fracasso (alto custo)• Apple MacIntosh – enorme sucesso• MS-GUI: W3.0/3.1/3.11/W95,W98, WMe – W/NT• UNIXGUI: XWindows (MIT), Motif (roda sobre X)
História dos Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 17
Dos anos 90 em diante...
Redes de Computadores• Sistemas Operacionais de Rede
• Sistemas Distribuídos• Novas aplicações (MM, Realidade Virtual)
• Internet 2• Redes de comunicação sem fio
• Computação pervasiva
História dos Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 18 Tipos de Sistemas Operacionais
• Computadores de Grande Porte– Capacidade de E/S, processamento de vários jobs de uma vez– Serviços típicos: lote, processamento de transação e tempo compartilhado
• Servidores– Servem múltiplos usuários de uma vez (compartilhamento de recursos de software e
hardware) via rede. • Multiprocessadores
– Múltiplas CPUs num único sistema (computadores paralelos, multicomputadores ou multiprocessadores)
• Computadores Pessoais• Tempo Real
– Tempo é o parâmetro chave– Hard x soft real time
• Embarcados– Pequenos computadores e TVs, celulares, fornos de microondas– Restrições de tamanho, memória e potência (PalmOS, W/CE – Consumer Electronics)
• Cartão Inteligente– Restrições extremas de tamanho de memória e poder de processamento– JVM em ROM– SO primitivo gerencia desde uma única função até tratamento de múltiplas applets
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 19 Relação entre Hardware e Sistema Operacional
Componentes de um PC
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 20 Relacionamento entre o Sistema
Operacional e o HardwareProcessadores• Busca, decodifica e executa instruções• Cada UCP tem um conjunto específico de instruções a executar• Tempo de acesso x tempo de execução => Registradores (PC,
ponteiro de pilha, PSW)• SO sabe sobre todos os registradores (chaveamento de
contexto)• UCPs mais complexas => pipeline => confecção de SOs e
compiladores é mais complexa• SO: modo kernel (acesso total ao hardware)
modo usuário (subconjunto de instruções e de acesso ao hard)• Programa do usuário obtém serviços do SO => System call =>
TRAP (chaveia de modo usuário para kernel) => invoca SO
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 21
• Memória– Ideal: extremamente rápida, grande e barata => nenhuma
tecnologia satisfaz => hierarquia de camadas– Registradores > cache > Memória principal > discos magnéticos
> fitas magnéticas– Discos – rotacionam a 5400, 7200, 10800 rpm
• Trilha (dividida em setores)• Setores (512 bytes)• Cilindro• Tempo de um cilindro ao próximo: 1msec (Para um cilindro aleatório: 5 a
10 msec, Espera posicionar setor: 5 a 10 msec, R/W: 5 a 160MB/sec)– Fitas – baixo custo– ROM/EEPROM/FlashRAM (muito mais lento para escrever do
que RAM)/CMOS– Memória e multiprogramação (MMU e o SO – problemas de
proteção e realocação)
Relação entre o SO e o Hardware
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 22
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 23
Dispositivos de Entrada/Saída• Alta interação com o SO• Dispositivo de E/S = dispositivo + Controladora• Dispositivos => interface muito simples/padronizada IDE/SCSI –
controladora IDE acessa qualquer disco IDE)• SO fala com controladora através dos Drivers de dispositivo• Driver => interage diretamente com a controladora• Driver tem que ser colocado no SO e rodar no modo kernel (relink
do kernel/entrada no SO e reboot/aceita novo driver “on the fly” –hot plug in USB) – teoricamente drivers rodam fora do kernel
• Formas de se realizar E/S:– Espera Ociosa: Programa do usuário=>Syscall=> chamada de procedimento
para driver => inicia E/S (espera ociosa até completar) =>driver coloca dados (se houver) na memória
– Interrupção: idem acima sem espera – controladora gera interrupção– DMA: acesso direto à memória sem a intervenção da CPU
Relação entre o SO e o Hardware
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 24 Interrupção
CPUControladora
de Interrupção
Controladora de disco
disco
1 2
3
4
Passos de um processo de E/S1. Driver diz para controladora o que fazer (escreve nos seus registradores)
- Controladora inicializa o dispositivo2. Terminada L/E, a controladora sinaliza a controladora de interrupção3. Se a controladora de interrupção puder aceitar, indica a interrupção para a CPU4. A controladora de interrupção coloca o número do dispositivo
no barramento para a CPU para que esta saiba qual deles causou a interrupção para eventualmente tratá-la
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 25
• PC e PSW são salvos na pilha atual• CPU é chaveada para modo kernel• Número do dispositivo é usado como um índice
para determinar o endereço da rotina de tratamento da interrupção (vetor de interrupção)
• Ações da rotina de tratamento de interrupção (parte do driver):– remove o PC e o PSW e salva – determina estado do dispositivo– terminado o tratamento, retorna para a primeira
instrução ainda não executada do programa que estava rodando
Tratamento de Interrupção
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 26
Barramentos• Um barramento só é insuficiente para tratar todo o tráfego => adição de
barramentos adicionais (para dispos de E/S mais rápidos e tráfego entre CPU-memória)
• Sistema Pentium tem 8 barramentos (cada um com uma função e taxa de transferência diferentes)
• SO tem que saber sobre todos os barramentos para configuração e gerenciamento => PLUG AND PLAY
• Antes do plug and Play - cada placa de dispositivo de E/S tem nível de interrupção fixo e endereços fixos para registradores de E/S
O que fazer quando as interrupções conflitavam?DIP switches ou Jumpers em cada placa de E/S
CAOS• Plug and Play – mecanismo centralizado
– sistema coleta automaticamente info sobre todos os dispositivos de E/S– Atribui níveis de interrupção e endereços de E/S– Divulga para cada placa quais são os seus números
Relação entre o SO e o Hardware
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 27 Características dos barramentos de um PC atual
(8 bytes de uma vez)528MB/s
66MHzPCI(Peripheral Component
Interconnect)
160MB/sSCSI
1.5MB/sUSB
IDE
(2 bytes de uma vez)16.67MB/s
8.33MHzISA(Industry Standard
Architecture)
Taxa de Transferência
CicloBarramento
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 28
Estrutura de um sistema Pentium
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 29
BIOS• Localizado em memória Flash na placa mãe (pode ser
atualizado pelo SO)• Inicializado no boot
– Varre os barramentos ISA e PCI (grava dispositivos plug & play e os legados – se forem diferentes do último boot,configura os novos)
– Determina o dispositivo de boot (checa contra lista na CMOS)
– Lê primeiro setor do dispositivo de boot e executa– determina a partição ativa (através de programa q examina a
tabela de partição no final do setor de boot)– Um loader secundário de boot é lido da partição ativa– Loader secundário lê o Sistema Operacional da partição
ativa para a memória e o inicializa
Relação entre o SO e o Hardware
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 30
• Atividades Iniciais do Sistema Operacional– Extrai informação de configuração da BIOS– Checa a presença de driver para cada dispositivo de
E/S (se não encontra pede ao usuário para inserir disco ou CD-ROM com o software)
– Carrega todos os drivers no kernel (núcleo) do SO– Inicializa suas tabelas– Cria processos em background– Inicializa programa de login ou uma interface
gráfica para cada terminal encontrado
Relação entre o SO e o Hardware
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 31
• Processos• Deadlocks• Gerenciamento de Memória• Entrada e Saída• Arquivos• Segurança• Interpretador de Comandos (Shell)
Conceitos de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 32
Processo – Conceito chave em todos os sistemas operacionais
Processo é um programa em execução
Processo• espaço de endereço (programa executável, dados do programa e sua pilha)• Lista de posições de memória onde o processo pode ler e escrever• Conjunto de registradores (PC, ponteiro de pilha, outros registradores de
hardware)• toda a informação necessária para executar o programa
Processo e Tempo Compartilhado
• Informação sobre os processos é mantida em uma Tabela de processos ou BCP (Bloco de Controle de Processos)
• Tabela de Processos pode ser estruturada como um arranjo ou lista encadeada
Processo = espaço de endereço + sua entrada na tabela de processos
Processos
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 33
Chamadas do Sistema Relacionadas a Gerenciamento de Processos– Criação e terminação de processos– Solicitação (ou liberação) de memória– Espera terminação de processo filho e substitui esse programa por outro
diferenteA
B C
D E F
Processo Pai
Processos Filho
Processos Filho
Ex.: leao> cc arq.c
Processos relacionados comunicam-se entre si através de comunicação entre processos - IPC
Processos
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 34
• Processos podem ser interrompidos (pelo S.O.) através de Signals (time-outs, traps detectadas pelo hardware, como execução de instrução ilegal, endereço inválido)
• Signal causa a suspensão do processo atualmente em execução, salvamento do sregistradores na pilha e inicia a execução de rotina de tratamento de sinal
Signals
analogia de software com as interrupções de hardware
• Cada processo tem um identificador único atribuído a ele (carrega também o UID da pessoa que inicializou o processo)
Processos
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 35
• Deadlock – situação de impasse em que processos estão em estado de espera por recursos que estão alocados para outros processos também em estado de espera
Exemplo:Processos 1 e 2 querem gravar um CD a partir de dados de uma unidade de fita
• Processo 1 solicita e consegue a unidade de fita (do SO)• Processo 2 solicita e consegue o gravador de CD• Processo 1 solicita o gravador de CD e é suspenso até que
Processo 2 o devolva• Finalmente Processo 2 solicita a unidade de fita e é suspenso
porque o Processo 1 já a possui
Deadlocks
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 36
Gerenciamento de Memória• A memória mantém programas em execução
– Monoprogramação– Multiprogramação
• Proteção em hardware (controlada pelo SO)• Gerenciamento do espaço de endereço dos processos
(que pode ser menor ou maior que a memória principal do computador => memória virtual)
Entrada e Saída• Gerenciamento dos dispositivos através de um subsistema
de E/S• Parte do software de E/S é independente de dispositivo
(driver é a parte do software que é dependente de dispositivo)
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 37
É responsabilidade do SO gerenciar a segurança do sistema– Proteção de arquivos– Proteção contra invasões (ex. vírus)– Proteção contra acesso não autorizado
Segurança
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 38
Arquivos(Agrupados em Diretorios)
Diretório Raiz
Alunos DC
AnaBia Leo Prof. José
Prof.Paulo Profa.Regina
Cursos Comitês
SOArquivos
PROTEM RNPIC1
caminho do arquivo SO: /DC/Prof.Paulo/Cursos/SO
Arquivos
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 39
Sistema Multiusuário
Requer Mecanismos de Proteção de Arquivos
Exemplo (no Unix):
leao> ls -lrwx r--r-- SO
Arquivos
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 40
• Chamadas do Sistema Relacionadas a Arquivos:– open, read, write, close etc.
• Vários S.Os. representam dispositivos de E/S como arquivos especiais. Tipos de arquivos especiais:– Arquivos especiais de bloco (discos)– Arquivos especiais de caractere
(terminal,impressora)– Pseudo-arquivos PIPE
Arquivos
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 41
A BPipe
Processo Processo
Dois processos conectados através de uma PIPE
Exemplo:leao> cat arq1 arq2 arq3 | sort > /dev/lp
Arquivos (PIPE)
Arquivos
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 42
Shell(Interface entre um Usuário
e o Sistema Operacional)
Exemplos:venom> datevenom> date > arq1venom> sort < arq1 > arq2venom> cat arq1 arq2 arq3 | sort > /dev/lpvenom> cat arq1 arq2 arq3 | sort > /dev/lp &
Conceitos de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 43
• Introdução• O que é um Sistema Operacional?• História dos Sistemas Operacionais• Conceitos de Sistemas Operacionais• Estruturas de Sistemas Operacionais
Tópicos Introdutórios
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 44
• Sistemas Monolíticos• Sistemas em Camadas• Máquinas Virtuais• Modelo Cliente-Servidor
Estruturas de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 45 Sistemas Monolíticos
SO como uma coleção de Procedimentos
Programa do Usuário 2
Programa do Usuário 1Chamadapara kernel
1
2
3
Tabela de Despacho
4
Programas dousuário rodam
em modoUsuário
SO roda em modo Kernel
1 Prog.Usuário emite chamada do sistema2 S.O. determina número de serviço solicitado
3 S.O. localiza e chama procedimento de serviço4 Controle é retornado ao prog.do usuário
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 46
Sistemas Monolíticos
ProcedimentoPrincipal
Procedimentosde Serviço
ProcedimentosUtilitários
Modelo de estrutura simples
Estruturas de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 47
• Sistemas Monolíticos• Sistemas em Camadas• Máquinas Virtuais• Modelo Cliente-Servidor
Estruturas de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 48
Sistemas em CamadasSistema organizado numa hierarquia de camadas
Estrutura do S.O. THE
5 O Operador4 Programa do Usuário3 Gerenciamento de Entrada/Saída2 Comunicação Operador-Processo1 Gerenciamento de Memória e Tambor0 Alocação de Processador e Multiprogramação
Estruturas de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 49
• Sistemas Monolíticos• Sistemas em Camadas• Máquinas Virtuais• Modelo Cliente-Servidor
Estruturas de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 50
Máquinas Virtuais
CMS CMS CMS
VM / 370
Hardware do 370
VM370
Instruções de E/S aqui
Chamada (trap) aqui
Chamadas do Sistema aqui
Chamada (trap) aqui
Estruturas de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 51
• Sistemas Monolíticos• Sistemas em Camadas• Máquinas Virtuais• Modelo Cliente-Servidor
Estruturas de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 52
Modelo Cliente-Servidor
ProcessoCliente
ProcessoCliente
Servidor deProcesso
Servidor deTerminal
Servidor deArquivo
Servidor deMemória
Kernel
...
Cliente obtém serviço enviando mensagensCliente obtém serviço enviando mensagenspara os processos servidorespara os processos servidores
Modo UsuárioModo Usuário
ModoModo KernelKernel
Estruturas de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 53
Modelo Cliente-Servidor(em um Sistema Distribuído)
Cliente
Kernel
Servidor de Arquivo
Kernel Kernel Kernel
Servidor de Processo
Servidor de Terminal
Máquina 1 Máquina 2 Máquina 3 Máquina 4
Mensagem do cliente para o servidor
... ...
Estruturas de Sistemas Operacionais
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 54
• Processo – um espaço de endereço e uma única linha de controle• Threads – um espaço de endereço e múltiplas linhas de controle
• O Modelo do Processo– Agrupamento de recursos (espaço de endereço com texto e dados do
programa; arquivos abertos, processos filhos, tratadores de sinais, alarmes pendentes etc)
– Execução• O Modelo da Thread
– Recursos particulares (PC, registradores, pilha) – Recursos compartilhados (espaço de endereço – var globalis, arquivos etc)– Múltiplas execuções no mesmo ambiente do processo – com certa
independência entre as execuções
AnalogiaExecução de múltiplas threads em paralelo em um processo
(multithreading)Execução de múltiplos processos em paralelo em um computador
Threads
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 55
• Thread => processo leve (lightweight process)
Threads
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 56
• Multithreading – CPU chaveia entre as threads dando a ilusão de execução em paralelo (CPU mais lenta)
• Processos – independentes entre si• Threads – cooperam entre si (segurança?)
Threads
Info de Contabilidade
Tratadores de sinais
Alarmes Pendentes
EstadoProcessos filho
PilhaArquivos abertos
RegistradoresVariáveis globais
PCEspaço de endereço
Itens por ThreadItens por Processo
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 57
• Estados das threads (como processos)• Transições entre estados das threads (como processos)• Cada thread tem sua própria pilha
Threads
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 58
Proc1
ativa uma thread
create_thread1 (proc1) create_thread2 (proc1) ... create_threadn (proc1)
thread1_exit thread2_exit threadn_exit
Outros procedimentos de biblioteca:Thread1
thread_wait (thread2)(thread 1 bloqueia até que thread 2 termine)
Thread yeld (abre mão da CPU em prol de outra thread – IMPORTANTE!)
• Estrutura entre threads => de igual para igual ou hierárquica
Threads
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 59
• Porquê threads?– Simplificar o modelo de programação (aplicação com múltiplas
atividades => decomposição da aplicação em múltiplas threads)– Gerenciamento mais simples que o processo (não há recursos
atachados – criação de thread 100 vezes mais rápida que processo)
– Melhoria do desempenho da aplicação (especialmente quando thread é orientada a E/S)
– Útil em sistemas com múltiplas CPUs
Exemplo do uso de threads• Aplicação: Processador de texto• Uso de 3 threads
– Interação com o usuário– Formatação de texto– Cópia de documento
• Solução com 3 processos x solução com 3 threads
Threads
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 60
threads na WWW
While TRUE { While TRUE {Pega_prox_solicitacao(&buf); espera_por_trab(&buf)Distribui_trabalho(&buf); busca_pag_cache(&buf,&pag);
} if (pag_não_no_cache(&pag))le_pag_disco(&buf,&pag);
retorna_pag(&pag)}
thrtead dispatcher thread de trabalho (worker)
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 61
Discutir a construção de um servidor nos seguintes modelos:
Threads
Paralelismo, chamadas não bloqueantes, interrupções
Processos
Sem paralelismo, chamadas de sistema bloqueantes
Thread Único
Paralelismo, chamadas de sistema bloqueantes
Threads
CaracterísticasModelo
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 62
Implementação de Threads• Espaço do Usuário• Espaço do Kernel
Threads
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 63
Implementação de Threads no Espaço do Usuário Vantagens
• Threads podem ser implementados em S.O. que não suporta thread)• Cada processo precisa ter sua tabela de threads• Gerenciadas pelo sistema de execução de threads (run-time system) –
através de coleção de procedimentos de biblioteca• Quando thread precisa bloquear =>faz chamada de procedimento • Ações de uma chamada de procedimento:
– Verifica se thread muda para estado bloqueada – Salva PC, piulha, registradores– Busca na tabela thread pronta para rodar– Carrega PC e ponteiro de pilha => nova thread começa a rodar
• Chaveamento de thread uma ordem de magnitude mais rápido que mudar para o modo kernel (grande vantagem sobre implementação nokernel)
• Cada processo pode ter seu próprio algoritmo de escalonamento dethreads personalizado
Threads
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 64
Implementação de Threads no Espaço do Usuário Desvantagens
• Thread faz chamada de sistema que bloqueia => thread que bloqueia afeta os outros (processo que roda todos os threads é interrompido)
• Soluções Possíveis:– Alterar todas as chamadas do sistema para não bloqueantes
• Requer alteração do sistema operacional• Requer alterações em vários programas do usuário (alteração da semântica da
chamada)– “Envelopar” as chamadas do sistema com procedimento que verifica se a
chamada vai bloquear ou não (select do Unix – read é substituído por outro read que primeiro faz a chamada select) – se a chamada vai bloquear, é adiada => roda outra thread
• Bloqueamento causado por falha de páginas• Thread controla a CPU (pode rodar para sempre)
Threads
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 65
Implementação de Threads no KernelVantagens
• Não precisa de sistema de execução (run-time) – o kernel sabe sobre as threads
• Gerenciamento de threads através de chamadas para o kernel (tabela de threads) – reciclagem de threads
• Chamadas que podem bloquear uma thread => implementadas como chamadas do sistema
• O que faz o kernel quando uma thread bloqueia?• Não requer modificações nas chamadas do sistema• No caso de falha de página, o kernel pode passar controle para
outra threadDesvantagem
• Custo alto => chamadas do sistema
Threads
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 66 Threads no espaço do usuário x threads no espaço do kernel
Bom desempenho x uso de muitos truques para funcionar
Implementação Híbrida• Multiplexação de threads do espaço do usuário em threads do kernel
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 67 Formas de Implementação Híbrida – Ativações do escalonador
• Threads no usuário não usam truques como chamadas especiais não bloqueantes• Se tiver que bloquear => deve ser possível rodar outras threads do mesmo
processo (se prontas)• Thread espera por outra thread => não envolve kernel (sistema de execução –
runtime system – trata isso)• Uso de upcall
– kernel sabe que thread bloqueou– Kernel notifica sistema de execução (passa num do thread e descrição do evento
ocorrido)– Kernel ativa sistema de execução (num endereço conhecido)– Sistema de execução re-escala suas threads (pega da lista de prontos, seta
registradores e inicializa)• Volta do evento bloqueado
- Kernel sabe que página foi trazida para memória ou dados foram lidos - Kernel notifica sistema de execução (upcall)- Sistema de execução decide se volta a rodar thread ou coloca na fila de prontos
• Tratamento de interrupção de hardware- Thread em execução é interrompida e salva (pode ou não voltar a rodar depois da
interrupção ser tratada)• Desvantagem: Viola o princípio do modelo em camadas
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 68 Outra forma de implementação de threads
Pop-up threads => thread é criada instantaneamente para tratar um evento que acabou de ocorrer (chegada de mensagem)
Processo unithread => Processo multithread - Implicações • Uma thread tem suas próprias variáveis locais e globais (vários procs dentro da
thread usam) e parâmetros de procedimentos• Var global para uma thread mas não global para multithreads => inconsistências
(ex.: errno)• Resolução de inconsistências em multithreads
– Proibir vars globais– Atribui para cada thread suas próprias variáveis globais privadas (cópia do errno para
cada thread)– Como acessar var globais atribuídas para cada thread?
• Alocar espaço de memória e passar para o thread como parâmetro extra• Novas bibliotecas (create_global)
• Código de procedimentos de biblioteca não são reentrantes (segunda chamada para procedimento não é feita enquanto primeira não foi finalizada)– Reescrever a bilbioteca– Flag que indica que biblioteca está em uso – elimina paralelismo– Reprojetar o sistema (no mínimo redefinir semântica das chamadas, reescrever
bibliotecas) mantendo compatibilidade com programas e aplicações atuais.
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 69
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
Slide 70 Processos
• Todo o software que roda no computador => organizado como processos
• Cada processo tem sua própria CPU virtual (conceitualmente)
• Processos rodam em pseudo paralelismo
• Multiprogramação => chaveamento rápido de um processo para outro
• Idéia principal do gerenciamento de processo– um processador único pode ser compartilhado entre vários
processos– algoritmo de escalonamento determina quem usa o
processador e quando
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________