• Nenhum resultado encontrado

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS. Profa. Regina Borges de Araujo. Avaliação. Informação sobre o curso.

N/A
N/A
Protected

Academic year: 2021

Share "SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS. Profa. Regina Borges de Araujo. Avaliação. Informação sobre o curso."

Copied!
24
0
0

Texto

(1)

Slide 1

SISTEMAS OPERACIONAIS

Profa. Regina Borges de Araujo

Livro 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

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(2)

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ção

Tópicos Introdutórios

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(3)

Slide 7

Sistema Operacional

Mais fundamental de todos os

Mais fundamental de todos os

Programas do Sistema Programas do Sistema

Tópicos Introdutórios

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ Slide 8

Componentes de um Sistema

Computacional

Reserva de Passagens Sistema Bancário Jogos

Compiladores 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

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(4)

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

___________________________________

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(5)

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 ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(6)

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

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(7)

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 ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(8)

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

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(9)

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 ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(10)

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 ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(11)

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 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

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(12)

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) ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(13)

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 Ana

Bia 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ário

Requer Mecanismos de Proteção de Arquivos

Exemplo (no Unix): leao> ls -l rwx r--r-- SO

Arquivos

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(14)

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 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> 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

___________________________________

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(15)

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 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

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(16)

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

___________________________________

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(17)

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

___________________________________

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(18)

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

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(19)

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ço

Itens 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

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(20)

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)

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(21)

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 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 no kernel)

• Cada processo pode ter seu próprio algoritmo de escalonamento de threads personalizado

Threads

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(22)

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 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

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ 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

___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(23)

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 ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

(24)

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 ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________ ___________________________________

Referências

Documentos relacionados

 Uma classe marcado como final não pode ser uma superclasse, ou seja, não pode ser base em uma estrutura de herança.  Para criar uma classe folha basta inserir a palavra final

 Para enviar os arquivos do seu site para o servidor de hospedagem, você deve usar um programa de FTP, como o Filezilla ( http://filezilla-.

Este trabalho apresentou o estudo, projeto e implementação prática de uma estrutura UPS line-interactive monofásica com compensação ativa de potência série e paralela, utilizando

Neste trabalho estarei desenvolvendo um estudo sobre Equações Diferenciais Or- dinárias Lineares de 2 a Ordem, apresentando a teoria, métodos para resolução destas.. equações

Atualmente, o tema “funções” é trabalhado em sala de aula de forma paralela pelo professor de Matemática, na 1ª série do Ensino Médio, e pelo professor de Física ao

Assim como em Montevidéu, em que por muitos anos carreguei comigo os relatos das memórias espaciais de um uruguaio que ali nasceu e de onde fiz meu próprio mapa mental do país que

PRECAUÇÕES ESPECIAIS DE ELIMINAÇÃO DO MEDICAMENTO NÃO UTILIZADO OU DOS SEUS DESPERDÍCIOS, SE FOR CASO DISSO Antes de utilizar, leia o folheto informativo.. MENÇÃO

Para poderem obter proteção para a Bordetella bronchiseptica, os cães não vacinados devem receber uma dose, no mínimo, 72 horas antes do período previsível de risco (ver também