Você está na página 1de 67

ORGANIZAÇÃO DE

COMPUTADORES
Prof. Renato Matroniani
EMENTA
• Sistemas Operacionais: Definição, Tipos, Estruturas de
Sistemas, Processos, Espaços de Endereçamento, Arquivos,
Entrada e Saída, Processos e threads, Impasses.
• Práticas da organização de computadores, tipos de
componentes, instalação e configuração de sistemas
operacionais: Linux, Windows.
Estrutura básica de um PC

Texto baseado em Tanenbaum (2016)


Processadores
• A CPU é considerada o cérebro do computador. A sua função
é buscar instruções na memória e executá-las.
• O ciclo básico da CPU é buscar a primeira instrução da
memória, decodificá-la para determinar o seu tipo e
operandos, executá-la, e então buscar, decodificar e
executar as instruções subsequentes.
• O ciclo é repetido até o programa terminar.

Texto baseado em Tanenbaum (2016)


Processadores
• Segundo Coutinho (2010) “A CPU tem como função principal
unificar todo o sistema, controlando as funções realizadas
em cada unidade funcional”.
• Ainda segundo o mesmo autor “É responsável pela execução
de todos os programas, que obrigatoriamente deverão estar
armazenados na memória principal”.

Texto baseado em Coutinho (2010)


Processadores
• A CPU é dividida basicamente em dois componentes:
• Unidade de controle (UC)
• Unidade lógica e aritmética (ULA)

Texto baseado em Coutinho (2010)


Processadores – Unidade de controle (UC)
• controla as atividades de todos os componentes do
computador.
• o controle é feito através de pulsos elétricos, os chamados
sinais de controle, gerados pelo clock.
• responsável pelo funcionamento do próprio computador.
• coordena a ULA.
• coordena os registradores das memórias, os barramentos,
placa-mãe e a interligação de todos os dispositivos.

Texto baseado em Coutinho (2010)


Processadores – Unidade lógica e aritmética
(ULA)
• responsável pela execução das
operações lógicas, como testes e
comparações.
• responsável pelas operações
aritméticas: soma/subtração.

Texto baseado em Coutinho (2010)


Processadores – o clock
• Segundo Coutinho (2010), a transmissão de dados entre o
receptor e o transmissor é controlado pelo clock, quer é um tipo
de sinal de controle.
• “O clock é um dispositivo localizado na unidade central de
processamento, que gera pulsos elétricos síncronos em um
determinado intervalo de tempo (sinal de clock). A quantidade de
vezes que este pulso se repete em um segundo define a
frequência do clock. Toda transmissão paralela utiliza um sistema
de clock. Esses sistemas de clock, entretanto, são independentes,
isto é, o sistema de clock usado na transmissão de dados entre o
processador e a memória RAM não é o mesmo usado na
transmissão de dados entre o disco rígido e a placa-mãe, por
exemplo (Coutinho, 2010)”.
Texto baseado em Coutinho (2010)
Processadores
• As CPUs possuem um conjunto específico de instruções que
conseguem executar. Isso quer dizer, por exemplo, que um
processador ARM não executa instruções x86 (e vice-versa).
• Todas as CPUs possuem internamente registradores internos
para armazenamento de variáveis e resultados temporários.

Texto baseado em Tanenbaum (2016)


Processadores e o Sistema Operacional
• O sistema operacional tem ciência de tudo o que é
executado pelo processador. Por exemplo, toda vez que a
CPU para um programa em execução, o SO tem de salvar
todos os registradores de maneira que eles possam ser
restaurados quando programa for executado mais tarde.

Texto baseado em Tanenbaum (2016)


Processadores e o Sistema Operacional
• De acordo com Tanembaum (2016):
• “Para melhorar o desempenho, os projetistas de CPU há muito
tempo abandonaram o modelo simples de buscar, decodificar e
executar uma instrução de cada vez. Muitas CPUs modernas têm
recursos para executar mais de uma instrução ao mesmo tempo.
Por exemplo, uma CPU pode ter unidades de busca, decodificação
e execução separadas, assim enquanto ela está executando a
instrução n, poderia também estar decodificando a instrução n + 1
e buscando a instrução n + 2”.

