<?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=Jorcalmar</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=Jorcalmar"/>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php/Especial:Contribuciones/Jorcalmar"/>
		<updated>2026-05-11T17:02:59Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mejoras_de_tiempos_de_desplazamiento&amp;diff=1090</id>
		<title>Mejoras de tiempos de desplazamiento</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mejoras_de_tiempos_de_desplazamiento&amp;diff=1090"/>
				<updated>2011-06-06T15:58:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;1. FCFS (por orden de llegada): Las peticiones se atienden en el mismo orden en que se reciben.&lt;br /&gt;
&lt;br /&gt;
;2. SSTF (por menor tiempo de búsqueda): Ordeno todo y cojo el lote.&lt;br /&gt;
&lt;br /&gt;
;3. SCAN (criterio del ascensor):&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
;4. NSCAN: Dentro de cada lote de la lista de accesos, escogemos aquellos sectores que nos permita ascender y descender en la tabla, dando prioridad a los sectores que se encuentren en la parte central de la pista.&lt;br /&gt;
&lt;br /&gt;
      |  &lt;br /&gt;
      |   /\   |   /\&lt;br /&gt;
      |  /  \  |  /  \&lt;br /&gt;
      | /    \ | /    \&lt;br /&gt;
   ___|/______\|/______\__&lt;br /&gt;
      |&lt;br /&gt;
Nota: La gráfica resultante no tiene por qué ser simétrica, dependerá de los sectores a los que accedamos.&lt;br /&gt;
Nota2: El número de sectores integrantes de cada lote será el indicado por la N, ejemplo: 3-SCAN, 4-SCAN, etc.&lt;br /&gt;
&lt;br /&gt;
;5. C-SCAN (Circular-Scan): Da preferencia al ascenso o descenso, y se mantiene. Así se elimina el trato favorable a las partes centrales.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mejoras_de_tiempos_de_desplazamiento&amp;diff=1089</id>
		<title>Mejoras de tiempos de desplazamiento</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mejoras_de_tiempos_de_desplazamiento&amp;diff=1089"/>
				<updated>2011-06-06T15:58:20Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;1. FCFS (por orden de llegada): Las peticiones se atienden en el mismo orden en que se reciben.&lt;br /&gt;
&lt;br /&gt;
;2. SSTF (por menor tiempo de búsqueda): Ordeno todo y cojo el lote.&lt;br /&gt;
&lt;br /&gt;
;3. SCAN (criterio del ascensor): D&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
;4. NSCAN: entro de cada lote de la lista de accesos, escogemos aquellos sectores que nos permita ascender y descender en la tabla, dando prioridad a los sectores que se encuentren en la parte central de la pista.&lt;br /&gt;
&lt;br /&gt;
      |  &lt;br /&gt;
      |   /\   |   /\&lt;br /&gt;
      |  /  \  |  /  \&lt;br /&gt;
      | /    \ | /    \&lt;br /&gt;
   ___|/______\|/______\__&lt;br /&gt;
      |&lt;br /&gt;
Nota: La gráfica resultante no tiene por qué ser simétrica, dependerá de los sectores a los que accedamos.&lt;br /&gt;
Nota2: El número de sectores integrantes de cada lote será el indicado por la N, ejemplo: 3-SCAN, 4-SCAN, etc.&lt;br /&gt;
&lt;br /&gt;
;5. C-SCAN (Circular-Scan): Da preferencia al ascenso o descenso, y se mantiene. Así se elimina el trato favorable a las partes centrales.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mejoras_de_tiempos_de_desplazamiento&amp;diff=1088</id>
		<title>Mejoras de tiempos de desplazamiento</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mejoras_de_tiempos_de_desplazamiento&amp;diff=1088"/>
				<updated>2011-06-06T15:54:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;1. FCFS (por orden de llegada): Las peticiones se atienden en el mismo orden en que se reciben.&lt;br /&gt;
&lt;br /&gt;
;2. SSTF (por menor tiempo de búsqueda): Ordeno todo y cojo el lote.&lt;br /&gt;
&lt;br /&gt;
;3. SCAN (criterio del ascensor): Dentro de cada lote de la lista de accesos, escogemos aquellos sectores que nos permita ascender y descender en la tabla, dando prioridad a los sectores que se encuentren en la parte central de la pista.&lt;br /&gt;
&lt;br /&gt;
      |  &lt;br /&gt;
      |   /\   |   /\&lt;br /&gt;
      |  /  \  |  /  \&lt;br /&gt;
      | /    \ | /    \&lt;br /&gt;
   ___|/______\|/______\__&lt;br /&gt;
      |&lt;br /&gt;
Nota: La gráfica resultante no tiene por qué ser simétrica, dependerá de los sectores a los que accedamos.&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
;4. NSCAN &lt;br /&gt;
&lt;br /&gt;
;5. C-SCAN (Circular-Scan): Da preferencia al ascenso o descenso, y se mantiene. Así se elimina el trato favorable a las partes centrales.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mejoras_de_tiempos_de_desplazamiento&amp;diff=1087</id>
		<title>Mejoras de tiempos de desplazamiento</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mejoras_de_tiempos_de_desplazamiento&amp;diff=1087"/>
				<updated>2011-06-06T15:53:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;1. FCFS (por orden de llegada): Las peticiones se atienden en el mismo orden en que se reciben.&lt;br /&gt;
&lt;br /&gt;
;2. SSTF (por menor tiempo de búsqueda): Ordeno todo y cojo el lote.&lt;br /&gt;
&lt;br /&gt;
;3. SCAN (criterio del ascensor): Dentro del lote de nuestro sector, escogemos aquellos sectores que nos permita ascender y descender en la tabla, dando prioridad a los sectores que se encuentren en la parte central de la pista.&lt;br /&gt;
&lt;br /&gt;
      |  &lt;br /&gt;
      |   /\   |   /\&lt;br /&gt;
      |  /  \  |  /  \&lt;br /&gt;
      | /    \ | /    \&lt;br /&gt;
   ___|/______\|/______\__&lt;br /&gt;
      |&lt;br /&gt;
Nota: La gráfica resultante no tiene por qué ser simétrica, dependerá de los sectores a los que accedamos.&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
;4. NSCAN &lt;br /&gt;
&lt;br /&gt;
;5. C-SCAN (Circular-Scan): Da preferencia al ascenso o descenso, y se mantiene. Así se elimina el trato favorable a las partes centrales.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol_9.2&amp;diff=1022</id>
		<title>Sol 9.2</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol_9.2&amp;diff=1022"/>
				<updated>2011-06-04T23:50:30Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;   &lt;br /&gt;
  &lt;br /&gt;
La lista de paginas a la que se acceden son las siguientes : '''2--2--3--1--1--3--4--5--1--1--2--3--4''' &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_|           ||=desplazamiento a la derecha&lt;br /&gt;
  =========================================================&lt;br /&gt;
   1 | 2 | = | = | = || 2 | = | = | 5 || 5 | = | = | = | 4 |&lt;br /&gt;
     |100| = | = | = ||010| = | = |100||010| = | = | = |100|&lt;br /&gt;
 m---|---|---|---|---||---|---|---|---||---|---|---|---|---|&lt;br /&gt;
 a 2 |   |   | 3 | = || 3 | 3 | = | = || 3 | = | = | 3 | = |&lt;br /&gt;
 r   |   |   |100| = ||010|110| = | = ||011| = | = |111| = |&lt;br /&gt;
 c---|---|---|---|---||---|---|---|---||---|---|---|---|---|&lt;br /&gt;
 o 3 |   |   |   | 1 || 1 | = | = | = || 1 | = | = | = | = |&lt;br /&gt;
 s   |   |   |   |100||100| = | = | = ||111| = | = | = | = |&lt;br /&gt;
  ---|---|---|---|---||---|---|---|---||---|---|---|---|---|&lt;br /&gt;
   4 |   |   |   |   ||   |   | 4 | = || 4 | = | 2 | = | = |&lt;br /&gt;
     |   |   |   |   ||   |   |100| = ||010| = |100| = | = |&lt;br /&gt;
  ------------------------------------------------------------&amp;gt; t&lt;br /&gt;
       x       x   x           x   x                   x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DUDA! No debería tener el marco 3 como contenido 1 / 110? coincide un desplazamiento y un acceso a la dereecha, como ocurre con el contenido del marco 2 cuando se accede al 3.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol_3&amp;diff=944</id>
		<title>Sol 3</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol_3&amp;diff=944"/>
				<updated>2011-06-02T16:52:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Solución:&lt;br /&gt;
6/13 = 0'4615&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 16:52 2 jun 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol_3&amp;diff=943</id>
		<title>Sol 3</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol_3&amp;diff=943"/>
				<updated>2011-06-02T16:52:11Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: Página creada con 'Solución: &amp;lt;math&amp;gt;6/13 = 0'46&amp;lt;/math&amp;gt; --~~~~'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Solución:&lt;br /&gt;
&amp;lt;math&amp;gt;6/13 = 0'46&amp;lt;/math&amp;gt;&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 16:52 2 jun 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Criterios_de_reemplazo&amp;diff=942</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=942"/>
				<updated>2011-06-02T16:49:43Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= '''Criterios de reemplazo''' =&lt;br /&gt;
&lt;br /&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 da 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;
&lt;br /&gt;
[[sol_1|Solución]]&lt;br /&gt;
&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;
&lt;br /&gt;
[[sol_2|Solución]]&lt;br /&gt;
&lt;br /&gt;
'''3º) Criterio MRU''' ('''M'''ost '''R'''ecently '''U'''sed) ''':''' página más recientemente usada. 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;
&lt;br /&gt;
[[sol_3|Solución]]&lt;br /&gt;
&lt;br /&gt;
'''4º) Criterio de selección estocástica (aleatoria):''' Consiste en seleccionar una página al azar.&lt;br /&gt;
&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. &lt;br /&gt;
&lt;br /&gt;
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;
1º- R=0, M=0 .            &lt;br /&gt;
&lt;br /&gt;
2º- R=0, M=1 .&lt;br /&gt;
&lt;br /&gt;
3º- R=1, M=0 .&lt;br /&gt;
&lt;br /&gt;
4º- 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 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.&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.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Otro_ejemplo&amp;diff=931</id>
		<title>Otro ejemplo</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Otro_ejemplo&amp;diff=931"/>
				<updated>2011-05-31T17:43:25Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Ej: tenemos los siguientes procesos: m(P1)=6KB,m(P2)=1KB,m(P3)=3KB,m(P4)=31KB,m(P5)=30KB,m(P6)=2KB,m(P7)=4KB,m(P8)=1KB;&lt;br /&gt;
     y una memoria de 64 KB divididos en 4 huecos como sigue:&lt;br /&gt;
  _____&lt;br /&gt;
 |_____| H1 = 8KB     | m(P1)=6KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P1)=0 | t(P1)=8&lt;br /&gt;
 |_____| H2 = 8KB     | m(P2)=1KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P2)=0 | t(P2)=8&lt;br /&gt;
 |     |              | m(P3)=3KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P3)=1 | t(P3)=2&lt;br /&gt;
 |_____| H3 = 16KB    | m(P4)=31KB | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P4)=0 | t(P4)=2&lt;br /&gt;
 |     |              | m(P5)=30KB | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P5)=0 | t(P5)=2&lt;br /&gt;
 |     |              | m(P6)=2KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P6)=0 | t(P6)=2&lt;br /&gt;
 |     | H4 = 32KB    | m(P7)=4KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P7)=2 | t(P7)=2&lt;br /&gt;
 |_____|              | m(P8)=1KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P8)=0 | t(P8)=2&lt;br /&gt;
&lt;br /&gt;
 solución:&lt;br /&gt;
  &amp;gt;: fin del proceso.&lt;br /&gt;
 &lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1|   |&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P6| P6| P7| P7| P3| P3|   |   |   |&lt;br /&gt;
   H2|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2|   |&lt;br /&gt;
   H3|---|---|---|---|---|---|---|---&amp;gt;   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5| P8| P8|   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__&amp;gt;&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
¿A qué criterio pertenece esta solución?&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 16:42 31 may 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soluciones:&lt;br /&gt;
&lt;br /&gt;
'''a) Mejor ajuste estático''': Asociamos a cada proceso la partición menor en la que cabe. En nuestro caso:&lt;br /&gt;
P1: H1&lt;br /&gt;
P2: H2&lt;br /&gt;
P3: H1/H2 el que acabe primero.&lt;br /&gt;
P4: H4&lt;br /&gt;
P5: H4&lt;br /&gt;
P6: H1/H2 el que acabe primero.&lt;br /&gt;
P7: H1/H2 el que acabe primero.&lt;br /&gt;
P8: H1/H2 el que acabe primero.&lt;br /&gt;
&lt;br /&gt;
Como vemos, usando este criterio, la partición H3 se queda siempre libre. Éste es uno de los inconvenientes del mejor ajuste estático, no aprovechamos todas las particiones.&lt;br /&gt;
&lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1| P3| P3| P7| P7&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2| P6| P6| P8| P8&lt;br /&gt;
   H2|---|---|---|---|---|---|---|---&amp;gt;---|--&amp;gt;|---|---&amp;gt;&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
   H3|   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5|   |   |   |   |   |   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__ |___|___|&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  10   11  12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b) Primer ajuste:''' En este criterio, elegimos el primer proceso que quepa en la partición que tengamos en la cola de procesos en espera.&lt;br /&gt;
Para este criterio, es conveniente verificar en cada instante de tiempo qué procesos tengo en espera (y en qué orden) y qué particiones se me van quedando libres en cada instante.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1|   |   |   |   |&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2|   |   |   |   |&lt;br /&gt;
   H2|---|---|---|---|---|---|---|---&amp;gt;   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P6| P6| P8| P8| P3| P3|   |   |   |   |   |   |&lt;br /&gt;
   H3|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5| P7| P7|   |   |   |   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__ |___|___|&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  10   11  12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''c) Mejor ajuste dinámico:'''En este criterio, hemos de seleccionar el mayor proceso que quepa en nuestra partición. Para esto debemos recorrer toda la cola de procesos en espera. Como inconveniente nos encontramos con que los procesos menores quedarán aplazados en favor de los procesos de mayor tamaño. Una vez más debemos tener cuidado verificando el estado de la cola de espera en cada instante de tiempo para la elección de los procesos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1|   |   |   |   |&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P6| P6| P7| P7| P3| P3|   |   |   |   |   |   |&lt;br /&gt;
   H2|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2|   |   |   |   |&lt;br /&gt;
   H3|---|---|---|---|---|---|---|---&amp;gt;   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5| P8| P8|   |   |   |   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__ |___|___|&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  10   11  12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como podemos observar, el proceso 8, queda aplazado hasta que el resto de procesos mayores han terminado. Para solucionar este problema tenemos el siguiente criterio, mayor que quepa con aplazamiento, en el cual hacemos uso de una variable 'umbral' que selecciona aquellos procesos que han sido aplazados un número dado de veces.--[[Usuario:Jorcalmar|Jorcalmar]] 17:43 31 may 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Otro_ejemplo&amp;diff=930</id>
		<title>Otro ejemplo</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Otro_ejemplo&amp;diff=930"/>
				<updated>2011-05-31T17:42:03Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Ej: tenemos los siguientes procesos: m(P1)=6KB,m(P2)=1KB,m(P3)=3KB,m(P4)=31KB,m(P5)=30KB,m(P6)=2KB,m(P7)=4KB,m(P8)=1KB;&lt;br /&gt;
     y una memoria de 64 KB divididos en 4 huecos como sigue:&lt;br /&gt;
  _____&lt;br /&gt;
 |_____| H1 = 8KB     | m(P1)=6KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P1)=0 | t(P1)=8&lt;br /&gt;
 |_____| H2 = 8KB     | m(P2)=1KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P2)=0 | t(P2)=8&lt;br /&gt;
 |     |              | m(P3)=3KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P3)=1 | t(P3)=2&lt;br /&gt;
 |_____| H3 = 16KB    | m(P4)=31KB | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P4)=0 | t(P4)=2&lt;br /&gt;
 |     |              | m(P5)=30KB | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P5)=0 | t(P5)=2&lt;br /&gt;
 |     |              | m(P6)=2KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P6)=0 | t(P6)=2&lt;br /&gt;
 |     | H4 = 32KB    | m(P7)=4KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P7)=2 | t(P7)=2&lt;br /&gt;
 |_____|              | m(P8)=1KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P8)=0 | t(P8)=2&lt;br /&gt;
&lt;br /&gt;
 solución:&lt;br /&gt;
  &amp;gt;: fin del proceso.&lt;br /&gt;
 &lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1|   |&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P6| P6| P7| P7| P3| P3|   |   |   |&lt;br /&gt;
   H2|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2|   |&lt;br /&gt;
   H3|---|---|---|---|---|---|---|---&amp;gt;   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5| P8| P8|   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__&amp;gt;&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
