<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://1984.lsi.us.es/wiki-ssoo/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jmf+bsk</id>
		<title>Wiki de Sistemas Operativos - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://1984.lsi.us.es/wiki-ssoo/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jmf+bsk"/>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php/Especial:Contribuciones/Jmf_bsk"/>
		<updated>2026-04-10T02:09:30Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol_reloj&amp;diff=1193</id>
		<title>Sol reloj</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol_reloj&amp;diff=1193"/>
				<updated>2011-06-07T16:09:33Z</updated>
		
		<summary type="html">&lt;p&gt;Jmf bsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;   _________________accesos a página____________________&lt;br /&gt;
     |_2_|_2_|_3_|_1_|_1_|_3_|_4_|_5_|_1_|_1_|_2_|_3_|_4_|&lt;br /&gt;
  ========================================================&lt;br /&gt;
   1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 5 | 5 | 5 | 5 | 5 | 5 |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 m---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
 a 2 |   |   | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 2 | 2 | &lt;br /&gt;
 r   |   |   |   |   |   |   |   |   |   |   |   |   |   |   &lt;br /&gt;
 c---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
 o 3 |   |   |   | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 4 |&lt;br /&gt;
 s   |   |   |   |   |   |   |   |   |   |   |   |   |   |  &lt;br /&gt;
  ---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
   4 |   |   |   |   |   |   | 4 | 4 | 4 | 4 | 4 | 3 | 3 |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
  ------------------------------------------------------------&amp;gt; t&lt;br /&gt;
&lt;br /&gt;
                    7&lt;br /&gt;
  tasa fallos pág = ---- = 0,615&lt;br /&gt;
                     13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Creo que la tasa es de 8/13, que coincidiría con el criterio de segunda oportunidad. --[[Usuario:Lcarlosp|Lcarlosp]] 12:26 6 jun 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
¿Está bien esta solución? Si el puntero señala el último marco utilizado (el 4), cuando viene el 5 habría que quitar el 4:&lt;br /&gt;
&lt;br /&gt;
  2(R=1)-&amp;gt;3(R=1)-&amp;gt;1(R=1)-&amp;gt;4(R=1)    Se implementa con una lista circular y el puntero señala el 4, &lt;br /&gt;
  ^                       |         luego da una vuelta cambiando todos los bits R a 0 y el primero&lt;br /&gt;
  |                       |         que se encuentra es de nuevo el 4, luego lo cambia por el 5.&lt;br /&gt;
  -------------------------         &lt;br /&gt;
--[[Usuario:Robertomartin|Robertomartin]] 08:29 7 jun 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
   _________________accesos a página____________________&lt;br /&gt;
     |_2_|_2_|_3_|_1_|_1_|_3_|_4_|_5_|_1_|_1_|_2_|_3_|_4_|&lt;br /&gt;
  ========================================================&lt;br /&gt;
   1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |&lt;br /&gt;
   R=| 1 | = | = | = | = | = | = | = | = | = | 1 | = | 0 |&lt;br /&gt;
 m---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
 a 2 |   |   | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 4 | &lt;br /&gt;
 r R=|   |   | 1 | = | = | = | = | 0 | = | = | = | 1 | 1 |   &lt;br /&gt;
 c---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
 o 3 |   |   |   | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |&lt;br /&gt;
 s R=|   |   |   | 1 | = | = | = | 0 | 1 | = | = | = | 0 |  &lt;br /&gt;
  ---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
   4 |   |   |   |   |   |   | 4 | 5 | 5 | 5 | 5 | 5 | 5 |&lt;br /&gt;
   R=|   |   |   |   |   |   | 1 | 1 | = | = | = | = | 0 |&lt;br /&gt;
  ------------------------------------------------------------&amp;gt; t&lt;br /&gt;
creo que esta seria la solucion correcta, el puntero, en las situaciones criticas, esta apuntando a 4 que como dice Roberto se recorre la lista poniendo los bits a 0 y despues se sustituye por el 5, con bit a 1; y en la otra situación critica, cuando llega el ultimo 4, el puntero apunta a 3 y repitiendo la misma operacion de antes se sustituye por el 3.--[[Usuario:Jmf bsk|Jmf bsk]] 16:09 7 jun 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Criterios_de_reemplazo|Volver]]&lt;/div&gt;</summary>
		<author><name>Jmf bsk</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Criterios_de_reemplazo&amp;diff=1192</id>
		<title>Criterios de reemplazo</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Criterios_de_reemplazo&amp;diff=1192"/>
				<updated>2011-06-07T15:51:30Z</updated>
		
		<summary type="html">&lt;p&gt;Jmf bsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La evaluación se hace en base a la ''tasa de fallos de página'', que es el número de fallos de página entre el número de accesos totales a página, con lo que su valor oscila en el rango [0,1].&lt;br /&gt;
El fallo de página se produce cuando se accede a una posición de memoria que esta descargada en disco.&lt;br /&gt;
&lt;br /&gt;
                     nº fallos pág.         &lt;br /&gt;
  tasa fallos pág = -----------------&lt;br /&gt;
                     nº accesos pág.&lt;br /&gt;
&lt;br /&gt;
También hay que tener en cuenta el contexto, si estamos en arranque en frío o en caliente, así como el cumplimiento del principio de localidad espacial y temporal. &lt;br /&gt;
&lt;br /&gt;
* Arranque en frío : se dan muchos fallos de página al principio, ya que los procesos se acaban de lanzar y ninguno esta cargado en memoria principal.&lt;br /&gt;
* Arranque en caliente : se suponen ya cargadas las páginas de los procesos en memoria principal.&lt;br /&gt;
&lt;br /&gt;
==Criterios==&lt;br /&gt;
 Ejemplo: Secuencia de acceso a página : 2,2,3,1,1,3,4,5,1,1,2,3,4&lt;br /&gt;
          Suponiendo arranque en frío   &lt;br /&gt;
                                         ___1____ 2_____3_____4___&lt;br /&gt;
                   memoria principal     |     |     |     |     |&lt;br /&gt;
                    de 4 marcos          |_____|_____|_____|_____|&lt;br /&gt;
