Leandro Soares de Sousa (DSc.) Página: Aula 04 - desenvolvimento multithread
|
|
- Larissa da Costa
- 5 Há anos
- Visualizações:
Transcrição
1 Tópicos Especiais Leandro Soares de Sousa (DSc.) Página: Aula 04 - desenvolvimento multithread
2 Mais e mais ferramentas! 2 Processos e Threads: desenvolvimento multithread
3 3 Processos: PCB Código Dados Arquivos propriedade de recursos: a um processo é alocado um espaço de endereçamento virtual para manter a sua imagem; de tempos em tempos o processo pode ter mais memória, além do controle de arquivos, dispositivos de E/S,...
4 4 Processos: PCB Código Dados Arquivos unidade de despacho: um processo é uma linha de execução, intercalada com outras linhas de outros processos; cada uma delas tem um estado de execução e uma prioridade; é a entidade que é escalonada e despachada pelo SO
5 5 Processos: PCB Código Dados Arquivos entra fila despacho UCP sai pausa
6 6 Processos com um e com múltiplos threads: PCB Código Dados Arquivos PCB Código Dados Arquivos Registradores Registradores Registradores Registradores Pilha Pilha Pilha Pilha
7 7 Processos com um e com múltiplos threads: Recursos compartilhados PCB Código Dados Arquivos PCB Código Dados Arquivos Registradores Registradores Registradores Registradores Pilha Pilha Pilha Pilha
8 8 Processos com um e com múltiplos threads: Estas duas características podem ser tratadas de forma independente pelo SO (propriedade de recursos e unidade de despacho): thread ou processo peso leve (lightweight process): é a unidade de despacho processo ou tarefa: é a unidade de alocação de recursos
9 9 Em um ambiente multithreaded, um processo: é a unidade de alocação e proteção de recursos tem um espaço de endereçamento virtual que mantém a imagem do processo tem acesso controlado a outros processos, arquivos e outros recursos
10 10 Em um processo podem existir uma ou mais threads com: um estado de execução (pronta, ) seu contexto salvo quando não estiver executando sua pilha de execução acesso às variáveis locais próprias acesso compartilhado com outras threads deste processo aos recursos do processo
11 11 Principais funções da biblioteca pthread: Header: #include <pthread.h> Compilação: Linux: gcc -o p p.c -lpthread Windows (CodeBlocks): baixe o arquivo pthread.zip do site, depois... copie os *.lib e *.a para: c:\arquivos de Programas (x86)\codeblocks\mingw\lib\ copie os *.dll para: c:\arquivos de Programas (x86)\codeblocks\mingw\bin\ copie os *.h para: c:\arquivos de Programas (x86)\codeblocks\mingw\include\ No CodeBlocks: Project build options linker settings Other linker options: inclua -lpthreadgc1
12 12 Pthread: Declaração de thread (local na main): pthread_t nome_thread; Essa variável recebe um ponteiro para a função executada como uma thread.
13 13 Funções utilizadas: Criação da thread: // variáveis e funções void *funcao() {... } Parâmetros para a thread (ponteiro para void pode ser feito um typecast para uma estrutura, vetor...) pthread_t nome_thread; if (pthread_create(&nome_pthread,null,funcao,null)) { printf("\nerro: criando thread.\n"); return(0); }... pthread_kill(nome_thread,0);
14 14 Mutexes: Servem para travar o acesso: Lock(var) Lock(var) Fica esperando por um unlock(var) para continuar a execução. Utilizado para que não ocorram conflitos no acesso aos recursos compartilhados (por exemplo, variáveis globais) Declaração de mutexes (global): pthread_mutex_t nome_mutex;
15 15 Dinâmica dos mutexes: Init() antes de usar lock e unlock Lock() possivelmente vários ao longo da execução Unlock() possivelmente vários ao longo da execução Fini() antes do final do programa
16 16 Funções utilizadas: Inicialização de um mutex: // inicializa as variáveis de lock, // fazer isto antes do início das threads // lock é só o nome da variável void init_lock(pthread_mutex_t *lock) { pthread_mutex_init(lock,null); return; }... // chamada init_lock(&lock);
17 17 Funções utilizadas: Finalização de um mutex: // finalize as variáveis de lock, // após a finalização das threads // lock é só o nome da variável void fini_lock(pthread_mutex_t *lock) { pthread_mutex_destroy(lock); return; }... // chamada fini_lock(&lock);
18 18 Funções utilizadas: Lock no mutex: pthread_mutex_lock(&lock); Unlock no mutex: pthread_mutex_unlock(&lock);
19 19 Exemplo: Ordem de execução do programa, criação e término das threads Programa (main) Rotina: Finalizar Rotina: gerar entrada Saída Processamento Entrada Buffer: Saída Buffer: Entrada Saída: s.txt Entrada: e.txt
20 20 Main Ordem de execução do programa, criação e término das threads Programa (main) Rotina: Finalizar Rotina: gerar entrada Saída Processamento Entrada Buffer: Saída Buffer: Entrada Saída: s.txt Entrada: e.txt
21 21 Cabeçalho do programa: #define MWIN #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/time.h> #include <pthread.h> #include <errno.h> #ifdef MWIN #include <windows.h> #endif
22 22 A função main()! Global: Inclusões (cabeçalho) Declaração dos mutexes/buffers/variáveis de controle. Funções main(): Declaração das variáveis dos threads; Iniciar mutexes; Limpar buffers (globais); Iniciar variáveis de controle dos buffers (globais); Gerar entrada(); Iniciar threads, uma a uma, na ordem definida; Rotina de finalização(); Finalizar threads; Finalizar mutexes;
23 23 Gerar entrada: Ordem de execução do programa, criação e término das threads Programa (main) Rotina: Finalizar Rotina: gerar entrada Saída Processamento Entrada Buffer: Saída Buffer: Entrada Saída: s.txt Entrada: e.txt
24 24 Gerar entrada(); int gerar_entrada() { FILE *arq; int i; if ((arq = fopen("e.txt","wt"))== NULL) { printf("\nerro: criando o arquivo de entrada!\n"); return(erro); } for (i = 1 ; i <= 1000; ++i) { fprintf(arq,"%05d\n",i); } fflush(arq); fclose(arq); return(ok); }
25 25 Threads (chamadas): Ordem de execução do programa, criação e término das threads Programa (main) Rotina: Finalizar Rotina: gerar entrada Saída Processamento Entrada Buffer: Saída Buffer: Entrada Saída: s.txt Entrada: e.txt
26 26 Ativação das threads: as três threads são ativadas na sequência: LEITURA, PROCESSAMENTO e ESCRITA. Dica: criação dos threads, declaração das variáveis e formato do header das funções veja nas transparências anteriores.
27 27 Buffers: Ordem de execução do programa, criação e término das threads Programa (main) Rotina: Finalizar Rotina: gerar entrada Saída Processamento Entrada Buffer: Saída Buffer: Entrada Saída: s.txt Entrada: e.txt
28 28 Buffers de entrada e saída: ambos globais e implementados através de um string de tamanho 6 (conteúdo de 5 caracteres e NULL no final) (char be[6],bs[6]; exemplo)
29 29 Mutex para o controle da concorrência: esses mutex: m_e,e m_s, realizam o controle de acesso ao buffer de entrada e ao buffer de saída, respectivamente. Dica: Veja, para definição, inicialização e utilização, nas transparências anteriores.
30 30 Saída: Ordem de execução do programa, criação e término das threads Programa (main) Rotina: Finalizar Rotina: gerar entrada Saída Processamento Entrada Buffer: Saída Buffer: Entrada Saída: s.txt Entrada: e.txt
31 31 SAÍDA: Na saída é gerado um arquivo texto (s.txt), contendo 1000 registros, no seguinte formato:
32 32 Threads (funcionalidade): Ordem de execução do programa, criação e término das threads Programa (main) Rotina: Finalizar Rotina: gerar entrada Saída Processamento Entrada Buffer: Saída Buffer: Entrada Saída: s.txt Entrada: e.txt
33 33 THREAD LEITURA: a cada um milissegundo lê do arquivo de entrada (e.txt) um novo registro (claro, se o buffer de entrada não estiver cheio). THREAD PROCESSAMENTO: a cada milissegundo lê do buffer de entrada um novo registro e limpa o buffer de entrada, inverte o conteúdo do string lido e grava no buffer de saída, indicando que tem um registro (claro, se tiver algo para ler no buffer de entrada e, depois de completado o processamento, aguarda até que tenha espaço no buffer de saída, pausando em um milissegundo). THREAD ESCRITA: a cada milissegundo, se o buffer de saída estiver com dados então grava em disco e limpa o buffer de saída. DICA: Para ver se tem algo em algum buffer ser criadas duas variáveis globais (Ex.: tem_dado_e e tem_dado_s, com 1 se tem dado e 0 c.c.) DICA: Processamento: ler processar escrever
34 34 Função de apoio: Parada (p) em milissegundos (ms): void m_usleep(unsigned long pause) { #ifdef MWIN Sleep(pause); #else usleep(pause*1000l); #endif return; }... m_usleep(1);
35 35 Threads (algoritmo): Ordem de execução do programa, criação e término das threads Programa (main) Rotina: Finalizar Rotina: gerar entrada Saída Processamento Entrada Buffer: Saída Buffer: Entrada Saída: s.txt Entrada: e.txt
36 36 Threads() (Cada uma das 3) fim = 0 // Controle do loop interno for (;;) // Loop externo eterno while (!fim) // Loop interno até finalizar o processamento da thread específica Processamento interno (os buffers não devem ser travados todos ao mesmo tempo) Ao final do processamento altera o terminou e fim = 1 m_usleep(1); // Pausa de 1 milissegundo a cada registro processado Fim do loop interno while Pausa de 1 segundo m_usleep(1000); Fim do loop externo for
37 37 Quando todo o arquivo de entrada for lido, neste momento LEITURA está ponta para terminar, ou seja, fica apenas no loop externo (terminou passa a 2). PROCESSAMENTO só termina quando o buffer de entrada estiver vazio e terminou for igual a 2 (dois), então terminou passa a 1 (um) e processamento fica pronta para terminar, ou seja, fica apenas no loop externo. ESCRITA só termina quando registro de processamento estiver vazio, terminou for igual a 1 (1) e o buffer de saída estiver vazio, terminou passa a 0 (zero), ou seja, fica apenas no loop externo. Quando terminou passa a 0 (zero), a função finaliza acaba e retorna para a função principal. De forma a simplificar a implementação, quando as funções ficam prontas para terminar elas continuam com seu processamento, mas sem alterar mais a variável terminou. (vejam o loop externo da transparência anterior)
38 38 Ordem de execução do programa, criação e término das threads Programa (main) Rotina: Finalizar Rotina: gerar entrada Saída Processamento Entrada Buffer: Saída Buffer: Entrada Saída: s.txt Entrada: e.txt
39 39 ROTINA FINALIZAR() de graça: chamada APÓS a criação de todas as threads, essa rotina fica em loop com paradas de 50 ms, testando a variável terminou (de forma protegida). Criem uma variável global terminou que começa com 3 (três) no início programa, criem um mutex para lock dessa variável (Ex.: p_fi) Terminou a thread de entrada, decrementa terminou Terminou a thread de processamento, decrementa terminou Terminou a thread de saída, decrementa terminou
40 40 ROTINA FINALIZAR(): void finalizar() { int nao_acabou = 1; while (nao_acabou) { m_usleep(50); // 50 milissegundos pthread_mutex_lock(&p_fi); // Protege a terminou if (terminou == 0) { printf("\nem finalizar... Acabou mesmo!"); nao_acabou = 0; } pthread_mutex_unlock(&p_fi);// Desprotege a terminou } return; }
41 Tópicos Especiais Aula 04 - desenvolvimento multithread - FIM
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 maisExclusão Mútua (mutex)
2004-2017 Volnys Bernal 1 Exclusão Mútua (mutex) Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 2 Tópicos Exclusão Mútua (Mutex)
Leia maisLeandro Soares de Sousa (DSc.) Página: Parte III
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 III Mais e mais ferramentas! 2 Aplicações distribuídas:
Leia maisLeandro Soares de Sousa (D.Sc.) Página:
Leandro Soares de Sousa (D.Sc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Sobre o curso Sumário Ementa Bibliografia Aulas Avaliações Plano de aula Trabalhos Fontes dos programas (onde
Leia maisSincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex)
2004-2013 Volnys Bernal 1 2004-2013 Volnys Bernal 2 Tópicos Exclusão Mútua (mutex) Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Exclusão Mútua () Objetivo, utilidade, requisitos
Leia maisLeandro Soares de Sousa (DSc.) Página:
Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Sobre o curso Índice Ementa Bibliografia Aulas Avaliações Plano de aula Trabalhos Fontes dos programas (onde
Leia maisThreads. 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 maisLeandro Soares de Sousa (DSc.) Página: Aula 05 - desenvolvimento com sockets
Tópicos Especiais Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Aula 05 - desenvolvimento com sockets Mais e mais ferramentas! 2 Aplicações distribuídas:
Leia maisThreads ou Processos Leves
Threads ou Processos Leves Sistemas Operacionais Tradicionais Sistemas com Multithreading Legenda: processo thread Contador de programa Threads Processos que compartilham espaço de endereçamento: P1 threads
Leia maisLeandro Soares de Sousa (DSc.) Página: Aula 03 Revisão e Conceitos C e Unix
Tópicos Especiais Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Aula 03 Revisão e Conceitos C e Unix Ferramentas para ajudá-los! 2 Programas com vários fontes
Leia maisOO Engenharia Eletrônica
OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à programação multi-thread. Thread: linha de execução de um processo. Multi-thread: execução de múltiplas threads em um processo. Prof.
Leia maisAlgoritmos e Estruturas de dados
Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores
Leia maisFerramentas para Programação em Processadores Multi-Core
Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Programação multithread Prática
Leia maisProcesso. 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 maisEEL770 Sistemas Operacionais
EEL770 Sistemas Operacionais Parte 2: Concorrência Conceitos básicos e ciclo de vida de threads Prof. Rodrigo de Souza Couto Concorrência Múltiplas atividades que podem ocorrer ao mesmo tempo Exemplos
Leia maisSSC304 Introdução à Programação Para Engenharias. Arquivos. GE4 Bio
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Arquivos GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos
Leia maisCaracteres e Cadeias de Caracteres
Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor
Leia maisIntrodução aos Sistemas Operacionais. Threads
Introdução aos Sistemas Operacionais Threads Eleri Cardozo FEEC/Unicamp O que é uma Thread? Uma thread (linha de controle) é uma unidade de execução e de controle, alocação e compartilhamento de recursos
Leia maisNa Aula Anterior... O Conceito de Threads
GSI018 Sistemas Operacionais 12/09/2016 Na Aula Anterior... Nesta Aula Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Comunicação entre Processos Pipes;
Leia maisProcessos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend
Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos
Leia maisEPs 1 e 2. EP2: veja. EP1: veja
1 EPs 1 e 2 EP2: veja http://www.ime.usp.br/~fabricio/ep2/ep2.pdf EP1: veja http://www.ime.usp.br/~yoshi/2006ii/mac122a/eps/ep1/wc.pdf http://www.ime.usp.br/~pf/cweb/ http://www.ime.usp.br/~pf/algoritmos/apend/util.html
Leia maisThreads 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 maisSistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal
Sistemas Operacionais Aula 07: Scheduling da CPU Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o Scheduling da CPU, que é a base dos sistemas operacionais multiprogramados
Leia maisSistemas 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 maisMódulo 7 Cadeias de Caracteres
Estruturas de Dados Módulo 7 Cadeias de Caracteres 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
Leia maisLeandro Soares de Sousa (DSc.) Página: Parte I
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 I E essa disciplina? 2 Prover algumas das ferramentas
Leia maisListas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Listas Encadeadas David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo Elementos não
Leia mais4 MDP. void média e dp(int a[],int n,float em,float ed) 7. Variáveis auxiliares 7. Faça ed igual ao desvio padrão 6 }
1 MDP INTRODUCÃO 1 1. Introducão. Esta é uma demonstração do sistema CWEB (veja http://www.ime.usp.br/~pf/ CWEB/) de Knuth e Levy. Um programa CWEB, como este que você está lendo, é uma espécie de jogo
Leia maisSistemas Operacionais. Processos IC - UFF
Sistemas Operacionais Processos O conceito de processos No capítulo 1, fizemos as seguintes afirmativas quanto aos processos: Mais geral que programa Consiste em um código executável e seus dados associados,
Leia maisSistemas Operacionais II
Sistemas Operacionais II Windows Conceitos Básicos Geraldo Braz Junior Departamento de Informática - UFMA 2 Introdução Job Coleção de um ou mais processos gerenciados como uma unidade; Define cotas e limites
Leia maisIntrodução a Programação. Manipulando Arquivos em Modo Texto
Introdução a Programação Manipulando Arquivos em Modo Texto Tópicos da Aula Hoje aprenderemos funções de manipulação de arquivos texto Funções de leitura em modo texto Funções de escrita em modo texto
Leia maisSistemas Operacionais
Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências
Leia maisThreads. threads em Linux Taisy Weber
Threads 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, processos zombie
Leia maisSistemas 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 maisSistemas Operacionais. Processos e Threads
Sistemas Operacionais Processos e Threads Sumário 1. Introdução 2. Estrutura do Processo 1. Contexto de Hardware 2. Contexto de Software 3. Espaço de Endereçamento 3. Estados 1. Mudanças de Estado 2. Criação
Leia maisSistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos
Aula 2 Gerência de Processos Gerência de Processos O que são Processos e Threads? Porque são necessários? Como são implementados? Como são controlados? Escalonamento Referências: Capítulo 4: 4.1 a 4.5
Leia maisSistemas 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 maisProcesso. 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 maisProcesso. 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 maisSistemas 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 mais9. Arquivos em C. Prof. Renato Tinós. Departamento de Computação e Matemática (FFCLRP/USP) Introdução à Computação II
Introdução à Computação II 5952011 9. Arquivos em C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 9. Arquivos em C 9.1. Introdução 9.2. Escrita 9.3. Leitura
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Leia maisUnix Processos. Geraldo Braz Junior
Unix Processos Geraldo Braz Junior 1 Processos no Unix Unix é multiprogramado; Para cada processo é atribuído um Pid; Diversos daemons são executados: Cron Processamento de emails Gerenciamento da fila
Leia maisLeandro Soares de Sousa (DSc.) Página: Aula 02 Revisão e Conceitos C
Tópicos Especiais Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Aula 02 Revisão e Conceitos C E essa disciplina? 2 Prover algumas das ferramentas necessárias
Leia maisTrabalhando 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 maisSistemas 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 maisINSTITUTO 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 - Arquivos Copyright 2014 IFRN Agenda Conceito Tipos de arquivos Texto Binário Stream Principais funções Exemplos
Leia maisADTs (Abstract Data Types): Motivação
ADTs (Abstract Data Types): Motivação Mesmas estruturas são usadas com vários tipos de dados Listas Pilhas Amontoado FIFOs Inteiros Reais Strings Estruturas O procedimento para inserir um inteiro, real,
Leia maisCapítulo 5: Escalonamento da CPU. Operating System Concepts 8th Edition
Capítulo 5: Escalonamento da CPU Capítulo 5: Escalonamento de CPU Conceitos Básicos Critérios de Escalonamento Algoritmos de Escalonamento Escalonamento de Threads Escalonamento de Multiprocessadores Exemplos
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Introdução a Processos Andreza Leite andreza.leite@univasf.edu.br Plano da Aula 2 Introdução a Processos Threads vs Processos Características dos Processos Estados dos Processos 3
Leia maisDEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I - 1 0 SEM/12 PROVA I Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos Aluno: G A B A R I T O Escore: Responda às perguntas de forma
Leia maisOperações em Arquivos. MC102 Felipe Bergo
Operações em Arquivos MC102 Felipe Bergo Arquivos O sistema de arquivos é uma abstração para as memórias secundárias do computador: discos, fitas, CDs. Há uma hierarquia de diretórios e cada diretório
Leia maisProcessos. 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 maisSistemas 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 maisProgramação de Computadores II. Cap. 7 Cadeias de Caracteres
Programação de Computadores II Cap. 7 Cadeias de Caracteres Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais
Leia maisArquivos. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC
Arquivos INF1005 Programação I Profa. Simone D.J. Barbosa simone@inf.puc-rio.br sala 410 RDC 1 arquivos tópicos por que usar arquivos manipulação de arquivos lendo dados de arquivos (modo texto) escrevendo
Leia maisSistemas Operacionais. Prof. Fabio Augusto Oliveira
Sistemas Operacionais Prof. Fabio Augusto Oliveira Threads Um processo representa uma sequência de instruções única, executada paralelamente a outra seqüências de instruções. Um thread é uma maneira de
Leia maistutorial. man fork man pthread_create man pthread_join man wait man sleep
Abaixo, você encontrá dicas para lhe ajudar a fazer o 1º trabalho de SOI, que está descrito na página do curso. Lembrando que essas dicas visam apenas o auxilio nas partes mais problemáticas do trabalho
Leia maisAula 26: Arquivos de texto
Aula 26: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas heterogêneas Alocação
Leia maisLista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.
Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Funções e estruturas básicas 1. Faça uma função que recebe a idade de uma
Leia maisLINGUAGEM C: ARRAYS DE CARACTERES: STRINGS
LINGUAGEM C: ARRAYS DE CARACTERES: STRINGS Prof. André Backes DEFINIÇÃO String Sequência de caracteres adjacentes na memória. Essa sequência de caracteres, que pode ser uma palavra ou frase Em outras palavras,
Leia maisLeitura Segura de Strings
Leitura Segura de Strings As funções da biblioteca padrão de C que podem ser usadas para leitura de strings não são suficientemente adequadas para esta finalidade básica. Nesta seção, serão descritos alguns
Leia maisAula 1 Apresentação do Curso
Departamento de Sistemas de Computação Universidade de São Paulo SSC 502 Laboratório de Introdução a Ciência de Computação I Aula 1 Apresentação do Curso Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)
Leia maisFUNÇÕ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 maisIntrodução a Arquitetura de Sistemas Operacionais. Parte 01
Introdução a Arquitetura de Sistemas Operacionais Parte 01 Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Julho / 2017 1/44 Nota Com exceção das figuras
Leia maisArquivos em C. Material da Prof. Ana Eliza
em C Material da Prof. Ana Eliza Definição Um arquivo é uma estrutura de dados linear ( lista ) que é mantida fora da memória principal, em um dispositivo de armazenamento (memória secundária). Um arquivo
Leia maisComputação 2. Aula 8. Profª. Fabiany Arquivos
Computação 2 Aula 8 Arquivos Profª. Fabiany fabianyl@utfpr.edu.br E/S com Arquivos A linguagem C não possui nenhum comando de E/S. Todas as operações de E/S ocorrem mediante chamadas a funções de biblioteca
Leia maisSistemas de Entrada e Saída
Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 31 Sumário 1 Interrupções 2 Camadas de Software de E/S 2 / 31 Interrupções
Leia maisCaracteres. Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos
Caracteres Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos Exemplo: Tabela ASCII Alguns alfabetos precisam de maior
Leia maisArquitetura 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 maisProcessos. 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 maisLista: conceito, representação e algoritmos
Lista: conceito, representação e algoritmos SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Problema Imaginem a situação da automação de uma biblioteca Todos os livros devem ser cadastrados
Leia maisAlgoritmos 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 maisSistemas 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 maisCAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:
CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta
Leia maisSistemas de Computação Semáforos
Sistemas de Computação Semáforos 4/26/18 1 Semáforos Um semáforo simples é uma variável que pode assumir os valores 0 e 1 (semáforo binário). Esta é a forma mais comum Semáforos que podem assumir diversos
Leia maisSOP - 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 maisFundamentos de Programação
Fundamentos de Programação ET42G Aula 21 Prof. Daniel Cavalcanti Jeronymo Conversão de tipos. Alocação dinâmica de memória. Recursão. Criação de bibliotecas, arquivos de cabeçalhos e variáveis globais.
Leia maisSOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU
SOP - TADS Threads Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Processos [1/3] Conceito:
Leia maisVariáveis, Tipos de Dados e Operadores
! Variáveis, Tipos de Dados e Operadores Engenharias Informática Aplicada 2.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) VARIÁVEL VARIÁVEL É um local lógico, ligado a um endereço físico da memória
Leia maisMAC-115 Introdução à Computação para Ciências Exatas e Tecnologia IO Terceiro Exercício-Programa Entregar até 09/11/2007
MAC-115 Introdução à Computação para Ciências Exatas e Tecnologia IO Terceiro Exercício-Programa Entregar até 09/11/2007 O Problema da Mochila São dados um inteiro positivo n e dois vetores quant e custot,
Leia maisListas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1
Listas Lineares Elerson R. S. Santos elerson@dcc.ufmg.br Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Listas Lineares Uma das formas mais simples
Leia maisSistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia
Sistemas Operacionais BSI / UAB 2013 Hélio Crestana Guardia Visão do SO SO: camada de software, executado diretamente sobre o hardware (físico ou virtual) Permite que hardware seja usado de forma eficiente
Leia maisSistemas Operacionais II. Windows: Gerenciamento de Memória
Sistemas Operacionais II Windows: Gerenciamento de Memória Espaço de Endereçamento Em máquinas de 32 bits, o espaço de endereçamento virtual é de 4 GB dividido assim: 2 GB inferiores (menos 256 MB) para
Leia maisComputação Eletrônica. Aula 12 Arquivos Texto e Binário. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Aula 12 Arquivos Texto e Binário Prof: Luciano Barbosa Relembrando a Arquitetura Básica de um Computador Até agora, toda a informação armazenada por nossos programas estava na memória
Leia maisLista: conceito, representação e algoritmos
Alocação seqüencial vs. encadeada Lista: conceito, representação e algoritmos Alocação seqüencial: elementos são alocados em seqüência; seqüência física Baseado no material de Thiago A. S. Pardo Algoritmos
Leia maisProgramação de Computadores II. Cap. 5 Vetores
Programação de Computadores II Cap. 5 Vetores Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:
Leia maisProgramação Estruturada Prof. Rodrigo Hausen Agregados de Dados Heterogêneos (structs)
Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Agregados de Dados Heterogêneos (structs) 1 AGREGADO HOMOGÊNEO Um agregado homogêneo de dados é um conjunto de dados que são necessariamente
Leia maisSegundo trabalho prático de implementação Sistema de reserva de assentos
Segundo trabalho prático de implementação Sistema de reserva de assentos 1. Descrição do problema Computação Concorrente (MAB-117) 2016/2 Prof. Silvana Rossetto 1 DCC/IM/UFRJ 17 de novembro de 2016 Um
Leia maisEstruturas de Dados. Profa. Juliana Pinheiro Campos
Estruturas de Dados Profa. Juliana Pinheiro Campos Vetores Forma mais simples de estruturar um conjunto de dados. Exemplo: int p[10]; // vetor de inteiros com 10 elementos Reserva de um espaço de memória
Leia maisIntrodução Linguagem C. UDESC - Prof. Juliano Maia 1
Introdução Linguagem C UDESC - Prof. Juliano Maia 1 Índice Seção 1 A linguagem C Seção 2 Esqueleto Básico Programa em C UDESC - Prof. Juliano Maia 2 A linguagem C Seção 1 História Características Orientação
Leia maisPrincípios de Desenvolvimento de Algoritmos MAC122
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Vazamento de memória & Erros em tempo de execução Vazamento de memória Introdução: Vazamento de memória (memory leak),
Leia maisSistemas de Computação. Gerenciamento de memória
Gerenciamento de memória Localização de processos Um programa fica armazenado em disco como um arquivo executável binário e tem que ser colocado na memória para começar a ser executado Os processos podem
Leia maisUniversidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Profa Rosana Braga
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Profa Rosana Braga 1º semestre de 2010 1 Arquivo-FONTE /*******************************/ /* Primeiro exemplo arq exemplo1.c
Leia maisProcessos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião
Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar
Leia maisRedes 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 maisIntrodução a Programação Concorrente. Aula 02. Prof. André Luis Meneses Silva
Introdução a Programação Concorrente Aula 02 Prof. André Luis Meneses Silva Agenda Pthreads Trabalhando com Threads Exclusão Mútua Semáforos Pthreads Históricamente, fabricantes de hardware implementam
Leia maisDepartamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos
Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I Aula 13 Arquivos Responsável Seiji Isotani, Rafaela V. Rocha sisotani@icmc.usp.br rafaela.vilela@gmail.com
Leia mais