Resumo Sistemas Operacionais

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 5

Processo: uma abstração de um programa em execução.

Constitui uma atividade possuindo,


entrada, saída e um estado.

Criação de processos - Há quatro eventos principais que fazem com que processos sejam
criados:

1. Início do sistema.
2. Execução de uma chamada de sistema de criação de processo por um processo em
execução.
3. Uma requisição do usuário para criar um processo.
4. Início de uma tarefa em lote (batch job).

Daemons - Processos que ficam em background com a finalidade de lidar com alguma
atividade como mensagem eletrônica, páginas da Web, notícias, impressão, entre outros

Término de processos – exit process


1. Saída normal (voluntária).
2. Saída por erro (voluntária).
3. Erro fatal (involuntário).
4. Cancelamento por um outro processo (involuntário).

Hierarquias de processos - Em alguns sistemas, quando um processo cria outro, o processo pai
e o processo filho continuam, de certa maneira, associados. O próprio processo filho pode
gerar mais processos, formando uma hierarquia de processos.

Estados de processos

1. Em execução (realmente usando a CPU naquele instante).


2. Pronto (executável; temporariamente parado para dar lugar a outro processo).
3. Bloqueado (incapaz de executar enquanto não ocorrer um evento externo).

Threads - Uma thread é uma linha de execução de código que executa em paralelo com
outras linhas do mesmo processo, compartilhando seu espaço de memória. Na prática
uma thread é equivalente a um “mini-processo” dentro de um processo. Isto permite que
várias ações sejam executadas em paralelo por um mesmo processo

Diferenças entre processos e threads:


Treads: muito mais leve que um processo; possui contador de programa, registradores, pilha e
estados.
Processo: arquivos abertos; processos filhos; espaço de endereçamento.

Gerenciador de memória: Responsável por gerenciar a memória de modo eficiente.

MODELO ORIGINAL – SEM ABSTRAÇÃO


Uso somente da memória física disponível
3 tipos de alocação:
1. S.O. parte inferior da RAM
2. S.O. parte superior – ROM
3. Drivers Dispositivos parte superior – ROM, resto sistema na RAM
Abstração de Memória: espaços de endereçamento da memória. Dividir a memória para que
possamos carregar diversos programas. Com a abstração e a implementação do espaço de
endereçamento, cria-se uma memória abstrata para abrigar os programas.

Espaço de endereçamento é o conjunto de endereços que um programa pode usar na


memória. Cada processo tem seu espaço de endereçamento.

Swapping de memória: troca do processo, consiste em trazer todo o processo para a


memória, executar, devolver ao disco.

Memória Virtual: programa usa uma parte da memória e outra parte dele carrega em disco.

GERENCIAMENTO DA MEMÓRIA PELO S.O.


Mapa de Bits: Memória é dividida em blocos tão pequenos quanto palavras ou grandes como
kilobytes. Cada unidade de alocação tem um bit no mapa de bits indicando estar ocupada (1)
ou livre (0). Quanto menor a área, maior o mapa de bits, e vice-versa.
Área menor – vários blocos necessários para um mesmo programa. O S.O. precisa encontrar
um segmento de memória com vários blocos livres para carregar o programa, perdendo tempo
nesta procura.
Área muito grande – Desperdício de área de memória subutilizada por programas pequenos.

Lista encadeada : de segmentos de memória disponíveis e ocupados.


Cada item é um segmento livre (L) ou alocado a um processo (P), contendo o endereço onde se
inicia o segmento, seu comprimento e um ponteiro para o próximo elemento da lista.

ALGORÍTMOS PARA ALOCAÇÃO DA MEMÓRIA BASEADO EM LISTA


