Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Procesos e hilos.

Estas en el tema de Procesos e hilos. en el foro de C/C++ en Foros del Web. Hola a todos. Quisiera hacerles un par de preguntas. No necesito links, ni informacion detallada. En realidad solo quiero saber que opinan ustedes de estos ...
  #1 (permalink)  
Antiguo 14/09/2011, 23:38
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Procesos e hilos.

Hola a todos.
Quisiera hacerles un par de preguntas. No necesito links, ni informacion detallada.
En realidad solo quiero saber que opinan ustedes de estos 2 conceptos a nivel tecnico.

Para ustedes: que es un proceso? y que es un hilo?

Y finalmente que relacion tienen con las "tareas" y los "programas".

Opinen segun lo que cada uno de ustedes sabe, ha leido, le han dicho, etc.
Espero poder contar con su ayuda en esto.

Saludos
  #2 (permalink)  
Antiguo 15/09/2011, 02:19
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Respuesta: Procesos e hilos.

Bueno si preferis una mala definicion mia te la dare pero no acepto quejas despues eh

Un programa es un archivo con un conjunto de instrucciones, un proceso es un programa en ejecucion con su espacio de memoria (donde se cargan las instrucciones), sus handles y sus hilos (minimo uno), finalmente un hilo es la minima unidad de ejecucion bajo cuyo contexto se ejecutan finalmente las instrucciones del programa.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 15/09/2011, 07:09
 
Fecha de Ingreso: febrero-2011
Ubicación: Paraguay
Mensajes: 59
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Procesos e hilos.

Un proceso es un programa en ejecución. Un hilo es una parte de ese proceso que realiza una tarea en específica y ayuda mucho para realizar tareas en paralelo, ya que si hacemos un fork de un proceso, entonces tiene su propio espacio de memoria, en cambio cuando se usa hilos entonces comparten la memoria y es más fácil intercambiar datos entre los hilos del mismo proceso..
La relación con los programas y las tareas es que un proceso se asemeja a un programa, y las tareas con los hilos, que hacen acciones por separado pero todos bajo el mismo padre o proceso..
  #4 (permalink)  
Antiguo 17/09/2011, 00:29
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Procesos e hilos.

Mmm. Solo 2 respuestas.
Los demás, podrian dar su opinion, por favor.

No teman a equivocarse, ya que es dificil hacerlo, en este tema.

Saludos
  #5 (permalink)  
Antiguo 17/09/2011, 21:27
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Procesos e hilos.

Estan mut bien las respuestas de arriba...por eso no vale la pena seguir diciendo lo mismo.
  #6 (permalink)  
Antiguo 17/09/2011, 22:32
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Procesos e hilos.

Ok. ya veo.
Bueno, ahora les justifico, el tema, y pues a ver que opinan.

Desde la perspectiva de los sistemas operativos, no hay una definición muy clara de lo que es un proceso.

En la mayoria de los textos, sitios, etc. se menciona algo muy parecido a lo que ustedes ya mencionaron:

Definiciones tipicas de un proceso:
-Programa en ejecucion.
-Conjunto de instrucciones que se estan ejecutando
-Unidad minima que puede ejecutar un procesador(lo mismo que una instruccion).
etc...

Sin embargo, en algunos otros textos, y hablando con algunos expertos en el tema, me han comentado que esas definiciones no son escencialmente correctas.

En un caso, me han dicho, que realmente lo que definen la mayoria de los textos, son "tareas". Y que existe una estructura jerarquiica de la siguiente manera.
Un programa se compone de una o mas tareas. Cada tarea tiene uno o mas procesos.

De aquí, todo lo aplicable a la "teoria de planificacion de procesos" en realidad se aplica a las "tareas". Mientras que los procesos como tales, no son monitoreables, simplemente se ejecutan.

Encontré realmente pocos textos que abordan el tema de esa manera. Una caracteristica que note, fue que en estos textos, el autor se enfocaba en los sistemas operativos para multiprocesadores, mientras que los primeros, iban en general enfocados a los SO de un solo procesador.

En un principio la idea me parecio descabellada, pero analizandola bien, tiene cierta lógica.
Pero a final de cuentas, fuera de la teoria, si quisiera saber cual seria la ventaja o desventaja de verlo de una u otra perspectiva.

Eternal Idol. Se que tu has trabajado muy de cerca con el funcionamiento de un sistema operativo en particular(no se si me equivoco). Dentro de esa experiencia, que consideras correcto??

Saludos
  #7 (permalink)  
Antiguo 18/09/2011, 04:38
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Respuesta: Procesos e hilos.

