click below
click below
Normal Size Small Size show me how
Concurrent C Deck's
Sobre a Linguagem...
| Question | Answer |
|---|---|
| Tipagem da Linguagem. | Estaticamente tipada. |
| Quando ocorre a verificação de tipo? | Em tempo de compilação. |
| A que são muito semelhantes os processos? | As funções. |
| Quantas e quais são as partes de processo? | Dois, a especificação e o corpo. |
| Detalhes do corpo (código) do processo são visíveis para outros processos? | Não. |
| Cite uma boa técnica em relação à especificação e ao corpo do processo. | Colocar a especificação em um arquivo, e o corpo em outro. |
| Cite dois exemplo onde eventos ocorrem simultaneamente, onde a linguagem é bem usada. | Banco de dados e Sistemas de exploração. |
| Por que programação concorrente pode reduzir o tempo de execução de um programa? | Porque entrada e saída de operações e a operação CPU podem ocorrer em paralelo. |
| O que seria um "conceito de encontro"? | Os processos combinam sincronização com transferência de informação, basicamente. |
| Como são os três passos desse conceito? | Através da sincronização, da troca de informações e pela sua continuação de atividades individuais. |
| Especificação do processo (Código) | spec process-type-name(process-param-declarations); |
| Declaração Transação (Código) | trans return-type t-name (formal-param-declarations) |
| Na declaração transação o programador pode alternar e não usar um parâmetro formal? | Sim, pode fornecer apenas o tipo do parâmetro formal. |
| O que faz o operador "create"? | Além de criar, também ativa o processo. |
| Operador "Create" (Código) | create process-type-name(initial-values) [with priority(p)] |
| Se dois processos que estão prontos para a execução da mesma prioridade, qual será executado primeiro? | Qualquer um dos dois. |
| As prioridades devem ser utilizadas para a sincronização? | Não, devem ser usadas para melhorar o desempenho. |
| Quais são os três estados de um processo? | Ativo, Concluído e Rescindido. |
| Quando um processo está ativo? | Em sua criação e enquanto executar as especificações no corpo tipo de processo. |
| Quando um processo está Concluído? | Quando ele executa uma instrução de retorno ou quando se atinge o final do seu corpo. |
| Quando um processo está Rescindido? | Quando se completa e todos os processos criados por ele terem terminado. |
| Como é chamada a sincronização ou reunião para troca de informações? | Ponto de encontro. |
| Para que a Concurrent C utiliza o encontro ou transação estendida? | Para permitir a transferência de informações durante o encontro. |
| Cite 3 instalações em que o Concurrent C dispõe. | Criação de processos, especificação de transações síncronas e as operações assíncronas. |
| O que faz a função "c_rsainit"? | Aloca e inicializa a pilha quando um processo é criado. |
| O que é a seção crítica? | É um pedaço de código que não deve ser interrompido por um processo de "switch". |
| Como é a leitura de sistemas síncronos? | Deve se espera até que a leitura seja concluída, para aí sim executá-la. |
| Quando é iniciado e qual a prioridade de um processo nulo? | É iniciado em tempo de execução e possui uma prioridade menor que qualquer processo do usuário. |
| Quais são os três tipos de chamadas de transação? | síncronas (incondicional), cronometrado síncronas e assíncronas. |
| Quais as três categorias em que os modelos de programação concorrentes se dividem? | Aqueles com base na memória partilhada, aqueles baseados em passagem de mensagens e uma combinação dos dois modelos anteriores. |
| Como é a troca de informações em um encontro simples? | É unidirecional, do remetente da mensagem para o receptor. |
| O que é uma chamada transação? Mostre um código básico dessa chamada. | É o lado do chamador de uma transação. "valor do processo.operação-name (parâmetros-real)" |
| O que é um ponteiro de transação e a que se asemelha? | Refere-se a uma transação específica associada a um processo específico. Se assemelha a ponteiros de funções. |
| O que faz a função "c_transcount"? Mostre em código. | Retorna o número de pedidos pendentes para uma transação específica. "c_transcount (pid, t)" |
| Por que ponteiros de transação e ponteiros de função não são intercambiáveis? | Porque mudaria a semântica, complicaria a implementação e teria impacto negativo sobre a portabilidade. |
| Paradigma utilizado. | Programação Imperativa. |
| Característica chave para melhorar seu desempenho. | Escalonamento de processos. |
| Tipo de programação imperativa. | Programação Imperativa Estruturada. |
| O que a programação imperativa possibilita a linguagem? | Organizar o fluxo de controle de execução do programa, e incentiva a divisão do problema em problemas menores. |
| Qual a vantagem da divisão de programas? | Melhor execução. |
| Possui gerência de memória compartilhada? | Nao, isso possibilita obter informações de processos. |
| Como foi feita a implementação da linguagem? | A partir da implementação de um uniprocessador UNIX. |
| Funcionamento dos programas. | Cada programa em "C" , consiste em um ou mais processos simultâneos. |
| Como funciona a biblioteca? | Sua biblioteca de execução possui um processo que muda simultaneamente para salvar e restaurar registros. |
| Por que se utiliza o processo de escalonamento de processos? | Custo de cumputação entre processos e menos. E por estar dentro de um único processo UNIX, os processos Concurrent C tem o mesmo espaço de endereco. |
| Principais estruturas de dados. | Descrição de chamadas e transação síncrona. |
| O que acontece na descrição de chamada? | Do tipo c_tcall esta estrutura contém toda a informação sobre uma chamada pendente. |
| O que acontece na Transação Síncrona? | Qualquer operação é convertida em uma chamada para a função de interface. |
| Para que se usar Concurrent C? | Para programas que são muito usados em tempo real e que pode ser necessário operações dinâmicas, mesmo na linguagem C. |
| Programação concorrente está se tornando cada vez mais importante para que? | Para arquiteturas de múltiplos computadores, que vem sendo cada vez mais atraente seu uso em grandes computadores. |