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/opens ources/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/MS
Leia 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çãoTópicos Introdutórios
___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________Slide 7
Sistema Operacional
Mais fundamental de todos osMais fundamental de todos os
Programas do Sistema Programas do Sistema
Tópicos Introdutórios
___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ Slide 8Componentes de um Sistema
Computacional
Reserva de Passagens Sistema Bancário JogosCompiladores Editores de ComandosInterpretador
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 (19551965) -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 Hardware Processadores
• 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 CPU Controladora de Interrupção Controladora de disco disco 1 2 3 4
Passos de um processo de E/S
1. Driver diz para controladora o que fazer (escreve nos seus registradores)
- Controladora inicializa o dispositivo
2. Terminada L/E, a controladora sinaliza a controladora de interrupção 3. Se a controladora de interrupção puder aceitar, indica a interrupção para a CPU 4. 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 66MHz PCI (Peripheral Component Interconnect) 160MB/s SCSI 1.5MB/s USB IDE
(2 bytes de uma vez) 16.67MB/s 8.33MHz ISA (Industry Standard Architecture) Taxa de Transferência Ciclo Barramento ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________
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 33Chamadas 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 diferente A 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.Paulo Prof. José Profa.Regina
Cursos Comitês
SO
Arquivos
PROTEM RNP IC1
caminho do arquivo SO: /DC/Prof.Paulo/Cursos/SO
Arquivos
___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ Slide 39 Sistema MultiusuárioRequer Mecanismos de Proteção de Arquivos
Exemplo (no Unix): leao> ls -l rwx 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 B Pipe Processo ProcessoDois 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> date venom> date > arq1 venom> sort < arq1 > arq2
venom> cat arq1 arq2 arq3 | sort > /dev/lp venom> 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-ServidorEstruturas de Sistemas Operacionais
______________________________________________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ Slide 45
Sistemas Monolíticos
SO como uma coleção de Procedimentos
Programa do Usuário 2 Programa do Usuário 1 Chamada para kernel 1 2 3 Tabela de Despacho 4 Programas do usuário rodam em modo Usuário SO roda em modo Kernel
1 Prog.Usuário emite chamada do sistema 2 S.O. determina número de serviço solicitado 3 S.O. localiza e chama procedimento de serviço 4 Controle é retornado ao prog.do usuário
___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________
Slide 46 Sistemas Monolíticos Procedimento Principal Procedimentos de Serviço Procedimentos Utilitá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 Camadas
Sistema organizado numa hierarquia de camadas
Estrutura do S.O. THE
5 O Operador 4 Programa do Usuário
3 Gerenciamento de Entrada/Saída 2 Comunicação Operador-Processo 1 Gerenciamento de Memória e Tambor 0 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 Processo Cliente Processo Cliente Servidor de Processo Servidor de Terminal Servidor de Arquivo Servidor de Memória Kernel ...
Cliente obtém serviço enviando mensagens
Cliente obtém serviço enviando mensagens
para os processos servidores
para os processos servidores
Modo Usuário
Modo Usuário
Modo
ModoKernelKernel
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
Analogia
Execuçã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 Estado Processos filho Pilha Arquivos abertos Registradores Variáveis globais PC Espaço de endereçoItens por Thread Itens 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 WWWWhile 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ísticas Modelo ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ Slide 62 Implementação de Threads • Espaço do Usuário • Espaço do Kernel
Threads
___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ Slide 63Implementaçã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 no kernel)
• Cada processo pode ter seu próprio algoritmo de escalonamento de threads 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 65Implementação de Threads no Kernel Vantagens
• 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 thread
Desvantagem • Custo alto => chamadas do sistema
Threads
___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ Slide66 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 Pop-up threads => thread é criada instantaneamente para tratar um evento que Outra forma de implementação de threads
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 ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________