Você está na página 1de 2

1) Pesquise sobre algoritmos de escalonamento, com explicação de cada um.

Escalonamiento en dos niveles

Escalonador de processos de 2 níveis escolhe o processo que tem mais

prioridade e menos tempo e coloca-o na memória principal, ficando os outros

alocados em disco; com essa execução o processador evita ficar ocioso.

Escalonamiento FCFS

Es un algoritmo no expropiativo: una vez que el procesador le es asignado a un proceso


este lo mantiene hasta que termina o se bloquea (por ejemplo al generar un pedido de
E/S). El tiempo de espera promedio por lo general es alto.

Escalonamiento Round-Robin

No caso dos escalonamentos round-robin, o envelhecimento deve ocorrer a cada quantum


e não há preempção por prioridade.

O programa deverá ler os dados dos processos da entrada padrão (stdin). Cada linha da
entrada corresponde a um processo, com os seguintes dados fornecidos como inteiros
separados por um ou mais espaços em branco:

● data de criação

● duração em segundos

● prioridade estática (escala de prioridades positiva)

Um exemplo de entrada para o simulador poderia ser:

052

023

141

334

Nesse exemplo de entrada, o processo P1 tem data de criação 0, sua execução dura 5
segundos e sua prioridade é 2. Esse formato de entrada deverá ser respeitado, pois o
professor pode testar seu simulador com outros dados de entrada. Observe que essa
listagem não precisa necessariamente estar ordenada por data de criação de cada
processo.

Escalonamiento SJF

O algoritmo de escalonamento conhecido como menor tarefa primeiro (SJF -


Shortest Job First) consiste em atribuir o processador à menor (mais curta) tarefa da fila de
tarefas prontas. Esse algoritmo (e sua versão preemptiva, SRTF) proporciona os menores
tempos médios de espera das tarefas.

2) Pesquise sobre Starvation (inanição). O que podemos fazer para solucionar o problema?
Se dice que un programa sufre inanición o Starvation cuando algún thread es incapaz de
disfrutar de los recursos que necesita porque otros threads no los liberan. Aunque el
programa sigue haciendo cosas, el thread afectado no va a ninguna parte.

La utilización de prioridades en muchos sistemas operativos multitarea podría causar que


procesos de alta prioridad estuvieran ejecutándose siempre y no permitieran la ejecución de
procesos de baja prioridad, causando inanición en estos. Es más, si un proceso de alta
prioridad está pendiente del resultado de un proceso de baja prioridad que no se ejecuta
nunca, entonces este proceso de alta prioridad también experimenta inanición (esta
situación se conoce como inversión de prioridades). Para evitar estas situaciones los
planificadores modernos incorporan algoritmos para asegurar que todos los procesos
reciben un mínimo de tiempo de CPU para ejecutarse.

Primeramente se debe identificar las causas del starvation, luego de identificada la causa se
puede proceder de varias formas.
Quitarle la prioridad a los procesos que están acaparando los recursos que no dejan realizar
su tarea a los recursos de más baja prioridad es una solución plausible para el tema de la
iniciación.

Referencias:
https://wiki.inf.ufpr.br/maziero/doku.php?id=so:algoritmos_de_escalonamento
https://www.dit.upm.es/~pepe/libros/concurrency/index.html#!1024

Você também pode gostar