You are on page 1of 108

Faculdades So Jos

Tecnologia de Sistemas de Informao

Sistemas Operacionais Prof. Sandro Melo

Sistemas Operacionais

II Gerncia de Tarefas
Introduo 1 Objetivos 2 O conceito de tarefa 3 A gerncia de tarefas 4 Implementao de tarefas 5 Escalonamento de tarefas
2

Sistemas Operacionais
Introduo
Um sistema de computao quase sempre tem mais atividades a executar que o nmero de processadores disponveis.
Assim, necessrio criar mtodos para multiplexar o(s) processador(es) da mquina entre as atividades presentes. As diferentes tarefas tm necessidades distintas de processamento, e nem sempre a capacidade de processamento existente suficiente para atender a todos, estratgias precisam ser definidas para que cada tarefa receba uma quantidade de processamento que atenda suas necessidades. Este mdulo apresenta os principais conceitos, estratgias e mecanismos empregados na gesto do processador e das atividades em execuo em um sistema de computao.
3

Sistemas Operacionais
1 Objetivos
Em um sistema de computao, freqente a necessidade de executar vrias tarefas distintas simultaneamente. Por exemplo: O usurio de um computador pessoal pode estar editando uma imagem, imprimindo um relatrio, ouvindo msica e trazendo da Internet um novo software, tudo ao mesmo tempo. Em um grande servidor de e-mails, centenas de usurios conectados remotamente enviam e recebem e-mails atravs da rede. Um navegador Web precisa buscar os elementos da pgina a exibir, analisar e renderizar o cdigo HTML e o grficos recebidos, animar os elementos da interface e responder aos comandos do usurio.

Sistemas Operacionais
1 Objetivos
No entanto, um processador convencional somente trata um fluxo de instrues de cada vez. At mesmo computadores com vrios processadores (mquinas Dual Pentium ou processadores com tecnologia hyper-threading) tm mais atividades a executar que o nmero de processadores disponveis. Como fazer para atender simultaneamente as mltiplas necessidades de processamento dos usurios? Uma soluo ingnua seria equipar o sistema com um processador para cada tarefa, mas essa soluo ainda invivel econmica e tecnicamente. Outra soluo seria multiplexar o processador entre as vrias tarefas que requerem processamento. Por multiplexar entendemos compartilhar o uso do processador entre as vrias tarefas, de forma a atend-las da melhor maneira possvel.
5

Sistemas Operacionais
1 Objetivos
Os principais conceitos abordados neste captulo compreendem: Como as tarefas so definidas; Quais os estados possveis de uma tarefa; Como e quando o processador muda de uma tarefa para outra; Como ordenar (escalonar) as tarefas para usar o processador.

Sistemas Operacionais
2 O conceito de tarefa
Uma tarefa definida como sendo a execuo de um fluxo seqencial de instrues, construdo para atender uma finalidade especfica: realizar um clculo complexo, edio de um grfico, formatao de um disco, etc. Assim, a execuo de uma seqncia de instrues em linguagem de mquina, normalmente gerada pela compilao de um programa escrito em uma linguagem qualquer, denominada tarefa ou atividade (do ingls task). importante ressaltar as diferenas entre os conceitos de tarefa e de programa.

Sistemas Operacionais
2 O conceito de tarefa
Um programa um conjunto de uma ou mais seqncias de instrues escritas para resolver um problema especfico, constituindo assim uma aplicao ou utilitrio. O programa representa um:
conceito esttico, sem um estado interno definido (que represente uma situao especfica da execuo) sem interaes com outras entidades (o usurio ou outros programas).

Por exemplo, os arquivos C:\Windows\notepad.exe /usr/bin/nano so programas de edio de texto.

Sistemas Operacionais
2 O conceito de tarefa
Uma tarefa a execuo, pelo processador, das seqncias de instrues definidas em um programa para realizar seu objetivo. Trata-se de um:
conceito dinmico, que possui um estado interno bem definido a cada instante (os valores das variveis internas e a posio atual da execuo) e interage com outras entidades: o usurio, os perifricos e/ou outras tarefas.

Tarefas podem ser implementadas de vrias formas, como:


processos (seo 4.3) ou threads (seo 4.4).

Sistemas Operacionais
2 O conceito de tarefa
Fazendo uma analogia clssica, pode-se dizer que: Um programa o equivalente de uma receita de torta dentro de um livro de receitas (um diretrio) guardado em uma estante (um disco) na cozinha (o computador). Essa receita de torta define:
os ingredientes necessrios e o modo de preparo da torta.

Por sua vez, a ao de executar a receita, providenciando os ingredientes e seguindo os passos definidos na receita, a tarefa propriamente dita. A cada momento, a cozinheira (o processador) est seguindo um passo da receita (posio da execuo) e tem uma certa disposio dos ingredientes e utenslios em uso (as variveis internas da tarefa).
10

Sistemas Operacionais
2 O conceito de tarefa
Assim como uma receita de torta pode definir vrias atividades interdependentes para elaborar a torta (preparar a massa, fazer o recheio, decorar, etc), um programa tambm pode definir vrias seqncias de execuo inter-dependentes para atingir seus objetivos. Por exemplo, o programa do navegador Web ilustrado na figura 1 define vrias tarefas que uma janela de navegador deve executar simultaneamente, para que o usurio possa navegar na Internet: 1. Buscar via rede os vrios elementos que compem a pgina Web; 2. Receber, analisar e renderizar o cdigo HTML e os grficos recebidos; 3. Animar os diferentes elementos que compem a interface do navegador; 4. Receber e tratar os eventos do usurio (clicks) nos botes do navegador;
11

Sistemas Operacionais
2 O conceito de tarefa
1. Buscar via rede os vrios elementos que compem a pgina Web; 2. Receber, analisar e renderizar o cdigo HTML e os grficos recebidos; 3. Animar os diferentes elementos que compem a interface do navegador; 4. Receber e tratar os eventos do usurio (clicks) nos botes do navegador;
12

Sistemas Operacionais
2 O conceito de tarefa
Dessa forma, as tarefas definem as atividades a serem realizadas dentro do sistema de computao. Como geralmente h muito mais tarefas a realizar que processadores disponveis, e as tarefas no tm todas a mesma importncia, a gerncia de tarefas tem uma grande importncia dentro de um sistema operacional.

13

Sistemas Operacionais
3 A gerncia de tarefas
3.1 Sistemas mono-tarefa 3.2 Sistemas multi-tarefa 3.3 Sistemas de tempo compartilhado 3.4 Ciclo de vida das tarefas

14

Sistemas Operacionais
3 A gerncia de tarefas
Em um computador, o processador tem executar todas as tarefas submetidas pelos usurios. Essas tarefas geralmente tm comportamento, durao e importncia distintas. Cabe ao sistema operacional organizar as tarefas para execut-las e decidir em que ordem faz-lo. Nesta seo ser estudada a organizao bsica do sistema de gerncia de tarefas e sua evoluo histrica.

