Vous êtes sur la page 1sur 9

Universidad Politcnica de Victoria

Carrera: Ingeniera en Tecnologas de la Informacin








Cuestionario: Operating Systems Design and
Implementation.- Procesos






Catedrtico: M.A.T. Hiram Herrera Rivas





Alumnas: Andrea Gidalti Garca Prez
Yanin Valeria Yuen Torres
Giezi Leija Torres







Periodo: Mayo-Agosto
Cd.Victoria,Tamaulipas.




1
Instrucciones: Lea el captulo 2, "Procesess" del libro "Operating Systems Design
and Implementation" y conteste los siguientes ejercicios:

1. Por qu la multiprogramacin es fundamental para el funcionamiento de un sistema
operativo moderno?
Debido a su modo de funcionar en el que se proporciona un entorno de multiprogramacin
agradable y eficiente y sobre todo en donde los procesos se ejecutan simultneamente as
que no pueden interferir unos con otros.

2. Cules son los tres estados principales que un proceso puede estar en? Describir el
significado de cada uno brevemente.
Tres estados principales de un proceso son los siguientes:
a) Lista de estados: cuando un proceso est listo para ejecutarse en el CPU.
b) Estado de bloqueo: cuando un proceso se bloquea a la espera de un recurso, la
informacin o evento que ocurra (por ejemplo, a la espera de un mutex para ser
desbloqueados).
c) Estado de corriente: cuando un proceso mantiene la CPU y ejecuta las instrucciones
individuales de programas.

3. Suponga que usted fuera a disear una arquitectura informtica avanzada que ha de
cambiar el proceso en el hardware, en lugar de tener interrupciones. Qu informacin
necesitara el CPU? Describa cmo podra funcionar el proceso de conmutacin hardware.
La CPU tendra que entender la estructura de datos de la tabla de procesos. Esto incluira
informacin tal como todos los procesos actualmente en el sistema, as como sus datos (o al
menos un puntero a la ubicacin de memoria que almacena el bloque de control de proceso
que contiene los datos del registro, contador de programa, lmites de memoria, etc). La CPU
tendra que conocer el estado del proceso (listo, el bloqueo, la espera, etc) por lo que podra
decidir qu proceso para cambiar.
Tambin podra tener un registro que contiene un puntero de la entrada de la tabla de
proceso actual. Cuando E / S complet, la CPU almacenar el estado actual de la mquina en
la entrada de la tabla de proceso actual, luego se ira al vector de interrupcin para el
dispositivo de interrupcin y buscar un puntero a otra entrada de la tabla de proceso (el
procedimiento de servicio). Este proceso entonces empezara a subir.

2
4. En todos los equipos actuales, al menos parte de los controladores de interrupcin se
escriben en lenguaje ensamblador. Por qu?
Por lo general los lenguajes de alto nivel no permiten el tipo de acceso a hardware de la CPU
que se requiere. Por ejemplo, un controlador de interrupciones puede ser requerido para
activar y desactivar el servicio de la interrupcin de un dispositivo en particular, o para
manipular los datos en el rea de pila de un proceso. Adems, las rutinas de servicio de
interrupcin deben ejecutar lo ms rpido posible.
Hay acciones (tales como el ahorro de registros) que ocurren mientras una interrupcin est
siendo manejado. Estas acciones necesitan ser escritas en el montaje, ya que no pueden
expresarse en lenguajes de alto nivel.

5. Vuelva a dibujar la figura. 2-2 agregando dos nuevos estados: Nuevos y terminados. Cuando
un proceso es creado, que se encuentra inicialmente en el estado Nuevo. Cuando se sale, que
est en el estado terminado.



