Conceitos Essenciais de Sistemas Operacionais

Classificado em Computação

Escrito em em português com um tamanho de 3,52 KB

Modo Núcleo vs Modo Usuário em SOs

Modo Núcleo é quando uma aplicação pode executar instruções privilegiadas e não privilegiadas, ou seja, instruções que oferecem risco ao sistema.

Modo Usuário é quando uma aplicação só pode executar instruções não privilegiadas, que não oferecem riscos ao sistema.

A existência de ambos os modos permite que o usuário execute programas no modo usuário, negando acesso direto a instruções críticas.

Instruções Restritas ao Modo Núcleo

Instruções deixadas apenas em modo núcleo incluem:

  • Desabilitar interrupções
  • Configurar relógio de hora e dia
  • Mudar mapa de memória

Essas instruções são restritas ao modo núcleo (ou kernel) por serem críticas para a segurança e estabilidade do sistema.

Transições de Estado Causadas pelo Escalonador

As transições de estado causadas pelo escalonador incluem:

  • Executando -> Pronto: O escalonador determina que o processo já utilizou tempo suficiente da CPU e deve ceder a vez a outro.
  • Pronto -> Executando: O escalonador seleciona um processo pronto para ser executado na CPU.

Processos e Programas: São Sinônimos?

Falso.

Um programa é um conjunto de instruções estáticas. Um processo é uma instância de um programa em execução, possuindo seu próprio estado, registradores e uma entrada na tabela de processos do sistema operacional.

Compartilhamento de Recursos por Threads

Uma thread compartilha:

  • Arquivos abertos
  • Variáveis globais
  • Espaço de endereço do processo

Uma thread não compartilha:

  • Seu próprio estado (registradores)
  • Ponteiro de instrução (contador de programa)
  • Pilha de execução

Rotinas de Biblioteca vs Chamadas de Sistema

Sim, é importante que um programador saiba quais rotinas de biblioteca resultam em chamadas de sistema, principalmente pela questão do desempenho.

Chamadas ao sistema são operações mais custosas, pois requerem uma transição do modo usuário para o modo núcleo (kernel). Isso envolve salvar o contexto do processo atual, executar a rotina no kernel e restaurar o contexto ao retornar ao modo usuário. Esse processo de troca de contexto consome tempo, impactando a performance da aplicação, especialmente se chamadas de sistema forem feitas frequentemente.

Tempo de Execução: Sequencial vs Paralelo com E/S

Considerando duas tarefas (T1 e T2), cada uma necessitando de 20 minutos de tempo de CPU e com 50% de espera por operações de Entrada/Saída (E/S).

Execução Sequencial:

T1 leva 40 minutos para completar (20 min CPU + 20 min E/S). T2 só começa após T1 terminar e também leva 40 minutos. O tempo total para ambas as tarefas completarem sequencialmente é de 40 min (T1) + 40 min (T2) = 80 minutos.

Execução Paralela:

Com ambas as tarefas executando em paralelo, a CPU pode alternar entre elas. Se cada tarefa utiliza 50% do tempo em E/S, elas utilizam a CPU nos outros 50%. O texto original calcula que, para obter os 20 minutos de tempo de CPU necessários para cada tarefa, elas precisam ser executadas por aproximadamente 53.33 minutos (20 / 0.375). Portanto, as tarefas terminam após aproximadamente 53.33 minutos quando executadas em paralelo.

Entradas relacionadas: