You are on page 1of 21

1

SISTEMASOPERATIVOS PREGUNTASFRECUENTES

1. Qu es un sistema operativo ?

Un sistema operativo es un programa que acta como interfaz entre el usuario del ordenador y los
componentes fsicos (hardware) del mismo. Su objetivo principal es facilitar el uso del sistema
informtico empleando el hardware en forma eficiente.

2. Qu es un sistema informtico ?

Un sistema informtico se define como las relaciones entre los medios (equipo, hardware), los
datos y la informacin necesaria en la toma de decisiones desde el punto de vista de un sistema
integrado.

3. Qu relacin encuentra entre las dos preguntas anteriores ?

El sistema operativo forma parte del sistema informtico que est compuesto por: Hardware
(C.P.U. memoria, E/S), Sistema operativo, Programas de aplicacin y usuarios y acta como gestor
de los recursos del sistema informtico.

4. Qu puede comentar acerca de un interfaz entre hardware y usuario, como por ejemplo
ventajas/desventajas ?

Un sistema operativo acta como interfaz entre hard y usuario. Este interfaz ser ms eficiente
cuanto ms fcil sea de manejar y viceversa.

El rango y la extensin de los servicios proporcionados por un S.O. depende de varios factores.
Entre otras cosas: las funciones visibles al usuario de un S.O. estn en gran medida determinadas
por las necesidades y caractersticas del entorno objetivo que el S.O. est destinado a soportar.
Por ejemplo, un S.O. destinado al desarrollo de programas en un entorno interactivo puede tener
un conjunto diferente de llamadas y ordenes que el S.O. diseado para soporte en tiempo de
ejecucin de una aplicacin de tiempo real dedicada, tal como el control del motor de un coche.

Cuanto ms eficiente sea el interfaz ms recursos necesitar y viceversa.

5. A este nivel, puede contestar nuevamente la pregunta 1 indicando que hace un Sistema
Operativo y como lo hace ?

El sistema operativo es una especie de gobierno. Los recursos bsicos de un sistema informtico
son el hardware, el software y los datos. El S.O. facilita los medios para el uso adecuado de estos
recursos durante la operacin del sistema creando un entorno en el que otros programas puedan
realizar un trabajo til. Es posible tambin considerar el sistema operativo como un asignador de
recursos (gestor) de forma tal que los asigna a los usuarios y a los programas para que estos
realicen su tarea evitando conflictos entre recursos compartidos y haciendo un control eficiente en
la comparticin de los mismos.

6. Que elementos componen el hardware y que caractersticas poseen cada uno de ellos ?

El hardware es un conjunto de dispositivos elctricos y algunos mecnicos. Se compone
principalmente de:

* C.P.U. : microprocesador. Sus funciones principales son:

a) Controlar y supervisar el sistema integral del ordenador en base a un programa almacenado en
la memoria principal.

b) Desarrollar operaciones lgicas que sean necesarias para procesar las dems y controlar la
secuencia. La ejecucin de las instrucciones.

c) Controlar el envo y recepcin de datos de todas las unidades perifricas a la unidad de
memoria.

En funcin de la cantidad de instrucciones que puede descodificar la C.P.U. se dividen en:

a) CISC: tiene un gran conjunto de instrucciones.

b) RISC: tiene un conjunto regular de instrucciones.

* MEMORIA: dispositivos que permiten almacenar un conjunto de instrucciones. Dos clases
principales:

a) RAM memoria de lectura/escritura. Son de acceso aleatorio, lentas y voltil.

2

b) ROM solo lectura. De acceso aleatorio y permanentes

* Dispositivos de E/S: Son una serie de dispositivos que permiten al ordenador comunicarse con el
exterior. Los principales son:

a) Teclados.

b) Displays.

c) Discos: flexibles, duros...

d) Impresoras.

e) Comunicaciones.

7. Indique las diferencias que existen entre cada uno de los siguientes programas, qu soporte del
sistema informtico necesitan y cul es su objetivo: compiladores, assemblers, sistema operativo,
comandos de sistema operativo, editores, controladores de dispositivos, rutinas de entrada salida
dependientes del hardware (p.e. BIOS), prcticas de Sistemas Operativos.

Compiladores: son lenguajes de alto nivel, a diferencia de los assemblers que son lenguajes
intermedios. Se usa un lenguaje inteligible orientado al problema en vez de orientado a la mquina.
Permite pasar un lenguaje escrito en lenguaje de alto nivel, a lenguaje mquina. Los compiladores
requieren que el programa sea introducido de una vez en su totalidad y producen el diagnstico de
errores, si los hay, al finalizar el proceso de traduccin, la modificacin de una sola instruccin
requiere reiniciar de nuevo toda la traduccin ( proceso batch ). El compilador traduce una
instruccin a muchas.

Assemblers: es el nivel ms bajo de los lenguajes simblicos. El programador utiliza cdigos o
nombres simblicos para designar las operaciones que ha de realizar el ordenador. El traductor
ensambla los cdigos simblicos y los traduce al lenguaje mquina, su codificacin est muy ligada
a la estructura de la C.P.U. El ensamblador traduce una instruccin a otra.

Sistema operativo: es un programa que permite que podamos trabajar de forma eficiente con un
sistema informtico. Es un programa como cualquier otro pero con funciones especficas.

Editores: programa que permite que podamos escribir y modificar de forma interactiva otros
programas.

Controladores de dispositivos: las unidades de entrada / salida, por lo general, consta de una
componente mecnica y de otra electrnica. A menudo es posible separar las dos porciones para
ofrecer un diseo ms modular y general. La componente electrnica se denomina controlador del
dispositivo o adaptador. El sistema operativo casi siempre habla con el controlador, no con el
dispositivo. El interfaz entre el controlador y el dispositivo es con frecuencia un interfaz de muy bajo
nivel.

Rutina de E / S dependientes del hardware ( p. e. BIOS): Son pequeos programas que estn en la
ROM.BIOS (sistema bsico de E / S ). El usuario teclea un comando en el terminal y el S.O. carga
el programa solicitado del disco en la memoria y lo ejecuta. Cuando el proceso termina, el S.O.
teclea un carcter la solicitud de entrada en un terminal y despus espera un comando del terminal
para cargar otro proceso escribiendo encima del primero.

8. Puede dar una analoga entre Sistema operativo y Gobierno ?

La funcin del Sistema operativo es la de preparar y organizar un entorno para que el uso del
hardware sea lo ms eficiente posible, si sustituimos el Sistema Operativo por el Gobierno y el
hardware por la sociedad obtendremos que el gobierno se encarga de crear un entorno para que
cada uno de nosotros nos encontremos lo mejor posible, es decir, tienen una finalidad semejante
aplicada a campos diferentes.

9. En base a qu idea se puede considerar el Sistema Operativo como un Administrador de
recursos ?