3
6. En el texto se afirma que el modelo de la figura. 2-6 (a) no se ha adaptado a un servidor de
archivos utilizando una cach en memoria. Por qu no? Podra cada proceso tiene su propia
cach?
En la primer figura se muestran tres procesos, cada uno de ellos tiene su propio espacio de
direccionamiento y descriptor de procesos, como los tres procesos no comparten espacio de
direcciones deben comunicarse haciendo uso de los servicios de comunicacin de procesos
ofrecidos por el S.O. En la figura 2, se observa un nico proceso con 3 hilos de control. Cada
uno de ellos tiene su propio contador de programa y su propia pila, pero todos ellos
comparten el mismo espacio de direcciones. A estos mini-procesos se les denomina threads.
En un sistema multiprocesador los threads se pueden ejecutar en paralelo. Un thread puede
crear un thread hijo y poder invocar llamadas al sistema.
Los threads comparten un mismo espacio de direccionamiento, de modo que no hay
proteccin entre ellos, todos tienen acceso a las variables globales del resto. El hecho es que
proporcionar proteccin entre los threads, primero, es imposible, y segundo, no es
necesario. A diferencia de los procesos del usuario, los threads son programados por un
mismo programador, de modo que no deben intentar acciones perjudiciales para el resto de
los threads sino todo lo contrario, y si lo hacen debido a un error de codificacin, la
responsabilidad recae sobre el programador. Adems de compartir espacio de
direccionamiento, los threads comparten los mismos archivos abiertos, manejadores de
sea, proceso hijo, etc.

7. Cul es la diferencia fundamental entre un proceso y un hilo?
Ambos procesos y subprocesos son secuencias independientes de la ejecucin. La diferencia
tpica es que los hilos (del mismo proceso) se ejecutan en un espacio de memoria
compartida, mientras que los procesos se ejecutan en espacios de memoria diferentes.
Proceso.- Cada proceso proporciona los recursos necesarios para ejecutar un programa. Un
proceso tiene un espacio virtual de direcciones, cdigo ejecutable, identificadores abiertos a
los objetos del sistema, un contexto de seguridad, un identificador nico proceso, variables
de entorno, una clase de prioridad, mnima y tamaos mximos del espacio de trabajo, y al
menos un hilo de ejecucin. Cada proceso se inicia con un solo hilo, a menudo llamado el
hilo principal, pero puede crear subprocesos adicionales de cualquiera de sus hilos.
Hilo.- Un hilo es la entidad dentro de un proceso que puede ser programado para su
ejecucin. Todos los subprocesos de un proceso comparten sus direcciones espaciales y
recursos del sistema virtual. Adems, cada subproceso mantiene controladores de
excepciones, una prioridad de planificacin, almacenamiento local de subprocesos, un
identificador nico hilo, y un conjunto de estructuras, el sistema utilizar para guardar el
contexto del subproceso hasta que se programa. El contexto del subproceso incluye conjunto

4
de la rosca de registros de la mquina, la pila del ncleo, un bloque de entorno hilo, y una
pila de usuario en el espacio de direcciones del proceso del hilo. Hilos tambin pueden tener
su propio contexto de seguridad, que puede ser utilizado por hacerse pasar por clientes.

8. En un sistema con hilos, hay normalmente una pila por hilo o una pila por procesar?
Explique.
Hay una pila por hilo ya que cada hilo necesita sus propias variables para seguir la pista.

9. Qu es una condicin de carrera?
Una condicin de carrera o un peligro de la carrera es el comportamiento de un sistema
electrnico o software donde la salida depende de la secuencia o al calendario de otros
eventos incontrolables. Se convierte en un error cuando los acontecimientos no suceden en
el orden del programador pretenda. El trmino se origina con la idea de dos seales de
carreras entre s para influir en la salida primero.
Las condiciones de carrera pueden ocurrir en los sistemas electrnicos, especialmente los
circuitos lgicos, y los programas de software, especialmente con mltiples subprocesos o
distribuidos.

10. D un ejemplo de una condicin de carrera que podra ocurrir en la compra de billetes de
avin para dos personas para ir en un viaje juntos.
Para una condicin de carrera dos solicitudes concurrentes escribe tendr que ser hecha a
base de datos (digamos RDBMS). Si el DBMScode es incapaz de hacer control de concurrencia
y si el programa clientes intenta reservar las entradas de ambos simultneamente, entonces
hay la posibilidad de que algo as puede suceder:
threadA
-getAvailableSeats()-returns[27A27B...]
--------------------------------------...contextswitch
threadB
-getAvailableSeats()->returns[27A27B...]
-bookseats[0]
--------------------------------------...contextswitch
threadA
- book seats[0]


5
11. Escriba un script de shell que produce un archivo de nmeros secuenciales mediante la
lectura del ltimo nmero en el archivo, la adicin de 1 a ella, y a continuacin, aadiendo al
archivo. Ejecutar una instancia de la secuencia de comandos en el fondo y otro en el primer
plano, cada uno accediendo al mismo archivo.
Cunto tiempo se tarda antes de que una condicin de carrera se manifiesta? Qu es la
crtica seccin? Modifique el script para evitar la carrera (Sugerencia: use En el archivo file.lock
para bloquear el archivo de datos).
Primero se inicializa un archive con un carcter .
i=0
while [ $i != 300 ]
do
i=`expr $i + 1`
n=`tail -1 file`
expr $n + 1 >> file
done

Si ejecutamos el script de arriba dos veces en la misma hora, en el centro, el nmero que
anexar al expediente no se mostrar en la forma secuencial. Puede volver unos nmeros
entonces mantienen secuencia para prximos nmeros. Esa es la condicin de carrera se
produjo cuando un proceso lee el nmero e inmediatamente otro proceso escriba un nuevo
nmero en el archivo. El primer proceso puede aadir un nmero despus de ella. Por lo
tanto, el sistema inconsistente se produce.

12. Es una declaracin como en el archivo file.lock un mecanismo de bloqueo eficaz para un
programa de usuario como los guiones utilizados en el problema anterior? Por qu (o por qu
no)?
Un bloqueo es un mecanismo para controlar el acceso a algo. En programacin, las
cerraduras se suelen utilizar para que mltiples programas o hilos de un programa pueden
compartir un recurso -por ejemplo, acceso a un archivo para actualizarlo - sobre una base de
uno-en-un-tiempo. Tpicamente, una cerradura es de duracin temporal y cuando el recurso
ya no es necesario, es liberado para el bloqueo y uso por el prximo comparte en una cola.

13. Funciona la solucin de espera ocupada que usa la variable a su vez (fig. 2-10) cuando los
dos procesos se estn ejecutando en un multiprocesador de memoria compartida, es decir,
dos CPU, comparten una memoria comn?
Si y a la vez no, funciona en la medida en que la alternancia estricta solucin funciona, lo que
equivale a decir que en realidad no es una solucin general. De hecho, esto fue algo de una

6
pregunta con trampa: la solucin como ilustrado fue escrito esencialmente por un
multiprocesador de memoria compartida.

14. Considere un equipo que no tenga una prueba y la instruccin SET LOCK pero no hace tener
una instruccin para cambiar el contenido de un registro y una palabra de memoria en una
sola accin indivisible. Eso puede ser usado para escribir una entrar_en_region de rutina,
tales como la encontrado en la figura. 2-12?
Cuando los contenidos de los registros se intercambian con la memoria de escritura, aunque
sea llamada por mltiples procesos cercanos simultneos, cualquier valor que sola estar en
el registro ser cambiado a la memoria de escritura. El valor que estaba originalmente en el
registro no puede perderse, ya que el intercambio se realiza en una sola accin indivisible y
no puede ser interrumpido.

15. Haga un bosquejo de cmo un sistema operativo que puede deshabilitar las interrupciones
podran implementar semforos.
down(v) {
if (v > 0)
v--;
else
block_me()
}

up(v) {
v++;
unblock_one_process()
}
La idea es que si (v) se est realizando una hacia abajo, el sistema operativo debe desactivar
interrupciones, realizar la comprobacin / decremento en el valor de v, a continuacin,
habilitar interrumpe. Si no se produce el incremento, a continuacin, el proceso debe ser
bloqueado en ese punto. Si el sistema operativo es en realidad ejecuta todo el cdigo,
entonces tambin puede esperar a que toda la lgica se realiza antes de que bloquea el
proceso en cuestin.
El seguimiento (v) la operacin es ms simple: las interrupciones deshabilitar, incremento de
v, encontrar un proceso y bloqueado quitarlo de la lista de "bloqueado", y permitir
interrumpe.


7
16. Mostrar cmo contar los semforos (es decir, los semforos que pueden contener una
arbitrariamente grande valor) se puede implementar utilizando semforos slo binarios y
mquina ordinaria instrucciones.
Con cada semforo se asocia un contador de dos semforos binarios, M, utilizados para
exclusin mutua, y B, que se utiliza para el bloqueo. Tambin se asocia un contador que
contiene el nmero de subidas menos el nmero de bajas, y una lista de procesos
bloqueados en ese semforo. Para implementar abajo, un proceso primero consigue acceso
exclusivo al semforo, contador, y la lista haciendo una abajo en M. A continuacin, el
contador disminuye. Si es cero o ms, simplemente lo hace para arriba en una M y salidas.
Si M es negativo, el proceso se pone en la lista de procesos bloqueados.
Entonces un up se hace en M y un abajo se realiza en B para bloquear el proceso. Para poner
en prctica, primero M se apur para conseguir la exclusin mutua, y entonces el contador
se incrementa. Si es ms que cero, nadie fue bloqueada, por lo que todo lo que hay que
hacer es M. Si, sin embargo, el contador es ahora negativo o cero, algn proceso debe ser
retirado de la lista. Por ltimo, un up se realiza en B y M en ese orden