15

Sistemas Operacionais
3 A gerncia de tarefas
3.1 Sistemas mono-tarefa Os primeiros sistemas de computao, nos anos 40, executavam apenas uma tarefa de cada vez. Nestes sistemas, cada programa binrio era carregado do disco para a memria e executado at sua concluso. Os dados de entrada da tarefa eram carregados na memria juntamente com a mesma e os resultados obtidos no processamento eram descarregados de volta no disco aps a concluso da tarefa. Todas as operaes de transferncia de cdigo e dados entre o disco e a memria eram coordenados por um operador humano. Esses sistemas primitivos eram usados sobretudo para aplicaes de clculo numrico,muitas vezes com fins militares (problemas de trigonometria, balstica, mecnica dos fluidos, etc).
16

Sistemas Operacionais
3 A gerncia de tarefas
3.1 Sistemas mono-tarefa

17

Sistemas Operacionais
3 A gerncia de tarefas
3.1 Sistemas mono-tarefa

18

Sistemas Operacionais
3 A gerncia de tarefas
3.1 Sistemas mono-tarefa Coma evoluo do hardware, as tarefas de carga e descarga de cdigo entre memria e disco, coordenadas por um operador humano, passaram a se tornar crticas: mais tempo era perdido nesses procedimentos manuais que no processamento da tarefa em si. Para resolver esse problema foi construdo um programa monitor, que era carregado na memria no incio da operao do sistema coma funo de coordenar a execuo dos demais programas.

19

Sistemas Operacionais
3 A gerncia de tarefas
3.1 Sistemas mono-tarefa O programa monitor executava basicamente os seguintes passos sobre uma fila de programas a executar, armazenada no disco: repetir
carregar um programa do disco para a memria carregar os dados de entrada do disco para a memria transferir a execuo para o programa recm carregado aguardar o trmino da execuo do programa escrever os resultados gerados pelo programa no disco

at processar todos os programas da fila Percebe-se claramente que a funo do monitor gerenciar uma fila de programas a executar, mantida no disco. Na medida em que os programas so executados pelo processador, novos programas podem ser inseridos na fila pelo operador do sistema. 20

Sistemas Operacionais
3 A gerncia de tarefas
3.1 Sistemas mono-tarefa Alm de coordenar a execuo dos demais programas, o monitor tambm colocava disposio destes uma biblioteca de funes para simplificar o acesso aos dispositivos de hardware (teclado, leitora de cartes, disco, etc). Assim, o monitor de sistema constitui o precursor dos sistemas operacionais.

21

Sistemas Operacionais
3 A gerncia de tarefas
3.2 Sistemas multi-tarefa O uso do programa monitor agilizou o uso do processador, mas outros problemas persistiam. Como a velocidade de processamento era muito maior que a velocidade de comunicao com os dispositivos de entrada e sada, o processador ficava ocioso durante os perodos de transferncia de informao entre disco e memria. Se a operao de entrada/sada envolvia fitas magnticas, o processador podia ficar vrios minutos parado, esperando. O custo dos computadores era elevado demais (e sua capacidade de processamento muito baixa) para permitir deix-los ociosos por tanto tempo.
22

Sistemas Operacionais
3 A gerncia de tarefas
3.2 Sistemas multi-tarefa A soluo encontrada para resolver esse problema foi permitir ao processador suspender a execuo da tarefa que espera dados externos e passar a executar outra tarefa. Mais tarde, quando os dados de que necessita estiverem disponveis, a tarefa suspensa pode ser retomada no ponto onde parou. Para tal, necessrio ter mais memria (para poder carregar mais de um programa ao mesmo tempo) e definir procedimentos para suspender uma tarefa e retom-la mais tarde. O ato de retirar um recurso de uma tarefa (neste caso o recurso o processador) denominado preempo. Sistemas que implementam esse conceito so chamados sistemas preemptivos.
23

Sistemas Operacionais
3 A gerncia de tarefas
3.2 Sistemas multi-tarefa A adoo da preempo levou a sistemas mais produtivos (e complexos), nos quais vrias tarefas podiam estar em andamento simultaneamente: uma estava ativa e as demais suspensas, esperando dados externos ou outras condies. Sistemas que suportavam essa funcionalidade foram denominados monitores multi-tarefas.

24

Sistemas Operacionais
3 A gerncia de tarefas
3.2 Sistemas multi-tarefa O diagrama de estados da figura 4 ilustra o comportamento de uma tarefa em um sistema desse tipo:

25

Sistemas Operacionais
3 A gerncia de tarefas
3.3 Sistemas de tempo compartilhado Solucionado o problema de evitar a ociosidade do processador, restavam no entanto vrios outros problemas a resolver. Por exemplo, um programa que contm um lao infinito jamais encerra; como fazer para abortar a tarefa, ou ao menos transferir o controle ao monitor para que ele decida o que fazer? Para resolver essa questo, foi introduzido no incio dos anos 60 um novo conceito: o compartilhamento de tempo, ou time-sharing, atravs do sistema CTSS Compatible Time-Sharing System. Nessa soluo, cada atividade que detm o processador recebe um limite de tempo de processamento, denominado quantum. Esgotado seu quantum, a tarefa em execuo perde o processador e volta para uma fila de tarefas prontas, que esto na memria aguardando sua oportunidade de executar.
26

Sistemas Operacionais
3 A gerncia de tarefas
3.3 Sistemas de tempo compartilhado Em um sistema operacional tpico, a implementao da preempo por tempo tem como base as interrupes geradas pelo temporizador programvel do hardware. Esse temporizador normalmente programado para gerar interrupes em intervalos regulares (a cada milissegundo, por exemplo) que so recebidas por um tratador de interrupo (interrupt handler). O diagrama de estados das tarefas deve ser reformulado para incluir a preempo por tempo que implementa a estratgia de tempo compartilhado.

27

Sistemas Operacionais
3 A gerncia de tarefas
3.3 Sistemas de tempo compartilhado A figura 6 apresenta esse novo diagrama.

28

Sistemas Operacionais
3 A gerncia de tarefas
3.4 Ciclo de vida das tarefas O diagrama apresentado na figura 6 conhecido na literatura da rea como diagrama de ciclo de vida das tarefas. Os estados e transies do ciclo de vida tm o seguinte significado: Nova : A tarefa est sendo criada, i.e. seu cdigo est sendo carregado em memria, junto comas bibliotecas necessrias, e as estruturas de dados do ncleo esto sendo atualizadas para permitir sua execuo. Pronta : A tarefa est em memria, pronta para executar (ou para continuar sua execuo), apenas aguardando a disponibilidade do processador. Todas as tarefas prontas so organizadas em uma fila cuja ordem determinada por algoritmos de escalonamento, que sero estudados na seo 5.
29