¿A qué criterio pertenece esta solución?&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 16:42 31 may 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soluciones:&lt;br /&gt;
&lt;br /&gt;
'''a) Mejor ajuste estático''': Asociamos a cada proceso la partición menor en la que cabe. En nuestro caso:&lt;br /&gt;
P1: H1&lt;br /&gt;
P2: H2&lt;br /&gt;
P3: H1/H2 el que acabe primero.&lt;br /&gt;
P4: H4&lt;br /&gt;
P5: H4&lt;br /&gt;
P6: H1/H2 el que acabe primero.&lt;br /&gt;
P7: H1/H2 el que acabe primero.&lt;br /&gt;
P8: H1/H2 el que acabe primero.&lt;br /&gt;
&lt;br /&gt;
Como vemos, usando este criterio, la partición H3 se queda siempre libre. Éste es uno de los inconvenientes del mejor ajuste estático, no aprovechamos todas las particiones.&lt;br /&gt;
&lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1| P3| P3| P7| P7&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2| P6| P6| P8| P8&lt;br /&gt;
   H2|---|---|---|---|---|---|---|---&amp;gt;---|--&amp;gt;|---|---&amp;gt;&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
   H3|   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5|   |   |   |   |   |   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__ |___|___|&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  10   11  12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''b) Primer ajuste:''' En este criterio, elegimos el primer proceso que quepa en la partición que tengamos en la cola de procesos en espera.&lt;br /&gt;
Para este criterio, es conveniente verificar en cada instante de tiempo qué procesos tengo en espera (y en qué orden) y qué particiones se me van quedando libres en cada instante.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1|   |   |   |   |&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2|   |   |   |   |&lt;br /&gt;
   H2|---|---|---|---|---|---|---|---&amp;gt;   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P6| P6| P8| P8| P3| P3|   |   |   |   |   |   |&lt;br /&gt;
   H3|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5| P7| P7|   |   |   |   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__ |___|___|&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  10   11  12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''c) Mejor ajuste dinámico:'''En este criterio, hemos de seleccionar el mayor proceso que quepa en nuestra partición. Para esto debemos recorrer toda la cola de procesos en espera. Como inconveniente nos encontramos con que los procesos menores quedarán aplazados en favor de los procesos de mayor tamaño. Una vez más debemos tener cuidado verificando el estado de la cola de espera en cada instante de tiempo para la elección de los procesos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1|   |   |   |   |&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P6| P6| P7| P7| P3| P3|   |   |   |   |   |   |&lt;br /&gt;
   H2|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2|   |   |   |   |&lt;br /&gt;
   H3|---|---|---|---|---|---|---|---&amp;gt;   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5| P8| P8|   |   |   |   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__ |___|___|&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  10   11  12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como podemos observar, el proceso 8, queda aplazado hasta que el resto de procesos mayores han terminado. Para solucionar este problema tenemos el siguiente criterio, mayor que quepa con aplazamiento, en el cual hacemos uso de una variable 'umbral' que selecciona aquellos procesos que han sido aplazados un número dado de veces.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Otro_ejemplo&amp;diff=929</id>
		<title>Otro ejemplo</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Otro_ejemplo&amp;diff=929"/>
				<updated>2011-05-31T17:15:32Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Ej: tenemos los siguientes procesos: m(P1)=6KB,m(P2)=1KB,m(P3)=3KB,m(P4)=31KB,m(P5)=30KB,m(P6)=2KB,m(P7)=4KB,m(P8)=1KB;&lt;br /&gt;
     y una memoria de 64 KB divididos en 4 huecos como sigue:&lt;br /&gt;
  _____&lt;br /&gt;
 |_____| H1 = 8KB     | m(P1)=6KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P1)=0 | t(P1)=8&lt;br /&gt;
 |_____| H2 = 8KB     | m(P2)=1KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P2)=0 | t(P2)=8&lt;br /&gt;
 |     |              | m(P3)=3KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P3)=1 | t(P3)=2&lt;br /&gt;
 |_____| H3 = 16KB    | m(P4)=31KB | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P4)=0 | t(P4)=2&lt;br /&gt;
 |     |              | m(P5)=30KB | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P5)=0 | t(P5)=2&lt;br /&gt;
 |     |              | m(P6)=2KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P6)=0 | t(P6)=2&lt;br /&gt;
 |     | H4 = 32KB    | m(P7)=4KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P7)=2 | t(P7)=2&lt;br /&gt;
 |_____|              | m(P8)=1KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P8)=0 | t(P8)=2&lt;br /&gt;
&lt;br /&gt;
 solución:&lt;br /&gt;
  &amp;gt;: fin del proceso.&lt;br /&gt;
 &lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1|   |&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P6| P6| P7| P7| P3| P3|   |   |   |&lt;br /&gt;
   H2|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2|   |&lt;br /&gt;
   H3|---|---|---|---|---|---|---|---&amp;gt;   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5| P8| P8|   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__&amp;gt;&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
¿A qué criterio pertenece esta solución?&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 16:42 31 may 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soluciones:&lt;br /&gt;
&lt;br /&gt;
'''a) Mejor ajuste estático''': Asociamos a cada proceso la partición menor en la que cabe. En nuestro caso:&lt;br /&gt;
P1: H1&lt;br /&gt;
P2: H2&lt;br /&gt;
P3: H1/H2 el que acabe primero.&lt;br /&gt;
P4: H4&lt;br /&gt;
P5: H4&lt;br /&gt;
P6: H1/H2 el que acabe primero.&lt;br /&gt;
P7: H1/H2 el que acabe primero.&lt;br /&gt;
P8: H1/H2 el que acabe primero.&lt;br /&gt;
&lt;br /&gt;
Como vemos, usando este criterio, la partición H3 se queda siempre libre. Éste es uno de los inconvenientes del mejor ajuste estático, no aprovechamos todas las particiones.&lt;br /&gt;
&lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1| P3| P3| P7| P7&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2| P6| P6| P8| P8&lt;br /&gt;
   H2|---|---|---|---|---|---|---|---&amp;gt;---|--&amp;gt;|---|---&amp;gt;&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
   H3|   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5|   |   |   |   |   |   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;   |   |   |   |   |   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__ |___|___|&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  10   11  12&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Otro_ejemplo&amp;diff=928</id>
		<title>Otro ejemplo</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Otro_ejemplo&amp;diff=928"/>
				<updated>2011-05-31T16:42:14Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Ej: tenemos los siguientes procesos: m(P1)=6KB,m(P2)=1KB,m(P3)=3KB,m(P4)=31KB,m(P5)=30KB,m(P6)=2KB,m(P7)=4KB,m(P8)=1KB;&lt;br /&gt;
     y una memoria de 64 KB divididos en 4 huecos como sigue:&lt;br /&gt;
  _____&lt;br /&gt;
 |_____| H1 = 8KB     | m(P1)=6KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P1)=0 | t(P1)=8&lt;br /&gt;
 |_____| H2 = 8KB     | m(P2)=1KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P2)=0 | t(P2)=8&lt;br /&gt;
 |     |              | m(P3)=3KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P3)=1 | t(P3)=2&lt;br /&gt;
 |_____| H3 = 16KB    | m(P4)=31KB | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P4)=0 | t(P4)=2&lt;br /&gt;
 |     |              | m(P5)=30KB | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P5)=0 | t(P5)=2&lt;br /&gt;
 |     |              | m(P6)=2KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P6)=0 | t(P6)=2&lt;br /&gt;
 |     | H4 = 32KB    | m(P7)=4KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P7)=2 | t(P7)=2&lt;br /&gt;
 |_____|              | m(P8)=1KB  | H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(P8)=0 | t(P8)=2&lt;br /&gt;
&lt;br /&gt;
 solución:&lt;br /&gt;
  &amp;gt;: fin del proceso.&lt;br /&gt;
 &lt;br /&gt;
     | P1| P1| P1| P1| P1| P1| P1| P1|   |&lt;br /&gt;
   H1|---|---|---|---|---|---|---|---&amp;gt;   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P6| P6| P7| P7| P3| P3|   |   |   |&lt;br /&gt;
   H2|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P2| P2| P2| P2| P2| P2| P2| P2|   |&lt;br /&gt;
   H3|---|---|---|---|---|---|---|---&amp;gt;   |&lt;br /&gt;
     |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
     | P4| P4| P5| P5| P8| P8|   |   |   |&lt;br /&gt;
   H4|---|---&amp;gt;---|---&amp;gt;---|---&amp;gt;   |   |   |&lt;br /&gt;
     |___|___|___|___|___|___|___|___|___|__&amp;gt;&lt;br /&gt;
     0   1   2   3   4   5   6   7   8   9  t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
