Resumo So
Resumo So
Resumo So
Sistemas Monoprogramáveis
permitir que todos os recursos do sistema fiquem exclusivamente dedicados a uma única
tarefa.
Sistemas Multiprogramáveis
enquanto um programa espera por uma operação de leitura ou gravação em disco, outros
programas podem estar sendo processados neste mesmo intervalo de tempo.
a UCP permanece menos tempo ociosa e a memória principal é utilizada de forma mais
eficiente
Sistemas batch
nos sistemas de tempo real os tempos de processamento devem estar dentro de limites
rígidos, que devem ser obedecidos, caso contrário poderão ocorrer problemas irreparáveis.
Um programa utiliza o processador o tempo que for necessário ou até que apareça outro
mais prioritário. A importância ou prioridade de execução de um programa é definida pela
própria aplicação e não pelo sistema operacional.
permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo
programa seja subdividido em partes para serem executadas simultaneamente em mais de
um processador.
Concorrência
Interrupções e Exceções
Operações de Entrada/Saída
E/S controlada por programa, mantém o processador ocupado até o término da operação
de E/S (busy wait).
E/S controlada por interrupção, o próprio controlador interrompe o processador para avisar
do término da operação.
Buffering
funções:
tratamento de interrupções e exceções; criação e eliminação de processos e threads;
sincronização e comunicação entre processos e threads; escalonamento e controle dos
processos e threads; gerência de memória; gerência do sistema de arquivos; gerência de
dispositivos de E/S
Modo de Acesso
modo usuário, uma aplicação só pode executar instruções conhecidas como não
privilegiadas, tendo acesso a um número reduzido de instruções
modo kernel a aplicação pode ter acesso ao conjunto total de instruções do processador
Arquitetura Microkernel
Processos
processo pode ser definido como sendo o conjunto necessário de informações para que o
sistema operacional implemente a concorrência de programas.
Um processo também pode ser definido como o ambiente onde um programa é executado.
Estados do Processo
Um processo é dito no estado de execução quando está sendo processado pela UCP
Um processo está no estado de pronto quando aguarda apenas para ser executado.
Um processo no estado de espera aguarda por algum evento externo ou por algum recurso
para prosseguir seu processamento.
Um processo no estado de terminado não poderá ter mais nenhum programa executado no
seu contexto, porém o sistema operacional ainda mantém suas informações de controle
presentes em memória.
Um processo é definido como CPU-bound (ligado à UCP) quando passa a maior parte do
tempo no estado de execução, utilizando o processador, ou pronto
Um processo é classificado como I/O-bound (ligado à E/S) quando passa a maior parte do
tempo no estado de espera, pois realiza um elevado número de operações de E/S
Um processo background é aquele onde não existe a comunicação com o usuário durante o
seu processamento
Threads
um thread pode ser definido como uma sub-rotina de um programa que pode ser executada
de forma assíncrona
Threads são implementados internamente por meio de uma estrutura de dados denominada
bloco de controle do thread (Thread Control Block – TCB). O TCB armazena, além do
contexto de hardware, mais algumas informações relacionadas exclusivamente ao thread,
como prioridade, estado de execução e bits de estado.
Programas concorrentes com múltiplos threads são mais rápidos do que implementados
com múltiplos processos, pois operações de criação, troca de contexto e eliminação dos
threads geram menor overhead
Escalonamento
manter o processador ocupado a maior parte do tempo, balancear o uso da UCP entre
processos, privilegiar a execução de aplicações críticas, maximizar o throughput do sistema
e oferecer tempos de resposta razoáveis para usuários interativos.
Quando um processo está em execução, nenhum evento externo pode ocasionar a perda
do uso do processador. O processo somente sai do estado de execução caso termine seu
processamento ou execute instruções do próprio código que ocasionam uma mudança para
o estado de espera.
Escalonamento Cooperativo
Esse algoritmo é bastante semelhante ao FIFO, porém quando um processo passa para o
estado de execução existe um tempo-limite para o uso contínuo do processador
denominado fatia de tempo (time-slice) ou quantum.
O processo com maior prioridade no estado de pronto é sempre o escolhido para execução,
e processos com valores iguais são escalonados seguindo o critério de FIFO.
Caso haja processos na fila de pronto com maior prioridade do que o processo em
execução, o sistema operacional realiza a preempção.