<?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=Aliciammf</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=Aliciammf"/>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php/Especial:Contribuciones/Aliciammf"/>
		<updated>2026-06-17T03:29:51Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Monitores&amp;diff=627</id>
		<title>Monitores</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Monitores&amp;diff=627"/>
				<updated>2011-04-06T14:21:31Z</updated>
		
		<summary type="html">&lt;p&gt;Aliciammf: /* Definición */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Idea desarrollada en los años 70 Brinch-Hansen y Hoare que notaron los siguientes problemas con respecto al uso de los semáforos:&lt;br /&gt;
&lt;br /&gt;
* Los semáforos son difíciles de usar. Es frecuente que el programador cometa errores al emplearlos.&lt;br /&gt;
* El compilador no asiste al programador en el desarrollo de programas concurrentes mediante semáforos, pues no ofrece ningún tipo de validación en tiempo de compilación.&lt;br /&gt;
&lt;br /&gt;
Los monitores tienen que estar integrados en el lenguaje de programación.&lt;br /&gt;
&lt;br /&gt;
== Definición ==&lt;br /&gt;
Un monitor es una estructura del lenguaje cuyas principales características son:&lt;br /&gt;
&lt;br /&gt;
* Los datos son privados.&lt;br /&gt;
* Ofrecen una serie de métodos públicos para acceder a dichos datos.&lt;br /&gt;
* En cada momento sólo puede haber un proceso activo en algún método del monitor, es decir, ejecutando código de esos métodos públicos del monitor.&lt;br /&gt;
&lt;br /&gt;
Permiten organizar procesos en espera mediante:&lt;br /&gt;
&lt;br /&gt;
* Variables de condición: lista de procesos inicialmente vacía.&lt;br /&gt;
* Primitivas: ''wait(c)'', añade el proceso p invocante a c y proceso p bloquea; ''signal(c)'', selecciona a uno de los procesos en c y lo pone en preparado.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class recursoCompartido {&lt;br /&gt;
&lt;br /&gt;
    public int get(void);&lt;br /&gt;
    public void set(int valor);&lt;br /&gt;
    private int recursoCompartido;&lt;br /&gt;
    private Semaforo s = 1;&lt;br /&gt;
&lt;br /&gt;
    public int get(void){&lt;br /&gt;
        int ret;&lt;br /&gt;
        down(s);&lt;br /&gt;
        ret = recursoCompartido;&lt;br /&gt;
        up(s);&lt;br /&gt;
        return ret;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void set(int valor){&lt;br /&gt;
        down(s);&lt;br /&gt;
        recursoCompartido = v;&lt;br /&gt;
        up(s);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fuentes ==&lt;br /&gt;
http://java.sun.com/developer/Books/performance2/chap4.pdf&lt;/div&gt;</summary>
		<author><name>Aliciammf</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Cerrojos&amp;diff=626</id>
		<title>Cerrojos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Cerrojos&amp;diff=626"/>
				<updated>2011-04-06T14:15:55Z</updated>
		
		<summary type="html">&lt;p&gt;Aliciammf: /* Cerrojos mediante instrucciones atómicas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ejemplo de implementación =&lt;br /&gt;
&lt;br /&gt;
El siguiente código sería un posible ejemplo del uso de control de concurrencia mediante cerrojos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int cerrojo = 1;      /* Inicializamos la variable cerrojo. Esto sería sólo válido para&lt;br /&gt;
                         hilos, ya que los procesos no comparten espacio de memoria */&lt;br /&gt;
&lt;br /&gt;
while(cerrojo == 0);  // Protocolo de&lt;br /&gt;
cerrojo = 0;          // entrada&lt;br /&gt;
&lt;br /&gt;
...                   // Sección crítica&lt;br /&gt;
&lt;br /&gt;
cerrojo = 1;          // Protocolo de salida&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sin embargo, esto es problemático: Supongamos que tenemos únicamente un proceso con dos hilos (Hx y Hy) y el planificador retire al proceso Hx justo antes de ejecutarse la instrucción ''cerrojo = 0;''. El proceso Hy ejecuta su código, entra en la sección crítica (Esto puede ocurrir ya que cerrojo sigue a 1) y el planificador le retira el uso del procesador dentro de ésta. A continuación, se le vuelve a asignar el procesador a Hx.&lt;br /&gt;
&lt;br /&gt;
De esta forma, tenemos a dos hilos ejecutando código de la sección crítica. Para evitar este problema, debemos implementar los protocolos de entrada y salida de forma que se ejecuten en una sola instrucción, con lo cual o el planificador retira el uso del procesador antes de esta instrucción, o sino lo retira después de haberla ejecutado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Cerrojos mediante instrucciones atómicas =&lt;br /&gt;
&lt;br /&gt;
Podemos implementar cerrojos mediante instrucciones especiales de comprobación y puesta a 0 y 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int cerrojo = 0;&lt;br /&gt;
&lt;br /&gt;
void lock() {&lt;br /&gt;
    while (__sync_lock_test_and_set(&amp;amp;cerrojo, 1));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void unlock() {&lt;br /&gt;
    __sync_lock_release(&amp;amp;cerrojo);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El método lock comprueba mediante __sync_locktest_and_set(&amp;amp;cerrojo,1) el valor del cerrojo: si es 0, cambia el valor del cerrojo a 1 y devuelve 0, por tanto, se sale del while y entra en sección crítica; si es 1, devuelve 1 y continúa comprobando el valor, por tanto, no entra en situación crítica hasta que cambie el valor del cerrojo.&lt;br /&gt;
&lt;br /&gt;
El método unlock simplemente, mediante _sync_lock_release(&amp;amp;cerrojo) cambia el valor del cerrojo a 0.&lt;br /&gt;
&lt;br /&gt;
* http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html&lt;br /&gt;
* http://stackoverflow.com/questions/1383363/is-my-spin-lock-implementation-correct-and-optimal&lt;/div&gt;</summary>
		<author><name>Aliciammf</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Cerrojos&amp;diff=625</id>
		<title>Cerrojos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Cerrojos&amp;diff=625"/>
				<updated>2011-04-06T14:14:54Z</updated>
		
		<summary type="html">&lt;p&gt;Aliciammf: /* Cerrojos mediante instrucciones atómicas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ejemplo de implementación =&lt;br /&gt;
&lt;br /&gt;
El siguiente código sería un posible ejemplo del uso de control de concurrencia mediante cerrojos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int cerrojo = 1;      /* Inicializamos la variable cerrojo. Esto sería sólo válido para&lt;br /&gt;
                         hilos, ya que los procesos no comparten espacio de memoria */&lt;br /&gt;
&lt;br /&gt;
while(cerrojo == 0);  // Protocolo de&lt;br /&gt;
cerrojo = 0;          // entrada&lt;br /&gt;
&lt;br /&gt;
...                   // Sección crítica&lt;br /&gt;
&lt;br /&gt;
cerrojo = 1;          // Protocolo de salida&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sin embargo, esto es problemático: Supongamos que tenemos únicamente un proceso con dos hilos (Hx y Hy) y el planificador retire al proceso Hx justo antes de ejecutarse la instrucción ''cerrojo = 0;''. El proceso Hy ejecuta su código, entra en la sección crítica (Esto puede ocurrir ya que cerrojo sigue a 1) y el planificador le retira el uso del procesador dentro de ésta. A continuación, se le vuelve a asignar el procesador a Hx.&lt;br /&gt;
&lt;br /&gt;
De esta forma, tenemos a dos hilos ejecutando código de la sección crítica. Para evitar este problema, debemos implementar los protocolos de entrada y salida de forma que se ejecuten en una sola instrucción, con lo cual o el planificador retira el uso del procesador antes de esta instrucción, o sino lo retira después de haberla ejecutado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Cerrojos mediante instrucciones atómicas =&lt;br /&gt;
&lt;br /&gt;
Podemos implementar cerrojos mediante instrucciones especiales de comprobación y puesta a 0 y 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int cerrojo = 0;&lt;br /&gt;
&lt;br /&gt;
void lock() {&lt;br /&gt;
    while (__sync_lock_test_and_set(&amp;amp;cerrojo, 1));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void unlock() {&lt;br /&gt;
    __sync_lock_release(&amp;amp;cerrojo);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El método lock comprueba mediante __sync_locktest_and_set(&amp;amp;cerrojo,1) el valor del cerrojo, si es 0, cambia el valor del cerrojo a 1 y devuelve 0, por tanto, se sale del while, si es 1, devuelve 1 y continúa comprobando el valor, por tanto, no entra en situación crítica.&lt;br /&gt;
&lt;br /&gt;
El método unlock simplemente, mediante _sync_lock_release(&amp;amp;cerrojo) cambia el valor del cerrojo a 0.&lt;br /&gt;
&lt;br /&gt;
* http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html&lt;br /&gt;
* http://stackoverflow.com/questions/1383363/is-my-spin-lock-implementation-correct-and-optimal&lt;/div&gt;</summary>
		<author><name>Aliciammf</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-planif-procesos&amp;diff=360</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=360"/>
				<updated>2011-03-21T18:11:26Z</updated>
		
		<summary type="html">&lt;p&gt;Aliciammf: /* = */&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;
DEBERIAS PONER ESTO EN LA ZONA DE DISCUSIÓN&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 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;
= Por prioridades =&lt;br /&gt;
&lt;br /&gt;
Suponiendo que la prioridad de los procesos es la siguiente: A&amp;lt;B&amp;lt;C&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;
                       / = Tiempo desaprovechado por bloqueo de E/S.&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   |   |   |   |   |   |    &lt;br /&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__|_20_|_13_|_6_|&lt;br /&gt;
                   _T/t_|6.66|_2.6|_1__|&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;br /&gt;
&lt;br /&gt;
Creo que no, porque ya en el instante 1 hay dos procesos en el planificador, por lo que el quantum ya se reduce.&lt;/div&gt;</summary>
		<author><name>Aliciammf</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Discusi%C3%B3n:Sol-ejer2-planif-procesos&amp;diff=358</id>
		<title>Discusión:Sol-ejer2-planif-procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Discusi%C3%B3n:Sol-ejer2-planif-procesos&amp;diff=358"/>
				<updated>2011-03-21T18:07:12Z</updated>
		
		<summary type="html">&lt;p&gt;Aliciammf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creo que la solución al ejercicio 2.1 es la siguiente :&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;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;
Tengo dudas referente a lo que dice el enunciado de que se producirá un bloqueo por E/S en el pA por cada unidad de tiempo. En la unidad de tiempo 6 se han ejecutado dos unidades de tiempo por lo que se producirán dos bloqueos por E/S, por lo tanto, tras ejecutarse esa unidad de tiempo se tendrán que bloquear dos unidades de tiempo más.Pero como el quantum es de 2 unidades,únicamente se bloquea una unidad. Y así ocurre con todas las veces que se ejecuta el Pa. Estoy en lo cierto?&lt;br /&gt;
En el criterio de planificación del RR dice que cuando el proceso pasa a estado bloqueado antes de la finalización del quantum pasa al final de la cola,¿eso quiere decir que en el momento que esté en estado bloqueado termina directamente su ejecución dándole opción al planificador de aplicador de nuevo el criterio utilizado,o por el contrario tiene que estar las unidades de tiempo necesarias en estado bloqueado hasta la finalización del quantum?&lt;br /&gt;
&lt;br /&gt;
Creo que sí estás en lo cierto en lo referente al bloqueo del Pa. Por Round Robin estricto el quantum se debe de hacer entero, aunque esté en bloqueado o haya finalizado el proceso que lo ocupa. Es distinto que pase al final de la cola a que se termine el quantum.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por cierto, creo que la solución de prioridades está mal, aquí la que creo es la solución:&lt;br /&gt;
&lt;br /&gt;
                                                                &lt;br /&gt;
                  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   &lt;br /&gt;
              PA  &amp;lt;---|   |   |   |   |   |   |   |   |   |---|///|   |   |---&amp;gt;   |   |   |   |   &lt;br /&gt;
              PB  |   &amp;lt;---|   |   |   |   |   |   |---|---|///|///|---|---&amp;gt;   |   |   |   |   |   |      &lt;br /&gt;
              PC  |   |   &amp;lt;---|---|---|---|---|---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   &lt;br /&gt;
    Planificador  X   X   X   |   |   |   |   |   X       X   |   X   |   X   |   |   |   |   |   |    &lt;br /&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;
Supongo que al no ser quantums fijos en el instante 10 que PB pasa a bloqueado, Pa puede ejecutarse. Lo pongo en discusión porque no se si estoy equivocada.&lt;/div&gt;</summary>
		<author><name>Aliciammf</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Discusi%C3%B3n:Sol-ejer2-planif-procesos&amp;diff=357</id>
		<title>Discusión:Sol-ejer2-planif-procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Discusi%C3%B3n:Sol-ejer2-planif-procesos&amp;diff=357"/>
				<updated>2011-03-21T18:02:08Z</updated>
		
		<summary type="html">&lt;p&gt;Aliciammf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Creo que la solución al ejercicio 2.1 es la siguiente :&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;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;
Tengo dudas referente a lo que dice el enunciado de que se producirá un bloqueo por E/S en el pA por cada unidad de tiempo. En la unidad de tiempo 6 se han ejecutado dos unidades de tiempo por lo que se producirán dos bloqueos por E/S, por lo tanto, tras ejecutarse esa unidad de tiempo se tendrán que bloquear dos unidades de tiempo más.Pero como el quantum es de 2 unidades,únicamente se bloquea una unidad. Y así ocurre con todas las veces que se ejecuta el Pa. Estoy en lo cierto?&lt;br /&gt;
En el criterio de planificación del RR dice que cuando el proceso pasa a estado bloqueado antes de la finalización del quantum pasa al final de la cola,¿eso quiere decir que en el momento que esté en estado bloqueado termina directamente su ejecución dándole opción al planificador de aplicador de nuevo el criterio utilizado,o por el contrario tiene que estar las unidades de tiempo necesarias en estado bloqueado hasta la finalización del quantum?&lt;br /&gt;
&lt;br /&gt;
Creo que sí estás en lo cierto en lo referente al bloqueo del Pa. Por Round Robin estricto el quantum se debe de hacer entero, aunque esté en bloqueado o haya finalizado el proceso que lo ocupa. Es distinto que pase al final de la cola a que se termine el quantum.&lt;/div&gt;</summary>
		<author><name>Aliciammf</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Conceptos_b%C3%A1sicos&amp;diff=274</id>
		<title>Conceptos básicos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Conceptos_b%C3%A1sicos&amp;diff=274"/>
				<updated>2011-03-19T12:04:23Z</updated>
		
		<summary type="html">&lt;p&gt;Aliciammf: /* Fichero */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A continuación se desarrollan conceptos básicos que se emplearan a los largo de la asignatura.&lt;br /&gt;
&lt;br /&gt;
= Programa =&lt;br /&gt;
&lt;br /&gt;
Se trata de una secuencia de instrucciones que desarrolla algún tipo de actividad útil.&lt;br /&gt;
&lt;br /&gt;
= Proceso =&lt;br /&gt;
&lt;br /&gt;
Un proceso es una instancia de un programa que está en ejecución. Todo proceso dispone como mínimo de una línea de ejecución.&lt;br /&gt;
&lt;br /&gt;
Queda definido por: {programa, estado}&lt;br /&gt;
&lt;br /&gt;
= Usuario = &lt;br /&gt;
&lt;br /&gt;
Puede ser un humano o un autómata. &lt;br /&gt;
&lt;br /&gt;
En sistemas UNIX encontramos un código único para cada uno, el UID (User IDentifier). A su vez debe pertenecer a un grupo, definido por el GID (Group IDentifier).&lt;br /&gt;
&lt;br /&gt;
= Fichero = &lt;br /&gt;
&lt;br /&gt;
Estructura de datos que almacena información.&lt;/div&gt;</summary>
		<author><name>Aliciammf</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Conceptos_b%C3%A1sicos&amp;diff=273</id>
		<title>Conceptos básicos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Conceptos_b%C3%A1sicos&amp;diff=273"/>
				<updated>2011-03-19T12:02:39Z</updated>
		
		<summary type="html">&lt;p&gt;Aliciammf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A continuación se desarrollan conceptos básicos que se emplearan a los largo de la asignatura.&lt;br /&gt;
&lt;br /&gt;
= Programa =&lt;br /&gt;
&lt;br /&gt;
Se trata de una secuencia de instrucciones que desarrolla algún tipo de actividad útil.&lt;br /&gt;
&lt;br /&gt;
= Proceso =&lt;br /&gt;
&lt;br /&gt;
Un proceso es una instancia de un programa que está en ejecución. Todo proceso dispone como mínimo de una línea de ejecución.&lt;br /&gt;
&lt;br /&gt;
Queda definido por: {programa, estado}&lt;br /&gt;
&lt;br /&gt;
= Usuario = &lt;br /&gt;
&lt;br /&gt;
Puede ser un humano o un autómata. &lt;br /&gt;
&lt;br /&gt;
En sistemas UNIX encontramos un código único para cada uno, el UID (User IDentifier). A su vez debe pertenecer a un grupo, definido por el GID (Group IDentifier).&lt;br /&gt;
&lt;br /&gt;
= Fichero = &lt;br /&gt;
&lt;br /&gt;
Estructura de datos que sirve para almacenar los mismos.&lt;/div&gt;</summary>
		<author><name>Aliciammf</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Planificaci%C3%B3n_de_procesos&amp;diff=246</id>
		<title>Planificación de procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Planificaci%C3%B3n_de_procesos&amp;diff=246"/>
				<updated>2011-03-17T12:46:53Z</updated>
		
		<summary type="html">&lt;p&gt;Aliciammf: /* Aspectos para diseñar un buen criterio de planificación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Todo planificador de procesos emplea uno o varios criterios (''scheduling policy'', en inglés) que determinan el criterio de selección del proceso que empleará el procesador.&lt;br /&gt;
&lt;br /&gt;
== Aspectos para diseñar un buen criterio de planificación ==&lt;br /&gt;
&lt;br /&gt;
Además de ofrecer un alto rendimiento y una baja latencia propia de un buen planificador, debe cumplir las siguientes características:&lt;br /&gt;
&lt;br /&gt;
*'''Repetitividad''' : con cargas de trabajo (cantidad de procesos a atender) similares, el procesador debe tener comportamientos similares.&lt;br /&gt;
*'''Predecibilidad''' : hace referencia la tiempo de terminación de un proceso para cierta carga de trabajo, deben ser similares con cargas de trabajo parecidas.&lt;br /&gt;
*'''Eficiencia''' : debe tomar decisiones rápidas para aumentar el rendimiento.&lt;br /&gt;
*'''Reducir el número de conmutaciones''' : de nuevo, para aumentar el rendimiento y reducir la penalización asociada.&lt;br /&gt;
*'''Atender prioridades'''.&lt;br /&gt;
* A mayores cargas de trabajo el rendimiento debe '''degradar uniformemente'''.&lt;/div&gt;</summary>
		<author><name>Aliciammf</name></author>	</entry>

	</feed>