Sistemas Operacionais
3 A gerncia de tarefas
3.4 Ciclo de vida das tarefas Os estados e transies do ciclo de vida tm o seguinte significado: Executando : O processador est dedicado tarefa, executando suas instrues e fazendo avanar seu estado. Suspensa : A tarefa no pode executar porque depende de dados externos ainda no disponveis (do disco ou da rede, por exemplo), aguarda algum tipo de sincronizao (o fim de outra tarefa ou a liberao de algum recurso compartilhado) ou simplesmente espera o tempo passar (em uma operao sleeping, por exemplo). Terminada : O processamento da tarefa foi encerrado e ela pode ser removida da memria do sistema.

30

Sistemas Operacionais
3 A gerncia de tarefas
3.4 Ciclo de vida das tarefas To importantes quanto os estados das tarefas apresentados na figura 6 so as transies entre esses estados, que so explicadas a seguir: Nova : Esta transio ocorre quando uma nova tarefa admitida no sistema e comea a ser preparada para executar. NovaPronta : ocorre quando a nova tarefa termina de ser carregada em memria, juntamente com suas bibliotecas e dados, estando pronta para executar. ProntaExecutando : esta transio ocorre quando a tarefa escolhida pelo escalonador para ser executada, dentre as demais tarefas prontas. ExecutandoPronta : esta transio ocorre quando se esgota a fatia de tempo destinada tarefa (ou seja, o fim do quantum); como nesse momento a tarefa no precisa de outros recursos alm do processador, ela volta fila de tarefas prontas, para esperar novamente o processador.
31

Sistemas Operacionais
3 A gerncia de tarefas
3.4 Ciclo de vida das tarefas ExecutandoTerminada : ocorre quando a tarefa encerra sua execuo ou abortada em conseqncia de algum erro (acesso invlido memria, instruo ilegal, diviso por zero, etc). Na maioria dos sistemas a tarefa que deseja encerrar avisa o sistema operacional atravs de uma chamada de sistema (no Linux usada a chamada exit). Terminada : Uma tarefa terminada removida da memria e seus registros e estruturas de controle no ncleo so apagadas. ExecutandoSuspensa : caso a tarefa em execuo solicite acesso a um recurso no disponvel, como dados externos ou alguma sincronizao, ela abandona o processador e fica suspensa at o recurso ficar disponvel. SuspensaPronta : quando o recurso solicitado pela tarefa se torna disponvel, ela pode voltar a executar, portanto volta ao estado de pronta.
32

Sistemas Operacionais
4 Implementao de tarefas 4.1 Contextos 4.2 Trocas de contexto 4.3 Processos
4.3.1 Criao de processos

4.4 Threads

33

Sistemas Operacionais
4 Implementao de tarefas
Nesta seo so descritos os problemas relacionados implementao do conceito de tarefa em um sistema operacional multi-tarefas. So descritas as estruturas de dados necessrias para representar uma tarefa e as operaes necessrias para que o processador possa comutar de uma tarefa para outra de forma eficiente e transparente.

34

Sistemas Operacionais
4 Implementao de tarefas 4.1 Contextos
Na seo 2 vimos que uma tarefa possui: um estado interno bem definido, que representa a situao atual da tarefa: a instruo que ela est executando, os valores de suas variveis, os arquivos que ela utiliza, por exemplo. Esse estado se modifica conforme a execuo da tarefa avana. O estado de uma tarefa em um determinado instante caracterizado pelas seguintes informaes:
Registradores do processador: reas de memria usadas pela tarefa. Recursos usados pela tarefa (arquivos abertos, conexes de rede e semforos, entre outros).
35

Sistemas Operacionais
4 Implementao de tarefas 4.1 Contextos
As informaes que permitem definir completamente o estado de uma tarefa so coletivamente denominadas contexto da tarefa. Cada tarefa ativa no sistema possui uma estrutura de dados associada a ela, onde so armazenadas as informaes relativas ao seu contexto e outros dados necessrios sua gerncia. Essa estrutura de dados geralmente chamada de TCB (do ingls Task Control Block). Os TCBs das tarefas so organizados em listas ou vetores (lista de tarefas prontas, lista de tarefas aguardando um pacote de rede, etc)

36

Sistemas Operacionais
4 Implementao de tarefas 4.1 Contextos
Cada TCB funciona como um descritor de tarefa e tipicamente contm as seguintes informaes:
Identificador da tarefa (geralmente um nmero inteiro). Estado da tarefa (nova, pronta, executando, suspensa ou terminada). Valores dos registradores do processador quando o contexto foi salvo pela ltima vez. Lista das reas de memria usadas pela tarefa (exclusivas ou compartilhadas com outras tarefas). Listas de arquivos abertos, conexes de rede e outros recursos usados pela tarefa (exclusivos ou compartilhados com outras tarefas). Informaes de contabilizao (data de incio, tempo de processamento, volume de dados lidos/escritos, etc.). Outras informaes (prioridade, proprietrio, etc.). 37

Sistemas Operacionais
4 Implementao de tarefas 4.2 Trocas de contexto
Para que o processador possa interromper a execuo de uma tarefa e retornar a ela mais tarde, sem corromper seu estado interno, necessrio definir operaes para salvar e restaurar o contexto da tarefa. O ato de salvar os valores do contexto atual em um TCB e possivelmente restaurar o contexto de outra tarefa, previamente salvo em outro TCB, denominado troca de contexto. A implementao da troca de contexto uma operao delicada, envolvendo a manipulao de registradores e flags especficos de cada processador, sendo por essa razo geralmente codificada em linguagem de mquina. No Linux as operaes de troca de contexto para a plataforma Intel x86 esto definidas atravs de diretivas em Assembly no arquivo arch/i386/kernel/process.c dos fontes do ncleo. 38

Sistemas Operacionais
4 Implementao de tarefas
4.2 Trocas de contexto A figura 7 apresenta um diagrama temporal com os principais passos envolvidos em uma troca de contexto.

importante observar que uma troca de contexto pode ser provocada pelo:
fim do quantum atual (atravs de uma interrupo de tempo), por um evento em um perifrico (tambm atravs de uma interrupo) ou pela execuo de uma chamada de sistema pela tarefa corrente (ou seja, por uma interrupo de software).
39

Sistemas Operacionais
4 Implementao de tarefas 4.3 Processos
Alm de seu prprio cdigo, cada tarefa ativa em um sistema de computao necessita de um conjunto de recursos para executar e cumprir seu objetivo. Entre esses recursos esto: as reas de memria usadas pela tarefa para armazenar seu cdigo, dados e pilha, seus arquivos abertos, conexes de rede, etc. O conjunto dos recursos alocados a uma tarefa para sua execuo denominado processo.
40

