Sistemas Operativos
Por: 21-04-2009 por mizarate | Categorías asociadas: Capitulo 3, Capitulo 7, Mecanismos de sincronización, Paralelo "A", Taller Capitulo 3

Por: Marilin Zárate

Sincronización en Solaris:

Solaris proporciona mútex adaptativos, variables de condición, semáforos, bloqueos o cerrojos lector-escritory colas de bloqueo para controlar el acceso a las secciones múltiples.

Un mútex adaptativo protege el acceso a todos los elementos de datos críticos, en un sistema multiprocesador este se inicia como un semáforo estándar, implementando un cerrojo de bucle sin fin. Solaris utiliza este método para proteger los datos a los que se accede mediante segmentos de código secreto.

Los bloqueos lector-escritor son utilizados por Solaris para proteger aquellos datos a los que se accede frecuentemente, pero que habitualmente se usan en modo dólo de lectura.

Solaris también utiliza colas de bloqueos para ordenar la lista de hebras en espera de adquirir un mútex adaptativo o un cerrojo lector-escritor, esta cola de bloqueos es una estructura de ola que contiene hebras que están a la espera de adquirir un cierto cerrojo.

Sincronización en Windows XP

El SO Windows XP es un kernel multihebra que proporciona soporte para aplicaciones en tiempo real y múltiples procesadores. Cuando este kernel accede a un recurso global en un sistema monoprocesador, enmarcan de forma temporal a las interrupciones.

Windows XP proporciona objetos despachadores, asi las hebras se sincronizan empleando diferentes mecanismos, ya sea mútex, semáforos, sucesos y temporizadores.

Sincronización en Linux

En la versión anterior Linux era un kernel no apropiativo, lo que quiere decir que un proceso que se ejecute en kernel no puede ser desalojado. Pero ahora en la nueva versión el kernel es apropiativo. Este kernel proporciona bloqueos mediante bucles sin fin y semáforospara establecer bloqueos en kernel.

Linux utiliza un método para activar y desactivar los mecanismo de desaojo de kernel, es decir proporciona dos llamadas al sistema: preempt_disable() y preempt enable(). El kernel no es desalojable si hay una tarea en modo kernel que este manteniendo un bloqueo.

Sincronización en Pthreads

La API de Pthreads proporciona cerrojos mútex, variables de condición y cerrojos de lectura-escritura para la sincronización de hebras. Un cerrojo mútex es muy importante en Phtreads y se usa para proteger las secciones críticas de código.




Por: 02-04-2009 por kfordonez | Categorías asociadas: Paralelo "B", Taller Capitulo 3, Taller_HILOS

TALLER CAPITULO No 3

PROCESOS Y HEBRAS

1.-Describa las diferencias entre planificación a corto plazo, la planificación a medio plazo, y la planificación a largo plazo.
La planificación a largo plazo o planificador de trabajos selecciona procesos de la cola de trabajos y los carga en memoria para su ejecución.
El planificador a corto plazo o planificador del CPU selecciona de entre los procesos que ya están preparados para ser ejecutados y asigna la CPU a uno de ellos.
El planificador a medio plazo es para algunos sistemas operativos, como los  sistemas de tiempo compartido.
Diferencias:
*Es la frecuencia de ejecución que tiene cada uno.
.-El planificador a corto plazo debe seleccionar un nuevo proceso para la CPU cada vez, este planificador  se ejecuta mucho menos tiempo, el planificador a corto plazo se ejecuta al menos una  vez cada 100 milisegundos, es más rápido para ejecutar algún proceso.. El planificador a largo plazo dura más tiempo en ejecutar otro proceso, ya que este controla la multiprogramación (el numero de procesos en memoria); los sistemas operativos como Windows y Unix a menudo no disponen del planificador a largo plazo, simplemente ponen los procesos nuevos en memoria para que los gestione el planificador a corto plazo. El planificador a medio plazo es que en ocasiones puede ser ventajoso eliminar procesos de memoria (con lo que dejan contener con la CPU) y reducir así el grado de multiprogramación. Después el proceso puede continuar su ejecución en el punto que se interrupción.

2.-Describa las acciones por un kernel para el cambio de contexto entre procesos.
Las interrupciones hacen que el sistema operativo obligue a la CPU  abandonar su tarea actual, para ejecutar una rutina del  kernel. Cuando se produce una interrupción el sistema  tiene que guardar el contexto actual del proceso que se está ejecutando en la CPU, de modo que pueda restaurar dicho contexto cuando su procesamiento concluya,  suspendiendo el proceso y reanudándolo después.

