myself* 0 Denunciar post Postado Maio 6, 2008 Bom noite... Gostava que me ajudassem: Preciso de implementar um programa em Assembly que faça as seguintes coisas: - cria cópias de si próprio em memória; - transfere o controlo do sistema para uma cópia escolhida das que previamente criou e (consequentemente) se lembre de que cópia activa num dado momento; - cada cópia deverá ocupar uma posição diferente na memória e será identificada por um número. A primeira cópia do programa presente quando ele se inicia é a número 0. Nem sei como começar... Esta é so a primeira parte do programa, mas sem a qual não consigo dar seguimento aos procedimentos seguintes. Se tiverem ideias, por favor, postem. Se conseguirem produzir/ explicar este programa numa outra linguagem (por exemplo C) tudo bem... eu tento perceber e adaptar para o assembly. Só não sei é mesmo como começar. Conto com a vossa ajuda. Obrigada Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Maio 8, 2008 - cria cópias de si próprio em memória; Fork - transfere o controlo do sistema para uma cópia escolhida das que previamente criou e (consequentemente) se lembre de que cópia activa num dado momento; Que eu saiba,isso é coisa do sistema operacional. Mas o processo filho comeca a executar na instrucao seguinte à do fork. - cada cópia deverá ocupar uma posição diferente na memória e será identificada por um número. A primeira cópia do programa presente quando ele se inicia é a número 0. Processos ocupam enderecos diferentes. Pelo menos no linux,se você não modificar nenhuma variavel,o processo filho fica no mesmo address space do processo pai. Faca um codigo em C e veja o assembly gerado pelo gcc.você vai ter 2 stacks,2 heaps, 2 copias de registradores... Compartilhar este post Link para o post Compartilhar em outros sites