Sistemas Operacionais: Conceitos e Funcionalidades

Classificado em Computação

Escrito em em português com um tamanho de 7,94 KB.

- S.O.: Programa ou conjunto de programas que fazem a intermediação entre o hardware e o usuário.

- S.O. estático: Projetado para executar uma única operação.

- S.O. dinâmico possuem um número variável de processos. Necessita de uma forma de criar e destruir.

- Multiprogramados mantêm mais de um programa simultaneamente na memória para permitir o compartilhamento efetivo do tempo.

- Multiprocessados executam suas tarefas em múltiplas UCPS.

- Processo: Programas em execução, incluindo os valores correntes do contador de programa, registradores e variáveis. Conceito dinâmico.

- Criação de um processo: Inicialização do sistema, requisição do usuário, processo em execução chama outro processo.

- Término: Saída normal, erro, erro fatal, destruído por outro processo.

- BCP - Contém informações sobre o processo: Identificação, estado, prioridade, localização, contador.

--------------------------------------------------

- Indefinido: Processo desconhecido pelo S.O.

- Bloqueado: Aguarda um evento.

- Pronto para execução: Aguardando outro processo sair do processador.

- Em Execução: Processo dentro do processador, está sendo executado.

- Criar: Processo na memória, torna conhecido pelo S.O.

- Acordar: Libera o andamento.

- Despachar: Dar sequência imediata ao andamento.

- Bloquear: Para o andamento do processo, aguarda evento.

- Preempção: Para por motivos alheios.

- Destruir: Libera a área de memória ocupada pelo processo.



- Escalonador: Avalia os processos e decide qual o processo rodará primeiro.

- Escalonamento de processos: Atividade organizacional feita pelo escalonador da CPU, possibilitando executar os processos mais viáveis e concorrentes, priorizando determinados tipos de processos como I/O.

- Curto prazo: Pronto para execução para em execução.

- Médio prazo: Em execução para bloqueado.

- Longo prazo: Olha a área do swap.

- Para que a CPU não fique muito tempo sem executar nada, os S.O. utilizam técnicas para escalonar os processos que estão em execução ao mesmo tempo.

- Critérios de Escalonamento: Uso da CPU, fração de tempo que está sendo ocupada, intervalo entre chegada ao sistema e início de sua execução, tempo de espera.

- FIFO: Primeiro que chega, primeiro a ser executado.

- SJF: Menor processo ganhará a CPU, fila por ordem crescente. - SRT Escolhido quem possui o menor tempo restante. - RR O S.O. possui um timer chamado quantum, onde todos os processos ganham o mesmo valor de quantum para rodarem na CPU.

- Preemptivo: Libera o processador para outro processo ganhar um quantum para executar e retornar a executar assim que possível. Não preemptivo não tem quantum, processo roda pelo tempo que for necessário.

Quantum: Tempo que o processo ganha ao ser despachado para execução.

- Performance = executar até acabar o workload.

- Tempo de resposta = apresentar o processo quando o usuário solicitar, impossível ter os 2.

- Gerenciamento de memória = alocar e desalocar um espaço na memória principal dos processos que estão em execução.



- Threads: Linha de execução, plano de execução, todos processo têm uma thread, ou seja, um caminho a ser percorrido. Possuem interdependência, uma vez que possuem privadamente: contador de programa, registradores, pilha e estado.

- Multithread: Existência de vários threads no mesmo processo, na troca de processos as tarefas são alternadas internamente.

- Benefícios: Processo pode ser dividido em mais de uma linha de tarefas, quando uma linha está esperando determinado dispositivo de I/O ou recurso do sistema, o processo não fica parado. Quando uma linha de execução entra em bloqueio, a outra aguarda na fila de prontos para executar.

- Contras: Roda apenas em um processador, não podem ser temporizadas, devem abrir mão voluntariamente.

- Thread no kernel: Núcleo conhece e gerencia, kernel mantém a informação de contexto para processos e threads. As threads podem aproveitar o multiprocessamento.

- 4 operações básicas:

- Criação: Uma linha de execução pode dividir-se em 2 e depois executam simultaneamente.

- Término: Terminado trabalho, a thread termina. Quando o pai termina, todas as variáveis são perdidas e as filhas não poderão acessar os recursos.

- Junção: A thread pode executar a join e aguardar até a outra terminar.

- Rendição: Para não ocupar a CPU por um longo tempo, a execução é suspensa e a CPU passa para outra thread em execução. Esta aguardará até a CPU tornar-se disponível novamente.

- Threads também necessitam de escalonamento, devido à alternância de tarefas, falsa ilusão de estar rodando em simultâneo.

- Último: Programador define o algoritmo de escalonamento, só não interfere. Programador é responsável por criar, executar, escalonar e destruir.



KLT: Escalonados pelo S.O., são mais lentas que a última, pois a cada chamada necessita consultar o sistema, exigindo assim a mudança total de contexto do processador.

Da mesma forma que os processos sofrem escalonamento, as threads também precisam.

- Escalonamento - threads em modo usuário: Passamos o controle ao processo, enquanto seu quantum for válido, ele irá decidir qual a thread irá rodar.

- Thread x processo: Processos carregam considerável estado da informação, têm endereço de MP separado e interagem somente através de mecanismos de inter-processos de comunicação.

- As threads, por outro lado, compartilham o estado da informação de processos únicos e compartilham MP e outros recursos diretamente.

Linha de execução assume estados:

- Criação: Processo pai está criando a thread, que é levada à fila de prontos.

- Execução: Linhas de execução estão na UCP.

- Pronto: Neste estado, a linha de execução avisa a CPU que pode entrar no estado de execução e entra na fila de prontos.

- Bloqueado: Neste estado, por algum motivo, a CPU bloqueia a linha de execução, enquanto aguarda I/O.

- Término: São desativados os contextos de hardware e a pilha é deslocada.



- Aplicação, S.O., hardware. Máquina multinível: ->

- Aplicações: Base de dados, jogos; - Software básico: Compiladores, S.O. - Hardware: Linguagem de máquina, dispositivos físicos.

Um S.O. pode processar sua carga de trabalho (workload) de duas formas:
● Serial: Neste, os recursos são dedicados a um único programa, até o seu término.
● Concorrente: Os recursos são dinamicamente reassociados entre uma coleção de programas ativos, em diferentes estágios de execução.

Classificação quanto ao compartilhamento de hardware:

- Monoprogramado: 1 programa em um dado período de tempo, o qual permanece na memória até seu término.

- S.O. para processamento em Batch (lote): Os jobs dos usuários são submetidos em ordem sequencial para a execução.

- S.O. Interativo: O sistema permite que os usuários interajam com suas computações na forma de diálogo.

- S.O. de Tempo Real: Usados para servir aplicações que atendem processos externos e que possuem tempos de resposta limitados.

* A ideia básica é criar um S.O. como uma hierarquia de níveis de abstração, de modo que, a cada nível, os detalhes de operação dos níveis inferiores possam ser ignorados. Através disso, cada nível pode confiar nos objetos e operações fornecidas pelos níveis inferiores.

O (VM) cria um nível intermediário entre o hardware e o S.O., denominado Gerência de Máquinas Virtuais. Este nível cria diversas máquinas virtuais independentes, onde cada uma oferece uma cópia virtual do hardware, incluindo modos de acesso, interrupções, dispositivos de E/S, etc.


 

Entradas relacionadas: