informática - sistemas operacionais linux

56
Sistemas Operacionais Linux Prof. Dr. Erwin Doescher 2005

Upload: informa

Post on 12-Nov-2014

12.387 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informática - Sistemas Operacionais Linux

Sistemas Operacionais Linux

Prof. Dr. Erwin Doescher

2005

Page 2: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Introdução

●Sistemas Operacionais

●Linux e Distribuições 

Page 3: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Sistema Operacional● Software (programa) que:

– Gerencia o hardware do computador● Memória● Dispositivos de Entrada/Saída

– Fornece um conjunto de ferramentas que facilitam:● O uso do computador● O desenvolvimento de outros softwares

– Gerencia a execução dos demais softwares

IntroduçãoIntrodução

Page 4: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Linux● Motivo do Sucesso:

– Software Livre – Liberdade de:● Executar o software para qualquer fim● Estudar e Adaptar o código● Redistribuir cópias do software e do código● Redistribuir cópias alteradas do código

     garantidas pela Licença GPL

– Excelente estabilidade

– Segurança

IntroduçãoIntrodução

Page 5: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Aplicativos GráficosAmbiente GráficoServidor Gráfico

Aplicativos modo Texto

Ferramentas  do Sistema

LinuxEstrutura do Sistema Operacional

IntroduçãoIntrodução

Kernel

Núcleo do sistema

Shells, utilitários (arquivos, processos) 

Xfree86, XOrg

Kde, Gnome, WindowMaker, etc

OpenOffice, Gimp, Blender, etc

Apache, vi, emacs,transcode, etc.

Aplicativos GráficosAmbiente GráficoServidor Gráfico

Aplicativos modo Texto

Ferramentas  do SistemaKernel

Núcleo do sistema

Shells, utilitários (arquivos, processos) 

Xfree86, XOrg

Kde, Gnome, WindowMaker, etc

OpenOffice, Gimp, Blender, etc

Apache, vi, emacs,transcode, etc.

Page 6: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

LinuxOrganização do Sistema de Arquivos

– É organizado a partir da raiz ( / )

– Caracter / é usado como separador de caminhos:

            /home/jose/programas/C/teste.c

– Cada componente de um caminho deve ter menos que 255 caracteres

– O caminho completo não deve exceder 1023 caracteres

– Caracteres não permitidos em nomes:  / e `\0` (nulo)

IntroduçãoIntrodução

Page 7: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

LinuxOrganização do Sistema de Arquivos

– Arquivos iniciados com . (ponto)  são ocultos

– Espaços devem ser especificados como : '\ '

          /home/jose/Um\ diretorio\ longo/texto.txt 

