Guia de Sistemas Operacionais: Processos e Memória

Classificado em Computação

Escrito em em português com um tamanho de 6 KB

1) O que é um sistema operacional? Onde ele se encaixa dentro de uma arquitetura de computadores?

Um sistema operacional (SO) é um conjunto de programas desenvolvidos para extrair o máximo de recursos do hardware.

2) Quais as funções de um S.O.?

  • Gerenciar processamento, tratamento de interrupções, comunicação e sincronização de processos;
  • Gerenciar a memória do computador;
  • Prover interface com o usuário;
  • Gerenciamento de E/S (Entrada e Saída) e otimização do uso de periféricos;
  • Responsável pelo acesso e integridade de dados residentes na memória secundária.

3) Quais as características desejáveis de um S.O.?

  • Eficiência: baixo tempo de resposta, pouca ociosidade da UCP e alta taxa de processamento;
  • Confiabilidade: pouca incidência de falhas e exatidão dos dados computados;
  • Mantenabilidade: facilidade de correção ou incorporação de novas características;
  • Pequena dimensão: simplicidade e baixa ocupação da memória;
  • Concorrência: capacidade de manutenção de tarefas concorrentes;
  • Compartilhamento de recursos: gerência de recursos de hardware e software compartilhados.

4) Diferencie monoprogramação de multiprogramação.

Na monoprogramação, as tarefas enviadas para o processador ocorrem de forma linear, o que aumenta a carga da CPU e subutiliza recursos. Na multiprogramação, o processamento ocorre em paralelo, dividido pelos núcleos de processamento, otimizando ao máximo seu uso e o uso de memória.

5) O que são processos? Como se comportam seus estados dentro do ciclo de vida de um processo?

Processos são instâncias de um determinado programa. Um mesmo programa pode ser dividido em vários processos, e um processo é executado de cada vez.

Estados:

  • Criação → Apto: processo criado esperando sua execução;
  • Apto → Execução: é escolhido para execução (depende de políticas de escalonamento);
  • Execução → Término: evento de término;
  • Execução → Bloqueado: processo requisitou evento pelo qual deve esperar;
  • Bloqueado → Apto: recursos disponíveis.

6) O que são threads? Quais as vantagens de sua utilização?

Uma thread é uma forma de um processo dividir-se em várias partes para serem executadas concorrentemente. Em processadores multinucleares, esse processamento concorrente torna-se bastante vantajoso devido à velocidade de processamento.

7) Descreva o modelo comum de thread, incluindo as informações pertinentes a cada thread.

8) Qual a diferença entre implementar threads no espaço usuário ou no espaço núcleo?

A diferença é que, no espaço do usuário, o processo deve gerenciar as tabelas de threads e o núcleo não é informado sobre eles. No espaço do núcleo, este gerencia a tabela de processos e também a tabela de threads.

9) Quando se escalona entre processos? Quais os métodos existentes? Descreva dois deles.

O escalonamento é usado quando se cria um novo processo, ao término de um processo, quando um processo bloqueia para E/S, quando outro precisa ser executado ou quando ocorre uma interrupção de E/S.

  • FIFO: o primeiro processo que chega é o primeiro a ser executado;
  • Shortest Job First (SJF): o menor processo ganha a CPU, formando uma fila determinada pelo tamanho do processo.

10) Qual o esquema ideal de organização de memória para haver um bom gerenciamento?

Deve haver memória suficiente para o sistema operacional, drivers de E/S e programas do usuário.

11) Qual a importância do espaço de endereçamento para o gerenciamento de memória?

Alocar corretamente um determinado espaço para um processo, estabelecendo limites e mostrando ao processo qual espaço ele pode alocar na memória.

12) Explique o esquema de swapping. Quais os efeitos que podem ocorrer por este método? O que pode ser feito para melhorar estes possíveis efeitos?

O swapping consiste em trazer um processo para a memória, executá-lo durante um certo tempo e, então, devolvê-lo para o disco. Um dos efeitos é que pode deixar espaços em branco na memória e, consequentemente, causar queda de desempenho. Um dos gargalos da arquitetura é o HD. Uma das soluções para a melhora do desempenho é o uso de memória cache.

13) Explique as definições de memória virtual.

A memória virtual é uma técnica que usa parte da memória secundária como cache de armazenamento para estender a memória principal.

14) Explique as definições de paginação.

A paginação é uma técnica usada pelo sistema operacional onde o mesmo divide a memória principal e a memória secundária em páginas, com o intuito de aumentar a memória principal. Cada endereço virtual corresponde ao endereço físico onde a mesma está realmente armazenada. Desse modo, o armazenamento não necessita ser sequencial.

15) Como pode ser tratada a falta de páginas?

16) Explique as definições de segmentação.

O processo de segmentação consiste em dividir espaços de endereços em blocos de diferentes tamanhos. Pode-se definir como uma paginação flexível, com a criação de blocos independentes. É a divisão do software em espaços de memória, diferenciando-se da paginação pelo fato de os blocos de memória serem flexíveis e independentes.

17) Quais as características dos sistemas de arquivos: FAT32, NTFS e EXT4?

Entradas relacionadas: