You are on page 1of 39

Universidade de So Paulo Instituto de Cincias Matemticas e de Computao Departamento de Sistemas de Computao

SSC 140 - SISTEMAS OPERACIONAIS I


Turmas A e B

Aula 21 Sistema Operacional Linux


Profa. Sarita Mazzini Bruschi

Roteiro
Histria Caractersticas Gerais Kernel Sistema Operacional GNU/Linux

Gerenciamento de Processos Gerenciamento de Memria Gerenciamento de E/S

Linux e o Mercado de Trabalho Certificaes

Histria

1970

MIT + Bell Labs + General Electric = MULTICS (multiplexed information and computing service) Com o fracassado do projeto MULTICS, a Bell manteve o pesquisador Ken Thompson, que escreveu um MULTICS mais enxuto, o qual foi apelidado por Brian Kernighan de UNICS (uniplexed information and computing service), e posteriormente mudou a ortografia para UNIX
Dennis Ritchie aderiu ao projeto, onde o Unix foi reescrito em linguagem C com 10.000 linhas de cdigo, tornando-se muito complexo (Unix PDP-11);

1978

Histria

Andrew Tanenbaum

Desenvolve o Minix, um sistema com as caractersticas parecidas com as do Unix. Objetivo: Estimular o aprendizado de sistemas operacionais. O cdigo reduzido e mais limitado;

1991

Linus Torvalds precisava utilizar o Unix para trabalhos acadmicos, porm a disponibilidade de acesso era limitada, restando ento a alternativa de se ter o Unix em casa
Linus cria ento um SO com um kernel mais poderoso, compatvel com o Unix, e com cdigo aberto: nasce o Linux, em sua primeira verso;

Inspirado no Minix

Histria

Distribuio do Linux

O kernel bsico do sistema operacional Linux o 2.6 A verso 2.4 do kernel ficou sob responsabilidade de um brasileiro, Marcelo Tossati. Perodo: 2001-2006

O fato do controle do ncleo ser centralizado faz com que as atualizaes lanadas sejam estveis;

Sob licena GPL (GNU Public License);

Histria

Empresas e Instituies independentes cuidam das distribuies do Linux.


Instalao Conjunto de aplicativos Suporte Manuais Preo

Distribuies: Red Hat (Fedora, Mandriva), SuSE, Debian (Ubuntu), Slackware, e muitas outras

Caractersticas Gerais
Desenvolvido voluntariamente por programadores de todo o mundo; Multiusurio; Obedece aos padres POSIX, ANSI, ISO, IETF e W3C; Executa em praticamente qualquer tipo de processador (depende da interface), com arquiteturas diferentes

Kernel monoltico
O kernel projetado para ser um conjunto de mdulos individualmente carregveis Cada mdulo possui uma interface bem definida que mostra como suas funcionalidades podem ser chamadas e como seus dados podem ser acessados por outros mdulos De modo oposto, a interface tambm mostra as funcionalidades e dados dos outros mdulos que podem ser usados por esse mdulo

Kernel monoltico
Poucos mdulos so carregados no momento do boot, sendo que novos mdulos necessrios so carregados dinamicamente No entanto, eles tm que ser integrados com os mdulos que j esto carregados na memria, de modo que os mdulos possam funcionar coletivamente como um kernel monoltico

Kernel 2.6

O kernel 2.6 eliminou problemas do kernel 2.5, dentre eles:

Tornar o sistema mais interativo

O kernel 2.5 era no-preemptivo no sentido de tarefas de altas e baixas prioridades, ou seja, se uma tarefa do kernel de baixa prioridade estava sendo executada, a de alta prioridade do kernel tinha que esperar

Suportar sistemas embarcados

Suporte a arquiteturas que no possuem MMU

http://en.wikipedia.org/wiki/Linux_kernel http://www.forumpcs.com.br/noticia.php?b=83702

Arquitetura do Kernel

O linux composto de 6 subsistemas primrios:


Gerenciamento de processo Comunicao interprocesso Gerenciamento de memria Gerenciamento de sistema de arquivo Gerenciamento de E/S Gerenciamento de rede

Gerenciamento de Processos
No linux, tanto processos quanto threads so denominados tarefas Um processo representado por uma estrutura de dados especial chamada de descritor de processos (task_struct):

Mantm informaes de alto e baixo nvel, desde cpia de registradores de hardware at o i-node do diretrio de trabalho para o processo (BCP);

Ficam armazenadas em uma tabela de processos (reside em uma pgina de memria reservada), de tamanho finito (default 512K);

Gerenciamento de Processos

