SlideShare une entreprise Scribd logo
1  sur  6
Estudo Sistemas Operacionais

                                Perguntas e respostas



Qual a metodologia do utilizada em semáforo?

O semáforo possui uma variável responsável por identificar o número de wakeup salvos para uma
possível utilização futura. Esta variável semáforo pode ter o valor de 0 indicando que nenhum
wakeup foi salvo ou um ou mais indicando que wakeups já foram salvos. Duas operações são
utilizadas para a execução de um semáforo (DOWN e UP). A operação Down em um semáforo
verifica se a variável é maior que zero. Caso seja maior que 0 a operação continua normalmente
decrementando o valor da variável e utilizando um wakeup armazenado. Caso o valor seja igual a 1,
o processo corrente é colocado para dormir e este não termina de realizar a operação DOWN. A
operação UP é utilizada para incrementar o valor da variável e acordar algum dos processos que
estavam dormindo pela operação DOWN e possibilitar e complete a operação. Permite fazer com
que menos processos esteja no estado de dormindo.

Como ocultar a interrupção em um processo que utiliza semáforos?

Deve-se configurar um semáforo com um valor de 0 para um dispositivo de E/S. Após inicializado
este processo, o gerenciador de interrupções faz um DOWN no semáforo associado, bloqueando
logo em seguida. Quando a interrupção chega, o gerenciador faz um UP no semáfaro e torna o
processo relevante pronto para executar novamente.

Como utilizar um semáforo para a resolução do problema do jantar dos filósofos?

Para resolver o problema do jantar dos filósofos, são utilizados três semáforos denominados full ,
para indicar a quantidade de entradas que estão ocupadas, empty para indicar a quantidade de
entradas que estão livres e mutex utilizado para permitir que produtores e consumidores não
acessem o buffer ao mesmo tempo. Inicialmente, Full possui o valor de 0, empty possui o valor da
quantidade permitida no buffer e mutex possui o valor de 1 (semáforo binário). Deve-se dizer que a
responsabilidade pela exclusão mútua cabe ao semáforo mutex.

Exemplifique a má utilização de semáforos? O que pode ocorrer?



While (true){
Produce_item(&item);
Down (&empty); // diminui o número de entradas livres
Down (&mutex); // entra na região crítica
Enter_item; //insere item no buffer
Up (&mutex); //sai da região crítica
Up (&full); // aumenta a quantidade de casas ocupadas
}
Um exemplo de má utilização de semáforos é por exemplo invertermos um dos dois Downs no
procedimento do produtor. Considerando que o buffer estivesse cheio, teríamos que o buffer
entraria na região crítica, e logo em seguida seria bloquado, com o mutex sendo 0, logo em seguida
o consumidor tentaria acessar o buffer o com o mutex igual a 0 ele também se bloquearia. Logo
ocorreria um deadlock, ou seja, dois processos bloqueados, um esperando a execução do outro.

Qual a característica que faz com que os monitores garantam a exclusão mútua?

Uma característica particular dos monitores é que em um monitor apenas um processo estará ativo.
Quando um processo acessa o procedimento dentro do monitor, o monitor logo se encarrega de
verificar se não existe outro processo ativo. Caso tenha um processo ativo, o processo que fez
acesso ao procedimento será suspenso, caso contrário, ele poderá entrar na região. É importante
saber que está exclusão mútua é de responsabilidade do compilador.

Qual a desvantagem da utilização de semáforos e monitores?

Semáforos e monitores foram projetados para garantir a exclusão mútua em um ou mais
processadores que têm acesso a memória comum. Quando vamos para um sistema com dois ou
mais processadores operando de forma distribuída, compartilhando várias memórias privadas e em
uma rede local, esta questão de exclusão mútua pode tornar-se inaplicável.

Qual a utilidade de um agendador no sistema operacional?
Muitas vezes ocorre de um ou mais processos poderem ser executados em um determinado
instante. Cabe ao agendador do sistema operacional, escolher por algoritmos de agendamento um
processo que melhor satisfaça as seguintes questões: deve ser dado aos processos uma PARTE justa
da CPU, deve diminuir o tempo de resposta dos usuários, deve fazer com que a CPU esteja ocupada
100% do tempo e deve maximizar o número de Jobs processados por hora.

