Goro_2_1

Enviado por Programa Chuletas y clasificado en Otras materias

Escrito el en español con un tamaño de 8,64 KB

 
Compartir un recurso de software significa que dos o más procesos puedan utilizar una misma rutina o dato que está en memoria. La rutina es el recurso que se comparte en los procesos.
La compartición de recursos de software hace que un sistema operativo sea más flexible y eficiente ya que aumenta la capacidad de atención de procesos.
Es necesario la compartición de recursos en un sistema operativo multiusuario y multitarea por que generalmente sólo se tiene un recurso y varios ocupan acceder a él.
Muchos sistemas como las redes de computadoras, los sistemas distribuidos, la Web y el groupware basan su funcionamiento en la compartición de recursos (procesos, periféricos, etc.).
También la compartición puede ayudar al balanceo de carga entre los procesos.
Para la compartición de recursos de software se requiere principalmente que el sistema operativo permita la repetición de apuntadores en las tablas de segmento o de página
Requisitos
Además, si la compartición será dinámica, se requiere que el sistema operativo soporte carga/descarga y ligado dinámico, para lo cual se requiere implementar tablas auxiliares como:
ART (Tabla de Referencia Activa),
AST (Tabla de Segmento Activa),
SMT (Tabla de Mapeo de Segmentos).
Requisitos
Los recursos pueden ser: Dedicados: se asignan por el tiempo que el proceso los requiera. El proceso debe liberar el recurso, generalmente utilizan memoria estática, pero también se pueden utilizar memoria dinámica o espacio de almacenamiento físico.
Requisitos
Los recursos compartidos pueden ser asignados de dos formas básicas:
Uno a la vez. El recurso es asignado a un solo proceso/usuario, el uso es intercalado.
Muchos a la vez: Es una compartición real, muchos procesos son asignados a un recurso. Por ejemplo: una página en memoria es asignada a muchos programas, un archivo es asignado a muchos recursos.
Para realizar compartición de recursos se necesitan considerar: usuarios (u), derechos (d) y recursos (r).
Requisitos
Por este motivo se necesita de una base de datos de n*m*r
Al compartir recursos se generan colas (lista de espera).
El principal problema de la compartición es la concurrencia a un recurso
Requisitos
Los mecanismos más básicos de compartición hacen referencia a base de datos (tablas), semáforos y listas ligadas.
Cada recurso define su forma de compartir.
Por ejemplo en una sesión de computadora un recurso puede estar asignado en un tiempo, el cual recibe el nombre de quantum.
Requisitos
Los derechos de los usuarios prevalecen sobre una sesión.
Otro requisito indispensable para compartir recursos es que los procesos sepan que el recurso está compartido.
También es requisito indispensable que los procesos se puedan comunicar entre sí para compartir cualquier recurso (IPC).



Procedimientos entrantes
• La base fundamental para que se pueda compartir recursos es que los procesos puedan soportarlo.

• Para que sean compartidos eficientemente en un sistema de multiprogramación, los procesos deben ser concurrentemente reutilizables (también llamados procesos puros).

Un proceso puro opera solamente sobre variables que están en registros del CPU o sobre datos que están en otros segmentos asociados con la tarea; nunca se modifican a sí mismos. Ejemplo: Los Archivos Ejecutables (EXE). Ejemplo de Archivos No Reentrantes: Archivos de Comando (COM).
Procedimientos reentrantes
Otros ejemplos de procesos no reentrantes son el uso de CGI, mientras que los Servlets son procesos reentrantes.
 los procesos reentrantes aquellos que pueden obtener datos y memoria fuera de su segmento.
Un programa para ser concurrente necesita ser reentrante,
Los procesos necesitan de mecanismos de protección y sincronización para el uso correcto de los recursos.
Los procesos deben ser bloqueantes (es decir que puedan detenerse en espera de un evento) de preferencia para obtener una buena compartición de los recursos.
Procedimientos reentrantes
Los procesos deben responsabilizarse de la compartición de los recursos con la supervisión del sistema operativo, de lo contrario un proceso se puede adueñar de un recurso y jamás dejarlo.
Cuando dos o más procesos compiten por un recurso y este no es liberado por los dos se produce un interbloqueo.
Procedimientos reentrantes
Las funciones recursivas son un ejemplo claro de un programa reentrante por que piden memoria dinámica ubicada en distintas localidades de memoria.
Se debe cuidar la consistencia y la integridad de los recursos como meta principal.
2.4 Recursos compartidos asignados estáticamente
Cuando los procesos compartidos se cargan completamente en memoria desde el inicio de su ejecución, se dice que la compartición es estática. Ejemplo: Rutinas del servicio de Interrupción del BIOS o MS-DOS
2.5 Recursos compartidos asignados dinámicamente
La compartición dinámica consiste en cargar en memoria solo la parte requerida de los procesos compartidos. Al necesitarse código que no está en memoria, éste será cargado durante la ejecución de las tareas. Ejemplo: Componentes gráficos del sistema operativo como los cuadros de dialogo de Windows.
Métodos para la Compartición de Recursos de Software
Básicamente existen dos Métodos, los cuales están representado por la forma de direccionamiento del sistema operativo:
Segmentos Compartidos
Paginación Compartida
Segmentación compartida
Consiste en que cada proceso tiene una tabla de segmentos asociado con su PCB