Vous êtes sur la page 1sur 50

Linux

Alunos:

Edilberto Pereira

Gabriel Xavier

Componentes do sistema
Programas de
Gerenciamento do
Sistema

Processos de
Usurio

Programas utilitrios
de Usurio

Compiladores

Bibliotecas compartilhadas do Sistema


Kernel do Linux
Mdulos carregveis do kernel

Mdulos do Kernel

Existem trs componentes de suporte de Linux:

Gerenciamento de mdulo: permite que os


mdulos sejam carregados na memria e
conversem com o restante do kernel.

O registro de drivers: permite que os mdulos


informem ao restante do kernel que um novo
driver est disponvel.

Um mecanismo de resoluo de conflitos:


proteo de recursos do driver por uso
acidental de outros drivers reservando recursos
de hardware.

Licenciamento do Linux

O Linux licenciado sob a GNU General


Public License (GPL). No entanto, ele possui
algumas intervenes que implicam que nenhum
criador pode tornar-se proprietrio do produto
customizado.
Se o desenvolvedor criar um software qualquer
com algum componente protegido pela GPL,
ento o cdigo-fonte deve ser disponvel. Ou
seja, voc pode alterar qualquer parte do Linux,
modific-lo e at comercializ-lo, mas voc no
pode fech-lo (no permitir que outros usurios o
modifiquem) e vend-lo.

Processos
O que so?
Quais so seus estados?
Como identifica-los?
Eles se comunicam?

Hoje no Globo Reprter

Gerncia de Processos

O que um processo?

um programa em execuo com um conjunto de


informaes que permite ao SO gerenciar a execuo destes
processos no sistema.

Estados de Processo

Executvel: o processo pode ser executado


imediatamente;
Dormente: o processo precisa aguardar
alguma coisa para ser executado. S depois
dessa "coisa" acontecer que ele passa para o
estado executvel;
Zumbi: o processo considerado "morto",
mas, por alguma razo, ainda existe;
Parado: o processo est "congelado", ou seja,
no pode ser executado.

Ciclo de um Processo

Identidade do Processo

Identidade do processo
ID do processo cada processo tem um
identificador exclusivo. O PID.
Credenciais cada processo deve ter um ID de
usurio associado.
Personalidade cada processo tem um
identificador de personalidade associado que
pode modificar levemente a semntica de
certas chamadas do sistema.

Comunicao entre Processos


O Linux possui diversas formas de realizar
comunicao entre processos, tambm
conhecido com IPC(Interprocess
Communication). Estas formas de comunicao
se referem a processos em execuo na mesma
mquina, o que no inclui sockets ou RPC (so
para comunicao entre mquinas distintas).

Sinais

Os sinais so meios usados para que os


processos possam se comunicar e para que o
sistema possa interferir em seu funcionamento.
Por exemplo, se o usurio executar o comando
kill para interromper um processo, isso ser feito
por meio de um sinal.
Quando um processo recebe um determinado
sinal e conta com instrues sobre o que fazer
com ele, tal ao colocada em prtica. Se no
houver instrues pr-programadas, o prprio
Linux pode executar a ao de acordo com suas
rotinas.

Memria Compartilhada
Memria compartilhada o mapeamento de
uma rea (segmento) da memria que ser
mapeada e compartilhada com mais de um
processo. Essa de longe a forma mais rpida
de IPC, pois no tem intermediao, ao invs
disso, a informao mapeada diretamente da
de um segmento de memria, e no espao de
endereamento do processo de chamada. Um
segmento pode ser criado por um processo, e
subsequentemente, gravado e lido a partir de
qualquer nmero de processo.
A principal desvantagem desse mtodo que a

Pipes

O mecanismo de pipe do Unix permite que


um processo filho herde um canal de
comunicao de seu processo-pai. No Linux,
cada pipe tem um par de filas de espera para
sincronizar o leitor e gravador.

Semforos