Faça uma relação entre a evolução dos CPUS e os algoritmos de agendamento?

Antigamente os recursos tecnológicos eram escassos de maneira que era exigido dos algoritmos de
escalonamento uma perfomace boa a ponto de garantir um balanceamento perto do ótimo. Com o
avanço da evolução tecnológica os algoritmos de agendamento não precisam ser tão rigorosos
asssim visto que, a percepção dos usuários é inibida pelo clock das novas máquinas.

Quais são as obrigações de um escalonador ?

Primeiramente um escalonador deve selecionar o processo a ser executado. Para esta escolha o
deve-se também fazer um uso eficiente da CPU. Deve-se saber que alternar entre um processo e
outro e muito caro computacionalmente. Deve-se armazenar os registradores do processo na tabela
de processos. O cachê também deve ser armazenado. O processo deve ser selecionado. O processo
deve ser inicializado. Deve ocorrer a troca de contexto.

Quando escalonar um processo?
Existem situações triviais em que o escalonamento de processos deve ocorrer tais como: quando o
processo termina, quando o processo se bloqueia. As políticas de escalonamento podem ser geradas
a cada interrupção de clock ou a partir da K-ézima interrupção de clock.

Cite e explique as categorias de escalonamento.
Os escalonamentos podem ser não-preemptivos ou preemptivos.
Para os escalonamentos pré-emptivos temos que:
O processo e executado até ele terminar; ou
O processo é executado até ele se bloquear
Ou seja, para escalonamentos pré-emptivos temos que nenhuma decisão de escalonamento é
tomada em função da interrupção do relógio.

Para escalonamentos pré-emptivos temos que: O escalonador escolhe um processo e o executa até
que o escalonador queira; ou
O processo deixa a CPU quando o processo termina; ou
O processo deixa a CPU quando o processo se bloqueia;

Cite e explique as categorias dos algoritmos de escalonamento.

Os algoritmos de escalonamento podem estar divididos em duas categorias:
Em lote: nestes, não há usuários impacientes por resultados. As políticas não preemptivas são
utilizadas para melhorar o desempenho do sistema.
Iterativos: As políticas preeptivas são utilizadas.

Quais as características do algoritmo de escalonamento para cada tipo de sistemas?

Para todos os sistemas temos que a política de escalonamento deve ser :
    • Justiça – conceder cada processo uma parte justa da CPU;
    • Rigor da Política: verificar se a política esta realmente sendo cumprida;
    • Equilíbrio: manter ocupadas todas as partes do sistema;

Para sistemas em lotes temos que a política de escalonamento deve garantir:

    •   Vazão – aumentar o numero de Jobs por hora;

    •   Tempo de retorno – diminuir o tempo entre a submissão e término;

    •   Utilização da UCP – manter a CPU ocupada o tempo todo;

Para sistemas interativos temos que as políticas de escalonamento devem privilegiar:

    •   Tempo de resposta – responder rapidamente as requisições

    •   Proporcionalidade – satisfazer as expectativas do usuário

Para o escalonamento de sistemas em Lote, explique sobre FIRST COME, FIRST SERVED?

Temos que esta forma de escalonamento é não preemptiva, ou seja, o processo é executado até seu
término ou até que ele se bloqueie. Temos que ele é um escalonamento onde o primeiro processo a
entrar na fila de prontos será o processo a ser executado. Sendo assim esta forma é de fácil
entendimento, de fácil implementação. Possui algumas desvantagens como: processos de maior
prioridade podem estar no final da fila e ser executados por último, processos independentes que
seriam executados rapidamente podem estar no final da fila e esperar por processos demorados.

Para o escalonamento de sistema em lote, O MENOR JOB PRIMEIRO comente sobre como este
método pode ser vantajoso.
Existe uma política de escalonamento para sistemas em Lote, que utiliza o menor job primeiro com o
objetivo de reduzir o média por espera. Considere 4 processos A,B,C e D possuindo os seguintes
tempos de execução 8,4,4,4. Executando-se nesta ordem teríamos o tempo de retorno para A de
8min, 12min de B, 16 min de C e 20 de D com uma média de 14min. A gora considerando a execução
do job mais curto primeiro temos que os tempos de retorno seriam 4min,8min,12min e 20 min com
uma média de 11min. Desta forma acaba sendo política de agendamento ótima, pois diminui o
tempo médio de resposta. A desvantagem é que precisa utilizar técnicas caras computacionalmente
para obter o tempo prévio de cada job.

