Técnicas Avançadas de Programação

Tamanho: px
Começar a partir da página:

Download "Técnicas Avançadas de Programação"

Transcrição

1 Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos Meirelles da Silva Aula 02 pg. 1/33

2 Sumário Sumário 1 2 Prof. João Marcos Meirelles da Silva Aula 02 pg. 2/33

3 Sumário Sumário 1 2 Prof. João Marcos Meirelles da Silva Aula 02 pg. 2/33

4 Sumário 1 2 Prof. João Marcos Meirelles da Silva Aula 02 pg. 3/33

5 Sobre os processos Os processos são programas carregados na memória do computador e podem ser classificados como pesados ou leves. Processos Pesados Os processos pesados são os programas tradicionais, possuindo um conjunto de operações iniciais básicas que começam a sua execução. Estas operações iniciais são o que chamamos de thread. A função void main de um programa escrito em C é uma thread inicial. Prof. João Marcos Meirelles da Silva Aula 02 pg. 4/33

6 Sobre os processos Atenção É importante entender que cada programa é, ao menos, um processo e que cada processo possui uma série de atributos: PID PPID UID e GID etc... Prof. João Marcos Meirelles da Silva Aula 02 pg. 5/33

7 Atributos de um processo PID O Process Identification é um número de identificação único. O primeiro processo chama-se init e recebe o PID de número 1; PPID Nenhum processo é executado de forma independente dos outros. Todos os processos no sistema, com exceção do init, possuem um processo pai. O atributo Parent Process ID armazena o PID do processo pai. UID e GID O User ID e o Group ID auxiliam para que os processos sejam executados conforme os privilégios de uma conta de usuário e o seu grupo associado. Prof. João Marcos Meirelles da Silva Aula 02 pg. 6/33

8 Atributos de um processo Variáveis de ambiente Cada processo herda do processo pai algumas variáveis de ambiente que guardam alguns valores que podem ser utilizados pelo processo em execução; Diretório de trabalho Os processos também são associados a um diretório de trabalho, onde podem fazer a leitura e a gravação em disco.=; Temporizadores O Kernel mantém registros da hora em que os processos são criados, bem como o tempo de CPU que eles consomem durante a sua execução. Prof. João Marcos Meirelles da Silva Aula 02 pg. 7/33

9 Atributos de um processo Além de um estado de execução (ready, wait e exec), um processo ocupa uma área de memória formada basicamente por 3 partes: Figure: Estrutura de um processo. Prof. João Marcos Meirelles da Silva Aula 02 pg. 8/33

10 Atributos de um processo Text Segment O segmento de código contém as instruções de máquina geradas na compilação do programa; User Data Segment O segmento de dados de usuário contém as variáveis utilizadas pelo programa; System Data Segment O segmento de dados do sistema contém os valores dos registradores da CPU quando não estiver sendo executado por algum motivo. Atenção! Como as instruções são separadas dos dados, é possível compartilhar o mesmo código entre vários programas em execução. Prof. João Marcos Meirelles da Silva Aula 02 pg. 9/33

11 Atributos de um processo Um mesmo programa pode ser ativado mais de uma vez, dando origem a vários processos. Nesse caso, o segmento de código é compartilhado entre eles, conforme mostrado na Figura abaixo: Figure: Compartilhamento do segmento de código entre processos. Prof. João Marcos Meirelles da Silva Aula 02 pg. 10/33

12 Atributos de um processo Importante Todos os processos que existam ao mesmo tempo são concorrentes. Eles podem funcionar completamente independentes uns dos outros, ou ocasionalmente necessitar de sincronização e cooperação. Se certas operações podem ser logicamente executadas em paralelo, temos os chamados processos paralelos. Prof. João Marcos Meirelles da Silva Aula 02 pg. 11/33

13 Racing Conditions Racing Conditions Suponha que 3 processos compartilham o acesso a variável A. Dois deles fazem operações de modificação e um imprime o valor da variável. Processo 1 A = A + 5; Processo 2 A = A + 1; Processo 3 Imprimir A; Prof. João Marcos Meirelles da Silva Aula 02 pg. 12/33

14 Sumário 1 2 Prof. João Marcos Meirelles da Silva Aula 02 pg. 13/33

15 Identificando um processo O identificador de cada processo PID é fornecido pelo Sistema Operacional. A linguagem C tem diferentes primitivas que permitem conhecer este número. Essas primitivas estão declaradas no cabeçalho unistd.h. pid_t getpid() A função getpid() retorna o número do processo em execução; pid_t getppid() A função getppid() retorna o número do processo pai que criou o processo em execução. pid_t getpgrp() Esta função retorna o GID do processo. Prof. João Marcos Meirelles da Silva Aula 02 pg. 14/33

16 Exemplo 1: #include <stdio.h> #include <unistd.h> int main(){ printf( Eu sou o processo \%d. Meu pai é o \%d. O ID do grupo de processo é o \%d.\n, getpid(),getppid(),getpgrp()); exit(0); Para compilar, salve como meupid.c : #gcc meupid.c -o meupid #./meupid Prof. João Marcos Meirelles da Silva Aula 02 pg. 15/33

17 Sumário 1 2 Prof. João Marcos Meirelles da Silva Aula 02 pg. 15/33

18 A primitiva EXEC A primitiva exec é representada pelas funções: execl() execle() execlp() execv() execve() execvp() Cada uma das funções desta família trocam a imagem do processo em execução pela imagem de outro processo. Prof. João Marcos Meirelles da Silva Aula 02 pg. 16/33