El Sistema operativo se dice que acta como un asignador de Recursos porque se encarga de
asignar a cada uno de los recursos (hardware y software) cada uno de los programas y usuarios
especficos, segn las necesidades para que realicen sus tareas lo mejor posible el Sistema
Operativo se encarga de recoger cada una de las solicitudes de recursos y asignar cada solicitud a
cada recurso de manera que el Sistema Informtico funcione de manera eficiente.

10. En base a que idea se puede considerar el Sistema Operativo como un Programa de Control
?


3
Adems de ser (Sistema Operativo) un Asignador de Recursos es tambin un programa de control
porque el Sistema Operativo no slo se tiene que encargar del propio ordenador sino tambin de
los dispositivos de E/S, es decir, el Sistema tiene que controlar la ejecucin de los programas de
usuario para evitar errores y el uso inadecuado del ordenador, principalmente las operaciones y
dispositivos de E/S.

11. Defina un Sistema Operativo por el trabajo que realiza ?

El trabajo principal de un Sistema Operativo es ejecutar los programas de usuario y resolver todas
sus dudas, para ello utiliza el hardware y el software.

12. Defina un Sistema Operativo por lo que es ?

Es un programa que acta como una interfaz entre el usuario de un ordenador y el hardware del
mismo, ofreciendo el entorno necesario para que el usuario pueda ejecutar programas.

13. Donde aplicara el termino eficiencia en las respuestas de las preguntas anteriores ?

En el trabajo que realiza un Sistema Operativo.

14. En 2 minutos realice una descripcin de los primeros sistemas hasta llegar a un sistema con
programa Monitor.

Inicialmente, lo nico que exista era el hardware del ordenador. El programador escriba un
programa y lo ejecutaba directamente desde la consola. A medida que se ejecutaba el programa, el
programador / operador segua su ejecucin por medio de los pilotos de la consola. Un aspecto
importante de este entorno era su naturaleza directamente interactiva. El programador era el
operador. La mayora de los sistemas utilizaban un mtodo de reservas por solicitud. Con el tiempo
el hardware y el software se fueron perfeccionando. Aparecieron los primeros lectores de tarjeta,
impresoras de lnea y cintas magnticas. Se disearon ensambladores, cargadores y enlazadores
para facilitar la tarea de programacin . Se crearon libreras de funciones corrientes que podan ser
copiadas en programas nuevos sin tener que volver a ser escritas. Las rutinas que realizaban
entradas y salidas eran especialmente importantes esta se llama controlador del dispositivo. Un
controlador de dispositivo sabe cmo utilizar los buffers, indicadores, registros, bits de control y bits
de estado de un dispositivo dado. Ms tarde aparecieron compiladores para Fortran, Cobol y otros
lenguajes, haciendo mucho ms sencilla la programacin, pero ms compleja la operacin del
ordenador. La ejecucin de un trabajo poda implicar un tiempo de preparacin considerable. Cada
trabajo estaba formado por muchos pasos independientes: carga de la cinta con el compilador de
Fortran, ejecucin del compilador, descarga de la cinta con el compilador, carga de la cinta con el
ensamblador, ejecucin del ensamblador, descarga de la cinta del ensamblador, carga del
programa objeto y ejecucin del programa objeto. Si se produca un error en cualquiera de los
pasos quiz haba que empezar de nuevo desde el principio. Cada paso poda implicar la carga y
descarga de cintas magnticas, cintas de papel y/o tarjetas. El tiempo de preparacin de la tarea
era un problema real. La solucin fue doble. En primer lugar, se contrataron operadores de
ordenador profesionales. Tan pronto como se acababa un trabajo, un operador poda iniciar el
siguiente. Como un operador tena ms experiencia en el montaje de cintas que un programador, el
tiempo de preparacin se redujo.

El segundo ahorro de tiempo fue debido a la reduccin del tiempo de preparacin. Los trabajos con
necesidades similares se incluyeron en lotes y se ejecutaban en el ordenador como un grupo.

Estos cambios, que llevaron al operador a clasificar a los usuarios y a agruparlos en lotes de
trabajos similares, mejoraron bastante la productividad. Pero an haba problemas. Por ejemplo
cuando un trabajo se detena, los operadores tenan que darse cuenta observando la consola,
determinar por qu se haba detenido la ejecucin del programa, realizar un volcado si era
necesario, cargar la lectora de tarjetas o de cinta de papel con el trabajo siguiente y poner de
nuevo en marcha el ordenador. Durante esta transicin de un trabajo al siguiente, la C.P.U.
permaneca inactiva. Para eliminar este tiempo de inactividad se introdujo el secuenciamiento
automtico de trabajos y con l se crearon los primeros y rudimentarios sistemas operativos. Lo
que se deseaba era un procedimiento para la transferencia automtica del control de un trabajo al
siguiente. Con este propsito se cre un pequeo programa, llamado monitor residente. El monitor
residente secuenciaba automticamente en programa tras otro y un trabajo tras otro.

15. Cundo no exista el programa Monitor cules eran los problemas a solucionar ?

El tiempo de preparacin de una tarea era un problema a solucionar. En una mquina con un costo
muy elevado y en el cual pasaba cerca del 87 % de tiempo desocupada no era rentable, por lo que
se deba maximizar la cuota de empleo. Esto implic una doble solucin: contar con operadores
profesionales y agrupar los trabajos por lotes. Si bien esto solucionaba en parte los problemas no
era suficiente.

16. Qu es un secuenciador automtico de trabajos y cual es su funcin ?


4
En el caso anterior los trabajos divididos por lotes exista un tiempo entre dos trabajos consecutivos
que poda ser utilizado. Con el objetivo de aprovechar este tiempo se crearon los primeros 'tiempo
de las cavernas' sistemas operativos cuya funcin principal era secuenciar sin intervencin del
operador los programas de un lote. La forma de hacerlo era un pequeo programa llamado 'monitor
residente' porque resida en memoria. Inicialmente, el control pasaba al monitor quien lo transfera
al programa de usuario. Cuando el programa acababa, devolva el control al monitor, que
continuaba con el siguiente, y as sucesivamente el monitor 'secuenciaba' los trabajos.

17. Encuentra relacin entre la pregunta anterior y el termino de Monitor Residente ?

El secuenciamiento de trabajos automtico y el Monitor Residente es lo mismo, el Monitor
Residente es una especie de Sistema Operativo que estaba siempre en memoria, cuando
encendamos el ordenador el control de este lo tena el Monitor que se encargaba de buscar el
primer trabajo y ejecutarlo, una vez terminado el trabajo se le volva a pasar el control y otra vez se
volva a ejecutar el siguiente trabajo; antes de ejecutar cualquier trabajo el Monitor reciba una
breve descripcin de los programas que tena que ejecutar y los datos que le acompaaban, esto y
adems una tarjeta de control que le indicaban que programa tena que ejecutar.