Explique sobre a política de escalonamento “Próximo do menor tempo restante” .

A diferença entre as políticas de sistemas em Lote é que este é um método pré-emptivo. Quando um
novo job passa para o estado de pronto, o escalonador pode interromper a execução do atual, e
fornecer a CPU ao novo job,bloqueando o job em execução. Uma desvantagem é que Jobs com uma
prioridade maior podem ter sua execução bloqueada.

Explique sobre a política de escalonamento “ROUND ROBIN (Alternância Circular)” para sistemas
iterativos .

Nesta política de escalonamento é concedido a cada processo um intervalo de tempo (quantun).
Este intervalo de tempo é o tempo necessário para que cada processo fique na CPU se sofrer
interrupções.Existem três formas de um processo DEIXAR a CPU tais como: quando o tempo acaba
(ocasionado pelo quantun), quando o processo se bloqueia, quando o processo termina. Uma
questão interessante nesta política é a quantidade de tempo utilizada para a troca de processo. A
troca de processo para outro requer uma certo tempo para fazer esta administração. De maneira
que como desvantagem podemos citar o fato de que, para quantuns muito pequenos teremos uma
quantidade maior de tempo gasto com administração de troca de processos e a eficiência da CPU É
REDUZIDA. Porém para quantum muito longos, a resposta pode ser inificiente para curtas
requisições iterativas.

Explique sobre o algoritmo de escalonamento por prioridades.

Os outros algoritmos de escalonamento consideram cada um dos processos como sendo iguais uns
aos outros quanto a sua execução. A questão é que em sistemas iterativos, ocorre que um
determinado processo sempre possui uma prioridade maior que outro processo.Por exemplo,
processos que possuem uma comunicação direta com o usuário tendem a ter uma prioridade de
execução maior. O escalonamento por prioridades faz justamente isto, insere cada um dos processos
em uma categoria de prioridades, de maneira que os processos que estão em uma categoria de
prioridade maior tendem a ser executados primeiro. Dentro de uma categoria de prioridades pode
haver vários processos. Dentro de cada categoria, a execução de cada um dos processos pode ser
tratado com o algoritmo de alternância circular. Um problema encontrado neste algoritmo é que
pode ocorrer de processos que estão em uma categoria de prioridade menor pode nunca vir a ser
executado(starvation – quando um processo espera pela alocação de recursos). Para que isto não
ocorra o sistema operacional deve sempre fazer uma manutenção efetiva nas prioridades de cada
processo.Por exemplo, verificando que um processo esta a 3 segundos sem ser executado ele terá
sua prioridade incrementada em uma unidade (quando voltar para a fila de prontos voltará com sua
prioridade normal).
Explique sobre o escalonamento garantido .

No escalonamento garantido o computador deve garantir que se N usuários estão conectados, cada
um deve receber uma parte de 1/n da CPU. O método análogo pode ocorrer com o número de
quantidade de processos ativos. A questão é que esta política é de difícil implementação, ou seja, o
sistema deve monitorar quanto da CPU cada processo teve desde a sua execução, quanto foi
atribuído a cada um, para assim calcular o tempo real da CPU e o tempo atribuído.

Explique sobre o escalonamento por sorteio.

O sistema operacional disponibiliza bilhetes para cada um dos processos. Após isto o sistema
operacional sorteia um bilhete. O processo que possui o bilhete em questão é premiado, tem acesso
a CPU. Para processos com uma importância maior são oferecidos bilhetes extras, ou seja, uma
forma de aumentar a prioridade. A probalidade de um processo ocupar a CPU é de numero de
bilhetes que o processo possui/ numero total de bilhetes. Uma desvantagem desta forma de
escalonamento é que o sistema operacional acaba perdendo o controle sobre os processos que
estão “morrendo de fome” esperando por recursos. Uma outra desvantagem é o fato de a
probabilidade depender de números aleatórios.

O que são deadlocks ?