19 A primitiva EXEC O arquivo que será chamado por estas funções precisa ser um arquivo binário ou script para ser interpretado por um outro processo; O arquivo precisa ter permissões de execução; Essas funções não retornam nenhum valor que indique seu sucesso uma vez que o processo em execução é inteiramente trocado pelo processo novo; No caso de falha, as funções retornam o valor -1. Essas funções estão declaradas em unistd.h. Prof. João Marcos Meirelles da Silva Aula 02 pg. 17/33

20 A primitiva EXEC Atenção! Um script, para ser interpretado no Linux, precisa iniciar com a indicação de qual programa será usado para a sua interpretação. Para fazer isso, sua primeira linha deve começar com: #!/caminho/programa Prof. João Marcos Meirelles da Silva Aula 02 pg. 18/33

21 int execv(const char *arquivo, char const *argv[ ]) Exemplo 2: #include <stdio.h> #include <unistd.h> int main{ char *cmd[] = {"cat", "/etc/passwd", (char *) 0; printf("vou chamar o programa cat para ler o conteúdo de /etc/passwd.\n"); execv("/bin/cat", cmd); printf("esta mensagem não será impressa.\n"); exit(0); Prof. João Marcos Meirelles da Silva Aula 02 pg. 19/33

22 A primitiva SYSTEM A primitiva system() executa um programa especificado com parâmetro e retorna ao processo original quando este termina. O processo original não é substituído, mas congelado. A primitiva system() recebe apenas um único valor, onde o comando e seus parâmetros devem ser passados como uma única variável string. Esta função retorna -1 em caso de erro. Se for bem sucedida, a função retorna o código de saída do programa chamado. Este código poderá ser lido através da macro WEXITSTATUS(status). Prof. João Marcos Meirelles da Silva Aula 02 pg. 19/33

23 int system(const char *string) Exemplo 3: #include <stdio.h> #include <unistd.h> int main{ printf("vou chamar o programa cat para ler o conteúdo de /etc/issue.\n"); system("/bin/cat /etc/issue"); printf("esta mensagem será impressa.\n"); exit(0); Prof. João Marcos Meirelles da Silva Aula 02 pg. 20/33

24 As primitivas FORK e WAIT As primitivas fork() e wait() foram as primeiras para especificar concorrência. O fork() inicia um novo processo que compartilha o espaço de endereçamento do processo pai (criador). Ambos os processos, pai e filho, continuam a execução em paralelo. Esta função retorna um valor que pode ser utilizado no controle de execução. Prof. João Marcos Meirelles da Silva Aula 02 pg. 20/33

25 As primitivas FORK e WAIT Características do fork() em Unix/Linux: Ele duplica o processo que executa a chamada e os dois executam o mesmo código; Cada processo tem o seu próprio espaço de endereçamento, com cópia de todas as variáveis, que são independentes em relação às variáveis do outro processo; Ambos executam a instrução seguinte à chamada de sistema; O retorno da chamada fork() para o processo pai contém a identificação do PID do processo filho recém criado; Prof. João Marcos Meirelles da Silva Aula 02 pg. 21/33

26 As primitivas FORK e WAIT O retorno da chamada fork() para o processo filho é zero; Pode-se selecionar o trecho de código que será executado pelos processo com instrução condicional if ; A sincronização entre os processos pai e filho é feita com a primitiva wait(), que bloqueia o processo que a executa até que um processo filho termine. Prof. João Marcos Meirelles da Silva Aula 02 pg. 22/33

27 int fork(void) Exemplo 4: #include <stdio.h> #include <unistd.h> int main{ int id; id = fork(); if(id!=0) { printf("eu sou o pai e espero pelo meu filho %d.\n", id); wait(0); printf("meu filho acabou de terminar...vou terminar também!\n"); else { printf("eu sou o filho %d e espero 10 segundos.\n", getpid()); sleep(10); printf("já esperei e vou embora...\n"); Prof. João Marcos Meirelles da Silva Aula 02 pg. 22/33

28 Exemplo 5: #include <stdio.h> #include <unistd.h> int main{ int pid; printf("meu PID é %d. Vou criar um processo filho.\n", getpid()); pid = fork(); if(pid ==0) { printf("\t\tprocesso filho criado com PID = %d.\n", getpid()); printf("vou ficar executando indefinidamente.\n"); for(;;); else { sleep(5); printf("o processo pai termina e deixa o filho órfão.\n"); printf("veja se o processo filho continua rodando com o comando\n"); printf("ps\n"); exit(0); Prof. João Marcos Meirelles da Silva Aula 02 pg. 23/33

29 As primitivas FORK e WAIT Herança entre Pai e Filho Os processos filhos herdam uma duplicata de todos os descritores dos arquivos abertos do processo pai. Se o processo filho movimenta o ponteiro dentro de um arquivo, o processo pai irá fazer a próxima movimentação na nova posição. Prof. João Marcos Meirelles da Silva Aula 02 pg. 23/33

30 Exemplo 6: #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> int main{ int pid, fd; char *pidnum, c; int i, r; printf("meu PID é %d.\n", getpid()); printf("vou gravar meu número de PID no arquivo meupid.\n"); if((fd=open("meupid",o_creat O_RDWR O_TRUNC,S_IRWXU))==-1) { printf("não consegui criar o arquivo meupid.\n"); exit(-1); sprintf(pidnum, "%d surpresa", getpid()); if(write(fd,pidnum,15)==-1) { printf("não consegui escrever no arquivo."); Prof. João Marcos Meirelles da Silva Aula 02 pg. 23/33

