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 |