Os deadlocks ocorrem quando um processo disputa por um ou mais recursos. Quando não há
controle de acesso sobre um recurso comum, danos irreparáveis podem ocorrer. Uma definição para
deadlock é “Um processo esta em deadlock se todos os processos/threads deste conjunto estiver
esperando um evento acontecer, que somente estas threads/processos deste conjunto poderá
realizar .

Explique recursos preemptíveis e não preemptiveis.

Os recursos pré-emptivos são recursos que não podem ser retirados dos processos particulares sem
que ocorra erro. Como por exemplo, CPU e o memória.

Recursos não pré-emptiveis são recursos em que não podem ser retirados dos processos
particulares, caso isso aconteça pode ocorrer erro. Por exemplo, se um processo começou a gravar
um cd, ele não pode passar, a gravadora para um outro processo.

            OS DEADLOCKS ESTÃO RELACIONADOS COM RECURSOS NÃO PREEMPTIVEIS



Quais são as 4 condições para que haja deadlocks?

Condição de exclusão mútua: Um recurso só pode estar alocado a apenas um processo em um
determinado instante.

Condição de posse e espera: Processos que possuem recursos alocados podem solicitar outros.

Condição de não pré-empção: Recursos alocados por um processo não podem ser retirados do
processo que o alocou. Somente o processo que alocou o recurso pode liberá-lo.
Condição de espera circular:

Contenu connexe

Tendances

Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosLuiz Arthur
 
Aula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região CríticaAula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região Críticacamila_seixas
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockWilliams Gomes da Silva
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processosMauro Duarte
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senaiCarlos Melo
 
Sincronização e comunicação entre processos
Sincronização e comunicação entre processosSincronização e comunicação entre processos
Sincronização e comunicação entre processosAmedy Caisse
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processosVirgínia
 
Categorias de Escalonamento e Objetivos do Algoritmo de Escalonamento
Categorias de Escalonamento e Objetivos do Algoritmo de EscalonamentoCategorias de Escalonamento e Objetivos do Algoritmo de Escalonamento
Categorias de Escalonamento e Objetivos do Algoritmo de EscalonamentoGilberto Angelucci Jr.
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: DeadlocksAlexandre Duarte
 
MALHA ABERTA E MALHA FECHADA
MALHA ABERTA E MALHA FECHADAMALHA ABERTA E MALHA FECHADA
MALHA ABERTA E MALHA FECHADARafael Costa
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threadsfernandao777
 
Erros e controle de malhas
Erros e controle de malhasErros e controle de malhas
Erros e controle de malhasjomartg
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacionalMichael Soto
 
Sistemas operacionais processos
Sistemas operacionais processosSistemas operacionais processos
Sistemas operacionais processosCarlos Melo
 
Automação ind 2_2014
Automação ind 2_2014Automação ind 2_2014
Automação ind 2_2014Marcio Oliani
 

Tendances (20)

Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
 
Aula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região CríticaAula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região Crítica
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Sistemas Operacionais 10 comunicação entre processos
Sistemas Operacionais 10   comunicação entre processosSistemas Operacionais 10   comunicação entre processos
Sistemas Operacionais 10 comunicação entre processos
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
 
Sincronização e comunicação entre processos
Sincronização e comunicação entre processosSincronização e comunicação entre processos
Sincronização e comunicação entre processos
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Categorias de Escalonamento e Objetivos do Algoritmo de Escalonamento
Categorias de Escalonamento e Objetivos do Algoritmo de EscalonamentoCategorias de Escalonamento e Objetivos do Algoritmo de Escalonamento
Categorias de Escalonamento e Objetivos do Algoritmo de Escalonamento
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: Deadlocks
 
MALHA ABERTA E MALHA FECHADA
MALHA ABERTA E MALHA FECHADAMALHA ABERTA E MALHA FECHADA
MALHA ABERTA E MALHA FECHADA
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threads
 
Erros e controle de malhas
Erros e controle de malhasErros e controle de malhas
Erros e controle de malhas
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Telas esteira
Telas esteiraTelas esteira
Telas esteira
 
Sistemas operacionais processos
Sistemas operacionais processosSistemas operacionais processos
Sistemas operacionais processos
 
Automação ind 2_2014
Automação ind 2_2014Automação ind 2_2014
Automação ind 2_2014
 
Aula revisão ok
Aula revisão       okAula revisão       ok
Aula revisão ok
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 

En vedette

