Está en la página 1de 4

3.1.

- DESCRIBA LAS DIFERENCIAS ENTRE LA PLANIFICACION A CORTO PLAZO, LA PLANIFICACION


A MEDIO PLAZO, Y LA PLANIFICACION A LARGO PLAZO.
CORTO PLAZO: o planificador de trabajo, selecciona procesos de la cola y los carga en memoria para
ejecucin, Selecciona de puestos de trabajo en la memoria aquellos trabajos que estn listos para ejecutar y
asigna la CPU a ellos
MEDIO PLAZO: utilizado sobre todo en sistemas de tiempo compartido como un nivel intermedio de
programacin. Un esquema de intercambio se lleva a cabo para eliminar los programas dirigidos parcialmente
de la memoria y restablecer ms tarde para continuar donde lo dejaron.
LARGO PLAZO: determina que se ponen en la memoria para el procesamiento de trabajos.
3.2.- DESCRIBA LAS ACCIONES TOMADAS POR UN KERNEL PARA EL CAMBIO DE CONTEXTO ENTRE
PROCESOS.
El kernell (sistema operativo) guarda el estado del proceso en ejecucin y restaurar el estado del proceso
programado para ser ejecutado el prximo. Guardar el estado de un proceso incluye tpicamente los valores de
todos los registros de la CPU, adems de la asignacin de memoria. Los cambios de contexto tambin deben
realizar muchas operaciones especficas de la arquitectura, incluyendo datos para inodoros y cachs de
instrucciones.
3.3.- CONSIDERE EL MECANISMO DE LAS LLAMADAS RPC. DESCRIBA LAS CONSECUENCIAS NO
DESEABLES QUE SE PRODUCIRIAN SI NO SE FORZARA LA SEMANTICA COMO MAXIMO UNA VEZ
O EXACTAMENTE UNA VEZ. DESCRIBA LOS POSIBLES USOS DE UN MECANISMO QUE NO PRESENTE
NINGUNA DE ESTAS GARANTIAS
Si un mecanismo RPC no poda apoyar el como mximo una vez" o "al menos una vez" la semntica, el
servidor RPC no puede garantizar que no se invocar a un procedimiento remoto mltiples ocurrencias.
Considere si un procedimiento remoto se retira dinero de una cuenta bancaria en un sistema que no apoy esta
semntica. Es posible que una nica invocacin del procedimiento remoto podra dar lugar a mltiples retiradas
en el servidor.
Para un sistema de apoyo a cualquiera de esta semntica generalmente requiere que el servidor mantener
alguna forma de estado de cliente tales como la marca de tiempo se describe en el texto.
Si un sistema no pudieron apoyar cualquiera de estos semntica, a continuacin, un sistema de este tipo slo
poda proporcionar seguridad procedimientos remotos que no alteren los datos o proporcionan resultados
sensibles al tiempo. El uso de su cuenta bancaria como un ejemplo, sin duda obligados "a lo sumo una vez" o
"al menos una vez" semntica para realizar una retirada (o depsito!) Sin embargo, una investigacin sobre un
saldo de cuenta u otra informacin de la cuenta, tales como nombre, direccin, etc no requiere esta semntica.
3.4.- USANDO EL PROGRAMA MOSTRADO EN LA FIGURA 3.24 EXPLICA CUAL SERA LA SALIDA DE
LA LINEA A?
La salida de la linea A seria 5 porque? En el printf te dice PARENT y para que sea padre pid >0 ya que
el pid =fork(), y el fork() lo que hace es que el proceso hijo herede el espacio de direccin al padre, por lo tanto
el fork() le asigna un valor mayor que cero al pid y entra en la condicin de pid>0. Por lo tanto el valor esperado
en la Linea A es 5
3.5.- CUALES SON LAS VENTAJAS E INCONVENIENTES EN CADA UNO DE LOS CASOS SIGUIENTES?
CONSIDERE TANTO EL PUNTO DE VISTA DEL SISTEMA COMO EL DEL PROGRAMADOR.
A).- COMUNICACIN SINCRONA Y ASINCRONA
B).- ALMACENAMIENTO DE BUFER AUTOMATICO Y EXPLICITO
C).- ENVIO POR COPIA Y ENVIO POR REFERENCIA
D).- MENSAJES DE TAMAO FIJO Y DE TAMAO VARIABLE
a).- Simtricos y asimtricos comunicacin- Un beneficio de la comunicacin simtrica es que permite un
encuentro entre el emisor y el receptor. Una desventaja de un envo de bloqueo es que una cita puede no ser
necesaria y el mensaje podra ser entregado de forma asncrona; recibida en un punto de inters para el
remitente. Como resultado, los sistemas de paso de mensajes a menudo proporcionan ambas formas de
sincronizacin.