Texto baseado em Tanenbaum (2016)


Processadores e Pipelines
• A ideia da pipeline é executar tarefas simultâneas, como já
mencionado. No entanto, as pipelines trazem grandes desafios para
projetistas de compiladores e de SOs, devido à maior complexidade
da máquina. A figura (a) mostra uma pipeline de 3 estágios.

Texto baseado em Tanenbaum (2016)


CPUs Superescalares
• Nesse projeto, unidades múltiplas de execução estão presentes. Uma
unidade para aritmética de números inteiros, por exemplo, uma
unidade para aritmética de ponto flutuante e uma para operações
booleanas.

Texto baseado em Tanenbaum (2016)


CPUs Superescalares
• Duas ou mais instruções são buscadas ao mesmo tempo, decodificadas e
jogadas em um buffer de instrução até que possam ser executadas
(figura b). Tão logo uma unidade de execução fica disponível, ela procura
no buffer de instrução para ver se há uma instrução que ela pode
executar e, se assim for, ela remove a instrução do buffer e a executa.

Texto baseado em Tanenbaum (2016)


CPUs Superescalares
• Grande parte das CPUs possuem dois modos, núcleo e usuário.
• De forma geral, um bit no PSW controla o modo.
• Se estiver em modo núcleo, a CPU executa todas as instruções e usar
todos os recursos do hardware.
• Em computadores pessoais e servidores, o SO geralmente opera em
modo núcleo, dando a ele acesso a todo o hardware.
• Na maioria dos sistemas embarcados, uma parte pequena opera em
modo núcleo, com o resto do sistema operacional operando em modo
usuário.

Texto baseado em Tanenbaum (2016)


Chips multithread e multinúcleo
• A “Lei de Moore” diz que o número de transistores em um
núcleo dobra a cada 1,5 ano. Segundo Tanenbaum (2016),
essa “lei” se mantém há mais de três décadas.
• Tanenbaum destaca: “Após isso, o número de átomos por
transistor tornar-se-á pequeno demais e a mecânica
quântica começará a ter um papel maior, evitando uma
redução ainda maior dos tamanhos dos transistores”.

Texto baseado em Tanenbaum (2016)


Chips multithread e multinúcleo
• A medida que o número de transistores aumenta, há maior
necessidade de modificação dessas unidades. Uma delas é
aumentar a memória cache.
• Outra alternativa é replicar as unidades funcionais desses
chips e a parte lógica de controle.
• Pioneiro em fazer isso foi o chip Pentium 4, que introduziu a
propriedade chamada multithreading ou hyperthreading®thread: ordem
ao processador x86. de execução em
linha.
• O Pentium 4 faz o chaveamento entre dois threads em multithread
várias linhas
=

nanosegundos.

Texto baseado em Tanenbaum (2016)


Chips multithread / multinúcleo e o SO
• O multithreading tem implicações para o sistema operacional,
pois cada thread aparece para o sistema operacional como uma
CPU em separado.
• Considere um sistema com duas CPUs efetivas, cada uma com
dois threads. O sistema operacional verá isso como quatro CPUs.
• Se há apenas trabalho suficiente para manter duas CPUs ocupadas
em um determinado momento no tempo, ele pode escalonar
inadvertidamente dois threads para a mesma CPU, com a outra
completamente ociosa.
• Essa escolha é muito menos eficiente do que usar um thread para
cada CPU.

Texto baseado em Tanenbaum (2016)


Chips multithread / multinúcleo e o SO
• Além do multithreading, muitos chips
de CPU possuem quatro, oito ou mais
processadores completos ou núcleos
neles.
• Os chips multinúcleo da figura
efetivamente trazem quatro minichips,
cada um com sua CPU independente.
• Alguns processadores, como o Intel
Xeon Phi e o Tilera TilePro, já
apresentam mais de 60 núcleos em um
único chip.
• O uso de um chip com multinúcleo
exige um sistema operacional de
multiprocessador.