Que los procesos no se planifican es correcto en S.O.s modernos y justamente si un S.O. tiene hilos (MS-DOS no tiene por ejemplo) la unidad minima de ejecucion es el hilo y es la que el planificador selecciona para darle quantum. Cada hilo tiene un contexto que esta directamente relacionado con el microprocesador donde se guarda informacion indispensable para la ejecucion (puntero a intruccion, punteros a pilas, etc.) que una tarea no contiene.

¿Que es una tarea? Un conjunto de instrucciones cargados en memoria ... en Windows el concepto tarea (task) no es usado con relacion al planificador, este trabaja directamente con los hilos a los cuales selecciona para ejecutar en un procesador y les da quantum.

Cuando se produce preemption (no se cual es el termino en español) y un hilo de mayor prioridad interrumpe a otro podemos ver como la tarea es detenida temporalmente (se hace un cambio de contexto guardando el actual para continuarlo despues) debido a que no es una unidad de ejecucion y necesitara restaurar el contexto del hilo para ser ejecutada nuevamente.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #8 (permalink)  
Antiguo 19/09/2011, 20:46
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Procesos e hilos.

Gracias por tu respuesta Eternal Idol.

Leyendo a Tanenbaum, nos dice algo muy parecido a lo que tu explicas.
aunque para él la unidad basica es el proceso, si explica los hilos como "partes" del proceso.
En realidad nos dice que un proceso en realidad siempre tiene un hilo, con lo cual se contradice con lo de que el proceso es la unidad basica. Mas bien, el hilo lo es, segun lo que Tanenbaum nos menciona.

Ahora, leyendo otros autores, como Madnick, la idea es un poco diferente. Inlcuso al hablar nuevamente con gente experta en el tema. Me han dicho que una forma de ver los hilos son conjuntos de procesos, siempre y cuando al proceso no se le trate como tarea. Estas personas manejan el concepto de que el proceso puede llegar a ser nivel instruccion, es decir, que un proceso puede ser solo una instruccion, con lo cual su definicion de hilos es logica.

Todo esto va, ya que me he encontrado con varias contradicciones conceptuales en las diferentes lecturas, y opiniones de expertos.
Por eso queria llevar esta "confusion" a un foro y ver que es lo que otras personas opinan.

Saludos
  #9 (permalink)  
Antiguo 20/09/2011, 04:04
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Procesos e hilos.

No estoy de acuerdo en absoluto con que la unidad minima sea la instrucción, aunque finalmente ella sea la que, logicamente, llegue a ejecutarse. Para un sistema operativo que maneje multiples ejecuciones simultaneas no puede ser suficiente saber cual sera la siguiente instruccion, sino que debe manejar el contexto, el contenido del stack, el estado de los registros, etc. De otra manera, como podria saltar de una "tarea" (cualquiera que sea tu definicion) a otra y luego volver? Aqui si que hay una contradicción.

Si quisiera controlar un proceso (tarea), poder monitorearlo, matarlo, cambiarle prioridad en su ejecucion, ¿como lo hago, si la unidad minima es la instruccion?

Resumen: La "unidad minima" que hablas requiere administracion, no puede ser la instruccion.
  #10 (permalink)  
Antiguo 20/09/2011, 07:02
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Respuesta: Procesos e hilos.

Por nada Instru.

En cuanto a lo que dice Tanenbaum creo recordar que estariamos en la excepcion que marque al principio de mi anterior mensaje: Minix no tiene hilos Aunque no se si te referis a un texto mas actual ...

En cuanto a lo otro concuerdo con CalgaryCorpus; se podria decir que una instruccion es la minima unidad de ejecucion para el microprocesador en todo caso ... hilando fino creo que esta aceptado ampliamente que un proceso es un programa en ejecucion ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #11 (permalink)  
Antiguo 20/09/2011, 20:55
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Procesos e hilos.

Efectivamente, Eternal Idol. En las antiguas ediciones del libro de Tanenbaum, no hay mencion alguna de los hilos, y aparte el enfoque es hacia Minix. Pero en la edicion actual quita lo referente a Minix para hablar de manera mas general de los sistemas operativos. Sin embargo hace mucho incapie en los sistemas Unix y derivados.
Lo bueno de esto, es que ya tiene un apartado para los hilos.

Con respecto a los de la instruccion como unidad basica llamada proceso, me referia a que en este caso particular, lo que se administran son las tareas y no los procesos. Si lo vemos asi, podria tener mas sentido, no creen?

Aunque no lo crean con esta discusion ridiculamente "intelectualoide" me estan quedando las cosas mas claras.

Aunque al final sigue habiendo perspectivas diferentes sobre los procesos en los sistemas operativos.

Saludos

Etiquetas: procesos, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:32.