&lt;br /&gt;
;1. Criterio de página óptima: Este es un criterio teórico que viene a establecer la cota inferior de la ''tasa de fallos de página''. Consiste en escoger la página que mayor tiempo va a tardar en utilizarse. Este es el mejor caso, pero se necesita conocimiento de futuro, de ahí que sea un criterio teórico.&lt;br /&gt;
*[[sol_1|Solución]]&lt;br /&gt;
;2. Criterio de página pésima: Este también es teórico y viene a establecer la cota superior de la ''tasa de fallos de página'', para ver lo peor que podría comportarse un criterio. Consiste en seleccionar la página que menor tiempo tardará en usarse.&lt;br /&gt;
*[[sol_2|Solución]]&lt;br /&gt;
;3. Criterio MRU('''M'''ost '''R'''ecently '''U'''sed): Se selecciona la última página   a la que se ha accedido. Podría implementarse con una LIFO por orden de acceso.&lt;br /&gt;
*[[sol_3|Solución]]&lt;br /&gt;
;4. Criterio de selección estocástica (aleatoria): Consiste en seleccionar una página al azar.&lt;br /&gt;
;5. Criterio por orden de carga FIFO: Se selecciona la página que más tiempo lleva cargada en memoria principal. Se implementa con una FIFO por orden de carga, es decir, a medida que se cargan en memoria principal las páginas son añadidas a la cola. Un problema es que suele suceder que las páginas más usadas tienden a estar mucho tiempo en memoria principal y este criterio va contra eso.&lt;br /&gt;
&lt;br /&gt;
*[[sol_5|Solución]]&lt;br /&gt;
&lt;br /&gt;
;6.Criterio NRU ('''N'''ot '''R'''ecently '''U'''sed): Ofrece dos bits para cada página:&lt;br /&gt;
* bit R : Se pone a 1 si la página ha sido usada (tanto para lectura como para escritura).&lt;br /&gt;
* bit M : Se pone a 1 si la página es modificada (escritura).&lt;br /&gt;
Para seleccionar la página victima buscamos que cumpla uno de los siguientes criterios de bits si no hay ninguno se utiliza el siguiente:&lt;br /&gt;
&lt;br /&gt;
# R=0, M=0 .            &lt;br /&gt;
# R=0, M=1 .&lt;br /&gt;
# R=1, M=0 .&lt;br /&gt;
# R=1, M=1 .&lt;br /&gt;
&lt;br /&gt;
Claramente deben realizarse periodos de puesta a 0, que no tienen porque ser simultáneamente en R y M.&lt;br /&gt;
&lt;br /&gt;
*[[sol_6|Solución]]&lt;br /&gt;
&lt;br /&gt;
;7.Criterio de 2ª oportunidad: Se trata de la unión del dos criterios, FIFO más NRU sin el bit M. Tampoco se pone R a 0 periódicamente. Consiste en recorrer la cola hasta encontrar una página con R a 0 (si no hay ninguno, pues al que le toque de la cola) y los procesos que vaya encontrando con R a 1 se les pone R a 0 y se les da una segunda oportunidad poniéndolos al final de la cola (al final de todo, el nuevo elemento llegado).&lt;br /&gt;
&lt;br /&gt;
*[[sol_7|Solución]]&lt;br /&gt;
&lt;br /&gt;
;8.Criterio LRU ('''L'''east '''R'''ecently '''U'''sed): Criterio en contraposición al MRU. En MRU elegíamos aquella página que hubiéramos utilizado más recientemente (la primera de la pila de acceso) mientras que en LRU elegimos como página víctima lo contrario: La última página de la pila. Funciona como una FIFO (por orden de acceso) en la cual se actualizan los valores, poniéndose al final si llegan elementos que ya había en cola.&lt;br /&gt;
&lt;br /&gt;
*[[sol_8|Solución]]&lt;br /&gt;
&lt;br /&gt;
;Criterio del reloj: Igual que el de 2º oportunidad pero mantenemos un puntero a la ultima pagina examinada; se implementa con una lista circular, y un puntero a la ultima pagina examinada, que sera el 1º elemento que examinaremos para el reemplazo.&lt;br /&gt;
&lt;br /&gt;
*[[sol_reloj|Solución]]&lt;br /&gt;
&lt;br /&gt;
;9.Criterio LFU ('''L'''east '''F'''recuently '''U'''sed): Se incrementa un contador de uso por cada acceso. La víctima será la que tenga el contador menor.&lt;br /&gt;
&lt;br /&gt;
*[[sol_9|Solución]]&lt;br /&gt;
&lt;br /&gt;
;10.Aproximación discreta LRU: Consiste en LRU + LFU. Se usa el bit R. Se itera periódicamente sobre la lista de páginas si R = 1 entonces aumento el contador y pongo R a 0.&lt;br /&gt;
&lt;br /&gt;
*[[sol_9.2|Solución]]&lt;br /&gt;
&lt;br /&gt;
;11.Sustitución por envejecimiento: Se emplea un registro R de n bits que se va desplazando hacia la derecha periódicamente, de forma que la página victima será la que tenga el menor valor en el registro R (en caso de empate se empleao otro criterio). Por cada acceso se pone a 1 el bit más significativo del registro R. Los LSB se pierden al desplazar.&lt;br /&gt;
&lt;br /&gt;
*[[sol_10|Solución]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En el [[Algoritmos de criterios de reemplazo|Portal de la comunidad]] se encuentran implementados algunos de los anteriores criterios como ayuda para ver su funcionamiento.&lt;br /&gt;
Creo que los algoritmos están bien (coinciden con las soluciones), pero si alguien decide probarlos no estaría mal que los revisase por encima. --[[Usuario:Alexrdp|Alexrdp]] 16:24 6 jun 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Jmf bsk</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_primer_ajuste&amp;diff=853</id>
		<title>Solución primer ajuste</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_primer_ajuste&amp;diff=853"/>
				<updated>2011-05-12T11:27:24Z</updated>
		
		<summary type="html">&lt;p&gt;Jmf bsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Solución: P1-&amp;gt;H1, P2-&amp;gt;H2, P3-&amp;gt;H3, P4-&amp;gt;H4, P5-&amp;gt;H4&lt;/div&gt;</summary>
		<author><name>Jmf bsk</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_mejor_ajuste_est%C3%A1tico&amp;diff=852</id>
		<title>Solución mejor ajuste estático</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_mejor_ajuste_est%C3%A1tico&amp;diff=852"/>
				<updated>2011-05-12T11:26:37Z</updated>
		
		<summary type="html">&lt;p&gt;Jmf bsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Solución: P1-&amp;gt;H1, P2-&amp;gt;H2, P3-&amp;gt;H1/H2, P4-&amp;gt;H4, P5-&amp;gt;H4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
P3 podrá ir a H1 o H2, la que se libere antes&lt;br /&gt;
P5 se pondrá esperara a que termine P4, se pondra a la cola.&lt;/div&gt;</summary>
		<author><name>Jmf bsk</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_1&amp;diff=778</id>
		<title>Solución ejercicio 1</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_1&amp;diff=778"/>
				<updated>2011-05-09T18:14:37Z</updated>
		
		<summary type="html">&lt;p&gt;Jmf bsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &lt;br /&gt;
      X = El proceso pasa a estado bloqueado.&lt;br /&gt;
      / = El proceso pasa a estado preparado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      |   |   | #1| #2| #3| #4| #5| #1|   |   |   | #2| #3| #4|   |   |   | #5| fin de ejecucion&lt;br /&gt;
    p1|   |   |---|---|---|---|---|---|   |   |   |---|---|---|   |   |   |---|   |   |&lt;br /&gt;
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
      | #1| #2|   |   |   |   |   |   | #3| #4| #1|   |   |   | #2| #3| #4| fin de ejecucion&lt;br /&gt;
    p2|---|---X   |   |   |   |   /   |---|---|---|   |   |   |---|---|---|   |   |   |&lt;br /&gt;
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
      |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
      0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
&lt;br /&gt;
El proceso P2 comienza su ejecucion y al hacer el down al semaforo s2 que vale 0 bloquea , ya que los semaforo es un sincronizacion bloqueante, p1 comienza su ejecucion hasta que se hace up(s2) y agota su ventana de tiempo y p2 puede comenzar su ejecucion.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:DvS 013|DvS 013]] 15:09 9 may 2011 (UTC) : había conflicto cuando le he dado a subir así que pongo debajo lo que yo estaba editando antes de que se subiera nada&lt;br /&gt;
 p1: &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 for (int i=0; i&amp;lt;2; i++) {  #1&lt;br /&gt;
    down(s1);               #2&lt;br /&gt;
    f1();                   #3&lt;br /&gt;
    if (get(s1) == 0)       #4&lt;br /&gt;
        up(s2);             #5&lt;br /&gt;
 } &amp;lt;/source&amp;gt; &lt;br /&gt;
 P2: &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 for (int i=0; i&amp;lt;2; i++) {   #1&lt;br /&gt;
    down(s2);               #2&lt;br /&gt;
    f2();                   #3&lt;br /&gt;
    up(s1);                 #4&lt;br /&gt;
 } &amp;lt;/source&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
              X : se ejecuta el planificador&lt;br /&gt;
              &amp;gt; : fin del proceso&lt;br /&gt;
             #nº : número de insturcción&lt;br /&gt;
 &lt;br /&gt;
        |i2=0       |i1=0       |    i2=1   |    i1=1   |           |       i2=2|i1=2   |&lt;br /&gt;
        |   |   |   | #1| #2| #3|   |   |   | #4| #1| #2| #3| #4| #5|   |   |   | #1|   |&lt;br /&gt;
 P1     |   |   |   |---|---|---|   |   |   |---|---|---|---|---|---|   |   |   |---&amp;gt;   |&lt;br /&gt;
 s1     | 1             | 0     | 1                 | 0                 | 1         |   |&lt;br /&gt;
        | #1| #2| #3|   |   |   | #4| #1| #2|   |   |   |   |   |   | #3| #4| #1|   |   |&lt;br /&gt;
 P2     |---|---|---|   |   |   |---|---|---|   |   |   |   |   |   |---|---|---&amp;gt;   |   |&lt;br /&gt;
 s2     | 1 | 0                                                 | 0 |   |   |   |   |   |&lt;br /&gt;
 planif X   |   |   X   |   |   X   |   |   X   |   |   X   |   |   X   |   |   X   X   |&lt;br /&gt;
        |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
        0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nueva solución:&lt;br /&gt;