31 exit(-1); printf("já escrevi o número. Fechando o arquivo.\n"); close(fd); printf("vou abrir o arquivo novamente para leitura.\n"); if((fd=fopen("meupid", O_RDONLY,S_IRWXU))==-1) { printf("não foi possível abrir o arquivo.\n"); exit(-1); printf("vou criar um processo filho agora.\n"); pid = fork(); if(pid ==-1) { perror("não foi possível criar um processo filho.\n"); exit(-1); else if (pid == 0) { printf("\t\tsou o processo filho. Meu PID = %d.\n", getpid()); printf("\t\tvou ler o arquivo que já estava aberto pelo processo pai antes.\n") printf("\t\tda minha criação e que eu herdei.\n"); for(i=1; i<= 5; i++) { Prof. João Marcos Meirelles da Silva Aula 02 pg. 23/33

32 if(read(fd,&c,1)==-1) { printf("não consegui ler o arquivo..."); exit(-1); printf("o número que foi lido no arquivo é %c.\n", c); printf("\t\tfechando o arquivo e terminando minha execução...\n"); close(fd); exit(1); else /* aqui começam as instruções do processo pai. */ { wait(); printf("o processo filho criado tinha o PID número %d.\n", pid); printf("vou ler o arquivo meupid.\n"); while((r=read(fd,&c,1))!= 0) { if(r == -1) { printf("impossível ler o arquivo."); exit(-1); printf("consegui ler => %c\n", c); Prof. João Marcos Meirelles da Silva Aula 02 pg. 23/33

33 printf("meu filho leu o número do PID no arquivo e mexeu no meu ponteiro.\n"); printf("terminando minha executando.\n"); close(fd); exit(0); Prof. João Marcos Meirelles da Silva Aula 02 pg. 24/33

34 As primitivas FORK e WAIT A primitiva wait() tem como objetivo suspender a execução do processo pai até que o processo filho termine a sua execução. Esta instrução é especialmente útil, principalmente para evitar magentaracing conditions. Outra primitiva da mesma classe á a waitpid(). Ela suspende a execução de um determinado processo até que o processo filho, especificado pelo PID informado, tenha terminado. Estas primitivas retornam o valor do PID do processo que foi terminado. Casso ocorra algo inesperado, irão retornar o valor -1. Elas estão declaradas no cabeçalho wait.h. Prof. João Marcos Meirelles da Silva Aula 02 pg. 24/33

35 As primitivas FORK e WAIT A função waitpid() precisa receber como argumento um número de PID de um processo filho ou os seguintes valores predeterminados: <-1 Um valor menor que -1 diz à função waitpid() para suspender o processamento e esperar o término de qualquer processo filho cujo valor de seu GID seja igual ao número absoluto do valor passado; -1 Diz à função para suspender o processamento até que qualquer processo filho termine. Este é o comportamento padrão; Prof. João Marcos Meirelles da Silva Aula 02 pg. 25/33

36 As primitivas FORK e WAIT 0 Diz à função para suspender o processamento até que um processo filho com o mesmo GID do processo pai termine; >0 Diz à função para suspender o processamento até que o processo filho identificado pelo PID informado esteja terminado. Prof. João Marcos Meirelles da Silva Aula 02 pg. 26/33

37 pid_t wait(int *status) e pid_t waitpid(pid_t pid, int *status, int options) Exemplo 7: #include <signal.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> int main{ int pid; printf("\nmeu PID é %d e meu GID é %d. Irei criar um processo filho.\n", getpid(), getpgrp()); if(fork() == 0) /* Instruções do processo filho. */ { printf("\t\tprocesso filho criado. Meu PID é %d e meu GID é %d.\n", getpid(), getpgrp()); sleep(4); printf("vou sair com código 7.\n\n"); exit(7); else /* Instruções do processo pai. */ Prof. João Marcos Meirelles da Silva Aula 02 pg. 26/33

38 { int ret1, status1; printf("sou o processo pai. Estou esperando o processo filho.\n"); ret1 = wait(&status1); printf("o processo filho que terminou foi o de de PID = %d.\n", ret1); printf("ele terminou com o parâmetro de exit() = %d.\n", (status1>>8)); exit(0); Prof. João Marcos Meirelles da Silva Aula 02 pg. 27/33

39 As primitivas EXIT, ABORT e KILL As primitivas que implementam o término de processos podem ser de dois tipos: exit() Termina o processo normalmente e seus recursos são liberados pelo sistema operacional; abort(pid), kill(pid) São utilizados pelo processo pai para terminar forçadamente os processos filhos. Prof. João Marcos Meirelles da Silva Aula 02 pg. 27/33

40 As primitivas EXIT, ABORT e KILL Processos Zombie É possível que um determinado processo filho termine por algum motivo inesperado, se torne um processo zombie (ou defunct). Os processos zombie não podem ser terminados com o comando kill, porque eles já não existem mais. É preciso terminar o processo pai. Prof. João Marcos Meirelles da Silva Aula 02 pg. 28/33

41 Exemplo 8: Processo zombie (zombie.c) #include <signal.h> #include <stdio.h> #include <unistd.h> int main{ int pid; printf("meu PID é %d e vou criar um processo filho.\n", getpid()); pid = fork(); if(pid == 0) /* Aqui começam as instruções do processo filho. */ { printf("\t\tmeu PID é %d e fui criado por %d.\n", getpid(), getppid()); printf("\t\tverifique os processos em execução com o comando ps.\n"); sleep(10); printf("processo filho terminado normalmente.\n"); exit(0); else /* Aqui começam as instruções do processo pai. */ { for(;;); Prof. João Marcos Meirelles da Silva Aula 02 pg. 29/33

42 As primitivas EXIT, ABORT e KILL Para compilar e executar o programa, digite: #gcc zombie.c -o zombie #./zombie & Para finalizar o processo zombie, digite: #killall zombie Prof. João Marcos Meirelles da Silva Aula 02 pg. 29/33

43 Sumário Atributos de Processos 1 2 Atributos de Processos Prof. João Marcos Meirelles da Silva Aula 02 pg. 30/33

44 Exercício 1: Atributos de Processos Em uma máquina Linux, abra um terminal e digite o comando top. Verifique quais as informações (colunas) são exibidas e tente identificar algumas delas. O que você encontrou? Prof. João Marcos Meirelles da Silva Aula 02 pg. 31/33

45 Sumário Atributos de Processos 1 2 Atributos de Processos Prof. João Marcos Meirelles da Silva Aula 02 pg. 32/33

46 Exercício 2: Atributos de Processos Abra um terminal em uma máquina Linux e digite: #pstree -c -p Descreva o que você está vendo. Prof. João Marcos Meirelles da Silva Aula 02 pg. 33/33

Processos. Programas e Processos. Aula 1 - Chamadas ao sistema. José Pedro Oliveira fork exit getpid, getppid wait, waitpid

Processos. Programas e Processos. Aula 1 - Chamadas ao sistema. José Pedro Oliveira fork exit getpid, getppid wait, waitpid Conteúdo Programas e Aula 1-1 Programas e (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 006-007 3 Referências

Leia mais

Complementos de Programação. Engenharia Electrotécnica - Electrónica e Computadores. Ano Lectivo: 2005/2006. Ana Madureira. Gestão de Processos

Complementos de Programação. Engenharia Electrotécnica - Electrónica e Computadores. Ano Lectivo: 2005/2006. Ana Madureira. Gestão de Processos Complementos de Programação Engenharia Electrotécnica - Electrónica e Computadores Ano Lectivo: 2005/2006 Ana Madureira Gestão de Processos 04-12-2006 1 Objectivos Os alunos deverão ser capazes de ter

Leia mais

3. Criação e terminação de processos

3. Criação e terminação de processos 3. Criação e terminação de processos Um processo é uma instância em execução de um programa. No sistema operativo Unix a única forma de se criar um novo processo (processo-filho) é através da invocação,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Programação Concorrente Introdução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Programa Seqüencial Representado por apenas um processo Existe apenas

Leia mais

! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema

! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema Background! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema! Os sistemas actuais suportam o carregamento de múltiplos programas

Leia mais

Na Aula Anterior... Interrupções por software e hardware; Temporizadores; RTC; Temporizadores via software. Relação Processos Multiprogramação

Na Aula Anterior... Interrupções por software e hardware; Temporizadores; RTC; Temporizadores via software. Relação Processos Multiprogramação GSI018 Sistemas Operacionais 26/08/2016 Gerência de Processos Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior... Interrupções por software

Leia mais

Criação de Processos Fork( ) Exec( )

Criação de Processos Fork( ) Exec( ) Criação de Processos Fork( ) Exec( ) 8/23/18 1 Chamadas de Sistema: Process Management 2 Chamada fork( ) / exec( ) 3 Esboço de uma shell while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt

Leia mais

Arquitetura de Sistemas Operativos

Arquitetura de Sistemas Operativos Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Um processo é uma instância em execução de um programa. No sistema operativo Unix a única forma de se criar um novo processo (processo-filho)

Leia mais

Manipulação de processos

Manipulação de processos Manipulação de processos Luiz Affonso Guedes 1 Ivanovitch Silva 1 affonso@dca.ufrn.br ivan@dca.ufrn.br 1 Universidade Federal do Rio Grande do Norte 17 de setembro de 2009 Processos DCA0109 1 / 18 Sumário

Leia mais

LABORATÓRIO SISTEMAS DE TEMPO REAL

LABORATÓRIO SISTEMAS DE TEMPO REAL FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: ENGENHARIA DE COMPUTAÇÃO DISCIPLINA: SISTEMAS DE TEMPO REAL E TOLERANTES À FALHA CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/01 PROFESSOR: EDUARDO

Leia mais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais SVCs para Controle de Processos no Unix (cont.) Término de Processos no Unix Um processo pode terminar normalmente ou anormalmente nas seguintes condições: Normal: Executa return na função main(), o que

Leia mais

http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html

http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html FORK() SYSTEM CALL * UTILIZADO PARA CRIAR SUBPROCESSO * PROCESSO QUE CRIA É PAI * PROCESSO CRIADO É O FILHO * APÓS A CRIAÇÃO AMBOS OS PROCESSO

Leia mais

LABORATÓRIO SISTEMAS OPERACIONAIS

LABORATÓRIO SISTEMAS OPERACIONAIS FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: SISTEMAS OPERACIONAIS CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS HORÁRIOS:

Leia mais

SVCs para Controle de Processos no Unix

SVCs para Controle de Processos no Unix Criação de Processos (1) SVCs para Controle de Processos no Unix A maioria dos sistemas operacionais usa um mecanismo de spawn para criar um novo processo a partir de um outro executável. Aula 9 Profa.

Leia mais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais SVCs para Controle de Processos no Unix (cont.) Término de Processos no Unix Um processo pode terminar normalmente ou anormalmente nas seguintes condições: Normal: Executa return na função main(), o que

Leia mais

Processos Volnys B. Bernal Versão de 20/03/2015. Agenda. Processos. Programa x Processo. Programa x Processo. Programa.

Processos Volnys B. Bernal Versão de 20/03/2015. Agenda. Processos. Programa x Processo. Programa x Processo. Programa. 1 2000-2015 - Volnys Bernal 1 2000-2015 - Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos (PSI) Escola Politécnica da USP x Concorrência x Paralelismo

Leia mais

Processos em Unix. Conteúdo: Definição de Processos em Unix Estrutura, tipo e escalonamento de processos em Unix Processos, Pai, Filho e Zumbi.

Processos em Unix. Conteúdo: Definição de Processos em Unix Estrutura, tipo e escalonamento de processos em Unix Processos, Pai, Filho e Zumbi. Processos em Unix Conteúdo: Definição de Processos em Unix Estrutura, tipo e escalonamento de processos em Unix Processos, Pai, Filho e Zumbi. O que é um Processo em Unix? É um espaço de endereçamento

Leia mais

E.E.E.P. Dr. Solon Tavares Sistemas Operacionais Prof. Henrique Cordeiro. Programação Concorrente em Linux

E.E.E.P. Dr. Solon Tavares Sistemas Operacionais Prof. Henrique Cordeiro. Programação Concorrente em Linux E.E.E.P. Dr. Solon Tavares Sistemas Operacionais Prof. Henrique Cordeiro Programação Concorrente em Linux O Conceito de Processo no Linux O conceito de processo é fundamental para qualquer sistema operacional

Leia mais

Processos. (c) 2005 Volnys B. Bernal Versão de 15/3/2006. Agenda. Processos. Introdução aos Processos. Introdução aos Processos

Processos. (c) 2005 Volnys B. Bernal Versão de 15/3/2006. Agenda. Processos. Introdução aos Processos. Introdução aos Processos 1 1997-2005 - Volnys Bernal 1 1997-2005 - Volnys Bernal 2 Agenda Processos Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Laboratório de Sistemas Integráveis http://www.lsi.usp.br/!

Leia mais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais SVCs para Controle de Processos no Unix (cont.) A Família de SVC's exec() As primitivas exec() constituem, na verdade, uma famılia de funções (execl, execlp, execle, execv, execvp, execve) que permitem

Leia mais

Trabalhando com Processos e Threads em Ambiente LINUX

Trabalhando com Processos e Threads em Ambiente LINUX Objetivo Universidade Federal do ABC Disciplina: BC 1518 Sistemas Operacionais (SO) Prática: Processo/Threads Atividade 3 Trabalhando com Processos e Threads em Ambiente LINUX 1.Trabalhar com comandos

Leia mais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais SVCs para Controle de Processos no Unix (cont.) A Família de SVC's exec() As primitivas exec() constituem, na verdade, uma famılia de funções que permitem a um processo executar o código de outro programa.

Leia mais

MÓDULO 02 PROCESSOS E THREADS PROCESSOS e THREADS

MÓDULO 02 PROCESSOS E THREADS PROCESSOS e THREADS MÓDULO 02 PROCESSOS E THREADS PROCESSOS e THREADS 1. ATIVIDADE 01 Verificar a criação de um processo filho (que imprime de 51 a 100) que rodará concorrentemente com o processo pai (que imprime de 1 a 50)

Leia mais

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo Conceito de processo Os computadores executam várias operações ao mesmo tempo. - Compilar um programa; - Enviar um arquivo para a impressora; - Exibir uma página web; - Reproduzir músicas; - Receber mensagens

Leia mais

Processos em UNIX. pid_t getpid() /* retorna o ID do processo */ /* retorna o ID do grupo de processos

Processos em UNIX. pid_t getpid() /* retorna o ID do processo */ /* retorna o ID do grupo de processos Processos em UNIX 1. Introdução A norma POSIX fornece dois mecanismos para a criação de atividades concorrentes. O primeiro, abordado neste capítulo, corresponde ao tradicional mecanismo fork do UNIX e

Leia mais

Sistemas Operativos. (ano letivo ) Laboratório 2

Sistemas Operativos. (ano letivo ) Laboratório 2 Código 21111 Sistemas Operativos (ano letivo 2017-18) Laboratório 2 Esta actividade está escrita na forma de tutorial e consiste na interpretação, compilação e execução de pequenos programas que efectuam

Leia mais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais

SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais SVCs para Controle de Processos no Unix (cont.) Primitivas exec..() As primitivas exec constituem, na verdade, uma família de funções que permitem a um processo executar o código de outro programa. Não

Leia mais

Tratamento de Sinais

Tratamento de Sinais Tratamento de Sinais Luiz Affonso Guedes 1 Ivanovitch Silva 1 affonso@dca.ufrn.br ivan@dca.ufrn.br 1 Universidade Federal do Rio Grande do Norte 25 de setembro de 2009 Sinais DCA0109 - Prática de programação

Leia mais

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 5. PROCESSO: 5.1 Introdução; 5.2 Estrutura do Processo; 5.3 Estados do Processo; 5.4

Leia mais

Um processo sob UNIX ocupa uma área de memória formada basicamente por 3 partes:

Um processo sob UNIX ocupa uma área de memória formada basicamente por 3 partes: Processos O UNIX é um sistema operacional multitarefa (suporta multiprogramação). Isso significa que ele é capaz de gerenciar a execução simultânea de vários programas. O termo processo é usado para caracterizar

Leia mais

Sistemas de Informação. Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE I SUMÁRIO 2. PROCESSO: 2.1 Introdução; 2.2 Estrutura do Processo; 2.3 Estados do Processo; 2.4 Mudanças de Estado do Processo; 2.5

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade II - Processos 24/04/2014 Prof. Valeria M. Bastos 1 Organização da Unidade Processos Conceituação Estruturas de Controle Modos de execução do S.O. Estados

Leia mais

Prof. Kleber R. Rovai

Prof. Kleber R. Rovai Msn: klrovai@hotmail.com E-mail: Skype: klrovai 2 1 Programa: sequência de instruções com diferentes fluxos de execução comandos condicionais e interativos (entidade passiva); Processo: um programa em

Leia mais

Processos. Conceitos Básicos

Processos. Conceitos Básicos Processos Conceitos Básicos Processo Abstração usada pelo S.O. para designar a execução de um programa. (1) É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos

Leia mais

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem

Leia mais

Sistemas Operativos: Processos

Sistemas Operativos: Processos Sistemas Operativos: Processos Pedro F. Souto (pfs@fe.up.pt) March 22, 2011 Sumário Processos Conceito de Processo Sequencial Multiprogramação Chamadas ao Sistema Rotinas Assíncronas Implementação de Processos

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade II - 18/9/2009 Prof. Antonio Carlos Gay Thomé Prof. Aux. Simone Markenson Pech 1 Conceituação Estruturas de Controle Modos de execução do S.O. Estados de um

Leia mais

Processo. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Processo. Prof. Paulo Cesar F. de Oliveira, BSc, PhD Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1 Seção 1.1 Introdução 2 Receita do Bolo Programa (Algoritmo) Ingredientes: dados de entrada Quem prepara (confeiteiro): CPU atividade de: Ler a receita Buscar

Leia mais

SVCs para Controle de Processos no Unix

SVCs para Controle de Processos no Unix Criação de Processos SVCs para Controle de Processos no Unix A maioria dos sistemas operacionais usa um mecanismo de spawn para criar um novo processo a partir de um outro executável. LPRM/DI/UFES 2 Criação

Leia mais

Processos. Conceitos Básicos

Processos. Conceitos Básicos Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos

Leia mais

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06. Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 06 Processos 2 1 Processos A gerência de um ambiente multiprogramável é

Leia mais

Processos. Adão de Melo Neto

Processos. Adão de Melo Neto Processos Adão de Melo Neto 1 Processos Introdução Para se poder controlar o uso concorrente (ao mesmo tempo) do processador, da memória e dos dispositivos de E/S, um programa deve sempre estar sempre

Leia mais

SVCs para Controle de Processos no Unix. Sistemas Operacionais

SVCs para Controle de Processos no Unix. Sistemas Operacionais SVCs para Controle de Processos no Unix Criação de Processos A maioria dos sistemas operacionais usa um mecanismo de spawn para criar um novo processo a partir de um outro executável. LPRM/DI/UFES 2 Criação

Leia mais

Leandro Soares de Sousa (DSc.) Página: Aula 04 - desenvolvimento multithread

Leandro Soares de Sousa (DSc.)   Página:   Aula 04 - desenvolvimento multithread Tópicos Especiais Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Aula 04 - desenvolvimento multithread Mais e mais ferramentas! 2 Processos e Threads: desenvolvimento

Leia mais

Técnicas Avançadas de Programação

Técnicas Avançadas de Programação Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos

Leia mais

Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos

Processos. Processo (1) Processo (2) Processo (3) Conceitos Básicos Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos

Leia mais

Processos. Conceitos Básicos

Processos. Conceitos Básicos Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos

Leia mais

Sistemas Operacionais. Conceito de Processos

Sistemas Operacionais. Conceito de Processos Sistemas Operacionais Conceito de Processos Processos Conceito de processo Estado de um processo Troca de contexto e PCB Fila de Processo Escalonador Comunicação entre processos Processo Um sistema operacional

Leia mais

Comunicação entre Processos Memória Compartilhada

Comunicação entre Processos Memória Compartilhada Comunicação entre Processos Memória Compartilhada 3/23/17 1 Métodos de comunicação entre processos Memória compartilhada Sinais Pipes Troca de mensagens Memória Compartilhada Memória compartilhada Permite

Leia mais

Processos no UNIX. Walter Fetter Lages

Processos no UNIX. Walter Fetter Lages Processos no UNIX Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Programa de Pós-Graduação em Engenharia Elétrica

Leia mais

Carlos Eduardo Batista Centro de Informática - UFPB

Carlos Eduardo Batista Centro de Informática - UFPB Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Desafios da programação concorrente Processos Estados, ações, histórias e propriedades Paralelização: Encontrando padrões em um arquivo

Leia mais

Administração de sistemas Linux. Administração de processos.

Administração de sistemas Linux. Administração de processos. Administração de sistemas Linux Administração de processos. Programas e processos Programas são arquivos em disco contendo instruções para execução pelo processador, enquanto processos são as execuções

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 2ª Aula Conceitos Básicos Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados

Leia mais

SOP - TADS Processos. Revisão Ultima aula

SOP - TADS Processos. Revisão Ultima aula SOP - TADS Processos Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Revisão de hardware Processador

Leia mais

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios SISTEMAS OPERACIONAIS Prof a. Roberta Lima Gomes (soufes@gmail.com) 1ª. Lista de Exercícios Data de Entrega: não há. O objetivo da lista é ajudar no estudo individual dos alunos. Soluções de questões específicas

Leia mais

Sistemas de Computação O Sistema Operacional Unix

Sistemas de Computação O Sistema Operacional Unix Sistemas de Computação O Sistema Operacional Unix 3/8/16 1 Introdução Interrupções de hardware Execução de uma Chamada de Sistema Alocação de memória Chamadas de Sistema típicas Arquitetura do Unix Visão

Leia mais

Sistemas Operacionais II

Sistemas Operacionais II Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II Da teoria à prática... (Processos, threads, mutex, semáforos, variáveis de condição e monitores) Aula 07 Fluxos de controle para programação

Leia mais

Concorrência em Processos

Concorrência em Processos Concorrência em Processos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Baseado nas aulas do professor Alberto Costa Neto da UFS 1 O que fazer com essa apresentação

Leia mais

Davidson Rodrigo Boccardo

Davidson Rodrigo Boccardo Fundamentos em Sistemas de Computação Davidson Rodrigo Boccardo flitzdavidson@gmail.com Componentes de um SO Gerenciamento de Processos Sistema de Arquivos Gerenciamento de Entrada/Saída Gerenciamento

Leia mais

Comunicação entre Processos

Comunicação entre Processos Comunicação entre Processos Pipes Redirecionamento de entrada e saída 4/19/18 1 O Pipe: Características (1) Canal de comunicação entre processos parentes, usando a politica First-In-First-Out (FIFO) Tipicamente,

Leia mais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional Processador INTRODUÇÃO Projetado apenas para executar instruções Não é capaz de distinguir qual programa está em execução Processo

Leia mais

Comunicação entre Processos Memória Compartilhada

Comunicação entre Processos Memória Compartilhada Comunicação entre Processos Memória Compartilhada 8/30/18 1 Métodos de comunicação entre processos Memória compartilhada Sinais Pipes Troca de mensagens Memória Compartilhada Memória compartilhada Permite

Leia mais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições

Leia mais

Licenciatura em Eng.ª Informática Sistemas Operativos - 2º Ano - 1º Semestre. Trabalho Nº 4 Desenvolvimento de um mini-shell

Licenciatura em Eng.ª Informática Sistemas Operativos - 2º Ano - 1º Semestre. Trabalho Nº 4 Desenvolvimento de um mini-shell Trabalho Nº 4 Desenvolvimento de um mini-shell (baseado no exercício presente em http://www.cs.huji.ac.il/~davidt/course/os/ex10.html) 1. Notas sobre criação de processos A criação de processos é uma das

Leia mais

Leandro Soares de Sousa (DSc.) Página: Parte II

Leandro Soares de Sousa (DSc.)   Página:   Parte II Tópicos Especiais em Sistemas Computacionais Leandro Soares de Sousa (DSc.) e-mail: leandro.uff.puro@gmail.com Página: http://www.ic.uff.br/~lsousa Parte II Mais e mais ferramentas! 2 Processos e Threads:

Leia mais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições

Leia mais

Sistemas Operacionais

Sistemas Operacionais ANHANGUERA Sistemas Operacionais Prof. Esp. Rafael Gross Processos Sumário Introdução Conceito de processo Estrutura do processo Estados do processo Mudanças de estado do processo Criação e eliminação

Leia mais

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito

Leia mais

Comunicação Inter-Processo em Unix. Pipes FIFO (Named Pipes) Pipes

Comunicação Inter-Processo em Unix. Pipes FIFO (Named Pipes) Pipes Comunicação Inter-Processo em Unix Pipes FIFO (Named Pipes) 1 Pipes 2 1! Comunicação entre pai e filho Ao chamar um fork(), processos pai e filho deixam de compartilhar memória Como fazer então para que

Leia mais

Processos ao nível do SO

Processos ao nível do SO Processos ao nível do SO José C. Cunha, DI-FCT/UNL Concorrência em sistemas de operação Periféricos operando simultaneamente Multiprogramação Eventos em instantes imprevisíveis SO monolíticos Programas

Leia mais

Material sobre Funções AEDS 1

Material sobre Funções AEDS 1 Material sobre Funções AEDS 1 1 Funções - revisão Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada e definem um valor de saída 2 Funções -

Leia mais

Sistemas de Computação

Sistemas de Computação Universidade Federal do Ceará Centro de Tecnologia Departamento de Engenharia de Teleinformática Sistemas de Computação Professor: Alexandre Coelho Aluna: Maria Luciene Lira Monteiro - 0316855 Fortaleza-CE,

Leia mais

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação. Processamento Paralelo Threads. Aluno: Wagner Palacio

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação. Processamento Paralelo Threads. Aluno: Wagner Palacio UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação Processamento Paralelo Threads Aluno: Wagner Palacio Turma: 3º período Professor: Giordano Cabral Recife, 29 de maio de 2012

Leia mais

16. Compilação no Linux

16. Compilação no Linux 16. Compilação no Linux 16.1 Compilador X Interpretador Um código fonte pode ser compilado ou interpretado. Compiladores e interpretadores tratam o código de maneira diferente. Interpretador: Lê o código

Leia mais

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

Notas da Aula 2 - Fundamentos de Sistemas Operacionais Notas da Aula 2 - Fundamentos de Sistemas Operacionais 1. Ciclo de Vida de um Processo Todo processo passa por 3 fases durante sua vida: criação, execução e término. Um processo pode ser criado por outro

Leia mais

Arquitetura de Computadores Sistemas Operacionais II

Arquitetura de Computadores Sistemas Operacionais II Definição de Processo Arquitetura de Computadores Sistemas Operacionais II Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa

Leia mais

Relembrando. Em nossas primeiras aulas discutimos o conceito do que seria um processo! Quem lembra?

Relembrando. Em nossas primeiras aulas discutimos o conceito do que seria um processo! Quem lembra? Relembrando Em nossas primeiras aulas discutimos o conceito do que seria um processo! Quem lembra? Processos Essencialmente podemos dizer que é uma aplicação em execução. Um processo consome memória, disco,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Fabio Augusto Oliveira Processos O processador é projetado apenas para executar instruções, não sendo capaz de distinguir qual programa se encontra em execução. A gerência de

Leia mais

1 System Calls no Linux

1 System Calls no Linux Sistemas Operacionais Laboratorio - System Calls Adaptação do Laboratório 1 - Prof. Eduardo Zambon 1 System Calls no Linux Vamos mencionar aqui alguns pontos já discutidos em aula e introduzir novos conceitos

Leia mais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno

Leia mais

Processos. processos UNIX e Linux threads em Linux. Taisy Weber

Processos. processos UNIX e Linux threads em Linux. Taisy Weber Processos processos UNIX e Linux threads em Linux Taisy Weber Ambiente UNIX Processos: revisão de conceitos básicos processos no SO UNIX programação criação (exec, fork, etc), sincronização (wait), eliminação,

Leia mais

INF 1620 P1-13/09/02 Questão 1 Nome:

INF 1620 P1-13/09/02 Questão 1 Nome: INF 1620 P1-13/09/02 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$

Leia mais

SISTEMAS OPERATIVOS I

SISTEMAS OPERATIVOS I Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática SISTEMAS OPERATIVOS I Programação Concorrente em Linux: Gestão de Processos Versão 2.02 Maio de 2006 Luís Lino Ferreira

Leia mais

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos

Leia mais

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012 1 2005-2009 Volnys Bernal 1 2005-2009 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Interface de threads Interfaces de threads de usuário x threads de núcleo

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Funções

Algoritmos e Estruturas de Dados I (DCC/003) Funções Algoritmos e Estruturas de Dados I (DCC/003) Funções Funções Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada, e definem um valor de saída

Leia mais

Eventos. Rotinas Assíncronas

Eventos. Rotinas Assíncronas Eventos Rotinas Assíncronas para Tratamento de acontecimentos assíncronos e excepções Rotinas Assíncronas Certos acontecimentos devem ser tratados pelas aplicações, embora não seja possível prever a sua

Leia mais

Sistemas Operacionais

Sistemas Operacionais Questões... Sistemas Operacionais Processos Implementação e estudo de casos Aula 3 Em que momentos um processo pode ser criado? Como que se cria processos? O que deve ser feito na criação? Como um processo

Leia mais

Sinais. Sinais e fork. Sinais e exec. Segunda aula. Chamada ao sistema fork Chamada ao sistema execve. José Pedro Oliveira

Sinais. Sinais e fork. Sinais e exec. Segunda aula. Chamada ao sistema fork Chamada ao sistema execve. José Pedro Oliveira e chamadas ao sistema fork e exec Segunda aula (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 2006-2007 1

Leia mais

- pid do último processo a manipular o semáforo (através de semop/semctl); - o número de processos que estão à espera que o valor do semáforo seja 0.

- pid do último processo a manipular o semáforo (através de semop/semctl); - o número de processos que estão à espera que o valor do semáforo seja 0. Página 1 de 8 Semáforos São variáveis que permitem sincronização entre processos, de modo a evitar race conditions (quando dois ou mais processos necessitam de escrever/ler dados partilhados simultaneamente),cujas

Leia mais

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto? LabSO Gerência de AULA 3 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Porque eu preciso entender este assunto? Para entender como um computador consegue executar

Leia mais

Descrição. Termos e utilitários. Áreas em foco. Processos. Processos. Comandos GNU e Linux

Descrição. Termos e utilitários. Áreas em foco. Processos. Processos. Comandos GNU e Linux Descrição 2 Os candidatos devem ser capazes de gerenciar os do sistema Comandos GNU e Linux 103.5 Iniciar, monitorar e encerrar Peso 4 Instrutor: Charles Hallan Áreas em foco 3 Termos e utilitários 4 Executar

Leia mais

A D M I N I S T R A Ç Ã O D E S I S T E M A S / P E D R O B R A N D Ã O REFERÊNCIAS DOS SLIDES

A D M I N I S T R A Ç Ã O D E S I S T E M A S / P E D R O B R A N D Ã O REFERÊNCIAS DOS SLIDES P R O C E S S O S A D M I N I S T R A Ç Ã O D E S I S T E M A S 2 0 1 7 / 2 0 1 8 P E D R O B R A N D Ã O 2 REFERÊNCIAS DOS SLIDES O conteúdo destes slides é baseado no livro da disciplina: Unix and Linux

Leia mais

Processos. Sistemas Operativos 2015 / Multiprogramação. Execução, em paralelo, de múltiplos programas na mesma máquina

Processos. Sistemas Operativos 2015 / Multiprogramação. Execução, em paralelo, de múltiplos programas na mesma máquina Processos Sistemas Operativos 2015 / 2016 Multiprogramação Execução, em paralelo, de múltiplos programas na mesma máquina Cada instância de um programa em execução denomina-se um processo Considerando

Leia mais

Threads em Ambiente LINUX. Estudo e testes com a biblioteca pthreads

Threads em Ambiente LINUX. Estudo e testes com a biblioteca pthreads Universidade Federal do ABC Disciplina: BC 1518 Sistemas Operacionais (SO) Prática: Threads Atividade 3 Threads em Ambiente LINUX Objetivo Estudo e testes com a biblioteca pthreads Threads Como vimos em

Leia mais

Teste de Sistemas de Operação 30 de Maio de 2009

Teste de Sistemas de Operação 30 de Maio de 2009 Teste de Sistemas de Operação 30 de Maio de 2009 Duração: 30 min B NOME: Indique apenas uma das alternativas. Respostas erradas descontam na nota. 1. Um pedido de entrada e saída sem buffering: (letra

Leia mais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Prática 01: Conceitos Iniciais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Prática 01: Conceitos Iniciais TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Prática 01: Conceitos Iniciais ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES / LÓGICA DIGITAL (PRIMEIRA PARTE) Lógica Digital

Leia mais

Linguagem de Programação II

Linguagem de Programação II Linguagem de Programação II Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB bidu@ci.ufpb.br Introdução à Programação Concorrente / Processos Desafios da programação concorrente Processos Estados, ações,

Leia mais