Você está na página 1de 9

Sistemas Operacionais I

Deadlock:
Um deadlock ocorre quando um processo est esperando alguma evento que nunca ocorrer. Isto se da por conseqncia do compartilhamento de recursos do sistema entre vrios processos, cada processo deve ter acesso a um recurso de forma exclusiva. Ex. o Processo A possui o Recurso 2, este mesmo processo solicita um outro recurso (Recurso 2) que foi atribudo ao Processo B e este solicita o Recurso 2 que do Processo 1. O recurso fica atribudo ao processo at que ele acabe, formando assim uma espera circular.

Processo A Recurso 1 Processo B Recurso 2

Condies para que ocorra um deadlock: Cada recurso seja alocada a um nico processo em um determinado instante; O processo (que j possui um recurso locado) deve estar esperando por outros recursos; O recurso no pode ser liberado do processo; Um processo pode ter que esperar um recurso alocado a um outro processo (espera circular). Preveno de um deadlock Ausncia de excluso mltipla (nenhum processo ter que esperar para ter acesso a um recurso; Evitar que processos que j possuam recursos garantidos solicitem um outro recurso(todos os recursos necessrios so requisitados antes de comear a execuo); - desperdcio de recursos do sistema; - dificuldade para prever todos os recursos a serem solicitados; - pode ocorrer starvation(todos os recursos necessrios jamais estejam disponveis no mesmo tempo. Permitir que recursos sejam retirados do processo, caso outro processo esteja solicitando; - o processo pode perder todo o processamento; - starvation (o processo garante os recursos necessrios para a execuo e o sistema libera em seguida. Excluir a possibilidade de espera circular(forar o processo a ter apenas um recurso por vez e quando solicitar outro deve liberar o primeiro).

Deteco do deadlock A deteco do deadlock permite identificar quais os processos e recursos envolvidos no problema. O sistema deve manter estruturas de dados capazes de identificar cada recurso do sistema: o processo que est alocando e os processos que esto a espera da liberao do recurso. Correo do deadlock A correo pode ser feita: eliminando um ou mais processos envolvidos no deadlock, desalocar os recursos j garantidos por eles (quebrando assim a espera circular).

Gerncia de memria:
Na memria principal esto todos os programas e dados que sero executados pelo processador Memria lgica: aquela que o processador enxerga, o processo capaz de acessar. Memria fsica: aquela implementada pelos circuitos integrados de memria, pela eletrnica do computador.

CPU

Endereo Lgico

Gerenciador de Memria

Endereo Fsico

Memria

Alocao contgua simples A memria principal dividida em duas partes: uma para o sistema operacional e outra para os programas do usurio; Implementada nos primeiros sistemas operacionais; Ainda implementada em sistemas monoprogramveis;

Sistema Operacional rea para os programas do usurio

Memria Principal

No permite a utilizao eficiente do processador e da memria; Apenas 1 usurio pode dispor destes recursos; Caso o programa do usurio no preencha totalmente a memria existe um espao sem utilizao. Quando o tamanho do programa for maior que a memria disponvel utiliza-se a tcnica de overlay, programa dividido em mdulos que so executados independentemente na mesma rea de memria.

Alocao particionada
Parties fixas A memria dividida em tamanhos diferentes, porm fixos. O tamanho da partio definido na inicializao do sistema; A memria dividida em uma parte para o uso do sistema operacional e a outra para o uso dos programas do usurio A parte dos usurios subdividida em parties fixas; Quando um programa deve ser carregado escolhida uma partio livre, a partio deve ser de tamanho maior ou igual a do programa, se no houver espao suficiente o programa no executado.

Sistema Operacional Partio 1 Partio 2 Partio 3 Partio 4


Problemas:

Memria Principal

Quando os programas no utilizam completamente a partio sobram pequenos fragmentos me memria livre. Que no podem ser ocupadas por nenhum outro programa

Desperdcio de memria provocado pela fragmentao interna (quando um programa no ocupa totalmente a rea da partio esta memria livre no pode ser aproveitada por nenhum outro programa); No possvel fazer o uso de duas parties para um mesmo processo. Isso gera fragmentao externa(quando temos memria disponvel mas ela est em parties diferentes, nenhuma delas grande o bastante para guardar o programa. Parties variveis O tamanho da partio ajustado conforme as necessidades exatas do processo O sistema operacional mantm uma lista de lacunas(espaos livres de memria fsica); Quando um processo criado, ser usada uma lacuna de espao maior ou igual a do programa; O programa recebe o tamanho exato do programa, o que sobrar transformado em uma nova lacuna; No ocorre fragmentao interna (o tamanho da memria alocada igual ao tamanho do programa); Ocorre fragmentao externa (a medida que as reas de memria so alocadas e desalocadas pequenos fragmentos de memria so gerados e os fragmentos so pequenos demais para serem utilizados).

Os problemas da fragmentao externa podem ser resolvidos reunindo os espaos livres adjacentes ou realocando todas as parties eliminando espaos livres entre elas, criando uma nica rea livre contgua. A escolha da partio ideal Existem 4 tcnicas para realizar esta escolha 1 First-fit: seleciona a primeira lacuna que encontrar com tamanho suficiente; 2 Best-fit: seleciona a lacuna que resultar menor sobra de memria livre; 3 Worst-fit: seleciona a lacuna que resultar a maior sobra; 4 Circular-fit: semelhante ao Frst-fit, inicia a procura a partir da ultima sobra.

Swpping
Existem algumas situaes onde no possvel manter todos os processos na memria. Um processo j alocado na memria faz uma chamada de sistema pedindo mais memria e no existe memria livre contgua a rea onde o mesmo est alocado. Um usurio dispara um programa, no existe memria disponvel mas poltica do sistema atender os pedidos do usurio Usando a tcnica de swapping o sistema operacional escolhe um programa residente que levado da memria para o disco (swap-out) e retornando posteriormente para a memria(swap-in) Problemas na utilizao do Swapping Grande custo em termos de tempo de execuo; Mais aceitvel para sistemas batch ou com pouco nmero de usurios; Pode ser usado tanto em parties fixas como variveis No momento do swap-in preciso corrigir os endereos de memria do processo

Paginao
A paginao permite que o programa possa ser espalhado por reas no contguas de memria Caractersticas: O espao de endereamento lgico de um processo dividido em pginas lgicas de tamanho fixo; A memria fsica dividida em pginas com tamanho fixo, com tamanho igual ao da pgina lgica; O programa carregado pgina a pgina, cada pgina lgica ocupa uma pgina fsica; As pginas fsicas no so necessariamente contguas; O endereo lgico inicialmente dividido em duas partes: um nmero de pgina lgica e um deslocamento dentro da pgina; O nmero de pgina lgica usado com ndice no acesso a tabela de pginas, de forma a obter o nmero da pgina fsica correspondente; No existe fragmentao externa; Existe fragmentao interna (se um programa de 500Kb carregado na memria e as pginas so de tamanho 7Kb, ele ser alocado em 71 pginas sobrando 3Kb de fragmentao); Alm da localizao a tabela de pginas armazena o bit de validade, (1) se a pgina est na memria e (0) se no est na memria; A transferncia das pginas do processo podem ser feitas por demanda, levando apenas o que necessrio para a execuo do programa. Ou por paginao antecipada onde o sistema tenta prever as pginas que sero necessrias execuo do programa. O maior problema do gerenciamento de memria no decidir que pgina carregar, mas sim, qual pgina deve ser removida da memria Antes de remover uma pgina o sistema verifica se a mesma foi alterada (bit de modificao), a pgina removida e salva na memria secundria. Quando ela for referenciada novamente o sistema a carrega devolta. Estratgias para realocao de pginas: 1 Aleatria: no utiliza nenhum critrio de seleo, todas as pginas possuem a mesma chance; 2 FIFO: a pgina que entrar primeiro vai ser a primeira a sair; 3 LRU: seleciona a pgina que est a mais tempo sem ser referenciada; 4 LFU: seleciona a pgina menos freqentemente usada. Tamanho da pgina O problema da fragmentao tambm encontrado na paginao, mas ocorre apenas na ultima pgina usada pelo programa. A fragmentao conseqncia do tamanho da pgina, pginas pequenas diminuem a fragmentao mas aumentam o acesso a memria secundria.

Segmentao
Tcnica de gerenciamento de memria onde o programa dividido em segmentos de tamanhos variados, cada um com o seu prprio espao de endereamento. A principal diferena entre paginao e segmentao a alocao de maneira no fixa, o tamanho depende da lgica do programa; O mapeamento feito atravs de tabelas de mapeamento de segmentos; Os endereos so compostos por um nmero de segmento e o deslocamento dentro do segmento. Cada entrada da tabela mantm o endereo fsico do segmento, o tamanho do segmento, se ele est ou no na memria. O sistema operacional mantm uma tabela com as reas livres e ocupadas da memria; Somente segmentos referenciados so transferidos para a memria principal; Ocorre fragmentao externa.

Segmentao por paginao


Cada segmento dividido fisicamente em pginas, o endereo formado pelo nmero do segmento, nmero da pgina dentro desse segmento e o deslocamento dessa pgina

Memria virtual
a tcnica de gerenciamento que combina a memria principal e a secundria dando ao usurio uma idia de que existe mais memria principal. Desvincula o endereamento feito pelo programa dos endereos fsicos da memria principal; Um programa residente na memria virtual faz referncias a endereos virtuais; O endereo virtual traduzido para o endereo fsico atravs de mapeamento; Os programas podem ser muito maiores que a sua memria fsica, apenas uma parte do programa est residente na memria em um determinado instante, o restante do programa fica na memria secundria at ser referenciado.

Sistema de arquivos
Um arquivo constitudo de informaes logicamente relacionadas, podendo representar programas ou dados. Um arquivo pode ser entendido como um conjunto de registros definidos pelo sistema de arquivos; Cada arquivo contm: nome, tipo, tamanho, data e hora do ultimo acesso, data e hora da ultima modificao, identificao do usurio que criou o arquivo, lista de usurios que podem acessar o arquivo. Organizao de arquivos Consiste no modo em que os arquivos so armazenados internamente. A estrutura dos dados varia conforme o tipo de informao contida no arquivo; A estrutura de arquivos definida no momento da criao; Sistemas operacionais estabelecem diferentes organizaes de arquivo Tipos de organizao a) seqncia no estruturada de bytes, o sistema no impe nenhuma estrutura lgica para os dados; b) alguns sistemas operacionais estabelecem diferentes organizaes de arquivos onde cada um visto como um conjunto de registros; seqencial relativa indexada Mtodos de acesso A forma de como o contedo de um arquivo acessada Seqencial l os registros na ordem que so gravados; Acesso direto permite a leitura e gravao de um registro diretamente na sua posio o mtodo realizado atravs do nmero do registro, que a posio relativa ao incio do arquivo; no existe restries na ordem que os arquivos so lidos ou gravados; s possvel em arquivos de tamanho de registro fixo. O acesso direto pode ser combinado com o acesso seqencial (acessa diretamente um registro, e a partir deste acessa os demais de forma seqencial); Acesso indexado o arquivo possui uma rea de ndice onde existem ponteiros para os diversos registros. Sempre que uma aplicao desejar acessar o registro, deve especificar qual chave que vai acessar na rea de ndices dos ponteiros correspondentes; Diretrios: a maneira pela qual o sistema operacional organiza logicamente os diversos arquivos contidos no disco Um diretrio uma estrutura de dados que contm entradas associadas aos arquivos onde esto armazenadas informaes como localizao fsica, organizao e demais atributos O sistema operacional mantm uma tabela mantendo os descritores de todos os arquivos abertos Enquanto o arquivo acessado o descritor de arquivo constantemente necessrio, ao termino do acesso o arquivo deve ser fechado liberando espao da tabela

Alocao de espao em disco


O sistema operacional mantm um controle de quais reas ou blocos do disco esto livres. Uma lista ou tabela identifica os blocos que podem ser alocados, quando um arquivo removido seus blocos so liberados para a estrutura de espaos livres. Implementao da alocao de espao livre Mapa de bits: Cada entrada da tabela est associada a um bloco do disco representado por um bit (0=livre 1=alocado). Bloco Fsico
0 1 2 3 4 5 6 7 8

Mapa de bits: 0|1|0|1|0|1|0|1|0

Lista encadeada de blocos livres: cada bloco possui uma rea de armazenamento do prximo bloco livre. A partir do primeiro bloco livre pode-se ter acesso aos demais de modo seqencial na lista.

Blocos livres contguos: O disco pode ser visto como um conjunto de segmentos de blocos livres. possvel manter uma tabela com o endereo do primeiro bloco de cada segmento e o nmero de blocos livres contguos que se seguem.

Tcnicas de ocupao de espao Alocao contgua: Armazena o arquivo em blocos seqencialmente dispostos no disco. O sistema localiza um arquivo atravs do endereo do primeiro bloco e sua extenso em blocos isto exige que exista uma cadeia de n blocos dispostos seqencialmente no disco. Estratgias para a alocao (quando existir mais de um segmento livre) First-fir seleciona o primeiro segmento livre Best-fit seleciona o menor segmento disponvel Worst-fit seleciona o maior segmento disponvel Problemas: Apresenta o problema de fragmentao (o disco pode ter espao livre suficiente mas os segmentos no esto contguos). Este problema pode ser corrigido com a desfragmentao do disco. Nem sempre possvel determinar, na sua criao, o tamanho definitivo do arquivo sendo assim ocorre uma ociosidade de espao livre.

Alocao encadeada: O arquivo pode ser organizado como um conjunto de blocos ligados logicamente no disco. Cada bloco deve possuir um ponteiro indicando o bloco seguinte no necessitando que os blocos estejam dispostos seqencialmente. No ocorre a fragmentao de espaos livres, mas ocorre a fragmentao de arquivos. Problemas: s permite o acesso seqencial aos blocos do arquivo, desperdia espao com os ponteiros. Alocao indexada: Utiliza a estratgia de manter uma tabela(bloco de ndices) com os ponteiros dos blocos ocupados, possibilitando assim um acesso direto a determinado bloco (no precisando fazer uma busca seqencial).