Sistemas Operacionais - Resumão Do Resumo (Prova1)
Sistemas Operacionais - Resumão Do Resumo (Prova1)
Sistemas Operacionais - Resumão Do Resumo (Prova1)
3
Definição do sistema operacional .................................................................................... 4
Tipos de Sistemas Operacionais ...................................................................................... 4
Estrutura de Sistemas Operacionais ................................................................................ 5
2. Sistemas Computacionais .................................................................................................... 6
Estrutura de Sistemas de E/S ........................................................................................... 6
Estrutura de Acesso Direto à Memória (DMA) ................................................................ 7
Hierarquia de Memória ...................................................................................................... 7
Interrupções ........................................................................................................................7
3. Funções do Sistema Operacional ........................................................................................ 8
Gerenciamento de Processos ...........................................................................................8
Gerenciamento da memória principal .............................................................................. 8
Gerenciamento de arquivos .............................................................................................. 8
Gerenciamento de Sistemas de E/S .................................................................................8
Gerenciamento de memórias secundárias ......................................................................8
Sistema para redes de computadores ............................................................................. 9
Sistemas de proteção ........................................................................................................ 9
Interpretador de comando .................................................................................................9
Serviços implementados por SOs .....................................................................................9
Chamadas ao sistema ....................................................................................................... 9
Programas de sistema .................................................................................................... 10
Estruturas de Sistemas ................................................................................................... 10
Mecanismos e Políticas .................................................................................................. 10
4. Processos ............................................................................................................................ 11
Definição ...........................................................................................................................11
Processos vs. Programas ............................................................................................... 11
Processo na memória - Heap vs. Stack ......................................................................... 11
Componentes de um processo .......................................................................................12
Estados dos processos ................................................................................................... 12
Bloco de controle de processos (PCB/BCP) ................................................................. 12
Chaveamento de contexto .............................................................................................. 12
Fila de seleção de processos ..........................................................................................13
Filas de escalonamento .................................................................................................. 13
Escalonadores ..................................................................................................................13
Troca de contexto ............................................................................................................ 14
Operações em processos ............................................................................................... 14
Processos cooperativos vs processos independentes. ............................................... 15
Multiprogramação ........................................................................................................... 15
5. Threads .................................................................................................................................16
Definição ...........................................................................................................................16
Características das Threads ........................................................................................... 16
Threads e processos ....................................................................................................... 17
Modelo de processo ........................................................................................................ 17
Implementação de Threads - TCB .................................................................................. 17
6. Alocação/Escalonamento de CPU .....................................................................................19
Escalonamento Preemptivo e não-preemptivo ............................................................. 19
Objetivo do escalonamento ............................................................................................ 20
Tipos de escalonamento .................................................................................................20
Despachante / Módulo dispatcher ................................................................................. 20
Algoritmos de Escalonamento ........................................................................................21
1. Sistemas operacionais
Sistemas em tempo real: Usados quando há requisitos rígidos relativos ao tempo sobre
a operação de um processador ou sobre o fluxo de dados e assim é frequentemente
usado como dispositivos de controle em uma aplicação dedicada a um propósito
específico.
Máquinas Virtuais: Cópia exata do hardware, de maneira que cada uma pode executar
qualquer sistema operacional capaz de ser executado diretamente sobre o hardware.
Quando uma operação de E/S é iniciada, tem duas possibilidades: I) operação síncrona,
na qual a operação é iniciada e, ao seu término, o processo do usuário volta a ser executado;
e II) operação assíncrona, na qual o programa continua sendo executado sem esperar o fim
da operação E/S.
Se considerar que a CPU sempre espera pelo fim de uma operação de E/S que é iniciada,
poderá ter no máximo uma requisição de E/S sendo executada por vez. Assim, dada uma
interrupção, o SO saberá exatamente qual dispositivo a provocou. Porém isso impede
operações concorrentes e sobreposição de processos computacionais com operação de E/S.
Por sua vez, pode-se continuar o processamento de outros códigos. Para isso são
usada chamadas de sistema as quais dão permissão a um programa de usuário para esperar
uma operação de E/S, tal que o SO deve ser capaz de operar em múltiplas requisições - feito
por meio de uma tabela de status de dispositivo.
Estrutura de Acesso Direto à Memória (DMA)
Hierarquia de Memória
Conceito utilizado para coordenar o uso de memórias em um sistema, tal que memórias
no topo são mais voláteis, rápidas, caras e menores, enquanto as memórias de base são
lentas, baratas, menos voláteis e com maior armazenamento. É pensado pelo princípio da
localidade temporal, tal que um dado acessado recentemente será provável de ser acessado
novamente.
Interrupções
Gerenciamento de Processos
Gerenciamento de arquivos
Sistemas de proteção
Interpretador de comando
É uma interface entre o usuário e o SO. Alguns SOs possuem o interpretador em seu
núcleo, enquanto outros tratam enquanto programa especial. São conhecidos como shell do
sistema, tendo como função obter próximo comando e providenciar que ele seja executado.
Chamadas ao sistema
Estruturas de Sistemas
Estrutura UNIX: Também não possuía estrutura bem definida, tendo apenas o
núcleo e programas de sistema. O núcleo continua o sistemas de arquivos,
sistema de alocação da CPU, gerenciamento da memória e outras funções do SO,
estando acima do hardware e abaixo da interface de chamadas de sistema.
Mecanismos e Políticas
Mecanismos determinam como fazer algo e as políticas determinam como será feito,
necessitando flexibilidade visto que políticas podem mudar com o tempo e lugar.
4. Processos
Definição
Definido em parte pelo valor do contador de instrução e pelos valores dos registradores
do processo, os processos tem como possíveis estados: novo, rodando (running),
esperando (dormindo ou bloqueado), pronto e terminado.
A cada processo existem algumas informações associadas: process ID, user ID, estado
do processo, contador de programa, registradores da CPU, informações de escalonamento,
informações de gerenciamento de memória, informações de contabilidade e informações de
E/S. Nesse sentido, os processos são descritos no SO por um bloco de controle de
processos que possuem essas informações.
Chaveamento de contexto
Filas de escalonamento
Escalonadores
O contexto de um processo são as informações necessárias para que ele possa ser
restaurado a partir do ponto interrompido. Assim, a troca de contexto ocorre quando um
novo processo entra em execução e depende do suporte do hardware. Estão envolvidas as
ações:
1. Salvamento do contexto do processador
2. Alterar o PCB do processo que está rodando
3. Mover o PCB para a fila apropriada
4. Selecionar outro processo
5. Alterar o PCB do processo selecionado
6. Alterar as tabelas de gerência de memória
7. Restaurar o contexto do processo selecionado
Operações em processos
Por sua vez, processos podem ser finalizados quando a execução de sua última
instrução termina e uma chamada de sistema é feita para que seja removido do sistema.
Além disso, um processo pai pode terminar a execução de seu filho por motivos como
ultrapasse do limite de tempo para uso de um recurso, perda de valor da tarefa atribuída e
finalização do processo pai.
Processos cooperativos vs processos independentes.
Processos independentes: não podem afetar ou ser afetado por outros processos, ou
seja, não compartilham dados com outros processos.
Processos cooperativos: Podem afetar ou ser afetados por outros processos, tais como
aqueles que compartilham dados por outros processos.
Multiprogramação
Definição
Threads são compostas por um contador de programa, registradores e uma pilha com
história de execução.
Threads em um mesmo processo tem o mesmo espaço de endereçamento,
compartilham o mesmo conjunto de arquivos, processos filhos, alarmes, sinais, etc. Assim
como processos tradicionais, podem estar nos estados em execução, bloqueado, pronto ou
finalizado.
Nesse contexto, os processos atuam enquanto containers para as threads. Ou seja,
processos são utilizados para agrupar recursos, enquanto as threads são utilizadas para o
escalonamento da CPU.
Threads e processos
Modelo de processo
A implementação das threads é feita a partir da quebra do PCB em dois pedaços: thread
específico (estado do processador) e processo específico (espaço de endereçamento e
recursos do SO). Assim:
Thread Control Block (TCB): contém informações de uma única thread; incluindo
informações sobre o estado do processador e um ponteiro para o PCB. São menores e
mais baratos que os PBCs e atuam enquanto a unidade de chaveamento de contexto.
Bloco de controld e processos / Process Control Block (PCB): informações sobre o
processo, como o espaço de endereçamento e recursos do SO, mas não do estado do
processador.
Além disso, escalonadores tentam eliminar o starvation, situação que ocorre quando
threads prioritárias executam antes de threads de baixa prioridade- nesses casos as
threads de baixa prioridade estão em starvation/inanição e nunca são executadas. Uma
solução é aumentar a prioridade de acordo com o tempo de espera.
Tipos de escalonamento
Interrupção de relógio
Término da execução
Algoritmos de Escalonamento