Sistemas Operacionais
4 Implementao de tarefas 4.3 Processos
Historicamente, os conceitos de tarefa e processo se confundem, sobretudo porque os sistemas operacionais mais antigos, at meados dos anos 80, somente suportavam uma tarefa para cada processo (ou seja, uma atividade associada a cada contexto). Essa viso vem sendo mantida por muitas referncias at os dias de hoje. Por exemplo, os livros [Silberschatz et al., 2001, Tanenbaum, 2003] ainda apresentam processos como equivalentes de tarefas. No entanto, quase todos os sistemas operacionais contemporneos suportam mais de uma tarefa por processo, como o caso do Linux, Windows XP e os UNIX mais recentes.

41

Sistemas Operacionais
4 Implementao de tarefas 4.3 Processos
Os sistemas operacionais convencionais atuais associam por default uma tarefa a cada processo, o que corresponde execuo de um programa seqencial (um nico fluxo de instrues dentro do processo). Caso se deseje associar mais tarefas ao mesmo contexto , cabe ao desenvolvedor escrever o cdigo necessrio para tal. Por essa razo,muitos livros ainda usam de forma equivalente os termos tarefa e processo, o que no corresponde mais realidade. Assim, o processo deve ser visto como uma unidade de contexto, ou seja, um continer de recursos utilizados por uma ou mais tarefas para sua execuo.

42

Sistemas Operacionais
4 Implementao de tarefas 4.3 Processos
Os processos so isolados entre si pelos mecanismos de proteo providos pelo: hardware: isolamento de reas de memria, nveis de operao e chamadas de sistema); pela prpria gerncia de tarefas: que atribui os recursos aos processos (e no s tarefas), impedindo que uma tarefa em execuo no processo pa acesse um recurso atribudo ao processo pb.

43

Sistemas Operacionais
4 Implementao de tarefas 4.3 Processos
A figura 8 ilustra o conceito de processo, visto como um continer de recursos.

44

Sistemas Operacionais
4 Implementao de tarefas 4.3 Processos
O ncleo do sistema operacional mantm descritores de processos, denominados PCBs (Process Control Blocks), para armazenar as informaes referentes aos processos ativos. Cada processo possuium identificado nico no sistema, o PID Process IDentifier. Associando-se tarefas a processos, o descritor (TCB) de cada tarefa pode ser bastante simplificado: para cada tarefa, basta armazenar seu identificador, os registradores do processador e uma referncia ao processo ao qual a tarefa est vinculada.

45

Sistemas Operacionais
4 Implementao de tarefas 4.3 Processos
Disto observa-se tambm que a troca de contexto entre tarefas vinculadas ao mesmo processo muito mais simples e rpida que entre tarefas vinculadas a processos distintos. Pois somente os registradores do processador precisam ser salvos/restaurados (as reas de memria e demais recursos so comuns s duas tarefas).

46

Sistemas Operacionais
4 Implementao de tarefas 4.3 Processos
4.3.1 Criao de processos Durante a vida do sistema, processos so criados e destrudos. Essas operaes so disponibilizadas s aplicaes atravs de chamadas de sistema; Cada sistema operacional tem suas prprias chamadas para a criao e remoo de processos. No caso do UNIX, processos so criados atravs da chamada de sistema fork, que cria uma rplica do processo solicitante: todo o espao de memria do processo replicado, incluindo o cdigo da(s) tarefa(s) associada(s) e os descritores dos arquivos e demais recursos associados ao mesmo.
47

Sistemas Operacionais
4 Implementao de tarefas 4.3 Processos
4.3.1 Criao de processos Na operao de criao de processos do UNIX aparece de maneira bastante clara a noo de hierarquia entre processos. medida em que processos so criados, forma-se uma rvore de processos no sistema, que pode ser usada para gerenciar de forma coletiva os processos ligados mesma aplicao ou mesma sesso de trabalho de um usurio, pois iro constituir uma sub-rvore de processos. Por exemplo, quando um processo encerra, seus filhos so informados sobre isso, e podem decidir se tambm encerram ou se continuam a executar. Por outro, nos sistemas Windows, todos os processos tm o mesmo nvel hierrquico, no havendo distino entre pais e filhos.
48

Sistemas Operacionais
4 Implementao de tarefas 4.3 Processos
4.3.1 Criao de processos Outro aspecto importante a ser considerado em relao a processos diz respeito comunicao. Tarefas associadas ao mesmo processo podem trocar informaes facilmente, pois compartilham as mesmas reas de memria. Todavia, isso no possvel entre tarefas associadas a processos distintos. Para resolver esse problema, o ncleo deve prover s aplicaes chamadas de sistema que permitam a comunicao inter-processos (IPC Inter-Process Communication). Esse tema ser estudado em aulas futuras.
49

Sistemas Operacionais
4 Implementao de tarefas 4.4 Threads
Os primeiros sistemas operacionais suportavam apenas uma tarefa por processo. medida em que as aplicaes se tornavam mais complexas, essa limitao se tornou um claro inconveniente. Por exemplo, um editor de textos geralmente executa tarefas simultneas de edio, formatao, paginao e verificao ortogrfica sobre a mesma massa de dados (o texto sob edio). Da mesma forma, processos que implementam servidores de rede (de arquivos, bancos de dados, etc) devem gerenciar as conexes de vrios usurios simultaneamente, que muitas vezes requisitam as mesmas informaes. Essas demandas evidenciaram a necessidade de suportar mais de uma 50 tarefa operando no mesmo contexto, ou seja, dentro do mesmo processo.

Sistemas Operacionais
4 Implementao de tarefas 4.4 Threads
De forma geral, cada fluxo de execuo do sistema, seja associado a um processo ou no interior do ncleo, denominado thread. Threads executando dentro de um processo so chamados de threads de usurio (user-level threads ou simplesmente user threads). Grosso modo, cada thread de usurio corresponde a uma tarefa a ser executada. Por sua vez, os fluxos de execuo reconhecidos e gerenciados pelo ncleo do sistema operacional so chamados de threads de ncleo (kernel-level threads ou kernel threads).

51

Sistemas Operacionais
4 Implementao de tarefas 4.4 Threads
A necessidade de suportar aplicaes com vrios threads (multithreaded) levou os desenvolvedores de sistemas operacionais a incorporar a gerncia dos threads de usurio ao ncleo do sistema. Para cada thread de usurio foi ento definido um thread correspondente dentro do ncleo, suprimindo com isso a necessidade de bibliotecas de threads. Caso um thread de usurio solicite uma operao bloqueante (leitura de disco ou recepo de pacote de rede, por exemplo), somente seu respectivo thread de ncleo ser suspenso, sem afetar os demais threads. Alm disso, caso o hardware tenha mais de um processador, mais threads da mesma aplicao podem executar ao mesmo tempo, o que no era possvel no modelo anterior.
52

Sistemas Operacionais
4 Implementao de tarefas 4.4 Threads
Essa forma de implementao, denominada Modelo de Threads 1:1 a mais freqente nos sistemas operacionais atuais, incluindo o Windows NT e seus descendentes, alm da maioria dos UNIXes. O modelo de threads 1:1 adequado para a maioria da situaes e atende bem s necessidades das aplicaes interativas e servidores de rede. No entanto, pouco escalvel: a criao de um grande nmero de threads impe um carga significativa ao ncleo do sistema, inviabilizando aplicaes com muitas tarefas (como grandes servidores Web e simulaes de grande porte). Para resolver o problema da escalabilidade, alguns sistemas operacionais implementam um modelo hbrido, que agrega caractersticas dos modelos anteriores.
53

Sistemas Operacionais
4 Implementao de tarefas 4.4 Threads
Nesse novo modelo, uma biblioteca gerencia um conjunto de threads de usurio (dentro do processo), que mapeado em um ou mais threads do ncleo. Essa abordagem hbrida denominada Modelo de Threads N:M, onde N threads de usurio so mapeados em M N threads de ncleo. O modelo N:M implementado pelo Solaris e tambm pelo projeto KSE (Kernel-Scheduled Entities) do FreeBSD

54

Sistemas Operacionais
4 Implementao de tarefas 4.4 Threads
Tabela comparativa

55

Sistemas Operacionais
5 Escalonamento de tarefas 5.1 Objetivos e mtricas 5.2 Escalonamento preemptivo e no-preemptivo 5.3 Escalonamento FCFS (First-Come, First Served) 5.4 Escalonamento SJF (Shortest Job First) 5.5 Escalonamento baseado em prioridades 5.5.1 Envelhecimento de tarefas 5.5.2 Definio de prioridades 5.6 Outros algoritmos de escalonamento 5.7 Um escalonador real
56

Sistemas Operacionais
5 Escalonamento de tarefas
Um dos componentes mais importantes da gerncia de tarefas o escalonador (task scheduler), que decide a ordem de execuo das tarefas prontas. O algoritmo utilizado no escalonador define o comportamento do sistema operacional, permitindo obter sistemas que tratem de forma mais eficiente e rpida as tarefas a executar, que podem ter caractersticas diversas:
aplicaes interativas, processamento de grandes volumes de dados, programas de clculo numrico, etc.

Antes de se definir o algoritmo usado por um escalonador, necessrio ter em mente a natureza das tarefas que o sistema ir executar.
57

Sistemas Operacionais
5 Escalonamento de tarefas
Existem vrios critrios que definem o comportamento de uma tarefa; Uma classificao diz respeito ao seu comportamento temporal das tarefas: Tarefas de tempo real Tarefas interativas Tarefas em lote (batch) Alm dessa classificao, as tarefas tambm podem ser classificadas de acordo com seu comportamento no uso do processador: Tarefas orientadas a processamento (CPU-bound tasks) Tarefas orientadas a entrada/sada (IO-bound tasks)

58

Sistemas Operacionais
5 Escalonamento de tarefas Tarefas de tempo real:
Exigem previsibilidade em seus tempos de resposta aos eventos externos, pois geralmente esto associadas ao controle de sistemas crticos, como processos industriais, tratamento de fluxos multimdia, etc

Tarefas interativas
so tarefas que recebem eventos externos (do usurio ou atravs da rede) e devem respond-los rapidamente, embora sem os requisitos de previsibilidade das tarefas de tempo real. Esta classe de tarefas inclui a maior parte das aplicaes dos sistemas desktop (editores de texto, navegadores Internet, jogos) e dos servidores de rede (e-mail, web, bancos de dados).
59

Sistemas Operacionais
5 Escalonamento de tarefas Tarefas em lote (batch)
so tarefas sem requisitos temporais explcitos, que normalmente executam sem interveno do usurio, como procedimentos de backup, varreduras de anti-vrus, clculos numricos longos, renderizao de animaes, etc.

60

Sistemas Operacionais
5 Escalonamento de tarefas Tarefas orientadas a processamento (CPU-bound tasks)
so tarefas que usam intensivamente o processador na maior parte de sua existncia. Essas tarefas passam a maior parte do tempo nos estados pronta ou executando. A converso de arquivos de vdeo e outros processamentos numricos longos so bons exemplos desta classe de tarefas.

61

Sistemas Operacionais
5 Escalonamento de tarefas Tarefas orientadas a entrada/sada (IO-bound tasks)
so tarefas que dependem muito mais dos dispositivos de entrada/sada que do processador. Essas tarefas despendem boa parte de suas existncias no estado suspenso, aguardando respostas s suas solicitaes de leitura e/ou escrita de dados nos dispositivos de entrada/sada. Exemplos desta classe de tarefas incluem editores, compiladores e servidores de rede.

62

Sistemas Operacionais
5 Escalonamento de tarefas 5.1 Objetivos e mtricas
Ao se definir um algoritmo de escalonamento, deve-se ter em mente seu objetivo. Todavia, os objetivos do escalonador so muitas vezes contraditrios; o desenvolvedor do sistema tem de escolher o que priorizar, em funo do perfil das aplicaes a suportar. Por exemplo, um sistema interativo voltado execuo de jogos exige valores de quantum baixos, para que cada tarefa pronta receba rapidamente o processador (provendo maior interatividade). Todavia, valores pequenos de quantum implicam em uma menor eficincia no uso do processador, conforme visto na seo 4.2.

63

Sistemas Operacionais
5 Escalonamento de tarefas 5.1 Objetivos e mtricas
Vrios critrios podem ser definidos para a avaliao de escalonadores; os mais freqentemente utilizados so: Tempo de execuo ou de retorno (turnaround time, tt) Tempo de espera (waiting time, tw) Tempo de resposta (response time, tr) Justia Eficincia

64

Sistemas Operacionais
5 Escalonamento de tarefas 5.1 Objetivos e mtricas
Tempo de execuo ou de retorno (turnaround time, tt) diz respeito ao tempo total de vida de cada tarefa, ou seja, o tempo decorrido entre a criao da tarefa e seu encerramento, computando todos os tempos de processamento e de espera. uma medida tpica de sistemas em lote.

65

Sistemas Operacionais
5 Escalonamento de tarefas 5.1 Objetivos e mtricas
Tempo de espera (waiting time, tw) o tempo total perdido pela tarefa na fila de tarefas prontas, aguardando o processador. Deve-se observar que esse tempo no inclui os tempos de espera em operaes de entrada/sada (que so inerentes aplicao).

66

