ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamanho: px
Começar a partir da página:

Download "ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X"

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

Breve Histórico & Conceitos Básicos

Breve 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 mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas 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 mais

Programação de. Programa. Bibliografia. Páginas electrónicas de PM. Regras das aulas de laboratório. Métodos de Ensino - Aulas

Programaçã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 mais

Capítulo 7 Nível da Linguagem Assembly

Capí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 mais

Aspectos de Sistemas Operativos

Aspectos 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 mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 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 mais

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 à 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 mais

CONCEITOS BÁSICOS SOBRE PROGRAMAÇÃO Programação Orientada a Objetos (POO)

CONCEITOS 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 mais

Aula 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. 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 mais

Capítulo 8. Software de Sistema

Capí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 mais

Introdução à Engenharia de Computação

Introduçã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 mais

Computador Digital Circuitos de um computador (Hardware)

Computador 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 mais

SISTEMAS OPERACIONAIS

SISTEMAS 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 mais

Conceitos Básicos sobre Programação Prática

Conceitos 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 mais

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

Processos. 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 mais

Linguagem de Montagem

Linguagem 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 mais

Sistemas Operacionais

Sistemas 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 mais

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Conjunto 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 mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

BREVE HISTÓRIA DA LINGUAGEM FORTRAN

BREVE 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 mais

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

UNIP - 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 mais

Gestor de Processos Núcleo do Sistema Operativo