18. Qu partes puede enumerar de las que componen un Monitor Residente ?

Una de las partes ms importantes del Monitor es el interprete de tarjetas, sin este interprete no
existira orden al ejecutarse un programa, otra parte importante es el cargador ya que se encarga
de cargar el trabajo que le viene a continuacin en la memoria para poder ejecutarlo, y tanto como
el cargador como el interprete necesitan realizar llamadas a E / S por lo tanto el Monitor tambin
necesitar un conjunto de controladores para los dispositivos de E / S.

19. Qu problemas seguan existiendo a pesar del Monitor Residente ?

El problema que seguia existiendo es que la C.P.U. permanecia inactiva demasiado tiempo debido
a que los dispositivos de E/S son muy lento en comparacin con los dispositivos electronicos.

20. Qu implica la operacin off-line, que ventajas y que desventajas incluye ?

En lugar de que la C.P.U. leyera directamente de las tarjetas estas primero se copiaban a una cinta
magntica (la cinta magntica era s rpida que las tarjetas ), cuando la cinta se llenaba lo
suficiente, se desmontaba y se llevaba al computador. De forma parecida, la salida se escribia en
la cinta y el contenido de esta se imprima ms tarde, los lectores de tarjetas y las impresoras de
lneas se operaban fuera de lnea off-line, no lo haca el computador principal.

La principal ventaja era que el computador ya no estaba restringido a la velocidad de los lectores
de taretas o las impresoras de lneas mucho ms lentos que las unidades de cinta magntica, la
verdadera mejora fue la posibilidad de usar varios sistemas lector-cinta y cinta-impresora con una
misma C.P.U.

La desventaja es que hay un mayor retardo, es razonable para los sistemas de procesamiento por
lotes, pues se pueden agrupar varios trabajos semejantes.

21. En este momento puede definir que es independencia de dispositivos de Entrada / Salida ?
Puede mencionar un S.O. que cumpla esta premisa ?

La capacidad para ejecutar un programa con dispositivos de entrada salida diferentes se llama
INDEPENDENCIA DE DISPOSITIVOS.

La independencia de dispositivos es posible haciendo que el S.O. determine que dispositivo utiliza
un programa cuando necesita E / S. Los programas se escriben para utilizar dispositivos de
Entrada / Salida lgicas. Las tarjetas de control u otros comandos indican como deben asignarse
los dispositivos lgicos a los dispositivos fsicos.

22. Qu implica el Buffering, que ventajas y qu desventajas presenta ?

Es una solucin a la lentitud de los dispositivos de Entrada / Salida. Este trata de mantener
permanentemente ocupados tanto la C.P.U. como los dispositivos de E / S. La idea es sencilla, una
vez se han ledo los datos y que la C.P.U. ha de iniciar la operacin con ellos, el dispositivo de
entrada es instruido para iniciar inmediatamente la siguiente lectura. La C.P.U. y el dispositivo de
entrada permanecen ocupados. Con suerte, cuando la C.P.U. est libre para el siguiente grupo de
datos, el dispositivo de entrada habr acabado de leerlos.

En la prctica pocas veces el buffering mantiene ocupados todo el tiempo la C.P.U. y los
dispositivos de Entrada / Salida.

Desventajas: El Buffering es complicado y resulta difcil de programar. Uno de los problemas reside
en detectar tan pronto como sea posible que un dispositivo de E/ S ha acabado una operacin.

23. El Buffering reemplaza a la operacin off-line o pueden coexistir ? Como ?

5

No no la reemplaza y pueden coexistir aplicando el Buffering a la cinta en lugar de al lector de
tarjetas o la impresora de lneas, puesto que las unidades de cinta, pese a ser ms rpidas que
stos, siguen siendo mucho ms lentas que la C.P.U.

24. Para que sirve una interrupcin ? Es un mtodo hardware o software ? Puede controlarlas
el usuario ? Cmo ? Qu tipo de interrupciones conoce ? ...

Sirve para que las operaciones de E/S y de la C.P.U. puedan superponerse es un mecanismo que
permite la desincronizacin y la resincronizacin de la operacin y as evitar que la C.P.U.
permanezca inactiva demasiado tiempo, o omitamos parte de la entrada.


Cuando se interrumpe la C.P.U. esta abandona lo que estaba haciendo y transfiere de inmediato la
ejecucin a una posicin fija, la cual generalmente contiene la direccin de inicio donde se
encuentra la rutina de procesamiento de la interrupcin, esta transfiere los datos del buffer local del
controlador del dispositivo a la memora principal, una vez lograda la transferencia la C.P.U. puede
continuar.

25. Sea una C.P.U. y una impresora, como traducirias los siguientes dialogos?.

A: C.P.U.: imprimeme estos 10 caracteres.

imp: bueno, esperate...

C.P.U.: terminaste?..terminaste?...terminaste?

Interrupcion por encuesta sin numero de interrupcion(la C.P.U. pregunta y pierdetiempo
preguntando si termino el dispositivo de E/S la tarea recomendada).

B: C.P.U.: imprimeme estos 10 caracteres y avisame..

imp: bueno. Te acordaras que soy 007?

C.P.U.: si, me voy a hacer un calculo super extra.

mientras la C.P.U. esta haciendo el cse suena el

timbre de interupcion...

Sit i: C.P.U. por el nivel de timbre int es la improra

Que ha terminado.....

Interrupcion autovectorizada: la direccion de la rutina de atencion la saca del nivel de interrupcion
con la cual la impresora ha interrumpido (por ejemplo: tres lineas fisicas de int. ->8 niveles, existe
una tabla con 8 vectores (0..7) y en cada vector existe la direccion de la rutina de atencion para la
int. De este nivel donde la C.P.U. obtiene sgun el nivel de direc. De la rutina de atencion).

Sit ii: C.P.U. : hola, quien es?

imp: soy 007!

C.P.U.: super, ya te atiendo -y se va a en...

Interupcion vectorizada: el dispositivo de e/s le comunica a la C.P.U. cual es el vector de su rutina
de atencion. Ventajas contra las anteriores: todos los disp. Entran por solo una linea de int.
Desventajas: dispositivos pseudo-inteligentes (establecen dialogo con la C.P.U. y le comunica el n
de vector.

27. Qu diferencia hay entre las interrupciones que son enmascarales y las que no lo son ?

Las interrupciones no enmascarables se realizan justo en el momento en que se declaran y las
enmascarables no.

28. Puede definir que es un controlador DMA, que hace y como lo hace ?.

Un ctr. DMA es un coprocesador que realiza transferencias a memoria no por unidades de
informacion (b,w lw) sino por bloques de estas sin intervencion de la C.P.U. Solo se genera una
interupcon por bloque en lugar de una int. Por unidad. An te una transferencia el dispositivo
interrumpe a la C.P.U. que controla los errores de las transferencias anteriores selecciona un buffer
vacio, carga los registros del disp. DMA e instruye al controlador que realice la e/s desde/hacia el
buffer indicado. La siguiente int. Indica que bloque se ha tranferido o que se ha producido un error.


6
29. Hablando de buffering, En qu casos realmente presenta slo una mejora en la eficiencia del
sistema informtico ?

Si las velocidades de promedio de la UCP y los dispositivos de E/S son las mismas, el
almacenamiento temporal con buffers permite a la C.P.U. adelantarse o retrasarse ligeramente
respecto a los dispositivos de E/S, funcionando ambos a toda vekocidad. Si la C.P.U. fuese mucho
ms rpida el uso de buffers tiene poca utilidad.

30. Qu implica el Spooling, qu ventajas y qu desventajas presenta ?

Con la aparicin de los discos las tarjetas se leen directamente del lector de tarjetas al disco. La
ubicacin del contenido de las tarjetas se anota en una tabla que mantiene el sistema operativo.
Cuando se ejecuta un trabajo, el sistema operativo satisface las solicitudes de entrada en el lector
de tarjetas leyendo del disco, lo mismo ocurre con la impresora, de esta manera usamos el disco
como un enorme buffer.

Tiene un efecto beneficioso sobre el rendimiento del sistema. A cambio de cambio del costo de
unas cuantas tablas y de espacio en disco.

31. El Spooling tiene algo que ver con el Buffering ? Lo reemplaza ? Y con la operacin off-
line ? O pueden coexistir ? Cmo ?

Si ambos son buffers el Spooler ms grande, el buffer hace simultanea la E/S de un trabajo con los
propios calculos del trabajo, en cambio el spooler puede superponer la E/S y los calculos de varios
trabajos diferentes. Reemplaza al buffer, en cambio puede coexistir con la operacin off-line.

33. Por qu se dice que aparece aqu una cola de trabajos (job pool)? En operacin Off-Line los
trabajos tambin estaban en cola en la cinta pero no se hablaba de esto, por qu?

El spooling generalmente har que varios trabajos ya ledos permanezcan esperando en un disco,
dispuestos a ser ejecutados. Un grupo de trabajos en disco permite que el sistema operativo
seleccione que trabajo ejecutar a continuacin, con vistas a incrementar la utilizacin de la C.P.U..
Cuando los trabajos entran directamente desde tarjetas o incluso desde cinta magntica, no es
posible saltar y ejecutar trabajos en un orden diferente. Cuando hay varios trabajos en un
dispositivo de acceso directo ce posible la planificacin de trabajos.

35. Qu es la multiprogramacin ? Qu ventajas desventajas tiene ? Con que la comparara
? conoce algn sistema operativo que la posea ?

La multiprogramacin aumenta la utilizacin de la C.P.U. organizando los trabajos de manera que
esta siempre tenga algo que hacer. El concepto es el siguiente el S.O: coge uno de los trabajos
cuando este tenga que esperar (montar una cinta, imprimir...) este coge otro trabajo de la cola de
trabajos. Ventaja la C.P.U. nunca inactiva, desventajas estos S.O. son ms complejos. Se puede
comparar con un abogado que no tiene solamente un cliente, cuando tenga que esperar la
recepcin de algn documento p.e. el abogado puede trabajar en otro caso.

37. Que opinion tiene sobre un sist. en tiempo compartido?. En que se basa? para que sirve?.
cual es lo opuesto a interactivo?. se usa lo opuesto?

Los sist. en tiempo compartido son son el resultado de la tentativa de obtener un funcionamiento
interactivo de un sistema informatico a un coste razonable.un sistema operativo en tiempo
compartido utiliza la Planificacion de la C.P.U. y la multiprogramacion para dotar a cada usuario de
una pequea parte del ordenador. Lo opuesto a interractivo es batch (generalmente vax durante las
noches los trabajos se ejecutan

En modo batch). Aqui el usuario envia a ejecutar un programa con sus datos y cuando el so. Tiene
tiempo lo hace pero el usuario no espera la respuesta. Este modo de ejecucion es indicado para
los programas con mucha carga de C.P.U, i poca interactividad.

39. Qu opinin le merece un sistema de tiempo real (RT) ? En que se basa ? Para qu sirve
? Un sistema RT puede ser de tiempo compartido ? Por qu ?

Un sistema RT se utiliza como sistema de control de una aplicacin especializada. Unos sensores
proporcionan los datos a la C.P.U.. La C.P.U. analiza los datos. La C.P.U. analiza los datos y ajusta
en lo posible los controles para modificar las entradas del sensor. El procesamiento tiene que
realizarse dentro de los lmites definidos, si no el sistema fallar. Comprese este requerimiento
con un sistema en tiempo compartido donde es deseable (pero no obligatorio) responder
rpidamente, o con un sistema en batch donde puede no haber limitaciones de tiempo en absoluto.

48. Qu significa concurrencia ? Puedes dar un ejemplo ?

Dos o ms procesos son concurrentes cuando se ejecutan al mismo tiempo. Por ejemplo tenemos
las siguientes operaciones sencillas.


7
a:=x+y

b:=z+1

c:=a-b

w:=c+1

Supongamos que deseamos ejecutar alguna de estas instrucciones concurrentemente para reducir
el tiempo de ejecucin. El calculo de a y b se puede realizar concurrente, mientras que c no se
puede calcular hasta que halla acabado la operacin anterior.

a b

c

w

49. Como har un dibujo para mostrar la concurrencia ?

Ponindolas al mismo nivel en el dibujo se ejecutarn de manera concurrente.

50. Que es un grafo de precedencia ?

Es un grafo aciclico orientado cuyos nodos corresponden a sentencias individuales. Un arco que
une el nodo Si al nodo Sj significa que a sentencia Sj puede ejecutarse despus de que la
instruccin Si haya sido completada.. Tambin es una herramienta til para definir las restricciones
de proceso entre puntos de una computacin.

51. Qu son restricciones de precedencia ?

Dentro de un programa hay restricciones de precedencia, con las distintas instrucciones. El
resultado de una sentencia no podr ejecutarse si depende del resultado de una sentencia anterior.

52. Que significa que el grafo de precedencia es aciclico y porque debe serlo ?

Pues que no puede meterse en un ciclo ya que los procesos dependen el uno del otro nunca se
podrn satisfacer. Por ejemplo imaginemos el grafo siguiente:

S1

S2

S3

S3 puede ejecutarse solamente despus de que S2 haya terminado y S2 puede ejecutarse
solamente despus que S2 acabe. Estas restricciones no se pueden satisfacer simultneamente..

53. Cuales son las condiciones que se deben dar para que los procesos sean concurrentes ?

Antes definamos algunas condiciones:

R(Si)={ a1, a2, a3...an }, conjunto de lectura de Si.

W(Si)={ b1, b2, b3...bn }, conjunto de escritura de Si.

Para que las instrucciones sucesivas S1, S2 sean ejecutables concurrentemente sin variacin de
resultados tienen que satisfacer las siguientes condiciones:

1. R(S1)"W(S2)= { }

2. W(S1)"R(S2)= { }

3. W(S1)"W(S2)= { }

Por ejemplo consideremos S1: a= x + y, S2: b=z+1. estas instrucciones pueden ejecutarse
concurrentemente por que:

R(S1)={ x, y }

R(S2)={ z }

W(S1)={ a }


8
W(S2)={ b }

Sin embargo S2 no puede ejecutarse concurrentemente con S3: c=a-b puesto que W(S2)"R(S3)={
b }