Sistemas Operacionais
5 Escalonamento de tarefas 5.1 Objetivos e mtricas
Tempo de resposta (response time, tr) o tempo decorrido entre a chegada de um evento ao sistema e o resultado imediato de seu processamento. Por exemplo, o tempo decorrido entre apertar uma tecla e o caractere correspondente aparecer na tela, em um editor de textos. Essa medida de desempenho tpica de sistemas interativos, como sistemas desktop e de tempo-real; ela depende sobretudo da rapidez no tratamento das interrupes de hardware pelo ncleo e do valor do quantum de tempo, para permitir que as tarefas cheguem mais rpido ao processador quando saem do estado suspenso.
67

Sistemas Operacionais
5 Escalonamento de tarefas 5.1 Objetivos e mtricas
Justia este critrio diz respeito distribuio do processador entre as tarefas prontas: duas tarefas de comportamento similar devem receber tempos de processamento similares e ter duraes de execuo similares.

68

Sistemas Operacionais
5 Escalonamento de tarefas 5.1 Objetivos e mtricas
Eficincia a eficincia indica o grau de utilizao do processador na execuo das tarefas do usurio. Ela depende sobretudo da rapidez da troca de contexto e da quantidade de tarefas orientadas a entrada/sada no sistema tarefas desse tipo geralmente abandonam o processador antes do fim do quantum, gerando assim mais trocas de contexto que as tarefas orientadas a processamento.

69

Sistemas Operacionais
5 Escalonamento de tarefas 5.2 Escalonamento preemptivo e no-preemptivo
O escalonador de um sistema operacional pode ser preemptivo ou nopreemptivo: Sistemas preemptivos : nestes sistemas uma tarefa pode perder o processador caso : termine seu quantum de tempo, execute uma chamada de sistema ou caso ocorra uma interrupo que acorde uma tarefa mais prioritria (que estava suspensa aguardando um evento). A cada interrupo, exceo ou chamada de sistema, o escalonador pode reavaliar todas as tarefas da fila de prontas e decidir se mantm ou substitui a tarefa atualmente em execuo.
70

Sistemas Operacionais
5 Escalonamento de tarefas 5.2 Escalonamento preemptivo e no-preemptivo
Sistemas no-preemptivos : a tarefa em execuo permanece no processador tanto quanto possvel, s abandonando o mesmo caso: termine de executar, solicite uma operao de entrada/sada ou libere explicitamente o processador, voltando fila de tarefas prontas (isso normalmente feito atravs de uma chamada de sistema) Esses sistemas so tambm conhecidos como cooperativos, pois exigem a cooperao das tarefas para que todas possam executar.

71

Sistemas Operacionais
5 Escalonamento de tarefas 5.2 Escalonamento preemptivo e no-preemptivo
A maioria dos sistemas operacionais de uso geral atuais preemptiva. Sistemas mais antigos, como o Windows 3.*, PalmOS 3 e MacOS 8 e 9 operavam de forma cooperativa. Em um sistema preemptivo, normalmente as tarefas s so interrompidas quando o processador est no modo usurio; a thread de ncleo correspondente a cada tarefa no sofre interrupes.

72

Sistemas Operacionais
5 Escalonamento de tarefas 5.2 Escalonamento preemptivo e no-preemptivo
Entretanto, os sistemas mais sofisticados implementam a preempo de tarefas tambm no modo ncleo. Essa funcionalidade importante para sistemas de tempo real, pois permite que uma tarefa de alta prioridade chegue mais rapidamente ao processador quando for reativada. Ncleos de sistema que oferecem essa possibilidade so denominados ncleos preemptivos; Solaris, Linux 2.6 e Windows NT so exemplos de ncleos preemptivos.

73

Sistemas Operacionais
5 Escalonamento de tarefas 5.3 Escalonamento FCFS (First-Come, First Served)
A forma de escalonamento mais elementar consiste em simplesmente atender as tarefas em seqncia, medida em que elas se tornam prontas (ou seja, conforme sua ordem de chegada na fila de tarefas prontas). Esse algoritmo conhecido como FCFS First Come - First Served e tem como principal vantagem sua simplicidade. O escalonamento FCFS no leva em conta a importncia das tarefas nem seu comportamento em relao aos recursos. A adio da preempo por tempo ao escalonamento FCFS d origem a outro algoritmo de escalonamento bastante popular, conhecido como escalonamento por revezamento, ou Round-Robin.

74

Sistemas Operacionais
5 Escalonamento de tarefas 5.3 Escalonamento FCFS (First-Come, First Served)
Para dar um exemplo do funcionamento do algoritmo FCFS, consideremos as tarefas na fila de tarefas prontas, com suas duraes previstas de processamento e datas de ingresso no sistema, descritas na tabela a seguir:

75

Sistemas Operacionais
5 Escalonamento de tarefas 5.3 Escalonamento FCFS (First-Come, First Served)
O diagrama da figura 13 mostra o escalonamento do processador usando o algoritmo FCFS cooperativo (ou seja, sem quantum ou outras int. ). Os quadros sombreados representam o uso do processador (observe que em cada instante apenas uma tarefa ocupa o processador). Os quadros brancos representam as tarefas que j ingressaram no sistema e esto aguardando o processador (tarefas prontas).

76

Sistemas Operacionais
5 Escalonamento de tarefas 5.3 Escalonamento FCFS (First-Come, First Served)
Calculando o tempo mdio de execuo (Tt, a mdia de tt(ti)) e o tempo mdio de espera (Tw, a mdia de tw(ti)) para o algoritmo FCFS, temos:

77

Sistemas Operacionais
5 Escalonamento de tarefas 5.3 Escalonamento FCFS (First-Come, First Served)
Considerando as tarefas definidas na tabela anterior e um quantum tq = 2s, seria obtida a seqncia de escalonamento apresentada na figura 14.

78

Sistemas Operacionais
5 Escalonamento de tarefas 5.3 Escalonamento FCFS (First-Come, First Served)
Na figura 14, importante observar que a execuo das tarefas no obedece uma seqncia bvia como t1 t2 t3 t4 t1 t2 . . ., mas uma seqncia bem mais complexa: t1 t2 t3 t1 t4 t3 . . .. Isso ocorre por causa da ordem das tarefas na fila de tarefas prontas. Por exemplo, a tarefa t1 para de executar e volta fila de tarefas prontas no instante t = 2, antes de t4 ter entrado no sistema (em t = 3). Por isso, t1 retorna ao processador antes de t4 (em t = 6).

79

Sistemas Operacionais
5 Escalonamento de tarefas 5.3 Escalonamento FCFS (First-Come, First Served)
Calculando o tempo mdio de execuo Tt e o tempo mdio de espera Tw para o algoritmo round-robin, temos:

80

Sistemas Operacionais
5 Escalonamento de tarefas 5.3 Escalonamento FCFS (First-Come, First Served)
Observa-se o aumento nos tempos Tt e Tw e tambm mais trocas de contexto que no algoritmo FCFS, o que mostra que o algoritmo roundrobin menos eficiente para a execuo de tarefas em lote. Entretanto, por distribuir melhor o uso do processador entre as tarefas ao longo do tempo, ele pode proporcionar melhores tempos de resposta s aplicaes interativas.