Semforos podem ser descritos como


contadores usados para controlar recursos
compartilhados por vrios processos. Eles so
frequentemente usados como uma forma de
bloqueio para evitar processos de acessar um
recurso especfico enquanto outro processo
acessa esse recurso.

Threads
No Linux no h conceito de threads, uma
forma de compartilhar recursos entre processos.
Nas chamadas de sistema clone() so passadas
flags correspondentes aos recursos especficos a
sempre compartilhados:
clone(CLONE_VM |CLONE_FS|
CLONE_SIGHAND);
CLONE_VM: pai e filho compartilham o espao
de endereamento;
CLONE_FS: pai e filho compartilham informaes
do sistema de arquivos;
CLONE_FILES: pai e filho compartilham arquivos

Escalonador de Processos
O escalonador o mecanismo que define qual
processo ser executado. Ao fazer isso o
escalonador responsvel pelo melhor
desempenho do sistema.
Existem duas classificaes para processos:

Processo I/O-bound: Passa a maior parte do


tempo no estado de espera, pois realiza um
elevado nmero de operaes de E/S.

Processo CPU-bound: Passa a maior parte do


tempo no estado de execuo, utilizando o
processador, ou no estado pronto;

Politicas de Escalonamento

FIFO (First In First Out):

Apenas com processos em tempo real.

RR (Round-Robin):

Apenas em processos de tempo real e em sistemas


de tempo compartilhado.

OTHER (Outros):

Processos estticos.

API de Chamadas do Sistemas


Os sistemas de arquivos na famlia UNIX
nunca foram muito organizados. Vrias
convenes de nomes incompatveis so
utilizadas ao mesmo tempo e diferentes tipos de
arquivos esto espalhados aleatoriamente pelo
espao de nomes. Em muitos casos, os arquivos
so divididos pela funo e no pela
probabilidade com que eles mudam, dificultando
a atualizao do sistema operacional.
H um local culturalmente correto para tudo.
particularmente importante no bagunar a
estrutura padro da rvore de arquivos sob o

Chamadas de Sistema
Os Tipos de Chamadas de Sistema:

Controle de Processo - servem para dar


suporte manipulao de processos.

Exemplo:
end, abort, load, execute, create process,
terminate process, etc.

Chamadas de Sistema

Manipulao de Arquivos - do suporte


manipulao de arquivos.

Exemplo:
open, read, write, close, create file, delete file, etc.

Manipulao de Dispositivos - gerenciam o


uso de dispositivos pelos processos.

Exemplo:
request device, release device, read, write,
reposition.

Chamadas de Sistema

Manuteno de Informao - manipulam


informaes entre os processos, o sistema
operacional e o usurio.

Exemplo:
getpid, alarm, sleep.

Comunicaes - tratam das comunicaes


entre processos

Exemplo:

Gerncia de Memria

O Linux faz distino entre trs tipos de zonas


de memria:
ZONE_DMA pginas que podem ser
utilizadas para operaes de DMA.
ZONE_NORMAL pginas normais
regularmente mapeadas.
ZONE_HIGHMEM pginas com endereos
de memria altos, que no so
permanentemente mapeadas.

Gerncia de Memria

O alocador de pginas o gerenciador


principal da memria fsica ele utiliza um
algoritmo de agrupamento de parceiros ou
mais conhecido como sistema de pares para
gerenciar pginas fsicas disponveis, na qual
as unidades adjacentes de memria alocvel
so reunidas em duas a duas.

Sistema de Pares

Gerncia de Memria
Outra forma de alocar memria no Linux
a alocao de placas. Uma placa utilizada para
alocar a memria para estruturas de dados do
kernel e composta por uma ou mais pginas
fisicamente contnuas. Um cache formado por
uma ou mais placas e existe um para cada
estrutura de dados. Quando um cache criado,
um determinado nmero de objetos alocado a
ele e o algoritmo de alocao de placas utiliza
caches para armazenar esses objetos do kernel.

