Buscar

Revisão AV1 - Sistemas Operacionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Revisão AV1
Camadas de apresentação de Sistemas Operacionais
“Cima para Baixo”
Usuário – Faz as solicitações dos aplicativos que deseja usar;
Shell – Recebe um pedido e chama um aplicativo;
Aplicativos – Se comunica com o Kernel e pede a permissão quando é solicitado;
SO (Kernel) – Gerencia o hardware, é o primeiro aplicativo executado quando a máquina faz o boot;
Hardware (Virtual)
ISA – É um software que entra depois do boot e antes do SO que faz o reconhecimento do Hardware para o sistema;
Hardware (Real)
Kernel – É o Sistema operacional.
Usuários
Sistema Mono usuário – Não tem conta de usuário, sempre será acesso root.
Sistema Multiusuário – Trabalha com grupos de permissão. Em sistemas atuais, a máquina pode contar com mais de um usuário logado.
Processadores
Mono Processado – Sistema com um único processador, podem trabalhar com concorrência (vários recursos para um processador, então os processos fazem uma fila)
Multiprocessado – Pode realizar paralelismo, onde cada usuário pode usar um processador simultaneamente. Podem ser de dois tipos:
	Fortemente acoplados – HPC (High Performance Computation). Podem ser simétricos e assimétricos.
	Fracamente acoplados – Cluster/MPI, GRID, Cloud. Podem ser de rede e distribuídos.
Tarefas
Monotarefa – Projetado para um sistema mono usuário.
Multitarefas – Um sistema multiusuário precisa obrigatoriamente ser multitarefas. Existem algum tipo de multitarefas.
	Batch – 
Time Sharing – Cada processo tem um tempo definido pra ser executado pelo sistema.
Real Time – Trabalha com prioridades, o processo é executado até o momento em que um processo com uma prioridade maior tem que ser executado.
Curiosidades
Java foi a primeira linguagem de programação a implementar o conceito de máquina virtual.
Para relembrar...
CSMA/CD - Ethernet
CSMA/CA - WIFI
Escalonamento de Processos
Fatores relevantes:
Utilização da CPU
Throughput - vazão
Turnaround – tempo de vida
Tempo de resposta
Escalonador – Agente que executa o escalonamento.
Deve impedir o Starvation (processos que consomem muitos recursos da máquina impedindo o funcionamento dos outros processos)
Processos bloqueados não afetam o escalonamento.
Escalonamento Não Preemptivo
Sistemas não preemptivos são mais sujeitos a starvations do que os preemptivos.
Escalonamento não Preemptivo – FIFO, SJF (Processos são enfileirados de acordo com o tempo de execução) e cooperativo (Ordenação da fila por prioridade, onde o processo pode escolher dar lugar ou não para o outro com prioridade maior).
IO ou CPU bound, como saber?
IO bound são processos que exigem menos da CPU.
CPU bound são processos que exigem muito da CPU.
São reconhecidos pelo time slice que utilizam.
Escalonamento Preemptivo
Não tem prioridade, funciona com ordem de chegada.
Funciona com uma unica fila do tipo FIFO e com um algoritmo circular onde os processos que chegam andam até o fim da fila, pegam o uso da CPU por um tempo determinado (time slice) e voltam ao fim da fila.
Prioridade estática – A prioridade não muda e os processos ganham CPU quando não existem outros de maior prioridade.
Prioridade dinâmica – A prioridade pode aumentar ou diminuir de acordo com o time slice.	
Mecanismo adaptativo – Prioriza IO bound. Preempção por prioridade o processo volta ao fim da fila de origem. Preempção por tempo o processo vai para o final da fila de prioridade “n+1”. Quando o processo vai para os bloqueados ganha prioridade “n-1”.
Sistemas de escalonamento com sistema fortemente acoplado – funciona com uma única fila e são escalonados para um processo livre.
Aplicativo x Processo
Aplicativo é binário, é a forma inerte. O processo existe a partir da execução de um aplicativo, é a forma viva do aplicativo.
Um aplicativo pode ter vários processos, porém um processo pertence a um único aplicativo.
Threads
Elementos ativos que podem interagir com o sistema e entre si.
Elementos que compartilham o mesmo conjunto de recursos.
Um processo pode ter vários threads, mas um thread só pertence a um único processo.
Todo thread individualiza o contexto de hardware.
Processos se comunicam por meio de sinais, porém os threads podem se comunicar por meio de variáveis compartilhadas.
Comunicação entre Processos
Um processo pode se comunicar através de sinais, variáveis compartilhadas e mensagens através da rede.
Normalmente chamada de IPC (Interprocess Comunication)
Trabalha com programação distribuída.
Mecanismos de sincronização e comunicação entre processos são usados para garantir a serialização.
Deadlock – Quando dois processos tentam usar o mesmo recurso e nenhum libera, o processo pai mata os dois e libera o recurso para outro processo usar.
R.C. (Região Crítica) – É importante que sejam definidas formas de bloqueio para que seja bloqueada a entrada de mais recursos na região critica.
Exclusão mutua com espera ocupada – Técnicas que rodam testando se um determinado recurso está ocupado.
Exclusão mutua sem espera ocupada – Sem perda de ciclos no loop de espera. Não tem necessidade de ficar testando. Pode gerar um deadlock. Um processo com alta prioridade pode prender para que um processo com baixa prioridade não possa entrar.
D.O.S. – Quando o sistema está vivo, rodando mas não responde, nem a um ‘ping’.
Condição de corrida – todos os processos disputando o mesmo recurso, gerando fila.
Região crítica – recurso que está sendo disputado.
Starvation – Quando o processo consome alguns recursos e tira a possibilidade dos outros processos utilizarem.
Exclusão mutua com espera ocupada
Variáveis de travamento – pode assumir o valor 0 ou 1, quando for 0, significa que está aberto para entrar na RC. Isso falha quando algum processo entra mas não há tempo de atualizar para 1 e fechar a RC.
TURN – Variável inteira compartilhada.
Algoritmo de Peterson – Define uma organização para entrada e saída da RC através de interesses, onde o processo que entra na RC está ligado nela e só sai quando perder o interesse, e o próximo a entrar é o que tem interesse e recebe a vez para entrar na RC.
Instruções TSL – realiza a entrada e saída da região crítica de forma eficaz fazendo com que seja atribuído o lock ao endereço de memória e assegurando que a RC continue trancada. Porém só é suportada em Assembly.
Exclusão mutua sem espera ocupada
Uma solução para essa metodologia é quando um processo entrar na RC, que seja mantida a prioridade maior.
Sleep (): coloca o processo para dormir (fila de bloqueado)
Wakeup (proc): acorda o processo que estava na fila de bloqueado
Técnica de semáforo – evolução da técnica de sleep/wakeup.
Valor 1 quando a RC está liberada.
Quando o valor se torna 0 a RC está bloqueada para uso.
Processo dorme quando o valor for igual a zero.
Quando processo sai ele executa um UP.
Quando o processo entra ele executa um DOWN.
Podem ser binários ou contadores e/ou Genéricos.
Basta um processo estar na RC para o Semáforo apresentar o valor 0
Se os processos estiverem em outras regiões o Semáforo apresenta o valor 1
Semáforo binário é usado em um só recurso.
Semáforos não binários são usados quando existe mais de um recurso para ser protegido.
Monitores – Técnica de controle da RC mais adequada pois é controlada pelo SO. São implementadas como um conjunto de procedimentos. Funciona em linguagens de alto nível.
O que dá o acoplamento ao sistema é a possibilidade de uso das variáveis compartilhadas.
Ex: Um sistema com memória compartilhada é fortemente acoplado.
AV1 – Introdução até Gerencia de tempo da CPU.
Obs.: Dar uma olhada no slide da Simone.

Continue navegando