Texto baseado em Tanenbaum (2016)


Chips ARM

Fonte: https://tecnoblog.net/meiobit/422271/a-historia-da-arquitetura-dos-processadores-arm/
Chip Intel Core 2 Duo

Fonte: https://tecnoblog.net/meiobit/422271/a-historia-da-arquitetura-dos-processadores-arm/
Carregadores
• Os carregadores possuem como tarefa do sistema
operacional carregar o arquivo executável na memória, em
um determinado endereçamento da mesma e executá-lo.
• carregador absoluto: refere-se a executáveis carregados
na memória real.
• carregador realocável: realoca (ou carrega) o executável
que está em uma memória virtual para uma memória
real.

Texto baseado em Tanenbaum (2016)


Processos e Gerenciamento do processador
• Um conceito fundamental em todos os sistemas operacionais é o processo.
Um processo é basicamente um programa em execução.
• Associado a cada processo está o espaço de endereçamento, uma lista de
posições de memória que vai de 0 a algum máximo, onde o processo pode
ler e escrever.
• O espaço de endereçamento contém o programa executável, os dados do
programa e sua pilha.
• Associado com cada processo há um conjunto de recursos, em geral
abrangendo registradores (incluindo o contador de programa e o ponteiro de
pilha), uma lista de arquivos abertos, alarmes pendentes, listas de processos
relacionados e todas as demais informações necessárias para executar um
programa.
• Um processo é na essência um contêiner que armazena todas as
informações necessárias para executar um programa.

Texto baseado em Tanenbaum (2016)


Processos e Gerenciamento do processador
• Em muitos sistemas operacionais, todas as informações a
respeito de cada processo, fora o conteúdo do seu próprio
espaço de endereçamento, estão armazenadas em uma
tabela do sistema operacional chamada de tabela de
processos, que é um arranjo de estruturas, uma para cada
processo existente no momento.
• Desse modo, um processo (suspenso) consiste em seu
espaço de endereçamento, em geral chamado de imagem
do núcleo, e de sua entrada na tabela de processo, que
armazena os conteúdos de seus registradores e muitos
outros itens necessários para reiniciar o processo mais tarde.

Texto baseado em Tanenbaum (2016)


Processos e Gerenciamento do processador
• Um processo chamado de interpretador de comandos ou
shell lê os comandos de um terminal.
• Por exemplo: O usuário digita um comando requisitando que
um programa seja compilado. O shell cria um novo processo
que vai executar o compilador.
• Quando esse processo tiver terminado a compilação, ele
executa uma chamada de sistema para se autofinalizar.

Texto baseado em Tanenbaum (2016)


Processos e Gerenciamento do processador
• Se um processo pode criar um ou mais processos (chamados
de processos filhos), e estes por sua vez podem criar
processos filhos, chegamos logo à estrutura da árvore de
processo.
• Processos relacionados que estão cooperando para finalizar
alguma tarefa muitas vezes precisam comunicar-se entre si e
sincronizar as atividades.
• Essa comunicação é chamada de comunicação entre
processos.

Texto baseado em Tanenbaum (2016)


Processos e Gerenciamento do processador

Texto baseado em Tanenbaum (2016)


Implementação de processos (int)
• Para implementar o modelo de processos, o sistema operacional
mantém uma tabela (um arranjo de estruturas) chamada de
tabela de processos, com uma entrada para cada um deles.
• Essas entradas contêm informações importantes sobre o estado
do processo.
• Inclui: contador de programa, ponteiro de pilha, alocação de
memória, estado dos arquivos abertos, informação sobre sua
contabilidade e escalonamento e tudo o mais que deva ser salvo
quando o processo é trocado do estado em execução para pronto
ou bloqueado, de maneira que ele possa ser reiniciado mais tarde
como se nunca tivesse sido parado.

Texto baseado em Tanenbaum (2016)


Implementação de processos (int)

Texto baseado em Tanenbaum (2016)