FIRST FIT – primeiro espaço em que couber. Programa é alocado e o segmento que não é
ocupado é liberado para outros programas.
Vantagem: procura o menos possível.
NEXT FIT – Igual ao first fit só que memoriza a posição em que encontrou um segmento livre e
na próxima busca inicia por este endereço. Testes apontam desempenho inferior ao doo first
fit.
BEST FIT – Melhor encaixe, pesquisa a lista inteira e procura o segmento mais adequado ao
processo. Mais lento que anteriores e gera desperdício de memória de pequenos segmentos.
WORST FIT – O maior segmento disponível possível, para gerar, após a alocação do processo,
um segmento ainda utilizável. O pior desempenho de todos.
Opção para melhoria do desempenho: Duas listas, uma de segmentos alocados a processos e
outra de segmentos de memória livre, ordenada por tamanho do segmento.
Tempo adicional gasto atualizando 2 listas, mas desempenho do first fit e best fit igualmente
rápidos. Next fit fica sem sentido.
QUICK FIT – quinto algoritmo, mantém listas separadas por tipo de segmento mais solicitados.
Desvantagem, é a necessidade de manter estas listas atualizadas e necessidade de monitorar
segmentos de memória para otimizar, misturando segmentos disponíveis, para que as listas
não fiquem desatualizadas e não ocorra ausência de segmentos de um determinado tipo.

PAGINAÇÃO
Endereços gerados pelo programa: endereços virtuais, constituem o espaço de
endereçamento virtual.
Computadores sem memória virtual: endereço virtual = endereço físico. Para ler ou escrever
na memória a informação é colocada diretamente no barramento de memória.
Computadores com Memória Virtual: endereço virtual não é colocado no barramento de
memória, mas sim na MMU – memory management Unity, que mapeia endereços virtuais em
físicos.

Gerenciamento do espaço em disco


Existem duas estratégias gerais para armazenar um arquivo e n bytes:
1. Alocação de n bytes consecutivos de espaço em disco.
2. Divisão em vários blocos não necessariamente juntos.

Tamanho do bloco
Saber qual deverá ser o tamanho de cada bloco. Pelo fato de os discos serem organizados por
setores, trilhas e cilindros, temos que ter em mente que a decisão errada pode comprometer
muito a capacidade do ambiente.

Monitoração dos blocos livres


Após definido o tamanho do bloco, o próximo requerimento é monitorar os blocos livres.
1. Lista de blocos livres –usa-se uma lista encadeada de blocos com cada bloco contendo
tantos blocos livres quanto couberem nele.
2. Mapa de bits – Cada entrada é associada a um bloco do disco representado por um bit,
podendo assumir valor igual a 0 (indicando bloco livre) ou 1 (indicando bloco alocado).

Cotas de utilização de disco

Em uma tabela alocada na memória principal estão contidos os atributos de todos os arquivos
que estão abertos no sistema. Toda vez que um usuário abre um arquivo, o atributo de
determinado proprietário do arquivo passa a fazer parte dessa tabela de controle dos arquivos
abertos versus proprietário. Qualquer acréscimo no tamanho do arquivo será
proporcionalmente decrescido à quantidade restante de cota disponível para o usuário do
sistema. Uma segunda tabela registra as informações de cota para cada usuário que tenha algum
arquivo aberto. Sempre que um bloco é adicionado a um arquivo, o número total de blocos é
incrementado no controle de cotas do usuário, e os limites flexíveis e estritos são checados. O
limite flexível permite que um usuário exceda o treashold previamente estabelecido, entretanto
o usuário só terá essa facilidade durante uma sessão.

Gerência de dispositivos de entrada e saída

É tarefa do sistema operacional enviar sinais, informando as ações que o usuário espera que o
dispositivo realize; tratar as interrupções e erros gerados pelos dispositivos.

Controladores de dispositivos

A porção de hardware é denominado controlador de hardware e segue padrões determinados


pelo barramento (IDE, SCSI, USB, etc), assim, ligados a cada tipo de barramento existem
controladores de hardware: controladora de hardware IDE, controladora de hardware SCSI, etc.

Para utilizar um dispositivo de hardware, é necessário conectá-lo a interface física da


controladora de hardware.
Independência do dispositivo - Sistema Operacional fica incumbido de tratar dos problemas
causados pelo fato de os dispositivos serem desiguais e necessitarem de sequências de
comandos muito diferentes para leitura e escrita.

