Resumo sobre Thread

•April 18, 2007 • Leave a Comment

Com o intuito de reduzir o tempo gasto na criação/eliminação de processos e  economizar recursos surgiu o conceito de thread.

Significado em português LINHA DE EXECUÇÃO

Existem dois tipos:

Monothread - para ambiente que permita apenas uma thread.

Multithread - usada em ambiente que permite várias threads, cada processo pode responder a várias solicitações. havendo mais de um processador as threads podem operar simultaneamente.

Cada thread tem seu próprio PC(program counter) o registrador responsável por apontar a próxima instrução a ser executada.

Exemplo: enquanto uma thread aguarda operação de E/S(no estado de espera), outra thread pode utilizar a CPU.

As threads compartilham o mesmo espaço de endereçamento(do processo pai)

Passam pelos mesmos estados que um processo passa.

Principal diferença entre subprocesso e thread :

Subprocessos possuem cada,  um endereçamento protegido

As threads compartilham o mesmo endereçamento sem proteção permintindo que uma altere os dados de outra. threads trabalham cooperativamente, desempenhando tarefas em conjunto

Existem duas categorias:

Uma a nível de usuário(ULT – User Level Thread)

A outra a nível de kernel(KLT – Kernel Level Thread)

Exemplo de thread em linguagem de alto nível:

Um CHAT, enquanto uma thread lê o que é digitado outra thread apresenta o que foi digitado.

SubProcesso

•April 18, 2007 • Leave a Comment

Caracteristicas::

Um processo pai processos subordinados(subprocessos), os subordinados por sua vez podem criar outros subprocessos. Caso o processo pai deixar de existir os subordinados também são eliminados.

Subprocesso permiti a divisão de uma aplicação/tarefa em partes que vão trabalhar de forma concorrente.

Exemplo, um processo responsável por acesso a banco de dados, onde vários usuários solicitam consultas, caso um usuário solicite um relatório impresso de todos os registros, os demais usuários teriam que aguardar o fim da tarefa.

Usando subprocesso cada consulta ao banco acarretaria na criação de um subprocesso, melhorando o desempenho da aplicação.

Ponto negativo – consumo de diversos recursos do sistema, alocação de contexto de hardware, software e espaço de enderençamento como qualquer outro processo, consume também tempo da cpu na criação e alocação dos recursos.

Divisão de um processo

•April 18, 2007 • Leave a Comment

Contexto de hardware:

responsável basicamente pelo conteúdo dos registradores(PC, SP)

Contexto de software:

especifica caracteristicas do processo que influem diretamente na execução de um programa. ex. número máximo de arquivos abertos simultaneamente e tamanho do buffer para operações de E/S.

Espaço de endereçamento:

área da memória do processo , espaço para os dados utilizados pelo processo. o espaço de endereçamento é protegido para que outros processos não acessem.

Estados de um Processo

•April 18, 2007 • Leave a Comment

Estados

Basicamente são quatro:

Pronto -> Execução

Execução -> Espera

Espera -> Pronto

Execução -> Pronto

OpenBSD

•April 10, 2007 • Leave a Comment

OpenBSD é um sistema operacional livre da familia UNIX, multiplataforma. As prioridades do OpenBSD são a portabilidade, padronização, correção e segurança(segurança pro-ativa e criptografia integrada).

O OpenBSD suporta emulação binária da maioria dos programas do SVR4 (Solaris), FreeBSD, Linux, BSD/OS, SunOS e HP-UX.

A versão mais atual é a 4.0 a qual foi liberada em 01/11/2006.

O OpenBSD é desenvolvido por voluntários. Os fundos para o desenvolvimento do projeto são adquiridos a partir da venda de CDs e Camisetas, e também por intermédio de doações.

O projeto OpenBSD está associado a outros projetos da família Open tais como:

OpenSSH – Secure Shell ou SSH, que é simultaneamente, um programa de computador e um protocolo de rede que permite a conexão com outro computador na rede, de forma a executar comandos de uma unidade remota. Possui as mesmas funcionalidades do TELNET, com a vantagem da conexão entre o cliente e o servidor ser criptografada.(fonte openssh.com)

OpenBGPD – OpenBGPD é uma livre implementação do “Border Gateway Protocol”, Versão 4. Isto permite que máquinas normais possam ser usadas como “routers” na troca de rotas com outros sistemas que falam o “BGP protocol”.(fonte openbgpd.org)

OpenNTPD – OpenNTPD é uma livre, fácil de usar implementação do “Network Time Protocol”. Isto fornece a abilidade para sincronizar o “local clock” para acessar remotamente “NTP servers” e pode atuar como “NTP server” por sí só, redistribuindo o “local clock”.(fonte openntpd.org)

OpenCVS – O CVS, ou Concurrent Version System (Sistema de Versões Concorrentes) é um sistema de controle de versão que permite que se trabalhe com diversas versões de arquivos organizados em um diretório e localizados local ou remotamente, mantendo-se suas versões antigas e os logs de quem e quando manipulou os arquivos. É especialmente útil para se controlar versões de um software durante seu desenvolvimento, ou para composição colaborativa de um documento.(fonte opencvs.org)

Fonte openbsd.org

THREADS

•March 28, 2007 • Leave a Comment

O que é THREAD?

Thread é uma forma de um processo se dividir em duas ou mais tarefas simultaneas

Existem os sistemas que suportam apenas uma thread, esse tipo sistema é chamado de monothread. O sistema que suporta várias threads simultaneas é chamado de multithreads.

Um dos benefícios de se utilizar a divisão de processos por thread é que no caso de uma espera por dispositivo ou recurso do sistema o processo não fica totalmente parado, uma vez que está divido em linhas de tarefas.

Uma thread contém um conjunto de comportamentos, tais como:

thread-create: permite que a thread crie uma outra thread;

thread-join: permite que uma thread aguarde outra thread em processo para sincronizar;

thread-yield: permite que a thread desista da CPU por não ser mais necessário o processamento associado à ela ou por solicitação do usuário

Estados de uma thread:

Uma thread pode assumir 5 estados básicos que são:

criação: o processo pai cria a thread que vai ser levada a fila de pronto;

execução: estado que a thread está utilizando a cpu;

pronta: a thread avisa a cpu que entrou na fila de pronto aguardando para ser executada;

Bloqueada: bloqueada pela cpu, aguardando algum recurso do sistema;

Terminada: libera a alocação de memoria da pilha de execução de processos;

Categorias de threads:

Existem duas categorias uma a nível de usuário chamada ULT(user level thread) e a categoria a nível de kernel chamada KLT(kernel level thread)

Fontes portaljava.com.br, Arquitetura de S.O. e wikipedia.org

Mensagem inicial

•March 28, 2007 • 1 Comment

Olá, esse blog foi criado com o intuito de atender as atividades passadas pelo prof. Akira.

 
Follow

Get every new post delivered to your Inbox.