ESCALONAMENTO
• Quando um computador é multiprogramado, ele frequentemente
tem múltiplos processos ou threads competindo pela CPU ao
mesmo tempo.

• Se apenas uma CPU está disponível, uma escolha precisa ser feita
sobre qual processo será executado em seguida.

• A parte do sistema operacional que faz a escolha é chamada de


escalonador, e o algoritmo que ele usa é chamado de algoritmo
de escalonamento.
PROCESSOS E ESCALONAMENTO
• De acordo com Oliveira et al. (2001), o escalonador é um
módulo do sistema operacional responsável por passar o
processo do estado de “apto” (a receber o processador) para
o estado de execução.
• O sistema operacional é também responsável por selecionar
o processo apto dentre uma fila de processos.
• O sistema operacional executa essa tarefa sempre que
houver um evento de mudança de estado.

Texto baseado em Tanenbaum (2016)


PROCESSOS E ESCALONAMENTO
• Segundo Tanenbaum (2016), na época dos sistemas de lote,
com entrada na forma de uma fita magnética, o algoritmo de
escalonamento era simples: apenas executar o próximo
trabalho da fita.
• Nos sistemas com compartilhamento de tempo, o algoritmo
de escalonamento se tornou mais complexo, pois
geralmente havia vários usuários esperando o serviço.

Texto baseado em Tanenbaum (2016)


PROCESSOS E ESCALONAMENTO
• Em um PC, podemos pensar que há apenas um processo sendo
executado (por exemplo, quando você está trabalhando com uma
planilha de Excel).
• Isso ocorre porque é “natural” pensar que não há outras
programas sendo compilados em segundo plano.
• Entretanto, é comum existir tarefas de segundo plano, como
daemons de correio eletrônico enviando ou recebendo e-mail.

Texto baseado em Tanenbaum (2016)


COMPORTAMENTO DE PROCESSOS
• Quase todos os processos alternam rajadas de computação
com requisições de E/S (disco).
• Geralmente a CPU executa por determinado tempo
ininterruptamente e, depois, é feita uma chamada de
sistema para ler ou escrever em um arquivo.

Texto baseado em Tanenbaum (2007 e 2016)


COMPORTAMENTO DE PROCESSOS
• Quando a chamada de sistema termina, a CPU computa
novamente, até precisar de mais dados ou ter de escrever
mais dados e assim por diante → atividades de E/S.
• Observação: existem atividades consideradas de
computação, como por exemplo, quando a CPU copia dados
de uma memória de vídeo para atualizar a tela. Nesse caso
ela está computando e não fazendo E/S, pois a CPU está
sendo usada.

Texto baseado em Tanenbaum (2007 e 2016)


PROCESSOS E ESCALONAMENTO
limitados por processamento (CPU-bound)

limitados por E/S (I/O-bound)

Texto baseado em Tanenbaum (2016)


COMPORTAMENTO DE PROCESSOS
• Conforme Tanenbaum (2008, p.4):
• “É interessante notar que, à medida que as CPUs se tornam mais
rápidas, os processos tendem a ficar limitados por E/S. Esse efeito
ocorre porque as CPUs estão evoluindo muito mais rapidamente do
que os discos. Como consequência, o escalonamento de processos
limitados por E/S provavelmente se tornará um assunto bem mais
importante no futuro. A ideia básica aqui é que, se um processo
limitado por E/S quiser ser executado, deverá ter uma chance de
fazê-lo rapidamente, para que possa emitir sua requisição ao disco e
mantê-lo ocupado”.

Texto baseado em Tanenbaum (2008 e 2016)


QUANDO OCORRE O ESCALONAMENTO
• Quando um processo termina. escalonamento

• Quando um processo é bloqueado em uma


absolutamente
exigido

operação de E/S.
• Quando um novo processo é criado. escalonamento
pode ocorrer,
• Quando ocorre uma interrupção de E/S. mas não é
absolutamente

• Quando ocorre uma interrupção de relógio.


necessário

Texto baseado em Tanenbaum (2008 e 2016)