Con respecto a la primera, una simple aclaración --[[Usuario:David|David]] 15:26 9 may 2011 (UTC)&lt;br /&gt;
      X = El proceso pasa a estado bloqueado.&lt;br /&gt;
      / = El proceso pasa a estado preparado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      |   |   | #1| #2| #3| #4| #5| #1|   |   |   | #2| #3| #4|   | #5| #1|   | &lt;br /&gt;
    p1|   |   |---|---|---|---|---|---|   |   |   |---|---|---|   |---|---|   |   |   |&lt;br /&gt;
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
      | #1| #2|   |   |   |   |   |   | #3| #4| #1|   |   |   | #2|   |   | #3| #4| #1|&lt;br /&gt;
    p2|---|---X   |   |   |   |   /   |---|---|---|   |   |   |---X   /   |---|---|---|&lt;br /&gt;
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
      |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
      0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
&lt;br /&gt;
Como aclaración: cuando se realiza el up de un semáforo que vale 0, si hay procesos en su lista de semáforos, se coge el primero y se pasa a estado preparado, valiendo el contador del semáforo 0, por eso en el instante 15 al hacer el down de s2 vuelve a bloquear.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Josmorgav1|Josmorgav1]] 15:32 9 may 2011 (UTC)&lt;br /&gt;
Una aclaración al compañero David Martin, el contador de semáforo s2, en un principio vale 0, y como el primer proceso en ejecutar es P2, al hacer el down(s2); bloquea, creo que en tu solución consideras que s2 vale 1.&lt;br /&gt;
Desde mi punto de vista, la solución por ahora más correcta, es la del compañero David Suárez&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Jherrera|Jherrera]] &lt;br /&gt;
Con respecto a la solución de Dvs no es correcta a partir del instante 2, ya que interpreto que el proceso 2 ejecuta la instrucción nº3 en vez de pasar a bloqueado. He realizado el ejercicio al igual que David (última solución propuesta) y pienso que está totalmente correcto.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 16:55 9 may 2011 (UTC)&lt;br /&gt;
La última solución propuesta coincide con la que me ha salido a mí, espero que esté bien.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Jmf bsk|Jmf bsk]] 18:13 9 may 2011 (UTC)&lt;br /&gt;
No habria que ejecutar otra vez la instruccion down, cuando ésta ha bloqueado anteriormente, por ejemplo en el tiempo 8-9 habria que volver a comprobar si el semaforo esta a 1 ¿no? y si es asi ponerlo a 0.&lt;/div&gt;</summary>
		<author><name>Jmf bsk</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_1&amp;diff=777</id>
		<title>Solución ejercicio 1</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_1&amp;diff=777"/>
				<updated>2011-05-09T18:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jmf bsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &lt;br /&gt;
      X = El proceso pasa a estado bloqueado.&lt;br /&gt;
      / = El proceso pasa a estado preparado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      |   |   | #1| #2| #3| #4| #5| #1|   |   |   | #2| #3| #4|   |   |   | #5| fin de ejecucion&lt;br /&gt;
    p1|   |   |---|---|---|---|---|---|   |   |   |---|---|---|   |   |   |---|   |   |&lt;br /&gt;
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
      | #1| #2|   |   |   |   |   |   | #3| #4| #1|   |   |   | #2| #3| #4| fin de ejecucion&lt;br /&gt;
    p2|---|---X   |   |   |   |   /   |---|---|---|   |   |   |---|---|---|   |   |   |&lt;br /&gt;
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
      |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
      0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