54. Qu es y como se utiliza la instruccin fork ?

La instruccin fork L genera las ejecuciones concurrentes en un programa, Una ejecucin se inicia
han la instruccin etiquetada con L, mientras que la otra es la continuacin de la ejecucin en la
instruccin siguiente a la instruccin fork. Por ejemplo:

S1 S1

Fork L Fork

S2

. S2 S3

.

.

L: S3

55. Qu es y como se utiliza la instruccin Join ? Puede ir sin la variable asociada a ella count
? Escriba con la sentencia If esta instruccin ?

La instruccin join ofrece los motivos para reunir dos computaciones concurrentes en una tenemos
que saber el numero de computaciones que hay que unir, de modo que podemos terminarlas todas
excepto la ltima. La instruccin join tiene un parmetro para especificar el numero de
computaciones a reunir ( count ). Para dos computaciones la variable se tendr que inicializar a 2.

Count:=2 S1 S2 CON LA INST. IF

Fork L1 Joint count:= count-1

. S3 if count"0 then quit

S1

goto L2

L1: S2

L2: joint count

S3

56. Siempre que hay fork existe en alguna parte el join ? Debe haber tantos join como fork en
un cdigo ?

Si. No debe haber el mismo n de forks y joins necesariamente.

57. Cualquier grafo de precedencia se puede representar por fork-join ? Porqu ? El
siguiente grafo se puede representar por fork-join: S1!S2, S2!S3, S3!S1 ? Porqu ?

Si, si se puede representar con fork-join. Por que la instruccin fork es similar a la instruccin goto
y resulta una estructura de difcil uso.

S1 S2 S3

No se puede representar por que es un grafo cclico, no aciclico.

58. Escriba el cdigo con fork- join de un proceso que lee en un archivo, dos procesos que
escriben en dos archivos diferentes en forma concurrente.

var

f,g,h, file of T;

r,s,q: T

begin

9

reset(f)

read(f,r)

while not eof(f) do

begin

count:=2;

s:=r;

q:=r;

fork L1;

write (g,s)

write(h,q)

goto L2

L1: read (f,r)

L2: join count

end

write (g,r)

write(h,r)

end;

59. Cmo se utiliza y se define la instruccin parbegin-parend ?

forma: Parbegin S1, S2; ..; Sn Parend

Cada Si es una instruccin . Todas las instrucciones insertadas entre parbegin y parend. El grafo
de precedencia sera.

Si

S1 S2 Sn

Sj

La instruccin concurrente se aade con facilidad a un lenguaje moderno de alto nivel estructurado,
tiene mucha de las ventajas de otras instrucciones de control estructuradas.

60. Que ventajas y desventajas con respecto a la instruccin fork-join ?

VENTAJAS: Que se aade con facilidad a un lenguaje moderno de alto nivel estructurado y tiene
muchas de las ventajas de otras instrucciones de control estructuradas.

DESVENTAJAS: No es lo suficientemente poderosa para como para representar todos los grafos
de precedencia posibles.

61. Escriba el cdigo con parbegin/parent de un proceso que lee de un archivo y dos procesos que
escriben en dos archivos diferentes en forma concurrente.

var

f, g, h: file of T

q, r, s: T

begin

reset (F)

read(f,r)


10
while not eof(f) do

begin

s=r

q=r

for begin

write(g,s);

write(h,q);

read(f,r)

parent;

end;

write(g,r);

write(h,r);

end;

62. Cuantos estados conoce en los que puede estar un proceso?

Puede estar mas de uno a la vez? Como pasa de uno a otro?

Quien los pasa?

-Ejecucin. Las instrucciones estn siendo ejecutadas.

-Bloqueado: El proceso espera que se produzcan algn suceso.

-Preparado: El proceso esta esperando para ser asignado a un procesador.

-Interbloqueado(en abrazo mortal). El proceso esta esperando a que se produzcan algn suceso
que nunca tendr lugar.

-Solo puede estar en un solo estado.

-Pasa de un estado a otro mediante intercepciones.

63. Relaciona estos dos conceptos: grafos de procedencia y procesos.

La computacin concurrente hecho de un solo programa puede representarse por un grupo de
procedencia los procesos aparecen y desaparecen dinmicamente durante la ejecucin de un
nico programa. Aquellos aciclicos que se realizan secuencialmente se puede minimizar, si los
contenemos en un solo proceso. Cada nodo de un grafo de procedencia es un proceso.

64. A todo esto: qu significa proceso ? cmo lo definira?.

Un proceso es un programa en ejecucion. Un programa no es un proceso en si mismo; un
programa es una entidad pasiva mientras que un proceso es una entidad activa. La ejecucion de
un proceso debe progresar de manera secuencial. Tpicamente un trabajo bach es un proceso, etc.
Se puede considerar como un proceso un programa o un trabajo en ejecucin en tiempo
computado.

65. Por que es necesaria una jerarqua de procesos? Quienes se benefician con esta jerarqua?

Cuando un proceso Pi ejecuta la instruccin FORK L, se crea un nuevo proceso Pj Pi y Pj
comparten el mismo programa. La principal diferencia es que el contador de instrucciones de Pj se
ajusta a L y sus registros de hardware interno se inicializan apropiadamente. La jerarqua de
procesos muestra las relaciones entre los distintos procesos y que clases de relaciones pueden
invocarse sobre un proceso (grafo de proceso).

Un grafo de proceso es un rbol con raz, orientado cuyos nodos corresponden a procesos. Un
arco desde el nodo Pi al nodo Pj significa que Pi creo a Pj . En este caso diremos que Pj es hijo de
Pi.El grafo tiene que ser un rbol con raz puesto que cada proceso puede tener un padre como
mximo, pero tantos hijos como cree.

66. Que operaciones se pueden realizar sobre un proceso?

11

a) Creacin de un proceso: cuando un proceso crea un nuevo proceso por medio de alguna
operacin la creacin (fork), son posibles varias implementaciones.

1. Ejecucin;

Concurrente: El padre continua ejecutando concurrentemente con sus hijos.

Secuencial: El padre espera a que todos sus hijos han acabado.

2.Comparticion:

Completo: El padre y el hijo comparten todos las variables.