ALGORITMOS DE ESCALONAMENTO - OBJETIVOS
• Todos os sistemas
• Imparcialidade – dar a cada processo o mesmo tempo de uso de CPU
• Imposição da política – garantir que a política declarada é executada
• Balanceamento de carga – manter todas as partes do sistema
ocupadas
• Sistemas de lote
• Taxa de saída – maximizar o número de serviços/processos por hora
• Tempo de retorno – minimizar o tempo entre envio e término
• Utilização da CPU – manter a CPU ocupada o máximo de tempo
possível

Texto baseado em Tanenbaum (2008 e 2016)


ALGORITMOS DE ESCALONAMENTO - OBJETIVOS
• Sistemas interativos
• Tempo de resposta – atender rapidamente as requisições
• Proporcionalidade —satisfazer às expectativas dos usuários
• Sistemas de tempo real
• Cumprir os prazos finais – evitar a perda de dados.
• Previsibilidade – evitar degradação da qualidade em sistemas
multimídia

Texto baseado em Tanenbaum (2008 e 2016)


ALGORITMOS DE ESCALONAMENTO
• Administradores de centros de computação corporativos que
executam muitas tarefas de lote, geralmente examinam três
métricas para avaliarem o desempenho de seus sistemas:
• taxa de saída (throughput),
• tempo de retorno (turnaround) e
• utilização da CPU.
• A taxa de saída é o número de jobs por segundo que o sistema
conclui.
• Tempo de retorno é o tempo médio desde o momento em que
um job do lote é submetido até o momento em que ele é
concluído.
• Ele mede o tempo que o usuário médio precisa esperar pela
saída.
Texto baseado em Tanenbaum (2008 e 2016)
ESCALONAMENTO PARA SISTEMAS EM LOTE
• O mais simples de todos os algoritmos de escalonamento é o
não-preemptivo (=preferencial) – primeiro a chegar é o primeiro
a ser atendido (First-come First-served FCFS).
• Nesse algoritmo, os processos recebem tempo de CPU na ordem
em que solicitam.
• Vantagem: listas encadeadas mantém os processos prontos para
serem executados.
• Desvantagem: maior tempo de processamento de processos que
estão na sequência.

Texto baseado em Tanenbaum (2008 e 2016)


ESCALONAMENTO PARA SISTEMAS EM LOTE
• Outro algoritmo não-preemptivo para sistemas de lote é o que
presume que os tempos de execução são conhecidos
antecipadamente, e executa as tarefas mais curtas primeiro
(Shortest Job First - SJF).

Texto baseado em Tanenbaum (2008 e 2016)


ESCALONAMENTO PARA SISTEMAS EM LOTE
• A vantagem do job mais curto no início é que ele diminui o tempo
de chegada dos próximos. Compare:

Texto baseado em Tanenbaum (2008 e 2016)


ESCALONAMENTO PARA SISTEMAS EM LOTE
• Há também o algoritmo do Menor tempo de execução restante
(Shortest Remaining Time Next – SRT).
• Nesse algoritmo, o escalonador sempre escolhe o processo de
menor tempo de execução restante.
• Aqui, novamente, o tempo de execução precisa ser conhecido
antecipadamente.
• Quando chega um novo processo, seu tempo total é comparado
com o tempo restante do processo corrente.
• Se o novo processo precisar de menos tempo para terminar do
que o processo corrente, este será suspenso e a novo processo
será iniciado.
Texto baseado em Tanenbaum (2008 e 2016)
ESCALONAMENTO EM TRÊS NÍVEIS
• Os sistemas de lote permitem escalonar processos em três níveis
diferentes.
• Quando os jobs chegam no sistema, eles são colocados
inicialmente em uma fila de entrada armazenada em disco.
• O escalonador de admissão decide quais jobs ingressarão no
sistema.
• Os outros são mantidos na fila de entrada até que sejam
selecionados (de acordo com o algoritmo).
• O escalonador de admissão está livre para manter alguns jobs na
fila de entrada e admitir jobs que cheguem depois, se for o caso.

Texto baseado em Tanenbaum (2008)