Preferencia entre perredistas
Preferencia entre perredistasPreferencia entre perredistas
Preferencia entre perredistasJovenesconAle
 
Dn13 u3 a27_slm
Dn13 u3 a27_slmDn13 u3 a27_slm
Dn13 u3 a27_slmmiri586
 
Wqtc2013 dist syswq-modeling-20131107
Wqtc2013 dist syswq-modeling-20131107Wqtc2013 dist syswq-modeling-20131107
Wqtc2013 dist syswq-modeling-20131107John B. Cook, PE, CEO
 
WordPress WooCommerce for beginners
WordPress WooCommerce for beginners WordPress WooCommerce for beginners
WordPress WooCommerce for beginners slicejack
 

En vedette (7)

Rayyyyy 0002
Rayyyyy 0002Rayyyyy 0002
Rayyyyy 0002
 
Preferencia entre perredistas
Preferencia entre perredistasPreferencia entre perredistas
Preferencia entre perredistas
 
Dn13 u3 a27_slm
Dn13 u3 a27_slmDn13 u3 a27_slm
Dn13 u3 a27_slm
 
Wqtc2013 dist syswq-modeling-20131107
Wqtc2013 dist syswq-modeling-20131107Wqtc2013 dist syswq-modeling-20131107
Wqtc2013 dist syswq-modeling-20131107
 
Sample ppt
Sample pptSample ppt
Sample ppt
 
WordPress WooCommerce for beginners
WordPress WooCommerce for beginners WordPress WooCommerce for beginners
WordPress WooCommerce for beginners
 
Matemática para crianças2
Matemática para crianças2Matemática para crianças2
Matemática para crianças2
 

Similaire à Estudo sistemas operacionais p2

Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosRobson Ferreira
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSilvano Oliveira
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinMarcos Castro
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Evandro Júnior
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de ProcessosFatec Jales
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de EscalonamentoJunior Cesar
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre ProcessosRafaelPessoa22
 
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfssuser1d8ddd
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoAlexandre Duarte
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrênciaPaulo Fonseca
 
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)..."Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...WeOp - The Operations Summit
 
Monitoração - muito além do sistema operacional - WeOp 2014
Monitoração - muito além do sistema operacional - WeOp 2014Monitoração - muito além do sistema operacional - WeOp 2014
Monitoração - muito além do sistema operacional - WeOp 2014Marcus Vechiato
 

Similaire à Estudo sistemas operacionais p2 (20)

Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
 
S.o aula 1516
S.o aula 1516S.o aula 1516
S.o aula 1516
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round Robin
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de Processos
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de Escalonamento
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre Processos
 
gabarito.pdf
gabarito.pdfgabarito.pdf
gabarito.pdf
 
Atps sistemas operacionais
Atps sistemas operacionaisAtps sistemas operacionais
Atps sistemas operacionais
 
S.o aula 9101112
S.o aula 9101112S.o aula 9101112
S.o aula 9101112
 
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdf
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Apostila 3 concorrência
Apostila 3   concorrênciaApostila 3   concorrência
Apostila 3 concorrência
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)..."Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...
"Monitoração - muito além do sistema operacional" - Marcus Vechiato (Locaweb)...
 
Barbeiro Sonolento
Barbeiro SonolentoBarbeiro Sonolento
Barbeiro Sonolento
 
Monitoração - muito além do sistema operacional - WeOp 2014
Monitoração - muito além do sistema operacional - WeOp 2014Monitoração - muito além do sistema operacional - WeOp 2014
Monitoração - muito além do sistema operacional - WeOp 2014
 