b).- Automtica y explcita buffering - buffering automtico proporciona una cola de longitud indefinida;
asegurando as el remitente nunca tendr que bloquear la espera para copiar un mensaje. No hay
especificaciones cmo automtico buffering ser proporcionado; un rgimen pueden reservar suficientemente
grande de memoria donde gran parte de la memoria se pierde. Buffering explcita especifica qu tan grande es
el buffer. En esta situacin, el remitente puede ser bloqueado a la espera de espacio disponible en la cola. Sin
embargo, es menos probable memoria se desperdicia con buffering explcito.
c).- Enviar por copiar y enviar por referencia- Enviar por copia no permite que el receptor para alterar el estado
del parmetro; enviar por referencia no permitirlo. Un beneficio de envo por referencia es que permite que el
programador escriba una versin distribuida de una aplicacin centralizada. Java RMI proporciona tanto, sin
embargo pasar un parmetro por referencia requiere declarar el parmetro como un objeto remoto tambin.
d).- De tamao fijo y mensajes de tamao variable - Las implicaciones de esto son en su mayora relacionados
con amortiguacin cuestiones; con mensajes de tamao fijo, un tampn con un tamao especfico puede
contener un nmero conocido de mensajes. El nmero de mensajes de tamao variable que se puede mantener
por un tampn tal es desconocido. Considere cmo Windows 2000 controla esta situacin: con mensajes fijos
de tamao (algo <256 bytes), los mensajes se copian desde el espacio de direcciones del remitente en el
espacio de direcciones del proceso de recepcin. Mensajes ms grandes (es decir, mensajes de tamao
variable) utilizan memoria compartida para pasar el mensaje.
4.1.- PROPORCIONE DOS EJEMPLOS DE PROGRAMACIN EN LOS QUE LOS MECANISMOS
MULTIHILOS NO PROPORCIONEN UN MEJOR RENDIMIENTO QUE UNA SOLUCIN MONOHILO.
Cualquier tipo de programa secuencial no es un buen candidato para ser roscado. Un ejemplo de esto es un
programa que calcula una declaracin de impuestos individual.
Otro ejemplo es un programa de "shell", como el C-shell o shell Korn. Tal programa debe monitorear de cerca
su propio espacio de trabajo, tales como los archivos abiertos, variables de entorno, y el directorio de trabajo
actual.
4.2.- DESCRIBA LAS ACCIONES QUE TOMA UNA BIBLIOTECA DE HILOS PARA CAMBIAR EL
CONTEXTO ENTRE HILOS DE NIVEL DE USUARIO.
El cambio de contexto entre hebras de usuario es muy similar a la conmutacin entre los hilos del kernel, aunque
depende de la biblioteca de hilos y cmo los mapas de las discusiones de usuario al kernel hilos. En general, el
cambio de contexto entre subprocesos de usuario consiste en tomar un hilo de usuario de su LWP y
reemplazndolo con otro hilo. Este acto tpicamente implica guardar y restaurar el estado de los registros.
4.3.- BAJO QUE CIRCUNSTANCIAS UNA SOLUCION MULTIHILOS QUE USA MULTIPLES HILOS DEL
KERNEL PROPORCIONA UN MEJOR RENDIMIENTO QUE UNA SOLUCION DE UN SOLO HILO SOBRE
UN SISTEMA MONO-PROCESADOR?
Cuando un hilo del ncleo sufre un fallo de pgina, otro hilo del ncleo se puede cambiar en el momento de
utilizar el intercalado de manera til. Un proceso de un solo subproceso, por otro lado, no ser capaz de realizar
trabajo til cuando un error de pgina tiene lugar. Por lo tanto, en escenarios en los que un programa podra
sufrir fallos de pgina frecuentes o tiene que esperar a que otros eventos del sistema, una solucin multi-hilo
tendra un mejor desempeo, incluso en un sistema de un solo procesador.
4.4.- CUALES DE LOS SIGUIENTES COMPONENTES DEL ESTADO DE UN PROGRAMA SE COMPARTEN
ENTRE LOS HILOS DE UN PROCESO MULTIHILOS?
A).- VALORES DE LOS REGISTROS
B).- CUMULO DE MEMORIA
C).- VARIABLES GLOBALES
D).- MEMORIA DE PILA
Los hilos de una memoria compartida montn de proceso multiproceso y variables globales. Cada hilo tiene su
conjunto de valores de registro y una pila separada.
4.5.- PUEDE UNA SOLUCION MULTIHILO QUE UTILIZE MULTIPLES HILOS DE USUARIO CONSEGUIR
UN MEJOR RENDIMIENTO EN UN SISTEMA MULTIPROCESADOR QUE EN UN SISTEMA DE UN SOLO
PROCESADOR?
Un sistema multiproceso que consta de mltiples hilos a nivel de usuario no puede hacer uso de los diferentes
procesadores en un sistema multiprocesador simultneamente. El sistema operativo slo ve un nico proceso