81

Sistemas Operacionais
5 Escalonamento de tarefas 5.4 Escalonamento SJF (Shortest Job First)
O algoritmo de escalonamento que proporciona os menores tempos mdios de execuo e de espera conhecido como menor tarefa primeiro, ou SJF (Shortest Job First). Como o nome indica, ele consiste em atribuir o processador menor (mais curta) tarefa da fila de tarefas prontas. Pode ser provado matematicamente que esta estratgia sempre proporciona os menores tempos mdios de espera. Aplicando-se este algoritmo s tarefas da tabela anterior, obtm-se o escalonamento apresentado na figura 16.

82

Sistemas Operacionais
5 Escalonamento de tarefas 5.4 Escalonamento SJF (Shortest Job First)
Calculando o tempo mdio de execuo Tt e o tempo mdio de espera Tw para o algoritmo SJF, temos:

83

Sistemas Operacionais
5 Escalonamento de tarefas 5.4 Escalonamento SJF (Shortest Job First)
Calculando o tempo mdio de execuo Tt e o tempo mdio de espera Tw para o algoritmo SJF, temos:

84

Sistemas Operacionais
5 Escalonamento de tarefas 5.4 Escalonamento SJF (Shortest Job First)
Deve-se observar que o comportamento expresso na figura 16 corresponde verso cooperativa do algoritmo SJF: o escalonador aguarda a concluso de cada tarefa para decidir quem ir receber o processador. No caso preemptivo, o escalonador deve comparar a durao prevista de cada nova tarefa que ingressa no sistema como tempo restante de processamento das demais tarefas presentes, inclusive aquela que est executando no momento. Essa abordagem denominada por alguns autores de menor tempo restante primeiro (SRTF Short Remaining Time First) [Tanenbaum, 2003].

85

Sistemas Operacionais
5 Escalonamento de tarefas 5.4 Escalonamento SJF (Shortest Job First)
A maior dificuldade no uso do algoritmo SJF consiste em estimar a priori a durao de cada tarefa, ou seja, antes de sua execuo. Com exceo de algumas tarefas em lote ou de tempo real, essa estimativa invivel; por exemplo, como estimar por quanto tempo um editor de textos ir ser utilizado? Por causa desse problema, o algoritmo SJF puro pouco utilizado. No entanto, ao associarmos o algoritmo SJF preempo por tempo, esse algoritmo pode ser de grande valia, sobretudo para tarefas orientadas a entrada/sada.

86

Sistemas Operacionais
5 Escalonamento de tarefas 5.4 Escalonamento SJF (Shortest Job First)
Outro problema associado ao escalonamento SJF a possibilidade de inanio (starvation) das tarefas mais longos. Caso o fluxo de tarefas curtas chegando ao sistema seja elevado, as tarefas mais longas nunca sero escolhidas para receber o processador e vo literalmente morrer de fome, esperando na fila sem poder executar. Esse problema pode ser resolvido atravs de tcnicas de envelhecimento de tarefas, como a apresentada na seo 5.5.1.

87

Sistemas Operacionais
5 Escalonamento de tarefas 5.5 Escalonamento baseado em prioridades
Vrios critrios podem ser usados para ordenar a fila de tarefas prontas e escolher a prxima tarefa a executar; a data de ingresso da tarefa (usada no FCFS) e sua durao prevista (usada no SJF) Inmeros outros critrios podem ser especificados, como: o comportamento da tarefa (em lote, interativa ou de tempo-real), seu proprietrio (administrador, gerente, estagirio), seu grau de interatividade, etc.

88

Sistemas Operacionais
5 Escalonamento de tarefas 5.5 Escalonamento baseado em prioridades
No escalonamento por prioridades, a cada tarefa associada uma prioridade, geralmente na forma de um nmero inteiro. Os valores de prioridade so ento usados para escolher a prxima tarefa a receber o processador, a cada troca de contexto. O algoritmo de escalonamento baseado em prioridades define um modelo genrico de escalonamento, que permite modelar vrias abordagens, entre as quais o FCFS e o SJF.

89

Sistemas Operacionais
5 Escalonamento de tarefas 5.5 Escalonamento baseado em prioridades
Para ilustrar o funcionamento do escalonamento baseado em prioridades, sero usadas as tarefas descritas na tabela a seguir, que usam uma escala de prioridades positiva (ou seja, onde valores maiores indicam uma prioridade maior):

90

Sistemas Operacionais
5 Escalonamento de tarefas 5.5 Escalonamento baseado em prioridades
O diagrama da figura 17 mostra o escalonamento do processador usando o algoritmo baseado em prioridades em modo cooperativo (ou seja, sem quantum ou outras interrupes).

91

Sistemas Operacionais
5 Escalonamento de tarefas 5.5 Escalonamento baseado em prioridades
Calculando o tempo mdio de execuo Tt e o tempo mdio de espera Tw para esse algoritmo, temos:

92

Sistemas Operacionais
5 Escalonamento de tarefas 5.5 Escalonamento baseado em prioridades
Quando uma tarefa de maior prioridade se torna disponvel para execuo, o escalonador pode decidir entregar o processador a ela, trazendo a tarefa atual de volta para a fila de prontas. Nesse caso, temos um escalonamento baseado em prioridades preemptivo, cujo comportamento apresentado na figura 18 (observe que, quando t4 ingressa no sistema, ela recebe o processador e t1 volta a esperar na fila de prontas).

93

Sistemas Operacionais
5 Escalonamento de tarefas 5.5 Escalonamento baseado em prioridades
figura 18 (observe que, quando t4 ingressa no sistema, ela recebe o processador e t1 volta a esperar na fila de prontas).

94

Sistemas Operacionais
5 Escalonamento de tarefas 5.5 Escalonamento baseado em prioridades
Calculando o tempo mdio de execuo Tt e o tempo mdio de espera Tw para esse algoritmo, temos:

95

Sistemas Operacionais
5 Escalonamento de tarefas 5.5.1 Envelhecimento de tarefas
Em sistemas interativos, a intuio associada s prioridade estticas (definidas pelo usurio) a de proporcionalidade na diviso do tempo de processamento. Por exemplo, se um sistema recebe duas tarefas iguais com a mesma prioridade, espera-se que cada uma receba 50% do processador e que ambas terminem juntas. Caso o sistema receba trs tarefas: t1 com prioridade 3, t2 com prioridade 2 e t3 com prioridade 1, espera-se que t1 receba mais o processador que t2, e esta mais que t3 (assumindo uma escala de prioridades positiva). Entretanto, se aplicarmos o algoritmo de prioridades bsico, as tarefas iro executar de forma seqencial, sem distribuio proporcional do processador.
96

