ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X
|
|
- Lorenzo Faro Gama
- 8 Há anos
- Visualizações:
Transcrição
1 ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X
2 Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java
3 Após toda a matéria abordada nesta disciplina, chega o momento de analisarmos ao detalhe como passamos, de facto, de um excerto de código presente num ficheiro local, para uma aplicação em execução.
4 Numa abordagem de alto nível: 1. O programa é compilado para linguagem assembly e assemblado num objecto (módulo) em linguagem máquina ( ). 2. O linker combina vários módulos com bibliotecas (de rotinas) para resolver todas as referências, 3. O loader colocar o código máquina nos devidos locais de memória para serem executados pelo processador. Para acelerar o processo alguns compiladores directamente os módulos, enquanto que noutros casos são utilizados linking-loaders, que executam as duas últimas acções numa só.
5 Para identificar os diferentes ficheiros, o UNIX segue a seguinte convenção: UNIX Ficheiros de código C.c.C MS-DOS Ficheiros de assembly.s.asm Objectos compilados.o.obj bibliotecas estáticas.a.lib bibliotecas dinâmicas.so.dll Executáveis a.out.exe
6 Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java
7 Compilador C O compilador transforma os programas em C em programas em linguagem assembley. Como já sabemos, linguagem assembley acaba por ser uma forma simbólica entendida pela máquina. Como também já sabemos, linguagens de programação de alto nível requerem muito menos linhas de código do que a linguagem assembley, o que permite aumentar bastante a produtividade. Em 1975 diversos sistemas operativos e assembladores foram escritos em linguagem assembly porque as memórias eram pequenas e os compiladores ineficientes. Actualmente as memórias avançaram bastante, tanto em capacidade, velocidade como em preço, e os compiladores tornaram-se tão eficientes quanto qualquer programador profissional de assembley.
8 Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java
9 Assemblador Uma vez que a linguagem assembly é a interface entre o hardware e as linguagens de alto nível, o assemblador consegue tratar variações de linguagem máquina, como se de instruções reais se tratassem pseudo-instruções. move $t0,$t1 add $t0,$zero,$t1 Deste modo o assemblador acaba por nos fornecer mais instruções do que aquelas suportadas pelo hardware, facilitando assim a programação. Para além disso, os assembladores ainda aceitam uma série de variantes numéricas, não só binário ou decimal, mas também hexadecimal.
10 Assemblador Apesar das facilidades apresentadas no slide anterior, a verdadeiras função do assemblador é mesmo converter as instruções em código máquina. O assemblador, ao assembler assembley, cria um objecto (um ficheiro) que contem não só o código máquina correspondente, mas também os dados e a informação necessária para colocar as instruções em memória. Para criar a versão binária (código máquina) o assemblador necessita de determinar todos os endereços referentes às labels existentes no código, branches e instruções de transferência de dados. Para tal essa informação é guardada numa tabela de símbolos.
11 Assemblador Estrutura Object file em UNIX Cabeçalho (object file header) Segmento de texto Segmento de dados estáticos Informação de realocação Tabela de símbolos Informação de debug Descreve o tamanho e posição de outras peças do objecto. Contem o código em linguagem máquina. Contem os dados alocados para toda a vida do programa. Em UNIX é possível utilizar alocação dinâmica. Identifica instruções e dados que dependem de endereços absolutos quando o programa é carregado em memória. Contem as restantes labels que não estão definidas, nomeadamente referências externas. Contem uma descrição de como os módulos foram compilados, permitindo aos debuggers associar o código máquina aos ficheiro em C, mantendo as estruturas de dados legíveis.
12 Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java
13 Linker O método que apresenta-mos leva-nos a querer que cada linha de código alterada obriga à recompilação de todo o código. Essa recompilação seria um gasto de recursos pesadíssimo, principalmente na compilação de bibliotecas, cujas rotinas quase nunca mudam. Como tal, a alternativa é compilar cada procedimento independente, de modo a que a alteração de uma linha obrigue somente à recompilação de um procedimento. Esta alternativa obriga à existência de um novo interveniente chamado linker ou link editor. O Linker basicamente pega em todos os blocos compilados e aglomera-os numa solução única
14 Linker Existem três etapas no modo de funionamento do Linker: 1. Coloca o código e os dados simbolicamente em memória. 2. Determina os endereços das labels de dados e de instruções. 3. Junta as referências internas com as externas. O Linker utiliza a informação de realocação e a tabela de simbolos em cada objecto para resolver qualquer label indefinida, tal como, branches, jumps e endereços de memória. O Linker funciona assim como um editor que procura os novos endereços e substitui pelos antigos. É muito mais rápido aplicar um patch do que recompilar ou reassemblar todo o código.
15 Linker Quando todas as referências externas estiverem resolvidas, o Linker determina as localização de memória que cada modulo irá ocupar. Uma vez que os ficheiros são essemblados isoladamente, o assemblador não sabe onde as instruções e os dados de um modulo são colocados relativamente aos restantes. Assim, quando o Linker coloca um modulo em memória, todas as referências absolutas (endereços de memória não relativos a registos) são realocadas. Por fim, o Linker produz um ficheiro executável que pode correr num computador. Tipicamente, este executável tem o mesmo formato que o ficheiro objecto, mas sem referências indefinidas.
16 Linker
17 Linker
18 Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java
19 Loader Uma vez que o executável já se encontra no disco o Sistema Operativo lê o mesmo para memória e inicia-o, seguindo os seguintes passos: 1. Lê o cabeçalho para determinar o tamanho do texto e dos segmentos de dados. 2. Aloca memória necessária para o texto e dados. 3. Copia a instrução e os dados do executável para memória. 4. Copia os parâmetros (se existirem) do programa para a stack. 5. Inicia os registos e coloca o stack pointer a apontar para a primeira localização livre. 6. Salta para uma rotina de iniciação que copia os parâmetros para os registos de argumentos e chama a rotina principal do programa. 7. Quando a rotina principal retorna, a rotina de iniciação termina o programa com um exit system call.
20 Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java
21 Dynamically Linked Libraries Como vimos anteriormente, as bibliotecas podem ser de dois tipos: estáticas e dinâmicas. Bibliotecas estáticas continuam a ser a forma mais rápida de chamar rotinas, no entanto têm várias desvantagens, nomeadamente: A biblioteca faz parte do código, logo se uma nova versão da biblioteca for lançada o código manterá em uso a versão antiga até ser novamente compilado. Todas as rotinas são carregadas no executável, independentemente se são ou não utilizadas. Isto provoca executáveis densos não por causa do próprio código, mas devido às bibliotecas que incluem. Tais desvantagens levaram a que surgissem bibliotecas dinâmicas, ou popularmente conhecidas como dynamically linked libraries (DLLs). Nas DLLs as rotinas não são nem ligadas nem carregadas até o programa iniciar a sua execução.
22 Dynamically Linked Libraries Como tal, as DLLs são bibliotecas, cujas rotinas são carregadas durante a execução do programa, conforme necessário. Inicialmente, nas primeiras versões das DLL, o Loader corria um Linker dinâmico que, com base na informação extra existentes, achava as bibliotecas necessárias e actualizava as referências externas. A desvantagem deste método era que ele continuava a ligar todas as rotinas que poderiam ser chamadas, em vez de ligar somente as que eram mesmo chamadas durante a execução. Para resolver essa questão foi desenvolvida uma segunda versão de DLLs onde cada rotina somente é ligada depois de ser invocada (lazy procedure linkage).
23 Dynamically Linked Libraries Este processo é baseado num salto incondicional. Na primeira execução o comando é passado para o loader/linker que liga e carrega a rotina desejada e só no fim de carregada o comando volta à execução da instrução em causa. Nas instruções seguintes a rotina já está carregada e pode ser utilizada directamente.
24 Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java
25 Iniciando um programa em Java O exemplo que vimos anteriormente funciona para ISAs especificas e é utilizado quando pretendemos máxima performance sobre plataformas especificas de hardware. Em Java o cenário muda um pouco, sendo uma plataforma desenhada para correr em qualquer hardware. Em vez de ser compilado para uma qualquer versão de assembly, o código Java é primariamente compilado para instruções mais fáceis de interpretar numa arquitectura chamada Java bytecode instruction set. Esta arquitectura foi desenhada para ser aproximada da linguagem Java, permitindo assim uma compilação fácil.
26 Iniciando um programa em Java Tal como no C, o compilador Java verifica os tipos de dados e produz as operações necessárias para cada tipo. Os programas em java são distribuídos na versão binária de bytecodes.
27 Iniciando um programa em Java Um software de interpretação chamado Java Virtual Machine (JVM) consegue executar Java bytecodes. Um interpretador é um programa que simula uma instruction set architecture. Nestes casos não existe a necessidade de utilizar um assemblador separado, visto que a tradução é tão simples que o próprio compilador consegue obter os endereços em falta e/ou a JVM encontra-los em runtime.
28 Iniciando um programa em Java A vantagem deste método é a portabilidade. Uma vez instalada a JVM, qualquer máquina pode corre aplicações escritas em Java. A desvantagem deste tipo de soluções é claramente a performance, apesar de os últimos avanços na tecnologias não o fazerem transparecer tanto. Porém, a performance continua ainda a ser 10 vezes mais lenta quando comparada com aplicações em C.
29 Iniciando um programa em Java Para preservar a portabilidade e melhorar a velocidade de execução, a fase seguinte no Java passou pelo desenvolvimento de compiladores que traduziam em runtime Just in Time compilers. Este tipo de compiladores criava um perfil do programa através dos métodos mais importantes. A solução passava depois por compilar esses métodos mais usados para linguagens máquina, tornando-os assim mais optimizados. Ao mesmo tempo guardava essa compilação para que nas execuções futuras fosse mais rápido.
30 Dúvidas e Questões Maio 2014
Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01
Introdução à Arquitetura de Computadores Renan Manola Introdução ao Computador 2010/01 Introdução Conceitos (1) Computador Digital É uma máquina que pode resolver problemas executando uma série de instruções
Leia maisIntrodução à Engenharia de Computação
Introdução à Engenharia de Computação Tópico: O Computador como uma Máquina Multinível (cont.) José Gonçalves - LPRM/DI/UFES Introdução à Engenharia de Computação Máquina Multinível Moderna Figura 1 Máquina
Leia maisComputador Digital Circuitos de um computador (Hardware)
Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções
Leia maisORGANIZAÇÃO DE COMPUTADORES MÓDULO 1
ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1 Índice 1. Introdução...3 1.1. O que é um Computador?... 3 1.2. Máquinas Multiníveis... 3 2 1. INTRODUÇÃO 1.1 O QUE É UM COMPUTADOR? Para estudarmos como um computador
Leia maisCapítulo 7 Nível da Linguagem Assembly
Capítulo 7 Nível da Linguagem Assembly Presente em quase todos os computadores modernos. Implementado por tradução. Linguagem fonte => Linguagem alvo. O programa no arquivo fonte não é executado diretamente
Leia maisSistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,
Leia maisProcessos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho
Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2005/2006 Conceito de processo Operações sobre processos Conceito de processo Conceito de processo
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso
Leia maisBreve Histórico & Conceitos Básicos
Breve Histórico & Conceitos Básicos compiladores interpretadores montadores filtros pré-processadores carregadores linkers compilador cruzado (cross-compiler) auto-compilável (bootstraping) auto-residente
Leia maisUNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores
UNIP - UNIVERSIDADE PAULISTA Arquitetura de computadores ORGANIZAÇÃO DE COMPUTADORES Bibliografia: MONTEIRO, M. A. Introdução à organização de computadores. 4 ed. RJ. LTC 2001. TANEMBAUM, A. S. Organização
Leia maisCapítulo 8. Software de Sistema
Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java
Leia maisBREVE HISTÓRIA DA LINGUAGEM FORTRAN
2 BREVE HISTÓRIA DA LINGUAGEM FORTRAN 2.1 Os primeiros tempos Nos primórdios dos computadores, programar era uma tarefa extremamente complicada e, de certa forma, extenuante. Aos programadores era exigido
Leia maisARQUITETURA DE COMPUTADORES
1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula
Leia mais4 Estrutura do Sistema Operacional. 4.1 - Kernel
1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,
Leia maisArquitetura do conjunto de instruções (ISA); características de instruções de máquina; tipos de operandos
Arquitetura do conjunto de instruções (ISA); características de instruções de máquina; tipos de operandos Abordaremos nesta aula assuntos referentes à arquitetura do conjunto de instruções, tipos de operandos
Leia maisCONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO
4 CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO CONCEITOS BÁSICOS MS-DOS MICROSOFT DISK OPERATION SYSTEM INSTALAÇÃO E CONFIGURAÇÃO DE UM SISTEMA OPERATIVO LIGAÇÕES À INTERNET O que é um sistema operativo?
Leia maisEspecificação Operacional.
Especificação Operacional. Para muitos sistemas, a incerteza acerca dos requisitos leva a mudanças e problemas mais tarde no desenvolvimento de software. Zave (1984) sugere um modelo de processo que permite
Leia maisGerenciamento de memória
Na memória principal ficam todos os programas e os dados que serão executados pelo processador. Possui menor capacidade e custo maior. S.O buscam minimizar a ocupação da memória e otimizar sua utilização.
Leia maisCONCEITOS BÁSICOS SOBRE PROGRAMAÇÃO Programação Orientada a Objetos (POO)
CONCEITOS BÁSICOS SOBRE PROGRAMAÇÃO Programação Orientada a Objetos (POO) Profa. Vania V. Estrela, Profa. Albany E. Herrmann 1. Programação Programação requer o uso de uma linguagem, cuja sintaxe geralmente
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas
Leia maisCAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM
CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas
Leia maisO que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.
O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. Linguagem de Programação Uma linguagem de programação é um método padronizado para expressar
Leia maisModos de entrada/saída
Arquitectura de Computadores II Engenharia Informática (11545) Tecnologias e Sistemas de Informação (6621) Modos de entrada/saída Fonte: Arquitectura de Computadores, José Delgado, IST, 2004 Nuno Pombo
Leia maisConjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)
Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance
Leia maisLinguagem de Montagem
Linguagem de Montagem Uma introdução à Programação Assembly do PC Slides baseados em material associado ao livro Introduction to Assembly Language Programming, Sivarama Dandamudi 1 A Visão do Usuário sobre
Leia maisProgramação de. Programa. Bibliografia. Páginas electrónicas de PM. Regras das aulas de laboratório. Métodos de Ensino - Aulas
Programa Programação de Microprocessadores 1º Ano 2º Semestre A arquitectura dos computadores A linguagem C 1 aula 7 aulas Talvez haja mais algum assunto a abordar nas aulas seguintes Mestrado Integrado
Leia maisPROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
- Aula 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto
Leia maisInvenções Implementadas por Computador (IIC) Patentes
Invenções Implementadas por Computador (IIC) Patentes O que é uma IIC? Uma IIC é uma invenção que recorre a um computador, a uma rede de computadores ou a qualquer outro dispositivo programável (por exemplo
Leia maisUNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura
Leia maisCurso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano
Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos Sistemas Operativos - 2º Ano 2012/2013 O Windows Server 2003 surgiu em 2003 e substituiu o Windows Server 2000. O Windows
Leia maisArquitetura de processadores: RISC e CISC
Arquitetura de processadores: RISC e CISC A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo
Leia maisInformática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1
Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Leia maisAula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.
Aula teórica 3 Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java Preparado por eng.tatiana Kovalenko Linguagens de Programação Para escrever programas é necessário
Leia maisAspectos de Sistemas Operativos
Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho Serviços de um sistema operativo Interface com o utilizador Chamadas ao sistema Programas de sistema
Leia maisConceitos Básicos sobre Programação Prática
Conceitos Básicos sobre Programação Prática Programa de computador conjunto de instruções e informação necessários ao alcance de um objectivo instruções + dados normalmente, guardados em ficheiros (em
Leia maisSistemas Operativos I
Arquitectura de um Computador Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sumário Arquitectura de um Computador Estrutura de I/O Estrutura de Armazenamento Hierarquia de Armazenamento Protecção
Leia maisIntrodução aos Computadores
Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas
Leia mais18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB
18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB Autor(es) HARLEI MIGUEL DE ARRUDA LEITE Orientador(es) PLÍNIO ROBERTO SOUZA VILELA Apoio Financeiro PIBIC/CNPQ
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 3 Software Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Barramento Sistemas Operacionais Interliga os dispositivos de E/S (I/O), memória principal
Leia maisC5. Formação e evolução estelar
AST434: C5-1/68 AST434: Planetas e Estrelas C5. Formação e evolução estelar Mário João P. F. G. Monteiro Mestrado em Desenvolvimento Curricular pela Astronomia Mestrado em Física e Química em Contexto
Leia maisIntrodução às Linguagens de Programação
Introdução às Linguagens de Programação Histórico de Linguagens de Programação O computador não faz nada sozinho Precisamos informar, de forma clara, como ele deve executar as tarefas Ou seja, o computador
Leia maisAlgoritmos DCC 119. Introdução e Conceitos Básicos
Algoritmos DCC 119 Introdução e Conceitos Básicos Sumário Sistemas de Numeração Sistemas Computacionais Estrutura de um Computador Digital Sistemas Operacionais Algoritmo Introdução Formas de representação
Leia maisOrganização de Computadores 1
Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).
Leia mais(Aula 15) Threads e Threads em Java
(Aula 15) Threads e Threads em Java Um fluxo computacional. A programa maioria de execução, dos seqüencial programas o qual simples consiste realiza tem uma de essa um certa único tarefa Grande característica:
Leia maisAula 14: Instruções e Seus Tipos
Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos
Leia maisDesenvolvimento de programas em UNIX
4 Desenvolvimento de programas em UNIX Sumário: Fases de desenvolvimento de programas Compiladores Ficheiros em código objecto (.o) Visualização de símbolos dum ficheiro objecto (nm) Unificadores (linkers)
Leia maisProgramação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada
Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.
Leia maisImplementadas por Computador
«Título Dia Aberto da Acção» da PI «Nome Ricardo Formador» Pereira «Título Invenções do Módulo» Implementadas por Computador «Função Desempenhada» Examinador de Patentes Universidade de «Local» Évora «dd.mm.aaaa»
Leia maisDescrição do Produto. Altus S. A. 1
Descrição do Produto O software MasterTool IEC é um ambiente completo de desenvolvimento de aplicações para os controladores programáveis da Série Duo. Esta ferramenta permite a programação e a configuração
Leia maisimplementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos, 2014 2015
Sistemas de ficheiros: implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Objetivos da aula Descrever algunsdetalhes daimplementação deumsistema de ficheiros Discutir algoritmos
Leia maisCapítulo 4 Gerenciamento de Memória
Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição
Leia mais3. O NIVEL DA LINGUAGEM DE MONTAGEM
3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também
Leia maisUPGRADES. Uma das melhores características do PC é o facto de ser uma arquitectura aberta, que permite a substituição de componentes com facilidade.
IMEI UPGRADES Prof. Luís Moreira UPGRADES Uma das melhores características do PC é o facto de ser uma arquitectura aberta, que permite a substituição de componentes com facilidade. Do velho se faz novo.
Leia maisORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
Linguagem de programação Linguagem de Alto Nível próximo ao ser humano, escrita de forma textual. Ex: if (a==b) a=b+c; Linguagem de Montagem (Assembly) próximo à linguagem de máquina, escrita em códigos
Leia maisEsta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi
5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem
Leia maisCapítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1
Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de
Leia maisIntrodução à Arquitetura de Computadores
1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de
Leia maisMODELAGEM E SIMULAÇÃO
MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Terminologia Básica Utilizada em de Sistemas Terminologia Básica Uma série de termos
Leia maisArquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Suporte do Sistema Operacional Material adaptado, atualizado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Objetivos
Leia maisProf. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO
Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.
Leia maisProgramação de Sistemas
Programação de Sistemas Introdução à gestão de memória Programação de Sistemas Gestão de memória : 1/16 Introdução (1) A memória central de um computador é escassa. [1981] IBM PC lançado com 64KB na motherboard,
Leia maisOrganização de Computadores Software
Organização de Computadores Software Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br www.univasf.edu.br/~marcus.ramos Objetivos: Entender
Leia maisInteracção Humano-Computador 2012/2013-2º Semestre. Trabalho Prático nº2: Projecto e Desenvolvimento de uma Aplicação Interactiva
Interacção Humano-Computador 2012/2013-2º Semestre Trabalho Prático nº2: Projecto e Desenvolvimento de uma Aplicação Interactiva Entrega no Moodle até 27 de Maio às 23h50m: Apresentação final e código
Leia mais1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO
1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Desde o seu surgimento, o manuseio da computação é baseado em linguagens de programação. Ela permite que sejam construídos aplicativos
Leia maisIntrodução a Computação
O que é um SO? Introdução a Computação Sistemas Operacionais PII Consiste em: Hardware Programas de Sistema Programas de Aplicativos 1 2 O que é um SO? Hardware não proporciona controle de alto nível disponível
Leia maisENIAC. Introdução aos Computadores e à Programação (Noções Básicas)
ENIAC Introdução aos Computadores e à ção (Noções Básicas) Introdução aos Computadores e à ção (Noções Básicas) 1 Introdução aos Computadores e à ção (Noções Básicas) 2 O transistor foi inventado em 1947
Leia maisSTC5 Redes de informação e comunicação
STC5 Redes de informação e comunicação João Paulo Ferreira Técnico de organização de eventos Modulo: STC5 Redes de informação e comunicação Formador: Hélder Alvalade 0 Índice Introdução... 2 Desenvolvimento...
Leia mais1. SINTAXE DA LINGUAGEM ASSEMBLY
1. SINTAXE DA LINGUAGEM ASSEMBLY Antes de se escrever em assembly, é conveniente construir um fluxograma do programa. Um fluxograma não faz referência à linguagem a utilizar, pelo que pode ser utilizado
Leia maisPARLAMENTO EUROPEU. Comissão dos Assuntos Jurídicos. 10.6.2005 PE 360.003v01-00
PARLAMENTO EUROPEU 2004 ««««««««««««Comissão dos Assuntos Jurídicos 2009 10.6.2005 PE 360.003v01-00 ALTERAÇÕES 1-17 Projecto de recomendação para segunda leitura Michel Rocard Patenteabilidade das invenções
Leia maisFigura 01 Kernel de um Sistema Operacional
01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações
Leia maisManual de Utilizador. Caderno. Recursos da Unidade Curricular. Gabinete de Ensino à Distância do IPP. http://eweb.ipportalegre.pt. ged@ipportalegre.
Manual de Utilizador Caderno Recursos da Unidade Curricular Gabinete de Ensino à Distância do IPP http://eweb.ipportalegre.pt ged@ipportalegre.pt Índice RECURSOS... 1 ADICIONAR E CONFIGURAR RECURSOS...
Leia maisSistemas Operativos I
Gestão da Memória Luis Lino Ferreira / Maria João Viamonte Fevereiro de 2006 Gestão da Memória Gestão de memória? Porquê? Atribuição de instruções e dados à memória Endereços lógicos e físicos Overlays
Leia maisSistemas Operacionais Arquitetura e organização de sistemas operacionais: Introdução. Prof. MSc. Hugo Souza
Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Introdução Prof. MSc. Hugo Souza Começando nossa disciplina sobre os sistemas operacionais modernos iremos abordar inicialmente
Leia mais8. Perguntas e Respostas
Arquimedes Manual do Utilizador 185 8. Perguntas e Respostas 8.1. Aparência Para conservar a disposição na qual estão expostas as B.D. no ecrã e para que em posteriores sessões de trabalho tenham a mesma
Leia mais1.1. Organização de um Sistema Computacional
1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes
Leia mais4.1. UML Diagramas de casos de uso
Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema
Leia mais3.1 Definições Uma classe é a descrição de um tipo de objeto.
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:
Leia maisLaboratório de Hardware
Laboratório de Hardware Prof. Marcel Santos Responsável por implementar em software um recurso que não existe no hardware. O hardware oferece simplesmente um grande conjunto de bytes contíguos, e a tarefa
Leia maisTodos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do 80386 como ponto de partida.
8 0 Introdução Todos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do 80386 como ponto de partida. Isso acontece por pelo menos três motivos técnicos: 0 80386
Leia maisGestão do Risco e da Qualidade no Desenvolvimento de Software
Gestão do Risco e da Qualidade no Desenvolvimento de Software Questionário Taxinómico do Software Engineering Institute António Miguel 1. Constrangimentos do Projecto Os Constrangimentos ao Projecto referem-se
Leia maisTECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO
TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite
Leia maisArquitetura de Computadores. Sistemas Operacionais IV
Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo
Leia maisnatureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues
Modelo De Desenvolvimento De Software É uma representação abstrata do processo de desenvolvimento que define como as etapas relativas ao desenvolvimento de software serão conduzidas e interrelacionadas
Leia maisPeriféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 11
Sumário: O disco rígido e a disquete estrutura física. Como os dados são armazenados fisicamente. Como o MS-DOS organiza o disco. O registo de boot. Aula Teórica 11 Leitura Recomendada: Capítulos 28 e
Leia maisIntrodução à Lógica de Programação
Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha
Leia maisComputador. 1982: os computadores são ferramentas que nos permitem fazer cálculos rápida e comodamente
Computador Algumas definições 1982: os computadores são ferramentas que nos permitem fazer cálculos rápida e comodamente 1985: calculador electrónico usado na investigação espacial e actualmente já noutros
Leia maisALP Algoritmos e Programação. . Linguagens para Computadores
ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 1 Linguagens para Computadores. Linguagem binária: Dispositivos
Leia maisSOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum
SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Cronograma Introdução
Leia maisAlgoritmos e Programação Parte Teórica
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte Teórica Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,
Leia maisGestor de Processos Núcleo do Sistema Operativo
Alínea do 1º teste 2015/16: Considere a linha: for (i=0;i
Leia maisLinguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador
Linguagem C Tipos de Dados void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Funções void void pode ser usado em lugar de um tipo, para indicar a ausência de valor
Leia maisImplementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
Leia maisAutor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Barra de LEDs Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br
Leia maisOrganização e Arquitetura de Computadores I. de Computadores
Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores
Leia maisManual do Gestor da Informação do Sistema
Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga
Leia maisInstalação do Aparelho Virtual Bomgar. Base 3.2
Instalação do Aparelho Virtual Bomgar Base 3.2 Obrigado por utilizar a Bomgar. Na Bomgar, o atendimento ao cliente é prioridade máxima. Ajude-nos a oferecer um excelente serviço. Se tiver algum comentário
Leia mais1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for
FICHA DE TRABALHO Nº 1 MÓDULO: EQUIPAMENTOS ACTIVOS DE REDES DATA: / 03 / 2010 FORMADOR: EDUARDO SEQUEIRA FICHA LABORATORIAL 1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através
Leia mais