Gestor de Processos Núcleo do Sistema Operativo Alínea do 1º teste 2015/16: Considere a linha: for (i=0;i

Leia mais

Desenvolvimento de programas em UNIX

Desenvolvimento 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 mais

Modos de entrada/saída

Modos 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 mais

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

ENIAC. 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 mais

O 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. 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 mais

Arquitetura 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 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 mais

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc.

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software. Prof. MSc. Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Uma visão estrutural hardware & software Prof. MSc. Hugo Souza Continuando nossas aulas relativas ao Módulo 1, veremos a seguir

Leia mais

Introdução à Arquitetura de Computadores

Introduçã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 mais

Sistemas Operativos I

Sistemas 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 mais

ALP Algoritmos e Programação. . Linguagens para Computadores

ALP 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 mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Introdução às Linguagens de Programação

Introduçã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 mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍ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 mais

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Capítulo 4 Estrutura do Sistema Operacional Cap. 4 Estrutura do Sistema 1 Sistemas Operacionais Pitágoras Fadom Divinópolis Material Utilizado na disciplina Sistemas

Leia mais

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas Conjunto de instruções O Conjunto de Instruções ISA Instruction Set Architecture Alguns conceitos... Linguagem máquina Combinação de 0 s e 1 s organizados segundo palavras que são as instruções que o processador

Leia mais

Interface Homem Máquina para Domótica baseado em tecnologias Web

Interface Homem Máquina para Domótica baseado em tecnologias Web Interface Homem Máquina para Domótica baseado em tecnologias Web João Alexandre Oliveira Ferreira Dissertação realizada sob a orientação do Professor Doutor Mário de Sousa do Departamento de Engenharia

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

ORGANIZAÇÃ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 mais

Organização de Computadores 1

Organizaçã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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. 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 mais

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

CONCEITOS 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 mais

(Aula 15) Threads e Threads em Java

(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 mais

Figura 01 Kernel de um Sistema Operacional

Figura 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 mais

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos, 2014 2015

implementaçã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 mais

Sistemas Operativos I

Sistemas 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 mais

Conceitos básicos. Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas

Conceitos básicos. Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Conceitos básicos Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Organização de Computadores Prof. André Luiz 1 Um computador

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO 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 mais

Especificação Operacional.

Especificaçã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 mais

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis Ciência da Computação Arq. e Org. de Computadores Máquinas Multiníveis Prof. Sergio Ribeiro Computador digital máquina que resolve problemas executando uma série de instruções. Programa conjunto de instruções

Leia mais

Aula 14: Instruções e Seus Tipos

Aula 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 mais

Introdução à Lógica de Programação

Introduçã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 mais

Introdução à Sistemas Operacionais. Glauber Magalhães Pires

Introdução à Sistemas Operacionais. Glauber Magalhães Pires Introdução à Sistemas Operacionais Glauber Magalhães Pires Agenda O que são sistemas operacionais? Histórico Primeira geração (1945-1955) Segunda geração (1955-1965) Terceira geração (1965-1980) Quarta

Leia mais

Linguagem de Programação I. Aula 05 Linguagem C

Linguagem de Programação I. Aula 05 Linguagem C Linguagem de Programação I Aula 05 Linguagem C Da Aula Anterior Algoritmos Portugol: aspectos básicos Estruturas repetição e controle Array: vetores e matrizes Nesta Aula Linguagens de Programação A Linguagem

Leia mais

Gerenciamento de memória

Gerenciamento 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 mais

Edeyson Andrade Gomes

Edeyson Andrade Gomes Sistemas Operacionais Conceitos de Arquitetura Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Máquinas de Níveis Revisão de Conceitos de Arquitetura 2 Máquina de Níveis Máquina de níveis Computador

Leia mais

Algoritmos DCC 119. Introdução e Conceitos Básicos

Algoritmos 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 mais

De Arte a Ciência: Regras para o Desenho de Software

De Arte a Ciência: Regras para o Desenho de Software De Arte a Ciência: Regras para o Desenho de Software Neste artigo é apresentado um conjunto de regras de desenho um padrão de desenho universal associado ao princípio fundamental e aos requisitos axiomáticos.

Leia mais

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br Programas e Linguagens Para executar uma tarefa

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

PROGRAMAÇÃO JAVA. Parte 1

PROGRAMAÇÃO JAVA. Parte 1 PROGRAMAÇÃO JAVA Parte 1 O que é um programa? Um algoritmo (sequência de operações elementares - instruções) convertido para uma linguagem que possa ser executada por um computador Programa = Algoritmos

Leia mais

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF.

ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I. Máquina Virtual. Instalação de S.O. em dual boot. 1º Semestre 2010 PROF. ETEC RAPOSO TAVARES GESTÃO DE SISTEMAS OPERACIONAIS I Máquina Virtual Instalação de S.O. em dual boot 1º Semestre 2010 PROF. AMARAL Na ciência da computação, máquina virtual é o nome dado a uma máquina,

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa ARQUITETURA DE COMPUTADORES 1 Rogério Spindula Rosa 2 EXECUÇÃO DE PROGRAMAS PROGRAMA 3 4 INTRODUÇÃO Hoje é raro escrever um programa diretamente em linguagem de computador em virtude da enorme dificuldade

Leia mais

1. SINTAXE DA LINGUAGEM ASSEMBLY

1. 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 mais

UNIVERSIDADE 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 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 mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres Linguagem de Programação Orientada a Objeto Introdução a Orientação a Objetos Professora Sheila Cáceres Introdução a Orientação a Objetos No mundo real, tudo é objeto!; Os objetos se relacionam entre si

Leia mais

METODOLOGIAS DE PROGRAMAÇÃO

METODOLOGIAS DE PROGRAMAÇÃO METODOLOGIAS DE PROGRAMAÇÃO 1. GENERALIDADES Todo programa a ser elaborado deve ser considerado como um produto a ser desenvolvido. Para tal, uma série de etapas devem ser cumpridas até a obtenção do programa

Leia mais

Gerenciamento Básico B de Memória Aula 07

Gerenciamento Básico B de Memória Aula 07 BC1518-Sistemas Operacionais Gerenciamento Básico B de Memória Aula 07 Prof. Marcelo Z. do Nascimento marcelo.nascimento@ufabc.edu.br Roteiro Introdução Espaço de Endereçamento Lógico vs. Físico Estratégias

Leia mais

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64 Arquitecturas Alternativas Pipelining Super-escalar VLIW IA-64 Pipeline de execução A execução de uma instrução passa por várias fases: Vimos o ciclo: fetch, decode, execute fetch decode execute instrução

Leia mais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃ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 mais

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Programaçã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 mais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional INTRODUÇÃO Sistema Operacional (S.O.) Aplicativos Formado por um conjunto de rotinas que oferecem serviços aos usuários, às aplicações

Leia mais

Laboratório de Arquitetura de Computadores IST - Taguspark 2014/2015 Introdução ao simulador Guião 1 23 a 27 fevereiro de 2015

Laboratório de Arquitetura de Computadores IST - Taguspark 2014/2015 Introdução ao simulador Guião 1 23 a 27 fevereiro de 2015 Laboratório de Arquitetura de Computadores IST - Taguspark 2/25 Introdução ao simulador Guião 23 a 27 fevereiro de 25 (Semana 2) Objectivos Com este trabalho pretende-se que os alunos se familiarizem com

Leia mais

Organização de Computadores Software

Organizaçã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 mais

Arquitetura de processadores: RISC e CISC

Arquitetura 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 mais

Introdução a Computação

Introduçã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 mais

Apresentação. Rio de Janeiro, 19 de fevereiro de 2002 Waldemar Celes

Apresentação. Rio de Janeiro, 19 de fevereiro de 2002 Waldemar Celes Apresentação A disciplina de Estruturas de Dados (ED) está sendo ministrada em sua nova versão desde o segundo semestre de 1998. Trata-se da segunda disciplina de informática oferecida no curso de Engenharia

Leia mais

Laboratório de Arquitectura de Computadores IST - Taguspark 2008/2009 Introdução aos sistemas binários Guião 1 9 a 13 de Março 2009

Laboratório de Arquitectura de Computadores IST - Taguspark 2008/2009 Introdução aos sistemas binários Guião 1 9 a 13 de Março 2009 Laboratório de Arquitectura de Computadores IST - Taguspark 2008/2009 Introdução aos sistemas binários Guião 9 a 3 de Março 2009 (Semana 2) Objectivos Com este trabalho pretende-se que os alunos se familiarizem

Leia mais

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

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 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 mais

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010 Construção de Compiladores Prof. Raimundo Santos Moura (http://www.ufpi.br/rsm) Construção de Compiladores Livro-Texto: AHO, Alfred V.; ULLMAN, Jeffrey D.; SETHI, R. Compiladores: princípios, técnicas

Leia mais

Curso 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 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 mais

Instituto Superior Técnico Licenciatura em Engenharia Informática e de Computadores. Projecto de. Arquitectura de Computadores.

Instituto Superior Técnico Licenciatura em Engenharia Informática e de Computadores. Projecto de. Arquitectura de Computadores. Instituto Superior Técnico Licenciatura em Engenharia Informática e de Computadores Projecto de Arquitectura de Computadores Jogo dos Blocos (variante do Arkanoid) (Versão 1.0) 2008/2009 Índice 1 Objectivo...

Leia mais

Edeyson Andrade Gomes. www.edeyson.com.br

Edeyson Andrade Gomes. www.edeyson.com.br Sistemas Operacionais Histórico e Estruturas Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Histórico de SOs Tipos de SOs Estruturas de SOs 2 Histórico de SOs Baseado em Francis Machado e Luiz

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. 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 mais

Enunciado de apresentação do projecto

Enunciado de apresentação do projecto Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 Enunciado de apresentação do projecto FEARSe Índice 1 Introdução... 2 2 Cenário de Enquadramento... 2 2.1 Requisitos funcionais...

Leia mais

Linguagens de Programação

Linguagens de Programação Capítulo 4 Linguagens de Programação 4.0 Índice 4.1 Programação de Computadores 2 4.2 Níveis de Linguagens de Programação 2 4.2.1 Linguagem de Máquina 2 4.2.2 Linguagem Hexadecimal 3 4.2.3 Linguagem Assembly

Leia mais

Programação de Computadores. Turma CI-180-B. Josiney de Souza. josineys@inf.ufpr.br

Programação de Computadores. Turma CI-180-B. Josiney de Souza. josineys@inf.ufpr.br Programação de Computadores Turma CI-180-B Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 2 (06/03/15) Como está organizado um computador Computadores antigos Modelo von-neumann Quais suas partes

Leia mais

Projeto 1 - Bootloader

Projeto 1 - Bootloader Projeto 1 - Bootloader IF677 - Infra-Estrutura de Software Centro de Informática - UFPE Autor: Thyago Porpino (tnp) Objetivos Desmistificar o processo de inicialização de um computador. Entender como um

Leia mais

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores Máquinas Virtuais e Emuladores Marcos Aurelio Pchek Laureano Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3 componentes: hardware sistema operacional aplicações Sistemas

Leia mais

Nesta aula... Analisamos na ultima aula a evolução e caraterísticas de computadores e linguagens de programação. Nesta aula iremos ver:

Nesta aula... Analisamos na ultima aula a evolução e caraterísticas de computadores e linguagens de programação. Nesta aula iremos ver: Nesta aula... Programação de Computadores Analisamos na ultima aula a evolução e caraterísticas de computadores e linguagens de programação. Nesta aula iremos ver: 1 Programação de Computadores O que é?

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organizaçã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 mais

Linguagens de Programação

Linguagens de Programação 68 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas instruem o computador a realizar

Leia mais

Descrição do Produto. Altus S. A. 1

Descriçã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 mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 3 Virtualização de Sistemas 1. Conceito Virtualização pode ser definida

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Arquitetura de Computadores Arquitetura de Computadores Definições... a estrutura de um computador que um programador de código máquina tem de entender para escrever corretamente um programa para essa

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA 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 mais

Projecto de Modelação, Engenharia de Software e Sistemas Distribuídos 2008-09. Requisitos para a 3ª entrega do projecto.

Projecto de Modelação, Engenharia de Software e Sistemas Distribuídos 2008-09. Requisitos para a 3ª entrega do projecto. Departamento de Engenharia Informática Modelação, Engenharia de Software, Sistemas Distribuídos Requisitos para a 3ª entrega do projecto Test O Matic 10 de Maio de 2009 1 Índice 1 Índice... 1 2 Sumário...

Leia mais

Sistemas Operacionais

Sistemas 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 mais

Instalação do Aparelho Virtual Bomgar. Base 3.2

Instalaçã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 mais