Assim que um processo criado, recebe uma identificao (pid); Permite manipulao de threads;

Escalonamento baseado em threads; Processos interativos; Processos batch; Processos em tempo real; I/O bound (privilegiados pelo escalonador); CPU bound;

Processos so divididos em trs classes:


Cada classe pode ainda ser dividida em:


Gerenciamento de Processos

Estados dos Processos no Linux:

Executando: em execuo na CPU ou pronto para ser executado; Esperando (adormecido): equivalente a processo bloqueado, aguardando algum evento ou recurso; Parado: parado devido a ter recebido um sinal de interrupo; Zombie: um processo j encerrado, mas que por algum motivo ainda possui uma estrutura alocada;

Ocorre quando o processo pai ainda no leu seu cdigo de sada, permitindo que o kernel limpe a estrutura alocada;

Gerenciamento de Processos Escalonamento

Escalonamento baseado em prioridade, sendo que essa prioridade afeta o tamanho de seu perodo de tempo e a ordem em que ela executa O escalonador reconhece 40 nveis distintos de prioridade que vo de 20 a 19, sendo que a 20 a de mais alta prioridade Se o processo for interrompido por E/S, o escalonador eleva dinamicamente a prioridade da tarefa, diminuindo o valor da prioridade esttica

Gerenciamento de Processos Escalonamento

Polticas:

SCHED_FIFO:

Para processos em tempo real; Prioridade esttica;

Escalonador chamado quando:


Processo criado e sua prioridade maior que a do corrente; Processo libera espontaneamente o processador para processos com mesma prioridade; Quando um processo sendo executado termina ou bloqueado;

Gerenciamento de Processos Escalonamento

SCHED_RR:

Para processos em tempo real; Prioridade com quantum para cada processo; Escalonador chamado quando:
Processo terminou seu quantum; Processo com maior prioridade est pronto para ser executado; Processo libera espontaneamente o processador para processos com mesma prioridade; Quando um processo sendo executado termina ou bloqueado;

SCHED_OTHER:

Para processos interativos e batch; Prioridades dinmicas com tempo compartilhado;

Gerenciamento de Memria
LMM (Linux Memory Manager): prov mecanismos que permitem que a memria do sistema possa ser utilizada da melhor maneira possvel; SO encarrega-se de fornecer para cada processo um espao suficiente para que ele possa ser executado, garantindo proteo;

Gerenciamento de Memria

Modelo de memria para um processo:

Parte baixa de memria:


Texto: cdigo processo; Dados no inicializados/inicializados : espao de armazenamento necessrio s variveis alocadas estaticamente no processo; Pilha: espao de memria necessrio s variveis locais, para passagem de parmetros e para salvar e restaurar endereos de retorno;

Parte alta de memria:

HEAP: possibilita alocao dinmica de memria; est entre a pilha e os dados;

Gerenciamento de Memria

Espao de Endereamento disponvel: 4Gb (32bits) corresponde memria virtual;


3Gb para processos; 1Gb para tabelas de pginas e outros dados do kernel;

SO mantm na memria somente as partes de cdigo, dados e pilha que um processo est utilizando em um determinado tempo;

Mantm apenas uma estrutura interna que descreve a memria virtual do processo, indicando o que est carregado na memria e o que est no disco;

Paginao por demanda;

Gerenciamento de Memria Paginao

Divide toda a memria disponvel em pginas de tamanho fixo (4k p/ Pentium) e mantm uma tabela das pginas na memria;

medida que os processos so executados, eles so carregados em pginas na memria, e a tabela atualizada;

Paginao em trs nveis (portabilidade 32 e 64bits):


Diretrio global de pginas; Diretrio intermedirio de pginas; Tabela de pginas;

Gerenciamento de Memria Paginao


Endereo Virtual
Diretrio Intermedirio Pgina deslocamento

Diretrio Global

Diretrio Intermedirio de Pginas

Tabela de Pginas

Pginas

Gerenciamento de Memria Paginao

Alocar e liberar pginas fsicas: algoritmo Buddy; Controle de reas de memria livres e alocadas feito usando um vetor, no qual cada elemento uma lista encadeada (free-area); Quando um processo precisa de informaes que no esto presentes na memria ele causa uma falta de pgina e o SO encarregado de buscar essa informao no disco (Pager);

Poltica para substituir pginas: LRU combinado com o algoritmo do relgio (ordem de endereo virtual);

Gerenciamento de Memria Paginao


Algoritmo Buddy

Inicialmente, a memria consiste de uma diviso contnua nica: 64 pginas;

Gerenciamento de E/S

