{"id":47,"date":"2014-09-17T02:45:00","date_gmt":"2014-09-17T02:45:00","guid":{"rendered":"https:\/\/www.uniessa.hiperlogic.com.br\/?p=47"},"modified":"2014-09-17T02:45:00","modified_gmt":"2014-09-17T02:45:00","slug":"escalonadores","status":"publish","type":"post","link":"https:\/\/www.uniessa.hiperlogic.com.br\/?p=47","title":{"rendered":"Escalonadores"},"content":{"rendered":"<p class=\"p1\"><strong>Ger\u00eancia do Processador<\/strong><\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>O escalonador \u00e9 a entidade do SO respons\u00e1vel por selecionar um processo apto para executar no processador<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>O objetivo \u00e9 dividir o tempo do processador de forma justa<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>T\u00edpicos de sistemas multiprogramados<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>Duas partes:<\/p>\n<p class=\"p3\"><span class=\"s2\">\uf0a8 \u00a0 \u00a0\u00a0<\/span>Escalonador: pol\u00edtica de sele\u00e7\u00e3o<\/p>\n<p class=\"p3\"><span class=\"s2\">\uf0a8 \u00a0 \u00a0\u00a0<\/span><i>Dispatcher<\/i>: efetua a troca de contexto<\/p>\n<p class=\"p3\">\n<p class=\"p1\"><strong>Objetivos do Escalonamento<\/strong><\/p>\n<p class=\"p2\">Maximizar a utiliza\u00e7\u00e3o do processador Maximizar a produ\u00e7\u00e3o do sistema<\/p>\n<p class=\"p3\"><span class=\"s1\">\uf0a8 <\/span>N\u00b0 de processos executados por unidade de tempo<\/p>\n<p class=\"p3\"><span class=\"s2\">Minimizar o tempo de execu\u00e7\u00e3o<\/span><\/p>\n<p class=\"p3\"><span class=\"s1\">\uf0a8 <\/span>Tempo total para executar um processo<\/p>\n<p class=\"p3\"><span class=\"s2\">Minimizar o tempo de espera<\/span><\/p>\n<p class=\"p3\"><span class=\"s1\">\uf0a8 <\/span>Tempo em que o processo permanece na fila de aptos<\/p>\n<p class=\"p3\"><span class=\"s2\">Minimizar o tempo de resposta<\/span><\/p>\n<p class=\"p3\"><span class=\"s1\">\uf0a8 <\/span>Tempo decorrido entre a requisi\u00e7\u00e3o e sua realiza\u00e7\u00e3o<\/p>\n<p class=\"p3\">\n<p class=\"p1\"><strong>Quando Escalonar<\/strong><\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>Quando se cria um novo processo, \u00e9 necess\u00e1rio tomar uma decis\u00e3o entre executar o processo pai ou o processo filho<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>Quando se termina um processo, algum outro processo deve ser escolhido entre processos prontos<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>Quando um processo bloqueia para E\\S<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>Quando ocorre uma interrup\u00e7\u00e3o de E\\S<\/p>\n<p class=\"p2\">\n<p class=\"p1\"><strong>Algoritmos de Escalonamento<\/strong><\/p>\n<p class=\"p2\">&#8211; Existem duas categorias de algoritmos de escalonamento:<\/p>\n<p class=\"p3\"><span class=\"s2\">\uf0a8<\/span>N\u00e3o preemptivos \u2013 escolhe um processo para executar e ent\u00e3o o deixa executar at\u00e9 que seja bloqueado ou at\u00e9 que ele voluntariamente libere a CPU<\/p>\n<p class=\"p3\"><span class=\"s2\">\uf0a8<\/span>Preemptivos \u2013 escolhe um processo e o deixa em execu\u00e7\u00e3o por um tempo m\u00e1ximo fixado<\/p>\n<p class=\"p3\">\n<p class=\"p1\"><strong>Ambientes de escalonamento <\/strong><\/p>\n<p class=\"p1\"><span class=\"s1\">\u00a0<\/span><span class=\"s2\">Lote (Batch)<\/span><\/p>\n<p class=\"p2\"><span class=\"s3\">\uf0a8<\/span>Algoritmos n\u00e3o preemptivos ou preemptivos com longo intervalo de tempo<\/p>\n<p class=\"p3\"><span class=\"s1\">\u00a0<\/span>Interativo<\/p>\n<p class=\"p2\"><span class=\"s3\">\uf0a8<\/span>Preemp\u00e7\u00e3o \u00e9 essencial!<\/p>\n<p class=\"p3\"><span class=\"s1\">\u00a0<\/span>Tempo real<\/p>\n<p class=\"p2\"><span class=\"s3\">\uf0a8<\/span>Algumas vezes a preemp\u00e7\u00e3o \u00e9 desnecess\u00e1ria<\/p>\n<p class=\"p2\">\n<p class=\"p1\"><strong>Objetivos do algoritmo de escalonamento<\/strong><\/p>\n<p class=\"p2\">Todos os Sistemas:<\/p>\n<p class=\"p3\"><span class=\"s2\">\uf0a8<\/span>Justi\u00e7a \u2013 dar a cada processo um por\u00e7\u00e3o justa da CPU<\/p>\n<p class=\"p3\"><span class=\"s2\">\uf0a8<\/span>Aplica\u00e7\u00e3o da pol\u00edtica \u2013 verificar se a pol\u00edtica estabelecida \u00e9 cumprida<\/p>\n<p class=\"p3\"><span class=\"s2\">\uf0a8<\/span>Equil\u00edbrio \u2013 manter ocupadas todas as partes do sistema<\/p>\n<p class=\"p3\">\n<p class=\"p1\">Sistemas em Lote:<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf0a8<\/span>Vaz\u00e3o (<i>throughput<\/i>) \u2013 maximizar o n\u00b0 de processos por hora<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf0a8<\/span>Tempo de retorno \u2013 minimizar o tempo entre a submiss\u00e3o e o t\u00e9rmino<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf0a8<\/span>Utiliza\u00e7\u00e3o de CPU \u2013 manter a CPU ocupada o tempo todo<\/p>\n<p class=\"p2\">\n<p class=\"p1\">Sistemas Interativos<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf0a8<\/span>Tempo de resposta \u2013 responder rapidamente \u00e0s requisi\u00e7\u00f5es<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf0a8<\/span>Proporcionalidade \u2013 satisfazer \u00e0s expectativas dos usu\u00e1rios<\/p>\n<p class=\"p2\">\n<p class=\"p1\">Sistemas de Tempo Real<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf0a8<\/span>Cumprimento dos prazos \u2013 evitar a perda de dados<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf0a8<\/span>Previsibilidade \u2013 evitar a degrada\u00e7\u00e3o da qualidade em sistemas multim\u00eddia<\/p>\n<p class=\"p2\">\n<p class=\"p1\"><strong>Considera\u00e7\u00f5es<\/strong><\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>Vaz\u00e3o \u2013 \u00e9 o n\u00famero de processos por hora que o sistema termina<\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>Tempo de resposta \u2013 indica quanto tempo, em m\u00e9dia, o usu\u00e1rio tem de esperar pelo fim de um trabalho<\/p>\n<p class=\"p2\">\n<p class=\"p2\"><strong>Despacho (Dispatch) ou Troca\/Chaveamento de contexto<\/strong><\/p>\n<ul>\n<li class=\"p2\">Mudan\u00e7a do processo em execu\u00e7\u00e3o<\/li>\n<li class=\"p2\">O S.O. deve salvar o estado do processo atual e carregar o estado do novo processo\n<ul>\n<li class=\"p2\">Pergunta: Onde salvar e de onde recuperar?<\/li>\n<\/ul>\n<\/li>\n<li>Troca de contexto \u00e9 overhead<\/li>\n<li>Tempo gasto depende do hardware e da estrutura do processo no S.O.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.42.35.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-53\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.42.35-300x249.png\" alt=\"Captura de Tela 2014-09-16 \u00e0s 23.42.35\" width=\"300\" height=\"249\" srcset=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.42.35-300x249.png 300w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.42.35.png 870w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p class=\"p2\">\n<p class=\"p1\"><strong>Escalonamento em Sistemas em Lote (Batch)<\/strong><\/p>\n<p class=\"p1\"><a href=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.13.33.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-48\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.13.33-300x148.png\" alt=\"Captura de Tela 2014-09-16 \u00e0s 23.13.33\" width=\"300\" height=\"148\" srcset=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.13.33-300x148.png 300w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.13.33.png 594w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p class=\"p1\">\n<p class=\"p1\"><strong>Escalonamento em Sistemas Interativos<\/strong><\/p>\n<p class=\"p1\"><a href=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.14.02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-49\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.14.02-300x131.png\" alt=\"Captura de Tela 2014-09-16 \u00e0s 23.14.02\" width=\"300\" height=\"131\" srcset=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.14.02-300x131.png 300w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.14.02.png 603w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p class=\"p1\">\n<p class=\"p1\"><strong>N\u00edveis de Escalonamento<\/strong><\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>Longo Prazo<\/p>\n<ul>\n<li class=\"p2\">\n<p class=\"p1\">Executado quando um novo processo \u00e9 criado;<\/p>\n<\/li>\n<li class=\"p2\">\n<p class=\"p1\">Determina quando um processo novo passa a ser considerado no sistema;<\/p>\n<\/li>\n<li class=\"p2\">\n<p class=\"p1\">Controla o grau de multiprograma\u00e7\u00e3o do sistema<\/p>\n<ul>\n<li class=\"p2\">\n<p class=\"p1\">Quanto maior o n\u00b0 de processos ativos, menor a porcentagem de tempo de uso do processador por processo<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"p2\">\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>M\u00e9dio Prazo<\/p>\n<ul>\n<li class=\"p2\">\n<p class=\"p1\">Associado a ger\u00eancia de mem\u00f3ria<\/p>\n<ul>\n<li class=\"p2\">\n<p class=\"p1\">Participa do mecanismo de <i>swapping<\/i><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p class=\"p1\">Suporte adicional a multiprograma\u00e7\u00e3o<\/p>\n<ul>\n<li>\n<p class=\"p1\">Grau de multiprograma\u00e7\u00e3o efetiva (diferencia aptos dos aptos suspensos)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span>Curto Prazo<\/p>\n<ul>\n<li class=\"p2\">\n<p class=\"p1\">Mais importante;<\/p>\n<\/li>\n<li class=\"p2\">\n<p class=\"p1\">Determina qual processo apto dever\u00e1 utilizar o processador;<\/p>\n<\/li>\n<li class=\"p2\">\n<p class=\"p1\">Executado sempre que eventos importantes ocorrem<\/p>\n<ul>\n<li class=\"p2\">\n<p class=\"p1\">Interrup\u00e7\u00e3o de rel\u00f3gio<\/p>\n<\/li>\n<li class=\"p2\">\n<p class=\"p1\">Interrup\u00e7\u00e3o de E\\S<\/p>\n<\/li>\n<li class=\"p2\">\n<p class=\"p1\">Chamadas de sistemas<\/p>\n<\/li>\n<li class=\"p2\">\n<p class=\"p1\">Sinais (interrup\u00e7\u00e3o de software)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Diagrama de Escalonamento<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.19.10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-50\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.19.10-300x184.png\" alt=\"Captura de Tela 2014-09-16 \u00e0s 23.19.10\" width=\"300\" height=\"184\" srcset=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.19.10-300x184.png 300w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.19.10.png 609w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p class=\"p1\"><strong>Algoritmos de escalonamento<\/strong><\/p>\n<p class=\"p2\"><span class=\"s1\">\uf06e <\/span><strong>FIFO<\/strong><\/p>\n<p class=\"p3\"><span class=\"s2\">\uf0a8 \u00a0 \u00a0\u00a0<\/span>Simples de Implementar (Fila)<\/p>\n<p class=\"p3\"><span class=\"s2\">\uf0a8 \u00a0 \u00a0\u00a0<\/span>Funcionamento:<\/p>\n<p class=\"p4\"><span class=\"s3\">\uf06e \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span>Processos aptos s\u00e3o inseridos no fim da fila<\/p>\n<p class=\"p4\"><span class=\"s3\">\uf06e \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span>Processo no in\u00edcio da fila \u00e9 o pr\u00f3ximo a executar<\/p>\n<p class=\"p4\"><span class=\"s3\">\uf06e \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span>Processo executa at\u00e9 que:<\/p>\n<p class=\"p5\"><span class=\"s4\">\uf0a8 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span>Libere o processador<\/p>\n<p class=\"p5\"><span class=\"s4\">\uf0a8 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>Realize uma chamada de sistema (bloqueado)<\/p>\n<p class=\"p5\"><span class=\"s4\">\uf0a8 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span>Termine sua execu\u00e7\u00e3o<\/p>\n<p class=\"p5\">\n<p class=\"p1\"><span class=\"s1\">\uf06e <\/span><strong><span class=\"s2\">Round Robin<\/span><\/strong><\/p>\n<p class=\"p2\"><span class=\"s3\">\uf0a8 \u00a0 \u00a0 \u00a0<\/span>Similar ao algoritmo FIFO, s\u00f3 que:<\/p>\n<p class=\"p3\"><span class=\"s4\">\uf06e \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span>Cada processo recebe um tempo limite m\u00e1ximo para executar um ciclo do processador<\/p>\n<p class=\"p2\"><span class=\"s3\">\uf0a8 \u00a0 \u00a0 \u00a0<\/span>Fila de processos aptos \u00e9 uma fila circular<\/p>\n<p class=\"p2\"><span class=\"s3\">\uf0a8 \u00a0 \u00a0 \u00a0<\/span>Necessidade de um rel\u00f3gio para delimitar as fatias de tempo<\/p>\n<p class=\"p2\">\n<p class=\"p2\"><strong>Shortest Job First (SJF)<\/strong><\/p>\n<ul>\n<li class=\"p2\">Associa-se a cada processo seu pr\u00f3ximo pulso\n<ul>\n<li class=\"p2\">Pr\u00f3ximo processo ser\u00e1 o de menor pulso<\/li>\n<\/ul>\n<\/li>\n<li>SJF Preemptivo:\n<ul>\n<li>Um processo que possui um pulso menor que o restante de pulsos do correntemente em execu\u00e7\u00e3o for\u00e7a a preemp\u00e7\u00e3o<\/li>\n<li>Chamado de Shortest Remaining Time First (SRTF)<\/li>\n<\/ul>\n<\/li>\n<li>SJF n\u00e3o preemptivo\n<ul>\n<li>Processos que chegam s\u00e3o comparados apenas com aqueles \u00e0 espera da CPU<\/li>\n<\/ul>\n<\/li>\n<li>SJF \u00e9 \u00f3timo quanto ao tempo m\u00e9dio de espera<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><b>Problema: Dura\u00e7\u00e3o do pr\u00f3ximo pulso<\/b><\/p>\n<p>Como resolver?<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Escalonamento com prioridades<\/strong><\/p>\n<ul>\n<li>um valor inteiro de prioridade para cada processo<\/li>\n<li>A CPU \u00e9 alocada para o processo de maior prioridade\n<ul>\n<li>Usualmente quanto menor o valor, maior a prioridade<\/li>\n<li>Preemptivo ou n\u00e3o preemptivo<\/li>\n<\/ul>\n<\/li>\n<li>SJF \u00e9 um escalonamento com prioridade, onde a prioridade \u00e9 o tamanho previsto do pulso de CPU<\/li>\n<li>Problema: Inani\u00e7\u00e3o (Starvation)\n<ul>\n<li>Processos de baixa prioridade podem nunca ser executados<\/li>\n<\/ul>\n<\/li>\n<li>Solu\u00e7\u00e3o: Envelhecimento (aging)\n<ul>\n<li>Prioridade de cada processo que fica na fila aumenta \u00e0 medida que o tempo passa<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Escalonamento por Filas Multi-N\u00edvel<\/strong><\/p>\n<ul>\n<li>Fila de processos prontos \u00e9 dividida:\n<ul>\n<li>Processos interativos (Foreground) &#8211; RR<\/li>\n<li>Processos em lote;batch(background) &#8211; FIFO<\/li>\n<\/ul>\n<\/li>\n<li>Escalonamento entre filas\n<ul>\n<li>Prioridade fixa\n<ul>\n<li>P. Ex: Atender sempre processos interativos primeiro<\/li>\n<li>Possibilidade de inani\u00e7\u00e3o<\/li>\n<\/ul>\n<\/li>\n<li>Fatias de Tempo\n<ul>\n<li>Cada fila \u00e9 escalonada por uma fra\u00e7\u00e3o do tempo total<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.33.06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-51\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.33.06-300x196.png\" alt=\"Captura de Tela 2014-09-16 \u00e0s 23.33.06\" width=\"300\" height=\"196\" srcset=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.33.06-300x196.png 300w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.33.06.png 849w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><b>Filas Multin\u00edvel com realimenta\u00e7\u00e3o<\/b><\/p>\n<ul>\n<li>Um processo pode se mover entre filas\n<ul>\n<li>Forma de interpretar o envelhecimento<\/li>\n<\/ul>\n<\/li>\n<li>Escalonamento pode ser definido por:\n<ul>\n<li>No de filas<\/li>\n<li>algoritmo de escalonamento de cada fila<\/li>\n<li>m\u00e9todo usado para promover um processo<\/li>\n<li>m\u00e9todo usado para rebaixar um processo<\/li>\n<li>m\u00e9todo usado para decidir em que fila cada processo entra no sistema<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Escalonamento de multi-processadores<\/strong><\/p>\n<p>Multiprocessamento Sim\u00e9trico (SMP)<\/p>\n<ul>\n<li>Todas as CPUs acessam dados e recursos de forma igual<\/li>\n<\/ul>\n<p>Multiprocessamento assim\u00e9trico (AMP):<\/p>\n<ul>\n<li>S\u00f3 um processador acessa as estruturas de dados do sistema, reduzindo a complexidade do sistema<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Escalonamento de tempo real<\/strong><\/p>\n<ul>\n<li>Processos podem estabelecer demandas em termos de tempo de ativa\u00e7\u00e3o de tarefas<\/li>\n<li>Essencial para sistemas de controle de processos de precis\u00e3o e multim\u00eddia<\/li>\n<li>Hard real-time (tempo r\u00edgido) &#8211; Devem completar tarefas em um tempo garantido<\/li>\n<li>Soft real-time (tempo male\u00e1vel) &#8211; requerem que processos cr\u00edticos recebam prioridade superior aos demais<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Lat\u00eancia de despacho<\/strong><\/p>\n<ul>\n<li>Tempo gasto at\u00e9 que um processo de tempo real que solicita a CPU realmente a receba<\/li>\n<li>T\u00e9cnicas podem reduzir essa lat\u00eancia\n<ul>\n<li>Pontos de intercepta\u00e7\u00e3o: Pontos onde opera\u00e7\u00f5es potencialmente longas podem ser interrompidas<\/li>\n<li>Kernel intercept\u00e1vel (interromp\u00edvel)<\/li>\n<li>Libera\u00e7\u00e3o for\u00e7ada de recursos de processos de baixa prioridade (resolu\u00e7\u00e3o de conflitos)<a href=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.39.53.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-52\" src=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.39.53-300x198.png\" alt=\"Captura de Tela 2014-09-16 \u00e0s 23.39.53\" width=\"300\" height=\"198\" srcset=\"https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.39.53-300x198.png 300w, https:\/\/www.uniessa.hiperlogic.com.br\/wp-content\/uploads\/2014\/09\/Captura-de-Tela-2014-09-16-\u00e0s-23.39.53.png 659w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ger\u00eancia do Processador \uf06e O escalonador \u00e9 a entidade do SO respons\u00e1vel por selecionar um processo apto para executar no processador \uf06e O objetivo \u00e9 dividir o tempo do processador de forma justa \uf06e T\u00edpicos de sistemas multiprogramados \uf06e Duas partes: \uf0a8 \u00a0 \u00a0\u00a0Escalonador: pol\u00edtica de sele\u00e7\u00e3o \uf0a8 \u00a0 \u00a0\u00a0Dispatcher: efetua a troca de contexto [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[12],"class_list":["post-47","post","type-post","status-publish","format-standard","hentry","category-so","tag-escalonador"],"_links":{"self":[{"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/posts\/47","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=47"}],"version-history":[{"count":1,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/posts\/47\/revisions"}],"predecessor-version":[{"id":54,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=\/wp\/v2\/posts\/47\/revisions\/54"}],"wp:attachment":[{"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=47"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=47"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.uniessa.hiperlogic.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=47"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}