Please enable JavaScript.
Coggle requires JavaScript to display documents.
00 - Sistemas Operacionais (classificaçao (quanto a quantidade de usuários…
00 - Sistemas Operacionais
sistemas de arquivos
partes
Gerenciador de memória
Gerenciador de processos
Gerenciador de arquivos
Núcleo (Kernel)
Gerenciador de recursos
O que é?
Segundo Tanenbaum, Sistema Operacional é um conjunto de softwares cujo objetivo é propiciar aos usuários um computador mais simples e mais intuitivo, facilitando o uso de todos os seus recursos
classificaçao
quanto a quantidade de usuários
monousuário
multiusuário
sistema operacional em lote
quanto a quantidade de tarefas
monotarefa
multitarefa
sistema operacional de grande porte
sistema operacional pessoal
sistema operacional embarcado ou embutido (construído para operar sobre um hardware com poucos recursos de processamento)
sistema operacional de servidor
sistema operacional de rede
sistema operacional distribuído
conceitos básicos
tarefa
Execução das instruções definidas em um programa
processo
Conjunto de recursos alocados a uma tarefa
(é o programa em execução)
pipe
é uma forma de comunicação entre processos (encadeamento entre a saída de um processo e a entrada de outro)
estados
pronto
esperando para ser atribuído a um processador
espera
processos que sofreram algum tipo de interrupção e dependem de uma
resposta externa
execução
saída
utilização de recurso
requisitar
usar
liberar
tipo
CPU Bound
(um processo que requer muito processamento e pouco precisa dos dispositivos de entrada e saída)
I/O Bound
(usa pouco processador e precisa muito dos dispositivos de entrada e saída)
programa
conjunto de instruções escritas para resolver um problema
Thread
threads são formas colaborativas de
dividir as tarefas para que possam ser executadas simultaneamente
escalonador
é quem decide a ordem de execução das tarefas prontas
multiprogramação
O objetivo da multiprogramação é ter sempre algum
processo em execução para maximizar a utilização da CPU
recurso
preemptíveis (após serem atribuídos podem ser
retomados de processos aos quais foram alocados)
não-preemptíveis (após serem atribuídos não podem ser tomados de processos aos quais foram alocados)
funções
Gerência de memória
ligação de endereços
tempo de carregamento
tempo de execução
tempo de compilação
overlay
divide-se o programa em partes (módulos) que possam executar independentemente uma da outra, utilizando uma mesma área de memória (overlay)
Endereçamento Lógico e Físico
enquanto que um endereço visto pela unidade de memória é normalmente referido como sendo um endereço físico
O mapeamento de endereços lógicos para endereços físicos é feito pela unidade de gerenciamento de memória (MMU – Memory Management Unity), que é um dispositivo de hardware
Um endereço gerado pela CPU é normalmente referido como sendo um endereço lógico
alocação de memória (protegendo as áreas de memória
de uma aplicação do acesso por outra aplicação)
segmentação
tabela de segmentos para cada segmento de um processo
fragmentação externa
segmentação paginada
a memória é divida em segmentos, e cada segmento é dividido em páginas. A segmentação com paginação somente corrige o problema da fragmentação externa encontrado na segmentação pura. Não corrige a fragmentação interna, encontrado na paginação
paginação
indexação das páginas é feita por meio de uma
tabela de páginas
fragmentação interna
algoritmos de escolha do espaço de alocação
Next fit
também varre a tabela de espaços livres até encontrar a primeira lacuna que caiba o processo. Seu diferencial é que ele memoriza a posição do último segmento encontrado e recomeça busca a partir desta posição.
Best fit
procura o menor segmento livre de memória possível
First fit
varre a tabela de espaços
livres até encontrar a primeira lacuna que caiba o processo
Worst fit
varre toda a tabela de espaços livres, mas escolhe o maior segmento disponível, de maneira que quando for alocado, gera um segmento suficientemente grande para alocar outro processo.
Quick fit
mantém listas separadas para alguns tamanhos de segmentos disponíveis. Em geral os tamanhos mais solicitados, por isso seu melhor desempenho.
Princípio da Localidade de Referência
tendência de o processador, ao longo de uma execução, referenciar instruções e dados da memória principal localizados em endereços próximos
Swapping
processo ser retirado (swapped) da memória para uma área de armazenamento, e mais tarde ser trazido de volta para a memória para que continue executando.
a área de swap, necessária à memória virtual, pode ser implementada tanto em uma partição específica como em um arquivo do próprio sistema de arquivos
memória virtual
a memória principal (RAM) e a memória secundária (disco rígido) são combinadas de forma a simular uma memória de tamanho muito maior que a efetivamente existente.
A memória virtual divide os processos e carrega na memória real somente aqueles “pedaços” que necessários durante a execução
Working Set é o conjunto de páginas de memória referenciadas por um processo em um determinado período de tempo.
esquemas para a determinação do tamanho dos blocos
blocos de tamanhos diferentes (segmentos)
Trashing (excessiva transferência de páginas/segmentos da
memória principal para a secundária e vice-versa)
blocos de tamanho fixo (páginas)
Page fault
ocorre se a página não estiver carregada na
memória física, devendo ser trazida da memória secundária
Substituição de páginas
Least-recently-used (LRU)
Not-recently-used (NRU)
Least-frequently-used (LFU)
First-in-first-out (FIFO)
Aleatória (random)
A Anomalia de Belany é um paradoxo encontrado no gerenciamento de memória e indica que se há menos páginas em memória, pode ocorrer menos falta de páginas do que se houvesse mais páginas em memória.
combinação dos dois (segmentos+páginas)
O gerenciamento da memória virtual cabe ao Sistema Operacional
Gerência de dispositivos
formas de controle
pooling (flags)
interrupções
modo bloqueado (cpu dedicada do inicio ao fim da operação de i/o)
acesso direto à memória (DMA)
buffering
Gerência de processos - escalonamento (Evita que uma aplicação monopolize o recurso)
tipos de escalonadores
agendador (transfere o processo da área comum para a fila de pronto)
dispatcher (transfere os processos da fila de pronto para a cpu)
O tempo gasto pelo escalonador despachante (dispatcher) desde que um processo é interrompido até que outro tenha a sua execução iniciada, é denominado turnaround
swapper (seleciona os processos que irão da
memória secundária para a área comum da memória principal)
Escalonamento preemptivo
(A estratégia de permitir ao SO temporariamente suspender a execução de processos que ainda necessitem de tempo de processamento)
Escalonamento não-preemptivo
ou cooperativo, é a política de deixar um processo em execução enquanto for necessário, sem permitir retiradas forçadas
troca de contexto
(ato de mudar de um processo a outro, e o salvamento das informações que permitam a manutenção do estado)
algoritmos de escalonamento
criterios de priorizaçao
Tempo de resposta
Tempo de Turnaround
Eficiência
Throughput
Justiça
Algoritmo de fila simples (FIFO - é não preemptivo) - atender as tarefas à medida que elas se tornam prontas
Escalonamento Round Robin ou Circular (RR - é preemptivo) - O Round Robin é similar ao FIFO, mas é adicionado um controle de tempo de execução para cada processo. Permite evitar a ocorrência de inanição (starvation) de um processo.
Escalonamento com Prioridades (o processo pronto para executar com a maior prioridade é quem ganha o processador)
Multilevel Feedback Queues (Nesse algoritmo há múltiplas filas de processos, com níveis de prioridades distintos)
Shortest Job First (consiste em atribuir o processador à menor tarefa da fila de pronto)
Short Remaining Time
Gerência de sistema de arquivos
Arquivo= é uma abstração de uma forma para persistir dados; Um arquivo é a unidade lógica do sistema de arquivos
Diretório = é uma abstração para um agrupamento de dados
mantém a integridade dos dados
realiza o controle de acesso aos dados
controle de acesso
Acesso direto
Acesso aleatório
Acesso sequencial
Acesso indexado (por índice)
alocação do espaço em disco
Lista ou alocação encadeada
Lista ou alocação indexada
Alocação contígua
Mapa de Bits
Alocação em disco
correspondência lógica e física em um arquivo
cache de disco
utilizando parte da memória principal disponível na máquina para armazenar temporariamente os dados dos arquivos
Journaling
journaling permite que o sistema mantenha um
registro de todas as alterações realizadas no sistema de arquivos, o que facilita a sua recuperação
Virtual File System
Virtual File System é um nível de abstração em cima de um
sistema de arquivos específico, que permite o acesso uniforme a diferentes sistemas de arquivos pelos processos.
atributos (metadados)
Gerenciamento de Recursos (quem usa o quê, compartilhamento)
deadlock (um processo está esperando por
um evento particular que jamais ocorrerá)
condições necessárias
(todas devem acontecer)
posse e espera
um processo em posse de um recurso pode pedir outro
não-preempção
um recurso atribuído a um processo só pode ser
liberado voluntariamente, nunca forçosamente
exclusão mútua
cada recursos está atribuído a um processo, ou
está disponível
espera circular
cadeia circular de espera, em que um recurso
aguarda por outro
estratégias para evitar
prevenir
recuperar
ignorar
detecção do deadlock é responsabilidade do SO
comunicação entre processos (IPC) - sinais ou mensagens
condição de corrida
semáforos
mecanismo usado em sistemas operacionais para permitir a troca de sinais entre processos. A chamada de sistema up adiciona uma unidade ao valor corrente de um semáforo. Na operação de down, verifica
se seu valor é maior que zero. Caso seja, decrementa o valor.
mutex
similar ao semáforo, mas possui apenas dois estados:
ligado/desligado; livre/ocupado
interrupção
IRQ
chamadas de sistema (syscall)
monitor
é um mecanismo intermediário de sincronização entre os processos. Ele troca informações com os processos, e estes o chamam quando estão na fila de pronto, antes de acessar o recurso compartilhado. Ele utiliza variáveis de condição com duas operações: wait e signal.
TSL
é uma solução que lê o conteúdo e armazena o valor, em seguida a cpu bloqueia o acesso durante todo o ciclo
condição de corrida (execução simultânea de duas ou mais operações que devem ser executadas em uma certa sequência)