&lt;br /&gt;
El proceso P2 comienza su ejecucion y al hacer el down al semaforo s2 que vale 0 bloquea , ya que los semaforo es un sincronizacion bloqueante, p1 comienza su ejecucion hasta que se hace up(s2) y agota su ventana de tiempo y p2 puede comenzar su ejecucion.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:DvS 013|DvS 013]] 15:09 9 may 2011 (UTC) : había conflicto cuando le he dado a subir así que pongo debajo lo que yo estaba editando antes de que se subiera nada&lt;br /&gt;
 p1: &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 for (int i=0; i&amp;lt;2; i++) {  #1&lt;br /&gt;
    down(s1);               #2&lt;br /&gt;
    f1();                   #3&lt;br /&gt;
    if (get(s1) == 0)       #4&lt;br /&gt;
        up(s2);             #5&lt;br /&gt;
 } &amp;lt;/source&amp;gt; &lt;br /&gt;
 P2: &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 for (int i=0; i&amp;lt;2; i++) {   #1&lt;br /&gt;
    down(s2);               #2&lt;br /&gt;
    f2();                   #3&lt;br /&gt;
    up(s1);                 #4&lt;br /&gt;
 } &amp;lt;/source&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
              X : se ejecuta el planificador&lt;br /&gt;
              &amp;gt; : fin del proceso&lt;br /&gt;
             #nº : número de insturcción&lt;br /&gt;
 &lt;br /&gt;
        |i2=0       |i1=0       |    i2=1   |    i1=1   |           |       i2=2|i1=2   |&lt;br /&gt;
        |   |   |   | #1| #2| #3|   |   |   | #4| #1| #2| #3| #4| #5|   |   |   | #1|   |&lt;br /&gt;
 P1     |   |   |   |---|---|---|   |   |   |---|---|---|---|---|---|   |   |   |---&amp;gt;   |&lt;br /&gt;
 s1     | 1             | 0     | 1                 | 0                 | 1         |   |&lt;br /&gt;
        | #1| #2| #3|   |   |   | #4| #1| #2|   |   |   |   |   |   | #3| #4| #1|   |   |&lt;br /&gt;
 P2     |---|---|---|   |   |   |---|---|---|   |   |   |   |   |   |---|---|---&amp;gt;   |   |&lt;br /&gt;
 s2     | 1 | 0                                                 | 0 |   |   |   |   |   |&lt;br /&gt;
 planif X   |   |   X   |   |   X   |   |   X   |   |   X   |   |   X   |   |   X   X   |&lt;br /&gt;
        |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
        0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nueva solución:&lt;br /&gt;
Con respecto a la primera, una simple aclaración --[[Usuario:David|David]] 15:26 9 may 2011 (UTC)&lt;br /&gt;
      X = El proceso pasa a estado bloqueado.&lt;br /&gt;
      / = El proceso pasa a estado preparado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      |   |   | #1| #2| #3| #4| #5| #1|   |   |   | #2| #3| #4|   | #5| #1|   | &lt;br /&gt;
    p1|   |   |---|---|---|---|---|---|   |   |   |---|---|---|   |---|---|   |   |   |&lt;br /&gt;
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
      | #1| #2|   |   |   |   |   |   | #3| #4| #1|   |   |   | #2|   |   | #3| #4| #1|&lt;br /&gt;
    p2|---|---X   |   |   |   |   /   |---|---|---|   |   |   |---X   /   |---|---|---|&lt;br /&gt;
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
      |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
      0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