3.-Anailisis
HEBRAS DE WINDOWS
Windows XP implementa la API Win32. Esta API es la principal interfaz de programación de aplicaciones de la familia de sistemas operativos de Windows, una aplicación de Windows XP se ejecuta como un proceso independiente, cada proceso en este sistema operativo puede contener una o más hebras, proporciona soporte para una biblioteca de fibras , proporciona la funcionalidad de muchos a muchos, se proporcionan las hebras de Win32 son para este sistema.

HEBRAS DE LINUX
Linux proporciona la llamada al sistema fork() con la funcionalidad tradicional de duplicar un proceso. Linux proporciona la capacidad de crear hebras usando la llamada al sistema clone(). Linux no diferencia entre procesos y hebras. Linux utiliza el término tarea en lugar de proceso o hebra. Cuando se invoca clone(), se para un conjunto de indicaciones, que determina el nivel de compartición entre la tarea(proceso en Windows)  padre e hijo, posee de algunos indicadores CLONE_FS, CLONE_VM, CLONE_SIGHAND, CLONE_FILES. El nivel de variable de compartición es posible por forma en que se representa una tarea en el kernel de Linux.




Por: 02-04-2009 por rasisalima | Categorías asociadas: Paralelo "B", Taller Capitulo 3

Por: Ronald Sisalima

3.1 describa las diferencias entre la planificación a corto plazo, la planificación a mediano plazo, y las planificaciones a largo plazo.
Planificación a corto plazo.- El planificador selecciona entre los procesos que se encuentran listos para ser ejecutados, y se asigna a la CPU uno de ellos.
Este se ejecuta normalmente una vez cada 100 milisegundos. Debido al corto tiempo que hay de ejecución, el panificador debe ser rápido
Planificaciones a largo plazo.- Los procesos se guardan en cola en un dispositivo de almacenamiento masivo, el planificador a largo plazo selecciona los procesos de esta cola y los carga en  memoria para ser ejecutados
Debe seleccionar un nuevo proceso para la CPU frecuentemente,  este puede ejecutarse durante unos pocos milisegundos antes que esperar por una solicitud de entrada o salida.  El planificador  a largo  plazo se ejecuta mucho menos frecuente
Planificación a mediano plazo.- Se centra en las mismas áreas que la planificación a largo plazo, pero dentro de un marco de tiempo menor
3.2 Describa las acciones tomadas por el kernel para el cambio de contexto entre procesos
Cuando se produce un cambio de contexto el kernel guarda el contexto del proceso antiguo en su PCB (bloque de control de procesos) y carga el contexto almacenado del nuevo proceso que se ha decidido ejecutar.
Hebras en Windows XP
Una aplicación se ejecuta como un proceso independiente y cada proceso puede contener una o más hebras.
Los componentes generales de una hebra son:
Un identificador de hebras
Un conjunto de registros
Una pila de usuarios, empleada para cuando la hebra esta ejecutada en modo usuario, y una pila del kernel.
Una area de almacenamiento privada usada por las distintas bibliotecas.
Las estructuras de una hebra son:
ETHREAD—bloque de hebra ejecutiva
KTHREAD—bloque de hebra del kernel
TEB—bloque de entorno de la hebra.

HEBRA DE LINUX
Linux proporciona la llamada al sistema fork () con la función tradicional de duplicar procesos, Linux proporciona la capacidad de crear hebras  se crean mediante el llamado clone()
clone() permite que la nueva hebra comparta el espacio de  direccionamiento del (proceso) padre




Por: 02-04-2009 por rcvalladolid | Categorías asociadas: Taller Capitulo 3

Roberto Valladolid

3.1 Describa las diferencias entre la planificación a corto plazo, planificación a medio plazo y la planificación a largo plazo.

Planificación a corto plazo:

Se debe seleccionar un nuevo proceso para la CPU frecuentemente.
Un proceso debe ejecutarse durante unos pocos milisegundos.
Debido al tiempo que hay entre ejecuciones, este planificador debe ser muy rápido.

Planificación a medio plazo:

Descarga y vuelve a cargar el proceso.
Necesita cambio en los requisitos de memoria.
Requiere de memoria libre. Si se ha sobrepasado de la memoria disponible.

Planificación a largo plazo:

Se ejecuta mucho menos frecuentemente.
Este planificador controla el grado de multiprogramación (el número de procesos en memoria).
Puede permitirse emplearse más tiempo en decidir qué proceso debe seleccionarse.

3.2 Describa las acciones tomadas por un kernel para el cambio de contexto entre procesos.

Guardar el contexto del proceso antiguo en su PCB (Bloque de Control de Proceso) y cargar el contexto almacenado del nuevo proceso que se ha decidido ejecutar.

3.3  Análisis de cómo se manejan los hilos en Windows XP y Linux.

En Windows XP:

XP utiliza el sistema uno a uno donde cada hebra de nivel de usuario se asigna una hebra al kernel.
Además proporciona bibliotecas de hebras y funcionalidad de mucho a muchos, en donde cualquier hebra pertenece a un proceso.

En Linux:

Linux no diferencian entre procesos y hebras, Linux crea hebras realizando la llmada al sistema clone ().
Linux utiliza el término tarea en lugar de proceso o hebra, para hacer referencia a un flujo de control dentro de un programa.




Por: 02-04-2009 por fabricioms | Categorías asociadas: Paralelo "B", Taller Capitulo 3, Taller_HILOS

Diferencian entre planificación a largo plazo, planificación corto plazo y planificación mediano plazo.
El planificador a largo plazo selecciona un procesos de la cola y los carga en memoria para su ejecución, el planificador a corto plazo los selecciona de entre los proceso s que están listos para su ejecución y los asigna al CPU a uno de ellos. La diferencia fundamental está en la frecuencia de ejecución el planificador debe ejecutarlos frecuentemente y su proceso solo dura unos pocos milisegundos, mientras el planificador a largo plazo espera a que el proceso seleccionado termine para seleccionar otro para su ejecución. La idea con un planificador a mediano plazo es que en ocasiones es ventajoso eliminar procesos de la memoria y reducir asi el grado de multiprogramación, después el proceso puede volver a cargarse en memoria continuado con su ejecución.
Las acciones tomadas por el kernel para el cambio de contexto entre procesos
El kernel guarda en contexto del proceso antiguo en su PCB y carga el contexto almacenado del nuevo proceso que se ha decidido ejecutar.

Hebras de Windows XP

Una aplicación de Windows Xp se ejecuta como un proceso independiente, y cada proceso puede contener una o más hebras. Windows XP utiliza un modelo uno a uno donde cada hebra del nivel de usuario se aplica a una hebra del kernel, pero también soporta una biblioteca de hebras dando una funcionalidad de de muchos-a-muchos. Con la biblioteca de hebras cualquier hebra pertenece a un proceso puede acceder al espacio de dicho proceso.
Hebras de Windows Linux.
Linux proporciona la llamada al sistema fork() con la finalidad de duplicar un proceso también proporciona la funcionalidad de crear hebras usando la llamada al sistema clone(). Sin embrago Linux no diferencia entre procesos y hebras, generalmente Linux utiliza la palabra tarea para referirse a un proceso o hebra para hacer referencia al flujo de control dentro de un programa.




Por: 02-04-2009 por mariuximaza | Categorías asociadas: Taller Capitulo 3

TALLER EN CLASES

Por: Mariuxi Maza

3.1 ESCRIBA LAS DIFERENCIAS ENTRE LA PLANIFICACIÓN A CORTOPLAZO, A MEDIO PLAZO,Y LA DE LARGO PLAZO.

Planificación a Corto plazo._ selecciona de entre los procesos que ya estan preparados para ser ejecutados
y asigna la CPU a uno de ellos.

Planificación a Medio Plazo._ el tamaño limitado de ésta hace que el número de procesos que residen
en ella sea finito. Puede ocurrir que todos los procesos en memoria estén bloqueados, desperdiciándose
así la CPU, ademas es el encargado de regir las transiciones de procesos entre memoria principal
y secundaria, actúa intentando maximizar la utilización de los recursos.

Planificación a Largo Plazo._ selecciona procesos de una cola y los carga en memoria para su ejecución

3.2 DESCRIBA LAS ACCIONES TOMADAS POR UN KERNEL PARA EL CAMBIO DE CONTEXTOS ENTRE PROCESOS.

El kernel guarda el contexto del proceso antiguo en su PCB y carga el contexto almacenado del nuevo proceso
que se ha decidido ejecutar.

DIFERENCIA ENTRE LA HEBRAs DE WINDOWS XP Y HEBRAs DE LINUX

HEBRAS DE WINDOWS XP

