SlideShare uma empresa Scribd logo
Aula 07 – Escalonamento e Threads
Norton Trevisan Roman
31 de agosto de 2017
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 1 / 37
Escalonamento de Tempo Real
Como escalonar processos peri´odicos de modo que
seus prazos sejam cumpridos?
Antes de mais nada, s˜ao escalon´aveis?
Sim, se
m
i=1
Ci
Pi
≤ 1
onde m ´e o n´umero de eventos peri´odicos, e o evento i
ocorre com per´ıodo Pi e requer Ci segundos de CPU para
ser tratado (Ci /Pi → fra¸c˜ao da CPU usada por i)
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 2 / 37
Escalonamento de Tempo Real
Ex: O sistema abaixo ´e escalon´avel?
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 3 / 37
Escalonamento de Tempo Real
Ex: O sistema abaixo ´e escalon´avel?
10
30
+
15
40
+
5
50
=
485
600
< 1
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 3 / 37
Escalonamento de Tempo Real
Algoritmos para STR podem ser:
Est´aticos: decis˜oes de escalonamento s˜ao tomadas
antes do sistema come¸car a rodar
Necessita de informa¸c˜ao dispon´ıvel previamente sobre tarefas
e prazos
Atribuem antecipadamente uma prioridade fixa a cada
processo, e ent˜ao escalonam
Dinˆamicos: decis˜oes de escalonamento tomadas em
tempo de execu¸c˜ao
N˜ao apresentam prioridades fixas
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 4 / 37
Escalonamento de Tempo Real
Qualquer que seja o algoritmo, pressup˜oe que se
sabe:
Quanto trabalho deve ser feito
Qual seu prazo
E, dependendo do algoritmo...
Que se sabe a frequˆencia na qual cada processo deve
executar
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 5 / 37
Escalonamento de Tempo Real
Rate Monotonic Scheduling
Algoritmo de escalonamento est´atico
´Util para processos preemptivos e peri´odicos
Condi¸c˜oes:
Cada processo deve terminar dentro de seu per´ıodo
Nenhum processo ´e dependente de outro
A cada surto de processamento, um mesmo processo
precisa da mesma quantidade de tempo de CPU
Processos n˜ao peri´odicos n˜ao podem ter prazos
A preemp¸c˜ao ocorre instantaneamente e sem sobrecargas
(aproximadamente)
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 6 / 37
Escalonamento de Tempo Real
Rate Monotonic Scheduling
Atribua a cada processo uma prioridade fixa igual `a
frequˆencia de ocorrˆencia de seu evento de disparo
Ex: Processos que executam a cada 30ms (ou seja, 33
vezes/s) recebem prioridade 33
Em tempo de execu¸c˜ao, execute o processo que
estiver pronto e com maior prioridade
Fazendo a preemp¸c˜ao do processo em execu¸c˜ao se necess´ario
(se esse for de menor prioridade, claro)
O de maior prioridade dentre todos acaba nunca
interrompido em seu surto
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 7 / 37
Escalonamento de Tempo Real
Rate Monotonic Scheduling
Assim que ficar pronto, A pode interromper B ou C
B pode interromper C, mas B n˜ao pode interromper A
C s´o roda se a CPU ficar ociosa
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 8 / 37
Escalonamento de Tempo Real
Earliest Deadline First
Algoritmo para escalonamento dinˆamico
N˜ao requer que os processos sejam peri´odicos
Nem que tenham o mesmo tempo de execu¸c˜ao por surto de
CPU
Se precisar de tempo de CPU, o processo avisa sua
presen¸ca e seu prazo para obter a CPU
O escalonador tem uma lista de processos prontos, em
ordem de vencimento de prazo
Executa sempre o primeiro da lista (menor prazo a vencer)
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 9 / 37
Escalonamento de Tempo Real
Earliest Deadline First
Se um novo processo fica pronto, o escalonador vˆe se seu
prazo vence antes do prazo do processo em execu¸c˜ao
Se sim, faz a preemp¸c˜ao do que estiver executando
Em 0, A tem prioridade, pois reinicia antes (prazo menor)
Em 90, A fica pronto. Tanto A quanto B reiniciam em 120. Como B j´a est´a rodando, fica.
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 10 / 37
Escalonamento de Tempo Real
Compara¸c˜ao
Em 30, h´a disputa entre A2 e C1. Como o prazo de C1 vence em 50 e de A2 em 60, C1 vence.
No caso do RMS, a preemp¸c˜ao de A mata C, que tem seu prazo estourado
Em 90, A fica pronto novamente. Como seu prazo ´e igual a B, e B est´a rodando, ele fica.
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 11 / 37
Threads
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 12 / 37
Processo × Thread
Processo
Um ´unico espa¸co de endere¸co e uma ´unica linha de
controle (thread), representada pelo PC, pilha de
execu¸c˜ao e demais registradores
O Modelo do Processo
Usados para agrupar recursos
Ex: espa¸co de endere¸co com texto, dados e pilha de
execu¸c˜ao do programa; arquivos abertos, processos filhos,
tratadores de sinais, alarmes pendentes etc
Processos diferentes correspondem a tarefas diferentes
(essencialmente n˜ao correlacionadas)
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 13 / 37
Processo × Thread
Threads
S˜ao as entidades escalonadas para execu¸c˜ao na CPU
Um espa¸co de endere¸co e m´ultiplas linhas de controle
Consistem numa linha ou contexto de execu¸c˜ao
O Modelo da Thread
Subtarefas de uma mesma tarefa, cooperando umas com
as outras
Permitem m´ultiplas execu¸c˜oes no mesmo ambiente do
processo – com grande independˆencia entre elas
Threads compartilham um mesmo espa¸co de endere¸co
(sendo menos independentes que processos)
Possuem recursos particulares (PC, registradores, pilha)
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 14 / 37
Processo × Thread
Trˆes processos tradicionais (cada um com uma thread) Um processo com trˆes threads (multithread)
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 15 / 37
Processo × Thread
Cada thread tem sua pr´opria pilha de
execu¸c˜ao (pois chamam rotinas
diferentes), embora compartilhe o
espa¸co de endere¸camento e todos
seus dados
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 16 / 37
Threads – Vantagens
Em muitas aplica¸c˜oes h´a m´ultiplas atividades ao
mesmo tempo
Podemos decompˆo-las em atividades paralelas
Algumas tarefas precisam do compartilhamento do espa¸co
de endere¸camento
CPU-bound e I/O-bound podem se sobrepor, acelerando a
aplica¸c˜ao (fica a dica ao programador)
S˜ao mais r´apidas de criar e destruir que processos
Algumas vezes at´e 100 vezes mais r´apidas
´Uteis em sistemas com m´ultiplas CPUs →
paralelismo real
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 17 / 37
Threads – Exemplos
Processador de texto:
Processos separados n˜ao funcionam – o documento
tem que estar compartilhado
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 18 / 37
Threads – Exemplos
Servidor web:
O despachante lˆe as requisi¸c˜oes de trabalho que chegam da rede, escolhe uma
thread operario ociosa e entrega a requisi¸c˜ao. A thread operario lˆe a cache, caso
n˜ao encontre a informa¸c˜ao buscada, inicializa uma leitura de disco
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 19 / 37
Threads – Cuidados
N˜ao h´a prote¸c˜ao entre threads
Como cada thread pode ter acesso a
qualquer endere¸co de mem´oria dentro do
espa¸co de endere¸camento do processo,
uma thread pode ler, escrever ou apagar
a pilha ou as vari´aveis globais de outra
thread
Raramente um problema, j´a que fazem parte
do mesmo processo, com o mesmo dono
H´a tamb´em a necessidade de
sincroniz´a-las
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 20 / 37
Threads – Estados
Assim como processos, threads tamb´em podem
estar no estado executando, bloqueado ou pronto
Mudan¸cas de estado:
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 21 / 37
Threads – Manipula¸c˜ao
IEEE 1003.1c – pacote Pthreads do POSIX (1995)
Ex:
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 22 / 37
Processos × Threads – Manipula¸c˜ao
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
int pid;
pid = fork();
/* Ocorreu um erro */
if (pid < 0) {
fprintf( stderr, "Erro ao criar processo" );
}
/* Processo filho */
else if (pid == 0) {
execlp ("/bin/ls", "ls", NULL);
}
/* Processo pai */
else if (pid > 0) {
wait (NULL);
printf ("Processo Pai terminou.n");
}
}
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#define NUMERO_DE_THREADS 10
void *ola_mundo(void *tid) {
printf("Ola mundo. Saudacoes da thread %dn",tid);
pthread_exit(NULL);
}
int main(int argc, char *argv[]) {
pthread_t threads[NUMERO_DE_THREADS];
int status, i;
for (i=0; i<NUMERO_DE_THREADS; i++) {
printf("Thread principal. Criando thread %dn",i);
status = pthread_create(&threads[i], NULL,
ola_mundo, (void *)i);
if (status != 0) {
printf("pthread_create retornou o codigo de erro
%dn",status);
exit(-1);
}
}
exit(0);
}
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 23 / 37
Threads em Java
Estendendo a classe
Thread
Criar thread: Escrever
classe que deriva da classe
Thread
Thread possui todo o
c´odigo para criar e
executar threads
Deve-se implementar run
class ThreadSimples extends Thread {
public void run() {
System.out.println("Ola de uma
nova thread!");
}
public static void main(String
args[]) {
Thread thread =
new ThreadSimples();
thread.start();
System.out.println("Ola da
thread original!");
}
}
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 24 / 37
Threads em Java
Implementando
Runnable
Que possui o run para ser
implementado
Vantagem: A classe que
implementa Runnable
pode estender outra classe
class RunnableSimples
implements Runnable {
public void run() {
System.out.println("Ola de um
novo Runnable!");
}
public static void main(
String args[]) {
RunnableSimples runnable =
new RunnableSimples();
Thread thread =
new Thread(runnable);
thread.start();
System.out.println("Ola da
thread original!");
}
}
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 25 / 37
Threads em Java
Joining a
Thread
Permite a uma
thread esperar
que outra
termine
A thread
chamando
thread2.join()
esperar´a
thread2 morrer
class ThreadSimples extends Thread {
public void run() {
System.out.println("Ola de uma nova thread! "
+ super.toString() + ".");
}
public static void main(String args[]) {
ThreadSimples thread = new ThreadSimples();
ThreadSimples thread2 = new ThreadSimples();
thread.start();
thread2.start();
try {
thread2.join(); //bloqueia aqui
}
catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Ola da thread original!");
}
}
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 26 / 37
Threads em Java
Sleeping a Thread
A thread atual fica
bloqueada por um n´umero
de milisegundos
Precisa capturar
InterruptedException
try {
Thread.sleep(1);
}
catch (InterruptedException e) {
e.printStackTrace();
}
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 27 / 37
Threads
Modos de Implementa¸c˜ao (no SO)
No espa¸co do usu´ario
No espa¸co do n´ucleo
Nos dois (h´ıbridas)
Threads no Espa¸co do Usu´ario
Implementadas totalmente no espa¸co do usu´ario
Por meio de uma biblioteca (cria¸c˜ao, exclus˜ao, execu¸c˜ao etc, n˜ao
necessariamente gerenciamento)
Cria¸c˜ao e escalonamento s˜ao realizados sem o conhecimento
do kernel
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 28 / 37
Threads no Espa¸co do Usu´ario
Para o kernel, ´e como
se rodasse um
programa monothread
Gerenciadas como
processos s˜ao gerenciados
no S.O. (por uma tabela)
Necessitam de um
sistema supervisor
Runtime environment
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 29 / 37
Threads no Espa¸co do Usu´ario
Cada processo possui sua
pr´opria tabela de threads
Como uma tabela de processos,
gerenciada pelo runtime
environment
Controla apenas as propriedades
da thread (PC, ponteiro da pilha,
registradores, estado etc)
Quando uma thread vai para o estado de pronto ou bloqueado, a
informa¸c˜ao necess´aria para trazˆe-la de volta ´e armazenada na tabela
de threads
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 30 / 37
Threads no Espa¸co do Usu´ario
Seguem o modelo N para 1:
N threads no processo, mapeadas em uma ´unica thread de
n´ucleo
N˜ao necessariamente permite m´ultiplas threads (no modo
n´ucleo) em paralelo
O n´ucleo do sistema divide o tempo do processador entre as
threads de n´ucleo (ou seja, entre os processos)
Uma aplica¸c˜ao com 100 threads de usu´ario pode vir a receber o
mesmo tempo de processador que outra aplica¸c˜ao com apenas uma
thread → divis˜ao injusta
Usado, dentre outras coisas quando n˜ao h´a suporte a
multithread no n´ucleo
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 31 / 37
Threads no Espa¸co do Usu´ario
N para 1:
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 32 / 37
Threads no Espa¸co do Usu´ario
O bloqueamento local (espera de outra thread, n˜ao
E/S) ´e feito por um procedimento do runtime
environment
Chamado pela pr´opria thread
Cuida de verificar se a thread pode ser parada, de armazenar
registradores na tabela de threads, e ver que outra thread
pode rodar
N˜ao h´a desvio de controle para o n´ucleo
Mais r´apido que a alternˆancia de processos
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 33 / 37
Threads no Espa¸co do Usu´ario
Outras vantagens:
Podem ser implementadas mesmo quando o S.O. n˜ao
suporta threads
Permite que cada processo possa ter seu pr´oprio algoritmo
de escalonamento (que seja ideal para o problema abordado)
Modelo ainda usado em jogos e simula¸c˜oes
Problemas:
Processo inteiro ´e bloqueado se uma thread realizar uma
chamada bloqueante ao sistema
Vai contra o uso principal delas, que ´e fazer alguma outra coisa
enquanto espera por E/S
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 34 / 37
Threads no Espa¸co do Usu´ario
Problemas:
Em um ´unico processo, n˜ao h´a interrup¸c˜oes de rel´ogio (que
causariam uma troca de processo e n˜ao de thread)
´E imposs´ıvel interromper uma thread para escalonar
Assim, quando o escalonador retorna o processo, a thread
que estava rodando continua a rodar
N˜ao h´a possibilidade de escolha
Se uma thread executa, nenhuma outra naquele processo
executar´a, a menos que a primeira abra m˜ao da CPU
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 35 / 37
Threads no Espa¸co do Usu´ario
Escalonamento:
O n´ucleo escolhe um
processo e passa o
controle a ele
O escalonador do processo
(uma thread) decide qual
thread executar (se ele
estiver rodando)
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 36 / 37
Threads no Espa¸co do Usu´ario
Escalonamento:
O n´ucleo escolhe um
processo e passa o
controle a ele
O escalonador do processo
(uma thread) decide qual
thread executar (se ele
estiver rodando)
A sequˆencia do meio ´e imposs´ıvel porque,
ap´os interromper A (e consequentemente
A1), o escalonador, ao voltar a A, continua
rodando A1 (ele desconhece as threads e
A1 n˜ao “largou o osso” ainda).
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 36 / 37
Threads no Espa¸co do Usu´ario
Escalonamento:
Como n˜ao h´a interrup¸c˜oes
do clock para interromper
threads, a thread continua
enquanto quiser
Ao fim do quantum, o
n´ucleo seleciona outro
processo
Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 37 / 37

Mais conteúdo relacionado

Mais procurados

(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01
Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 09
(ACH2044) Sistemas Operacionais - Aula 09(ACH2044) Sistemas Operacionais - Aula 09
(ACH2044) Sistemas Operacionais - Aula 09
Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 12
(ACH2044) Sistemas Operacionais - Aula 12(ACH2044) Sistemas Operacionais - Aula 12
(ACH2044) Sistemas Operacionais - Aula 12
Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08
Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 18
(ACH2044) Sistemas Operacionais - Aula 18(ACH2044) Sistemas Operacionais - Aula 18
(ACH2044) Sistemas Operacionais - Aula 18
Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 20
(ACH2044) Sistemas Operacionais - Aula 20(ACH2044) Sistemas Operacionais - Aula 20
(ACH2044) Sistemas Operacionais - Aula 20
Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 13
(ACH2044) Sistemas Operacionais - Aula 13(ACH2044) Sistemas Operacionais - Aula 13
(ACH2044) Sistemas Operacionais - Aula 13
Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 21
(ACH2044) Sistemas Operacionais - Aula 21(ACH2044) Sistemas Operacionais - Aula 21
(ACH2044) Sistemas Operacionais - Aula 21
Norton Trevisan Roman
 
(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17
Norton Trevisan Roman
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
Alexandre Duarte
 
(ACH2044) Sistemas Operacionais - Aula 19
(ACH2044) Sistemas Operacionais - Aula 19(ACH2044) Sistemas Operacionais - Aula 19
(ACH2044) Sistemas Operacionais - Aula 19
Norton Trevisan Roman
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
Cristiano Pires Martins
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
Evandro Júnior
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
Pedro De Almeida
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
Silvino Neto
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
Alexandre Duarte
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
Faculdade Mater Christi
 
3 escalonamento processos
3 escalonamento processos3 escalonamento processos
3 escalonamento processos
frteles
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
Alexandre Duarte
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
Alexandre Duarte
 

Mais procurados (20)

(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01(ACH2044) Sistemas Operacionais - Aula 01
(ACH2044) Sistemas Operacionais - Aula 01
 
(ACH2044) Sistemas Operacionais - Aula 09
(ACH2044) Sistemas Operacionais - Aula 09(ACH2044) Sistemas Operacionais - Aula 09
(ACH2044) Sistemas Operacionais - Aula 09
 
(ACH2044) Sistemas Operacionais - Aula 12
(ACH2044) Sistemas Operacionais - Aula 12(ACH2044) Sistemas Operacionais - Aula 12
(ACH2044) Sistemas Operacionais - Aula 12
 
(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08(ACH2044) Sistemas Operacionais - Aula 08
(ACH2044) Sistemas Operacionais - Aula 08
 
(ACH2044) Sistemas Operacionais - Aula 18
(ACH2044) Sistemas Operacionais - Aula 18(ACH2044) Sistemas Operacionais - Aula 18
(ACH2044) Sistemas Operacionais - Aula 18
 
(ACH2044) Sistemas Operacionais - Aula 20
(ACH2044) Sistemas Operacionais - Aula 20(ACH2044) Sistemas Operacionais - Aula 20
(ACH2044) Sistemas Operacionais - Aula 20
 
(ACH2044) Sistemas Operacionais - Aula 13
(ACH2044) Sistemas Operacionais - Aula 13(ACH2044) Sistemas Operacionais - Aula 13
(ACH2044) Sistemas Operacionais - Aula 13
 
(ACH2044) Sistemas Operacionais - Aula 21
(ACH2044) Sistemas Operacionais - Aula 21(ACH2044) Sistemas Operacionais - Aula 21
(ACH2044) Sistemas Operacionais - Aula 21
 
(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
 
(ACH2044) Sistemas Operacionais - Aula 19
(ACH2044) Sistemas Operacionais - Aula 19(ACH2044) Sistemas Operacionais - Aula 19
(ACH2044) Sistemas Operacionais - Aula 19
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
3 escalonamento processos
3 escalonamento processos3 escalonamento processos
3 escalonamento processos
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 

Semelhante a (ACH2044) Sistemas Operacionais - Aula 07

Prova1d
Prova1dProva1d
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdf
ssuser1d8ddd
 
Processos
ProcessosProcessos
Parte1e
Parte1eParte1e
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Aula3 escalonamento
Aula3 escalonamentoAula3 escalonamento
Aula3 escalonamento
Bruno Rick
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
Leinylson Fontinele
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
Daniel Arndt Alves
 
Process aware interrupt scheduling and accounting
Process aware interrupt scheduling and accountingProcess aware interrupt scheduling and accounting
Process aware interrupt scheduling and accounting
Gustavo Carvalho
 
Apresentacao Aula04 So
Apresentacao Aula04 SoApresentacao Aula04 So
Apresentacao Aula04 So
Humberto Bruno Pontes Silva
 
Aula3so
Aula3soAula3so
Aula3so
Biia Bravo
 
Sistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaSistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação Paralela
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
Adriano Teixeira de Souza
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
thomasdacosta
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
Universidade Zambeze
 
Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptx
cassamo2
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
TIAGO SAMPOGNA DE MORAES
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round Robin
Marcos Castro
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
ssuserd654cb1
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
ssuserd654cb1
 

Semelhante a (ACH2044) Sistemas Operacionais - Aula 07 (20)

Prova1d
Prova1dProva1d
Prova1d
 
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdf
 
Processos
ProcessosProcessos
Processos
 
Parte1e
Parte1eParte1e
Parte1e
 
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Analise Algoritmos
 
Aula3 escalonamento
Aula3 escalonamentoAula3 escalonamento
Aula3 escalonamento
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Process aware interrupt scheduling and accounting
Process aware interrupt scheduling and accountingProcess aware interrupt scheduling and accounting
Process aware interrupt scheduling and accounting
 
Apresentacao Aula04 So
Apresentacao Aula04 SoApresentacao Aula04 So
Apresentacao Aula04 So
 
Aula3so
Aula3soAula3so
Aula3so
 
Sistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaSistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação Paralela
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
 
Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptx
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round Robin
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (20)

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 

Último

Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
WelberMerlinCardoso
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
Pastor Robson Colaço
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
YeniferGarcia36
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
cmeioctaciliabetesch
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
SILVIAREGINANAZARECA
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
soaresdesouzaamanda8
 
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdfUFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
Manuais Formação
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
TomasSousa7
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
ValdineyRodriguesBez1
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
todorokillmepls
 
karl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vidakarl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vida
KleginaldoPaz2
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
Érika Rufo
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
MarcosPaulo777883
 

Último (20)

Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
 
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdfUFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
UFCD_10145_Enquadramento do setor farmacêutico_indice.pdf
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
 
karl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vidakarl marx biografia resumida com suas obras e história de vida
karl marx biografia resumida com suas obras e história de vida
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
Aula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sonsAula 1 do livro de Ciências do aluno - sons
Aula 1 do livro de Ciências do aluno - sons
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
 

(ACH2044) Sistemas Operacionais - Aula 07

  • 1. Aula 07 – Escalonamento e Threads Norton Trevisan Roman 31 de agosto de 2017 Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 1 / 37
  • 2. Escalonamento de Tempo Real Como escalonar processos peri´odicos de modo que seus prazos sejam cumpridos? Antes de mais nada, s˜ao escalon´aveis? Sim, se m i=1 Ci Pi ≤ 1 onde m ´e o n´umero de eventos peri´odicos, e o evento i ocorre com per´ıodo Pi e requer Ci segundos de CPU para ser tratado (Ci /Pi → fra¸c˜ao da CPU usada por i) Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 2 / 37
  • 3. Escalonamento de Tempo Real Ex: O sistema abaixo ´e escalon´avel? Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 3 / 37
  • 4. Escalonamento de Tempo Real Ex: O sistema abaixo ´e escalon´avel? 10 30 + 15 40 + 5 50 = 485 600 < 1 Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 3 / 37
  • 5. Escalonamento de Tempo Real Algoritmos para STR podem ser: Est´aticos: decis˜oes de escalonamento s˜ao tomadas antes do sistema come¸car a rodar Necessita de informa¸c˜ao dispon´ıvel previamente sobre tarefas e prazos Atribuem antecipadamente uma prioridade fixa a cada processo, e ent˜ao escalonam Dinˆamicos: decis˜oes de escalonamento tomadas em tempo de execu¸c˜ao N˜ao apresentam prioridades fixas Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 4 / 37
  • 6. Escalonamento de Tempo Real Qualquer que seja o algoritmo, pressup˜oe que se sabe: Quanto trabalho deve ser feito Qual seu prazo E, dependendo do algoritmo... Que se sabe a frequˆencia na qual cada processo deve executar Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 5 / 37
  • 7. Escalonamento de Tempo Real Rate Monotonic Scheduling Algoritmo de escalonamento est´atico ´Util para processos preemptivos e peri´odicos Condi¸c˜oes: Cada processo deve terminar dentro de seu per´ıodo Nenhum processo ´e dependente de outro A cada surto de processamento, um mesmo processo precisa da mesma quantidade de tempo de CPU Processos n˜ao peri´odicos n˜ao podem ter prazos A preemp¸c˜ao ocorre instantaneamente e sem sobrecargas (aproximadamente) Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 6 / 37
  • 8. Escalonamento de Tempo Real Rate Monotonic Scheduling Atribua a cada processo uma prioridade fixa igual `a frequˆencia de ocorrˆencia de seu evento de disparo Ex: Processos que executam a cada 30ms (ou seja, 33 vezes/s) recebem prioridade 33 Em tempo de execu¸c˜ao, execute o processo que estiver pronto e com maior prioridade Fazendo a preemp¸c˜ao do processo em execu¸c˜ao se necess´ario (se esse for de menor prioridade, claro) O de maior prioridade dentre todos acaba nunca interrompido em seu surto Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 7 / 37
  • 9. Escalonamento de Tempo Real Rate Monotonic Scheduling Assim que ficar pronto, A pode interromper B ou C B pode interromper C, mas B n˜ao pode interromper A C s´o roda se a CPU ficar ociosa Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 8 / 37
  • 10. Escalonamento de Tempo Real Earliest Deadline First Algoritmo para escalonamento dinˆamico N˜ao requer que os processos sejam peri´odicos Nem que tenham o mesmo tempo de execu¸c˜ao por surto de CPU Se precisar de tempo de CPU, o processo avisa sua presen¸ca e seu prazo para obter a CPU O escalonador tem uma lista de processos prontos, em ordem de vencimento de prazo Executa sempre o primeiro da lista (menor prazo a vencer) Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 9 / 37
  • 11. Escalonamento de Tempo Real Earliest Deadline First Se um novo processo fica pronto, o escalonador vˆe se seu prazo vence antes do prazo do processo em execu¸c˜ao Se sim, faz a preemp¸c˜ao do que estiver executando Em 0, A tem prioridade, pois reinicia antes (prazo menor) Em 90, A fica pronto. Tanto A quanto B reiniciam em 120. Como B j´a est´a rodando, fica. Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 10 / 37
  • 12. Escalonamento de Tempo Real Compara¸c˜ao Em 30, h´a disputa entre A2 e C1. Como o prazo de C1 vence em 50 e de A2 em 60, C1 vence. No caso do RMS, a preemp¸c˜ao de A mata C, que tem seu prazo estourado Em 90, A fica pronto novamente. Como seu prazo ´e igual a B, e B est´a rodando, ele fica. Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 11 / 37
  • 13. Threads Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 12 / 37
  • 14. Processo × Thread Processo Um ´unico espa¸co de endere¸co e uma ´unica linha de controle (thread), representada pelo PC, pilha de execu¸c˜ao e demais registradores O Modelo do Processo Usados para agrupar recursos Ex: espa¸co de endere¸co com texto, dados e pilha de execu¸c˜ao do programa; arquivos abertos, processos filhos, tratadores de sinais, alarmes pendentes etc Processos diferentes correspondem a tarefas diferentes (essencialmente n˜ao correlacionadas) Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 13 / 37
  • 15. Processo × Thread Threads S˜ao as entidades escalonadas para execu¸c˜ao na CPU Um espa¸co de endere¸co e m´ultiplas linhas de controle Consistem numa linha ou contexto de execu¸c˜ao O Modelo da Thread Subtarefas de uma mesma tarefa, cooperando umas com as outras Permitem m´ultiplas execu¸c˜oes no mesmo ambiente do processo – com grande independˆencia entre elas Threads compartilham um mesmo espa¸co de endere¸co (sendo menos independentes que processos) Possuem recursos particulares (PC, registradores, pilha) Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 14 / 37
  • 16. Processo × Thread Trˆes processos tradicionais (cada um com uma thread) Um processo com trˆes threads (multithread) Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 15 / 37
  • 17. Processo × Thread Cada thread tem sua pr´opria pilha de execu¸c˜ao (pois chamam rotinas diferentes), embora compartilhe o espa¸co de endere¸camento e todos seus dados Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 16 / 37
  • 18. Threads – Vantagens Em muitas aplica¸c˜oes h´a m´ultiplas atividades ao mesmo tempo Podemos decompˆo-las em atividades paralelas Algumas tarefas precisam do compartilhamento do espa¸co de endere¸camento CPU-bound e I/O-bound podem se sobrepor, acelerando a aplica¸c˜ao (fica a dica ao programador) S˜ao mais r´apidas de criar e destruir que processos Algumas vezes at´e 100 vezes mais r´apidas ´Uteis em sistemas com m´ultiplas CPUs → paralelismo real Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 17 / 37
  • 19. Threads – Exemplos Processador de texto: Processos separados n˜ao funcionam – o documento tem que estar compartilhado Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 18 / 37
  • 20. Threads – Exemplos Servidor web: O despachante lˆe as requisi¸c˜oes de trabalho que chegam da rede, escolhe uma thread operario ociosa e entrega a requisi¸c˜ao. A thread operario lˆe a cache, caso n˜ao encontre a informa¸c˜ao buscada, inicializa uma leitura de disco Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 19 / 37
  • 21. Threads – Cuidados N˜ao h´a prote¸c˜ao entre threads Como cada thread pode ter acesso a qualquer endere¸co de mem´oria dentro do espa¸co de endere¸camento do processo, uma thread pode ler, escrever ou apagar a pilha ou as vari´aveis globais de outra thread Raramente um problema, j´a que fazem parte do mesmo processo, com o mesmo dono H´a tamb´em a necessidade de sincroniz´a-las Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 20 / 37
  • 22. Threads – Estados Assim como processos, threads tamb´em podem estar no estado executando, bloqueado ou pronto Mudan¸cas de estado: Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 21 / 37
  • 23. Threads – Manipula¸c˜ao IEEE 1003.1c – pacote Pthreads do POSIX (1995) Ex: Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 22 / 37
  • 24. Processos × Threads – Manipula¸c˜ao #include <stdio.h> #include <unistd.h> int main(int argc, char *argv[]) { int pid; pid = fork(); /* Ocorreu um erro */ if (pid < 0) { fprintf( stderr, "Erro ao criar processo" ); } /* Processo filho */ else if (pid == 0) { execlp ("/bin/ls", "ls", NULL); } /* Processo pai */ else if (pid > 0) { wait (NULL); printf ("Processo Pai terminou.n"); } } #include <pthread.h> #include <stdio.h> #include <stdlib.h> #define NUMERO_DE_THREADS 10 void *ola_mundo(void *tid) { printf("Ola mundo. Saudacoes da thread %dn",tid); pthread_exit(NULL); } int main(int argc, char *argv[]) { pthread_t threads[NUMERO_DE_THREADS]; int status, i; for (i=0; i<NUMERO_DE_THREADS; i++) { printf("Thread principal. Criando thread %dn",i); status = pthread_create(&threads[i], NULL, ola_mundo, (void *)i); if (status != 0) { printf("pthread_create retornou o codigo de erro %dn",status); exit(-1); } } exit(0); } Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 23 / 37
  • 25. Threads em Java Estendendo a classe Thread Criar thread: Escrever classe que deriva da classe Thread Thread possui todo o c´odigo para criar e executar threads Deve-se implementar run class ThreadSimples extends Thread { public void run() { System.out.println("Ola de uma nova thread!"); } public static void main(String args[]) { Thread thread = new ThreadSimples(); thread.start(); System.out.println("Ola da thread original!"); } } Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 24 / 37
  • 26. Threads em Java Implementando Runnable Que possui o run para ser implementado Vantagem: A classe que implementa Runnable pode estender outra classe class RunnableSimples implements Runnable { public void run() { System.out.println("Ola de um novo Runnable!"); } public static void main( String args[]) { RunnableSimples runnable = new RunnableSimples(); Thread thread = new Thread(runnable); thread.start(); System.out.println("Ola da thread original!"); } } Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 25 / 37
  • 27. Threads em Java Joining a Thread Permite a uma thread esperar que outra termine A thread chamando thread2.join() esperar´a thread2 morrer class ThreadSimples extends Thread { public void run() { System.out.println("Ola de uma nova thread! " + super.toString() + "."); } public static void main(String args[]) { ThreadSimples thread = new ThreadSimples(); ThreadSimples thread2 = new ThreadSimples(); thread.start(); thread2.start(); try { thread2.join(); //bloqueia aqui } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Ola da thread original!"); } } Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 26 / 37
  • 28. Threads em Java Sleeping a Thread A thread atual fica bloqueada por um n´umero de milisegundos Precisa capturar InterruptedException try { Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 27 / 37
  • 29. Threads Modos de Implementa¸c˜ao (no SO) No espa¸co do usu´ario No espa¸co do n´ucleo Nos dois (h´ıbridas) Threads no Espa¸co do Usu´ario Implementadas totalmente no espa¸co do usu´ario Por meio de uma biblioteca (cria¸c˜ao, exclus˜ao, execu¸c˜ao etc, n˜ao necessariamente gerenciamento) Cria¸c˜ao e escalonamento s˜ao realizados sem o conhecimento do kernel Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 28 / 37
  • 30. Threads no Espa¸co do Usu´ario Para o kernel, ´e como se rodasse um programa monothread Gerenciadas como processos s˜ao gerenciados no S.O. (por uma tabela) Necessitam de um sistema supervisor Runtime environment Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 29 / 37
  • 31. Threads no Espa¸co do Usu´ario Cada processo possui sua pr´opria tabela de threads Como uma tabela de processos, gerenciada pelo runtime environment Controla apenas as propriedades da thread (PC, ponteiro da pilha, registradores, estado etc) Quando uma thread vai para o estado de pronto ou bloqueado, a informa¸c˜ao necess´aria para trazˆe-la de volta ´e armazenada na tabela de threads Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 30 / 37
  • 32. Threads no Espa¸co do Usu´ario Seguem o modelo N para 1: N threads no processo, mapeadas em uma ´unica thread de n´ucleo N˜ao necessariamente permite m´ultiplas threads (no modo n´ucleo) em paralelo O n´ucleo do sistema divide o tempo do processador entre as threads de n´ucleo (ou seja, entre os processos) Uma aplica¸c˜ao com 100 threads de usu´ario pode vir a receber o mesmo tempo de processador que outra aplica¸c˜ao com apenas uma thread → divis˜ao injusta Usado, dentre outras coisas quando n˜ao h´a suporte a multithread no n´ucleo Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 31 / 37
  • 33. Threads no Espa¸co do Usu´ario N para 1: Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 32 / 37
  • 34. Threads no Espa¸co do Usu´ario O bloqueamento local (espera de outra thread, n˜ao E/S) ´e feito por um procedimento do runtime environment Chamado pela pr´opria thread Cuida de verificar se a thread pode ser parada, de armazenar registradores na tabela de threads, e ver que outra thread pode rodar N˜ao h´a desvio de controle para o n´ucleo Mais r´apido que a alternˆancia de processos Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 33 / 37
  • 35. Threads no Espa¸co do Usu´ario Outras vantagens: Podem ser implementadas mesmo quando o S.O. n˜ao suporta threads Permite que cada processo possa ter seu pr´oprio algoritmo de escalonamento (que seja ideal para o problema abordado) Modelo ainda usado em jogos e simula¸c˜oes Problemas: Processo inteiro ´e bloqueado se uma thread realizar uma chamada bloqueante ao sistema Vai contra o uso principal delas, que ´e fazer alguma outra coisa enquanto espera por E/S Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 34 / 37
  • 36. Threads no Espa¸co do Usu´ario Problemas: Em um ´unico processo, n˜ao h´a interrup¸c˜oes de rel´ogio (que causariam uma troca de processo e n˜ao de thread) ´E imposs´ıvel interromper uma thread para escalonar Assim, quando o escalonador retorna o processo, a thread que estava rodando continua a rodar N˜ao h´a possibilidade de escolha Se uma thread executa, nenhuma outra naquele processo executar´a, a menos que a primeira abra m˜ao da CPU Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 35 / 37
  • 37. Threads no Espa¸co do Usu´ario Escalonamento: O n´ucleo escolhe um processo e passa o controle a ele O escalonador do processo (uma thread) decide qual thread executar (se ele estiver rodando) Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 36 / 37
  • 38. Threads no Espa¸co do Usu´ario Escalonamento: O n´ucleo escolhe um processo e passa o controle a ele O escalonador do processo (uma thread) decide qual thread executar (se ele estiver rodando) A sequˆencia do meio ´e imposs´ıvel porque, ap´os interromper A (e consequentemente A1), o escalonador, ao voltar a A, continua rodando A1 (ele desconhece as threads e A1 n˜ao “largou o osso” ainda). Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 36 / 37
  • 39. Threads no Espa¸co do Usu´ario Escalonamento: Como n˜ao h´a interrup¸c˜oes do clock para interromper threads, a thread continua enquanto quiser Ao fim do quantum, o n´ucleo seleciona outro processo Norton Trevisan Roman Aula 07 – Escalonamento e Threads 31 de agosto de 2017 37 / 37