y no programar los diferentes hilos de proceso en procesadores separados. En consecuencia, no hay ninguna
ventaja de rendimiento asociados con la ejecucin de mltiples hilos a nivel de usuario en un sistema
multiprocesador.
4.6.- COMO SE HA DESCRITO EN LA SECCION 4.5.2, LINUX NO DIFERENCIA ENTRE PROCESOS E
HILOS. EN SU LUGAR, LINUX TRATA DEL MISMO MODO A AMBOS, PERMITIENDO QUE UNA TAREA
SE ASEMEJE MAS A UN PROCESO O A UN HILO, EN FUNCION DEL CONJUNTO DE INDICADORES QUE
SE PASEN A LA LLAMADA DEL SISTEMA CLONE(). SIN EMBARGO, MUCHOS SISTEMAS OPERATIVOS,
COMO WINDOWS XP Y SOLARIS, TRATAN LAS HEBRAS Y LOS PROCESOS DE FORMA DEFERENTE.
NORMALMENTE, DICHOS SITEMASUSAN UNA NOTACION EN LA QUE LA ESTRUCTURA DE DATOS
PARA UN PROCESO CONTIENE PUNTEROS A LAS DISTINTAS HEBRAS PERTENECIENTES AL
PROCESO. COMPARE ESTOS DOS METODOS PARA EL MODELADO DE PROCESOS Y HEBRAS
DENTRO DEL KERNEL.
Por un lado, en los sistemas en los procesos y subprocesos son considerados como entidades similares, una
parte del cdigo del sistema operativo podra simplificarse. Un programador, por ejemplo, puede tener en cuenta
los diferentes procesos y subprocesos en igualdad de condiciones, sin necesidad de cdigo especial para
examinar los hilos asociados a un proceso durante cada paso de programacin. Por otro lado, esta uniformidad
podra hacer ms difcil para imponer limitaciones de recursos en todo el proceso de una manera directa. En
lugar de ello, se requiere cierta complejidad adicional para identificar qu hilos corresponden a qu proceso y
realizar las tareas de contabilidad pertinentes.
Windows XP y Solaris usa procesos e hilos para su cdigo ejecutable. Los procesos tienen un espacio de
direccin de memoria virtual e informacin usada para inicializar cada hilo, por ejemplo, una prioridad base y
una afinidad con uno o ms procesadores. Cada proceso tiene uno a ms hilos, cada uno de los cuales es una
unidad ejecutable despachada por el kernel. Linux tiene dos algoritmos de planificacin de proceso separados.
Uno es el algoritmo de la porcin de tiempo justa, planificacin expropiativa entre mltiples procesos; el otro es
designado para tareas de tiempo real, donde las prioridades absolutas son ms importantes que la
imparcialidad.
4.8.- CONSIDERE UN SISTEMA MULTIPROCESADOR Y UN PROGRAMA MULTIHILO ESCRITO USANDO
EL MODELO MUCHOS-A-MUCHOS. SUPONGA QUE EL NUMERO DE HILOS DE USUARIO EN EL
PROGRAMA ES MAYOR QUE EL NUMERO DE PROCESADORES DEL SISTEMA. EXPLIQUE EL IMPACTO
SOBRE EL RENDIMIENTO DE LOS SIGUIENTES ESCENARIOS:
A) EL NUMERO DE HEBRAS DEL KERNEL ASIGNADAS AL PROGRAMA ES MENOR QUE EL NUMERO
DE PROCESADORES
En este caso se estara desperdiciando los procesadores que no tengan asignada ninguna hebra ya que no
estara multiplexado ninguna hebra a ese procesador, pero en si el programa terminara su ejecucin en su
tiempo ptimo.
B) EL NUMERO DE HEBRAS DEL KERNEL ASIGNADAS AL PROGRAMA ES IGUAL QUE EL NUMERO DE
PROCESADORES
En este caso se estara utilizando los recursos del sistema al mximo y no habra desperdicio al estar
multiplexado por que todos los hilos kernel estaran trabando.
C) EL NUMERO DE HEBRAS DEL KERNEL ASIGNADAS AL PROGRAMA ES MAYOR QUE EL NUMERO
DE PROCESADORES, PERO MENOR QUE EL NUMERO DE HEBRAS DE USUARIO.
En este caso no sera posible ya que el nmero de hebras de kernell debe ser menor o igual alas del usuario.

4.7.- EL PROGRAMA MOSTRADO USA LA API DE PTHREADS. CUAL SERIA LA SALIDA DEL PROGRAMA
EN LA LINEA C Y EN LA LINEA P?
#include <pthread.h>
#include <stdio.h>

int value = 0;
void *runner(void *param); /*por el hilo*/
Int main(){
int pid;
pthread_t tid;
ptread_attr_t attr;
pid = fork();
if (pid == 0){ /*proceso hijo*/
pthread_attr_init(&attr);
pthread_create(&tid, &attr, runner, NULL);
pthread_join(tin, NULL);
printf(HIJO: valor = %d, value);
/*linea C*/
return -1;
{
else if (pid>0){ /*proceso padre*/
wait (NULL);
printf(PADRE: valor = %d, value);/*linea P*/
}
}
void *runner(void *param){
value = 5;
pthread_exit(0);
}
//Salida en la lnea C es 5. Salida en la lnea P es 0.