¿A qué criterio pertenece esta solución?&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 16:42 31 may 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=SO_multiprogramables_con_particiones_variables&amp;diff=865</id>
		<title>SO multiprogramables con particiones variables</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=SO_multiprogramables_con_particiones_variables&amp;diff=865"/>
				<updated>2011-05-16T15:08:14Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Definición ==&lt;br /&gt;
&lt;br /&gt;
En este tipo de sistemas, las particiones para cada proceso se van creando a medida que son asignadas al procesador. Como ventaja principal tiene que evitamos el desperdicio de memoria dentro de cada bloque ya que cada uno está hecho a medida para el proceso que contiene. Por el contrario, una vez que un proceso ha concluido, su partición se queda en desuso y sería necesario aplicar algoritmos de desfragmentación de memoria para poder unificar todas las partes que han quedado libres y así reciclar las particiones que quedaron huérfanas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Elementos de administración ==&lt;br /&gt;
&lt;br /&gt;
* '''Mapas de bits''': Dividiendo la memoria en bloques, se utiliza un bit para representar si dicho bloque está libre o asignado.&lt;br /&gt;
&lt;br /&gt;
* '''Listas de control''': Se almacena en una lista el tamaño de los huecos y las posiciones de memoria entre las que se encuentran comprendidos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criterios de asignación ==&lt;br /&gt;
&lt;br /&gt;
* '''Primer ajuste''': Consiste en asignar el primer hueco disponible que tenga un espacio suficiente para almacenar el programa. Las dos principales desventajas son su alto desperdicio interno, y el elevado uso de las primeras posiciones de memoria. Este último inconveniente repercute negativamente en la circuitería, debido a que se produce un mayor desgaste en dichas posiciones.&lt;br /&gt;
&lt;br /&gt;
* '''Siguiente ajuste''': Se continúa a partir de la posición de la última asignación realizada. De esta forma se resuelve el inconveniente de usar en exceso las primeras posiciones de la memoria.&lt;br /&gt;
&lt;br /&gt;
* '''Mejor ajuste''': Consiste en asignarle al proceso el hueco con menor ajuste interno. Su mayor inconveniente es su orden de complejidad (orden lineal, ''O(n)'')&lt;br /&gt;
&lt;br /&gt;
* '''Peor ajuste''': Al contrario que el criterio anterior, se asigna a cada proceso el hueco con mayor ajuste interno. Tiene el mismo inconveniente en cuanto a orden de complejidad que el mejor ajuste.&lt;br /&gt;
&lt;br /&gt;
* '''Ajuste rápido''': Mediante listas de control, se agrupan los huecos disponibles según su tamaño (0 &amp;lt; t &amp;lt; 10, 10 &amp;lt; t &amp;lt; 20, etc.). De esta manera, cuando se necesite un hueco, se seleccionarán los del grupo del tamaño correspondiente. En el caso de que haya varios huecos disponibles, se seleccionará uno en base a cualquiera de los criterios anteriores.&lt;br /&gt;
&lt;br /&gt;
* '''Método de los compañeros''': Es una variante del ajuste rápido, en el que los huecos se dividen en potencias de 2: 2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, ..., 2&amp;lt;sup&amp;gt;k&amp;lt;/sup&amp;gt;. No es un método usado en la práctica, ya que al realizar redondeos a potencias de 2, se produce un elevado desperdicio interno&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=SO_multiprogramables_con_particiones_variables&amp;diff=864</id>
		<title>SO multiprogramables con particiones variables</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=SO_multiprogramables_con_particiones_variables&amp;diff=864"/>
				<updated>2011-05-16T15:05:59Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Definición ==&lt;br /&gt;
&lt;br /&gt;
En este tipo de sistemas, creamos particiones de memoria a medida que cada proceso va llegando al procesador.&lt;br /&gt;
Como ventaja principal, evitamos el desperdicio de memoria dentro de cada bloque ya que cada uno está hecho a medida. Por el contrario, una vez que un proceso ha concluido, su partición se queda en desuso y sería necesario aplicar algoritmos de desfragmentación de memoria para poder unificar todas las partes que han quedado libres.&lt;br /&gt;
&lt;br /&gt;
== Elementos de administración ==&lt;br /&gt;
&lt;br /&gt;
* '''Mapas de bits''': Dividiendo la memoria en bloques, se utiliza un bit para representar si dicho bloque está libre o asignado.&lt;br /&gt;
&lt;br /&gt;
* '''Listas de control''': Se almacena en una lista el tamaño de los huecos y las posiciones de memoria entre las que se encuentran comprendidos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Criterios de asignación ==&lt;br /&gt;
&lt;br /&gt;
* '''Primer ajuste''': Consiste en asignar el primer hueco disponible que tenga un espacio suficiente para almacenar el programa. Las dos principales desventajas son su alto desperdicio interno, y el elevado uso de las primeras posiciones de memoria. Este último inconveniente repercute negativamente en la circuitería, debido a que se produce un mayor desgaste en dichas posiciones.&lt;br /&gt;
&lt;br /&gt;
* '''Siguiente ajuste''': Se continúa a partir de la posición de la última asignación realizada. De esta forma se resuelve el inconveniente de usar en exceso las primeras posiciones de la memoria.&lt;br /&gt;
&lt;br /&gt;
* '''Mejor ajuste''': Consiste en asignarle al proceso el hueco con menor ajuste interno. Su mayor inconveniente es su orden de complejidad (orden lineal, ''O(n)'')&lt;br /&gt;
&lt;br /&gt;
* '''Peor ajuste''': Al contrario que el criterio anterior, se asigna a cada proceso el hueco con mayor ajuste interno. Tiene el mismo inconveniente en cuanto a orden de complejidad que el mejor ajuste.&lt;br /&gt;
&lt;br /&gt;
* '''Ajuste rápido''': Mediante listas de control, se agrupan los huecos disponibles según su tamaño (0 &amp;lt; t &amp;lt; 10, 10 &amp;lt; t &amp;lt; 20, etc.). De esta manera, cuando se necesite un hueco, se seleccionarán los del grupo del tamaño correspondiente. En el caso de que haya varios huecos disponibles, se seleccionará uno en base a cualquiera de los criterios anteriores.&lt;br /&gt;
&lt;br /&gt;
* '''Método de los compañeros''': Es una variante del ajuste rápido, en el que los huecos se dividen en potencias de 2: 2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, ..., 2&amp;lt;sup&amp;gt;k&amp;lt;/sup&amp;gt;. No es un método usado en la práctica, ya que al realizar redondeos a potencias de 2, se produce un elevado desperdicio interno&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=SO_monoprogramables&amp;diff=851</id>
		<title>SO monoprogramables</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=SO_monoprogramables&amp;diff=851"/>
				<updated>2011-05-12T10:31:33Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La administración de memoria es muy sencilla. El SO se coloca como bloque al principio de la memoria, y el resto para el proceso a ejecutar. Si no cabe, podría recurrirse al solapamiento o a la ejecución en cadena.&lt;br /&gt;
&lt;br /&gt;
Tiene debilidades en cuanto a protección de memoria. Para evitar que un proceso entre en el área del SO, se puede recurrir al uso de bits de protección (se le asocia a cada palabra un bit para comprobar si es de SO o del proceso) o a los registros valla (se conoce el limite de la dirección entre SO y proceso).&lt;br /&gt;
&lt;br /&gt;
 Ejemplo práctico: &lt;br /&gt;
 Pablo tiene una computadora cuya memoria principal tiene una capacidad de 640KB. El SO (MS-DOS) ocupa el principio de la memoria, dejando libre una &lt;br /&gt;
 zona de 512KB para el proceso conveniente. &lt;br /&gt;
 Esto nos impide jugar al Sensible Soccer, por ejemplo, ya que ocupa 560KB. Una posible solución seria instalar un SO menos pesado, como una version &lt;br /&gt;
 más antigua de MS-DOS.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=SO_monoprogramables&amp;diff=850</id>
		<title>SO monoprogramables</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=SO_monoprogramables&amp;diff=850"/>
				<updated>2011-05-12T10:30:11Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La administración de memoria es muy sencilla. El SO se coloca como bloque al principio de la memoria, y el resto para el proceso a ejecutar. Si no cabe, podría recurrirse al solapamiento o a la ejecución en cadena.&lt;br /&gt;