No Linux, uma placa pode estar em um dos trs

Alocador de Placas

Algoritmo Companheiro

O Linux d suporte a diversos mecanismos


para alocao de memria. O principal deles
denominado alocador de paginas, que opera
utilizando o conhecido algoritmo companheiro
(buddy algorithm).

Algoritmo Companheiro

Paginao
A ideia bsica por trs da paginao no Linux
simples: um processo no precisa estar inteiro
para ser executado. necessrio apenas que a
estrutura do usurio e as tabelas estejam l. Se
isso acontecer, o processo considerado na
memria e pode ser escalonado para execuo.
Uma parte da paginao implementada pelo
ncleo e a outra, pelo novo processo denominado
daemon de pginao. Como todos os
daemons o de paginao periodicamente
executado. Uma vez acordado ele busca algum
trabalho a ser feito, Se ele vir que o nmero de

Memria Virtual
A tcnica de memria virtual foi criada para
permitir a execuo de vrios processos que no
estejam necessariamente armazenados por
inteiro na memria principal, aumentando a
capacidade de multiprocessamento de um
sistema de computao. A implementao feita
de duas formas: com paginao sob demanda ou
com segmentao sob demanda.
O kernel do Linux gerencia sua prpria
memria e, tambm, o espao de endereamento
do usurio, mantendo o espao de endereos
visvel para cada processo. As pginas de

Memria Virtual
O gerenciador de memria virtual possui duas
vises separadas do espao de endereos de um
processo: como um conjunto de regies
separadas e como um conjunto de pginas.
A primeira, do espao de endereos de um
processo como um conjunto de regies
separadas, uma viso lgica. Ela descreve as
instrues que o sistema de memria virtual
recebeu em relao ao formato do espao de
endereos. Esse espao de endereos
composto de um conjunto de regies no
sobrepostas. Cada regio descrita por uma

Sistema de arquivos

Ext2
Ext3
Ext4

ext2

Caractersticas :
1. Nomes de arquivos no podem exceder 255
caracteres.
2. O tamanho mximo de um nico arquivo
varia entre 16GB e 2TB
(dependendo do tamanho dos blocos).
3. O tamanho mximo de uma partio pode
ser entre 2 e 32TB.

ext3

Oferece 3 nveis de journaling (journal,


writeback e ordered). O modo default o modo
ordered, onde o journal atualizado no final de
cada operao.
As desvantagens do ext3fs so as seguintes:

1. Limite de 31.998 subdiretrios por diretrios;


2. No h suporte para recuperao de
arquivos deletados;
3. Ausncia do checksum no journaling.

ext4
Caractersticas :

1. Suporta at 16TB por arquivo;

2. O ext4fs totalmente compatvel com as


verses anteriores, ext3fs e ext2fs;

3. Permite a pr-alocao de espao no disco


para um arquivo;

4. Limite de 64.000 subdiretrios que um


diretrio pode conter;

5. Journal checksumming;

rvore de Arquivos
Os sistemas de arquivos na famlia UNIX
nunca foram muito organizados. Vrias
convenes de nomes incompatveis so
utilizadas ao mesmo tempo e diferentes tipos de
arquivos esto espalhados aleatoriamente pelo
espao de nomes. Em muitos casos, os arquivos
so divididos pela funo e no pela
probabilidade com que eles mudam, dificultando
a atualizao do sistema operacional.
H um local culturalmente correto para tudo.
particularmente importante no bagunar a
estrutura padro da rvore de arquivos sob o

Sistema de Arquivos
O Linux define sete tipos de arquivos. Mesmo
quando os desenvolvedores adicionam alguma
coisa nova, ela ainda tem de ser feita de maneira
a se encaixar como um dos sete tipos a seguir:

Arquivos Regulares
Os arquivos de texto, arquivos de dados,
programas executveis e bibliotecas
compartilhadas so armazenados como arquivos
regulares. Tanto o acesso sequencial como o
aleatrio so permitidos.

Diretrios
Um diretrio contm referncias com nomes
para outros arquivos. Voc pode criar diretrios
com mkdir e exclu-los com rmdir se estiverem
vazios. Voc pode excluir diretrios no vazios
com rm r.

Arquivos de Dispositivo de Blocos


Os arquivos de dispositivo permitem que os
programas se comuniquem com o hardware e
perifricos do sistema. Quando o kernel
configurado, os mdulos que sabem como se
comunicar com cada um dos dispositivos do
sistema so associados. O mdulo para um
determinado dispositivo, chamado de driver de
dispositivo, cuida dos confusos detalhes do
gerenciamento de dispositivos. Os drivers de
dispositivo apresentam uma interface de
comunicao padro que se parece com um
arquivo regular.

Sockets de Domnio Local


Sockets so conexes entre processos que
permitem que comunicao hierrquica. O Linux
fornece vrios tipos de sockets, a maioria dos
quais envolve o uso de uma rede. Embora os
arquivos de socket sejam visveis para outros
processos na forma de entradas de diretrio eles
no podem ser lidos ou gravados por processos
no envolvidos na conexo.

Pipes Identificados

Os pipes identificados permitem a


comunicao entre dois processos sendo
executados no mesmo host. Eles tambm so
conhecidos como arquivos FIFO (FIFO a
abreviatura para first in, first out, isto , o
primeiro a entrar o primeiro a sair).

Links Simblicos
Um link simblico ou soft link aponta para um
arquivo pelo nome. A diferena entre links fsicos
e links simblicos que o link fsico uma
referncia direta enquanto um link simblico
uma referncia por nome; links simblicos so
distintos dos arquivos para os quais eles
apontam. Como os links simblicos podem conter
caminhos arbitrrios, eles podem referenciar
arquivos em outros sistemas de arquivos ou
arquivos inexistentes.

Subsistema de E/S
Ele responsvel pela execuo das tarefas
comuns aos dispositivos, sendo que as funes
especificas ficam como responsabilidade dos
drivers. O subsistema E/S oferece uma interao
com as camadas superiores de forma igualitria.
Os dispositivos trabalham com unidades de
informao com diversos tamanhos(caracteres ou
blocos) e o subsistema repassa essas
informaes sem ter acesso s informaes.

Gerncia de dispositivos
O Linux divide todos os dispositivos em trs
classes:

Dispositivos de blocos.

Dispositivos de caracteres.

Dispositivos de rede.

Dispositivos de Blocos
Os dispositivos de blocos incluem todos os
dispositivos que permitem o acesso aleatrio a
blocos de dados de tamanho fixo completamente
independentes.
Os dispositivos de blocos so tipicamente
utilizados para armazenar sistemas de arquivos,
mas o acesso direto a um dispositivos de blocos
tambm permitido de modo que os programas
possam criar e reparar o sistema de arquivos que
o sistema contm. As aplicaes tambm podem
acessar esses dispositivos de blocos diretamente
se desejarem.

Dispositivos de Caracteres
Os dispositivos de caracteres incluem a
maioria dos outros dispositivos, tais como
mouses e teclados. A diferena fundamental entre
os dispositivos de blocos e de caracteres o
acesso aleatrio. Os dispositivos de bloco podem
ser acessados aleatoriamente enquanto os
dispositivos de caractere s podem ser
acessados serialmente.

Dispositivos de Rede
Os dispositivos de rede so manipulados de
modo diferente para dispositivos de blocos e
caracteres. Os usurios no podem transferir
dados diretamente para dispositivos de rede; em
vez disso eles devem se comunicar indiretamente
abrindo uma conexo para o subsistema de
conexo de rede do kernel.

Perguntas, duvidas ou
indagaes...

Vous aimerez peut-être aussi