ESCALONAMENTO EM TRÊS NÍVEIS

Texto baseado em Tanenbaum (2008)


ESCALONAMENTO EM TRÊS NÍVEIS
• O segundo nível de escalonamento é decidir quais processos
devem ser mantidos em memória e quais devem ser mantidos no
disco. Isso é chamado de escalonador da memória, pois ele
determina quais processos são mantidos na memória e quais são
mantidos no disco.
• Se o conteúdo da memória principal é trocado com muita
frequência com o do disco, isso implica em um consumo de uma
grande quantidade de largura de banda de disco, diminuindo a
velocidade da E/S de arquivos. Essa alternância entre estar em
memória principal e estar armazenado no disco é denominado de
swapping.

Texto baseado em Tanenbaum (2008)


ESCALONAMENTO EM TRÊS NÍVEIS
• O terceiro nível de escalonamento é a seleção de um dos
processos prontos, armazenados na memória principal, para ser
executado em seguida.
• Frequentemente, ele é chamado de escalonador da CPU.
• Qualquer algoritmo pode ser usado aqui, tanto preemptivo como
não-preemptivo.

Texto baseado em Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Escalonamento round-robin: A cada processo é atribuído um
intervalo de tempo, chamado de quantum, durante o qual ele
pode ser executado. Se o processo estiver em execução no fim do
quantum, é feita a preempção da CPU e esta é alocada a outro
processo.
• Quando o processo consome seu quantum, ele é colocado no fi m
da lista.

Texto baseado em Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Escalonamento por prioridade: ocorre pela necessidade de
considerar fatores externos.
• A ideia é que cada processo recebe uma prioridade e o processo
pronto, com a prioridade mais alta, tem permissão para executar.
• Exemplo: Mesmo em um PC com um único proprietário, pode
haver múltiplos processos, alguns mais importantes do que
outros. Por exemplo, um processo daemon que envia uma
mensagem de correio eletrônico em segundo plano deve receber
uma prioridade mais baixa do que a de um processo que exibe
um filme na tela em tempo real.

Texto baseado em Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Escalonamento por prioridade: ocorre pela necessidade de
considerar fatores externos.
• A ideia é que cada processo recebe uma prioridade e o processo
pronto, com a prioridade mais alta, tem permissão para executar.
• Exemplo: Considere um PC com um único proprietário, com
múltiplos processos acontecendo, alguns mais importantes do
que outros. Por exemplo, um processo daemon que envia uma
mensagem de e-mail em segundo plano deve receber uma
prioridade mais baixa do que a de um processo que exibe um
filme na tela em tempo real.

Texto baseado em Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Muitas vezes é conveniente agrupar processos
em classes de prioridade e utilizar
escalonamento por prioridade entre as classes,
mas escalonamento round-robin dentro de cada
classe.

Texto de Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• O algoritmo de escalonamento é o seguinte:
• enquanto houver processos executáveis na classe de
prioridade 4, executa cada um apenas por um quantum, no
sistema round-robin, e nunca se incomoda com as classes
de prioridade mais baixa.
• Se a classe de prioridade 4 estiver vazia, então executa os
processos de classe 3 no sistema round-robin.
• Se as classes 4 e 3 estiverem vazias, então executa a classe
2 no sistema de round-robin e assim por diante.
• Se as prioridades não forem ajustadas ocasionalmente, as
classes de prioridade mais baixa poderão sofrer “inanição”.
Texto de Tanenbaum (2008)
ESCALONAMENTO EM SISTEMAS INTERATIVOS

Texto baseado em Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Escalonamento por múltiplas filas: configurar classes de
prioridade.
• Os processos de classe mais alta são executados por um
quantum.
• Os processos na classe de prioridade mais alta seguinte são
executados por dois quanta.
• Os processos na próxima classe são executados por quatro
quanta e assim por diante.
• Quando um processo utiliza todos os quanta permitidos, ele é
movido uma classe para baixo.

Texto de Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Processo mais curto em seguida:
• Os processos interativos geralmente seguem o
padrão de esperar comando, executar comando,
esperar comando, executar comando e assim por
diante.