Requisies so realizadas por meio de chamadas de sistema (primitivas); Cada dispositivo tratado como um arquivo especial /dev;

Tipo: caracter ou bloco; Maior: identifica classe (1-255); mesmo device driver; Menor: identifica um dispositivo especfico; Cada arquivo est associado a uma partio lgica do disco;

Cada driver est associado a uma controladora;

Gerenciamento de E/S
Nome /dev/fd0 /dev/hda Tipo Bloco Bloco Maior 2 3 Menor 0 0 Descrio Unidade de disquete 0 Disco IDE primrio

/dev/hda1

Bloco

1 Partio do disco IDE primrio


2 Partio do disco IDE primrio Impressora Teclado

/dev/hda2

Bloco

/dev/lp1 /dev/console

Caracter Caracter

4 1

0 1

Gerenciamento de E/S
Processo 1 Processo 1 ... Processo n

Chamadas de Sistema Virtual File System (conjunto de operaes) Dispositivos Caracter


Driver tty

Dispositivos Bloco
Driver Disco

Driver impressora

tty0

tty1

impressora

Disco IDE

Linux e o Mercado de Trabalho


Linux tem se tornado um padro nas empresas Substituindo/Integrando-se com sistemas caros e que no atendem determinadas necessidades Grandes empresas tem investido muito no Linux: Google, IBM, HP, etc.

Linux e o Mercado de Trabalho


Quem entende bem de sistemas Linux, seguramente ter um bom lugar no mercado de trabalho Por que?

Porque as empresas possuem diversas necessidades, dentre elas:


Migrao e interligao de sistemas Desenvolvimento de softwares para GNU/Linux

Linux e o Mercado de Trabalho

Ceagesp Band CELEPAR Casas Bahia Banco do Brasil Ita Bradesco Embraer Metr SP Sabesp

Linux e o Mercado de Trabalho

Casas Bahia

Maior rede varejista do pas em setores de eletrodomsticos e eletroeletrnicos 477 lojas em todo o Brasil
So Caetano do Sul SP Incio em 2005 Tudo roda em LINUX (de estaes de trabalho, terminais remotos e servidores)

Centro de tecnologia prprio


Linux e Mercado de Trabalho

Vantagens segundo CEO das casas Bahia:


Economia na compra de computadores mais simples e baratos No pagamento de licenas Melhor disponibilidade da infraestrutura de TI Melhor desempenho com mquinas mais baratas e antigas O lucro certamente tambm maior

Certificaes

Red Hat Certified Technician (RHCT)

A primeira certificao (contedo bsico e resoluo de problemas mais simples) Instalao, configurao, etc.
Design de infraestrutura de TI

Red Hat Certified Engineer (RHCE)

Red Hat Certified Architect (RHCA)

CLP Novell Certified Linux Professional CLE Novell Certified Linux Engineer

Certificaes

Linux Professional Institute (LPI)

Dan York (Canad)


Neutro (no foca em distribuies e sim na essncia do sistema operacional) Baseado em princpios colaborativos

Caractersticas:

Inclui 3 nveis

Certificaes

LPIC Level 1

101 Gerenciamento de sistemas Linux


102 Gerenciamento de Redes 201 Gerenciamento de sistemas Linux 202 Gerenciamento de Redes 301 Gerenciamento de projetos, migrao Linux

LPIC Level 2 (A complexidade aumenta)


LPIC Level 3 (Nvel snior)

302 Slidos conhecimentos sobre protocolos

Foco em ambientes heterogneos e de misso crtica

Certificaes

LPIC Level 3 (Nvel snior)

301

Conceito e arquitetura, Replicao de sites, design de diretrio, migrao de NIS para LDAP, integrao com samba, tuning de performance, desenvolvimento de scripts Conceitos do protocolo SMB/CIFS, integrao e configurao de diferentes clientes CIFS, administrao avanada de recursos compartilhados, integrao com kerberos, clustering

302

Certificaes

Como e onde fazer as provas

http://www.lpibrasil.com.br
LPI Linux Certification in a Nutshell OReilly Artigos sobre as provas de nvel 1

Material para estudo


http://www/oreilly.com/catalog/lpicertnut2
http://focalinux.cipsga.org.br/download-lpi.html

Foca Linux

Wiki Oficial do LPI nvel 3

https://group.lpi.org/cgi-bin/publicwiki/view/Examdev
http://list.lpi.org/cgi-bin/mailman/listinfo/lpi-brasil

Lista de Discusso

Link para um mapa interativo

http://www.makelinux.net/kernel_map#sd

You might also like