Parcial: El hijo comparte un subconjunto de variable.

b)Terminacin de un proceso: Un proceso termina cuando acaba la ejecucin de su ultima
instruccin. Pero hay otras circunstancias que provocan la terminacin, por ejemplo un proceso
puede ocasionar la terminacin de otro proceso emitiendo el comando Kill id;

Un padre puede terminar la ejecucin de uno de sus hijos por divirsas razones.

1. El hijo ha excedido el uso de los recursos que le han sido asignados.

2.La tarea asignada al hijo ya no es precisa.

67. Respecto a la ejecucin que formas conoce y que operativos adoptan cada una de estas
formas ?

( ver pregunta anterior. )

68. Respecto a la computacin de variables que formas conoce y que operativos conoce que
utilicen estas formas ?

COMPLETA: FORK-JOIN

PARCIAL: UNIX ( VER PREG. 66 )

69. Qu implica la terminacin de un proceso ? ( ver preg. 66 )

Para determinar si un proceso ha excedido el uso de algunos de los recursos se ha de disponer de
un mecanismo que haga posible que el padre inspeccione el estado de su hijo. Muchos sistemas
no permiten que un hijo exista si su padre ha terminado.

70. Indique la diferencia entre proceso esttico y dinmico ? Un proceso que no termina mientras
el sistema operativo este funcionando se llama esttico; un proceso que puede terminar se llama
dinmico.

71. Qu significa el problema de la seccin crtica ? Cul es la analoga que puede hacer con
un cruce de calles y la seccin crtica ?

Un entorno de multiprogramacin y varios procesos pueden competir por un n finito de recursos.
Un proceso solicita recurso; si estos no se encuentran disponibles en ese momento el proceso
entra en un estado de espera. Puede suceder que el proceso en espera nunca vuelva a cambiar de
estado debido a que los recursos que ha solicitado estn retenidos por otros procesos.

Cada proceso tiene un segmento de cdigo, denominado seccin crtica, en que el proceso puede
estar leyendo variables comunes actualizando una tabla, escribiendo sobre un fichero, etc. La
caracterstica relevante del sistema es que cuando un proceso est ejecutndose en su seccin
crtica, ningn otro proceso puede ejecutarse en su seccin crtica.

72. De la idea de procesos concurrentes productores y consumidores escriba el cdigo de un
proceso productor y uno consumidor con buffer limitado. Cmo controla el buffer ? Sn
necesarios los punteros ? Cmo detecta si el buffer est vacio o lleno ? De una forma alternativa
de controlar el buffer.

Un proceso productor genera informacin que es utilizada por un proceso consumidor. Para que 2
procesos productores y consumidores se ejecuten concurrentemente, tenemos que crear un pool
de buffers que pueden ser alimentados por el productor y vaciados por el consumidor. Un productor
puede producir sobre un buffer mientras que el consumidor est extrayendo del otro. El productor y
el consumidor tienen que estar sincronizados.

El problema de productor-consumidor con buffer limitado supone que hay un fijo de buffers n. En
este caso el consumidor tiene que esperar si todos los buffers se encuentran vacios, y el productor

12
tiene que esperar si todos los bufares se encuentran llenos. En la siguiente solucin el poll de
buffers compartidos se implementa con una tabla circular con dos punteros lgicos in y out. La
variable in apunta al siguiente buffer libre, mientras que out apunta al primer buffer lleno. El pool
(deposito) se encuentra vaco cuando in = out y el pool est lleno cuando in+1 mod n = out.

type item=.....;

var buffer: array (0...n-1) of item

in, out: 0.. n-1

nextp, nextc: item;

in:=0;

out:=0;

parbegin

productor: begin

repeat

...

produce un item en nextp

...

while (in+1 mod n)= out do skip

buffer(in):=nextp

in:=in + 1 mod n

until false

end

Consumidor: : begin

repeat

while in=out do skip

next c:= bufer(out)

out=out + 1 mod n

....

consumo el item en nextc

until false

end

parend

Eliminando los punteros ser as:

Declaraciones

Paregin

Productor: begin

repetir

...

produce un item en nextp

...

13

while counter = n do skip

buffer(in):= nextp

in:= in + 1 mod n;

counter:= counter + 1

until false

end

Consumidor: begin

repetir

while counter = 0 do skip

next:= buffer (out)

out:= out + 1 mod n

counter:= counter - 1

...

consume el item en nextc

until false

end;

parend

Estos si nos aseguramos que cada proceso manipula al mismo tiempo la variable counter.

73. Como mejora en cdigo anterior para aprovechar todos los elementos del buffer ? Que
problemas adicionales trae ?

-Estableciendo un contador, para que se queden n buffers y no n-1.

- Pueden aparecer problemas, si permitimos que ambos procesos manipulen al mismo tiempo la
variable contador

74. Define el problema de la seccin crtica nuevamente.

Consideramos un sistema que consta de n procesos en cooperacin, cada proceso tiene un
segmento de cdigo denominado seccin crtica, en el que el proceso puede estar leyendo
variables comunes, actualizando la tabla y escribiendo un fichero, etc. La caracterstica relevante
del sistema es que cuando un proceso se est ejecutando en su seccin crtica, ningn otro
proceso est autorizado a ejecutarse en su seccin crtica. As la ejecucin de secciones crticas
por procesos es mutuamente excluyente en el tiempo. El problema de la seccin crtica consiste en
disear un protocolo, que puedan utilizar los procesos para cooperar. Cada proceso tiene que
solicitar permiso para entrar en su S.C.

75. Defina que es la exclusin mutua.

Si un procedo Pi esta ejecutndose en su S.C. entonces ningn otro proceso puede estar
ejecutndose en esta.

- Si en un cruce de calles esta alguien cruzando la calle nadie ms podr cruzarla hasta que el otro
haya acabado de cruzar.

76. Defina que es progresin y realice una analoga con un cruce de calles.

Si no hay ningn proceso ejecutndose en su S.C. y hay algunos procesos que desearan entrar en
su S.C. entonces solamente aquellos procesos que no estn ejecutando su S.Residual pueden
participar en la decisin de cual entrar en la seccin crtica acto seguido y esta seleccin no
puede posponerse indefinidamente.

Supongamos que hay varios coches que estn esperando para cruzar y tienen los intermitentes
puestos y los hay que no, slo aquellos que tienen los intermitentes puestos tienen opcin a cruzar,
los otros tienen que esperar, poner los intermitentes y luego cruzar.

14

77. Defina que es la espera limitada y haz una analoga con lads calles.

Tiene que haber un lmite al n de veces que otros procesos reciben autorizacin para entrar en
sus S.C. despus de que un proceso haya realizado una solicitud para entrar en su S.C. y antes de
que esa solicitud sea satisfecha.

Si hay 4 coches en el cruce uno en cada calle no puede ser que uno cruce de izquierda a derecha
y luego otra vez de derecha a izquierda. Tiene que esperar a que los otros acaben.