Semántica de los llamados al sistema fork() y exec()
Eliminación de hebras
Tratamiento de Señales
Agrupaciones de hebras
Datos específicos de las hebras
Activación del scheduler

HEBRAs DE LINUX

Existen dos maneras de crear hebras en Linux, una es mediante la llamada al sistema fork() con la
funcionalidad tradicional de duplicar un proceso.
También se puede crear hebras  por la llamada al
sistema  clone().
Linux utiliza el término tarea en lugar de hebra, para hacer referencia a un conjunto de indicadores,
que determina el nivel de compartición entre las tareas padre e hijo.




Por: 02-04-2009 por skarmijos | Categorías asociadas: Paralelo "B", Taller Capitulo 3

TALLER II
Ejercicios:
3.1    Describa las diferencias entre la planificación a corto plazo, la planificación a medio plazo y la planificación a largo plazo.

Planificación a largo plazo.
•    Selecciona procesos de la cola de planificación y los carga en memoria para su ejecución.
•    Se ejecuta con menos frecuencia (segundos, minutos)
•    Controla el grado de multiprogramación
Planificación a corto plazo.
•    Selecciona entre los procesos que ya están preparados para ser ejecutados y asigna la CPU a uno de ellos.
•    Se ejecuta muy frecuentemente (milisegundos)
Planificación a medio plazo.
•    Es el encargado de regir las transiciones del proceso entre memoria principal y secundaria. Ejem: transfiriendo siempre a memoria secundaria procesos bloqueados, o transfiriendo a memoria principal procesos bloqueados. (swapping).
3.2    Describa las acciones tomadas por un kernel para el cambio de contexto entre procesos.
1.    Se ejecuta una rutina en el kernel,  al momento de producirse una interrupción.
2.    El kernel guarda el contexto del proceso antiguo en su PCB (Bloque de Control de Proceso).
3.    Carga el contexto almacenado del nuevo proceso que se ha decidido ejecutar.
Diferencias entre  Hebras en Windows y Linux
Hebras en Linux
Linux soporta:

  • Hebras kernel.- en labores de sistemas -ejecutan una única función en modo kernel: procesos 0 y 1, limpieza de cachés de disco, intercambio, servicio de conexiones de red, etc.
  • Bibliotecas de hebras de usuario.- No todas las bibliotecas del sistema son reentrantes. glibc v.2 lo es
  • Estados de las hebras:

•    Running
•    Interruptable
•    Uninterruptable
•    Stopped
•    Zombie

linux1

  • Linux proporciona la llamada al sistyema Fork
  • Linux utiliza el termino tarea en lugar de ptroceso o hebra

Hebras en Windows:

  • Estados de las hebras:

•    Ready
•    Standby
•    Running
•    Waiting
•    Transition
•    Terminated

win1




Por: 02-04-2009 por sgaguilera | Categorías asociadas: Taller Capitulo 3

Diferencia entre El planificacador a largo plazo,El planificacador medio plazo y a corto plazo?

El planificacador a largo plazo selecciona procesos de esta cola y los carga en memoria para su ejecucion
El planificador a corto plazo selecciona de en tre los procesos que ya estan preparados para ser ejecutados
y asigna la CPU a uno de ellos
El planificador a medio plazo puede ser ventajoso eliminar procesos de la memoria (con lo que deja de contener por la CPU) y reducir
asi el grado de multiprogramacion.

Analisis de Linuz y Windows Xp en Manipulacion de Hebras:

Hebras en Windows XP
implementa el modelo 1:1
cada hebra contiene un identificador de hebra (thid)
conjunto de registros
stacks separados para núcleo y usuario
área privada para almacenamiento de datos
el conjunto de registros, stacks, y áreas de datos son conocidos como el contexto de una hebra

la estructura de datos primaria de una hebra incluye:
ETHREAD (executive thread block)
KTHREAD (kernel thread block)
TEB (thread environment block)

Hebras en Linux

en Linux se les conoce como tareas (tasks) más que hebras se crean mediante el llamado clone()
clone() permite que




Por: 02-04-2009 por pecaamano | Categorías asociadas: Hebras o hilos, Paralelo "B", Taller Capitulo 3

Diferencia entre planificadores

Planificador a largo plazo  selecciona procesos de una cola y los carga en memoria para su ejecucion.

Planificador a medio plazodescarga y vuelve a cargar un proceso mediante un esquema de intercambio que puede ser necesario para mejorar la mezcla de procesos o por que un cambio en los requisitos de memoria.

