<?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=Josramgon3</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=Josramgon3"/>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php/Especial:Contribuciones/Josramgon3"/>
		<updated>2026-04-13T13:26:00Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-1-otros-aspectos&amp;diff=3075</id>
		<title>Sol-ejer2-1-otros-aspectos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer2-1-otros-aspectos&amp;diff=3075"/>
				<updated>2015-11-04T19:59:53Z</updated>
		
		<summary type="html">&lt;p&gt;Josramgon3: /* SJF Apropiativo con  multiprocesamiento. Error en explicación, cambio a 'proceso B se deja en el procesador 1' */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SJF Apropiativo con  multiprocesamiento ==&lt;br /&gt;
&lt;br /&gt;
Para este caso disponemos de 2 Procesadores, y supondremos que el planificador se ejecuta en uno de ellos&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 cada 1 u.t.&lt;br /&gt;
 P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; bloquea cada 3 u.t.&lt;br /&gt;
 tiempos de bloqueo=2 u.t. (tanto para P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; y P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;).&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;
                       B = el proceso pasa a estado bloqueado&lt;br /&gt;
                       P = el proceso pasa a estado preparado&lt;br /&gt;
                       +++ = procesador 1&lt;br /&gt;
                       --- = procesador 2&lt;br /&gt;
 &lt;br /&gt;
                   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
    Pa             &amp;lt;+++B   |   P---B   |   P---B   |   &amp;gt;   |   |   |&lt;br /&gt;
    Pb             |   &amp;lt;+++|+++|+++B   |   P+++|+++&amp;gt;   |   |   |   |&lt;br /&gt;
    Pc             |   |   &amp;lt;---P   |---|---P   |---|---|---&amp;gt;   |   |&lt;br /&gt;
    Planificador   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&lt;br /&gt;
 &lt;br /&gt;
                        _____|_PA_|_PB_|_PC_|&lt;br /&gt;
             Cálculos   __t__|_3__|_5__|_6__|&lt;br /&gt;
            de tiempos  __T__|_7__|_7__|_8__|&lt;br /&gt;
                        _T/t_|_2.3|_1.4|_1.3|&lt;br /&gt;
                          |&lt;br /&gt;
                          |_&amp;gt; Indice de penalización&lt;br /&gt;