78. Para tratar el problema de la S.C. como define los dos procesos intervinientes mediante
parbegin-parend y su entrada salida de la S.C. ?

-begin

declaracin de variables comunes

parbegin

P0

P1

parend

end

repeat

entry section

S.C.

exit section

seccin residual

until false

79. Que desventajas tiene el algoritmo 1 de deteccin de Peterson ?

Deja que dos procesos compartan una variable, Turn inicializada a a 0 (01). Si Turn= y, entonces el
proceso Pi tiene permiso para ejecutar su SC.

repeat

while turn= y do skip

S.C.

turn:= j

S. Residual

until false

No satisface el requerimiento de programacin, puesto que requiere una alternancia estricta de
procesos en la ejecucin de la S.C. Por ejemplo si Turn= 0 y P1 quiere entrar en su S.C, o puede
hacerlo, aunque P0 pueda encontrarse en su S.R.

80. Qu desventajas tiene el algoritmo II de Peterson ?

El problema del algoritmo Y es que no guarda el estado de cada proceso, sino solo que proceso
est autorizado para entrar a su S.C. Para remediar esto reemplazamos la variable Turn por Matriz:

var flag: array (0,1) of boolean

Los elementos de la tabla se inicializan a false. Si flag(i) es true, entonces el proceso est
ejecutandose en su S.C::

repeat

flag(i):= true


15
while flag(i) do skip

S.C:

flag(i):= false

S.R:

until false

Primero fijamos nuestro flag(i) en true, sealando que queremos entrar en nuestra S.C:
comprobamos que el otro proceso no quiere entrar en su S.C. tambin. En otro caso esperamos .
Entonces entramos en nuestra S.C., al salir de la S.C: fijamos nuestro flag en false, permitiendo
que otro proceso entre en su S.C. si est esperando.

DESVENTAJAS: satisface el requerimiento de exclusin mutua, pero no se da el requerimiento de
progresin.

T0: P0 fija flag(0): true

T1: P1 fija flag(1): true

Ahora P0 y P1 se encuentran en un bucle indefinido en sus while.

81. Funciona el algoritmo IV Indique donde se satisface la exclusin mutua, la progresin y la
espera limitada ?

Si, funciona correctamente.

Los procesos comparten 2 variables:

var flag: array (0..1) of boolean

turn: 0..1

Inicialmente play (0)= flag (1)= false y el valor de TURN es indiferente (0,1).

repeat

flag(i) := true

turn := j

