El S�bado 18 Agosto 2001 18:33, Jorge Lenin Fernandez Perez escribi�:
> Yo quisiera recibir ayuda de parte de cualquier miembro del grupo para
> realizr un proyecto de programaci�n en C en el SO Linux, el cual consiste
> en lo siguiente:

COn gusto !

Debes primero comprender que programar para GNU Linux en C, es casi lo mismo 
que en DOS usando borland, lo que cambia es:

1. De primer golpe no cuentas con un entorno de programacion (editor, 
compilador, depurador) todo en uno :), aunque esto ultimamente no es tan 
cierto.

2. no cuentas con funciones de conio.h, no accedes directamente a las 
funciones del bios, como se hace en DOS, ( como programar tu interface del 
raton, acceder directamente a un dispositivo como disco duro, tarjeta de 
sonido, algun puerto del tarro, cambiar el color de las letras, usar 
gotoxy,usar clrscr, entre otras. 

En Linux es un poco diferente, lo realizas con llamadas al sistema usando la 
funcion iotcl (conocida por algunos con la cuchilla suisa por su operatividad 
:) ) o usar los codigos ANSI <buscas en los apendices de los libros de progra 
en c > para realizar algunas de las funciones de conio.h, hay unas librerias 
que lo implementan llamada uconio.h (buscas en freshmeat.het )

3. Programas multiprocesos :), puedes usar facilidades de comunicacion entre 
procesos (como memoria compartida, tuberias, se�ales, sockets hasta los 
puedes comunicar entre archivo compartidos)


4. Entre otras ventajas ...

> "Guerra entre procesos", que se generen un n�mero aleatorio de procesos y
> que en determinado momento se empiecen a matar unos a otros, agreg�ndole un
> poco de diversi�n que los procesos tengan una forma de protegerse, para no
> ser eliminados.

:) ok siendo medio responsable por proponer este proyecto al Prof. Carlos 
Castro, te dare algunas de las ideas las cuales lo originaron.

1.  A traves de tu programa principal generas n procesos, la n es a tu 
eleccion (10, 20, 30, ...., n :) ), tienes que guardar en alguna parte 
(puedes usar memoria compartida o un archivo binario) una estructura o una 
forma de identificar varias cosas: El identificador de cada proceso, los 
intentos que se han hecho por matarlo, el identificador del proceso que lo 
intenta matar y lo que necesites guardar para hacer lo anterior.

ejemplo:

main()
{
 codigo
 codigo
 for( i=0;i<=n;i++)
  {
    if (fork() == 0) /*codigo del padre */
    {
 
    codigo del padre

    }
   else /* codigo del hijo
  {
   "guardo" en "alguna" parte mi id
   "capturo" posible "intento" de que alguien me mate, si hay que capturar 
algo (como una se�al de "kill"), trato de averiguar que id es, para luego 
tratar de matarlo :)
   "leo" de "alguna" parte los id de los proceso que previamente se hayan 
creado, si no tengo algun id que matar
   "Escojo" al azar un id
    "intento" "matar" ese id 
  }
 
} /* fin del for*/

codigo
codigo

} /* fin del programa principal

NOTAS:

"guardo" puede ser una funcion que acceda a la zona de memoria previamente 
creada, actualizando la estructura.

"capturo" es una fucncion que instala y manipula un manejador de se�ales, son 
mediante las cuales que se le enviaran se�ales de muerte a los procesos ( mas 
o menos asi signal("kill",id)  ) , en esta funcion debe de haber un criterio 
de muerte, porque sino serian procesos que no los podrias matar, como que si 
recive 3 intentos de matar los deceche, contra-atacando al id origen, despues 
de eso que accepte la se�al y se muera el proceso destino.

"leo" otra funcion que accede a la zona de memoria, leyendo la estructura.
"escojo" una funcion pseudo aleatoria que le suministras los id de los 
procesos almacenados en la estructura y te devuelve uno de ello :)

"intento" la funcion que una vez que sepa cual es la victima, envia una se�al 
de muerte a ese proceso

esto a simple modo como lo podrias resolver, no se si habra otras formas 
mejores o no tan mejores, pero en resumen esa puede ser la logica de como 
entrarle.

>
> Cualquier ayuda ser�a de gran beneficio para m�, ya que en los �ltimos d�as
> he tenido algunos problemas que me han impedido fogearme(conocer y
> aprender) en linux, hasta el colmo de que se me descompus� el monitor de mi
> computadora.

date un leida de: http://www.linuxdoc.org/LDP/lpg/index.html
es la guia de programacion en linux, habla de memoria compartida, se�ales, 
entre otros temas.

Que mal lo de tu compu, no creas que fue por instalar linux, que se da�an las 
cosas :).

>
> El tiempo que tengo para preparar el proyecto es muy poco, as� que entre
> m�s pronto me ayuden mejor.

Si me di cuenta que les queda como una semana :(, 

>
> Muchas Gracias.

De nada

>
> PD. Los felicito por los esfuerzos que realizan para mantener en pie a la
> organizaci�n.

Gracias, si gustas y tienes tiempo nos puedes dar una mano para que todo 
salga mas que bien


Espero te sirva para encontrar una solucion al proyecto, si no te queda algo 
solo preguntas,

cordialmente,

-- 
Edgardo Ramos

� "No son los ojos los que ven, sino que nosotros vemos por medio de los 
ojos".
� � �Plat�n (c.428-c.347 a. C.); fil�sofo griego.

--
�Desea desuscribirse? Escriba a [EMAIL PROTECTED] con
el tema "unsubscribe".

Responder a