&lt;br /&gt;
Tiene debilidades en cuanto a protección de memoria. Para evitar que un proceso entre en el área del SO, se puede recurrir al uso de bits de protección (se le asocia a cada palabra un bit para comprobar si es de SO o del proceso) o a los registros valla (se conoce el limite de la dirección entre SO y proceso).&lt;br /&gt;
&lt;br /&gt;
 Ejemplo práctico: &lt;br /&gt;
 Pablo tiene una computadora cuya memoria principal tiene una capacidad de 640KB. El SO (MS-DOS) ocupa el principio de la memoria, dejando libre una &lt;br /&gt;
 zona de 512KB para el proceso conveniente. &lt;br /&gt;
 Esto nos impide jugar al Sensible Soccer, por ejemplo, ya que ocupa 560KB. Una posible solución seria instalar un SO menos pesado, como una version &lt;br /&gt;
 más antigua de MS-DOS.&lt;br /&gt;
&lt;br /&gt;
Otra posible solución es irte a jugar a casa del vecino, a expensas de que tenga que irse a la ducha o a comer con su familia :P&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_3&amp;diff=776</id>
		<title>Solución ejercicio 3</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_3&amp;diff=776"/>
				<updated>2011-05-09T17:22:51Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La solución no es correcta, ya que se bloquearía el proceso que ejecuta el while del productor y también el del consumidor, y no se avanzaría en la ejecución.&lt;br /&gt;
Sería correcto si el semáforo del productor se inicializara a 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
También habría que asegurar que el proceso P1 comenzará antes que P2, no??&lt;br /&gt;
Por lo que seguro que funcionaria con el contador de P1 igual a 1, y contador de P2 igual a 0, no??&lt;br /&gt;
&lt;br /&gt;
R:Creo que no, ya que en caso de que empieze por P2 bloquea a la espera de que algún proceso haga un UP sobre dicho semáforo.&lt;br /&gt;
&lt;br /&gt;
Los procesos son lanzados y tu no sabes a priori qué proceso se va a ejecutar, por lo que tienes que asegurarte que si se ejecuta el consumidor antes que el productor pase a estado bloqueado. Creo que la solución ,tal y como se dice el compañero al principio, es modificar el contador del productor poniendolo a 1.--[[Usuario:Jherrera|Jherrera]]&lt;br /&gt;
&lt;br /&gt;
Lo que he intentado dar a entender en (R:Creo que no, ya que en caso de que empieze por P2 bloquea a la espera de que algún proceso haga un UP sobre dicho semáforo) es lo que tu dices Jherrera.&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 17:22 9 may 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Es necesario que el semáforo del productor esté inicializado a 1, para que tenga vía libre para comenzar a producir cuando sea asignado al procesador. Para el correcto funcionamiento, es necesario que el consumidor esté inicializado a 0.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_2&amp;diff=773</id>
		<title>Solución ejercicio 2</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_2&amp;diff=773"/>
				<updated>2011-05-09T17:11:51Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;      X = El proceso pasa a estado bloqueado.&lt;br /&gt;
      / = El proceso pasa a estado preparado.&lt;br /&gt;
      &amp;gt; = Fin de su ejecucion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      | #1| #2| #3|   |   | #4| #1| #2|   |   |   | #3| #4|   |   |   |   |   |   |   |&lt;br /&gt;
    p1|---|---|---|   |   |---|---|---X   |   /   |---|---&amp;gt;   |   |   |   |   |   |   |&lt;br /&gt;
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
      |   |   |   | #1| #2|   |   |   | #3| #4| #1|   |   | #2| #3| #4|   |   |   |   |&lt;br /&gt;
    p2|   |   |   |---|---X   /   |   |---|---|---|   |   |---|---|---&amp;gt;   |   |   |   |&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 P1 comienza su ejecucion hasta agotar su ventana de tiempo , luego el proceso P2 bloquea al hacer el down(s2) ya que el semaforo s2 tiene el valor 0 , y como sabemos de los semaforos el proceso se bloquea hasta que no se vuelva a hacer un up(s2). P1 comienza y al hacer un up(s2) pasa p2 a estado preparado , luego al final de la ventana bloquea al hacer down(s1) ya que el contador en ese momento vale 0. Comienza la ejecucion p2 que estaba en estado preparado en el instante T = 10 hace un up(s1) por lo tanto p1 pasa a esta preparado. P1 se ejecuta y finaliza su ejecucion , y luego P2 se ejecuta y finaliza su ejecucion.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:DvS 013|DvS 013]] 15:30 9 may 2011 (UTC) : las ultimas instrucciones #1 de ambos programas deben ejecutarse para poder ver que i==2 y finalizar el bucle for, no?¿&lt;br /&gt;
&lt;br /&gt;
       / : bloqueado,  @: preparado, &amp;gt;: fin del programa, X : se ejecuta el planificador&lt;br /&gt;
 &lt;br /&gt;
        |i1=0       |i2=0   |    i1=1   |       i2=1|       i1=2|           i2=2|&lt;br /&gt;
        | #1| #2| #3|   |   | #4| #1| #2|   |   |   | #3| #4| #1|   |   |   |   |&lt;br /&gt;
 P1     |---|---|---|   |   |---|---|---/   |   @   |---|---|---&amp;gt;   |   |   |   |&lt;br /&gt;
 s1     | 1 | 0                             | 0                         | 1     |&lt;br /&gt;
        |   |   |   | #1| #2|   |   |   | #3| #4| #1|   |   |   | #2| #3| #4| #1|&lt;br /&gt;
 P2     |   |   |   |---|---/   @   |   |---|---|---|   |   |   |---|---|---|---&amp;gt;&lt;br /&gt;
 s2     | 0                 | 0                         | 1     | 0             |&lt;br /&gt;
 planif 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Josmorgav1|Josmorgav1]] 15:38 9 may 2011 (UTC)&lt;br /&gt;
Es correcto, la instrucción #1 si no la ejecuta, no hace la comprobación para continuar o salir del bucle, yo también he hecho el ejercicio en papel, y me da la misma solución que a David Martin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 16:33 9 may 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Duda acerca de semáforos:&lt;br /&gt;
&lt;br /&gt;
La operación down(s) verifica si el  valor del semáforo es 0, si es así, añade el proceso a la lista de procesos bloqueados que tiene el semáforo y si no, contador--. Ahora bien:&lt;br /&gt;
&lt;br /&gt;
¿No sería necesario verificar esta condición por ejemplo en el instante 8? Para verificar si hemos hecho un up que nos permita volver a poner el proceso en preparado. Con verificar me refiero volver a realizar la llamada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Josmorgav1|Josmorgav1]] 16:57 9 may 2011 (UTC)&lt;br /&gt;
No entiendo bien tu pregunta, pero como aclaración te digo, que respecto al down(s) es correcta la definición que has dado.&lt;br /&gt;
Para el caso del instante 8, realizas un up(s) que por definición, si no tiene procesos en la lista de semáforo, incrementa la variable (s++), en caso de tener algún proceso en esa lista, implica que estaría bloqueado, por lo cual, al hacer el up(s), se pone el proceso en modo preparado, y no se incrementa el contador, ya que al hacer up(s) permitimos que entre otro proceso en la sección crítica, pero a la vez, si está en la lista de  semáforo, ya estamos &amp;quot;preparando&amp;quot; el proceso que entrará en la sección crítica, por eso se mantiene el semáforo con el valor que tenía antes del up(s).&lt;br /&gt;
Espero que haya servido de aclaración, aunque el up(s) es un poco enredoso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ok gracias, me has respondido a la duda, el hecho de poner el estado en proceso preparado viene implicitamente dentro de la operacion UP. Muchas gracias.--[[Usuario:Jorcalmar|Jorcalmar]] 17:11 9 may 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_1&amp;diff=771</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=771"/>
				<updated>2011-05-09T16:55:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &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;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_1&amp;diff=770</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=770"/>
				<updated>2011-05-09T16:55:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &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;