&lt;br /&gt;
Como aclaración: cuando se realiza el up de un semáforo que vale 0, si hay procesos en su lista de semáforos, se coge el primero y se pasa a estado preparado, valiendo el contador del semáforo 0, por eso en el instante 15 al hacer el down de s2 vuelve a bloquear.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Josmorgav1|Josmorgav1]] 15:32 9 may 2011 (UTC)&lt;br /&gt;
Una aclaración al compañero David Martin, el contador de semáforo s2, en un principio vale 0, y como el primer proceso en ejecutar es P2, al hacer el down(s2); bloquea, creo que en tu solución consideras que s2 vale 1.&lt;br /&gt;
Desde mi punto de vista, la solución por ahora más correcta, es la del compañero David Suárez&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Jherrera|Jherrera]] &lt;br /&gt;
Con respecto a la solución de Dvs no es correcta a partir del instante 2, ya que interpreto que el proceso 2 ejecuta la instrucción nº3 en vez de pasar a bloqueado. He realizado el ejercicio al igual que David (última solución propuesta) y pienso que está totalmente correcto.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 16:55 9 may 2011 (UTC)&lt;br /&gt;
La última solución propuesta coincide con la que me ha salido a mí, espero que esté bien.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Jmf bsk|Jmf bsk]] 18:13 9 may 2011 (UTC)&lt;br /&gt;
No habria que ejecutar otra vez la instruccion down cuando esta ha bloqueado anteriormente, por ejemplo en el tiempo 8-9 habria que volver a comprobar si el semaforo esta a 1 ¿no? y si es asi ponerlo a 0.&lt;/div&gt;</summary>
		<author><name>Jmf bsk</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Algoritmo_para_averiguar_interbloqueo&amp;diff=679</id>
		<title>Algoritmo para averiguar interbloqueo</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Algoritmo_para_averiguar_interbloqueo&amp;diff=679"/>
				<updated>2011-04-27T14:15:18Z</updated>
		
		<summary type="html">&lt;p&gt;Jmf bsk: Página nueva: &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;                         int nRecursos;             int nProcesos;             List&amp;lt;List&amp;lt;int&amp;gt;&amp;gt; asignados = new List&amp;lt;List&amp;lt;int&amp;gt;&amp;gt;();             List&amp;lt;List&amp;lt;int&amp;gt;&amp;gt; max...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;            &lt;br /&gt;
            int nRecursos;&lt;br /&gt;
            int nProcesos;&lt;br /&gt;
            List&amp;lt;List&amp;lt;int&amp;gt;&amp;gt; asignados = new List&amp;lt;List&amp;lt;int&amp;gt;&amp;gt;();&lt;br /&gt;
            List&amp;lt;List&amp;lt;int&amp;gt;&amp;gt; maximos = new List&amp;lt;List&amp;lt;int&amp;gt;&amp;gt;();&lt;br /&gt;
            List&amp;lt;int&amp;gt; disponibles = new List&amp;lt;int&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
            Random r = new Random();&lt;br /&gt;