Texto de Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Se considerássemos a execução de cada
comando como uma “tarefa” separada,
poderíamos então minimizar o tempo de
resposta total, executando o processo mais curto
primeiro (Shortest Process Next – SPN).
• O único problema é descobrir qual dos processos
correntemente executáveis é o mais curto.

Texto de Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Escalonamento garantido:
• Se houver n usuários conectados enquanto você estiver
trabalhando, você receberá cerca de 1/n do poder da
CPU.
• De maneira semelhante, em um sistema monousuário
com n processos em execução, todas as tarefas sendo
iguais, cada uma deve receber 1/n dos ciclos da CPU.

Texto de Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Para isso, o sistema deve monitorar quanto da CPU cada
processo recebeu desde a sua criação.
• Então, ele calcula quanto da CPU é atribuído a cada um;
isto é, o tempo desde a criação dividido por n.
• Como a quantidade de tempo da CPU que cada processo
realmente recebeu também é conhecida, basta calcular a
proporção entre o tempo real da CPU consumido e o
tempo da CPU atribuído.

Texto de Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Escalonamento por sorteio:
• A ideia básica é dar aos processos “bilhetes de loteria”
para os vários recursos do sistema, como o tempo de
CPU.
• Quando uma decisão de escalonamento tiver de ser
tomada, um “bilhete de loteria” é sorteado
aleatoriamente e o processo que possui esse bilhete
recebe o recurso.
• Quando aplicado ao escalonamento da CPU, o sistema
pode realizar “sorteios” 50 vezes por segundo, com cada
processo recebendo 20 ms do tempo da CPU.
Texto de Tanenbaum (2008)
ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Escalonamento com compartilhamento imparcial:
• Até aqui, supomos que cada processo é programado para
executar por conta própria, sem considerar quem é seu
proprietário.
• Como resultado, se o usuário 1 inicia 9 processos e o
usuário 2 inicia 1 processo, com os algoritmos round-
robin ou de prioridades iguais, o usuário 1 receberá 90%
da CPU e o usuário 2 receberá apenas 10% dela.

Texto de Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS INTERATIVOS
• Para evitar essa situação, alguns sistemas levam em conta
quem possui um processo, antes de escalonar sua
execução.
• Nesse modelo, cada usuário recebe uma fração da CPU e
o escalonador seleciona os processos de maneira a impor
essa fração. Assim, se foram prometidos 50% da CPU a
dois usuários, cada um receberá isso,
independentemente de quantos processos tiverem
iniciado.

Texto de Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS DE TEMPO
REAL
• Um sistema de tempo real é aquele em que o tempo
desempenha um papel fundamental.
• Exemplos: tocador de mídias físicas, monitoramento de pacientes
em hospital, piloto automático de aeronaves, robôs em fábricas
automatizadas.
• Os sistemas de tempo real geralmente são classificados como de
tempo real rígido, (hard real time) significando que há prazos
finais absolutos a serem cumpridos, e de tempo real relaxado ou
não-rígido (soft real time), significando que perder um prazo final
ocasionalmente é indesejável, mas tolerável.
Texto de Tanenbaum (2008)
ESCALONAMENTO EM SISTEMAS DE TEMPO
REAL
• Geralmente, esses processos têm vida curta e podem ser
executados até o fim em menos de um segundo.
• Quando um evento externo é detectado, o escalonador
agenda a execução dos processos para que os prazos
finais sejam cumpridos.

Texto de Tanenbaum (2008)


ESCALONAMENTO EM SISTEMAS DE TEMPO
REAL
• Os eventos a que um sistema de tempo real responde
podem ser classificados mais especificamente como
periódicos (intervalos regulares) ou aperiódicos
(imprevisível).
• Os algoritmos de escalonamento de tempo real podem
ser estáticos ou dinâmicos. O primeiro toma suas
decisões de escalonamento antes que o sistema comece
a executar. O último toma suas decisões de
escalonamento em tempo de execução.
Texto de Tanenbaum (2008)

Você também pode gostar