Sistemas Operacionais
5 Escalonamento de tarefas 5.5.1 Envelhecimento de tarefas
Esse resultado indesejvel ocorre porque, a cada fim de quantum, sempre a mesma tarefa escolhida para processar: a mais prioritria. Essa situao est ilustrada na figura 19.

97

Sistemas Operacionais
5 Escalonamento de tarefas 5.5.1 Envelhecimento de tarefas
Para garantir a proporcionalidade expressa atravs das prioridades estticas, um fator interno denominado envelhecimento (task aging) deve ser definido. O envelhecimento indica h quanto tempo uma tarefa est aguardando o processador e aumenta sua prioridade proporcionalmente. Com isso, os processos de menor prioridade tm chance de receber o processador periodicamente. Dessa forma, o envelhecimento evita a inanio (starvation) dos processos de menor prioridade.

98

Sistemas Operacionais
5 Escalonamento de tarefas 5.5.2 Definio de prioridades
A definio da prioridade de uma tarefa influenciada por diversos fatores, que podem ser classificados em dois grande grupos: Fatores externos
so informaes providas pelo usurio ou o administrador do sistema, que o escalonador no conseguiria estimar sozinho. Os fatores externos mais comuns so a classe do usurio (administrador, diretor, estagirio) o valor pago pelo uso do sistema (servio bsico, servio premium) e a importncia da tarefa em si (um detector de intruso, um script de reconfigurao emergencial, etc).

Fatores internos
so informaes que podem ser obtidas ou estimadas pelo escalonador, com base em dados disponveis no sistema local. Os fatores internos mais utilizados so a idade da tarefa, sua durao 99 estimada, sua interatividade, seu uso de memria ou de outros recursos, etc.

Sistemas Operacionais
5 Escalonamento de tarefas 5.5.2 Definio de prioridades
Todos esses fatores devem ser combinados para produzir um valor de prioridade para cada tarefa. Todos os fatores externos so expressos por valor inteiro denominado prioridade esttica (ou prioridade de base), que resume a opinio do usurio ou administrador sobre aquela tarefa. Os fatores internos mudam continuamente e devem ser recalculados periodicamente pelo escalonador. A combinao da prioridade esttica com os fatores internos resulta na prioridade dinmica ou final, que usada pelo escalonador para ordenar as tarefas prontas.

100

Sistemas Operacionais
5 Escalonamento de tarefas 5.5.2 Definio de prioridades
Em geral, cada famlia de sistemas operacionais define sua prpria escala de prioridades estticas. Alguns exemplos de escalas comuns so: Windows 2000 e sucessores : processos e threads so associados a classes de prioridade (6 classes para processos e 7 classes para threads); a prioridade final de uma thread depende de sua prioridade de sua prpria classe de prioridade e da classe de prioridade do processo ao qual est associada, assumindo valores entre 0 e 31.

101

Sistemas Operacionais
5 Escalonamento de tarefas 5.5.2 Definio de prioridades
No Linux (ncleo 2.4 e sucessores) h duas escalas de prioridades: Tarefas interativas: a escala de prioridades negativa: a prioridade de cada tarefa vai de -20 (mais importante) a +19 (menos importante) e pode ser ajustada atravs dos comandos nice e renice. Esta escala padronizada em todos os sistemas UNIX. Tarefas de tempo-real: a prioridade de cada tarefa vai de 1 (mais importante) a 99 (menos importante). As tarefas de tempo-real tm precedncia sobre as tarefas interativas e so escalonadas usando polticas distintas. Somente o administrador pode criar tarefas de temporeal.

102

Sistemas Operacionais
5 Escalonamento de tarefas 5.6 Outros algoritmos de escalonamento
Alm dos algoritmos de escalonamento vistos nesta seo, diversos outros podem ser encontrados na literatura e em sistemas de mercado, como: os escalonadores de tempo-real os escalonadores multimdia os escalonadores justos os escalonadores multi-processador

103

Sistemas Operacionais
Exerccios 1. Explique o que , para que serve e o que contm um PCB - Process Control
Block. 2. O que so threads e para que servem? 3. Quais as principais vantagens e desvantagens de threads em relao a processos? 4. Fornea dois exemplos de problemas cuja implementao multi-thread no tem desempenho melhor que a respectiva implementao seqencial. 5. O que significa time sharing e qual a sua importncia em um sistema operacional? 6. Como e com base em que critrios escolhida a durao de um quantum de processamento?

104

Sistemas Operacionais
Exerccios
7. Explique o que escalonamento round-robin, dando um exemplo. 8. Explique o que , para que serve e como funciona a tcnica de aging. 9. Explique os conceitos de inverso e herana de prioridade. 10. Indique se cada uma das transies de estado de tarefas a seguir definidas possvel ou no. Se for possvel, d um exemplo de situao na qual essa transio ocorre. (a) executandopronta (b) executandosuspensa (c) suspensaexecutando (d) suspensaterminada (e) executandoterminada (f) prontasuspensa
105

Sistemas Operacionais
Exerccios
11 - Relacione as afirmaes abaixo aos respectivos estados no ciclo de vida das tarefas (Nova, Pronta, Executando, Suspensa, Terminada): (a) O cdigo da tarefa est sendo carregado. (b) A tarefas so ordenadas por prioridades. (c) A tarefa sai deste estado ao solicitar uma operao de entrada/sada. (d) Os recursos usados pela tarefa so devolvidos ao sistema. (e) A tarefa vai a este estado ao terminar seu quantum. (f) A tarefa s precisa do processador para poder executar. (g) O acesso a um semforo em uso pode levar a tarefa a este estado. (h) A tarefa pode criar novas tarefas. (i) H uma tarefa neste estado para cada processador do sistema. (j) A tarefa aguarda a ocorrncia de um evento externo.
106

Sistemas Operacionais
Exerccios
12 - A tabela a seguir representa um conjunto de tarefas prontas para utilizar o processador. Para as polticas FCFS, SJF e PRIO cooperativas, indique a seqncia de execuo das tarefas, o tempo mdio de execuo (tournaround time) e o tempo mdio de espera (waiting time). Tarefa t1 t2 t3 t4 t5 ingresso 0 0 3 5 6 durao 5 4 5 6 4 prioridade 2 3 5 9 6 Consideraes: as trocas de contexto tm durao nula; para tarefas de mesma prioridade, use FCFS como critrio de desempate; para tarefas de mesma idade, a tarefa ti com menor i prevalece; todas as tarefas so orientadas a processamento; valores maiores de prioridade indicam maior prioridade.
107

Sistemas Operacionais
Exerccios
13. Repita o exerccio anterior para as polticas SJF e PRIO preemptivas. 14. Idem, para a poltica RR (Round-Robin) com tq = 2.

108

You might also like