click below
click below
Normal Size Small Size show me how
Concurrent C
Aprender os Conceitos Básicos da Linguagem
Termo | Definição ou Exemplo |
---|---|
Processo | Um programa em Concurrent C consiste em um ou mais processos. Processos são blocos que constroem um programa concorrente. |
Mémoria Compartilhada (rendezvous) | Mecanismo que permite dois processos compartilharem um mesmo dado durante a sincronização. |
Executando (Running) | Utilizando a CPU |
Executável ou Pronto Runnable ou Ready | Esperando para ser escalonado para usar a CPU |
Suspenso (Suspended) | Recebeu um sinal para ser suspenso |
Bloqueado (Blocked): | Esperando pela conclusão de algum serviço solicitado ao S.O. |
Lock Step | Modo de operação em que a velocidade de um processo depende da velocidade de outro processo paralelo |
Transactions pointers | Permite a expecificação dinâmica de pontos de interação do processo |
Break statement | É utilizado para saída imediata de while,for,do ou switch |
Selected Transactions | Ordem de execução especificada pelo usuário |
Função c_rsainit | Aloca e inicializa a pilha quando um processo em concurrent C é criado |
Semaphore | É uma variável que é utilizada para trocar sinais entre processos concorrentes |
Create | Operador de alocação de memória para um novo processo. |
Process priority | Define a prioridade pelo qual o processo será executado pelo programa.A prioridade é parâmetro do operador create tendo em vista que quanto maior o seu valor ,maior a prioridade. |
Exchanging information | Cada processo pode ser responsável por uma parte da computação,consequentemente os processos interagem para a troca de informações. |
Synchonizing Activities | Os processos são executados em paralelo com velocidades independentes,assincronamente. Portanto,eles precisam sincronizar para coordenar suas atividades. |
Sharing Resources | Um processo pode requerer o uso exclusivo do recurso compartilhado,tal como a impressora de linha ou parte do banco de dados.Para ter acesso exclusivo deste recurso o processo devem coordenar um com outro estabelecendo um protocolo de uso do recurso. |
Monitors | É um mecanismo para encapsular variáveis compartilhadas e especificando funções as quais tem que ser usada para acessar as variáveis compartilhadas |
Escopo Estático | Concurrent C é uma extensão da linguagem C , que também utiliza escopo estático em seu ambiente de execução |
Transaction Processing | São operações "indivisíveis" , informações que possuem somente 2 estados, o de sucesso ou fracasso. |
Asynchronous Transaction | Não pode ser cronometrada , nem retorna valor. Não há troca de informação. |
Synchronous Transaction | Pode ser cronometrada, a critério do autor da chamada. Existe troca de informações entre processos. |
Critical Section | É um pedaço do código que não deve ser interrompido por uma troca de processo |
Null process | É a garantia de ter uma prioridade menor do que qualquer processo de usuário, e,portanto, só é executado quando nenhum outro processo está pronto |
Deadlock | Caracteriza uma situação em que ocorre um impasse e dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, ficam bloqueados. |
Pointers | Um ponteiro se refere a um endereço de memória |
Protocol Communication | Protocolos de comunicação são regras e convenções usadas pelos componentes de um sistema distribuido e redes para trocar informações e sincronizar uns com os outros. |
Delay | A declaração delay suspende a chamada do processo por um período especificado. |
Types | Classificados em duas categorias: fundamental (simples) e derived (structured) |
Fundamental Types | character,integer,enumeration,floating point, e tipos void |
Structured Types | Array,String, function, pointer, structured, e union |
Unary Operators | '*'(de referência) - '&'(Endereço) - '-'(negação) - '!'(negação lógica) - '~'(complemento de um) - '++'(incremento) '--'(decremento) - 'sizeof'(tamanho do armazenamento de um valor ou tipo) |
multiplicative operators | '*'(multiplicação) - '/'(divisão) - '%'(resto) |
Additive Operators | '+'(Adição) - '-'(subtração) |
Shift Operators | '<<'(deslocamento à esquerda) - '>>'(Deslocamento à direita) |
Relational Operators | '<'(menor que) - '>'(maior que) - '<='(menor ou igual que) - '>='(maior ou igual que) |
Equality Operators | '=='(igualdade) - '!=' (inigualdade) |
Bitwise Operators | '&'(and) - '^'(or) - '|'(exclusive or) |
Conditional Operator: ?:. | a?b:c - se a diferente de 0 então b senão c |
IF statement | Possui duas formas: 1º - IF (expressão logica) declaracao. - 2º - IF IF (expressão logica) declaracao1. ELSE declaracao2 |
Loops | Existem 3 tipos de Loops: While, For, e o Do While. |
While | While (Expressão Lógica){Declaração} - A declaração é executada enquanto a expressão avaliada for verdadeira. |
For | For (expressão1;expressão2;expressão3){declaração} - respectivamente as expressões representam a inicialização do loop, o teste e a reinicialização. |
Do While | Do {Declaração} While (Expressão Lógica) - executa as declarações contidas no bloco e avalia a expressão lógica no fim. |
Switch | Swtich (c){ case '+',case '-',...} usado para múltiplas decisões. |
Goto | Instrução de desvio incodicional |
Process spec () | Especificação do processo : tipo de processo, somente o tipo de processo é visível por outros processos. |
Process body () | O process body contem o codigo que será executado por cada processo do mesmo tipo associado. os detalhes internos do corpo do processo não tem relevância para outros processos. |
Process Anytype | É utilizado para declarar ou definir objetos que podem ser associados com diferente tipos de processo durante a execução do programa. |
Select | Permite que um processo aguarde pelo primeiro de uma série de eventos. uma declaração select pode aparecer apenas no process body |
Accept | A declaração Accept é a resposta para a transaction call, contem o codigo que trata a transaction e retorna o resultado. |
Compound or Block: {} | É usado para agrupar instruções em uma estrutura lógica para restringir a visibilidade das declarações e definições para parte do programa. |
CCC | Concurrent C Compiler |