Estudo sistemas operacionais p2

  • 1. Estudo Sistemas Operacionais Perguntas e respostas Qual a metodologia do utilizada em semáforo? O semáforo possui uma variável responsável por identificar o número de wakeup salvos para uma possível utilização futura. Esta variável semáforo pode ter o valor de 0 indicando que nenhum wakeup foi salvo ou um ou mais indicando que wakeups já foram salvos. Duas operações são utilizadas para a execução de um semáforo (DOWN e UP). A operação Down em um semáforo verifica se a variável é maior que zero. Caso seja maior que 0 a operação continua normalmente decrementando o valor da variável e utilizando um wakeup armazenado. Caso o valor seja igual a 1, o processo corrente é colocado para dormir e este não termina de realizar a operação DOWN. A operação UP é utilizada para incrementar o valor da variável e acordar algum dos processos que estavam dormindo pela operação DOWN e possibilitar e complete a operação. Permite fazer com que menos processos esteja no estado de dormindo. Como ocultar a interrupção em um processo que utiliza semáforos? Deve-se configurar um semáforo com um valor de 0 para um dispositivo de E/S. Após inicializado este processo, o gerenciador de interrupções faz um DOWN no semáforo associado, bloqueando logo em seguida. Quando a interrupção chega, o gerenciador faz um UP no semáfaro e torna o processo relevante pronto para executar novamente. Como utilizar um semáforo para a resolução do problema do jantar dos filósofos? Para resolver o problema do jantar dos filósofos, são utilizados três semáforos denominados full , para indicar a quantidade de entradas que estão ocupadas, empty para indicar a quantidade de entradas que estão livres e mutex utilizado para permitir que produtores e consumidores não acessem o buffer ao mesmo tempo. Inicialmente, Full possui o valor de 0, empty possui o valor da quantidade permitida no buffer e mutex possui o valor de 1 (semáforo binário). Deve-se dizer que a responsabilidade pela exclusão mútua cabe ao semáforo mutex. Exemplifique a má utilização de semáforos? O que pode ocorrer? While (true){ Produce_item(&item); Down (&empty); // diminui o número de entradas livres Down (&mutex); // entra na região crítica Enter_item; //insere item no buffer Up (&mutex); //sai da região crítica Up (&full); // aumenta a quantidade de casas ocupadas }
  • 2. Um exemplo de má utilização de semáforos é por exemplo invertermos um dos dois Downs no procedimento do produtor. Considerando que o buffer estivesse cheio, teríamos que o buffer entraria na região crítica, e logo em seguida seria bloquado, com o mutex sendo 0, logo em seguida o consumidor tentaria acessar o buffer o com o mutex igual a 0 ele também se bloquearia. Logo ocorreria um deadlock, ou seja, dois processos bloqueados, um esperando a execução do outro. Qual a característica que faz com que os monitores garantam a exclusão mútua? Uma característica particular dos monitores é que em um monitor apenas um processo estará ativo. Quando um processo acessa o procedimento dentro do monitor, o monitor logo se encarrega de verificar se não existe outro processo ativo. Caso tenha um processo ativo, o processo que fez acesso ao procedimento será suspenso, caso contrário, ele poderá entrar na região. É importante saber que está exclusão mútua é de responsabilidade do compilador. Qual a desvantagem da utilização de semáforos e monitores? Semáforos e monitores foram projetados para garantir a exclusão mútua em um ou mais processadores que têm acesso a memória comum. Quando vamos para um sistema com dois ou mais processadores operando de forma distribuída, compartilhando várias memórias privadas e em uma rede local, esta questão de exclusão mútua pode tornar-se inaplicável. Qual a utilidade de um agendador no sistema operacional? Muitas vezes ocorre de um ou mais processos poderem ser executados em um determinado instante. Cabe ao agendador do sistema operacional, escolher por algoritmos de agendamento um processo que melhor satisfaça as seguintes questões: deve ser dado aos processos uma PARTE justa da CPU, deve diminuir o tempo de resposta dos usuários, deve fazer com que a CPU esteja ocupada 100% do tempo e deve maximizar o número de Jobs processados por hora. Faça uma relação entre a evolução dos CPUS e os algoritmos de agendamento? Antigamente os recursos tecnológicos eram escassos de maneira que era exigido dos algoritmos de escalonamento uma perfomace boa a ponto de garantir um balanceamento perto do ótimo. Com o avanço da evolução tecnológica os algoritmos de agendamento não precisam ser tão rigorosos asssim visto que, a percepção dos usuários é inibida pelo clock das novas máquinas. Quais são as obrigações de um escalonador ? Primeiramente um escalonador deve selecionar o processo a ser executado. Para esta escolha o deve-se também fazer um uso eficiente da CPU. Deve-se saber que alternar entre um processo e outro e muito caro computacionalmente. Deve-se armazenar os registradores do processo na tabela de processos. O cachê também deve ser armazenado. O processo deve ser selecionado. O processo deve ser inicializado. Deve ocorrer a troca de contexto. Quando escalonar um processo? Existem situações triviais em que o escalonamento de processos deve ocorrer tais como: quando o processo termina, quando o processo se bloqueia. As políticas de escalonamento podem ser geradas a cada interrupção de clock ou a partir da K-ézima interrupção de clock. Cite e explique as categorias de escalonamento.
  • 3. Os escalonamentos podem ser não-preemptivos ou preemptivos. Para os escalonamentos pré-emptivos temos que: O processo e executado até ele terminar; ou O processo é executado até ele se bloquear Ou seja, para escalonamentos pré-emptivos temos que nenhuma decisão de escalonamento é tomada em função da interrupção do relógio. Para escalonamentos pré-emptivos temos que: O escalonador escolhe um processo e o executa até que o escalonador queira; ou O processo deixa a CPU quando o processo termina; ou O processo deixa a CPU quando o processo se bloqueia; Cite e explique as categorias dos algoritmos de escalonamento. Os algoritmos de escalonamento podem estar divididos em duas categorias: Em lote: nestes, não há usuários impacientes por resultados. As políticas não preemptivas são utilizadas para melhorar o desempenho do sistema. Iterativos: As políticas preeptivas são utilizadas. Quais as características do algoritmo de escalonamento para cada tipo de sistemas? Para todos os sistemas temos que a política de escalonamento deve ser : • Justiça – conceder cada processo uma parte justa da CPU; • Rigor da Política: verificar se a política esta realmente sendo cumprida; • Equilíbrio: manter ocupadas todas as partes do sistema; Para sistemas em lotes temos que a política de escalonamento deve garantir: • Vazão – aumentar o numero de Jobs por hora; • Tempo de retorno – diminuir o tempo entre a submissão e término; • Utilização da UCP – manter a CPU ocupada o tempo todo; Para sistemas interativos temos que as políticas de escalonamento devem privilegiar: • Tempo de resposta – responder rapidamente as requisições • Proporcionalidade – satisfazer as expectativas do usuário Para o escalonamento de sistemas em Lote, explique sobre FIRST COME, FIRST SERVED? Temos que esta forma de escalonamento é não preemptiva, ou seja, o processo é executado até seu término ou até que ele se bloqueie. Temos que ele é um escalonamento onde o primeiro processo a entrar na fila de prontos será o processo a ser executado. Sendo assim esta forma é de fácil entendimento, de fácil implementação. Possui algumas desvantagens como: processos de maior prioridade podem estar no final da fila e ser executados por último, processos independentes que seriam executados rapidamente podem estar no final da fila e esperar por processos demorados. Para o escalonamento de sistema em lote, O MENOR JOB PRIMEIRO comente sobre como este método pode ser vantajoso.
  • 4. Existe uma política de escalonamento para sistemas em Lote, que utiliza o menor job primeiro com o objetivo de reduzir o média por espera. Considere 4 processos A,B,C e D possuindo os seguintes tempos de execução 8,4,4,4. Executando-se nesta ordem teríamos o tempo de retorno para A de 8min, 12min de B, 16 min de C e 20 de D com uma média de 14min. A gora considerando a execução do job mais curto primeiro temos que os tempos de retorno seriam 4min,8min,12min e 20 min com uma média de 11min. Desta forma acaba sendo política de agendamento ótima, pois diminui o tempo médio de resposta. A desvantagem é que precisa utilizar técnicas caras computacionalmente para obter o tempo prévio de cada job. Explique sobre a política de escalonamento “Próximo do menor tempo restante” . A diferença entre as políticas de sistemas em Lote é que este é um método pré-emptivo. Quando um novo job passa para o estado de pronto, o escalonador pode interromper a execução do atual, e fornecer a CPU ao novo job,bloqueando o job em execução. Uma desvantagem é que Jobs com uma prioridade maior podem ter sua execução bloqueada. Explique sobre a política de escalonamento “ROUND ROBIN (Alternância Circular)” para sistemas iterativos . Nesta política de escalonamento é concedido a cada processo um intervalo de tempo (quantun). Este intervalo de tempo é o tempo necessário para que cada processo fique na CPU se sofrer interrupções.Existem três formas de um processo DEIXAR a CPU tais como: quando o tempo acaba (ocasionado pelo quantun), quando o processo se bloqueia, quando o processo termina. Uma questão interessante nesta política é a quantidade de tempo utilizada para a troca de processo. A troca de processo para outro requer uma certo tempo para fazer esta administração. De maneira que como desvantagem podemos citar o fato de que, para quantuns muito pequenos teremos uma quantidade maior de tempo gasto com administração de troca de processos e a eficiência da CPU É REDUZIDA. Porém para quantum muito longos, a resposta pode ser inificiente para curtas requisições iterativas. Explique sobre o algoritmo de escalonamento por prioridades. Os outros algoritmos de escalonamento consideram cada um dos processos como sendo iguais uns aos outros quanto a sua execução. A questão é que em sistemas iterativos, ocorre que um determinado processo sempre possui uma prioridade maior que outro processo.Por exemplo, processos que possuem uma comunicação direta com o usuário tendem a ter uma prioridade de execução maior. O escalonamento por prioridades faz justamente isto, insere cada um dos processos em uma categoria de prioridades, de maneira que os processos que estão em uma categoria de prioridade maior tendem a ser executados primeiro. Dentro de uma categoria de prioridades pode haver vários processos. Dentro de cada categoria, a execução de cada um dos processos pode ser tratado com o algoritmo de alternância circular. Um problema encontrado neste algoritmo é que pode ocorrer de processos que estão em uma categoria de prioridade menor pode nunca vir a ser executado(starvation – quando um processo espera pela alocação de recursos). Para que isto não ocorra o sistema operacional deve sempre fazer uma manutenção efetiva nas prioridades de cada processo.Por exemplo, verificando que um processo esta a 3 segundos sem ser executado ele terá sua prioridade incrementada em uma unidade (quando voltar para a fila de prontos voltará com sua prioridade normal).
  • 5. Explique sobre o escalonamento garantido . No escalonamento garantido o computador deve garantir que se N usuários estão conectados, cada um deve receber uma parte de 1/n da CPU. O método análogo pode ocorrer com o número de quantidade de processos ativos. A questão é que esta política é de difícil implementação, ou seja, o sistema deve monitorar quanto da CPU cada processo teve desde a sua execução, quanto foi atribuído a cada um, para assim calcular o tempo real da CPU e o tempo atribuído. Explique sobre o escalonamento por sorteio. O sistema operacional disponibiliza bilhetes para cada um dos processos. Após isto o sistema operacional sorteia um bilhete. O processo que possui o bilhete em questão é premiado, tem acesso a CPU. Para processos com uma importância maior são oferecidos bilhetes extras, ou seja, uma forma de aumentar a prioridade. A probalidade de um processo ocupar a CPU é de numero de bilhetes que o processo possui/ numero total de bilhetes. Uma desvantagem desta forma de escalonamento é que o sistema operacional acaba perdendo o controle sobre os processos que estão “morrendo de fome” esperando por recursos. Uma outra desvantagem é o fato de a probabilidade depender de números aleatórios. O que são deadlocks ? Os deadlocks ocorrem quando um processo disputa por um ou mais recursos. Quando não há controle de acesso sobre um recurso comum, danos irreparáveis podem ocorrer. Uma definição para deadlock é “Um processo esta em deadlock se todos os processos/threads deste conjunto estiver esperando um evento acontecer, que somente estas threads/processos deste conjunto poderá realizar . Explique recursos preemptíveis e não preemptiveis. Os recursos pré-emptivos são recursos que não podem ser retirados dos processos particulares sem que ocorra erro. Como por exemplo, CPU e o memória. Recursos não pré-emptiveis são recursos em que não podem ser retirados dos processos particulares, caso isso aconteça pode ocorrer erro. Por exemplo, se um processo começou a gravar um cd, ele não pode passar, a gravadora para um outro processo. OS DEADLOCKS ESTÃO RELACIONADOS COM RECURSOS NÃO PREEMPTIVEIS Quais são as 4 condições para que haja deadlocks? Condição de exclusão mútua: Um recurso só pode estar alocado a apenas um processo em um determinado instante. Condição de posse e espera: Processos que possuem recursos alocados podem solicitar outros. Condição de não pré-empção: Recursos alocados por um processo não podem ser retirados do processo que o alocou. Somente o processo que alocou o recurso pode liberá-lo.