while (flag(j) and turn =j do skip

S.C.

flag(i):=false

S.R.

until false

EXCLUSION MUTUA: Cada Pi entra en su S.C. solamente si flag(j)=false o bien turn=i.

PROGRESIN DE ESPERA LIMITADA: Observamos que a un proceso Pi se le puede impedir
solamente entrar en la S.C. si permanece atrapado en el bucle while con la condicin flag(j)=true y
turn = j; este es el nico bucle si Pj no est interesado en entrar en la S.C. , entonces flag(j)= false
y Pi puede entrar en la S.C. Si PJ ha fijado flas(j)=true y tambin est ejecutando su instruccin
while entonces o bien turn=i o bien turn=j. Si turn=i Pi entrar en la S.C., si turn=j Pj entrar en la
S.C.. No obstante una vez Pj salga de su S.C. restaurar flag(j)=false permitiendo a Pi entrar en su
S.C.

Si Pj tuviera que restaurar su flag(j) a true, tambin tendr que fijar turn=i. As puesto que Pi no
cambie el valor de la variable turn mientra est ejecutando la instruccin while, Pi entrar en la S.C.
(progresin) como mximo una entrada despus de Pj (espera limitada).

82. Cul es la idea del algoritmo de la panadera ? Para cuantos procesos sirve? Sirve para n
procesos.

Los procesos reciben un n de llegada. El n ms bajo pide primero. Si Pi y Pj reciben el mismo n
pasa al del n ms bajo.

La estructura de datos ms comn es:

16

var choosing : array [ 0, n-1 ) of boolean

number: array [ 0, n-1 ) of integer

Inicialmente estas estructuras de datos estn inicializadas a false y a 0 respectivamente. Por
conveniencia definimos la siguiente notacin:

.(a, b ) < (c, d) si a < c o si a = y b < a

.max (A0,...An-1) es un n K, t q K"Ai para y 0 0...n-1

repeat

choosing[i]:= true

number[i]:= max(number[0], number[1]...number[n-1]+1);

choosing[i]:=false

for j:=0 to n-1

do begin

while choosing[j] do skip

while number[j]"0 and (number[j], j )<(number[i], i) do skip

endL;

S.C.

number[i]:=0

S.R.

until false

83. Cuantas soluciones hardware conoce y porque son ms utilizadas ? Que desventajas
posee ? Que significa que son indivisibles ?

Muchas veces las maquinas ofrecen instrucciones de hardware especiales que permiten o bien
modificar y verificar el contenido de una palabra o bien intercambiar automticamente el contenido
de dos palabras. Sirve tambin para resolver el problema de la S.C.

84. Cmo se utiliza el Test&Set para entrar en una S.C. ?

var

waiting: array [0..n-1] of boolean

lock: boolean

j: 0..n-1

key: boolean

repeat

waiting(i)= true ;

key:= true

while waiting[i] and key do key:= test & set (locks)

wating[i]: false

S.C.

j:= y +1 mod n

while (j "1) and (not wraiting [j]= do j:=j+1 mod n

if j=i then lock:=false

17

else waiting [j]:= false

S.R.

until false

85. Cmo utilizara el Swap para entrar en una S.C. ?

Igual que la anterior pero con Swap.

86. Qu es un semforo ? Puede ser binario o cualquier otro tipo de datos ? De las primitivas
para l . El semforo es indivisible ? Porqu ?

Un semforo S es una variable entera que aparte de la inicializacin, puede ser accedida por
medio de dos operaciones indivisibles estandar P y V. Las definiciones clsicas son:

P(S): while S"0 do skip

s:=s-1

V(S): s:=s+1

La modificacin del calor entero de un semforo se ejecuta indivisiblemente y este es cuando un
proceso modifica el valor de un semforo, ningn otro proceso puede modificar simultneamente el
valor de ese mismo semforo. Se utilizan en el tratamiento de la S.C. para n procesos.

87. Cmo se utiliza para sincronizar procesos? Cmo soluciona los problemas del parbegin-
parend ?

Consideremos dos procesos en ejecucin concurrente: P1 con la instruccin S1, y P2 con la
instruccin S2. Supongamos que requerimos que S2 ejecutado nicamente despus de que S1
haya terminado. Debemos de dejar que P1 y P2 compartan un semforo, inicializado a 0 e insertar
las instrucciones

S1

V(synch)!( en el proceso P1)

P(synch)!(en el proceso P2)

S2

Puesto que synch est inicializado a cero, P2 ejecutar S1 solo despus que P1 haya invocado
V(synch) lo que ser despus de P1.

-La instruccin parbegin-parend es tan poderosa como FORK_JOIN si le aadimos semforos.

88. Qu problema tienen los semforos ? Cmo lo soluciona ?

En qu estado estn los procesos que se duermen cuando el semforo est en rojo?

Los procesos con semforos sufren una espera improductiva. Esto ocurre mientras un proceso se
encuentra en su S.C. . Cualquier otro proceso que trate de entrar en su S.C. tiene que mantenerse
en un bucle en el cdigo de entrada.

Para evitar la necesidad de espera improductiva, podemos modificar la definicin de las
operaciones P y V sobre semforos. Cuando un proceso ejecuta la operacin P y encuentra que el
color del semforo no es positivo tiene que esperar. No obstante en lugar de esperar
improductivamente , el suceso puede bloquearse a s mismo. La operacin sita el proceso en un
estado de espera. Entonces transfiere el control al planificador de la C.P.U., que selecciona otro
proceso para ejecutar de la cola para ejecucin.

89. Qu problemas tienen los semforos? Cmo los soluciona ?

Los procesos con semforos sufren una espera improductiva. Esto es que mientras un proceso se
encuentra en su seccin critica, cualquier otro proceso que trate de entrar en su seccin critica,
tiene que mantenerse en el bucle del cdigo de entrada.

Para evitar la espera improductiva, podemos modificar la definicin de las operaciones de P y V
sobre semforos.

Cuando un proceso ejecuta la operacin P y encuentra que el valor del semforo no es positivo
tiene que esperar.

18

No obstante en lugar de esperar improductivamente, el proceso puede bloquearse a si mismo. La
operacin sita al proceso en un estado de espera. Entonces transfiere el control al planificador de
la C.P.U., que selecciona otro proceso para ejecutar de la cola de ejecucin.

90. De el cdigo con semforos para un productor y tres consumidores. porque no utilizan
punteros para manejar el buffer? Aqu el buffer es circular o lineal?

Type item=...;

var buffer =...;

full,empty,mutex:semaphore;

nextp,nextc,item;

turn:0..3

begin

full:=0;

empty :=n;

mutex:=1

turn=1

parbegin

producer: repeat consumer1:repeat

... While turn#1 do skip;

produce un item P(full)

.. P(mutex)

P(empty) ...

P(mutex) Seccion Critica

.... Turn:=turn+1

Seccion Critica ...

.... V(mutex)

V(mutex) V(full)

V(full) ...

until false consume un item

...

until false

91. De el cdigo con semforos para dos lectores y tres escritores.

Mutex,wrt: semforo

Nro_lec:integer (cuenta el n de lectores)

(si nro_lec=1 o 2 entecos wrt=0 (rojo))

(si nro_lec=0 entonces wrt=1)

ESCRITOR LECTOR

P(mutex) P(mutex)

N_esc:=nro_esc+1 nro_lec=nrolec+1


19
V(mutex) if nro_lec=1 or

P(wrt) nro_esc=1 then P(wrt)

excribe V(mutex)

V(wrt) leer

P(mutex) P(mutex)

n_esc:=nr_esc-1 nro_lec=nro_lec-1

V(mutex) if nro_lec=0 and

nro_esc=0 then V(wrt)

V(mutex)

92. De el cdigo con semforos para 3 fil.

#define n 3 COGER

" i (i-1) mod n until

" d (1+1) mod n p(mutex)

" pe 0 estado[i]=ha;

" ha 1 comprobar(i);

" co 2 v(mutex)

Typedef int semaf; p(s[i])

semaf mutex =1 DEJAR

semaf s[n] p(mutex)

int estado[n] estado[i]=pe

FILOSOFO I comprobar[i]

Until comprobar[d]

while(t) { v(mutex)

pensar() COMPROBAR

coger(i) if (estado[i]==ha &&

comer() estado[i]!=co &&

dejar(i) estado[d]!=co)

estado[i]=co

v(s[i])

Buffer-limitado

Lleno=0;

Vacio=n;

Mutex=1 (verde)

parbegin

productor

consumidor

parend


20
End;

Productor: cuando consumidor

Repeat vacio=0 repeat

Produce item lleno=n P(lleno)

P(vacio) ! !debe parar P(mutex)

P(mutex) sc(quito item)

Sc(aade item) V(mutex)

V(mutex) V(vacio)

V(lleno) consumo item

Until false until false

EVITACION DEL ABRAZO MORTAL

ALGORISMO DEL BANQUERO

1. Si Solicitud(i)<= Necesidad, entonces pasar a paso 2. En otro caso tenemos un error, puesto que
el proceso ha excedido de la solicitud mxima.

2. Si solicitud(i)<=Disponible, entonces pasar a paso 3. En otro caso los recursos no estn
disponibles y p(i) tiene que esperar.

3. El sistema trata de asignar los recursos solicitados al proceso p(i), modificando el estado del
modo siguiente:

Disponible:=disponible-solicitud(i)

Asignado(i):=Asignado(i)+Solicitud(i);

Necesidad(i):=Necesidad(i)-Solicitud(i);

Si el estado de asignacin de recursos resultante es seguro la transaccin es completa y se
asignan los recursos al proceso p(i). No obstante, si le nuevo estado es inseguro, entonces p(i)
tiene que esperar a Solicitud(i) y se restaura el estado de asignacin de recursos anterior.

ALGORITMO DE SEGURIDAD


1. Sean Trabajo y Acabar vectores de longitud m y n resp. Inicializamos Trabajo a Disponible y
Acabar[i]=falso.

2. Hallar un i tal que:

a. Acabar[]=falso, y

b. Necesidad(i)<=Trabajo

si no existe tal y, ir a paso 4.

3. Trabajo:=Trabajo+Asignacion(i)

Acabar[i]=cierto

ir a paso 2.

4. Si acabar[i]= cierto para toda i , entonces el sistema se encuentra en estado seguro.

DETECCIN DEL ABRAZO MORTAL

ALGORITMO DE DETECCIN


1. Sean Trabajo y Acabar vectores de longitud m y n resp. Inicializamos Trabajo a Disponible. Si
Assignacio"0 entonces Acabar[i]=falso, en otro caso Acabar[i]=cierto.

2. Hallar un ndice i tal que:

21

a. Acabar[]=falso, y

b. Solicitud<=Trabajo

si no existe tal y, ir a paso 4.

3. Trabajo:=Trabajo+Asignacion(i)

Acabar[i]=cierto

ir a paso 2.

4. Si acabar[i]=falso para alguna i, entonces el sistema se encuentra en estado de abrazo mortal.
Adems, si Acabar[i]=falso entonces p(i) esta en abrazo mort

You might also like