La última solución propuesta coincide con la que me ha salido a mí, espero que esté bien :P&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_2&amp;diff=768</id>
		<title>Solución ejercicio 2</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_ejercicio_2&amp;diff=768"/>
				<updated>2011-05-09T16:33:03Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;      X = El proceso pasa a estado bloqueado.&lt;br /&gt;
      / = El proceso pasa a estado preparado.&lt;br /&gt;
      &amp;gt; = Fin de su ejecucion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      | #1| #2| #3|   |   | #4| #1| #2|   |   |   | #3| #4|   |   |   |   |   |   |   |&lt;br /&gt;
    p1|---|---|---|   |   |---|---|---X   |   /   |---|---&amp;gt;   |   |   |   |   |   |   |&lt;br /&gt;
      |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
      |   |   |   | #1| #2|   |   |   | #3| #4| #1|   |   | #2| #3| #4|   |   |   |   |&lt;br /&gt;
    p2|   |   |   |---|---X   /   |   |---|---|---|   |   |---|---|---&amp;gt;   |   |   |   |&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 P1 comienza su ejecucion hasta agotar su ventana de tiempo , luego el proceso P2 bloquea al hacer el down(s2) ya que el semaforo s2 tiene el valor 0 , y como sabemos de los semaforos el proceso se bloquea hasta que no se vuelva a hacer un up(s2). P1 comienza y al hacer un up(s2) pasa p2 a estado preparado , luego al final de la ventana bloquea al hacer down(s1) ya que el contador en ese momento vale 0. Comienza la ejecucion p2 que estaba en estado preparado en el instante T = 10 hace un up(s1) por lo tanto p1 pasa a esta preparado. P1 se ejecuta y finaliza su ejecucion , y luego P2 se ejecuta y finaliza su ejecucion.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:DvS 013|DvS 013]] 15:30 9 may 2011 (UTC) : las ultimas instrucciones #1 de ambos programas deben ejecutarse para poder ver que i==2 y finalizar el bucle for, no?¿&lt;br /&gt;
&lt;br /&gt;
       / : bloqueado,  @: preparado, &amp;gt;: fin del programa, X : se ejecuta el planificador&lt;br /&gt;
 &lt;br /&gt;
        |i1=0       |i2=0   |    i1=1   |       i2=1|       i1=2|           i2=2|&lt;br /&gt;
        | #1| #2| #3|   |   | #4| #1| #2|   |   |   | #3| #4| #1|   |   |   |   |&lt;br /&gt;
 P1     |---|---|---|   |   |---|---|---/   |   @   |---|---|---&amp;gt;   |   |   |   |&lt;br /&gt;
 s1     | 1 | 0                             | 0                         | 1     |&lt;br /&gt;
        |   |   |   | #1| #2|   |   |   | #3| #4| #1|   |   |   | #2| #3| #4| #1|&lt;br /&gt;
 P2     |   |   |   |---|---/   @   |   |---|---|---|   |   |   |---|---|---|---&amp;gt;&lt;br /&gt;
 s2     | 0                 | 0                         | 1     | 0             |&lt;br /&gt;
 planif 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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Josmorgav1|Josmorgav1]] 15:38 9 may 2011 (UTC)&lt;br /&gt;
Es correcto, la instrucción #1 si no la ejecuta, no hace la comprobación para continuar o salir del bucle, yo también he hecho el ejercicio en papel, y me da la misma solución que a David Martin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Jorcalmar|Jorcalmar]] 16:33 9 may 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Duda acerca de semáforos:&lt;br /&gt;
&lt;br /&gt;
La operación down(s) verifica si el  valor del semáforo es 0, si es así, añade el proceso a la lista de procesos bloqueados que tiene el semáforo y si no, contador--. Ahora bien:&lt;br /&gt;
&lt;br /&gt;
¿No sería necesario verificar esta condición por ejemplo en el instante 8? Para verificar si hemos hecho un up que nos permita volver a poner el proceso en preparado. Con verificar me refiero volver a realizar la llamada.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_de_los_ejercicios_de_concurrencia&amp;diff=732</id>
		<title>Solución de los ejercicios de concurrencia</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_de_los_ejercicios_de_concurrencia&amp;diff=732"/>
				<updated>2011-05-09T11:32:22Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &lt;br /&gt;
       | #1| #2| #3|   |   |   | #4| #1| #2|   |   |   | #3| #4|El programa ya termina |&lt;br /&gt;
 H1    |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |   |   |&lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   | #1| #2| #2|   |   |   | #2| #2| #2|   |   |   | #2| #3| #4| #1| #2| #3| #4| El programa termina.&lt;br /&gt;
 H2    |   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|---|   |&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;
&lt;br /&gt;
En este ejercicio, el hilo 2 se queda esperando continuamente a que el hilo 1 libere el cerrojo para poder acceder a la función.&lt;br /&gt;
El programa finaliza en el hilo 1 cuando llega dos veces a la instrucción 4 (bucle for).&lt;br /&gt;
&lt;br /&gt;
Modificación:&lt;br /&gt;
&lt;br /&gt;
Solución:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
       | #1| #2| #3|   |   |   | #4| #1| #2|   |   |   | #3| #4| &amp;gt; |   |   |   |   |   |   |   |&lt;br /&gt;
 H1    |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   | #1| __| __|   |   |   | __| __| __|   |   |   | #2| #3| #4| #1| #2| #3| #4&lt;br /&gt;
 H2    |   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|---|---|---|---|&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 21  22&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_de_los_ejercicios_de_concurrencia&amp;diff=727</id>
		<title>Solución de los ejercicios de concurrencia</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_de_los_ejercicios_de_concurrencia&amp;diff=727"/>
				<updated>2011-05-09T11:22:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: Página nueva:          | #1| #2| #3|   |   |   | #4| #2| #3|   |   |   | #4| El programa ya termina|  H1    |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |   |   |        ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &lt;br /&gt;
       | #1| #2| #3|   |   |   | #4| #2| #3|   |   |   | #4| El programa ya termina|&lt;br /&gt;
 H1    |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |   |   |&lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   | #1| #2| #2|   |   |   | #2| #2| #2|   |   |   |   |   |   |   |   |&lt;br /&gt;
 H2    |   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |   |   |   |   |   |&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;
