Você está na página 1de 15

Processos e Threads

Sistemas Windows e Linux Acadmicos:


Fabiano Matos Thiago Ribeiro Eng. Da Computao / 2010

Introduo

Os primeiros sistemas de computao s permitiam que um programa fosse executado de cada vez. E este programa tinha controle total do sistema. Os sistemas atuais permitem que vrios programas sejam carregados na memria e executados de forma concorrente, essas necessidades resultam na noo de um processo. Um processo uma uma unidade de trabalho em um sistema moderno de tempo compartilhado. Quanto mais complexo for um S.O mais benefcios aos usurios so esperados. A principal preocupao do S.O a execuo de programas do usurio Mas ele no se limita apenas a insto. Um sistema portanto consiste em uma coleo de processos do S.O e do usurio.

O Windows e Linux

O Windows foi desenhado para realizar multitarefas preemptivas. Cada linha de processo passa a ter direito a uma parte do tempo do processador. A durao da fatia de tempo depende do sistema operacional e do processador. De qualquer maneira, como as fatias de tempo so muito pequenas (aproximadamente 20 milisegundos), o processamento de mltiplas linhas de processo d a impresso de ser simultneo. Para o usurio, a vantagem de um sistema multitarefa est no fato de poder usar vrios aplicativos que trabalhem simultaneamente. Para o programador tambm existem vantagens. Ele pode criar aplicativos que utilizem mais de um processo, cada um deles com uma ou mais linhas de processo. O Linux um sistema operacional multiusurio, multitarefa e multiprocessado, de livre distribuio, baseado no sistema operacional UNIX. Ser multiusurio significa que posssvel vrias pessoas utilizarem o mesmo computador ao mesmo tempo, atravs de conexes remotas ou de terminais. O Linux um sistema multitarefa, pois capaz de executar diversos programas ou servios ao mesmo tempo, ou seja, possvel rodar simultaneamente um servidor web, um servidor de e-mail e um banco de dados. Ele tambm um sistema multiprocessado, pois ele pode ser instalado em mquinas com mais de um processador e capaz de utilizar de maneira inteligente esses vrios processadores, de maneira a obter o melhor desempenho possvel.

Particularidades

O linux deriva de um sistema chamado Minix, que por sua vez derivado do Unix, por isso pode-se dizer que o Linux um Unix mais incrementado, e seus mtodos de gerenciamento do sistema so muito parecidos, cerca de 80% de cerca das 150 chamadas ao sistema do Linux so copias idnticas de alguma verso do Unix. Pelo Linux ser chamado de open sourse e de ser gratuito, existem varias empresas distribuindo muitas verses do Linux modificado para atender certas necessidades, diferentemente do Windows que distribudo somente pela Microsoft, apesar de existirem varias verses, essas so mais padronizadas pelo ano ou modelo, como Windows 98 ou Windows XP, apesar da Microsoft recentemente lanar varias verses de seu novo sistema operacional, o Windows Vista, para atender necessidades de diferentes usurios (pode se dizer que a Microsoft tentou copiar isso do Linux), praticamente o mesmo sistema operacional mas as verses variam pela funo do preo X recursos. Outra diferena entre os dois tipos de sistema sua complexidade, o Linux pode ter em media cerca de 700 mil linhas em seu cdigo fonte, enquanto a exemplo do Windows 2000 tem mais de 29 milhes dessas linhas, isso se deve muito pela sua interface sofisticada, seus recursos de compatibilidade nativa com muitos hardwares e de suas opes de regionalidade, isso torna o Windows um sistema operacional muito complexo, diferente do Linux que prima pela simplicidade de sua interface por linhas de comando.

Processos

Threads / Viso Geral

