Apontamentos, resumos, trabalhos, exames e problemas de Computação

Ordenar por
Matéria
Nível

Fundamentos da Programação Orientada a Objetos (OOP)

Classificado em Computação

Escrito em em português com um tamanho de 5,68 KB

O Paradigma da Programação Orientada a Objetos (OOP)

O Paradigma OOP inverte a ordem tradicional de programação. O foco principal está nos dados e, em seguida, nos algoritmos que operam sobre esses dados. A implementação da funcionalidade é, em geral, escondida dos usuários.

O que é OOP?

OOP é um conjunto de objetos que trocam mensagens para, ao final do processamento, resolver o problema do usuário. Cada objeto possui uma funcionalidade que é exposta aos usuários (interface), enquanto sua implementação é, em geral, escondida (encapsulamento).

Classes e Objetos

  • Uma Classe é um modelo, uma especificação, um molde, a partir do qual se criam objetos.
  • A Superclasse Base: Na plataforma Java, existe uma superclasse chamada Object, da
... Continue a ler "Fundamentos da Programação Orientada a Objetos (OOP)" »

Sistemas Distribuídos: Modelos, Arquiteturas e Tipos

Classificado em Computação

Escrito em em português com um tamanho de 3,19 KB

Sistemas Síncronos e Assíncronos

Sistemas síncronos são sistemas ligados em que é definido o tempo de início e o tempo final de uma operação. Por exemplo, o tempo necessário para uma mensagem ser enviada ou recebida. A vantagem de se ter um sistema síncrono é que, além de saber os limites de tempo, isso tem como resposta uma maior precisão do sistema e menores gastos de consulta para saber se a solicitação foi recebida e executada.

Sistemas assíncronos são sistemas onde não há esse tempo de resposta definido. Por exemplo, se um usuário fizer uma solicitação ao serviço de internet, ele não tem previsão de quando receberá a resposta, como ocorre no acesso à internet e na resposta de um site.


O que é um Sistema Distribuído

... Continue a ler "Sistemas Distribuídos: Modelos, Arquiteturas e Tipos" »

Questões Resolvidas: Compiladores e Linguagens de Programação

Classificado em Computação

Escrito em em português com um tamanho de 3,98 KB

Questões de Concurso: Compiladores e Linguagens

Exercício 1: Software Tradutor e Velocidade de Execução

[ENADE 2008] Qual tipo de software tradutor deve ser utilizado para programas em geral, quando a velocidade de execução é uma exigência de alta prioridade?
A) Compiladores.

Exercício 2: Classificação de Linguagens de Programação

As linguagens de programação podem ser classificadas grosseiramente em dois grupos: linguagens de alto nível e linguagens de baixo nível. O critério para definir em que categoria uma determinada linguagem se encaixa está associado ao grau de abstração que ela confere a seus utilizadores, ou seja, se apresentar características linguísticas que se assemelham mais à nossa linguagem, é dita de alto... Continue a ler "Questões Resolvidas: Compiladores e Linguagens de Programação" »

Guia de Padrões de Projeto: Estruturais e Comportamentais

Classificado em Computação

Escrito em em português com um tamanho de 2,94 KB

Façade (Fachada)

Provê uma interface unificada para um conjunto de interfaces de um subsistema. Define uma interface de mais alto nível que torna o subsistema mais fácil de manipular.

Exemplos:

  • Recuperação de objetos do banco;
  • Agrupamento de funções complexas.

Flyweight

Usado para compartilhamento para suportar grandes quantidades de objetos. É utilizado quando a aplicação utiliza um grande número de objetos e o custo para armazenar é alto.

Proxy

É um substituto para controlar o acesso a outro objeto. Utilizado toda vez que houver a necessidade de uma referência mais versátil ou sofisticada do que um simples ponteiro para um objeto.

Interpreter

Define uma representação para uma gramática. Usado quando for criar um compilador. Converte... Continue a ler "Guia de Padrões de Projeto: Estruturais e Comportamentais" »

Gerenciamento de Memória e Sistemas de Arquivos

Classificado em Computação

Escrito em em português com um tamanho de 6,59 KB

Gerenciamento de Memória

Dentre outras tarefas, o gerenciador de memória monitora quais partes da memória estão em uso e quais estão disponíveis; aloca e libera memória para os processos; e gerencia a permuta de processos entre memória principal e secundária (quando a memória principal não é capaz de abrigar todos os processos).

Espaço de Endereçamento

Um espaço de endereçamento é uma faixa de endereços discretos, cada um dos quais pode corresponder a um registrador físico ou virtual, um nodo de rede, dispositivo periférico, setor de disco ou outra entidade lógica ou física.

Memória Virtual

É uma técnica que usa a memória secundária como uma cache para armazenamento secundário. Houve duas motivações principais: permitir... Continue a ler "Gerenciamento de Memória e Sistemas de Arquivos" »