&lt;br /&gt;
Explicación:&lt;br /&gt;
&lt;br /&gt;
* En el instante de tiempo 3, el proceso Pa pasa a estado preparado y su tiempo de ejecución es menor al del proceso Pc. Por tanto, se apropia del procesador 2. Recuerde que '''siempre que sea posible''' el proceso que pasa a estado activo debe hacerlo en el último procesador que empleó para evitar el coste asociado a la migración. En caso de no ser posible, '''se migra''' al procesador disponible. El proceso B se deja en el procesador 1 para evitar el coste asociado a la migración pues '''no''' se considera posible migrar un proceso en estado activo.&lt;br /&gt;
&lt;br /&gt;
* En el instante de tiempo 6, el proceso Pa y Pb, que son más cortos que el proceso Pc, se apropian de los procesadores. Puesto que en asignación dinámica, '''siempre que sea posible''' se mantiene al proceso en el procesador en el que se ejecutó anteriormente, nuestro proceso Pa pasa al procesador 2, y el proceso Pb pasa al procesador 1 (pues estos son los procesadores en los que se ejecutaron anteriormente).&lt;br /&gt;
&lt;br /&gt;
Revisado. --[[Usuario:Pneira|Pneira]] 18:27 23 nov 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Josramgon3</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Planificaci%C3%B3n_de_procesos_de_tiempo_real&amp;diff=3072</id>
		<title>Planificación de procesos de tiempo real</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Planificaci%C3%B3n_de_procesos_de_tiempo_real&amp;diff=3072"/>
				<updated>2015-11-04T18:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Josramgon3: /* Métodos de planificación, error en cálculo de T y T/t para Pc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es un proceso de tiempo real? ==&lt;br /&gt;
&lt;br /&gt;
Un proceso de tiempo real es aquel cuya actividad tiene un '''plazo de finalización'''.&lt;br /&gt;
&lt;br /&gt;
== ¿Qué es un sistema operativo de tiempo real? ==&lt;br /&gt;
&lt;br /&gt;
Un sistema operativo de tiempo real dispone de un planificador de procesos que tiene mecanismos para hacer lo máximo posible para garantizar que sus procesos de tiempo real cumplan los plazos de finalización que tienen establecidos.&lt;br /&gt;
&lt;br /&gt;
== Clasificación ==&lt;br /&gt;
&lt;br /&gt;
Podemos clasificar los procesos de tiempo real de diferentes maneras:&lt;br /&gt;
&lt;br /&gt;
Segun el plazo de tiempo:&lt;br /&gt;
*'''Rígidos(''hard-realtime'')''' : se debe realizar en un plazo de tiempo determinado. Si no lo hace, deja de tener sentido. Si el plazo de tiempo para realizarla es superado el proceso se aborta. Ejemplo: Industriales ( sensores, activadores,...).&lt;br /&gt;
&lt;br /&gt;
*'''Flexibles(''soft-realtime'')''' : es deseable que se cumpla el plazo de tiempo. Ej: Videoconferencia.(Mientras más rapido vaya mejor sera la comunicacion , pero si no , nos adaptamos a ella)&lt;br /&gt;
&lt;br /&gt;
*'''Opcionales''' : conviene hacerla en el plazo de tiempo, pero si no es posible se puede posponer. Ej: actualización de una aplicacion/programa instalada en el ordenador.&lt;br /&gt;
&lt;br /&gt;
Según la periodicidad:&lt;br /&gt;
&lt;br /&gt;
*'''Aperiódicas''' : se deben a sucesos externos que deben ser atendidos. El sistema operativo no sabe, a priori, cuándo van a llegar ni el tiempo que va a durar. Ej: Notificaciones de errores, Sensores de emergencia en un coche, Ventiladores para refrigeración.&lt;br /&gt;
&lt;br /&gt;
*'''Periódicas''' : se realizan cada cierto tiempo (actividad repetitiva). A diferencia del anterior el sistema operativo conoce a priori cuándo van a llegar y su tiempo de duración Ej: leer la temperatura de un sensor.&lt;br /&gt;
&lt;br /&gt;
Podemos tener aplicaciones de tiempo real (flexibles) en sistemas operativos que no son de tiempo real (Linux, [http://darwinosx.blogspot.com/p/descarga-darwin-os.html Darwin], Windows).&lt;br /&gt;
&lt;br /&gt;
== Métodos de planificación ==&lt;br /&gt;
&lt;br /&gt;
Los métodos de planificación a utilizar en SSOO de tiempo real son:&lt;br /&gt;
&lt;br /&gt;
*'''Planificación apropiativa con prioridad estática''': Cada proceso tiene asociado un índice de prioridad y el procesador elige aquel proceso de la lista de preparados con mayor prioridad, es el más tradicional y puede ser llevado a cabo por el procesador de un sistema que no sea de tiempo real.&lt;br /&gt;
&lt;br /&gt;
*'''Planificación de tablas estáticas''': se conocen las actividades a realizar (todas periódicas) y se elabora un plan fijo de ejecución.&lt;br /&gt;
&lt;br /&gt;
*'''Planificación dinámica''': Es muy parecida a la de tablas estáticas , pero también admite actividades aperiódicas. Cuando se presenta una actividad aperiódica , el planificador intenta construir un nuevo plan de ejecución que incluya a todas las actividades. Si no encuentra la solución que las englobe a todas, rechaza la actividad, que debe ser flexible u opcional. También puede retrasar alguna actividad flexible/opcional.&lt;br /&gt;
&lt;br /&gt;
*'''Planificación dinámica con un mejor resultado''':Se utiliza para aplicaciones compuestas mayormente por actividades aperiódicas.El planificador intenta cumplir el plazo de todas las actividades asignandole a cada actividad una prioridad en base a sus características (las actividades fuera de plazo se abortan). Es muy similar a la anterior, la diferencia más notable es que en la anterior existe un análisis previo aceptando actividades aperiódicas y en ésta no existe tal análisis.&lt;br /&gt;
Es un método fácil de implementar, sin embargo, no podremos saber de antemano si una actividad cumplirá su plazo o no (sabremos que no lo cumple si es abortada, y viceversa).&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo emplea planificación apropiativa por prioridades estática con actividades periódicas y aperiódicas:&lt;br /&gt;
&lt;br /&gt;
                    ____|__PA__|_PB__|_PC__|_PD___|&lt;br /&gt;
         Datos del  _H0_|__0___|_1___|_2___|_3*n__|&lt;br /&gt;
          problema  _t__|__2___|_4___|_2___|_1____|&lt;br /&gt;
                   plazo|__3___|_5___|_7___|_3*n+2|&lt;br /&gt;
               prioridad|__-20_|_0___|_10__|_15___|&lt;br /&gt;
               (-20 a 19)&lt;br /&gt;
                 UNIX  &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;
                  plazo = si la actividad no ha terminado de ejecutarse tras pasar este instante de tiempo, se aborta&lt;br /&gt;
                      * = el proceso se aborta&lt;br /&gt;
 &lt;br /&gt;
                  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
              PA  &amp;lt;---|---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
              PB  |   &amp;lt;   |---|---|---*   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
              PC  |   |   &amp;lt;   |   |   |---|---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
              PD  |   |   |   &amp;lt;   |   *   &amp;lt;   |---&amp;gt;   &amp;lt;---&amp;gt;   |   &amp;lt;---&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  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;_|P&amp;lt;sub&amp;gt;D1ª&amp;lt;/sub&amp;gt;_|P&amp;lt;sub&amp;gt;D2ª&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
              Cálculos   __t__|_2__|_3__|_2__|_1__|_1__|_1__|&lt;br /&gt;
             de tiempos  __T__|_2__|_*__|_5__|_*__|_2__|_1__|&lt;br /&gt;
                         _T/t_|_1__|_*__|_5/2|_*__|_2__|_1__|&lt;br /&gt;
                        |&lt;br /&gt;
                        |_&amp;gt; Indice de penalización&lt;br /&gt;
&lt;br /&gt;
Si alguna actividad entrante tiene más prioridad que la que se está ejecutando, ésta última pasa a estado preparado y se da paso a la nueva.&lt;/div&gt;</summary>
		<author><name>Josramgon3</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Planificadores_de_sistemas_operativos_existentes&amp;diff=3071</id>
		<title>Planificadores de sistemas operativos existentes</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Planificadores_de_sistemas_operativos_existentes&amp;diff=3071"/>
				<updated>2015-11-04T17:00:26Z</updated>
		
		<summary type="html">&lt;p&gt;Josramgon3: /* Planificador de Windows, errores ortográficos en el último párrafo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Planificador de Linux 2.6 =&lt;br /&gt;
 &lt;br /&gt;
Este planificador posee 140 prioridades (de 0 a 139), de 0 a 99 son para tiempo real y para el resto de procesos que no son de tiempo real de 100 a 139 basadas en el Nice(de -20 a 19).&lt;br /&gt;
&lt;br /&gt;
Posee un mapa de bits (140 bits), 1 bit para cada prioridad en la que implementan distintas estructuras SCHED_FIFO y SCHED_RR ambas para tiempo real y el resto SCHED_OTHER. Esta ultima estructura posee el número de procesos preparados y dos colas, una para los procesos pendientes y otra para los que ya han consumido su ''quantum''. Cuando un proceso solo consume una parte de su ''quantum'' es insertado al final de la cola de pendientes con lo que le queda de su ventana de tiempo(es decir, si ha consumido el 25% la siguiente vez que sea asignado al procesador solo tendra el 75% del ''quantum''), y si consume totalmente su tiempo de asignación al procesador este pasa a la cola de consumido hasta que este totalmente vacía la cola de pendientes. (Esto se hace para compensar los procesos más interactivos)&lt;br /&gt;
&lt;br /&gt;
      Esquema de estructura de SCHED_OTHER:&lt;br /&gt;
  &lt;br /&gt;
         &amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;struct&amp;lt;/font&amp;gt;{&lt;br /&gt;
            &amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt; num_procesos_preparados&lt;br /&gt;
            cola pendientes&lt;br /&gt;
            cola consumido_quantum&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
= Planificador Mac Os X (Darwin) =&lt;br /&gt;
&lt;br /&gt;
La planificación en el kernel de Mac OS X esta basada en cuatro listas de ejecución, cada una de ellas con diferente prioridad. Un hilo puede migrar de un nivel de prioridad a otro en función de sus requerimientos, dependiendo de la política en concreto que se utilice en el sistema. En general, es posible manejar estas prioridades mediante los procedimientos definidos en el estándar de llamadas POSIX. Con lo que podemos decir, que se trata de un '''criterio de planificación en colas multinivel''' mezclado con '''prioridades'''. Algo parecido al planificador SCHED_OTHER de Linux.&lt;br /&gt;
&lt;br /&gt;
Las cuatro listas de ejecución que maneja el planificador de Mac OS X, son:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:DarwinSched.svg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Planificador de Windows =&lt;br /&gt;
&lt;br /&gt;
El planificador utiliza un sistema de multi-cola ordenadas por prioridades. Son 32 niveles de prioridades (de 0 a 31) que se dividen de la siguiente forma:&lt;br /&gt;
&lt;br /&gt;
 - Niveles 16 a 31: Tiempo Real&lt;br /&gt;
 - Niveles 1 a 15: Variable&lt;br /&gt;
 - Nivel 0: Reservado para el sistema&lt;br /&gt;
&lt;br /&gt;
El planificador utiliza Round Robin para recorrer las distintas colas. Tiene un quantum fijo que por defecto valdrá q=2 o q=12, dependiendo de si es un SO de servidor o de usuario. El quantum se puede cambiar entre estos dos valores a través del sistema.&lt;br /&gt;
&lt;br /&gt;
Windows utiliza este sistema de planificación desde Windows NT.&lt;br /&gt;
Si quieres saber más del sistema de planificación de Windows puedes leer el libro Windows Internals[http://download.sysinternals.com/Files/WindowsInternals-Ch05.pdf](PDF), donde se explica el funcionamiento y las caracteristicas de todo el SO.&lt;/div&gt;</summary>
		<author><name>Josramgon3</name></author>	</entry>

	</feed>