17. En Sec. 2.2.4, una situacin con un proceso de alta prioridad, H, y un proceso de baja
prioridad, L, fue descrito, lo que llev a H bucle para siempre. Se produce el mismo problema
si planificacin de turno rotativo se utiliza en lugar de la programacin de prioridad? Discuta.
Con planificacin de turno rotativo que funcionando, tarde o temprano L se ejecutar, y con
el tiempo dejar su regin crtica. El punto es, con programacin de prioridad, L nunca llega
a ejecutarse en absoluto; con la operacin por turnos, se pone una rebanada de tiempo
normal peridicamente, por lo que tiene la oportunidad de salir de su regin crtica.

18. La sincronizacin en monitores utiliza variables de condicin y dos operaciones especiales,
ESPERE y seal. Una forma ms general de la sincronizacin sera tener un solo primitivo,
WaitUntil, que tena un predicado booleana arbitraria como parmetro. Por lo tanto, se podra
decir, por ejemplo, WaitUntil x <0 o y + z <n La SEAL primitiva ya no seran necesarios. Este
esquema es claramente ms general que el de Hoare o Brinch Hansen, pero no se utiliza. Por
qu no? (Sugerencia: piense acerca de la aplicacin.)
Es muy costoso de implementar, cada vez que cualquier variable aparece en un predicado
sobre la que algn proceso est esperando cambios, el sistema de gestin de tiempo debe
volver a evaluar el predicado para ver si el proceso se puede desbloquear. Con los monitores
de Hoare y Brinch Hansen los procesos slo pueden ser despertados a una seal primitiva.


8
19. Un restaurante de comida rpida tiene cuatro tipos de empleados: (1) tomadores de
pedidos, que toman los pedidos del cliente; (2) los cocineros que preparan el alimento; (3)
especialistas de embalaje, que meter la comida en bolsas; y (4) los cajeros, que dan las bolsas
a los clientes y toman su dinero. Cada empleado puede ser considerado como un secuencial la
comunicacin proceso. Qu forma de comunicacin entre procesos estn utilizando?
Relacionar este modelo para procesos en MINIX 3.
Los empleados se comunican mediante paso de mensajes: pedidos, la comida, y las bolsas
en este caso. En trminos de MINIX los cuatro procesos estn conectados por tuberas
(pipes).
- Comunicacion en ambos sentidos(send(P,message),receive(id,message)).
- Communicacion indirecta(enviar(A,message),reciir(A,message)) puede ser usado en
la Comunicacion entre procesos. Procesos UNIX(Llamadas al sistema).
- Comunicaion simple: usando pipes direct communication related system calls:
msgget(), msgctl(),msgsnd() and msgrcv();
- Comunicacin indirecta en llamadas al sistema: shmget();shmat();shmdt();shmctl();

20. Supongamos que tenemos un sistema de paso de mensajes utilizando los buzones. Al
enviar a un buzn lleno o est tratando de recibir de una vaca, un proceso no se bloquea.En
su lugar, se pone un cdigo de error de nuevo. El proceso responde al cdigo de error con slo
de volver a intentarlo, una y otra vez, hasta que lo consiga. Tiene este sistema conduce a la
raza condiciones?
El sistema de paso de mensajes en s no dar lugar a condiciones de carrera, en el peor de los
casos va a liderar el proceso inanicin. Se puede discutir acerca de lo que el sistema de
mensajes, una vez que se colocan en el buzn, pero eso es una parte diferente del problema.
No, no es indicativo de una condicin de carrera, pero est ocupado esperando, por lo que
no conduce a condiciones de carrera (nada se pierde), pero est efectivamente ocupada y el
mensaje de error proporciona informacin que impide que la carrera suceda.

Vous aimerez peut-être aussi