&lt;br /&gt;
En este ejercicio, el hilo 2 se queda esperando continuamente a que el hilo 1 libere el cerrojo para poder acceder a la función.&lt;br /&gt;
El programa finaliza en el hilo 1 cuando llega dos veces a la instrucción 4 (bucle for).&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-planif-procesos&amp;diff=336</id>
		<title>Sol-ejer2-planif-procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-planif-procesos&amp;diff=336"/>
				<updated>2011-03-21T15:48:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: /* Turno rotatorio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Turno rotatorio =&lt;br /&gt;
&lt;br /&gt;
                     ____|_P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|&lt;br /&gt;
           problema  _t__|_3__|_5__|_6__|&lt;br /&gt;
 &lt;br /&gt;
    P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; bloquea por E/S cada 1 unidad de tiempo&lt;br /&gt;
    P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; bloquea por E/S cada 3 unidades de tiempo&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;
               P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;  &amp;lt;---|   |   |   |   |---|   |   |   |---&amp;gt;   |   |   |   |   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;  |   &amp;lt;---|---|   |   |   |---|   |   |   |---|---&amp;gt;   |   |   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;  |   |   &amp;lt;   |---|---|   |   |---|---|   |   |   |---|---&amp;gt;   |   |   |   |   |   &lt;br /&gt;
     Planificador  X   X   |   X   |   X   X   X   |   X   X   |   X   |   X   |   |   |   |   |      &lt;br /&gt;
               ____|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__&amp;gt; t&lt;br /&gt;
                   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  &lt;br /&gt;
 &lt;br /&gt;
                   _____|_P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
        Cálculos   __t__|_3__|_5__|_6__|&lt;br /&gt;
       de tiempos  __T__|_10_|_11_|_12_|&lt;br /&gt;
                   _T/t_|3.3_|2.2_|_2__|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sigue estando mal, el quantum no se reduce a 1 en el proceso A, el quantum se debe respetar siempre(en el articulo de la wiki sobre turno rotatorio lo explican).&lt;br /&gt;
&lt;br /&gt;
Pd: No pises las otras soluciones propuestas, pon la tuya debajo para que todos podamos discutirlo.&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;
                       / = Tiempo del quantum desaprovechado bien por bloqueo de E/S o por finalización del proceso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;  &amp;lt;---|///|   |   |   |   |---|///|   |   |   |   |---|///&amp;gt;   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;  |   |   |---|---|   |   |   |   |---|---|   |   |   |   |---|///&amp;gt;   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;  |   |   &amp;lt;   |   |---|---|   |   |   |   |---|---|   |   |   |   |---|---&amp;gt;   |   &lt;br /&gt;
     Planificador  X   X   |   X   |   X   X   X   |   X   X   |   X   |   X   |   |   |   |   |      &lt;br /&gt;
               ____|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__&amp;gt; t&lt;br /&gt;
                   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19&lt;br /&gt;
&lt;br /&gt;
= Turno rotatorio proporcional al número de procesos =&lt;br /&gt;
&lt;br /&gt;
                     ____|_P&amp;lt;sub&amp;gt;A &amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C &amp;lt;/sub&amp;gt;_|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|&lt;br /&gt;
           problema  _t__|_3__|_5__|_6__|&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;
                 &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;  &amp;lt;---|   |   |---|   |   |---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;  |   &amp;lt;---|   |   |---|   |   |---|   |   |---|   |---&amp;gt;   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;  |   |   &amp;lt;---|   |   |---|   |   |---|---|   |---|   |---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
    Planificador &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; X   X   X   X   X   X   X   X   X   |   X   X   X   X   |   |   |   |   |   |   |   &lt;br /&gt;
            &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---&amp;gt; t&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;
                   _____|_P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
        Cálculos   __t__|_3__|_5__|_6__|&lt;br /&gt;
       de tiempos  __T__|_7__|_12_|_12_|&lt;br /&gt;
                   _T/t_|2.3_|2.4_|_2__|&lt;br /&gt;
&lt;br /&gt;
=============&lt;br /&gt;
Observaciones&lt;br /&gt;
=============&lt;br /&gt;
&lt;br /&gt;
- Al no existir en el instante de tiempo 0 problemas de concurrencia de procesos, ¿no debería el proceso A tener derecho a sus dos unidades de tiempo de quantum, aunque este solo utilice una unidad de tiempo debido al bloqueo por E/S?. Esto dejaría al procesador con dos procesos en estado preparado (B y C) en el instante de tiempo 2, donde ya se reduciría el quantum a 1 debido a la existencia de 2 o más procesos en estado preparado. ¿Cómo lo veis?&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Usuario_discusi%C3%B3n:Jorcalmar&amp;diff=335</id>
		<title>Usuario discusión:Jorcalmar</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Usuario_discusi%C3%B3n:Jorcalmar&amp;diff=335"/>
				<updated>2011-03-21T15:41:01Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Si no lo había leído lo de A y B lo estaba corrigiendo cuando al darle a guardar me decía que había colisión y suerte que me ha dejado copiarlo y ponerlo de nuevo.&lt;br /&gt;
Por eso he pegado la solución corregida encima de tu corrección.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ok, voy a verlo, espero que sea lo mismo porque si no, vaya lio!&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-planif-procesos&amp;diff=327</id>
		<title>Sol-ejer2-planif-procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-planif-procesos&amp;diff=327"/>
				<updated>2011-03-21T15:28:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Turno rotatorio =&lt;br /&gt;
&lt;br /&gt;
                     ____|_P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|&lt;br /&gt;
           problema  _t__|_3__|_5__|_6__|&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;
               P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;  &amp;lt;---|---|   |   |   |   |---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;  |   &amp;lt;   |---|---|   |   |   |---|---|   |   |---&amp;gt;   |   |   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;  |   |   &amp;lt;   |   |---|---|   |   |   |---|---|   |---|---&amp;gt;   |   |   |   |   |   &lt;br /&gt;
     Planificador  X   |   X   |   X   |   X   X   |   X   |   X   X   |   X   |   |   |   |   |      &lt;br /&gt;
              -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|--&amp;gt; t&lt;br /&gt;
                   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  &lt;br /&gt;
 &lt;br /&gt;
                   _____|_P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
        Cálculos   __t__|_3__|_5__|_6__|&lt;br /&gt;
       de tiempos  __T__|_7__|_11_|_12_|&lt;br /&gt;
                   _T/t_|2.3_|2.2_|_2__|&lt;br /&gt;
&lt;br /&gt;
En esta solución propuesta no se ha tenido en cuenta el bloqueo que sufre el proceso A cuando lleva una unidad de tiempo 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;
                       / = Tiempo del quantum no aprovechado debido a bloqueo o a la finalización del proceso.                                   &lt;br /&gt;
                   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;  &amp;lt;---|///|   |   |   |   |---|///|   |   |   |   |---|///&amp;gt;   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;  |   &amp;lt;   |---|---|   |   |   |   |---|---|   |   |   |   |---|///&amp;gt;   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;  |   |   &amp;lt;   |   |---|---|   |   |   |   |---|---|   |   |   |   |---|---&amp;gt;   |   &lt;br /&gt;
     Planificador  X   |   X   |   X   |   X   X   |   X   |   X   X   |   X   |   |   |   |   |      &lt;br /&gt;
              -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|--&amp;gt; t&lt;br /&gt;
                   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Turno rotatorio proporcional al número de procesos =&lt;br /&gt;
&lt;br /&gt;
                     ____|_P&amp;lt;sub&amp;gt;A &amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C &amp;lt;/sub&amp;gt;_|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|&lt;br /&gt;
           problema  _t__|_3__|_5__|_6__|&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;
                 &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;  &amp;lt;---|   |   |---|   |   |---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;  |   &amp;lt;---|   |   |---|   |   |---|   |   |---|   |---&amp;gt;   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;  |   |   &amp;lt;---|   |   |---|   |   |---|---|   |---|   |---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
    Planificador &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; X   X   X   X   X   X   X   X   X   |   X   X   X   X   |   |   |   |   |   |   |   &lt;br /&gt;
            &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---&amp;gt; t&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;
                   _____|_P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
        Cálculos   __t__|_3__|_5__|_6__|&lt;br /&gt;
       de tiempos  __T__|_7__|_12_|_12_|&lt;br /&gt;
                   _T/t_|2.3_|2.4_|_2__|&lt;br /&gt;
&lt;br /&gt;
=============&lt;br /&gt;
Observaciones&lt;br /&gt;
=============&lt;br /&gt;
&lt;br /&gt;
- Al no existir en el instante de tiempo 0 problemas de concurrencia de procesos, ¿no debería el proceso A tener derecho a sus dos unidades de tiempo de quantum, aunque este solo utilice una unidad de tiempo debido al bloqueo por E/S?. Esto dejaría al procesador con dos procesos en estado preparado (B y C) en el instante de tiempo 2, donde ya se reduciría el quantum a 1 debido a la existencia de 2 o más procesos en estado preparado. ¿Cómo lo veis?&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-planif-procesos&amp;diff=324</id>
		<title>Sol-ejer2-planif-procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-planif-procesos&amp;diff=324"/>
				<updated>2011-03-21T15:24:24Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: Observación acerca de la solución propuesta por otro alumno.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Turno rotatorio =&lt;br /&gt;
&lt;br /&gt;
                     ____|_P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|&lt;br /&gt;
           problema  _t__|_3__|_5__|_6__|&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;
               P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;  &amp;lt;---|---|   |   |   |   |---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;  |   &amp;lt;   |---|---|   |   |   |---|---|   |   |---&amp;gt;   |   |   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;  |   |   &amp;lt;   |   |---|---|   |   |   |---|---|   |---|---&amp;gt;   |   |   |   |   |   &lt;br /&gt;
     Planificador  X   |   X   |   X   |   X   X   |   X   |   X   X   |   X   |   |   |   |   |      &lt;br /&gt;
              -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|--&amp;gt; t&lt;br /&gt;
                   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  &lt;br /&gt;
 &lt;br /&gt;
                   _____|_P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
        Cálculos   __t__|_3__|_5__|_6__|&lt;br /&gt;
       de tiempos  __T__|_7__|_11_|_12_|&lt;br /&gt;
                   _T/t_|2.3_|2.2_|_2__|&lt;br /&gt;
&lt;br /&gt;
En esta solución propuesta no se ha tenido en cuenta el bloqueo que sufre el proceso A cuando lleva una unidad de tiempo 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;
                       / = Tiempo del quantum no aprovechado debido a bloqueo.                                          &lt;br /&gt;
                   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;  &amp;lt;---|///|   |   |   |   |---|///|   |   |   |   |---|///&amp;gt;   |   |   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;  |   &amp;lt;   |---|---|   |   |   |   |---|---|   |   |   |   |---|///&amp;gt;   |   |   |   &lt;br /&gt;
               P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;  |   |   &amp;lt;   |   |---|---|   |   |   |   |---|---|   |   |   |   |---|---&amp;gt;   |   &lt;br /&gt;
     Planificador  X   |   X   |   X   |   X   X   |   X   |   X   X   |   X   |   |   |   |   |      &lt;br /&gt;
              -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|--&amp;gt; t&lt;br /&gt;
                   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Turno rotatorio proporcional al número de procesos =&lt;br /&gt;
&lt;br /&gt;
                     ____|_P&amp;lt;sub&amp;gt;A &amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C &amp;lt;/sub&amp;gt;_|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|&lt;br /&gt;
           problema  _t__|_3__|_5__|_6__|&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;
                 &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;  &amp;lt;---|   |   |---|   |   |---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;  |   &amp;lt;---|   |   |---|   |   |---|   |   |---|   |---&amp;gt;   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;  |   |   &amp;lt;---|   |   |---|   |   |---|---|   |---|   |---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
    Planificador &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; X   X   X   X   X   X   X   X   X   |   X   X   X   X   |   |   |   |   |   |   |   &lt;br /&gt;
            &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---&amp;gt; t&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;
                   _____|_P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
        Cálculos   __t__|_3__|_5__|_6__|&lt;br /&gt;
       de tiempos  __T__|_7__|_12_|_12_|&lt;br /&gt;
                   _T/t_|2.3_|2.4_|_2__|&lt;br /&gt;
&lt;br /&gt;
=============&lt;br /&gt;
Observaciones&lt;br /&gt;
=============&lt;br /&gt;
&lt;br /&gt;
- Al no existir en el instante de tiempo 0 problemas de concurrencia de procesos, ¿no debería el proceso A tener derecho a sus dos unidades de tiempo de quantum, aunque este solo utilice una unidad de tiempo debido al bloqueo por E/S?. Esto dejaría al procesador con dos procesos en estado preparado (B y C) en el instante de tiempo 2, donde ya se reduciría el quantum a 1 debido a la existencia de 2 o más procesos en estado preparado. ¿Cómo lo veis?&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-planif-procesos&amp;diff=319</id>
		<title>Sol-ejer2-planif-procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-planif-procesos&amp;diff=319"/>
				<updated>2011-03-21T15:06:01Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: Observación acerca de la solución propuesta por otro alumno.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Turno rotatorio proporcional al número de procesos =&lt;br /&gt;
&lt;br /&gt;
                     ____|_P&amp;lt;sub&amp;gt;A &amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C &amp;lt;/sub&amp;gt;_|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|&lt;br /&gt;
           problema  _t__|_3__|_5__|_6__|&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;
                 &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;  &amp;lt;---|   |   |---|   |   |---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;  |   &amp;lt;---|   |   |---|   |   |---|   |   |---|   |---&amp;gt;   |   |   |   |   |   |   |&lt;br /&gt;
               P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;  |   |   &amp;lt;---|   |   |---|   |   |---|---|   |---|   |---&amp;gt;   |   |   |   |   |   |&lt;br /&gt;
    Planificador &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; X   X   X   X   X   X   X   X   X   |   X   X   X   X   |   |   |   |   |   |   |   &lt;br /&gt;
            &amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt; -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---&amp;gt; t&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;
                   _____|_P&amp;lt;sub&amp;gt;A &amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C &amp;lt;/sub&amp;gt;_|&lt;br /&gt;
        Cálculos   __t__|_3__|_5__|_6__|&lt;br /&gt;
       de tiempos  __T__|_7__|_12_|_12_|&lt;br /&gt;
                   _T/t_|2.3_|2.4_|_2__|&lt;br /&gt;
&lt;br /&gt;
=============&lt;br /&gt;
Observaciones&lt;br /&gt;
=============&lt;br /&gt;
&lt;br /&gt;
- Al no existir en el instante de tiempo 0 problemas de concurrencia de procesos, ¿no debería el proceso A tener derecho a sus dos unidades de tiempo de quantum, aunque este solo utilice una unidad de tiempo debido al bloqueo por E/S?. Esto dejaría al procesador con dos procesos en estado preparado (B y C) en el instante de tiempo 2, donde ya se reduciría el quantum a 1 debido a la existencia de 2 o más procesos en estado preparado. ¿Cómo lo veis?&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Hilos&amp;diff=85</id>
		<title>Hilos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Hilos&amp;diff=85"/>
				<updated>2011-02-26T21:40:08Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: Página nueva: En un sistema basado en '''hilos''', los procesos poseen internamente varias líneas (hilos) de ejecución, en contraposición de la visión clásica de la ejecución lineal.  Dentro ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En un sistema basado en '''hilos''', los procesos poseen internamente varias líneas (hilos) de ejecución, en contraposición de la visión clásica de la ejecución lineal.&lt;br /&gt;
&lt;br /&gt;
Dentro de los programas, con frecuencia, aparecen ciertos sectores independientes entre sí. En un sistema con multiprogramación, podemos tomar cada sección como procesos independientes ya que la permutación en el orden de ejecución no altera el resultado final. Si alguna de estas secciones presentase algún estado de bloqueo, se sumaría al tiempo global de todo el proceso. Éste tiempo se vería reducido al encontrarnos en un sistema multiprogramado.&lt;br /&gt;
&lt;br /&gt;
Ésta división en múltiples procesos provoca que en memoria se deba reservar un espacio para cada uno y que tras la consecución de cada uno, haya que reunirse todos los resultados en un único espacio de memoria. Otra opción para evitar este problema es el uso de un espacio de memoria común, pero traería consigo problemas de permisos y protección de memoria.&lt;br /&gt;
&lt;br /&gt;
El concepto de '''hilo''' aparece para arreglar estos problemas:&lt;br /&gt;
&lt;br /&gt;
Las líneas internas del proceso se desarrollan sobre el mismo espacio de memoria (la asignada al proceso original). Al ser líneas de ejecución diferentes, poseen su puntero de instrucción, sus valores para los registros de trabajo y su propia pila. No existe la protección entre las diferentes líneas de ejecución,  por lo que una sola línea podría destruir el trabajo de las demás. El buen resultado de las líneas depende del programador.&lt;br /&gt;
&lt;br /&gt;
Al usar un espacio de memoria común, la comunicación entre los hilos es más directa que entre procesos independientes con su propio espacio reservado.&lt;br /&gt;
&lt;br /&gt;
La implantación del concepto de hilo provoca que en el sistema operativo sea necesaria la creación de llamadas al sistema referentes a él, tales como: creación de hilos, destrucción de hilos, suspensión, esperas, etc.&lt;br /&gt;
&lt;br /&gt;
El mismo sistema operativo usa el sistema de hilos para la programación de sus actividades.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Bloque_de_control_de_procesos&amp;diff=84</id>
		<title>Bloque de control de procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Bloque_de_control_de_procesos&amp;diff=84"/>
				<updated>2011-02-26T20:35:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jorcalmar: Página nueva: Para llevar acabo la gestión de un proceso, es necesario que el sistema operativo guarde cierta información necesaria.  A ésta estructura se le conoce como '''el bloque de control ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Para llevar acabo la gestión de un proceso, es necesario que el sistema operativo guarde cierta información necesaria.  A ésta estructura se le conoce como '''el bloque de control del proceso o PCB (Process Control Block)'''.&lt;br /&gt;
&lt;br /&gt;
El bloque de control de procesos difiere mucho de un sistema a otros pero existen contenidos comunes:&lt;br /&gt;
&lt;br /&gt;
. Identificación del proceso: Para identificar el proceso se puede utilizar tanto como un nombre como un número de identificación conocido como pid (process identification number). A veces se usan ambos.&lt;br /&gt;
&lt;br /&gt;
. Prioridad del proceso o el tipo.&lt;br /&gt;
&lt;br /&gt;
. Estado del proceso para el planificador (preparado, activo, suspendido, etc.).&lt;br /&gt;
&lt;br /&gt;
. Estado actual del procesador (registros, bits de estados, etc.)&lt;br /&gt;
&lt;br /&gt;
. Información y estadísticas sobre la planificación y la utilización de los recursos.&lt;br /&gt;
&lt;br /&gt;
. Información de la gestión de memoria (tablas, mapas, registros, etc.).&lt;br /&gt;
&lt;br /&gt;
. Estado de L/E (asignación de dispositivos, operaciones en espera).&lt;br /&gt;
&lt;br /&gt;
. Información de los archivos abiertos.&lt;/div&gt;</summary>
		<author><name>Jorcalmar</name></author>	</entry>

	</feed>