Padrões de Projeto — Resumo e Quando Usar

Classificado em Computação

Escrito em em português com um tamanho de 4,14 KB

Resumo dos principais padrões de projeto (design patterns), com motivação, uso e exemplos práticos para facilitar a tomada de decisão na arquitetura de software.

Abstract Factory

Proporciona uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.

Quando utilizar

  • O sistema deve ser configurado com uma de múltiplas famílias de produtos.
  • Estes produtos relacionados são projetados para ser utilizados juntos, e você quer garantir essa restrição.

Exemplo

Montar uma interface gráfica para vários sistemas operacionais; família de componentes gráficos:

  • Windows
  • Linux

Builder

Separa a construção de um objeto complexo da sua representação, permitindo diferentes tipos de representação... Continue a ler "Padrões de Projeto — Resumo e Quando Usar" »

Guia de Estudo: Camada de Enlace e Protocolos Ethernet

Classificado em Computação

Escrito em em português com um tamanho de 4,29 KB

Questões sobre Camada de Enlace e Protocolos de Rede

Quais são os três fatores que devem ser considerados na implementação de um protocolo de Camada 2 em uma rede? (Escolha três.)

  • O escopo geográfico da rede;
  • A implementação da camada física;
  • O número de servidores a serem interligados.

Consulte a imagem. Supondo que a rede seja convergente (ou seja, as tabelas de roteamento e tabelas ARP estão completas), qual endereço MAC ocupará o campo de endereço de destino dos quadros Ethernet destinados ao servidor web?

  • 00-0c-85-cf-65-c0

Quais opções são propriedades do acesso ao meio baseado em contenção em mídias compartilhadas? (Escolha três.)

  • Não-determinístico;
  • Menos sobrecarga;
  • Existência de colisões.

O que é correto afirmar sobre

... Continue a ler "Guia de Estudo: Camada de Enlace e Protocolos Ethernet" »

Estados, Criação e Término de Processos

Classificado em Computação

Escrito em em português com um tamanho de 3,78 KB

Estados dos Processos

1. Em execução: Realmente usando a CPU naquele momento.

2. Pronto: Executável, temporariamente parada para dar lugar a outro processo.

3. Bloqueado: Incapaz de executar enquanto não ocorre um evento externo.

Casos de Transição de Estado

Caso 1: O sistema operacional descobre que um processo não pode prosseguir.

Casos 2 e 3: Causados pelo escalonador, sem que o sistema saiba:

  • Caso 2: O escalonador decide que o processo já teve tempo suficiente de CPU e aloca o tempo de CPU para outro processo.
  • Caso 3: Ocorre quando todos os processos já obtiveram o tempo de CPU de maneira justa, e é hora de voltar para o 1º processo.

Caso 4: Evento externo (como chegada de uma entrada). Se nenhum processo estiver executando neste momento,... Continue a ler "Estados, Criação e Término de Processos" »

Gestão de Memória e Sistemas de Arquivos

Classificado em Computação

Escrito em em português com um tamanho de 13,74 KB

Endereçamento e Swapping

Endereçamento absoluto ou relativo - O programa pode ser executado em qualquer partição ou processo da memória.

Swapping - "troca" de armazenamento entre memória principal e secundária; consiste em retirar o programa inteiro da memória enquanto ele não estiver sendo executado. Em seguida, ele é armazenado no disco rígido (HD).

Problemas - Ineficiência em função do tempo gasto em cada carregamento.

Solução - Implementação no hardware dos computadores para permitir que a relocação seja realizada durante a execução do programa.

Vantagens e desvantagens do Swapping

  • Vantagens:
    • Maior compartilhamento da memória;
    • Maior throughput;
    • Eficiência (quando bem implementado).
  • Desvantagens:
    • Elevados custos das operações
... Continue a ler "Gestão de Memória e Sistemas de Arquivos" »

Algoritmos de Busca e Ordenação em Estruturas de Dados

Classificado em Computação

Escrito em em português com um tamanho de 3,61 KB

Algoritmos de Busca

Busca Sequencial

  • Percorre cada item do vetor até encontrar a informação solicitada.
  • Apresenta baixo desempenho quando se tem uma grande quantidade de registros.
  • Melhor desempenho quando os dados estão ordenados.

Busca Binária

  • Divide o vetor ao meio e compara o elemento central com o procurado.
  • Se o elemento procurado for menor, repete o processo no lado esquerdo; se for maior, repete no lado direito.
  • Os elementos devem estar ordenados.
  • Desempenho melhor que a busca sequencial.

Busca por Interpolação

  • É uma variação da busca binária.
  • Escolhe a próxima posição pesquisada com base em uma estimativa sobre a posição do elemento procurado em relação ao restante do vetor.
  • Pode ser mais eficiente do que a pesquisa binária,
... Continue a ler "Algoritmos de Busca e Ordenação em Estruturas de Dados" »