Integração de Sistemas Embebidos MECom :: 5º ano
|
|
- Tomás Carrilho Sintra
- 8 Há anos
- Visualizações:
Transcrição
1 Integração de Sistemas Embebidos MECom :: 5º ano Device Drivers em Linux Criação e execução de módulos António Joaquim Esteves Bibliografia: capítulo 2, LDD 3ed, O Reilly DEP. DE INFORMÁTICA ESCOLA DE ENGENHARIA UNIVERSIDADE DO MINHO
2 Sumário Exemplo: o módulo Hello World Módulos vs aplicações Compilar e carregar um módulo A tabela de símbolos Questões preliminares Inicializar e desinstalar um módulo Módulos com parâmetros Drivers que funcionam no espaço do utilizador
3 Introdução Esta secção introduz todos os conceitos essenciais para desenvolver módulos e programar o kernel. Através do módulo Hello World vamos analisar o código básico e as fases envolvidas no desenvolvimento de qualquer módulo, sem especificar uma classe de dispositivos. Os módulos dados como exemplo funcionam na maioria dos kernels 2.6.x. Para construir módulos para um kernel 2.6.x requer que se tenha criado e configurado toda a árvore dum kernel no sistema. Os módulos para um kernel 2.6.x são linkados com ficheiros objecto que se encontram na árvore do código fonte dum kernel.
4 Criação e execução de módulos m Exemplo: o módulo m Hello World Este exemplo já foi analisado na aula anterior: #include "/usr/src/kernels/ _fc5i686/include/linux/init.h #include "/usr/src/kernels/ _fc5i686/include/linux/module.h /* MODULE_LICENSE() Indica ao kernel que este modulo possui uma licenca livre, evitando assim que ele se queixe quando se carrega o modulo */ MODULE_LICENSE("Dual BSD/GPL"); static int hello_init (void) { /* printk() e' uma funcao similar ao printf do C, mas que nao recorre a qualquer biblioteca standard do C. KERN_ALERT e' uma string que indica a prioridade da mensagem, alta neste caso para garantir que a mensagem aparece em tempo util. */ printk(kern_alert "Ola', o modulo foi carregado no kernel.\n"); return 0; } static void hello_exit (void) { printk(kern_alert "Adeus, o modulo foi removido.\n"); } module_init (hello_init); module_exit (hello_exit);
5 Módulos vs aplicações Enquanto a maioria das aplicações executa uma única tarefa do início até ao fim, os módulos apenas se registam de modo a responder a pedidos futuros. A tarefa da função de inicialização dum módulo é preparálo para as evocações futuras das suas funções. A função de conclusão (exit) dum módulo é evocada exactamente antes de o módulo ser desinstalado. Esta abordagem é análoga à programação orientada a eventos. Nem todas as aplicações são orientadas a eventos todos os módulos são. Uma aplicação pode chamar funções que não define a fase de link resolve as referências externas usando a biblioteca adequada. Um módulo é linkado apenas com o kernel só pode chamar as funções exportadas pelo kernel não se pode fazer o link com bibliotecas.
6 Módulos vs aplicações Espaço do utilizador vs espaço Enquanto os módulos são executados no espaço, as aplicações são executadas no espaço do utilizador. O sistema operativo deve garantir o funcionamento independente de vários programas e protegelos de acessos não autorizados aos recursos. Isto só é conseguido se o CPU proteger o software do sistema das aplicações. Uma alternativa para conseguir esta protecção é implementar vários níveis de protecção no CPU. Cada nível tem o seu papel e algumas operações não são permitidas nos níveis inferiores. Um programa tem um número reduzido de formas de mudar de um nível para outro. Os processadores actuais possuem pelo menos 2 níveis de protecção.
7 Módulos vs aplicações Espaço do utilizador vs espaço Em Linux, o kernel é executado no nível mais alto (modo supervisor), em que tudo é permitido. As aplicações executamse no nível mais baixo (modo user), onde o processador controla o acesso directo ao h/w e impede o acesso não autorizado à memoria. Os modos de execução são normalmente designados de espaço do kernel e espaço do utilizador. A cada modo estão associados os privilégios de execução e um espaço de endereçamento próprio. O Linux transfere a execução do espaço do utilizador para o sempre que a aplicação fizer uma chamada ao sistema ou a aplicação for suspensa por uma interrupção de h/w. Num driver, alguma funções são executadas usando chamadas ao sistema e outras servem interrupções.
8 Concorrência no kernel Módulos vs aplicações A maioria das aplicações é executada sequencialmente do início ao fim. O código do Kernel não executa dessa forma tão simples deve estar preparado para que ocorram vários eventos em simultâneo. Em Linux, vários processos podem tentar usar um driver ao mesmo tempo. A maioria dos dispositivos é capaz de interromper o processador. As rotinas de serviço a interrupções funcionam assincronamente e podem ser evocadas enquanto o driver executa outra tarefa. Como o Linux pode correr em sistemas multiprocessador, um driver pode estar a executar concorrentemente em vários CPUs.
9 Concorrência no kernel Módulos vs aplicações No kernel 2.6, o código passou a ser preemptivo as questões de concorrência dum sistema uniprocessador são similares às dum sistema multiprocessador. Em consequência, o código em Linux deve ser reentrante pode ser executado em vários contextos (processos) ao mesmo tempo. Os múltiplos fios de execução (threads) devem ser mantidos separados e deve evitarse corromper os dados partilhados. No kernel 2.6, o código não deve assumir que dispõe do processador atribuído a si durante um determinado intervalo.
10 O processo actual Módulos vs aplicações Embora os módulos não sejam executados sequencialmente, como são as aplicações, o grosso da actividade decorre no âmbito de um processo específico. O código do Kernel pode referenciar o processo actual acedendo à variável global current, definida em <asm/current.h>. current guarda um apontador para struct task_struct, definida em <linux/sched.h>. A instrução seguinte imprime o ID e o comando do processo actual, acedendo aos campos de struct task_struct: printk (KERN_INFO O processo e \"%s\" (pid %i)\n", current>comm, current>pid);
11 Módulos vs aplicações Programação vs programação no modo user As aplicações executam em memória virtual e com uma pilha enorme. O kernel possui uma pilha muito reduzida ex: 1 página de 4k bytes. As funções de todos os módulos kernel vão partilhar a mesma pilha. Funções da API assinaladas com costumam ser de baixo nível devem ser usadas com cuidado. O código do Kernel não pode usar aritmética em virgula flutuante.
12 Compilar módulos Compilar e carregar um módulo m Primeiro, vamos ver como se constrói um módulo. Depois de instalar as fontes, escrevese uma makefile para o módulo. Para o exemplo Hello World a seguinte linha é suficiente: objm := hello.o Esta atribuição indica que se vai construir um módulo a partir do ficheiro objecto hello.o. O módulo gerado terá o nome hello.ko. Se um módulo module.ko for gerado a partir de 2 ficheiros fonte (file1.c e file2.c), as instruções a usar são: objm := module.o moduleobjs := file1.o file2.o
13 Compilar módulos Compilar e carregar um módulo m Se as fontes estiverem no directório ~/kernel26, o comando make a usar na geração do módulo será: make C ~/kernel26 M=`pwd` modules Este comando começa por mudar para o directório para indicado pela opção C. A opção M= faz a makefile regressar ao directório do módulo em causa, antes de construir o módulo alvo especificado pela variável objm module.o neste exemplo. O comando make anterior pode ser substituído por uma makefile:
14 Compilar e carregar um módulo m Compilar módulos # If KERNELRELEASE is defined, we've been invoked from the # kernel build system and can use its language. ifneq ($(KERNELRELEASE),) objm := hello.o # Otherwise we were called directly from the command # line invoke the kernel build system. else KERNELDIR?= /lib/modules/$(shell uname r)/build PWD := $(shell pwd) default: $(MAKE) C $(KERNELDIR) M=$(PWD) modules endif
15 Compilar módulos Compilar e carregar um módulo m Normalmente, esta makefile é lida 2 vezes. Primeiro localizase o directório com as fontes. Se o kernel alvo é diferente em execução, deve indicarse onde se encontra este directório com: A opção KERNELDIR= na linha de comandos. A variável de ambiente KERNELDIR. Uma linha da makefile em que se atribui um valor a KERNELDIR. A makefile evoca default: target, que executa o comando make pela 2ª vez. Na 2ª leitura, a makefile define objm e as makefiles geram o módulo alvo.
16 Carregar e remover módulos Compilar e carregar um módulo m Depois de o módulo estar construído, é preciso carregálo no kernel o programa insmod realiza esta tarefa. O insmod Faz o link dos símbolos por resolver com a tabela de símbolos. Aceita opções da linha de comandos. Atribui valores aos parâmetros do módulo antes de fazer o link com o kernel. Baseiase numa chamada ao sistema definida em kernel/module.c. A função sys_init_module Aloca memória para guardar o módulo (com vmalloc). Copia o código do módulo para essa zona de memória. Resolve as referências do módulo ao kernel usando a tabela de símbolos. Chama a função de inicialização do módulo. O programa rmmod permite remover módulos. O programa lsmod gera uma lista com os módulos carregados no kernel.
17 Compilar e carregar um módulo m Dependências da versão Os módulos estão fortemente ligados às estruturas de dados e funções de uma determinada versão. Num dos passos da construção, fazse o link entre o módulo em causa e o ficheiro vermagic.o. Este ficheiro objecto contém informação acerca : a sua versão, o compilador usado e algumas variáveis de configuração. Ao tentar carregar um módulo, a informação relativa ao kernel e ao módulo é comparada se não houver compatibilidade o módulo não é carregado surge uma mensagem de erro: > insmod hello.ko Error inserting './hello.ko': 1 Invalid module format
18 Compilar e carregar um módulo m Quando existe preocupaçao com a versão, deve usarse as definições de linux/version.h. Este ficheiro, incluído automaticamente ao usar linux/module.h, define as seguintes macros: UTS_RELEASE, LINUX_VERSION_CODE, KERNEL_VERSION(major,minor,release). Dependências da arquitectura alvo O código pode ser optimizado para um processador específico de modo a obter o melhor desempenho com a arquitectura alvo. Quando se carrega um módulo, o kernel verifica se as configurações relativas ao processador são compatíveis recorrendo a vermagic.o. Se o módulo tiver sido compilado com opções diferentes, não é carregado.
19 A tabela de símbolos s Já vimos que insmod resolve os símbolos por definir através da tabela de símbolos públicos. A tabela contém o endereço de itens globais, necessários para implementar drivers modulares. Ao carregar um módulo, os símbolos por ele exportados passam a fazer parte da tabela de símbolos. Exportamse símbolos quando eles forem úteis a outros módulos. Quando se usa módulos empilhados sobre outros módulos, é conveniente usar o programa modprobe. modprobe funciona de forma análoga a insmod mas além do módulo em causa, carrega todos os que lhe são necessários. Para exportar símbolos pode usarse as macros seguintes: EXPORT_SYMBOL(name); OU EXPORT_SYMBOL_GPL(name);
20 Questões preliminares A maior parte do código kernel inclui vários ficheiros header. É habitual um módulo usar as seguintes linhas: #include <linux/module.h> #include <linux/init.h> module.h contém definições de símbolos e funções necessários para carregar módulos. init.h é útil para e especificar as funções de inicialização e remoção. moduleparam.h permite passar parâmetros quando se carrega o módulo. O módulo deve especificar a licença que se aplica ao seu código: MODULE_LICENSE ("GPL"); Outras definições descritivas passíveis de incluir num módulo: MODULE_AUTHOR, MODULE_DESCRIPTION, MODULE_VERSION, MODULE_ALIAS e MODULE_DEVICE_TABLE.
21 Inicializar e desinstalar um módulo m A função de inicialização regista as facilidades oferecidas pelo módulo. Facilidade é uma funcionalidade nova, que pode ser acedida pelas aplicações. A definição da função de inicialização é sempre assim: static int init initialization_function (void) { /* Initialization code here */ } module_init (initialization_function); Uma função de inicialização deve ser declarada static não precisa ser visível no exterior do ficheiro em que é definida. O token init indica ao kernel que a função só é usada durante a inicialização. Para assinalar dados que só são usados durante a inicialização existe o token initdata.
22 Inicializar e desinstalar um módulo m É obrigatório utilizar a macro module_init. Esta macro adiciona ao código objecto do módulo a localização da sua função de inicialização. Existe uma função para registar cada facilidade oferecida pelo módulo. Os argumentos passados a essas funções são apontadores para estruturas de dados que descrevem a nova facilidade e o nome da facilidade a registar. A estrutura de dados contém apontadores para as funções que podem ser chamadas do módulo.
23 Inicializar e desinstalar um módulo m A função de remoção (cleanup) Qualquer módulo não trivial requer uma função de remoção. Esta função apaga os registos das interfaces e devolve os recursos ao sistema antes de o módulo ser removido. A definição da função é: static void exit cleanup_function (void) { /* Cleanupcodehere*/ } module_exit (cleanup_function); A função de remoção não devolve qualquer valor. O token exit indica que o código só é usado para remover o módulo. A macro module_exit indica ao kernel a localização da função de remoção.
24 Inicializar e desinstalar um módulo m Gestão de erros durante a inicialização O registo das facilidades no kernel pode falhar. Assim, o módulo deve verificar sempre os valores devolvidos, para saber se as operações requisitadas tiveram sucesso. Mesmo que ocorra um erro, o módulo deve disponibilizar as facilidades que lhe for possível. Se o módulo não puder ser carregado, deve anularse os registos efectuadas antes da falha. Para implementar a recuperação de erros é comum usar a instrução goto.
25 Inicializar e desinstalar um módulo m Gestão de erros durante a inicialização O código seguinte funciona correctamente se a inicialização falhar em alguma posição: int init my_init_function (void) { int err; /* registration takes a pointer and a name */ err = register_this(ptr1, "skull"); if (err) goto fail_this; err = register_that(ptr2, "skull"); if (err) goto fail_that; err = register_those(ptr3, "skull"); if (err) goto fail_those; return 0; /* success */ fail_those: unregister_that(ptr2, "skull"); fail_that: unregister_this(ptr1, "skull"); fail_this: return err; /* propagate the error */ }
26 Inicializar e desinstalar um módulo m Gestão de erros durante a inicialização Outra alternativa, que não requer instruções goto, consiste em saber o que foi registado até ao momento actual e chamar a função de remoção quando ocorrer um erro. O valor devolvido por my_init_function, err, é um código de erro. No Linux, os códigos de erro são números negativos definidos em <linux/errno.h>. A função de remoção dum módulo deve anular todos os registos efectuados pela função de inicialização: void exit my_cleanup_function (void) { unregister_those (ptr3, "skull"); unregister_that (ptr2, "skull"); unregister_this (ptr1, "skull"); return; }
27 Inicializar e desinstalar um módulo m Conflitos ao carregar módulos Deve terse em atenção que outras partes podem começar a utilizar as facilidades imediatamente após a conclusão do registo. Não se deve registar uma facilidade antes que toda a inicialização necessária ao seu funcionamento esteja concluída. Se a função de inicialização falhar, mas alguma parte já estiver a utilizar uma facilidade registada, não se deve anular a inicialização.
28 Módulos com parâmetros Alguns dos parâmetros necessários a um driver podem variar de sistema para sistema. Os valores dos parâmetros pode ser definidos na fase de carregar por insmod ou modprobe. Para demonstrar esta possibilidade, pode usarse a versão alterada do módulo Hello World o módulo hellop dos exemplos do livro LDD3. Neste exemplo foram adicionados 2 parâmetros: um valor inteiro (howmany) e uma string de caracteres (whom). Quando se carrega hellop, é enviada uma mensagem a whom howmany vezes. Este módulo é carregado com uma linha de comandos como: insmod hellop howmany=10 whom="mom" Antes que insmod possa alterar os parâmetros do módulo, o módulo tem que os disponibilizar.
29 Módulos com parâmetros Os parâmetros são declarados com a macro module_param, definida em moduleparam.h. module_param possui 3 parâmetros: o nome da variável, o seu tipo e uma máscara de permissões. hellop declara os seus parâmetros e disponibilizaos a insmod com seguinte código: static char *whom = "world"; static int howmany = 1; module_param(howmany, int, S_IRUGO); module_param(whom, charp, S_IRUGO); Os parâmetros dum módulo pode ser de inúmeros tipos: bool, invbool, charp, int, long, short, uint, ulong, ushort.
30 Módulos com parâmetros Também é permitido carregar módulos com parâmetros do tipo array, em que os valores são fornecidos com uma lista separada por vírgulas. Para declarar um parâmetros do tipo array usase: module_param_array (name, type, num, perm); O último campo de module_param/module_param_array é uma permissão. As alternativas possíveis neste campo encontramse em <linux/stat.h>. Exemplos: S_IRUGO define um parâmetro que pode ser lido de fora mas não pode ser alterado. S_IRUGO S_IWUSR permite que a root altere o parâmetro.
31 Drivers que funcionam no espaço o do utilizador Algumas das limitações de um driver em modo do utilizador são: As interrupções não estão disponíveis no espaço do utilizador. O acesso directo à memória só é possível fazendo mmapping de /dev/mem, e apenas um utilizador privilegiado o pode fazer. O acesso a portas de I/O só está disponível após evocar ioperm ou iopl. Nem todas as plataformas suportam estas chamadas ao sistema, ficando o acesso a /dev/port bastante lento. O tempo de resposta é elevado. Pior, se o driver tiver sido mudado para disco, o tempo de resposta é inaceitavelmente elevado.
Programação de Sistemas
Programação de Sistemas Módulos do núcleo Programação de Sistemas Módulos : 1/15 Introdução (1) Desenvolvimentos do núcleo, como a criação de novos dispositivos, podem ser incorporados no Linux em duas
Leia maisIntegração de Sistemas Embebidos MECom :: 5º ano
Integração de Sistemas Embebidos MECom :: 5º ano Device Drivers em Linux - Introdução António Joaquim Esteves www.di.uminho.pt/~aje Bibliografia: capítulo 1, LDD 3ed, O Reilly DEP. DE INFORMÁTICA ESCOLA
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação
Leia maisUNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA
Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais
Leia maisSISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as
Leia maisIFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira
IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários
Leia maisSistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S
Estruturas de sistemas de computação Sumário! Operação de um sistema de computação! Estruturas de E/S! Estruturas de armazenamento! Hierarquia de armazenamento 2 1 Arquitectura de um sistema de computação
Leia maisACRONIS BACKUP AND RECOVERY 10 SERVER FOR LINUX
Você pode ler as recomendações contidas no guia do usuário, no guia de técnico ou no guia de instalação para ACRONIS BACKUP AND RECOVERY 10 SERVER FOR LINUX. Você vai encontrar as respostas a todas suas
Leia maisIntrodução aos Sistemas Operativos
Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn Sumário Definição
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisEntradas/Saídas. Programação por espera activa Programação por interrupções
Entradas/Saídas Programação por espera activa Programação por interrupções Programação por espera activa 1. O programa lê o estado do periférico: CPU pede ao controlador (IN) o valor no registo ESTADO
Leia maisAcronis Servidor de Licença. Manual do Utilizador
Acronis Servidor de Licença Manual do Utilizador ÍNDICE 1. INTRODUÇÃO... 3 1.1 Descrição geral... 3 1.2 Política de licenças... 3 2. SISTEMAS OPERATIVOS SUPORTADOS... 4 3. INSTALAR O SERVIDOR DE LICENÇA
Leia maisIntrodução à Programação
Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5
Leia maisEntrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1
Entrada e Saída Interface entre periféricos, processador e memória Fonte: Minho - Portugal 1 Ligação Processador/Memória - Periférico Processador Memória Controlo Dados Controlador Fonte: Minho - Portugal
Leia maisSeu manual do usuário EPSON LQ-630 http://pt.yourpdfguides.com/dref/1120693
Você pode ler as recomendações contidas no guia do usuário, no guia de técnico ou no guia de instalação para. Você vai encontrar as respostas a todas suas perguntas sobre a no manual do usuário (informação,
Leia maisDEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA
DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Sistemas Operativos 2003/2004 Trabalho Prático #2 -- Programação em C com ponteiros -- Objectivos Familiarização
Leia maisMódulo de Administração de Utilizadores
base Módulo de Administração de Utilizadores Versão 2.0 Manual do utilizador Janeiro 2002 Ficha técnica Título BIBLIObase : Módulo de Administração de Utilizadores: versão 2.0 : manual do utilizador Autores
Leia maisAULA 5 Sistemas Operacionais
AULA 5 Sistemas Operacionais Disciplina: Introdução à Informática Professora: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Sistemas Operacionais Conteúdo: Partições Formatação Fragmentação Gerenciamento
Leia maisBases de Dados. Lab 1: Introdução ao ambiente
Departamento de Engenharia Informática 2010/2011 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo
Leia maisIniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo
Iniciar o Data Adapter Configuration Wizard Toolbox Data Duplo clique em OleDbDataAdapter Botão next na caixa de diálogo Se carregar em Cancel, o wizard é cancelado e podemos depois definir as propriedades
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 maisSistemas Operacionais
Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos
Leia maisManual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco
Escola Superior de Tecnologia Instituto Politécnico de Castelo Branco Departamento de Informática Curso de Engenharia Informática Disciplina de Projecto de Sistemas Industriais Ano Lectivo de 2005/2006
Leia maisComponentes de um Sistema de Operação
Componentes de um Sistema de Operação Em sistemas modernos é habitual ter-se as seguintes componentes ou módulos: Gestor de processos Gestor da memória principal Gestor da memória secundária Gestor do
Leia maisNovo Formato de Logins Manual de Consulta
Gestão Integrada de Acessos Novo Formato de Logins Manual de Consulta Gestão Integrada de Acessos Histórico de Alterações Versão Descrição Autor Data 1.0 Versão inicial DSI/PPQ 2014-07-11 Controlo do documento
Leia maisInterrupções. As interrupções são casos especiais de chamadas de procedimentos.
Interrupções Uma interrupção é equivalente a uma chamada de procedimento. A chamada é equivalente a um CALL gerado pela execução de uma instrução. As interrupções são casos especiais de chamadas de procedimentos.
Leia maisSECUNDÁRIA DE CAMARATE DIGIT@L. Plataforma Office 365. Alojamento de ficheiros - OneDrive para Empresas
SECUNDÁRIA DE CAMARATE DIGIT@L Plataforma Office 365 Alojamento de ficheiros - OneDrive para Empresas Conteúdo Nota prévia... 2 Alojamento de ficheiros o OneDrive para Empresas... 2 Funcionalidades do
Leia maisVM Card. Referência das Definições Web das Funções Avançadas. Manuais do Utilizador
VM Card Manuais do Utilizador Referência das Definições Web das Funções Avançadas 1 Introdução 2 Ecrãs 3 Definição de Arranque 4 Informações de Função Avançada 5 Instalar 6 Desinstalar 7 Ferramentas do
Leia maisFicheiros binários 1. Ficheiros binários
Ficheiros binários 1 Ficheiros binários 1. Considere que dispõe de ficheiros binários cujo conteúdo é constituído por uma ou mais estruturas como a indicada a seguir struct registo { int ref; float var;
Leia maisCOLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro colibri@fccn.pt. FCCN - Dezembro 2010
COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE FCCN - Dezembro 2010 Rui Ribeiro colibri@fccn.pt Módulo COLIBRI Concebido por: José Coelho Universidade Aberta Apoiado por: Rui Ribeiro FCCN Vitor
Leia maisProcessos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos.
Página 1 de 5 Processos Consiste num método de descrição das actividades de um sistema operativo; Todo o software incluído no sistema operativo é organizado num grupo de programas executáveis. Cada um
Leia maisO AMBIENTE DE TRABALHO DO WINDOWS
O AMBIENTE DE TRABALHO DO WINDOWS O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador. Um computador que tenha o Windows instalado, quando arranca, entra directamente
Leia maisOneTouch ZOOM Pro Diabetes Management Software. Guia de Instalação. Procedimento de instalação
OneTouch ZOOM Pro Diabetes Management Software com SnapShot Guia de Instalação Procedimento de instalação 1. Insira o CD de instalação do OneTouch Zoom Pro na unidade de CD-ROM. NOTA: Se instalar o programa
Leia maisInstalação do software cygwin
Instalação do software cygwin O software cygwin permite instalar no sistema operativo Windows um conjunto de programas e ferramentas que reproduzem de forma muito aproximada o ambiente usualmente encontrado
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 maisHardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Leia maisManual de utilização do Moodle
Manual de utilização do Moodle Iniciação para docentes Universidade Atlântica Versão: 1 Data: Fevereiro 2010 Última revisão: Fevereiro 2010 Autor: Ricardo Gusmão Índice Introdução... 1 Registo no Moodle...
Leia maisEngenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto
LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software e Sistemas Distribuídos 2 o Semestre 2014/2015 Enunciado Geral do Projecto O que se segue é uma descrição geral do domínio do projecto a desenvolver
Leia maisAlgoritmos e Programação Estruturada
Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.
Leia maisProcessos e Threads (partes I e II)
Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa
Leia maisPlugins TerraView. Última revisão: 12/12/32006 Versão TerraLib: 3.1.4
Plugins TerraView Última revisão: 12/12/32006 Versão TerraLib: 3.1.4 Requisitos Código completo da TerraLib na estrutura de diretórios sugerida no site da TerraLib 1. Código completo do TerraView na estrutura
Leia maisEntendendo como funciona o NAT
Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços
Leia maisWEBSITE DEFIR PRO WWW.DEFIR.NET
MANUAL DO UTILIZADOR WEBSITE DEFIR PRO WWW.DEFIR.NET 1. 2. PÁGINA INICIAL... 3 CARACTERÍSTICAS... 3 2.1. 2.2. APRESENTAÇÃO E ESPECIFICAÇÕES... 3 TUTORIAIS... 4 3. DOWNLOADS... 5 3.1. 3.2. ENCOMENDAS (NOVOS
Leia maisInstalação do Sistema Operativo Windows XP
Curso Profissional - Técnico de Informática de Gestão 10ºB Prof. Pedro Lopes Ficha de Trabalho nº1 S i s t e m a s d e I n f o r m a ç ã o Instalação do Sistema Operativo Windows XP A instalação de um
Leia maisTrabalho 3: Agenda de Tarefas
INF 1620 Estruturas de Dados Semestre 08.2 Trabalho 3: Agenda de Tarefas O objetivo deste trabalho é a implementação de um conjunto de funções para a manipulação de uma agenda de tarefas diárias, de forma
Leia maisManual do Utilizador do Registo Prévio (Entidades Coletivas e Singulares)
POLÍCIA DE SEGURANÇA PÚBLICA DIRECÇÃO NACIONAL Plataforma eletrónica SISTEMA INTEGRADO DE GESTÃO DE SEGURANÇA PRIVADA (SIGESP) Manual do Utilizador do Registo Prévio (Entidades Coletivas e Singulares)
Leia maisZS Rest. Manual Avançado. Menus. v2011 - Certificado
Manual Avançado Menus v2011 - Certificado 1 1. Índice 2. Introdução... 2 3. Iniciar o ZSRest... 3 4. Menus... 4 b) Novo Produto:... 5 i. Separador Geral.... 5 ii. Separador Preços e Impostos... 7 iii.
Leia maisComo funciona a MEO Cloud?
Boas-vindas O que é a MEO Cloud? A MEO Cloud é um serviço da Portugal Telecom, lançado a 10 de Dezembro de 2012, de alojamento e sincronização de ficheiros. Ao criar uma conta na MEO Cloud fica com 16
Leia maisSYNCING.NET 2.0 Instalação & Configuração
SYNCING.NET 2.0 Instalação & Configuração Dicas e Recomendações...1 Instalação...2 Configuração...2 Primeiros Passos...2 Sincronização de Pastas (Partilha de Arquivos)...3 Criar uma nova rede de partilha
Leia maisOs objetivos indicados aplicam-se a duas linguagens de programação: C e PHP
AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de
Leia maisWebSphere_Integration_Developer_D_Jan06 Script
WebSphere_Integration_Developer_D_Jan06 Script 1a Nesta demonstração, Will Dunlop, um programador de integração da JK, utiliza o IBM, [ IBM], ou WID para construir um novo serviço orientado para os processos
Leia maisReferencial do Módulo B
1 Referencial do Módulo B Liga, desliga e reinicia correctamente o computador e periféricos, designadamente um scanner; Usa o rato: aponta, clica, duplo-clique, selecciona e arrasta; Reconhece os ícones
Leia maisUniversidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática
Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
Leia maisO Manual do ssc. Peter H. Grasch
Peter H. Grasch 2 Conteúdo 1 Introdução 6 2 Usar o ssc 7 2.1 Gerir os utilizadores.................................... 7 2.1.1 Adicionar um utilizador.............................. 8 2.1.1.1 Associar-se
Leia maisSAMUO APP: MANUAL DO ADMINISTRADOR
as novas tecnologias ao serviço do desenvolvimento de projectos w w w. i m a d i p. c o m CABO VERDE: REALIZAÇÃO DE UMA ACÇÃO- PILOTO PARA A MELHORIA DA GESTÃO NUM GABINETE TÉCNICO SELECCIONADO OFITEC
Leia maisUm sistema SMS 1 simplificado
1 Introdução Um sistema SMS 1 simplificado Projecto de Redes de Computadores I - 2007/2008 LEIC IST, Tagus Park 10 de Setembro de 2007 Pretende-se com este projecto que os alunos implementem um sistema
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 maisAcer erecovery Management
1 Acer erecovery Management Desenvolvido pela equipa de software da Acer, o Acer erecovery Management é uma ferramenta que lhe permite de forma fácil, fiável e segura restaurar o seu computador para o
Leia maisMemória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br
Leia maisPACWEB Módulo de Pesquisa MANUAL DO UTILIZADOR
MANUAL DO UTILIZADOR Versão 1.3 ÍNDICE 1. INTRODUÇÃO 2 2. INSTALAÇÃO E CONFIGURAÇÃO 3 2.1 INSTALAÇÃO 3 Instalar o Pacweb 3 Alterar o Ficheiro Default.htm 3 Criar um Virtual Directory 3 2.2 CONFIGURAÇÃO
Leia maisLicenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto
Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto Sandra Manuela Lemos Machado Versão 2 Março 2002 Criticas e sugestões: smachado@dei.isep.ipp.pt
Leia maiswww.sysdevsolutions.com Driver Eticadata Versão 1.0 de 07-03-2011 Português
Driver Eticadata Versão 1.0 de 07-03-2011 Português Índice Configuração dos documentos no Backoffice.... 3 Driver ERP Eticadata... 5 Configurações principais... 5 Configurações do vendedor... 6 Configurações
Leia maisExemplo de Aplicaça o Facebook
HCIM Summer Workshop Guião Hands-on Exemplo de Aplicaça o Facebook 1. Download do Software Development Kit (SDK) O download do SDK do Facebook encontra-se disponível aqui. Depois de fazer o download do
Leia maisPROGRAMA DE GESTÃO DOS RECENSEAMENTOS
PROGRAMA DE GESTÃO DOS RECENSEAMENTOS APLICAÇÃO TRATAIHRU Versão 03.04 INDICE 1. CANDIDATURA...3 a) Tratar... Error! Bookmark not defined. b) Fechar... Error! Bookmark not defined. c) Converter...3 d)
Leia maisVisão Geral de Sistemas Operacionais
Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.
Leia maisMANUAL DE CONSULTA RÁPIDA DO MODEM OPTIONS FOR NOKIA 7650. Copyright 2002 Nokia. Todos os direitos reservados 9354493 Issue 2
MANUAL DE CONSULTA RÁPIDA DO MODEM OPTIONS FOR NOKIA 7650 Copyright 2002 Nokia. Todos os direitos reservados 9354493 Issue 2 Índice 1. INTRODUÇÃO...1 2. INSTALAR O MODEM OPTIONS FOR NOKIA 7650...1 3. SELECCIONAR
Leia maisProgramação Concorrente em java - Exercícios Práticos Abril 2004
Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem
Leia maisBases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.
Departamento de Engenharia Informática 2008/2009 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo
Leia maisDesenvolvimento de Software para UNIX
Desenvolvimento de Software para UNIX Rui Carlos A. Gonçalves 29 de Agosto de 2008 Resumo Neste texto pretende-se descrever formas de desenvolver programas para UNIX usando as ferramentas da GNU. Não é,
Leia maisProgramação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto
Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,
Leia maisDesenvolvimento para Sistemas Embarcados (CEA 513) Sistema de Arquivos Raiz & Componentes do Kernel
Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Desenvolvimento para Sistemas Embarcados (CEA 513) Sistema de Arquivos Raiz & Vicente Amorim vicente.amorim.ufop@gmail.com
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 maisSistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 1 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,
Leia maisSistemas Operacionais Gerência de Dispositivos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerência de Dispositivos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução A gerência
Leia maisAcadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos
Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos Pilhas de Dispositivos Drivers no Windows Vista podem fazer todo trabalho sozinho; Uma requisição pode passar por uma seqüência
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 maisSISTEMA DE INFORMAÇÃO DAS PARTICIPAÇÕES DO ESTADO
SISTEMA DE INFORMAÇÃO DAS PARTICIPAÇÕES DO ESTADO SIPART (versão Setembro/2004) Manual de Utilização ÍNDICE 1. INTRODUÇÃO...3 2. ACEDER À APLICAÇÃO...4 3. CRIAR NOVO UTILIZADOR...5 4. CARACTERIZAÇÃO GERAL
Leia maisArquitetura de um Computador
Arquitetura de um Computador Discos Impressora tape-drives CPU Controlador Disco Controlador impressora Controlador tape-driver controlador memoria bus memoria Os periféricos de I/O e o CPU executam concorrentemente.
Leia maisGUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL
GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL Versão: 1.0 Data: 05-06-2009 Índice Acesso e estados dos Formulários... 3 Escolha do Formulário e submissão... 4 Bases para a navegação
Leia maisARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X
ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java Após toda a matéria abordada nesta
Leia maisZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011
Manual Profissional BackOffice Mapa de Mesas v2011 1 1. Índice 2. Introdução... 2 3. Iniciar ZSRest Backoffice... 3 4. Confirmar desenho de mesas... 4 b) Activar mapa de mesas... 4 c) Zonas... 4 5. Desenhar
Leia maisSistemas Operacionais
Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura
Leia maisInstalação e Manutenção de Microcomputadores (COI)
Instalação e Manutenção de Microcomputadores (COI) 4. Montagem do Computador Disco rígido limpeza; Disco rígido verificação de erros (modo gráfico); Disco rígido verificação de erros (linha de comandos;
Leia maisSistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 04 - Concorrência Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC, 2007. Mono x Multiprogramação
Leia maisMicroMIX Comércio e Serviços de Informática, Lda.
1 P á g i n a Procedimentos Inventário AT 2014 Software Olisoft-SIG.2014 Verificar Versão dos Módulos Instalados Em primeiro lugar deveremos verificar se o programa SIG está actualizado. Esta nova rotina
Leia maisMigração da Versão 4.0 para a Versão 4.1 do MSS. Versão 1.0 de 08-03-2012. Português
Versão 1.0 de 08-03-2012 Português www.sysdevsolutions.com Migração da versão 4.0 para a versão 4.1 do MSS NOTA: Antes de executar qualquer operação, é aconselhado que faça a exportação de todos os documentos
Leia maisSamsung Auto Backup FAQ
Samsung Auto Backup FAQ Instalação P: Liguei a unidade de disco rígido externo da Samsung mas nada acontece. R: Verifique a conexão do cabo USB. A luz LED acende-se na unidade de disco rígido externo Samsung
Leia maisResumo da Matéria de Linguagem de Programação. Linguagem C
Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis
Leia maisIntrodução aos Sistemas
Introdução Introdução aos Sistemas Operacionais 1 2 3... n Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Compilador Editor de texto Browser Programas
Leia maisNovo Order Manager para o Software NobelProcera
Novo Order Manager para o Software NobelProcera Guia Rápido Versão 1 O novo Order Manager facilita mais os processos e procedimentos envolvidos nas encomendas através do sistema NobelProcera. Isto inclui
Leia maisManual do Utilizador
Faculdade de Ciências e Tecnologia da Universidade de Coimbra Departamento de Engenharia Electrotécnica e Computadores Software de Localização GSM para o modem Siemens MC35i Manual do Utilizador Índice
Leia maisInternet Update de PaintManager TM. Manual de instalação e utilização do programa de actualização
Internet Update de PaintManager TM Manual de instalação e utilização do programa de actualização ÍNDICE O que é o programa Internet Update? 3 Como se instala e executa o programa? 3 Aceder ao programa
Leia maisOrganização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores
1 Pós Graduação em Projeto e Gerencia de Redes de Computadores Sistemas Operacionais de Redes I - Linux Prof.: Nelson Monnerat Instalação e Configuração 1 Sistemas Operacionais de Redes I - Linux Módulo
Leia maisAmbiente de trabalho. Configurações. Acessórios
Ambiente de trabalho Configurações Acessórios O Sistema Operativo (SO) é o conjunto de programas fundamentais que permitem que o computador funcione e comunique com o exterior. Actualmente, o Windows é
Leia mais