



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
PROCESSOS EM S.O
Tipologia: Notas de estudo
1 / 6
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Introdução
O presente trabalho que tem como tema Criação estática e Criação dinâmica de processo e
como subtemas Array de Processos. Desenvolveu-se e exemplificou-se de uma forma breve os
conceitos dos temas e seus subtemas acima mencionados de forma a facilitar a compreensão ao
leitor. Desde já agradecer a atenção em ler o trabalho
Criação estática e criação dinâmica de processos
Os processos de um programa concorrente podem ser criados de forma estática ou dinâmica.
No primeiro caso, o programa contém a declaração de um conjunto fixo de processos, os quais
são ativados simultaneamente, no inicio da execução do programa. No segundo caso, os
processos são criados dinamicamente, durante a execução, através de instruções especiais para
esse fim.
Para a criação dinâmica e termino dinâmico são usados os mecanismos ( fork, join e quit ), pois
os processos (ou threads ) são criados somente quando instruções especiais são executadas.
Criação estática
No caso da criação estática, os processos são declarados explicitamente no programa fonte e vão
existir desde o início da execução do programa concorrente. Normalmente, as linguagens de
programação permitem especificar esses processos de duas maneiras: como processos
individuais ou como um array de processos.
Especificação de processos individuais:
Neste caso, cada processo é especificado de forma individual, conforme exemplificado a seguir:
#include
#include<conio.h>
using namespace std; main() {
/process P1;/ int k=0;
cout<<"\nprocesso 1\n\n";
while(k < 10) { cout<<1<<","; k=k+1;
Processo - representa programas em execução, visto que um sistema operativo não executa somente programas que podemos ver. Isso significa que um único aplicativo pode ter vários processos relacionados a ele.
Neste caso, uma única declaração especifica um grupo de processos semelhantes, que se distinguem apenas pelo valor de uma variável local inteira, que é especificada no cabeçalho do processo, conforme é ilustrado a seguir, considerando o mesmo exemplo anterior. Ex:
#include
#include<conio.h>
#include
using namespace std;
main()
{
int n[10];
for(int i=0;i<10;i++)
n[i]=1;
cout<<"Elementos "<<" Processo1"<<setw(13)<<endl;
for(int j=0;j<10;j++)
cout<<setw(7)<<j<<setw(13)<<n[j]<<endl;
for(int i=0;i<10;i++)
n[i]=2;
cout<<"\n Elementos "<<" Processo2"<<setw(13)<<endl;
for(int b=0;b<10;b++)
cout<<setw(7)<<b<<setw(13)<<n[b]<<endl;
return 0;
}
Para o primeiro processo, a sua variável local i vale 1 e para o segundo, a sua variável local i vale 2. Este programa é equivalente ao anterior.
Criação dinâmica
É possível declarar explicitamente um modelo (uma "forma") para criar processos durante a execução, conforme é ilustrado a seguir. Neste caso tem-se o que se denomina criação dinâmica com declaração explícita de processos.
V4program process type P (i: integer); k: integer init 0; while k < 10 do { write(i); k:=k+ }; process Q; { new P(1); new P(2) } endprogram
Através da especificação process type, explicita-se um modelo (template) de processo, o qual é utilizado para criar exemplares (cópias, clones) desse processo durante a execução. A criação de um novo exemplar se dá através do comando new, o qual permite passar parâmetros para o processo criado. No caso da linguagem Vale4, a primitiva new pode ser usada como função ou como subrotina; usada como função ela retorna a identificação interna (pid) do processo criado.