Planificador a corto Plazo o Planificador de la CPU selecciona de entre los procesos que ya estan preoaradas para ser ejecutados y asigna la CPU a uno de ellos.

Acciones tomasdas por un kernel para el cambio de contexto entre procesos

Cuando se produce un cambio, este guarda el contexto del proceso antiguo en su PCB y carga el contexto almacenado del nuevo proceso que se va a ejecutar

Hebras en Windows XP

xp1

cada hebra contiene -  un identificador de hebra (thid)

-  conjunto de registros

-  stacks separados para núcleo y usuario

- área privada para almacenamiento de datos

El conjunto de registros, stacks, y áreas de datos son conocidos como el       contexto de una hebra.
La estructura de datos primaria de una hebra incluye:
-  ETHREAD (executive thread block)
-  KTHREAD (kernel thread block)
- TEB (thread environment block)


Hebras en Linux


hebras linux
linux

en Linux se les conoce como tareas (tasks) más que hebras
- se crean mediante el llamado clone()
-  clone() permite que la nueva hebra comparta el espacio de  direccionamiento del (proceso) padre




Por: 02-04-2009 por Jorge Luis Veintimilla O. | Categorías asociadas: Paralelo "B", Taller Capitulo 3

1. Describa las diferencias entre la planificación a corto plazo, la planificación a medio plazo y la planificación a largo plazo.

El objetivo de la multiprogramación es tener varios procesos ejecutándose al mismo tiempo, por lo que, a la hora de ejecutar programas, es necesaria una buena planificación de los procesos para un buen rendimiento del sistema.

Los tipos de planificación son de corto plazo, medio plazo, y a largo plazo.

Las diferencias entre este tipo de planificaciones se da en que el principal objetivo de la planificación a corto plazo es repartir el tiempo del procesador de forma que se optimicen algunos puntos del comportamiento del sistema.

La planificación a medio plazo Es la que decide sacar de memoria central y llevar a disco a aquellos procesos inactivos o a los procesos activos cuyos estados sean bloqueado momentáneamente o  suspendidos y luego, traerlos nuevamente a memoria para continuar su ejecución.

Cuando se envían más procesos de los que puedan ser ejecutados de forma inmediata, estos procesos se guardan en una cola en un disco, la planificación a largo plazo, o planificador de trabajos, selecciona procesos de esta lista o cola en donde están guardados los procesos, y los carga en memoria para su ejecución.

2. Describa las acciones tomadas por un kernel para el cambio de contexto entre procesos.

Las acciones tomadas por el kernel en el cambio de contexto entre procesos son, guarda el contexto del proceso antiguo en su bloque de control de procesos (PCB), y carga el contexto almacenado del nuevo proceso que se ha decidido ejecutar.

3. Análisis de cómo se implementan las hebras en los sistemas operativos Windows XP y Linux.

Primeramente una hebra, es un flujo de control dentro de un proceso.

Una aplicación en Windows XP, se ejecuta como un proceso independiente, y cada proceso puede contener una o más hebras, mientras que en Linux no se les llama hebras ya que este sistema operativo no diferencia entre hebras y procesos, por lo que se les llama tareas.

En Windows XP, cada hebra contiene

  • un identificador de hebra (thid)
  • conjunto de registros
  • stacks separados para núcleo y usuario
  • área privada para almacenamiento de datos

el conjunto de registros, stacks, y áreas de datos son conocidos como el contexto de una hebra, la estructura de datos primaria de una hebra incluye:

  • ETHREAD (bloque de hebra ejecutiva)
  • KTHREAD (bloque de hebra del kernel)
  • TEB (bloque de entorno de la hebra)

En el sistema Linux:

se crean mediante el llamado clone(), que permite que la nueva hebra comparta el espacio de direccionamiento del proceso padre.

BIBLIOGRAFÍA

  • SILBERSCHATS, GALVIN, GAGNE, “Fundamentos de Sistemas Operativos”, Séptima Edición, McGraw-Hill, España, 2006

Enlaces Web:

  • http://so-wiki.wetpaint.com/page/Objetivos+y+niveles?t=anon
  • http://wwwdi.ujaen.es/~lina/TemasSO/PLANIFICACIONDEPROCESOS/1NivelesdePlanificacion.htm#planificador_mp
  • http://www.elo.utfsm.cl/~elo321/01-2009/docs/hebras.pdf