Nomeação uniforme - O nome de um arquivo ou de um dispositivo deveria ser uma cadeia de


strings ou um número inteiro totalmente independente do dispositivo. Dessa forma, os arquivos
e diretórios são endereçados pelo nome do caminho.

Tratamento de erros - De maneira geral, espera-se que os erros, como de leitura por exemplo,
sejam tratados em níveis mais baixos, o mais próximo do hardware.

Tipos de conexão e de transferência de dados


Os dispositivos I/O podem se conectar de forma serial ou paralela. Na interface serial existe
apenas uma linha por onde os dados trafegam. Na interface paralela os dados são transmitidos
simultaneamente através das várias linhas para dados, a quantidade de linhas é um múltiplo de
1 byte (8 bits).
A transferência pode ser síncrona (bloqueante) - após um read, o programa é suspenso até que
os dados estejam disponíveis no buffer, ou assíncrona (orientada à interrupção) - a CPU inicia
uma transferência e segue realizando outra atividade até ser sinalizada por um interrupção (o
que acontece na maioria das E/S físicas).

Software de E/S
O principal objetivo do software gerenciador de E/S é padronizar ao máximo o acesso e controle
dos dispositivos, permitindo a inserção de novos dispositivos no sistema computacional sem a
necessidade de um outro software auxiliar.

Utilização de buffer - O buffer pode ser utilizado em momentos em que os dados não podem
ser armazenadas em seu destino final - como acontece com os pacotes que são recebidos pela
rede e que precisam ser examinados.

Dispositivos compartilhados vs dedicados - Alguns dispositivos, como discos, podem ser usados
por vários usuários simultaneamente. Outros, como dispositivos de fita, devem ser dedicados a
um usuário até que este termine suas tarefas. O Sistema Operacional deve ser capaz de tratar
ambos, de forma a evitar problemas.

Impasses (Deadlock) - princípio básico do impasse é descrito formalmente: Um conjunto de


processos está em um impasse se cada processo do conjunto está esperando um evento que
somente outro processo do conjunto pode causar. Como todos os processo estão esperando,
nenhum deles jamais causará qualquer dos eventos que poderiam acordar qualquer dos outros
membros do conjunto e todos os processos continuam a esperar eternamente.

Dispositivos de Entrada e Saída Dispositivos de entrada e saída também chamados de


dispositivos de I/O e são classificados em três tipos: Caractere, Bloco, Pseudo-dispositivos.

Dispositivos de Caractere - a comunicação feita através do envio e recebimento de um fluxo de


caracteres. Cada caractere é lido/escrito no dispositivo imediatamente. Ex: teclado e o mouse.
Dispositivos de Bloco – a transmissão dos dados, que é feita na forma de blocos. São dispositivos
que a comunicação é feita por meio de blocos de dados como em HD's, drivers de CD-ROM, flash
drivers e dispositivos de armazenamento em geral.

Pseudo-Dispositivos - Em sistemas do tipo UNIX, arquivos de dispositivo especiais podem não


possuir um dispositivo físico correspondente, estes são chamados de "pseudo-dispositivos".

Pedido de Interrupção (IRQ) - forma pela qual componentes de hardware requisitam tempo
computacional da CPU. Um IRQ é a sinalização de um pedido de interrupção de hardware.

Acesso Direto à Memória (DMA) - é uma das técnicas utilizadas para otimizar o uso de memória
por dispositivos. O DMA é um componente de hardware que permite a transferência direta de
dados entre dispositivos periféricos e a memória principal, tornando assim dispensável a
participação da CPU neste processo.

Drivers - é uma camada de software que faz a comunicação do sistema operacional com o
controlador do hardware que por sua vez faz a interface com o hardware. Drivers escondem as
diferenças entre os diversos dispositivos, através de uma interface de programação única.

Driver de dispositivo - é responsável por implementar as rotinas necessárias ao acesso e à


gerência de um dispositivo específico.

Você também pode gostar