– Pode­se colocar o caminho entre aspas ("):

         "/home/jose/Um diretorio longo/texto.txt"

– Um arquivo pode ter múltiplas extensões 

– Extensões não são relevantes para a identificação do arquivo: o tipo é determinado pelo conteúdo 

IntroduçãoIntrodução

Page 8: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

LinuxSistema de Arquivos: Diretórios padrão

– /bin  ­ executáveis (para todos usuários)

– /sbin ­ executáveis(apenas superusuário)

– /etc ­ Arquivos de configuração e inicialização

– /dev ­ Dispositivos de Entrada/Saída

– /lib ­ Bibliotecas 

– /proc ­ Imagem dos processos em execução

IntroduçãoIntrodução

Page 9: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

LinuxSistema de Arquivos: Diretórios padrão

– /var ­ Log, contabilidade e spool

– /usr ­ Executáveis, bibliotecas, etc. (não do sistema)

– /home ­  Diretórios de usuários

– /root ­ Diretório do superusuário

– /boot ­ Diretório do kernel e boot

IntroduçãoIntrodução

Page 10: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Linux● Distribuições

– Componentes do Sistema Operacional são mantidos por comunidades diferentes

– Distribuições agregam estes componentes em um único conjunto

– Diferem em:● Componentes selecionados (depende da finalidade)● Opções de compilação dos componentes● Formas de empacotamento● Estrutura de diretórios (em processo de padronização)

IntroduçãoIntrodução

Page 11: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Linux● Distribuições ­ Exemplos

– Redhat● Atualmente para área empresarial● Nos desktop apoia o desenvolvimento do Fedora

– Mandrake● Componentes compilados para Pentium

– Conectiva● Primeira distribuição Brasileira ● Empresa adquirida pela Mandrake, formando a Mandriva

IntroduçãoIntrodução

Page 12: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Linux● Distribuições ­ Exemplos

– Debian● Mantido por uma comunidade de usuários● Prioriza a estabilidade do sistema

– Gentoo● Componentes devem ser compilados na instalação

– Slackware● Uma das pioneiras

IntroduçãoIntrodução

Page 13: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Conceitos Básicos

●Usuários e Grupos

●Arquivos, Diretórios e Links

●Shell

Page 14: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Usuários e GruposUsuário:

– Para acessar o sistema:● O usuário deve estar cadastrado e logado

– O identificador do usuário (user) permite ao sistema:● Determinar as operações permitidas para o usuário● Determinar o acesso à diretórios (pastas) e arquivos● Determinar o diretório de trabalho (HOME)

– O administrador: superusuário (superuser) ou root

Conceitos BásicosConceitos Básicos

Page 15: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Usuários e GruposGrupos

– Definem conjuntos de usuários 

– Um usuário pode pertencer a 1 ou mais grupos

– Usuários de um mesmo grupo tem os mesmos privilégios

– Determinam as operações que um usuário pode ter sobre o sistema

– Fundamental para sistemas multi­usuário

Conceitos BásicosConceitos Básicos

Page 16: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

 Arquivos, Diretórios e LinksArquivos

– Armazenam dados ou programas

– Cada arquivo tem permissões de leitura, escrita e execução

Diretórios– Agrupam arquivos para facilitar localização

– Cada diretório tem permissões de leitura, escrita e execução

Conceitos BásicosConceitos Básicos

Page 17: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

 Arquivos, Diretórios e LinksLinks

– Identificam Arquivos ou Diretórios em locais distintos

● Alterar um, altera os demais

Links Simbólicos– Não é criado um novo arquivo ou diretório

– O link redireciona para o local correto

Conceitos BásicosConceitos Básicos

Page 18: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

 Arquivos, Diretórios e LinksExemplos: (apenas nomes)

Conceitos BásicosConceitos Básicos

Arquivo

Diretório Executável Arquivo de link

Link simbólico de diretório

Link simbólico de arquivo

Link simbólico perdido

Page 19: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

 Arquivos, Diretórios e LinksExemplos: (saída detalhada)

Conceitos BásicosConceitos Básicos

Nome arquivos

Data/ Hora de acesso

Tamanho

Grupo

UsuárioTipo e

Permissões

Número de links

Page 20: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

 Arquivos, Diretórios e LinksTipos e Permissões (10 campos)

             (tipo) (dono) (grupo) (outros)– tipo ­ pode ser:

­     arquivo regular                   d    diretório

l      link simbólico                    c     dispositivo de caracter

b     dispositivo de bloco           s     soquete

p     pipe identificado

– (dono), (grupo) ou (outros) ­ blocos de três caracteres cada, na ordem:

r  permissão de leitura              w  permissão escrita 

x permissão de execução          ­   nega a permissão

Conceitos BásicosConceitos Básicos

Page 21: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Shell– Um interpretador de comandos do sistema

– Funciona como uma interface entre o usuário e o Sistema Operacional

– Ao logar, o usuário inicia um shell (shell de login)

– O usuário escolhe o seu shell podendo ser:● Shell Bourne (/bin/bash) ­ (Linux) ● Shell C (/bin/csh)● Shell Korn (/bin/ksh)● Shell C avançado (/bin/tcsh)● Shell Bourne (/bin/sh) ­ (não Linux) 

– Pode­se mudar o shell com o comando chsh

Conceitos BásicosConceitos Básicos

Page 22: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Curingas– Permitem definir caminhos satisfazendo padrões

– No shell bash os seguintes curingas são válidos:● * ­ substitue uma string qualquer (inclusive nula)● ? ­ substitue um caracter (não nulo)● [c1c2...cN] ­ qualquer dos caracteres c1,c2,..,cN● ~ ­ diretório HOME do usuário

– Exemplos:● ls ­l *.txt   =>  arquivos com extensão .txt● ls ­l *.??  => arquivos com extensão de 2 letras● ls ­l [aeiou]* => arquivos começados com vogal● ls ­l x??[p97z].tar.* => ????● ls ­l ~/.bash*   => ?????

Conceitos BásicosConceitos Básicos

Page 23: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos

●Processos 

●Threads 

Page 24: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos– Um programa em execução

– Caracterizado por:● Código executável● Dados (variáveis do programa)● Registradores da CPU

– Uso Geral– Contador de Programa (PC)– Apontador de Pilha (SP)

● Pilha de Execução● Outras informações relevantes

– Arquivos abertos

  ProcessosProcessos

Page 25: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Sistema Operacional Multitarefa– Executa vários processos “simultaneamente”

– Implementado por compartilhamento de tempo:● A CPU é chaveada entre os diversos processos● Um sinal de hardware interrompe periodicamente a CPU● O processo em execução é paralisado● Os valores dos registradores são salvos ● Recupera­se os valores dos registradores de outro processo● O outro processo é reiniciado no ponto em que foi 

paralisado

– A troca ocorre muito frequentemente, dando ilusão de execução simultânea

  ProcessosProcessos

Page 26: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Manipulação de Processos– Processos podem criar novos processos (processos 

filhos)

– A execução do processo pai pode esperar ou não o término do processo filho.

– Cada processo possue um número de identificação, denominado de pid.

– Em sistemas multiusuário, os processos possuem dois outros números:

● uid – identifica o usuário dono do processo● gid – identifica o grupo do usuário dono do processo

  ProcessosProcessos

Page 27: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Manipulação de Processos– Processos comunicam­se entre si através de sinais

– O Sistema Operacional é responsável por encaminhar os sinais para os processos

– Ao receber um sinal para um processo:● O SO verifica se o processo de origem tem uid ou gid 

compatível com o processo destino● Se for compatível, o sinal é encaminhado● Se não for compatível, uma mensagem de erro é gerada

  ProcessosProcessos

Page 28: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Estados dos Processos– Rodando:

● O processo está usando o processador neste momento● Um único processo por processador pode estar neste estado

– Pronto:● São processos com plenas condições de execução● Aguardam apenas a liberação do processador

– Bloqueado:● Processos que dependem de um evento externo para 

prosseguir a execução● Quando o evento ocorre, passam ao estado pronto.

  ProcessosProcessos

Page 29: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Estados dos Processos  ProcessosProcessos

Rodando

Bloqueado Pronto

Page 30: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Comando ps– Mostra os processos do sistema neste momento

– A relação de processos é uma visão estática 

– Opções:● ­e  => mostra todos os processos ● ­f   => mostra mais detalhes dos processos● ­u user => mostra processos do usuário user● ­w => mostra saída longas em duas linhas

Page 31: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Saída do comando ps ­efw

Page 32: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Saída do comando ps ­fwu erwin

Page 33: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Comando top– Mostra os processos do sistema dinamicamente

– comandos:● h  => mostra ajuda com os comandos ● u   => mostra os processos de um usuário apenas● P => ordena os processos com maior uso de CPU● M => ordena os processos com maior uso de memória● R => mostra em ordem normal/invertida● < ou > => anterior/próximo coluna para ordenação● l,t, m => liga/desliga sumários de carga, tarefas e memória 

Page 34: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Saída do comando top

Page 35: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Comando kill ­s sin pid– Envia o sinal sin ao processo pid

– kill ­l  mostra os sinais disponíveis, entre eles:● SIGKILL   => o processo deve ser encerrado (9)● SIGSTOP  => paralisa a execução do processo (19)● SIGCONT => reinicia um processo parado (18)

– Cada sinal tem um inteiro associado

– São equivalentes:● kill ­s SIGKILL pid● kill ­KILL pid● kill ­9 pid

Page 36: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Processos em Foreground– Processos disparados do prompt 

– Bloqueiam o prompt até o final do processo

– Podem ser interrompidos com ctrl+C

Processos em Background– São disparados acrescentando um & no final do 

comando

– Não bloqueiam o prompt

– Após o comando é retornado o PID do processo

– Somente são interrompidos com kill

Page 37: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Passando processos para Background– Pressionando ctrl+z , interrompe­se o processo

– O comando bg , digitado em seguida, coloca o processo em background

Hierarquia de Processos – Processos disparados de um terminal são filhos do 

processo do terminal

– Terminar o processo pai encerra processo em foreground, mas não encerra processos em background

Page 38: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Exemplo:

PROGRAMA IMPA

#include <stdio.h>int main(void){    while (1) {         printf(“A”);     }     return 0;}

PROGRAMA IMPB

#include <stdio.h>int main(void){    while (1) {         printf(“B”);     }     return 0;}

SCRIPT RODA1

./IMPA

./IMPB

SCRIPT RODA2

./IMPA &

./IMPB &

Page 39: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Saída do Script Roda1:

Page 40: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Saída do top rodando Script Roda1:

Page 41: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Saída do Script Roda2:

Page 42: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Processos no Linux  ProcessosProcessos

Saída do top rodando Script Roda2:

Page 43: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Serviços ou daemons  ProcessosProcessos

– São processos disparados na inicialização do SO

– Os scripts dos serviços estão no diretório /etc/init.d/● /etc/init.d/servico start    => inicia o serviço● /etc/init.d/servico stop    => paralisa o serviço● /etc/init.d/servico status  => informa o estado do serviço

– Nem todos os serviços precisam estar ativos

– O linux possue 6 níveis de inicialização

– Cada um deles pode ter serviços diferentes ativados

– O nível a ser usado por padrão está indicado no arquivo /etc/inittab

Page 44: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Scripts de níveis  ProcessosProcessos

– Cada nível tem um diretório na forma

            /etc/rcN.d          onde N é o número do nível

– Cada diretório contém uma seqüência de links para  scripts de serviços

– Os links são formados por:● letra K (kill) ou S (start) ● seguidos de um número de dois digítos ● e o nome do script

– Serviços com K são mortos (ordem descendente)

– Serviços com S são iniciados (ordem ascendente)

Page 45: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Scripts de níveis  ProcessosProcessos

Comando ntsysv N– Interface amigável para ativar/desativar serviço no 

nível N

Comando chkconfig– Permite configurar os links

– chkconfig  ­ ­ list   ● mostra todos os serviços e os níveis em que aparecem

– chkconfig  ­­ level N ­­add serv● Adiciona serviço serv ao nível N

Page 46: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Threads– São fluxos de execução dentre de um processo

– Cada processo possui pelos menos uma thread

– Processos com mais de uma thread são denominados de multithread

– As threads de um processo são executadas alternadamente, aparentando execução simultânea

– As threads compartilham os seguintes recursos do processo a que pertencem:

● Espaço de memória● Variáveis globais● Arquivos

  ProcessosProcessos

Page 47: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Threads– Cada thread possui um conjunto de registradores e 

pilha de execução própria.

– Existem dois tipos de threads:● Threads de usuário: a troca das threads é implementada 

pelo próprio programa● Threads de núcleo (kernel): a troca é implementada pelo 

sistema operacional

– O uso de threads:● Simplifica a programação de tarefas paralelas● Acelera a execução do programa em computadores com 

mais de um processador

  ProcessosProcessos

Page 48: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Escalonamento– Escalonador

● Parte do SO responsável por escolher o processo/thread a ser executado

● Implementa o algorítmo de escalonamento

– O algorítmo de escalonamento busca satisfazer cinco objetivos:

● Justiça – Todos processos tem chances iguais● Eficiência – Aproveitar ao máximo o processador● Tempo de Resposta – Responder rápido aos usuários 

iterativos● Turnaround – Minimizar o tempo de espera de usuários não 

iterativos● Vazão – Executar o maior número de tarefas possíveis

  ProcessosProcessos

Page 49: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Escalonamento– Estes objetivos são contraditórios

– Para SO de propósito geral, o algorítmo deve satisfazer parcialmente estes objetivos

Escalonamento Circular ou Round Robin– Cada processo tem uma cota de tempo (quantum)

– Os processos estão em uma fila circular

– Após o seu quantum de tempo, o processo retorna ao final da fila

  ProcessosProcessos

Page 50: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

EscalonamentoEscalonamento com Prioridade

– Existem processos mais importantes que outros, que devem executar mais rapidamente

– Cada processo recebe um valor numérico de prioridade

– Processos de maior prioridade recebem um quantum de tempo primeiro

– Após executar o quantum, a prioridade é diminuída

– Quando todos os processos tem a prioridade zerada, as mesmas são reiniciadas

  ProcessosProcessos

Page 51: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

EscalonamentoEscalonamento Garantido

– Em alguns casos, um processo ganha mais um quantum de tempo, para encerrar tarefa que não pode ser interrompida

– Com isto, alguns processos tem mais tempo de execução do que outros da mesma prioridade

– O escalonamento garantido altera a prioridade dinamicamente, garantindo o mesmo tempo de execução

  ProcessosProcessos

Page 52: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Escalonamento no Linux– Escalonamento de Threads

– Três classes de Threads:● FIFO em Tempo real

– Primeiro a chegar tem preferência na execução– Só é interrompido por um processo de maior prioridade na mesma 

classe● Circular em Tempo real

– Os processos se alternam na execução– Após o quantum de tempo, voltam ao fim da fila

● Tempo Compartilhado– Como na classe anterior, mas com menor prioridade

  ProcessosProcessos

Page 53: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Escalonamento no Linux– Cada thread tem prioridades base e de ajuste (nice)

– A prioridade total da thread é dada por:● Prioridade =  base – nice

– Valor padrão● base = 20● nice = 0● Portanto,  1 <= prioridade <= 40

– O quantum de tempo:● É um valor inteiro● Inicialmente igual a prioridade● A cada interrupção este número é decrementado

  ProcessosProcessos

Page 54: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Escalonamento no Linux– O escalonador calcula a bondade de uma thread:

– Em Tempo real:● Bondade = 1000 + prioridade

– Em Tempo Compartilhado:● Se (quantum > 0)  Bondade =  quantum + prioridade● Se (quantum = = 0) Bondade =  0

– Assim:● Tempo real tem prioridade sobre as demais● Threads que gastaram toda a thread não rodam

  ProcessosProcessos

Page 55: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Escalonamento no Linux– Quando todas as threads, não bloqueadas, zeraram o 

seu quantum● O escalonador reinicializa o valor do quantum● Todos os processos são afetados (prontos e bloqueados)● Novo valor:  

                quantum = (quantum/2) + prioridade● Os processos blooqueados que não gastaram todo o 

quantum, recebem um novo quantum maior● Por isso, processos que fazem muito E/S tem maior 

preferência

  ProcessosProcessos

Page 56: Informática - Sistemas Operacionais Linux

Sistemas Operacionais ­  LinuxSistemas Operacionais ­  Linux

Escalonamento no LinuxAlterando a prioridade

– Pode­se alterar a prioridade através do valor nice:

– nice ­n valor  comando● Inicia o processo para comando com nice alterado para 

valor, com ­20 <= valor <= 19● Usuários comuns só podem usar  0 <= valor <= 19

– renice valor  pid● Altera para valor o nice de um processo já iniciado● ­20 <= valor <= 19● usuários comuns só podem aumentar o valor atual do nice.

  ProcessosProcessos