Anda di halaman 1dari 7

~* Sistemas Operacionais *~

------ ***Sincronização
-- Processos de Sincronização de Comunicação entre Processos
Isto ocorre quando mais de um Processo tenta acessar um mesmo lugar.

Exemplo: Impressão

-- Condição de Corrida: Toda vez que existirem mais de 1 processo


utilizando um mesmo dispositivo, haverá
condição de corrida, sempre em cima de recursos da
maquina

-- Troca de Informação entre Processos: Quando há a necessidade de um


processo que determinada ação foi
encerrada.

-- Recursos Compartilhados.
-- Exclusão Mútua: Evita Conflitos.

1 - São como Gestores de Recursos.


2 - SO.

[Usuario] -> Software Aplicativo -----SO------> Hardware.

------ ***Processos

--Processos: Quando programa passa a ser executado ele é um processo.


-Um processo só pode ser executado se o mesmo estiver na memoria.

--Tabela de Processos: Onde fica os estados do processo como todo.

-Novo : O processo é criado.


-Execução/Rodando : Se está associado a um processador que esta
executando suas instruções.
-Pronto : Para execução, se o processo aguardar sua vez para
executar(processador indisponivel)
-Bloqueado/Espera : Se o processo aguarda que ocorra algum evento para
continuar a executar(término de E/S, receptçãod e
Sinal).
-Termino : O Processo terminou sua execução.

Processamento :
1 - Uma CPU fica disponivel para o processo, que passa o estado de
pronto para o de execução.
2 - O processo necessita de algo que não esta disponivel para
continuar a ser executado, assim, passa de em execução para bloqueado,
aguardando a satisfação de sua necessidade.
3 - A necessidade do processo é satisfeita, podendo então passar de
bloqueado/espera para pronto para execução
4 - O uso da CPU exclusivamente por um só processo deve ser evitado
para isso pode existir um tempo maximo em execução continua, apos o
qual o processo passa a em execução para pronto, permitindo que outro
processo use a CPU.

------ ***Conceitos Básicos


-So Batch
-so monoprogramado
-so multiprogramado
-so multitarefa(temp. compartilhado)
-so de tempo real.

Batch : Os programas quando executados são armazenados em disco ou


fita, onde esperam para serem atendidos. Normalmente programas que
não possuem interface com o usuario.

-Monoprogramas : O sistema processa apenas um unico processo, este


processo tem alocação de memoria, perifericos e
processador totalmente exclusivos para sua execução e
processamento.

-Monotarefa : O sistema processa apenas uma tarefa de cada vez, o


mais famoso sistema conhecido é o MS-DOS.

------ ***Multiprogramação x Multiprocessamento

--Multitarefa : É possivel repatir a utilização do processador


entre varias tarefas simultaneamente.

--Multiprogramado : É possivel repatir a utilização do processador e


recursos entre os processos ativos na maquina de
acordo com o nivel de prioridade ou o estagio de
execução de cada um dos programas.

--MultiprogramaçãO : É a capacidade do sistema operacional executar


simultaneamente dois ou mais processos. Diferente da
mutitarefa pois simula a simultaneidade,
utilizando-se de varios recursos, sendo o
principal o Compartilhamento de Tempo do usuo do
processador.

--Tempo Compartilhado : O sistema operaciona aloca uma fatia de


tempo (time-slice) do processador para
cada processo ativo, caso o processo não
esteja concluido nesse intervalo de tempo o
mesmo é substituido por um outro e fica
esperando por uma nova fatia de tempo.
--Tempo Real : Semelhante ao tempo compartilhado, apenas sendo maior a
diferença do tempo de resposta exigido na execução, ou
seja, o processo entra no processador ate acabar ou até um
outro processo prioritario aparecer, isto é
controlado pela propria aplicação e não pelo sistema
operacional. (Monitor)

-- SO: é o software que gerencia os recursos de hardware.


[Aplicativo] --> SO --> Hardware.

--System Call: Interface de alto nivel ao do SO fazer determinada


função no sistema operacional, ou mais
especificadamente, do nucleo do sistema operacional.

------ ***Exclusão Mútua


--O que é?
É uma tecnica utilizada para evitar que dois processos tenham acesso
simultaneamente a um recurso compartilhado numa determinada região critica.

--Criterios para uma cooperação eficiente entre processos:


1 - Não poderá haver mais de um processo simultaneamente em uma mesma
região critica.
2 - Não podem ser feitas suposições sobre a velocidade relativa doas
processos e nem sobre o numero de CPU's.
3 - Nenhum processo devará ter tempo relativamente longo para entrar
em sua RC.

------ ***Exclusão Mútua Com Espera Ocupada


--O que é?
Igual a exclusão mutua comum, porem é utilizado variaveis para indicar que
o processo poderá ou não entrar na região critica.Se por um acaso o processo
morrer na RC, é necessario abortar o sistema.

--Criterios para uma cooperação eficiente entre processos:


1 - Variaveis de Comporta.
2 - Alteranancia Estrutura > Conflito em 2 e 4
3 - Solução de Perteson (Para entrar na RC é necessário pegar uma
senha, se dois processos tiverem uma mesma senha o processo mais
antigo tera mais prioridade) o Algoritmo do Padeiro.

--Acontece Apenas em Exclusão Mutua Com Espera Ocupada:

-- Alternancia Estrita : Um processo passa a vez para o proximo, e essa


vez do proximo tem que estar no código.

-- Prioridade Invertida: Um processo que deveria ter mais prioridade


perde-a.
-- Escolha de Prioritario: Mesmo que um determinado Processo seja o
ultimo, dependendo de sua prioridade o mesmo
torna-se ser o primeiro.

-- Exclusão Mutua com Bloqueio

--O que é?
Igual a exclusão mutua comum, porem é utilizado variaveis para
indicar que o processo poderá ou não entrar na região critica,
também é utilizado variaveis para fazer processos sleep e wake up.Se por
um acaso o processo morrer na RC, é necessario abortar o sistema.

-- Comandos Primitivas:
-Sleep();
-Wakeup();

--Algoritmo

--Processo produtor
{
while true;
}

produz_item(i);
if cont = n
sleep()
buffer[int]=i
cont=cont+1
if cont =1
wake uo(consumidor)
}
}

--Processo consumidor

{
while(true)
}
//rc
if cont = 0
sleep();
i = buffer [cont]
cont=cont=1
if cont=n-1
wakeup();
consome(i);
}
//fim rc
}

--Semaforos

get_pproblem(espere)
p(semaforoS)//S variavel semaforo
{
desabilita interrupçãop
if(s=0)
sleep()
elese
s=s-1;//habilita interrupção
}

//sinal verde

v(semaforicaS)
{
desabilita interrupção
if (s = 0 ee existeprocessoxbloqueado em S)
wakeup(x)
else
s=s+1;habilita interrupção
}

semaforo muti x = 1
p(mutx)

-> promove exclusao mutua

[RC]

v(mutx)

--Processo Produto
{
while(true)
}
produz_item(i);
pvazio()
p(mutix);
insere_item(i)
v(mutix)
v(cheio)
}
}

Processo Consumidor
{
while(true)
}
p(cheio)
p(multx)

retira_item(i)//rc
v(mutx)
v()vazio
consome(i);
}
}

//semaforo cheio = 0
//semafor
o vazio = n

//semafor muti x= 1
//-binario

[processado] x++3 ou mais instruções de maquina


||||||||||||
|
---> Variaveis do processador(Registradores).

PC = Program Contin (Controlador de Programa).

--- Monitor:
- Em um monitor se agrupam rotinas variaveis de estrutura de dados,
os monitores apresentam as seguintes caracteristicas:

- Os processos chamam rotinas do monitor mas não tem acesso as


variaveis internas do monitor.
- Apenas um processo pode estar ativo no monitor em cada
instante(exclusão mutua).
- O monitor é reconhecido pelo compilador e dessa forma tratado
de um modo especial.
- Quem escreve as rotinas do monitor não precisa saber como a
execução do monitor sera implementada bastando colocar as regiões
criticas dentro das rotinas do monitor.
- O compilador é responsavel pela construção dos mecanismos de
exclusão mutua.

--Algoritmo:

Monitor Produtor_Consumidor

{
bool cheio, vazio;
int cent = 0;

void coloca(item)
{
if(cont = = n)
{
wait(cheio)
buffer[co
cont++;

if(cont ==1)nt] = item;


signal(vazio)
}

void retira(item)
{
if(cont==0)
wait(vazio);
item=buffer[cont];
cont --;
if(cont == n-1)
signal(cheio);
}
}//fim do monitor

void Produtor()
{
while(true)
{
produz(item);
produtor_consumidor_coloca(item);
}
}

Anda mungkin juga menyukai