&lt;br /&gt;
            //Generamos las matrices aleatoriamente&lt;br /&gt;
            for (int j1 = 0; j1 &amp;lt; nRecursos;j1++)&lt;br /&gt;
            {&lt;br /&gt;
                disponibles.Add(r.Next(0, nRecursos));                &lt;br /&gt;
            }&lt;br /&gt;
            for (int i = 0; i &amp;lt; nProcesos; i++)&lt;br /&gt;
            {&lt;br /&gt;
                asignados.Add(new List&amp;lt;int&amp;gt;());&lt;br /&gt;
                maximos.Add(new List&amp;lt;int&amp;gt;());&lt;br /&gt;
                for (int j = 0; j &amp;lt; nRecursos; j++)&lt;br /&gt;
                {&lt;br /&gt;
                    asignados[i].Add(r.Next(0, nRecursos));&lt;br /&gt;
                    maximos[i].Add(r.Next(0, nRecursos));&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
          &lt;br /&gt;
            bool aux = true;&lt;br /&gt;
            for (int proc = 0; proc &amp;lt; nProcesos; proc++)&lt;br /&gt;
            {&lt;br /&gt;
                aux = true;&lt;br /&gt;
                for (int recur = 0; recur &amp;lt; nRecursos; recur++)&lt;br /&gt;
                {&lt;br /&gt;
                    // comprobamos que haya recursos suficientes&lt;br /&gt;
                    aux = (maximos[proc][recur] - asignados[proc][recur] - disponibles[recur]) &amp;lt;= 0;&lt;br /&gt;
                    if (!aux)&lt;br /&gt;
                    {&lt;br /&gt;
                        break;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                if (aux)&lt;br /&gt;
                {&lt;br /&gt;
                    añadirYeliminar(ref disponibles, ref asignados, proc);&lt;br /&gt;
                    maximos.RemoveAt(proc);&lt;br /&gt;
                    nProcesos--;&lt;br /&gt;
                    proc = -1;&lt;br /&gt;
                    if (nProcesos == 0)&lt;br /&gt;
                    {&lt;br /&gt;
                        Console.WriteLine(&amp;quot;Es estado seguro&amp;quot;);&lt;br /&gt;
                        Console.ReadLine();&lt;br /&gt;
                        return;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            Console.WriteLine(&amp;quot;Es interbloqueo&amp;quot;);&lt;br /&gt;
            Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private static void añadirYeliminar(ref List&amp;lt;int&amp;gt; disponibles, ref List&amp;lt;List&amp;lt;int&amp;gt;&amp;gt; asignados, int proc)&lt;br /&gt;
        {&lt;br /&gt;
            for (int k = 0; k &amp;lt; asignados[proc].Count; k++)&lt;br /&gt;
            {&lt;br /&gt;
                disponibles[k] += asignados[proc][k];&lt;br /&gt;
            }&lt;br /&gt;
            asignados.RemoveAt(proc);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta echo en C# faltaria solamente leer por consola el numero de procesos y de recursos que queremos testear, o introduccirlos manualmente&lt;/div&gt;</summary>
		<author><name>Jmf bsk</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=P%C3%A1gina_Principal&amp;diff=678</id>
		<title>Página Principal</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=P%C3%A1gina_Principal&amp;diff=678"/>
				<updated>2011-04-27T14:02:38Z</updated>
		
		<summary type="html">&lt;p&gt;Jmf bsk: /* Interbloqueo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bienvenido al wiki de la asignatura de Sistemas Operativos del departamento de Lenguajes y Sistemas Informáticos de la Universidad de Sevilla. ¡Regístrate y contribuye!&lt;br /&gt;
&lt;br /&gt;
= Unidades didácticas =&lt;br /&gt;
&lt;br /&gt;
A continuación encontrarás las unidades didácticas que forman parte de la asignatura.&lt;br /&gt;
&lt;br /&gt;
== Introducción a los Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* [[Qué es un Sistema Operativo|Qué es un sistema operativo]]&lt;br /&gt;
* [[Introducción histórica|Una introducción histórica a los sistemas operativos]]&lt;br /&gt;
* [[Tipos de Sistemas Operativos|Tipos de sistemas operativos]]&lt;br /&gt;
&lt;br /&gt;
== Fundamentos de Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* [[Conceptos básicos|Conceptos básicos]]&lt;br /&gt;
* [[Componentes básicos de un sistema operativo|Componentes básicos de un sistema operativo]]&lt;br /&gt;
* [[Llamadas al sistema|Llamadas al sistema]]&lt;br /&gt;
* [[Modelos de Diseño de Sistemas Operativos|Modelos de diseño de sistemas operativos]]&lt;br /&gt;
* [[Ejercicios fundamentos Sistemas Operativos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Procesos ==&lt;br /&gt;
* [[Multiprogramación|La multiprogramación]]&lt;br /&gt;
* [[Estados de los procesos|Estados de los procesos]]&lt;br /&gt;
* [[Planificador de procesos|El planificador de procesos]]&lt;br /&gt;
* [[Comportamiento de los procesos|El comportamiento de los procesos según el planificador]]&lt;br /&gt;
* [[Bloque de control de procesos|El bloque de control del proceso]]&lt;br /&gt;
* [[Conmutación de procesos|La conmutación de procesos]]&lt;br /&gt;
* [[Hilos|Hilos]]&lt;br /&gt;
* [[Ejercicios Procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Planificación de Procesos ==&lt;br /&gt;
* [[Planificación de procesos|La planificación de procesos]]&lt;br /&gt;
* [[Índices de evaluación|Índices de evaluación de la planificación de procesos]]&lt;br /&gt;
* [[Criterios de planificación|Criterios de planificación]]&lt;br /&gt;
* [[Planificadores de sistemas operativos existentes|Planificadores de sistemas operativos existentes]]&lt;br /&gt;
* [[Ejercicios planificación de procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Otros aspectos relacionados con la planificación de procesos ==&lt;br /&gt;
&lt;br /&gt;
* [[Planificación de procesos de tiempo real|La planificación de procesos de tiempo real]]&lt;br /&gt;
* [[Planificación en sistemas multiprocesadores|La planificación de procesos en sistemas multiprocesadores]]&lt;br /&gt;
* [[Ejercicios otros aspectos de la planificación|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Concurrencia de procesos ==&lt;br /&gt;
&lt;br /&gt;
* [[Concurrencia de procesos|Concurrencia de procesos]]&lt;br /&gt;
* [[Mecanismos de sincronización|Control optimista y pesimista de la concurrencia]]&lt;br /&gt;
* [[Cerrojos|Cerrojos]]&lt;br /&gt;
* [[Ejercicio de concurrencia de procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Semáforos y comunicación ==&lt;br /&gt;
&lt;br /&gt;
* [[Semáforos|Semáforos]]&lt;br /&gt;
* [[Monitores|Monitores]]&lt;br /&gt;
* [[Mensajería|Mensajería]]&lt;br /&gt;
&lt;br /&gt;
== Interbloqueo ==&lt;br /&gt;
&lt;br /&gt;
* [[Definición de interbloqueo|Definición]]&lt;br /&gt;
* [[Condiciones para el interbloqueo y estrategias de resolución|Modelado y Estrategias]]&lt;br /&gt;
* [[Algoritmo para averiguar interbloqueo]]&lt;/div&gt;</summary>
		<author><name>Jmf bsk</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer3-planif-procesos&amp;diff=504</id>
		<title>Sol-ejer3-planif-procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer3-planif-procesos&amp;diff=504"/>
				<updated>2011-03-22T23:12:17Z</updated>
		
		<summary type="html">&lt;p&gt;Jmf bsk: /* Dudas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ejercicio 3 =&lt;br /&gt;
&lt;br /&gt;
 Datos del problema:&lt;br /&gt;
                         | Pa | Pb | Pc  | Pd |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
                      H0 | 0  | 1  |  2  | 3  |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
                      t  | 4  | 4  |  12 | 12 |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
 &lt;br /&gt;
                  Pa y Pb bloquean por operación de E/S tras 1 unidad de ejecución&lt;br /&gt;
 &lt;br /&gt;
                       &amp;lt; = indica el instante de lanzamiento del proceso&lt;br /&gt;
                       &amp;gt; = indica el instante de finalización del proceso&lt;br /&gt;
                       X = se ejecuta el código del planificador&lt;br /&gt;
 &lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pa    &amp;lt;---|   |   |   |   |   |---|   |   |   |   |   |   |   |   |   |---|   |---|   |&lt;br /&gt;
 Pb    |   &amp;lt;---|   |   |   |   |   |---|   |   |   |   |   |   |   |   |   |---|   |---|&lt;br /&gt;
 Pc    |   |   &amp;lt;---|---|   |   |   |   |---|---|---|---|   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pd    |   |   |   &amp;lt;   |---|---|   |   |   |   |   |   |---|---|---|---|   |   |   |   |&lt;br /&gt;
 Plnf  X   X   X   |   X   |   X   X   X   |   |   |   X   |   |   |   X   |   |   |   X&lt;br /&gt;
       |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
       0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
 &lt;br /&gt;
 ... continuación ...&lt;br /&gt;
 &lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pa    |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pb    |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pc    |---|---|---|---|   |   |   |   |---|---|   |   |&lt;br /&gt;
 Pd    |   |   |   |   |---|---|---|---|   |   |---|---|&lt;br /&gt;
 Plnf  |   |   |   |   X   |   |   |   X   |   X   |   | &lt;br /&gt;
       |___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
       20  21  22  23  24  25  26  27  28  29  30  31  32&lt;br /&gt;
 &lt;br /&gt;
 Cálculo de índices:&lt;br /&gt;
 &lt;br /&gt;
                         | Pa | Pb |  Pc | Pd |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
                      t  | 4  | 4  |  12 | 12 |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
                      T  | 19 | 20 |  30 | 32 |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
                    T/t  |4.75| 5  | 2.5 |2.66|&lt;br /&gt;
                     --------------------------&lt;br /&gt;
&lt;br /&gt;
Explicación:&lt;br /&gt;
&lt;br /&gt;
Todos los procesos empiezan inicialmente en la segunda cola. Pa y Pb reciben una oportunidad de ejecución sin consumir su quantum debido a bloqueo, por tanto, permanecen en la segunda cola. Pc y Pd consumen todo su quantum, por tanto, promocionan a la primera cola. Los procesos Pa y Pb se ejecutan otra vez, pues los procesos que se encuentran en la segunda cola reciben dos oportunidades de ejecución. Tras esto, los procesos recién ascendidos a la primera cola, que son Pc y Pd, reciben su oportunidad de ejecución, en este caso con quantum de 4 unidades. De nuevo, se le da oportunidad de ejecución a los procesos de la segunda cola, que terminan su ejecución. Como no hay más procesos en la segunda cola, se le da una oportunidad de ejecución a los de la primera. --[[Usuario:Pneira|Pneira]] 18:36 22 mar 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
= Dudas =&lt;br /&gt;
&lt;br /&gt;
No entiendo por qué en la unidad de tiempo 18 no aparece el proceso c y d y posteriormente a b c y d.Esto es a lo que me refiero --[[Usuario:Jherrera|Jherrera]]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pa    |   |   |   |   |   |   |   |   |---&amp;gt;   |   |   |&lt;br /&gt;
 Pb    |   |   |   |   |   |   |   |   |   |---&amp;gt;   |   |&lt;br /&gt;
 Pc    |---|---|---|---|   |   |   |   |   |   |-------&amp;gt;&lt;br /&gt;
 Pd    |   |   |   |   |---|---|---|---|   |   |   |   |------&amp;gt;&lt;br /&gt;
 Plnf  |   |   |   |   X   |   |   |   X   |   X   |   X &lt;br /&gt;
       |___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
       18  19  20  21  22  23  24  25  26  27  28  29  30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Solucion: Por que en la 2ª cola estan los procesos A y B, por que nunca consumen los quantums, y la 2ª cola siempre se itera 2 veces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
¿No se supone que la cola 1 posee mayor prioridad que la 2? siendo asi, mientras C y D esten en la 1ª cola no se le debería volver a dar oportunidad a la cola 2 no?¿--[[Usuario:DvS 013|DvS 013]]&lt;br /&gt;
&lt;br /&gt;
Creo que se lo que dices. Aunque C y D esten en la primera cola, se pasa a la segunda. Esto es porque la primera cola no tiene mas prioridad, sino solo un quantum más ancho. Entonces se mira la primera cola, luego 2 veces la segunda, y vuelta a empezar --[[Usuario:PCamino|PCamino]]&lt;br /&gt;
&lt;br /&gt;
El problema creo yo es que el enunciado ha sido modificado de esta mañana para acá, porque yo también hice el ejercicio para subirlo a la wiki, pero se me adelantaron, y esta mañana en el enunciado ponia que la cola 1 tenia más prioridad que la 2, y ademas no ponia el tiempo que estaban en estado bloqueado los procesos, ahora si lo pone, y no pone lo de la prioridad. Yo estoy de acuerdo con la solucion propuesta arriba. --[[Usuario:Josmorgav1|Josmorgav1]] 21:42 22 mar 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Vaya caos! Podemos poner ambos ejercicios --[[Usuario:PCamino|PCamino]]&lt;br /&gt;
&lt;br /&gt;
Con respecto  a la prioridad de las colas multinivel realimentadas, creo que carecen de prioridad, simplemente basta con saber cuantas veces se ejecutan cada una y en cual de ellas se meten los procesos que van llegando.--[[Usuario:Jmf bsk|Jmf bsk]] 23:10 22 mar 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Jmf bsk</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer3-planif-procesos&amp;diff=503</id>
		<title>Sol-ejer3-planif-procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer3-planif-procesos&amp;diff=503"/>
				<updated>2011-03-22T23:10:56Z</updated>
		
		<summary type="html">&lt;p&gt;Jmf bsk: /* Dudas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ejercicio 3 =&lt;br /&gt;
&lt;br /&gt;
 Datos del problema:&lt;br /&gt;
                         | Pa | Pb | Pc  | Pd |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
                      H0 | 0  | 1  |  2  | 3  |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
                      t  | 4  | 4  |  12 | 12 |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
 &lt;br /&gt;
                  Pa y Pb bloquean por operación de E/S tras 1 unidad de ejecución&lt;br /&gt;
 &lt;br /&gt;
                       &amp;lt; = indica el instante de lanzamiento del proceso&lt;br /&gt;
                       &amp;gt; = indica el instante de finalización del proceso&lt;br /&gt;
                       X = se ejecuta el código del planificador&lt;br /&gt;
 &lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pa    &amp;lt;---|   |   |   |   |   |---|   |   |   |   |   |   |   |   |   |---|   |---|   |&lt;br /&gt;
 Pb    |   &amp;lt;---|   |   |   |   |   |---|   |   |   |   |   |   |   |   |   |---|   |---|&lt;br /&gt;
 Pc    |   |   &amp;lt;---|---|   |   |   |   |---|---|---|---|   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pd    |   |   |   &amp;lt;   |---|---|   |   |   |   |   |   |---|---|---|---|   |   |   |   |&lt;br /&gt;
 Plnf  X   X   X   |   X   |   X   X   X   |   |   |   X   |   |   |   X   |   |   |   X&lt;br /&gt;
       |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
       0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
 &lt;br /&gt;
 ... continuación ...&lt;br /&gt;
 &lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pa    |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pb    |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pc    |---|---|---|---|   |   |   |   |---|---|   |   |&lt;br /&gt;
 Pd    |   |   |   |   |---|---|---|---|   |   |---|---|&lt;br /&gt;
 Plnf  |   |   |   |   X   |   |   |   X   |   X   |   | &lt;br /&gt;
       |___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
       20  21  22  23  24  25  26  27  28  29  30  31  32&lt;br /&gt;
 &lt;br /&gt;
 Cálculo de índices:&lt;br /&gt;
 &lt;br /&gt;
                         | Pa | Pb |  Pc | Pd |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
                      t  | 4  | 4  |  12 | 12 |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
                      T  | 19 | 20 |  30 | 32 |&lt;br /&gt;
                     --------------------------&lt;br /&gt;
                    T/t  |4.75| 5  | 2.5 |2.66|&lt;br /&gt;
                     --------------------------&lt;br /&gt;
&lt;br /&gt;
Explicación:&lt;br /&gt;
&lt;br /&gt;
Todos los procesos empiezan inicialmente en la segunda cola. Pa y Pb reciben una oportunidad de ejecución sin consumir su quantum debido a bloqueo, por tanto, permanecen en la segunda cola. Pc y Pd consumen todo su quantum, por tanto, promocionan a la primera cola. Los procesos Pa y Pb se ejecutan otra vez, pues los procesos que se encuentran en la segunda cola reciben dos oportunidades de ejecución. Tras esto, los procesos recién ascendidos a la primera cola, que son Pc y Pd, reciben su oportunidad de ejecución, en este caso con quantum de 4 unidades. De nuevo, se le da oportunidad de ejecución a los procesos de la segunda cola, que terminan su ejecución. Como no hay más procesos en la segunda cola, se le da una oportunidad de ejecución a los de la primera. --[[Usuario:Pneira|Pneira]] 18:36 22 mar 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
= Dudas =&lt;br /&gt;
&lt;br /&gt;
No entiendo por qué en la unidad de tiempo 18 no aparece el proceso c y d y posteriormente a b c y d.Esto es a lo que me refiero --[[Usuario:Jherrera|Jherrera]]:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
 Pa    |   |   |   |   |   |   |   |   |---&amp;gt;   |   |   |&lt;br /&gt;
 Pb    |   |   |   |   |   |   |   |   |   |---&amp;gt;   |   |&lt;br /&gt;
 Pc    |---|---|---|---|   |   |   |   |   |   |-------&amp;gt;&lt;br /&gt;
 Pd    |   |   |   |   |---|---|---|---|   |   |   |   |------&amp;gt;&lt;br /&gt;
 Plnf  |   |   |   |   X   |   |   |   X   |   X   |   X &lt;br /&gt;
       |___|___|___|___|___|___|___|___|___|___|___|___|&lt;br /&gt;
       18  19  20  21  22  23  24  25  26  27  28  29  30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Solucion: Por que en la 2ª cola estan los procesos A y B, por que nunca consumen los quantums, y la 2ª cola siempre se itera 2 veces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
¿No se supone que la cola 1 posee mayor prioridad que la 2? siendo asi, mientras C y D esten en la 1ª cola no se le debería volver a dar oportunidad a la cola 2 no?¿--[[Usuario:DvS 013|DvS 013]]&lt;br /&gt;
&lt;br /&gt;
Creo que se lo que dices. Aunque C y D esten en la primera cola, se pasa a la segunda. Esto es porque la primera cola no tiene mas prioridad, sino solo un quantum más ancho. Entonces se mira la primera cola, luego 2 veces la segunda, y vuelta a empezar --[[Usuario:PCamino|PCamino]]&lt;br /&gt;
&lt;br /&gt;
El problema creo yo es que el enunciado ha sido modificado de esta mañana para acá, porque yo también hice el ejercicio para subirlo a la wiki, pero se me adelantaron, y esta mañana en el enunciado ponia que la cola 1 tenia más prioridad que la 2, y ademas no ponia el tiempo que estaban en estado bloqueado los procesos, ahora si lo pone, y no pone lo de la prioridad. Yo estoy de acuerdo con la solucion propuesta arriba. --[[Usuario:Josmorgav1|Josmorgav1]] 21:42 22 mar 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Vaya caos! Podemos poner ambos ejercicios --[[Usuario:PCamino|PCamino]]&lt;br /&gt;
&lt;br /&gt;
Con respecto a lo de porque no se ejecuta otra vez el proceso a y b, creo que es porque su tiempo de ejecucion es 4, y por eso no aparece a partir del t = 18, porque se han terminado, y con respecto a la prioridad de las colas multinivel realimentadas, creo que carecen de prioridad, simplemente basta con saber cuantas veces se ejecutan cada una y en cual de ellas se meten los procesos que van llegando.--[[Usuario:Jmf bsk|Jmf bsk]] 23:10 22 mar 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Jmf bsk</name></author>	</entry>

	</feed>