NO TPICO SOBRE PROCESSOS CONSIDERAMOS QUE ELES ERAM PROGRAMAS EM EXECUO COM UM NICO FLUXO DE CONTROLE. OS S.Os MODERNOS OFERECEM RECURSOS PARA QUE PROCESSOS CONTENHAM MULTIPLOS FLUXOS DE CONTROLE THREADS UMA THREAD (PROCESSO LEVE) UMA ENTIDADE BSICA DE UTILIZAO DE CPU COMPREENDE UMA ID, UM CONTADOR DE PROGRAMAS, UM CONJUNTO DE REGISTRADORES E UMA PILHA COMPARTILHA COM OUTRAS THREADS DO MESMO PROCESSO SUA SEO DE CDIGO, DADOS E OUTROS RECURSOS DO S.O

Threads / Viso Geral

UM PROCESSO TRADICIONAL (PESADO) TEM UM NICO FLUXO DE CONTROLE PROCESSOS COM MULTIPLOS THREADS PODEM REALIZAR MAIS DE UMA TAREFA DE CADA VEZ VISO GERAL

Threads / Viso Geral

UMA APLICAO GERALMENTE IMPLEMENTADA COMO UM PROCESSO SEPARADO COM VRIAS THREADS DE CONTROLE UM NAVEGADOR WEB PODE FAZER UMA THREAD EXIBIR IMAGENS OU TEXTO ENQUANTO OUTRA THREAD RECUPERA DADOS DA REDE UM MS WORD, POR EXEMPLO, PODE TER 3 THREADS (GRAFICO, LER O TECLADO, VERIFICAR ORTOGRAFIA)

Benefcios

OS BENEFICIOS DA PROGRAMAO COM MULTIPLOS THREADS PODEM SER DIVIDIDOS EM:

-CAPACIDADE DE RESPOSTA: PODE PERMITIR QUE UM PROGRAMA CONTINUE EXECUTANDO MESMO QUE PARTE DELE ESTIVER BLOQUEADA OU EXECUTANDO UMA OPERAO DEMORADA AUMENTANDO ASSIM A CAPACIDADE DE RESPOSTA PARA O USURIO. EX NAVEGADOR WEB CLIQUE ENQUANTO A PGINA EST SENDO CARREGADA COMPARTILHAMENTO DE RECURSOS: POR PADRO OS THREADS COMPARTILHAM RECURSOS DO PROCESSO AOS QUAIS PERTENCEM. ISSO PERMITE QUE SE TENHA VRIOS THREADS DIFERENTES DENTRO DO MESMO ESPAO DE ENDEREAMENTO
-

Benefcios
ECONOMIA: ALOCAR MEMRIA E ALOCAO DE RECURSOS CARO. COMO ALTERNATIVA OS THREADS COMPARTILHAM RECURSOS DO PROCESSO AOS QUAIS PERTENCEM, MAIS ECONOMICO REALIZAR TROCA DE CONTEXTO DE THREADS.
-

EX NO UNIX(SOLARIS) CRIAR UM PROCESSO 30 VEZES MAIS DEMORADO DO QUE CRIAR UMA THREAD

Windows
As threads so implementados como objetos, sendo criados e eliminados pelo gerenciador de obejetos. Representados por uma estrutura chamada ETHREAD (Executive Thread Block). Todos os threads de um processo compartilham o mesmo espao de endereamento virtual e todos os recursos do processo. No windows escalonado apenas as threads para execuo, e no os processos.

Windows

implementados threads em modo usurio e kernel. Threads em kernel denominados simplesmente threads, apresentam problemas de desempenho, devido a necessidade de troca de usurio, j as threads em modo usurio fibers, eliminam a troca de contexto e de modo de acesso e, consequentemente oferecem melhor desempenho. Cada thread pode ter multimos fibers. O sistema operacional desconhece os fibers, ficando por conta da propria aplicao o seu escalonamento.

Linux / UNIX

Em funo do overhead gerado no mecanismo de criao e execuo dos processos, varios sisetmas implementaram o conceito de thread, porem sem qualquer preocupao com compatibilidade

Linux / UNIX

POSIX, tambm conhecido como PThreads. O POSIX no define como o sistema deve ser implementado. O padro define tambm mecanismos de sicronizao, entre threads, semaforos, mutex e variveis condicionais

FIM

Você também pode gostar