TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Os Processos e Threads

Por:   •  15/10/2019  •  Pesquisas Acadêmicas  •  1.421 Palavras (6 Páginas)  •  183 Visualizações

Página 1 de 6

1. PROCESSOS E THREADS

O conceito de processo é o mais importante quando se trata de sistemas operacionais. Um processo é um programa em execução, ou seja, uma instância de um programa contendo dados de entrada, saída e um estado (executando, bloqueado, pronto).

Thread é um pequeno programa que trabalha como um subsistema, sendo uma forma de um processo se autodividir em duas ou mais tarefas. É o termo em inglês para Linha ou Encadeamento de Execução. Essas tarefas múltiplas podem ser executadas simultaneamente para rodar mais rápido do que um programa em um único bloco ou praticamente juntas, mas que são tão rápidas que parecem estar trabalhando em conjunto ao mesmo tempo.

1.1 PROCESSOS

Na prática, a CPU chaveia de programa para programa, de modo que ela acaba executando cada um deles por dezenas ou centenas de milissegundos. Dessa forma, a cada segundo ela pode executar vários programas, o que acaba levando alguns usuários à ilusão do paralelismo, o que na verdade, é um pseudoparalelismo, pois, mesmo que a CPU execute vários programas em um segundo, ela executa apenas um de cada vez.

Cada processo possui:

  1. Conjunto de instruções;
  2. Espaço de endereçamento (espaço reservado para que o processo possa ler e escrever – 0 até máx)
  3. Contexto de Hardware (valores nos registradores como PC, ponteiro de pilha, e registro de propriedades gerais);
  4. Contexto de Software (atributos em geral, como lista de arquivos abertos, variáveis, etc.);

Características de Processos

  1. Processos CPU-Bound (orientados à CPU): processos que utilizam muito o processador e possuem tempo de execução definido pelos ciclos do processador;
  2. Processos I/O- Bound (Orientados à E/S): processos que realizam muitas entradas e saídas e possuem tempo de execução definido pela duração das operações de E/S;

O ideal é existir um balanceamento entre processos CPU-Bound e I/O-Bound.

1.1.2 O Modelo de Processo

Num computador, cada programa executado, inclusive, algumas vezes, o próprio sistema operacional, são organizados em processos. Nesse contexto, um processo é um programa em execução, juntamente com os valores atuais do contador de programa, dos registradores e das variáveis relacionadas a ele. Nesse modelo, a CPU realiza trocas rápidas para executar os programas, num processo chamado de multiprogramação.

A diferença de um processo para um programa é sutil, mas é muito importante. A ideia principal é que um processo é uma atividade de executar um programa. Sendo assim, um programa, que é um algoritmo codificado, pode ter várias instâncias em execução (diferentes processos), já o processo é único. Para exemplificar, o programa é a forma como o programador vê a tarefa a ser executada e o processo é forma pela qual o SO vê um programa e possibilita sua execução.

Um único processador pode ser compartilhado entre vários processos, mas um processador só atende um processo de cada vez, de forma que um algoritmo de escalonamento determina quando parar o trabalho sobre um processo e servir outro.

Além disso, se um programa estiver sendo executado duas vezes, ocorrem dois processos, pois o sistema operacional compartilha o código entre eles, de modo que, apenas uma cópia está na memória, mas o processador é inicializado duas para executar duplamente o programa em questão.

1.1.3 Criação de processos

Os sistemas operacionais precisam de mecanismos para criar e terminar os processos durante as operações. Há quatro eventos que atuam na criação de processos:

  1. Inicialização do sistema;
  2. Execução de uma chamada de sistema para criação de processo, realizada por um processo em execução;
  3. Requisição do usuário para criar um novo processo (duplo clique do mouse, etc.);
  4. Início de uma tarefa em lote.

Quando um SO é carreado, criam-se vário processos, os quais se dividem em dois tipos: os de primeiro plano (foregrounds), que são aqueles que interagem diretamente com o usuário e realizam tarefas para eles; e os de segundo plano (backgronds), que independem dos usuários para realizar funções específicas. Os processos que ficam em segundo plano com o objetivo de lidar com alguma atividade como mensagens eletrônicas, páginas da Web, notícias, impressão, etc., são chamados de daemons.

Em sistemas de lote encontrados em computadores de grande porte os usuários submetem (até remotamente) tarefas em lote para que o sistema realize. Nesses casos, são criados processos a partir de outros processos. Sendo assim, o processo pai executa uma chamada de sistema(systemcall) para criar um novo processo (filho), indicando, direta ou indiretamente, qual programa executar nele. Quando isso acontece, diz-se que houve uma “trap”.

No UNIX, a função utilizada para ocasionar uma trap é a função fork(), a qual cria um clone do processo pai através de cópias exatas na memória, mas com identificadores diferentes. Já no Windows, a função utilizada é a CreateProcess, que cria processo filho, já carregando um novo programa nele.

1.1.4 Término de Processos

Nada é para sempre, inclusive os processos. Em algum momento o processo termina e geralmente isso ocorre em razão de alguma das seguintes razões:

  • Término Normal (voluntário) - Quando a tarefa a ser executada é finalizada;

Esse é o principal motivo. Quando acaba de compilar o programa atribuído a ele, o processo executa uma chamada de sistema comunicando ao SO que terminou. No UNIX ela é a “exit” e no Windows é a “ExitProcess”;

  • Término por erro (voluntário) - O processo sendo executado não pode ser finalizado;

O segundo motivo para a finalização de um processo é se ele descobre um erro cometido pelo usuário, quando este digita um comando que não existe, por exemplo. Nesse caso, o compilador simplesmente termina a execução;

...

Baixar como (para membros premium)  txt (9.3 Kb)   pdf (339.1 Kb)   docx (506 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com