Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistema Operativo
O Docente
____________________________
Nome: Lucas Dos Santos Ngola
Número: 170608
Turma: ENGIF31N
RESUMO
O presente trabalho consiste em, apresentar os conceito escalonamento ,tipos de escalonadores, critérios de rendimento
,gestão de Escalonamento de Processos de um Sistema Operacional Distribuído, conceituaremos termos importantes de
Sistemas Operacionais, como Multiprogramação, Comportamento de Processos e as Categorias de Algoritmos de
Escalonamento de Processos.
Tambem abordaremos tópicos como Deadlocks ,Deadlocks em Sistemas Distribuídos, como gerenciá-los, detetar e prevenir
deadlocks e por fim abordaremos Algoritmo de deteção de deadlock
The present work consists in presenting the concepts of scheduling, scheduler types, performance criteria, process
management of a distributed operating system, conceptualize important operating system terms such as multiprogramming,
process behavior and categories of scheduling algorithms of processes.
We will cover topics such as Deadlocks, Deadlocks in systems
Distributed, how to manage them, detect and prevent deadlocks and finally we will approach algorithm of detection of
deadlock
Keywords: Process Management and Scheduling, processes, deadlocks, Scheduling algorithms and deadlocks.
INTRODUÇÃO
Ex, quando a D. Maria pensa fazer um bolo de laranja vai ao seu livro de receitas e tira a receita do bolo de laranja. É
como se fosse ao HDD buscar o ficheiro Bolo de Laranja, que corresponde ao programa (ou receita) de como fazer um
bolo de Laranja. É uma simples receita, ou um programa.
Mas, quando a D.Maria começa a executar a receita ,começa a usar os recursos de que dispõe na sua cozinha
(tigelas ,pírex, batedeiras, fornos, lava louças, etc) e o programa começa a transformar-se naquilo que é o seu objetivo,
o bolo de laranja.
Pois, da receita (programa) até ao bolo, estamos precisamente no processo de confeção do bolo de laranja.
E, durante esse processo de confeção, o tipo de língua em que a receita foi escrita não importa (português, Inglês,
Mandarim ou outras) bem como o tipo, as características, a marca ou modelo do equipamento em que se executa. Só
importam os ingredientes, as suas quantidades, a forma como se misturam e o tempo de cozedura.
Portanto o processo é alheio à língua em que a receita foi escrita e ao equipamento em que é executado.
Assim resulta a definição de Processo:
PROCESSOS
O processo é aquilo que executa o objetivo de um programa. É a abstração da execução de um programa, alheia às características da
máquina onde executa à linguagem em que foi programada.
Mantêm a capacidade de operações pseudoconcorrentes, mesmo quando há apenas uma CPU disponível. Então quando nos referirmos a
um programa, em um sistema operacional, estamos falando do processo referente a esse programa. A CPU executa cada um deles por
dezenas ou centenas de milissegundos. A cada instante a CPU executa somente um programa, no decorrer de um segundo ela pode
trabalhar sobre vários programas, dando aos usuários a ilusão de paralelismo.
Multiprogramação
Conceitualmente, cada processo tem sua própria CPU virtual. Na prática, a CPU troca, a todo momento, de um processo para outro.
Portanto, um conjunto de processos executando paralelamente é conceitual quando há uma CPU apenas. O mecanismo de trocas rápidas,
onde a CPU faz esses chaveamentos(trocas) é a Multiprogramação.
O que é Escalonador de Processos
Um Escalonador de Processos é um subsistema do Sistema Operacional responsável por decidir o momento em que cada processo
obterá a CPU. É utilizado algoritmos de escalonamento que estabelecem a lógica de tal decisão. Nesse momento de decidir qual
escalonador será utilizado no sistema operacional, cabe avaliar o cenário que o sistema será utilizado.
Deadlock (interbloqueio, blocagem, impasse), no contexto de sistemas operacionais (SO), refere-se a uma situação em que ocorre um
impasse, e dois ou mais processos ficam impedidos de continuar suas execuções - ou seja, ficam bloqueados, esperando uns pelos outros.
Trata-se de um problema bastante estudado em sistemas operacionais e banco de dados, pois é inerente à própria natureza desses
sistemas.
GESTOR DE PROCESSOS
Segue abaixo uma figura que demonstra os estados e as transições possíveis de um processo.
Diagrama de Estado dos Processos
Estados de um processo
Executando: o processo está usando a CPU naquele instante; Bloqueado: o processo é incapaz de executar enquanto
não ocorrer um evento externo; Pronto: o processo está pronto para ser executado. Temporariamente parado para dar
lugar a outro processo.
A transição 1 é quando o processo bloqueia aguardando uma entrada; a transição 2 é quando o escalonador seleciona
outro processo; a transição 3 é quando o escalonador seleciona esse processo e a transição 4 é quando a entrada de
dados torná-se disponível.
ESCALONAMENTO
O escalonamento consiste em distribuir o acesso aos recursos do sistema entre os processos que o
solicitam.
Tendo como objetivo:
- Otimizar o rendimento dos recursos.
- Priorizar o acesso aos recursos disponíveis.
- Recursos que necessitam escalonamento:
- Dispositivos E/S (discos)
- Processador
- Memória
Multiprogramação:
O S.O. gerência múltiplos processos na memória principal de forma simultânea.
Os processos devem compartilhar o acesso ao processador.
Escalonamento de processos:
Decidir sobre: que trabalhos serão admitidos pelo sistema
Que processos serão mantidos na memória principal
Que processo utilizará CPU quando ela estiver livre
Escalonamento de processos:
Tipos de Escalonadores:
Algumas políticas de escalonamento podem funcionar em modo não preemptivo ou em modo preemptivo.
Modo não preemptivo:
O processo que possui a CPU somente a libera quando quer (quando acaba sua execução)
Não necessita suporte de hardware adicional
Um processo pode monopolizar a CPU
Não são convenientes para ambientes de tempo compartilhado.
Exemplo: Windows 3.1 e Apple Macintosh OS
Não Preemptivos
Fisrt-Came, Fisrt-Served –FCFS (FIFO)
Shortest-Job-First –SJF
Modo preemptivo:
O escalonador pode desalocar um processo da CPU em qualquer instante de tempo. Maior custo, porém,
evita-se que um processo tenha 100% da CPU
Por prioridades
Turno rotativo ou Circular (Round-Robin)
Filas multi-nivel
Tempo Real
Algoritmo FCFS (First-Come First-Served)
Funcionamento:
O processador é alocado seguindo a ordem de chegada dos processos àfila de processos prontos.
O processo que tem a CPU não a libera até que acabe sua execução ou até que fique bloqueado por uma operação de E/S.
Implementação:
A fila de processos prontos é implementada mediante uma fila FIFO (First-In First-Out).
Características FCFS:
Simples de implementar
Dependente da ordem de chegada dos processos.
Por exemplo, a figura acima. Temos carros em quatro sentidos diferentes. Os que estão no sentido "A" pedem espaço para
os que estão no sentido "B". Mas o pedido é negado. E em vez de liberar espaço para os que estão no sentido "A", os que
estão no sentido "B" solicitam espaço para os que estão no sentido "C". Mas o pedido é negado. E em vez de liberar
espaço para os que estão no sentido "B", os que estão no sentido "C" solicitam espaço para os que estão no sentido "D".
Mas o pedido é negado. E em vez de liberar espaço para os que estão no sentido "C", os que estão no sentido "D"
solicitam espaço para os que estão no sentido "A". E assim, estamo em um impasse, ou seja, em Deadlock.
Formalmente, Deadlock é definido da seguinte forma: Um conjunto de processos do Sistema Operacional está em situação
de Deadlock se todo processo pertencente ao conjunto estiver esperando por um evento que somente outro processo
desse mesmo conjunto poderá fazer acontecer.
Condições para ocorrência de Deadlock
Assim, nenhum processo consegue executar recurso que precisa, ou liberar recurso que está de posse, ou ser acordado,
pois o recurso que precisa está ocupado.
Vale detalhar que recurso é uma sequência de eventos necessários ao uso de um processo, assim pode ser dispositivos
ou qualquer item compartilhado.
Abaixo as condições para se entrar no estado de Deadlock:
Exclusão Mútua: todo recurso está ou associado a um único processo ou disponível;
Posse e Espera: processos que retêm recursos podem solicitar novos recursos;
Não Preempção: recursos concedidos previamente não podem ser forçosamente tomados;
Espera Circular: deve haver uma cadeia circular de dois ou mais processos, na qual cada um está à espera de recursos
retido pelo membro seguinte dessa cadeia.
OBS : Todas essas condições devem ocorrer simultaneamente para que ocorra Deadlock. Se uma dessas condições não
ocorrer, não haverá deadlock.
Algoritmo de Deteção de DeadLoks
O algoritmo de detecção de deadlock com vários recursos de cada tipo baseia-se em um ambiente que
possua vários recursos do mesmo tipo e os processos solicitam apenas pelo tipo de recursos, não
especificando qual recurso desejam utilizar.
Assim, um processo pode requisitar uma unidade de CD para leitura. Se o sistema possuir duas, o processo
pode utilizar a que estiver disponível, em vez de especificar uma delas. Dessa forma, o processo solicita o
recurso pelo tipo, sem discriminação.
Faça (para detecção do deadlock):
• Inicialmente, desmarcar todos os processos;
• Para um processo Pi desmarcado, verificar se todos os elementos da linha i na Matriz R são
menores ou iguais aos da Matriz A;
• Se for, então marque o execute o processo P i e libere os recursos requisitados pelo processo na
Matriz C (adicionar a linha i da Matriz C na Matriz A);
• Retornar ao passo 2.
A lógica do algoritmo é a seguinte: cada processo é considerado como apto a ser executado até que a
detecção prove o contrário. A detecção apenas verifica se os processos requisitam mais recursos do que
estão disponíveis, o que caracteriza um deadlock. Caso o processo requisite uma quantidade disponível,
então ele pode ser executado, e os recursos que foram solicitados antes podem também ser liberados de
volta ao sistema, o que pode permitir que outros processos também concluam suas execuções e liberem os
recursos.
Um exemplo do preenchimento das matrizes encontra-se na figura abaixo,
considerando-se n=2 e m=3.
Algoritmo de Prevenção – Algoritmo do Banqueiro
Cada processo tem por responsabilidade especificar o número máximo de recursos necessários para concluir seu
trabalho.
O SO aceita o pedido de um processo caso o número de recursos solicitados não seja maior que o número tota l de recur
sos disponíveis.
Sabendo que um processo, cuja execução dependa de um número T de recursos, poderá garantir um tempo satisfatório
de execu ção (e definido) apenas se o SO garantir o número máximo de recursos.
Desta for ma, se pensar mos que o SO estará se mpre em estado seguro, to das as requisições
serão atendidas em deter minado te mpo e o usuário poderá e fetuar todas as operações
desejadas.
Algoritmo do avestruz (ignorar a situação)
A estratégia mais simples para tratamento (ou não) do "deadlock", conhecida como
Algoritmo do Avestruz, é simplesmente ignorá-lo.
Muitos defendem que a frequência de ocorrência deste tipo de evento é baixa
demais para que seja necessário sobrecarregar a CPU com códigos extras de
tratamento, e que, ocasionalmente, é tolerável reiniciar o sistema como uma ação
corretiva.
Conclusão
A definição textual de deadlock por ser muito abstrata, é mais difícil de se compreender do que a
representação por grafos, que será resumida mais adiante. No entanto, algumas observações
são pertinentes:
• O deadlock pode ocorrer mesmo que haja somente um processo no SO, considerando que
este processo utilize múltiplos threads e que tais threads requisitem os recursos alocados a
outros threads no mesmo processo;
• O deadlock independe da quantidade de recursos disponíveis no sistema;
• Normalmente o deadlock ocorre com recursos, tais como dispositivos, arquivos, memória
etc. Apesar de a CPU também ser um recurso para o SO, em geral é um recurso facilmente
preemptível, pois existem os escalonadores para compartilhar o processador entre os diversos
processos, quando trata-se de um ambiente multitarefa.
Bibliografia
S. TANENBAUM Prentice-Hall,
Secção 2.5: Scheduling I
Secção 10.3: Processes in Unix I
Secções 4.1, 4.2, 4.3 e 4.4 de José Alves Marques e outros,
Sistemas Operativos, FCA - Editora Informática, 2009