Baixe o app para aproveitar ainda mais
Prévia do material em texto
SCC-SEMANA 06 Pergunta 1 1. Unix é um sistema operacional amplamente usado em todas as formas de sistemas de computação, como desktop, laptop e servidores. O padrão UNix para threads é chamado de pthreads e é definido pelo POSix (P1003.1C). Ele contém chamadas para gerenciar e sincronizar threads, mas não define se são gerenciadas pelo kernel ou totalmente no espaço do usuário. Diante disso, assinale a alternativa que indica a função mencionada no enunciado. a. pthread_cond_init Destrói uma variável de condição. b. pthread_cond_signal Espera em uma variável de condição. c. pthread_cond_wait Libera um thread que está esperando em uma variável de condição. d. pthread_cond_destroy Cria uma variável de condição. e. pthread_mutex_unlock Desbloqueia um mutex. Pergunta 2 1. Podemos definir que linguagem de montagem pura é quando cada declaração produz exatamente uma instrução que pode ser determinada como linguagem de máquina, existindo, assim, correlações entre as instruções de máquina e as declarações no programa de montagem. Assinale a alternativa correta sobre os motivos da utilização da linguagem de montagem: a. Muito mais fácil de programar com a utilização de paginação. b. Muito mais fácil de programar com a utilização de nomes simbólicos. c. Muito mais fácil de programar com a utilização de variáveis de ambiente. d. Muito mais fácil de programar com a utilização de binários. e. Muito mais fácil de programar com a utilização de hexadecimal. Pergunta 3 1. As últimas quatro funções de API relacionadas são usadas para gerenciar arquivos mapeados em memória. Para mapear arquivos, você deve primeiro criar um objeto de mapeamento de arquivo usando uma função de API. Essa função retorna um identificador para um objeto de mapa de arquivos e, opcionalmente, registra um nome no sistema de arquivos para que outro processo possa usá-lo. Assinale a alternativa correta que corresponde à função API citada. a. UnmapViewOfFile mapeia (parte de) um arquivo para o espaço de endereço. b. MapViewOfFile é uma chamada que determina o mapeamento e estabelecimento do arquivamento. c. OpenFileMapping abre um objeto de mapeamento de arquivo previamente criado. d. MapViewOfFile remove um arquivo mapeado do espaço de endereço. e. CreateFileMapping cria um objeto, mapeia um arquivo e lhe designa (opcionalmente) um nome. Pergunta 4 1. Quando falamos sobre uma macro, podemos dizer que, por definição, uma macro é uma forma de dar um nome a um pedaço de __________. Após a definição de uma macro, o programador pode escrever o nome dela em vez de um pedaço de __________. Preencha as lacunas escolhendo a alternativa CORRETA: a. Subtração e programa. b. Comando e programa. c. Texto e programa. d. Texto e divisão. e. Texto e multiplicação. Pergunta 5 1. A tradução usando o programa objeto ou programa binário executável para a linguagem- alvo só pode ser realizada após a conclusão da tradução, e o processo é realizado em diferentes etapas. Portanto o processo de traduzir programas em códigos de máquina é realizado com auxílio de linguagem assembly. Em relação a essas etapas, identifique se são verdadeiras (V) ou falsas (F) as afirmativas a seguir. I) ( ) A etapa I é constituída pela geração de um programa equivalente na linguagem- alvo. II) ( ) A etapa II é constituída pela execução do programa recém-gerado. III) ( ) As etapas I e II ocorrem simultaneamente, de forma a serem independentes. IV) ( ) A etapa II começa somente após o término da fase I, sendo, portanto, dependentes. Assinale a alternativa que apresenta a sequência correta. a. V - F - V - F. b. V - V - V - F. c. V - F - F - F. d. F - F - V - V. e. V - V - F - V. Pergunta 6 1. Já conhecemos as pseudoinstruções, que também são comandos, sendo que é muito importante conhecermos o seu significado, já que o significado de cada comando determina a tarefa que será executada. Assinale a alternativa correta sobre o significado do comando “IF” e “EXTERN”, respectivamente: a. Exporta um nome definido no módulo, importa um nome definido de outro módulo. b. Termina o programa, importa um nome definido de outro módulo. c. Inicia a montagem condicional, gera uma quebra de página. d. Inicia um macro, inicia um procedimento. e. Inicia a montagem condicional, importa um nome definido de outro módulo. Pergunta 7 1. A linguagem assembly é comumente referida como linguagem assembler e é considerada uma linguagem de programação de baixo nível. A linguagem assembly pura é uma linguagem em que cada declaração produz apenas uma instrução de máquina. Ou seja, há uma correspondência um-para-um entre instruções de máquina e instruções em um montador. Com base nas informações, marque a alternativa correta. a. O programador em linguagem de máquina pode optar por usar o valor numérico do endereço, que é mais comumente usado. b. O uso de nomes simbólicos e endereços simbólicos em vez de binários ou hexadecimais não faz diferença significativa para a linguagem. c. As abreviaturas para adição, subtração, multiplicação e divisão são ADD, SUB, MUL, DIV, as mesmas são usadas em linguagem de máquina. d. Ao contrário da programação em linguagem de máquina (binária ou hexadecimal), a linguagem assembly é mais fácil de programar. e. Para programadores de linguagem assembly, nenhum conhecimento de nomes de símbolos é necessário, porque o montador os traduz para instruir a máquina. Pergunta 8 1. No System V, que é uma das primeiras versões comerciais do sistema operacional Unix, e no sistema Linux, outra forma de comunicação entre processos é a utilização de filas de mensagens, onde o msgget é usado para criar uma fila de mensagens ou abrir uma fila existente. Com base nesse tema, analise as seguintes afirmativas. I) As filas de mensagem usam msgsnd para enviar mensagens e msgrecv para recebê- las. II) Primeiro, os limites da mensagem são preservados e um pipe é apenas um fluxo de bytes. III) Em segundo lugar, as mensagens têm prioridade, de modo que as mensagens mais urgentes podem pular as menos importantes. IV) Terceiro, há tipos de mensagens e msgrcv pode especificar um tipo específico, se necessário. Está correto o que se afirma em: a. II e IV, apenas. b. IV, apenas. c. I, II, III e IV. d. III, apenas. e. I, II, IV, apenas. Pergunta 9 1. Primeiro, os programadores de linguagem assembly geralmente podem gerar códigos menores e mais rápidos do que os programadores de linguagem de alto nível. Velocidade e tamanho são críticos para algumas aplicações embarcadas, como código em smart cards, drivers de dispositivos, bibliotecas de manipulação de strings, rotinas de BIOS, etc. Em relação à estrutura da linguagem de montagem, marque a alternativa correta que representa uma estrutura de linguagem de montagem. a. Mnemônico. b. Identificador. c. Desfecho. d. Corretor. e. Executor. Pergunta 10 1. Programas escritos em linguagem assembly devem ser traduzidos em códigos de máquina antes que possam ser interpretados pela máquina. Esse processo de traduzir programas em códigos de máquina é conhecido como linguagem assembly, que é um nível inferior de linguagem de programação. As pessoas normalmente usam níveis mais altos de programação ao escrever programas que requerem funcionalidades mais complexas. Diante do contexto, observe as afirmativas a seguir. I) A linguagem-fonte e a linguagem-alvo podem ser definidas em diferentes níveis de complexidade. II) Alguns processadores executam diretamente programas escritos no idioma de origem sem a necessidade de tradução para o idioma de destino. III) A tradução é efetuada quando há um processador (hardware ou intérprete) disponível para o idiomade chegada, mas não para o idioma de origem. IV) A conversão ocorre em um programa equivalente chamado programa-objeto ou programa binário executável após a conclusão da tradução. Está correto o que se afirma em: a. II e III, apenas. b. I, apenas. c. I e II, apenas. d. I, II, III e IV. e. I e III, apenas. Pergunta 11 1. Um processador de macros pode ser utilizado para encurtar _________. Contudo um programa contém diversas sequências de _________. Preencha as lacunas escolhendo a alternativa CORRETA: a. Macros e instruções. b. Memórias e programas. c. Comandos e instruções. d. Programas e instruções. e. Macros e programas. Pergunta 12 1. Existem ligeiras diferenças que podem ser verificadas nas notações para definição de macros em diferentes assemblers, mas todos querem as mesmas partes básicas em uma definição de macro. Sendo assim, algo comum entre os diferentes assemblers: I. O texto do corpo da macro. II. Um cabeçalho que chama uma outra macro criada no passado. III. A pseudoinstrução que marca o início da macro. Assinale a alternativa correta sobre os ponteiros: a. I e III, apenas. b. I, apenas. c. III, apenas. d. II e III, apenas. e. I e II, apenas.
Compartilhar