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

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_de_paginaci%C3%B3n_y_segmentaci%C3%B3n&amp;diff=1255</id>
		<title>Ejercicios de paginación y segmentación</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_de_paginaci%C3%B3n_y_segmentaci%C3%B3n&amp;diff=1255"/>
				<updated>2011-06-09T08:10:08Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: añadido ejercicios del control&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ejercicio 1==&lt;br /&gt;
&lt;br /&gt;
El proceso ocupa: 1 KB de código, 4 KB de pila, 5KB ctes+globales&lt;br /&gt;
&lt;br /&gt;
*Paginación pura (4KB de páginas) = 4 páginas -&amp;gt; 16 KB&lt;br /&gt;
 El código requiere 1 página&lt;br /&gt;
 La pila otra al completo&lt;br /&gt;
 Las globales necesitan 2&lt;br /&gt;
&lt;br /&gt;
*Segmentación pura = 3 segmentos, ocupan 10KB&lt;br /&gt;
 El codigo ocupa un segmento de 1 KB&lt;br /&gt;
 La pila uno de 4 KB&lt;br /&gt;
 Para globales es otro de 5KB&lt;br /&gt;
&lt;br /&gt;
*Combinado = 1 segmento de 4 páginas -&amp;gt; 16 KB&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2==&lt;br /&gt;
''[Este ejercicio formó parte del tercer Control de Evaluación Continua del curso 2010/11, del 8 de junio de 2011]''&lt;br /&gt;
&lt;br /&gt;
Suponga un sistema operativo con un administrador de memoria paginada cuyo tamaño de página es de 8KB. Se conoce que el sistema operativo funciona sobre un procesador cuyo tamaño de palabra es de 64 bits.&lt;br /&gt;
&lt;br /&gt;
'''A)''' Calcule el tamaño máximo que puede llegar a alcanzar la tabla de página de un proceso, suponiendo que cada entrada de la tabla de páginas ocupa 128 bits.&lt;br /&gt;
&lt;br /&gt;
'''B)''' Calcule cuántas páginas puede llegar a ocupar como máximo la tabla de páginas.&lt;br /&gt;
&lt;br /&gt;
'''C)''' Dado un proceso en ejecución que requiere 7 Mbytes, clacule cuántas entradas de la tabla de páginas están siendo empleadas por dicho proceso en el sistema descrito anteriormente.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de paginación y segmentación#Ejercicio 2|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_de_paginaci%C3%B3n_y_segmentaci%C3%B3n&amp;diff=1252</id>
		<title>Ejercicios de paginación y segmentación</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_de_paginaci%C3%B3n_y_segmentaci%C3%B3n&amp;diff=1252"/>
				<updated>2011-06-09T08:05:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Ejemplo de segmentación, paginación y combinado trasladada a Ejercicios de paginación y segmentación:&amp;amp;#32;Título más apropiado&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ejemplo 1==&lt;br /&gt;
&lt;br /&gt;
El proceso ocupa: 1 KB de código, 4 KB de pila, 5KB ctes+globales&lt;br /&gt;
&lt;br /&gt;
*Paginación pura (4KB de páginas) = 4 páginas -&amp;gt; 16 KB&lt;br /&gt;
 El código requiere 1 página&lt;br /&gt;
 La pila otra al completo&lt;br /&gt;
 Las globales necesitan 2&lt;br /&gt;
&lt;br /&gt;
*Segmentación pura = 3 segmentos, ocupan 10KB&lt;br /&gt;
 El codigo ocupa un segmento de 1 KB&lt;br /&gt;
 La pila uno de 4 KB&lt;br /&gt;
 Para globales es otro de 5KB&lt;br /&gt;
&lt;br /&gt;
*Combinado = 1 segmento de 4 páginas -&amp;gt; 16 KB&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejemplo_de_segmentaci%C3%B3n,_paginaci%C3%B3n_y_combinado&amp;diff=1253</id>
		<title>Ejemplo de segmentación, paginación y combinado</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejemplo_de_segmentaci%C3%B3n,_paginaci%C3%B3n_y_combinado&amp;diff=1253"/>
				<updated>2011-06-09T08:05:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Ejemplo de segmentación, paginación y combinado trasladada a Ejercicios de paginación y segmentación:&amp;amp;#32;Título más apropiado&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECCIÓN [[Ejercicios de paginación y segmentación]]&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_memoria_virtual&amp;diff=1250</id>
		<title>Ejercicios memoria virtual</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_memoria_virtual&amp;diff=1250"/>
				<updated>2011-06-09T08:03:47Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Añadidos ejercicios de memoria virtual  del control&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente secuencia de accesos a páginas:&lt;br /&gt;
&lt;br /&gt;
 1, 1, 1, 2, 3, 4, 5, 3, 1, 2, 3, 4&lt;br /&gt;
 r, r, w, r, r, r, r, w, w, w, r, r&lt;br /&gt;
&lt;br /&gt;
Suponiendo un sistema con un administrador de memoria teórico con cuatro marcos disponibles.&lt;br /&gt;
&lt;br /&gt;
Elabore el cronograma que represente la evolución de la relación páginas/marcos a lo largo del tiempo. Además, calcule la tasa de fallo de página para los siguientes criterios:&lt;br /&gt;
&lt;br /&gt;
* FIFO&lt;br /&gt;
* NRU (considere que el periodo de puesta a cero del bit R tiende a infinito, es decir, nunca se pone a cero)&lt;br /&gt;
* NRU con segunda oportunidad&lt;br /&gt;
* LRU&lt;br /&gt;
* LFU&lt;br /&gt;
* Sustitución por envejecimiento&lt;br /&gt;
&lt;br /&gt;
Ver [[solución ejercicio 1 memoria virtual|Solución]] de este ejercicio.&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2 ==&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente secuencia de accesos a páginas:&lt;br /&gt;
&lt;br /&gt;
1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6&lt;br /&gt;
&lt;br /&gt;
Suponiendo un sistema con un administrador de memoria teórico con cuatro marcos disponibles.&lt;br /&gt;
&lt;br /&gt;
Elabore el cronograma que represente la evolución de la relación páginas/marcos a lo largo del tiempo. Además, calcule la tasa de fallo de página para los siguientes criterios:&lt;br /&gt;
&lt;br /&gt;
* MRU&lt;br /&gt;
* LRU&lt;br /&gt;
&lt;br /&gt;
Responda brevemente, ¿cuál de los dos ofrece mejor solución en este caso? ¿por qué?&lt;br /&gt;
&lt;br /&gt;
Ver [[solución ejercicio 2 memoria virtual|Solución]] de este ejercicio.&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 3 ==&lt;br /&gt;
''[Este ejercicio formó parte del tercer Control de Evaluación Continua del curso 2010/11, del 8 de junio de 2011]''&lt;br /&gt;
&lt;br /&gt;
Suponga un sistema con un administrador de memoria teórico con cuatro marcos disponibles. Elabore el cronograma que represente la evolución de la relación páginas/marcos a lo largo del tiempo. Considere una situación de arranque en frío. Además, calcule la tasa de fallo de página. Todo ello para los siguientes criterios:&lt;br /&gt;
&lt;br /&gt;
'''A)''' NRU (en caso de empate LRU).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|'''Acceso a página'''&lt;br /&gt;
!Marco&lt;br /&gt;
!1(r)&lt;br /&gt;
!3(r)&lt;br /&gt;
!3(w)&lt;br /&gt;
!3(r)&lt;br /&gt;
!4(r)&lt;br /&gt;
!5(r)&lt;br /&gt;
!1(r)&lt;br /&gt;
!2(w)&lt;br /&gt;
!5(w)&lt;br /&gt;
!1(w)&lt;br /&gt;
!3(r)&lt;br /&gt;
!4(r)&lt;br /&gt;
|-&lt;br /&gt;
|1 &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;
|2 &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;
|3 &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;
|4 &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;
|FP &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;
tasa de fallo de página=&lt;br /&gt;
&lt;br /&gt;
'''B)''' Sustitución por envejecimiento (En caso de empate LRU). Úsese 3 bits de historia y hágase una puesta a cero cada cuatro accesos.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; width:500px; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|'''Acceso a página'''&lt;br /&gt;
!Marco&lt;br /&gt;
!2&lt;br /&gt;
!3&lt;br /&gt;
!3&lt;br /&gt;
!1&lt;br /&gt;
!4&lt;br /&gt;
!5&lt;br /&gt;
!4&lt;br /&gt;
!1&lt;br /&gt;
!5&lt;br /&gt;
!2&lt;br /&gt;
!3&lt;br /&gt;
!4&lt;br /&gt;
|-&lt;br /&gt;
|1 &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;
|2 &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;
|3 &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;
|4 &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;
|FP &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;
tasa de fallos de página=&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de memoria virtual#Ejercicio 3|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_de_Entrada/Salida&amp;diff=1247</id>
		<title>Ejercicios de Entrada/Salida</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_de_Entrada/Salida&amp;diff=1247"/>
				<updated>2011-06-09T07:46:56Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Añadidos ejercicios del control&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
''[Este ejercicio formó parte del cuarto control de Evaluación Continua del curso 2010/11, del 8 de junio de 2011]''&lt;br /&gt;
&lt;br /&gt;
Suponiendo que el procesador está asignado a un proceso en ejecución, por tanto, es estado activo, qué sucede cuando un dispositivo indica al procesador mediante una interrupción que dispone de datos a ser tratados? Marque la opción pertinente.&lt;br /&gt;
&lt;br /&gt;
A) Se continúa con la ejecución del proceso activo hasta que éste pase a estado bloqueado, entonces se realizar el tratamiento de la interrupción, que consistirá en invocar al gestor de dispositivo para que realice el tratamiento oportuno.&lt;br /&gt;
&lt;br /&gt;
B) Se retira el proceso activo, que pasará a estado preparado, y se ejecutará el código del gestor de dispositivos.&lt;br /&gt;
&lt;br /&gt;
C) Se invoca al planificador de procesos para que evalúe si tiene mayor prioridad la interrupción o el proceso.&lt;br /&gt;
&lt;br /&gt;
''([[Solución de los ejercicios de Entrada/Salida#Ejercicio 1|Ver solución]])''&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2 ==&lt;br /&gt;
''[Este ejercicio formó parte del cuarto control de Evaluación Continua del curso 2010/11, del 8 de junio de 2011]''&lt;br /&gt;
&lt;br /&gt;
Represente gráficamente el diseño modular basado en capas de E/S de un sistema operativo. Incluya una breve descripción de cada capa junto con flechas que reflejen el flujo de comunicación entre cada una de ellas.&lt;br /&gt;
&lt;br /&gt;
''([[Solución de los ejercicios de Entrada/Salida#Ejercicio 2|Ver solución]])''&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=P%C3%A1gina_Principal&amp;diff=1246</id>
		<title>Página Principal</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=P%C3%A1gina_Principal&amp;diff=1246"/>
				<updated>2011-06-09T07:35:54Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: añadido enlace ejercicios e/s&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bienvenido al wiki de la asignatura de Sistemas Operativos del departamento de Lenguajes y Sistemas Informáticos de la Universidad de Sevilla. ¡Regístrate y contribuye!&lt;br /&gt;
&lt;br /&gt;
= Unidades didácticas =&lt;br /&gt;
&lt;br /&gt;
A continuación encontrarás las unidades didácticas que forman parte de la asignatura.&lt;br /&gt;
&lt;br /&gt;
== Introducción a los Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* [[Qué es un Sistema Operativo|Qué es un sistema operativo]]&lt;br /&gt;
* [[Introducción histórica|Una introducción histórica a los sistemas operativos]]&lt;br /&gt;
* [[Tipos de Sistemas Operativos|Tipos de sistemas operativos]]&lt;br /&gt;
&lt;br /&gt;
== Fundamentos de Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* [[Conceptos básicos|Conceptos básicos]]&lt;br /&gt;
* [[Componentes básicos de un sistema operativo|Componentes básicos de un sistema operativo]]&lt;br /&gt;
* [[Llamadas al sistema|Llamadas al sistema]]&lt;br /&gt;
* [[Modelos de Diseño de Sistemas Operativos|Modelos de diseño de sistemas operativos]]&lt;br /&gt;
* [[Ejercicios fundamentos Sistemas Operativos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Procesos ==&lt;br /&gt;
* [[Multiprogramación|La multiprogramación]]&lt;br /&gt;
* [[Estados de los procesos|Estados de los procesos]]&lt;br /&gt;
* [[Planificador de procesos|El planificador de procesos]]&lt;br /&gt;
* [[Comportamiento de los procesos|El comportamiento de los procesos según el planificador]]&lt;br /&gt;
* [[Bloque de control de procesos|El bloque de control del proceso]]&lt;br /&gt;
* [[Conmutación de procesos|La conmutación de procesos]]&lt;br /&gt;
* [[Hilos|Hilos]]&lt;br /&gt;
* [[Ejercicios Procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Planificación de Procesos ==&lt;br /&gt;
* [[Planificación de procesos|La planificación de procesos]]&lt;br /&gt;
* [[Índices de evaluación|Índices de evaluación de la planificación de procesos]]&lt;br /&gt;
* [[Criterios de planificación|Criterios de planificación]]&lt;br /&gt;
* [[Planificadores de sistemas operativos existentes|Planificadores de sistemas operativos existentes]]&lt;br /&gt;
* [[Ejercicios planificación de procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Otros aspectos relacionados con la planificación de procesos ==&lt;br /&gt;
&lt;br /&gt;
* [[Planificación de procesos de tiempo real|La planificación de procesos de tiempo real]]&lt;br /&gt;
* [[Planificación en sistemas multiprocesadores|La planificación de procesos en sistemas multiprocesadores]]&lt;br /&gt;
* [[Ejercicios otros aspectos de la planificación|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Concurrencia de procesos ==&lt;br /&gt;
&lt;br /&gt;
* [[Concurrencia de procesos|Concurrencia de procesos]]&lt;br /&gt;
* [[Mecanismos de sincronización|Control optimista y pesimista de la concurrencia]]&lt;br /&gt;
* [[Cerrojos|Cerrojos]]&lt;br /&gt;
* [[Ejercicio de concurrencia de procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Semáforos y comunicación ==&lt;br /&gt;
&lt;br /&gt;
* [[Semáforos|Semáforos]]&lt;br /&gt;
* [[Monitores|Monitores]]&lt;br /&gt;
* [[Mensajería|Mensajería]]&lt;br /&gt;
* [[Ejercicios sincronización y comunicación|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Interbloqueo ==&lt;br /&gt;
&lt;br /&gt;
* [[Definición de interbloqueo|Definición]]&lt;br /&gt;
* [[Condiciones para el interbloqueo y estrategias de resolución|Modelado y Estrategias]]&lt;br /&gt;
* [[Algoritmo para averiguar interbloqueo]]&lt;br /&gt;
* [[Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Administración de memoria contigua ==&lt;br /&gt;
&lt;br /&gt;
* [[Introducción|Introducción]]&lt;br /&gt;
* [[SO monoprogramables|SO monoprogramables]]&lt;br /&gt;
* [[SO multiprogramables con particiones fijas|SO multiprogramables con particiones fijas]]&lt;br /&gt;
* [[SO multiprogramables con particiones variables|SO multiprogramables con particiones variables]]&lt;br /&gt;
&lt;br /&gt;
== Segmentación y paginación ==&lt;br /&gt;
&lt;br /&gt;
*[[Segmentacion|Segmentación]]&lt;br /&gt;
*[[Paginación|Paginación]]&lt;br /&gt;
*[[Sistema combinado|Sistema combinado]]&lt;br /&gt;
*[[Ejemplo de segmentación, paginación y combinado|Ejemplo de segmentación, paginación y combinado]]&lt;br /&gt;
&lt;br /&gt;
== Memoria virtual ==&lt;br /&gt;
&lt;br /&gt;
*[[Intro|Introducción]]&lt;br /&gt;
*[[Criterios de reemplazo|Criterios de reemplazo]]&lt;br /&gt;
*[[Ejercicios memoria virtual|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Entrada/Salida ==&lt;br /&gt;
&lt;br /&gt;
*[[EstructuraES|Estructura dispositivo E/S]]&lt;br /&gt;
*[[GestionES|Modos de gestionar dispositivos E/S]]&lt;br /&gt;
*[[Diseño modular E/S|Diseño modular E/S]]&lt;br /&gt;
*[[Ejercicios de Entrada/Salida|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Gestión L/E ==&lt;br /&gt;
&lt;br /&gt;
*[[Discos Magnéticos|Discos Magnéticos]]&lt;br /&gt;
*[[MejorasTiempoBusqueda|Mejoras en el tiempo de búsqueda]]&lt;br /&gt;
*[[Tipos de Errores |Tipos de Errores]]&lt;br /&gt;
*[[Ejercicios Gestión L/E|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Administración de archivos ==&lt;br /&gt;
&lt;br /&gt;
*[[Introducción en la administración de archivos|Introducción en la administración de archivos]]&lt;br /&gt;
*[[FAT|FAT]]&lt;br /&gt;
*[[EXT2 |EXT2]]&lt;br /&gt;
*[[Ejercicios Administración Ficheros|Ejercicios]]&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Administraci%C3%B3n_Ficheros&amp;diff=1245</id>
		<title>Ejercicios Administración Ficheros</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Administraci%C3%B3n_Ficheros&amp;diff=1245"/>
				<updated>2011-06-09T07:32:47Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Añadido ejercicios&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Contínua del Curso 2010/11, del 8 de junio de 2011]''&lt;br /&gt;
&lt;br /&gt;
El siguiente sistema de ficheros FAT dispone de la siguiente tabla:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
!bloque&lt;br /&gt;
!etiqueta&lt;br /&gt;
|-&lt;br /&gt;
| 0 &lt;br /&gt;
|X&lt;br /&gt;
|-&lt;br /&gt;
| 1 &lt;br /&gt;
| X&lt;br /&gt;
|-&lt;br /&gt;
| 2 &lt;br /&gt;
| E&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|BAD&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|EOF&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|EOF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Donde la tabla de entrada de directorios raíz situada en el bloque 2 contiene:&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
!Fichero&lt;br /&gt;
!Bloque&lt;br /&gt;
|-&lt;br /&gt;
|Imagen.jpg&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|Fichero.txt&lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|Fichero2.txt &lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Imagen2.jpg&lt;br /&gt;
|7&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A) ¿Encuentra alguna incoherencia en la configuración actual? Justifique brevemente su respuesta.&lt;br /&gt;
&lt;br /&gt;
B) ¿Cuántos accesos a bloque serán necesarios para alcanzar el último bloque del fichero Imagen.jpg? Considere el acceso a bloque que supone la consulta a la tabla de entrada de directorio. Justifique brevemente su respuesta.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 1|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Contínua del Curso 2010/11, del 8 de junio de 2011]''&lt;br /&gt;
&lt;br /&gt;
Indique cuántos accesos a bloque hay que realizar para alcanzar un bloque referenciado por el doble indirecto de un i-nodo. Considere que un i-nodo ocupa un bloque.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 2|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Gesti%C3%B3n_L/E&amp;diff=1244</id>
		<title>Ejercicios Gestión L/E</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Gesti%C3%B3n_L/E&amp;diff=1244"/>
				<updated>2011-06-09T07:22:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: fecha examen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
''[Este ejercicio formó parte del cuarto Control de Evaluación Contínua del Curso 2010/11, del 8 de junio de 2011]''&lt;br /&gt;
&lt;br /&gt;
Dados la siguiente secuencia de solicitud de accesos a sectores en disco:&lt;br /&gt;
&lt;br /&gt;
3, 80, 15, 45, 1, 79, 4, 20, 21, 67, 19, 23&lt;br /&gt;
&lt;br /&gt;
Indique el orden de accesos, considerando que inicialmente el cabezal se encuentra en la pista 0, para los siguientes criterios. Se considera un orden preferente ascendente:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; width:800px; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
| 4-scan &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;
| sstf &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;
| 6c-scan &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;
(''[[Solución de los ejercicios de gestión de L/E#Ejercicio 1|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_de_los_ejercicios_de_gesti%C3%B3n_de_L/E&amp;diff=1243</id>
		<title>Solución de los ejercicios de gestión de L/E</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_gesti%C3%B3n_de_L/E&amp;diff=1243"/>
				<updated>2011-06-09T07:18:42Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Página creada con '== Ejercicio 1 ==  {| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size:…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
| '''4-scan''' &lt;br /&gt;
| 3&lt;br /&gt;
| 15&lt;br /&gt;
|45&lt;br /&gt;
| 80&lt;br /&gt;
| 79&lt;br /&gt;
|21&lt;br /&gt;
| 20&lt;br /&gt;
| 4&lt;br /&gt;
|19&lt;br /&gt;
| 21&lt;br /&gt;
| 23&lt;br /&gt;
|67&lt;br /&gt;
|-&lt;br /&gt;
| '''sstf''' &lt;br /&gt;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
| 19&lt;br /&gt;
| 20&lt;br /&gt;
|21&lt;br /&gt;
| 23&lt;br /&gt;
| 45&lt;br /&gt;
|67&lt;br /&gt;
| 79&lt;br /&gt;
| 80&lt;br /&gt;
|-&lt;br /&gt;
| '''6c-scan''' &lt;br /&gt;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
|15&lt;br /&gt;
| 45&lt;br /&gt;
| 79&lt;br /&gt;
|80&lt;br /&gt;
| 4&lt;br /&gt;
| 19&lt;br /&gt;
|20&lt;br /&gt;
| 21&lt;br /&gt;
| 23&lt;br /&gt;
|67&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Gesti%C3%B3n_L/E&amp;diff=1242</id>
		<title>Ejercicios Gestión L/E</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Gesti%C3%B3n_L/E&amp;diff=1242"/>
				<updated>2011-06-09T07:13:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Cambiando enunciado&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
&lt;br /&gt;
Dados la siguiente secuencia de solicitud de accesos a sectores en disco:&lt;br /&gt;
&lt;br /&gt;
3, 80, 15, 45, 1, 79, 4, 20, 21, 67, 19, 23&lt;br /&gt;
&lt;br /&gt;
Indique el orden de accesos, considerando que inicialmente el cabezal se encuentra en la pista 0, para los siguientes criterios:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; width:800px; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
| 4-scan &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;
| sstf &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;
| 6c-scan &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;
(''[[Solución de los ejercicios de gestión de L/E#Ejercicio 1|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Gesti%C3%B3n_L/E&amp;diff=1241</id>
		<title>Ejercicios Gestión L/E</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Gesti%C3%B3n_L/E&amp;diff=1241"/>
				<updated>2011-06-09T07:12:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Página creada con '== Ejercicio 1 ==  Dados la siguiente secuencia de solicitud de accesos a sectores en disco:  3, 80, 15, 45, 1, 79, 4, 20, 21, 67, 19, 23  Indique el orden de accesos, considera…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
&lt;br /&gt;
Dados la siguiente secuencia de solicitud de accesos a sectores en disco:&lt;br /&gt;
&lt;br /&gt;
3, 80, 15, 45, 1, 79, 4, 20, 21, 67, 19, 23&lt;br /&gt;
&lt;br /&gt;
Indique el orden de accesos, considerando que inicialmente el cabezal se encuentra en la pista 0, para los siguientes criterios:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; width:800px; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
| 4-scan &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;
| 4-scan &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;
| 4-scan &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;
(''[[Solución de los ejercicios de gestión de L/E#Ejercicio 1|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Jescudero</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=849</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=849"/>
				<updated>2011-05-11T21:29:03Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Solución ejercicio 2 y 3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1==&lt;br /&gt;
&lt;br /&gt;
       | #1| #2| #3|   |   |   | #4| #1| #2|   |   |   | #3| #4| #1|   |   |   |   |   |   |   |   |&lt;br /&gt;
 H1    |&amp;lt;--|---|---|   |   |   |---|---|---|   |   |   |---|---|--&amp;gt;|   |   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   | #1| #2| #2|   |   |   | #2| #2| #2|   |   |   | #2| #3| #4| #1| #2| #3| #4| #1|&lt;br /&gt;
 H2    |   |   |   |&amp;lt;--|---|---|   |   |   |---|---|---|   |   |   |---|---|---|---|---|---|---|--&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 21  22  23&lt;br /&gt;
&lt;br /&gt;
Algunas observaciones:&lt;br /&gt;
* Los hilos '''no''' comparten la variable ''i''. Esta variable se trata de una variable local, por tanto, no es una variable que ambos hilos compartan. Únicamente las variables globales son compartidas por dos o más hilos.&lt;br /&gt;
* Al ser los cerrojos un control de concurrencia de espera activa, se comprueba continuamente la condición que nos permite acceder a la sección crítica.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Pneira|Pneira]] 07:33 10 may 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
       | #1| #2| #3|   |   |   | #4| #5| #1|   |   |   | #2| #2| #2|   |   |   | #2| #3| #4|   |   |   | #5| #1|   |&lt;br /&gt;
 H1    |&amp;lt;--|---|---|   |   |   |---|---|---|   |   |   |---|---|--&amp;gt;|   |   |   |---|---|---|   |   |   |---|--&amp;gt;|   |&lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   | #1| #2| #2|   |   |   | #2| #3| #4|   |   |   | #5| #1| #2|   |   |   | #3| #4| #5|   |   | #1|&lt;br /&gt;
 H2    |   |   |   |&amp;lt;--|---|---|   |   |   |---|---|---|   |   |   |---|---|---|   |   |   |---|---|---|   |   |--&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 21  22  23  24  25  26  27&lt;br /&gt;
&lt;br /&gt;
'''Nota:'''&lt;br /&gt;
En este ejercicio los cerrojos no resuelven la concurrencia (véase a partir del instante 18).&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 3==&lt;br /&gt;
Al tener un quantum de únicamente dos unidades, el planificador cambia de proceso antes de actualizar el valor del cerrojo, lo que provoca que se produzca una situación de concurrencia.&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicio_de_concurrencia_de_procesos&amp;diff=848</id>
		<title>Ejercicio de concurrencia de procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicio_de_concurrencia_de_procesos&amp;diff=848"/>
				<updated>2011-05-11T21:19:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ejercicio 1 =&lt;br /&gt;
&lt;br /&gt;
Realice el cronograma temporal que represente la ejecución de un proceso P1 que dispone de dos hilos, h1 y h2. Ambos hilos sincronizan su ejecución mediante cerrojos y ejecutan el mismo código:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for (int i=0; i&amp;lt;2; i++) {  /* instrucción 1 */&lt;br /&gt;
    lock_down();           /* instrucción 2 */&lt;br /&gt;
    funcion();             /* instrucción 3 */&lt;br /&gt;
    lock_up();             /* instrucción 4 */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponga que:&lt;br /&gt;
&lt;br /&gt;
* El planificador emplea turno rotatorio estricto con quantum de 3 unidades de ejecución.&lt;br /&gt;
* Se sabe que el hilo h1 es seleccionado en primer lugar por el planificador para ejecutarse.&lt;br /&gt;
* La ejecución de cada línea de código representado anteriormente supone una unidad de ejecución, por tanto, todas las instrucciones toman el mismo tiempo de ejecución.&lt;br /&gt;
&lt;br /&gt;
El cronograma deberá incluir qué instrucción se ejecuta en cada unidad de ejecución.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de concurrencia#Ejercicio 2|Solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2== &lt;br /&gt;
''[Este ejercicio formó parte del Segundo Control de Evaluación Contínua en el curso 2010/11, del 11 de mayo de 2011]''&lt;br /&gt;
&lt;br /&gt;
Dados dos hilos h1 y h2 de un mismo proceso P cuyos códigos son los siguientes:&lt;br /&gt;
&lt;br /&gt;
'''Código del hilo h1'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for(int i=0; 1&amp;lt;2; i++){    /* #1 */&lt;br /&gt;
   while(cerrojo_p2);      /* #2 */&lt;br /&gt;
   cerrojo_p1 = 1;         /* #3 */&lt;br /&gt;
   f();                    /* #4 */&lt;br /&gt;
   cerrojo_p1 = 0;         /* #5 */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Código del hilo h2'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
for(int i=0; 1&amp;lt;2; i++){    /* #1 */&lt;br /&gt;
   while(cerrojo_p1);      /* #2 */&lt;br /&gt;
   cerrojo_p2 = 1;         /* #3 */&lt;br /&gt;
   f();                    /* #4 */&lt;br /&gt;
   cerrojo_p2 = 0;         /* #5 */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponga que:&lt;br /&gt;
&lt;br /&gt;
* El planificador emplea turno rotatorio estricto con quantum de 3 unidades de ejecución.&lt;br /&gt;
* Se sabe que el hilo h1 es seleccionado en primer lugar por el planificador para ejecutarse.&lt;br /&gt;
* La ejecución de cada línea de código representado anteriormente supone una unidad de ejecución, por tanto, todas las instrucciones toman el mismo tiempo de ejecución.&lt;br /&gt;
&lt;br /&gt;
Realice el cronograma temporal que represente la ejecución del proceso P que dispone de dos hilos, h1 y h2. El cronograma deberá incluir qué instrucción se ejecuta en cada unidad de ejecución.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de concurrencia#Ejercicio 2|Solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 3== &lt;br /&gt;
''[Este ejercicio formó parte del Segundo Control de Evaluación Contínua en el curso 2010/11, del 11 de mayo de 2011]''&lt;br /&gt;
&lt;br /&gt;
Si el planificador empleara turno rotatorio con quantum de 2 unidades de ejecución, ¿qué sucedería?&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de concurrencia#Ejercicio 3|Solución]]'')&lt;/div&gt;</summary>
		<author><name>Jescudero</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=847</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=847"/>
				<updated>2011-05-11T21:18:33Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1==&lt;br /&gt;
&lt;br /&gt;
       | #1| #2| #3|   |   |   | #4| #1| #2|   |   |   | #3| #4| #1|   |   |   |   |   |   |   |   |&lt;br /&gt;
 H1    |&amp;lt;--|---|---|   |   |   |---|---|---|   |   |   |---|---|--&amp;gt;|   |   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   | #1| #2| #2|   |   |   | #2| #2| #2|   |   |   | #2| #3| #4| #1| #2| #3| #4| #1|&lt;br /&gt;
 H2    |   |   |   |&amp;lt;--|---|---|   |   |   |---|---|---|   |   |   |---|---|---|---|---|---|---|--&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 21  22  23&lt;br /&gt;
&lt;br /&gt;
Algunas observaciones:&lt;br /&gt;
* Los hilos '''no''' comparten la variable ''i''. Esta variable se trata de una variable local, por tanto, no es una variable que ambos hilos compartan. Únicamente las variables globales son compartidas por dos o más hilos.&lt;br /&gt;
* Al ser los cerrojos un control de concurrencia de espera activa, se comprueba continuamente la condición que nos permite acceder a la sección crítica.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Pneira|Pneira]] 07:33 10 may 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2==&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 3==&lt;/div&gt;</summary>
		<author><name>Jescudero</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=843</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=843"/>
				<updated>2011-05-11T21:18:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Solucion ejercicio 1 trasladada a Solución de los ejercicios de concurrencia: Mejor nombre&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;       | #1| #2| #3|   |   |   | #4| #1| #2|   |   |   | #3| #4| #1|   |   |   |   |   |   |   |   |&lt;br /&gt;
 H1    |&amp;lt;--|---|---|   |   |   |---|---|---|   |   |   |---|---|--&amp;gt;|   |   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
       |   |   |   | #1| #2| #2|   |   |   | #2| #2| #2|   |   |   | #2| #3| #4| #1| #2| #3| #4| #1|&lt;br /&gt;
 H2    |   |   |   |&amp;lt;--|---|---|   |   |   |---|---|---|   |   |   |---|---|---|---|---|---|---|--&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 21  22  23&lt;br /&gt;
&lt;br /&gt;
Algunas observaciones:&lt;br /&gt;
* Los hilos '''no''' comparten la variable ''i''. Esta variable se trata de una variable local, por tanto, no es una variable que ambos hilos compartan. Únicamente las variables globales son compartidas por dos o más hilos.&lt;br /&gt;
* Al ser los cerrojos un control de concurrencia de espera activa, se comprueba continuamente la condición que nos permite acceder a la sección crítica.&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Pneira|Pneira]] 07:33 10 may 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Discusi%C3%B3n:Soluci%C3%B3n_de_los_ejercicios_de_concurrencia&amp;diff=845</id>
		<title>Discusión: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=Discusi%C3%B3n:Soluci%C3%B3n_de_los_ejercicios_de_concurrencia&amp;diff=845"/>
				<updated>2011-05-11T21:18:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Discusión:Solucion ejercicio 1 trasladada a Discusión:Solución de los ejercicios de concurrencia: Mejor nombre&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Solucion_ejercicio_1&amp;diff=844</id>
		<title>Solucion ejercicio 1</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Solucion_ejercicio_1&amp;diff=844"/>
				<updated>2011-05-11T21:18:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Solucion ejercicio 1 trasladada a Solución de los ejercicios de concurrencia: Mejor nombre&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Solución de los ejercicios de concurrencia]]&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Discusi%C3%B3n:Solucion_ejercicio_1&amp;diff=846</id>
		<title>Discusión:Solucion ejercicio 1</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Discusi%C3%B3n:Solucion_ejercicio_1&amp;diff=846"/>
				<updated>2011-05-11T21:18:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Discusión:Solucion ejercicio 1 trasladada a Discusión:Solución de los ejercicios de concurrencia: Mejor nombre&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Discusión:Solución de los ejercicios de concurrencia]]&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mensajer%C3%ADa&amp;diff=801</id>
		<title>Mensajería</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mensajer%C3%ADa&amp;diff=801"/>
				<updated>2011-05-10T11:33:59Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es una unidad de información que se intercambia entre dos o más procesos. &lt;br /&gt;
&lt;br /&gt;
Mediante los mensajes podemos transmitir información y sincronizar procesos (mediante la espera de un cierto mensaje).&lt;br /&gt;
&lt;br /&gt;
Los sistemas operativos generalmente ofrecen dos llamadas al sistema (o primitivas básicas) para los procesos, enviar y recibir mensajes:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;send (mensaje)&amp;lt;/tt&amp;gt;: Para enviar un mensaje&lt;br /&gt;
* &amp;lt;tt&amp;gt;receive (mensaje)&amp;lt;/tt&amp;gt;: Para recibir un mensaje&lt;br /&gt;
&lt;br /&gt;
== Destino y fuente ==&lt;br /&gt;
&lt;br /&gt;
* '''Denominación Directa'''&lt;br /&gt;
** Se emplea ID para identificar al destinatario. &lt;br /&gt;
** Valores especiales: BROADCAST (a todos), MULTICAST (a un grupo).&lt;br /&gt;
&lt;br /&gt;
* '''Denominación Indirecta'''&lt;br /&gt;
** Se emplea un elemento intermediario. &lt;br /&gt;
** Recurso compartido especial en el sistema: BUZÓN.&lt;br /&gt;
** Habiendo intermediarios, hay que comprobar las identidades pues pueden ser falsas/erróneas&lt;br /&gt;
&lt;br /&gt;
== Formas de transmisión ==&lt;br /&gt;
&lt;br /&gt;
* '''Transmisión por copia''' &lt;br /&gt;
** ''Directa'': el mensaje se copia de espacio de emisor a espacio de receptor.&lt;br /&gt;
** ''Indirecta'': el mensaje se copia de espacio de emisor a espacio (buzón) de SO, y de ahí a espacio de receptor.&lt;br /&gt;
&lt;br /&gt;
* '''Transmisión por referencia'''&lt;br /&gt;
** ''Directa'': lo que se copia es un puntero al mensaje&lt;br /&gt;
** ''Global'': el emisor crea mensaje en espacio de SO, y se copia a espacio de receptor un puntero al mismo.&lt;br /&gt;
&lt;br /&gt;
* '''Transmisión por copia de escritura''': el mensaje sólo se copia si se modifica por emisor o receptor.&lt;br /&gt;
&lt;br /&gt;
== Formas de comunicación ==&lt;br /&gt;
&lt;br /&gt;
* Comportamiento del emisor, '''send()'''&lt;br /&gt;
**Síncrona: el proceso emisor que realiza el send() queda bloqueado hasta que el receptor llama a recv()&lt;br /&gt;
**Asíncrona: suponemos capacidad de almacenamiento en el destinatario o en el buzón. Allí acumulamos los mensajes entrantes y el receptor irá leyendo cuando pueda. Es más ágil pero el destinatario/buzón necesita capacidad de almacenamiento, la cual será limitada y los mensajes posteriores pueden caer en saco roto&lt;br /&gt;
&lt;br /&gt;
* Comportamiento del receptor, '''recv()'''&lt;br /&gt;
** Bloqueante: un recv() sin mensajes a procesar pasa a estado bloqueado. Si se hace un send() vuelve a estado preparado&lt;br /&gt;
** No bloqueante: recv() sin mensajes a procesar devuelve un &amp;quot;prueba más tarde&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formato de los mensajes ==&lt;br /&gt;
&lt;br /&gt;
=== Fijo ===&lt;br /&gt;
&lt;br /&gt;
Los procesos acuerdan emplear un formato fijo para sus mensajes.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo''': Simple Network Time Protocol.&amp;lt;ref&amp;gt; Véase http://tools.ietf.org/html/rfc4330, sección 4, Message Format.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                           1                   2                   3&lt;br /&gt;
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9  0  1&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |LI | VN  |Mode |    Stratum    |     Poll      |   Precision    |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                          Root  Delay                           |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                       Root  Dispersion                         |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                     Reference Identifier                       |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                    Reference Timestamp (64)                    |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                    Originate Timestamp (64)                    |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                     Receive Timestamp (64)                     |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                     Transmit Timestamp (64)                    |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                 Key Identifier (optional) (32)                 |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                 Message Digest (optional) (128)                |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
&lt;br /&gt;
=== Variable ===&lt;br /&gt;
&lt;br /&gt;
* Type-Length-Value&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo''': Usado en Netlink para la codificación de atributos de un mensaje.&amp;lt;ref&amp;gt;Ver Communicating between the kernel and user-space in Linux using Netlink Sockets (http://1984.lsi.us.es/~pablo/docs/spae.pdf)&amp;lt;/ref&amp;gt;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;center&amp;quot; style=&amp;quot;background:DarkSlateBlue; color:white&amp;quot;|'''Type-Length-Value'''&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 0&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 1&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 2&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 3&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 4&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 5&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 6&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 7&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 8&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 9&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 10&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 11&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 12&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 13&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 14&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 15&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 16&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 17&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 18&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 19&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 20&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 21&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 22&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 23&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 24&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 25&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 26&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 27&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 28&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 29&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 30&lt;br /&gt;
! width=&amp;quot;15 px&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | 31&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=16, align=&amp;quot;center&amp;quot;| Length &lt;br /&gt;
| colspan=16, align=&amp;quot;center&amp;quot;| Type&lt;br /&gt;
|-&lt;br /&gt;
| colspan=32, align=&amp;quot;center&amp;quot;| Value &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Text-based human-readable.&lt;br /&gt;
&lt;br /&gt;
#Comma-Separated Value (CSV). http://en.wikipedia.org/wiki/Comma-separated_values&lt;br /&gt;
#Extensible Markup Language (XML). http://en.wikipedia.org/wiki/XML&lt;br /&gt;
#JavaScript Object Notation (JSON). http://en.wikipedia.org/wiki/JSON&lt;br /&gt;
&lt;br /&gt;
=== Mixto ===&lt;br /&gt;
&lt;br /&gt;
Los procesos acuerdan emplear mensaje con partes cuyo formato es fijo, como por ejemplo una cabecera inicial, seguido de partes de tamaño variable.&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo''': Internet Protocol (IPv4).&amp;lt;ref&amp;gt;Ver http://www.ietf.org/rfc/rfc791.txt, sección 3.1.&amp;lt;/ref&amp;gt;&lt;br /&gt;
                                    &lt;br /&gt;
    0                   1                   2                   3   &lt;br /&gt;
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 &lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |Version|  IHL  |Type of Service|          Total Length         |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |         Identification        |Flags|      Fragment Offset    |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |  Time to Live |    Protocol   |         Header Checksum       |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |                       Source Address                          |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |                    Destination Address                        |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |                    Options                    |    Padding    |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   /                                                               /&lt;br /&gt;
   /                         Payload                               /&lt;br /&gt;
   /                                                               /&lt;br /&gt;
   /////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
== Mensajería a través de la red ==&lt;br /&gt;
&lt;br /&gt;
* Unidad del destinatario&lt;br /&gt;
* Fiabilidad en la transmisión&lt;br /&gt;
* Formato de los datos (http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html): Enviar un entero a través de la red puede ser un problema debido a la forma en el que se representan los datos en la memoria dependiente de la arquitectura. Por ejemplo, un PC con arquitectura Intel x86 emplea formato little-endian, mientras que un SPARC de Sun Microsystems (ahora Oracle) emplea big-endian.&lt;br /&gt;
&lt;br /&gt;
** Little Endian: Bytes menos significativo al principio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
        int a = 10, i;&lt;br /&gt;
        char *p = &amp;amp;a;&lt;br /&gt;
&lt;br /&gt;
        for (i=0; i&amp;lt;sizeof(a); i++) {&lt;br /&gt;
                printf(&amp;quot;posición %d: %.2x\n&amp;quot;, i, p[i]);&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Muestra el siguiente resultado en un PC:&lt;br /&gt;
&lt;br /&gt;
 posición 0: 0a (n+3)&lt;br /&gt;
 posición 1: 00 (n+2)&lt;br /&gt;
 posición 2: 00 (n+1)&lt;br /&gt;
 posición 3: 00 (n)&lt;br /&gt;
&lt;br /&gt;
** Big Endian: Bytes menos significativo al final.&lt;br /&gt;
&lt;br /&gt;
 posición 0: 00 (n)&lt;br /&gt;
 posición 1: 00 (n+1)&lt;br /&gt;
 posición 2: 00 (n+2)&lt;br /&gt;
 posición 3: 0a (n+3)&lt;br /&gt;
&lt;br /&gt;
En Internet se sigue la convención de expresar datos en Big Endian, habría que hacer la conversión. Habría que usar '''ntohl''' (network to host long).&lt;br /&gt;
&lt;br /&gt;
En little-endian, la implementación de ntohl es la siguiente:&lt;br /&gt;
&lt;br /&gt;
#define __constant_ntohl(x) ___constant_swab32((__be32)(x)&lt;br /&gt;
&lt;br /&gt;
Ver /usr/include/linux/byteorder/little_endian.h &lt;br /&gt;
&lt;br /&gt;
mientras que en big-endian es:&lt;br /&gt;
&lt;br /&gt;
#define __constant_ntohl(x) ((__u32)(__be32)(x))&lt;br /&gt;
&lt;br /&gt;
Si empleamos formato textuales, como CSV, XML o JSON, que codifican la información en bytes, no tenemos este problema.&lt;br /&gt;
&lt;br /&gt;
==Referencias==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mensajer%C3%ADa&amp;diff=758</id>
		<title>Mensajería</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mensajer%C3%ADa&amp;diff=758"/>
				<updated>2011-05-09T15:55:22Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es una unidad de información que se intercambia entre dos o más procesos. &lt;br /&gt;
&lt;br /&gt;
Mediante los mensajes podemos transmitir información y sincronizar procesos (mediante la espera de un cierto mensaje).&lt;br /&gt;
&lt;br /&gt;
Los sistemas operativos generalmente ofrecen dos llamadas al sistema (o primitivas básicas) para los procesos, enviar y recibir mensajes:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;send (mensaje)&amp;lt;/tt&amp;gt;: Para enviar un mensaje&lt;br /&gt;
* &amp;lt;tt&amp;gt;receive (mensaje)&amp;lt;/tt&amp;gt;: Para recibir un mensaje&lt;br /&gt;
&lt;br /&gt;
== Destino y fuente ==&lt;br /&gt;
&lt;br /&gt;
* '''Denominación Directa'''&lt;br /&gt;
** Se emplea ID para identificar al destinatario. &lt;br /&gt;
** Valores especiales: BROADCAST (a todos), MULTICAST (a un grupo).&lt;br /&gt;
&lt;br /&gt;
* '''Denominación Indirecta'''&lt;br /&gt;
** Se emplea un elemento intermediario. &lt;br /&gt;
** Recurso compartido especial en el sistema: BUZÓN.&lt;br /&gt;
** Habiendo intermediarios, hay que comprobar las identidades pues pueden ser falsas/erróneas&lt;br /&gt;
&lt;br /&gt;
== Formas de transmisión ==&lt;br /&gt;
&lt;br /&gt;
* '''Transmisión por copia''' &lt;br /&gt;
** ''Directa'': el mensaje se copia de espacio de emisor a espacio de receptor.&lt;br /&gt;
** ''Indirecta'': el mensaje se copia de espacio de emisor a espacio (buzón) de SO, y de ahí a espacio de receptor.&lt;br /&gt;
&lt;br /&gt;
* '''Transmisión por referencia'''&lt;br /&gt;
** ''Directa'': lo que se copia es un puntero al mensaje&lt;br /&gt;
** ''Global'': el emisor crea mensaje en espacio de SO, y se copia a espacio de receptor un puntero al mismo.&lt;br /&gt;
&lt;br /&gt;
* '''Transmisión por copia de escritura''': el mensaje sólo se copia si se modifica por emisor o receptor.&lt;br /&gt;
&lt;br /&gt;
== Formas de comunicación ==&lt;br /&gt;
&lt;br /&gt;
* Comportamiento del emisor, '''send()'''&lt;br /&gt;
**Síncrona: el proceso emisor que realiza el send() queda bloqueado hasta que el receptor llama a recv()&lt;br /&gt;
**Asíncrona: suponemos capacidad de almacenamiento en el destinatario o en el buzón. Allí acumulamos los mensajes entrantes y el receptor irá leyendo cuando pueda. Es más ágil pero el destinatario/buzón necesita capacidad de almacenamiento, la cual será limitada y los mensajes posteriores pueden caer en saco roto&lt;br /&gt;
&lt;br /&gt;
* Comportamiento del receptor, '''recv()'''&lt;br /&gt;
** Bloqueante: un recv() sin mensajes a procesar pasa a estado bloqueado. Si se hace un send() vuelve a estado preparado&lt;br /&gt;
** No bloqueante: recv() sin mensajes a procesar devuelve un &amp;quot;prueba más tarde&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Formato de los mensajes ==&lt;br /&gt;
&lt;br /&gt;
=== Fijo ===&lt;br /&gt;
&lt;br /&gt;
Los procesos acuerdan emplear un formato fijo para sus mensajes.&lt;br /&gt;
&lt;br /&gt;
Ejemplo: Simple Network Time Protocol. Ver http://tools.ietf.org/html/rfc4330, sección 4, Message Format.&lt;br /&gt;
&lt;br /&gt;
                           1                   2                   3&lt;br /&gt;
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9  0  1&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |LI | VN  |Mode |    Stratum    |     Poll      |   Precision    |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                          Root  Delay                           |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                       Root  Dispersion                         |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                     Reference Identifier                       |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                    Reference Timestamp (64)                    |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                    Originate Timestamp (64)                    |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                     Receive Timestamp (64)                     |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                     Transmit Timestamp (64)                    |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                 Key Identifier (optional) (32)                 |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                 Message Digest (optional) (128)                |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      |                                                                |&lt;br /&gt;
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
&lt;br /&gt;
=== Variable ===&lt;br /&gt;
&lt;br /&gt;
* Type-Length-Value.&lt;br /&gt;
&lt;br /&gt;
Ejemplo: Usado en Netlink para la codificación de atributos de un mensaje. Ver Communicating between the kernel and user-space in Linux using Netlink Sockets (1984.lsi.us.es/~pablo/docs/spae.pdf).&lt;br /&gt;
&lt;br /&gt;
    0                   1                   2                   3   &lt;br /&gt;
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 &lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |                Length         |            Type               |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   /                                                               /&lt;br /&gt;
   /                             Value                             /&lt;br /&gt;
   /                                                               /&lt;br /&gt;
   /////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
* Text-based human-readable.&lt;br /&gt;
&lt;br /&gt;
** Comma-Separated Value (CSV): http://en.wikipedia.org/wiki/Comma-separated_values&lt;br /&gt;
** Extensible Markup Language (XML): http://en.wikipedia.org/wiki/XML&lt;br /&gt;
** JavaScript Object Notation (JSON): http://en.wikipedia.org/wiki/JSON&lt;br /&gt;
&lt;br /&gt;
=== Mixto ===&lt;br /&gt;
&lt;br /&gt;
Los procesos acuerdan emplear mensaje con partes cuyo formato es fijo, como por ejemplo una cabecera inicial, seguido de partes de tamaño variable.&lt;br /&gt;
&lt;br /&gt;
Ejemplo: Internet Protocol (IPv4). Ver http://www.ietf.org/rfc/rfc791.txt, sección 3.1.&lt;br /&gt;
                                    &lt;br /&gt;
    0                   1                   2                   3   &lt;br /&gt;
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 &lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |Version|  IHL  |Type of Service|          Total Length         |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |         Identification        |Flags|      Fragment Offset    |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |  Time to Live |    Protocol   |         Header Checksum       |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |                       Source Address                          |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |                    Destination Address                        |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   |                    Options                    |    Padding    |&lt;br /&gt;
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
   /                                                               /&lt;br /&gt;
   /                         Payload                               /&lt;br /&gt;
   /                                                               /&lt;br /&gt;
   /////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
== Mensajería a través de la red ==&lt;br /&gt;
&lt;br /&gt;
* Unidad del destinatario&lt;br /&gt;
* Fiabilidad en la transmisión&lt;br /&gt;
* Formato de los datos (http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html): Enviar un entero a través de la red puede ser un problema debido a la forma en el que se representan los datos en la memoria dependiente de la arquitectura. Por ejemplo, un PC con arquitectura Intel x86 emplea formato little-endian, mientras que un SPARC de Sun Microsystems (ahora Oracle) emplea big-endian.&lt;br /&gt;
&lt;br /&gt;
** Little Endian: Bytes menos significativo al principio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
        int a = 10, i;&lt;br /&gt;
        char *p = &amp;amp;a;&lt;br /&gt;
&lt;br /&gt;
        for (i=0; i&amp;lt;sizeof(a); i++) {&lt;br /&gt;
                printf(&amp;quot;posición %d: %.2x\n&amp;quot;, i, p[i]);&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Muestra el siguiente resultado en un PC:&lt;br /&gt;
&lt;br /&gt;
 posición 0: 0a (n+3)&lt;br /&gt;
 posición 1: 00 (n+2)&lt;br /&gt;
 posición 2: 00 (n+1)&lt;br /&gt;
 posición 3: 00 (n)&lt;br /&gt;
&lt;br /&gt;
** Big Endian: Bytes menos significativo al final.&lt;br /&gt;
&lt;br /&gt;
 posición 0: 00 (n)&lt;br /&gt;
 posición 1: 00 (n+1)&lt;br /&gt;
 posición 2: 00 (n+2)&lt;br /&gt;
 posición 3: 0a (n+3)&lt;br /&gt;
&lt;br /&gt;
En Internet se sigue la convención de expresar datos en Big Endian, habría que hacer la conversión. Habría que usar '''ntohl''' (network to host long).&lt;br /&gt;
&lt;br /&gt;
En little-endian, la implementación de ntohl es la siguiente:&lt;br /&gt;
&lt;br /&gt;
#define __constant_ntohl(x) ___constant_swab32((__be32)(x)&lt;br /&gt;
&lt;br /&gt;
Ver /usr/include/linux/byteorder/little_endian.h &lt;br /&gt;
&lt;br /&gt;
mientras que en big-endian es:&lt;br /&gt;
&lt;br /&gt;
#define __constant_ntohl(x) ((__u32)(__be32)(x))&lt;br /&gt;
&lt;br /&gt;
Si empleamos formato textuales, como CSV, XML o JSON, que codifican la información en bytes, no tenemos este problema.&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_de_los_ejercicios_de_fundamentos&amp;diff=607</id>
		<title>Solución de los ejercicios de fundamentos</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_fundamentos&amp;diff=607"/>
				<updated>2011-03-31T13:57:09Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
&lt;br /&gt;
La principal diferencia reside en la estructura que toman ambos sistemas operativos. Los monolíticos como Windows o Linux se caracterizan por tener en el kernel una gran cantidad de funcionalidades como puede ser la gestión de dispositivos de E/S,planificación de procesos, sistema de comunicación de procesos y la administración de ficheros y memoria. En cambio los micronúcleos parten de un kernel que implementan algunas funciones como la planificación de procesos,mecanismos de comunicación de procesos y gestión de interrupciones; añadiendo para el resto de funciones procesos servidores en módulos externos al kernel.&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_planificaci%C3%B3n_de_procesos&amp;diff=605</id>
		<title>Ejercicios planificación de procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_planificaci%C3%B3n_de_procesos&amp;diff=605"/>
				<updated>2011-03-31T07:08:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: /* Ejercicio 4 (1º PARCIAL) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ejercicio 1 =&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
      H0  t&lt;br /&gt;
 P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;   0   5&lt;br /&gt;
 P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;   1   3&lt;br /&gt;
 P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;   2   1&lt;br /&gt;
 P&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;   3   6&lt;br /&gt;
 P&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;   4   2&lt;br /&gt;
&lt;br /&gt;
Realice la traza de la ejecución de dichos procesos para los siguientes criterios de planificación:&lt;br /&gt;
&lt;br /&gt;
* FIFO (no apropiativo)&lt;br /&gt;
* SJF (apropiativo y no apropiativo)&lt;br /&gt;
* Índice de penalización (no apropiativo)&lt;br /&gt;
[[sol-ejer1-planif-procesos|Ver solución ejercicio 1]]&lt;br /&gt;
&lt;br /&gt;
= Ejercicio 2 =&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
      H0  t&lt;br /&gt;
 P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;   0   3&lt;br /&gt;
 P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;   1   5&lt;br /&gt;
 P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;   2   6&lt;br /&gt;
&lt;br /&gt;
Teniendo en cuenta el siguiente comportamiento:&lt;br /&gt;
&lt;br /&gt;
* El proceso A cada 1 unidad de tiempo de ejecución bloquea por operación de E/S&lt;br /&gt;
* El proceso B cada 3 unidades de tiempo de ejecución bloquea por operación de E/S&lt;br /&gt;
&lt;br /&gt;
Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acceso al dispositivo de E/S.&lt;br /&gt;
&lt;br /&gt;
Realice la traza temporal de ejecución de dichos procesos para los siguientes criterios de planificación:&lt;br /&gt;
&lt;br /&gt;
* Turno rotatorio estricto, suponiendo que el quantum es de 2 unidades de tiempo.&lt;br /&gt;
* Por prioridades, suponiendo que A &amp;lt; B &amp;lt; C.&lt;br /&gt;
* Turno rotatorio proporcional al número de procesos, supongiendo que el quantum es de 2 unidades de tiempo. Si hay dos o más procesos el quantum pasa a ser de una unidad de tiempo.&lt;br /&gt;
&lt;br /&gt;
[[sol-ejer2-planif-procesos|Ver solución ejercicio 2]]&lt;br /&gt;
&lt;br /&gt;
= Ejercicio 3 =&lt;br /&gt;
&lt;br /&gt;
En un planificador multinivel con realimentación se dispone de dos colas:&lt;br /&gt;
&lt;br /&gt;
* La primera cola tiene procesos que reciben un ''quantum'' de 4 unidades de tiempo.&lt;br /&gt;
* La segunda cola tiene procesos que reciben un ''quantum'' de 2 unidades de tiempo. Los procesos en esta cola reciben dos oportunidades de ejecución. Por tanto, se itera dos veces sobre esta cola antes de pasar a la primera cola.&lt;br /&gt;
&lt;br /&gt;
Los procesos que acaban de ser lanzados pasan inicialmente a la segunda cola. Si consumen completamente el ''quantum'' una vez, promocionan a la primera cola. Si dejan de consumir completamente el ''quantum'' una vez, descienden a la segunda.&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
     H0  t&lt;br /&gt;
 Pa   0  4&lt;br /&gt;
 Pb   1  4&lt;br /&gt;
 Pc   2  12&lt;br /&gt;
 Pd   3  12&lt;br /&gt;
&lt;br /&gt;
Suponga que los procesos A y B bloquean por operación de E/S tras 1 unidad de ejecución. Los procesos C y D no bloquean. Los tiempos de bloqueo por E/S son de 1 unidad de tiempo. Represente graficamente la evolución temporal de la asignación del procesador.&lt;br /&gt;
&lt;br /&gt;
[[sol-ejer3-planif-procesos|Ver solución ejercicio 3]]&lt;br /&gt;
&lt;br /&gt;
=Ejercicio 4 =&lt;br /&gt;
''[Este ejercicio formó parte del Primer Parcial de Evaluación Contínua del curso 2010/11 del 23 de marzo de 2011]''&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuracion de procesos:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | H&amp;lt;sub&amp;gt;0&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | t&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 0 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 1 &lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 2 &lt;br /&gt;
| 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Teniendo en cuenta el siguiente comportamiento:&lt;br /&gt;
&lt;br /&gt;
* El proceso A cada 1 unidad de tiempo de ejecución bloquea .&lt;br /&gt;
* El proceso B cada 3 unidades de tiempo de ejecución bloquea.&lt;br /&gt;
&lt;br /&gt;
Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acesso al dispositivo de E/S.&lt;br /&gt;
&lt;br /&gt;
Realice la traza de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación: &lt;br /&gt;
&lt;br /&gt;
#Turno rotatorio con compensacion con quantum de 2 unidades de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*En caso de que un proceso haya consumido el 50% de su quantum y en la cola de procesos preparados haya un unico proceso, insertelo delante de este.&lt;br /&gt;
&lt;br /&gt;
*Si dos o mas procesos pasan de estado preparado a la vez, considere que el orden de insercion en la cola de preparados es el siguiente: 1ºA 2ºB 3ºC&lt;br /&gt;
&lt;br /&gt;
*Recuerde que un proceso en estado bloqueado se inserta en la cola de preparados una vez que pasa el tiempo de bloqueo ( que en este ejercicio se trata de 2 unidades de tiempo)&lt;br /&gt;
&lt;br /&gt;
*En toda decisión del planificador tenga en cuenta a los procesos que justo acaban de pasar a estado preparado tras un bloqueo.&lt;br /&gt;
&lt;br /&gt;
''[[sol-ejer4-planif-procesos|Ver solución ejercicio 4]]''&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_planificaci%C3%B3n_de_procesos&amp;diff=604</id>
		<title>Ejercicios planificación de procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_planificaci%C3%B3n_de_procesos&amp;diff=604"/>
				<updated>2011-03-31T07:08:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: /* Ejercicio 4 (1º PARCIAL) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ejercicio 1 =&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
      H0  t&lt;br /&gt;
 P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;   0   5&lt;br /&gt;
 P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;   1   3&lt;br /&gt;
 P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;   2   1&lt;br /&gt;
 P&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;   3   6&lt;br /&gt;
 P&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;   4   2&lt;br /&gt;
&lt;br /&gt;
Realice la traza de la ejecución de dichos procesos para los siguientes criterios de planificación:&lt;br /&gt;
&lt;br /&gt;
* FIFO (no apropiativo)&lt;br /&gt;
* SJF (apropiativo y no apropiativo)&lt;br /&gt;
* Índice de penalización (no apropiativo)&lt;br /&gt;
[[sol-ejer1-planif-procesos|Ver solución ejercicio 1]]&lt;br /&gt;
&lt;br /&gt;
= Ejercicio 2 =&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
      H0  t&lt;br /&gt;
 P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;   0   3&lt;br /&gt;
 P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;   1   5&lt;br /&gt;
 P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;   2   6&lt;br /&gt;
&lt;br /&gt;
Teniendo en cuenta el siguiente comportamiento:&lt;br /&gt;
&lt;br /&gt;
* El proceso A cada 1 unidad de tiempo de ejecución bloquea por operación de E/S&lt;br /&gt;
* El proceso B cada 3 unidades de tiempo de ejecución bloquea por operación de E/S&lt;br /&gt;
&lt;br /&gt;
Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acceso al dispositivo de E/S.&lt;br /&gt;
&lt;br /&gt;
Realice la traza temporal de ejecución de dichos procesos para los siguientes criterios de planificación:&lt;br /&gt;
&lt;br /&gt;
* Turno rotatorio estricto, suponiendo que el quantum es de 2 unidades de tiempo.&lt;br /&gt;
* Por prioridades, suponiendo que A &amp;lt; B &amp;lt; C.&lt;br /&gt;
* Turno rotatorio proporcional al número de procesos, supongiendo que el quantum es de 2 unidades de tiempo. Si hay dos o más procesos el quantum pasa a ser de una unidad de tiempo.&lt;br /&gt;
&lt;br /&gt;
[[sol-ejer2-planif-procesos|Ver solución ejercicio 2]]&lt;br /&gt;
&lt;br /&gt;
= Ejercicio 3 =&lt;br /&gt;
&lt;br /&gt;
En un planificador multinivel con realimentación se dispone de dos colas:&lt;br /&gt;
&lt;br /&gt;
* La primera cola tiene procesos que reciben un ''quantum'' de 4 unidades de tiempo.&lt;br /&gt;
* La segunda cola tiene procesos que reciben un ''quantum'' de 2 unidades de tiempo. Los procesos en esta cola reciben dos oportunidades de ejecución. Por tanto, se itera dos veces sobre esta cola antes de pasar a la primera cola.&lt;br /&gt;
&lt;br /&gt;
Los procesos que acaban de ser lanzados pasan inicialmente a la segunda cola. Si consumen completamente el ''quantum'' una vez, promocionan a la primera cola. Si dejan de consumir completamente el ''quantum'' una vez, descienden a la segunda.&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
     H0  t&lt;br /&gt;
 Pa   0  4&lt;br /&gt;
 Pb   1  4&lt;br /&gt;
 Pc   2  12&lt;br /&gt;
 Pd   3  12&lt;br /&gt;
&lt;br /&gt;
Suponga que los procesos A y B bloquean por operación de E/S tras 1 unidad de ejecución. Los procesos C y D no bloquean. Los tiempos de bloqueo por E/S son de 1 unidad de tiempo. Represente graficamente la evolución temporal de la asignación del procesador.&lt;br /&gt;
&lt;br /&gt;
[[sol-ejer3-planif-procesos|Ver solución ejercicio 3]]&lt;br /&gt;
&lt;br /&gt;
=Ejercicio 4 (1º PARCIAL)=&lt;br /&gt;
''[Este ejercicio formó parte del Primer Parcial de Evaluación Contínua del curso 2010/11 del 23 de marzo de 2011]''&lt;br /&gt;
Dada la siguiente configuracion de procesos:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | H&amp;lt;sub&amp;gt;0&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | t&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 0 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 1 &lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 2 &lt;br /&gt;
| 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Teniendo en cuenta el siguiente comportamiento:&lt;br /&gt;
&lt;br /&gt;
* El proceso A cada 1 unidad de tiempo de ejecución bloquea .&lt;br /&gt;
* El proceso B cada 3 unidades de tiempo de ejecución bloquea.&lt;br /&gt;
&lt;br /&gt;
Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acesso al dispositivo de E/S.&lt;br /&gt;
&lt;br /&gt;
Realice la traza de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación: &lt;br /&gt;
&lt;br /&gt;
#Turno rotatorio con compensacion con quantum de 2 unidades de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*En caso de que un proceso haya consumido el 50% de su quantum y en la cola de procesos preparados haya un unico proceso, insertelo delante de este.&lt;br /&gt;
&lt;br /&gt;
*Si dos o mas procesos pasan de estado preparado a la vez, considere que el orden de insercion en la cola de preparados es el siguiente: 1ºA 2ºB 3ºC&lt;br /&gt;
&lt;br /&gt;
*Recuerde que un proceso en estado bloqueado se inserta en la cola de preparados una vez que pasa el tiempo de bloqueo ( que en este ejercicio se trata de 2 unidades de tiempo)&lt;br /&gt;
&lt;br /&gt;
*En toda decisión del planificador tenga en cuenta a los procesos que justo acaban de pasar a estado preparado tras un bloqueo.&lt;br /&gt;
&lt;br /&gt;
''[[sol-ejer4-planif-procesos|Ver solución ejercicio 4]]''&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_fundamentos_Sistemas_Operativos&amp;diff=603</id>
		<title>Ejercicios fundamentos Sistemas Operativos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_fundamentos_Sistemas_Operativos&amp;diff=603"/>
				<updated>2011-03-30T19:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: /* Ejercicio 1 (1º PARCIAL) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
''[Este ejercicio fue parte del Primer Control de Evaluación Contínua en el curso 2010/11, del 23 de marzo de 2011]''&lt;br /&gt;
&lt;br /&gt;
Indique la diferencia fundamental de diseño ente un sistema operativo monolítico y otro micronúcleo.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de fundamentos#Ejercicio 1|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Procesos&amp;diff=602</id>
		<title>Ejercicios Procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Procesos&amp;diff=602"/>
				<updated>2011-03-30T19:02:42Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Se muestran a continuación una serie de ejercicios relacionados con el temario de procesos.&lt;br /&gt;
&lt;br /&gt;
Para ver las soluciones a los ejercicios, ir hacia [[solución de los ejercicios de procesos]].&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 1 ==&lt;br /&gt;
''[Este ejercicio fue parte del Primer Control de Evaluación Contínua en el curso 2010/11, del 23 de marzo de 2011]''&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | H&amp;lt;sub&amp;gt;0&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | t&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 0&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 2&lt;br /&gt;
| 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Considerando que una unidad de tiempo es de 50 ms, catalogue los procesos A,B y C según su comportamiento (en base a la clasificación de tipos de procesos vista en clase). (''[[Solución de los ejercicios de procesos#Ejercicio 1|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_de_los_ejercicios_de_procesos&amp;diff=601</id>
		<title>Solución de los ejercicios de procesos</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_procesos&amp;diff=601"/>
				<updated>2011-03-30T18:59:01Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Página nueva: == Ejercicio 1 ==&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Procesos&amp;diff=600</id>
		<title>Ejercicios Procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Procesos&amp;diff=600"/>
				<updated>2011-03-30T18:58:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
''[Este ejercicio fue parte del Primer Control de Evaluación Contínua en el curso 2010/11, del 23 de marzo de 2011]''&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | H&amp;lt;sub&amp;gt;0&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | t&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 0&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 2&lt;br /&gt;
| 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Considerando que una unidad de tiempo es de 50 ms, catalogue los procesos A,B y C según su comportamiento (en base a la clasificación de tipos de procesos vista en clase). (''[[Solución de los ejercicios de procesos#Ejercicio 1|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_otros_aspectos_de_la_planificaci%C3%B3n&amp;diff=599</id>
		<title>Ejercicios otros aspectos de la planificación</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_otros_aspectos_de_la_planificaci%C3%B3n&amp;diff=599"/>
				<updated>2011-03-30T18:54:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | H&amp;lt;sub&amp;gt;0&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | t&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 0&lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 1&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 3&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Suponiendo un sistema operativo multiprocesador sobre dos procesadores, realice la traza de la ejecución de dichos procesos para los siguientes criterios de planificación:&lt;br /&gt;
&lt;br /&gt;
* FIFO (no apropiativo)&lt;br /&gt;
* SJF (apropiativo y no apropiativo)&lt;br /&gt;
&lt;br /&gt;
[[sol-ejer1-otros-aspectos|Ver solución ejercicio 1]]&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2 ==&lt;br /&gt;
''[Este ejercicio fue parte del primer Control de Evaluación Contínua del Curso 2010/11, del 23 de marzo de 2011]''&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuracion de procesos:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | H&amp;lt;sub&amp;gt;0&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | t&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 0 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 1 &lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 2 &lt;br /&gt;
| 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Teniendo en cuenta el siguiente comportamiento:&lt;br /&gt;
&lt;br /&gt;
* El proceso A cada 1 unidad de tiempo de ejecución bloquea .&lt;br /&gt;
* El proceso B cada 3 unidades de tiempo de ejecución bloquea.&lt;br /&gt;
&lt;br /&gt;
Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acesso al dispositivo de E/S.&lt;br /&gt;
&lt;br /&gt;
Realice la traza de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación: &lt;br /&gt;
&lt;br /&gt;
#El siguiente, el más corto apropiativo en un sistema multiprocesador con dos procesadores. No olvide los tiempos de bloqueo de los procesos A y B. Considere asignación dinámica. (''[[sol-ejer2-1-otros-aspectos|Ver solución]]'')&lt;br /&gt;
#Por prioridades apropiativo en tiempo real, suponiendo que C &amp;lt; B &amp;lt; A. No olvide los tiempos de bloqueo de los procesos A y B. (''[[sol-ejer2-2-otros-aspectos|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Plazo&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 15&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_otros_aspectos_de_la_planificaci%C3%B3n&amp;diff=598</id>
		<title>Ejercicios otros aspectos de la planificación</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_otros_aspectos_de_la_planificaci%C3%B3n&amp;diff=598"/>
				<updated>2011-03-30T18:41:03Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
      H0  t&lt;br /&gt;
 PA   0   5&lt;br /&gt;
 PB   1   3&lt;br /&gt;
 PC   2   1&lt;br /&gt;
 PD   3   6&lt;br /&gt;
 PE   4   2&lt;br /&gt;
&lt;br /&gt;
Suponiendo un sistema operativo multiprocesador sobre dos procesadores, realice la traza de la ejecución de dichos procesos para los siguientes criterios de planificación:&lt;br /&gt;
&lt;br /&gt;
* FIFO (no apropiativo)&lt;br /&gt;
* SJF (apropiativo y no apropiativo)&lt;br /&gt;
&lt;br /&gt;
[[sol-ejer1-otros-aspectos|Ver solución ejercicio 1]]&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2 ==&lt;br /&gt;
''[Este ejercicio fue parte del primer Control de Evaluación Contínua del Curso 2010/11, del 23 de marzo de 2011]''&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuracion de procesos:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | H&amp;lt;sub&amp;gt;0&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | t&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 0 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 1 &lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 2 &lt;br /&gt;
| 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Teniendo en cuenta el siguiente comportamiento:&lt;br /&gt;
&lt;br /&gt;
* El proceso A cada 1 unidad de tiempo de ejecución bloquea .&lt;br /&gt;
* El proceso B cada 3 unidades de tiempo de ejecución bloquea.&lt;br /&gt;
&lt;br /&gt;
Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acesso al dispositivo de E/S.&lt;br /&gt;
&lt;br /&gt;
Realice la traza de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación: &lt;br /&gt;
&lt;br /&gt;
#El siguiente, el más corto apropiativo en un sistema multiprocesador con dos procesadores. No olvide los tiempos de bloqueo de los procesos A y B. Considere asignación dinámica. (''[[sol-ejer2-1-otros-aspectos|Ver solución]]'')&lt;br /&gt;
#Por prioridades apropiativo en tiempo real, suponiendo que C &amp;lt; B &amp;lt; A. No olvide los tiempos de bloqueo de los procesos A y B. (''[[sol-ejer2-2-otros-aspectos|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Plazo&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 15&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_otros_aspectos_de_la_planificaci%C3%B3n&amp;diff=597</id>
		<title>Ejercicios otros aspectos de la planificación</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_otros_aspectos_de_la_planificaci%C3%B3n&amp;diff=597"/>
				<updated>2011-03-30T18:40:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: /* Ejercicio 2 (1º PARCIAL) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
      H0  t&lt;br /&gt;
 PA   0   5&lt;br /&gt;
 PB   1   3&lt;br /&gt;
 PC   2   1&lt;br /&gt;
 PD   3   6&lt;br /&gt;
 PE   4   2&lt;br /&gt;
&lt;br /&gt;
Suponiendo un sistema operativo multiprocesador sobre dos procesadores, realice la traza de la ejecución de dichos procesos para los siguientes criterios de planificación:&lt;br /&gt;
&lt;br /&gt;
* FIFO (no apropiativo)&lt;br /&gt;
* SJF (apropiativo y no apropiativo)&lt;br /&gt;
&lt;br /&gt;
[[sol-ejer1-otros-aspectos|Ver solución ejercicio 1]]&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2 ==&lt;br /&gt;
''[Este ejercicio fue parte del primer Control de Evaluación Contínua del Curso 2010/11, del 23 de marzo de 2011]''&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuracion de procesos:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | H&amp;lt;sub&amp;gt;0&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | t&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 0 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 1 &lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 2 &lt;br /&gt;
| 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Teniendo en cuenta el siguiente comportamiento:&lt;br /&gt;
&lt;br /&gt;
* El proceso A cada 1 unidad de tiempo de ejecución bloquea .&lt;br /&gt;
* El proceso B cada 3 unidades de tiempo de ejecución bloquea.&lt;br /&gt;
&lt;br /&gt;
Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acesso al dispositivo de E/S.&lt;br /&gt;
&lt;br /&gt;
Realice la traza de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación: &lt;br /&gt;
&lt;br /&gt;
#El siguiente, el más corto apropiativo en un sistema multiprocesador con dos procesadores. No olvide los tiempos de bloqueo de los procesos A y B. Considere asignación dinámica. (''[[sol-ejer2-1-otros-aspectos|Ver solución]]'')&lt;br /&gt;
#Por prioridades apropiativo en tiempo real, suponiendo que C &amp;lt; B &amp;lt; A. No olvide los tiempos de bloqueo de los procesos A y B. (''[[sol-ejer2-2-otros-aspectos|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Plazo&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 3 (1º PARCIAL) ==&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
      H0  t &lt;br /&gt;
 PA   0   3   &lt;br /&gt;
 PB   1   5   &lt;br /&gt;
 PC   2   6   &lt;br /&gt;
&lt;br /&gt;
Teniendo en cuanta las mismas consideraciones que el ejercicio anterior en cuanto a los tiempos de bloqueo de los procesos pero para un sistema multiprocesador con dos procesadores, utilizando el siguiente, el más corto apropiativo. Considere asignación dinámica.&lt;br /&gt;
&lt;br /&gt;
[[sol-ejer3-otros-aspectos|Ver solución ejercicio 3]]&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_planificaci%C3%B3n_de_procesos&amp;diff=596</id>
		<title>Ejercicios planificación de procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_planificaci%C3%B3n_de_procesos&amp;diff=596"/>
				<updated>2011-03-30T18:27:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: /* Ejercicio 4 (1º PARCIAL) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ejercicio 1 =&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
      H0  t&lt;br /&gt;
 P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;   0   5&lt;br /&gt;
 P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;   1   3&lt;br /&gt;
 P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;   2   1&lt;br /&gt;
 P&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;   3   6&lt;br /&gt;
 P&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;   4   2&lt;br /&gt;
&lt;br /&gt;
Realice la traza de la ejecución de dichos procesos para los siguientes criterios de planificación:&lt;br /&gt;
&lt;br /&gt;
* FIFO (no apropiativo)&lt;br /&gt;
* SJF (apropiativo y no apropiativo)&lt;br /&gt;
* Índice de penalización (no apropiativo)&lt;br /&gt;
[[sol-ejer1-planif-procesos|Ver solución ejercicio 1]]&lt;br /&gt;
&lt;br /&gt;
= Ejercicio 2 =&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
      H0  t&lt;br /&gt;
 P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;   0   3&lt;br /&gt;
 P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;   1   5&lt;br /&gt;
 P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;   2   6&lt;br /&gt;
&lt;br /&gt;
Teniendo en cuenta el siguiente comportamiento:&lt;br /&gt;
&lt;br /&gt;
* El proceso A cada 1 unidad de tiempo de ejecución bloquea por operación de E/S&lt;br /&gt;
* El proceso B cada 3 unidades de tiempo de ejecución bloquea por operación de E/S&lt;br /&gt;
&lt;br /&gt;
Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acceso al dispositivo de E/S.&lt;br /&gt;
&lt;br /&gt;
Realice la traza temporal de ejecución de dichos procesos para los siguientes criterios de planificación:&lt;br /&gt;
&lt;br /&gt;
* Turno rotatorio estricto, suponiendo que el quantum es de 2 unidades de tiempo.&lt;br /&gt;
* Por prioridades, suponiendo que A &amp;lt; B &amp;lt; C.&lt;br /&gt;
* Turno rotatorio proporcional al número de procesos, supongiendo que el quantum es de 2 unidades de tiempo. Si hay dos o más procesos el quantum pasa a ser de una unidad de tiempo.&lt;br /&gt;
&lt;br /&gt;
[[sol-ejer2-planif-procesos|Ver solución ejercicio 2]]&lt;br /&gt;
&lt;br /&gt;
= Ejercicio 3 =&lt;br /&gt;
&lt;br /&gt;
En un planificador multinivel con realimentación se dispone de dos colas:&lt;br /&gt;
&lt;br /&gt;
* La primera cola tiene procesos que reciben un ''quantum'' de 4 unidades de tiempo.&lt;br /&gt;
* La segunda cola tiene procesos que reciben un ''quantum'' de 2 unidades de tiempo. Los procesos en esta cola reciben dos oportunidades de ejecución. Por tanto, se itera dos veces sobre esta cola antes de pasar a la primera cola.&lt;br /&gt;
&lt;br /&gt;
Los procesos que acaban de ser lanzados pasan inicialmente a la segunda cola. Si consumen completamente el ''quantum'' una vez, promocionan a la primera cola. Si dejan de consumir completamente el ''quantum'' una vez, descienden a la segunda.&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuración de procesos:&lt;br /&gt;
&lt;br /&gt;
     H0  t&lt;br /&gt;
 Pa   0  4&lt;br /&gt;
 Pb   1  4&lt;br /&gt;
 Pc   2  12&lt;br /&gt;
 Pd   3  12&lt;br /&gt;
&lt;br /&gt;
Suponga que los procesos A y B bloquean por operación de E/S tras 1 unidad de ejecución. Los procesos C y D no bloquean. Los tiempos de bloqueo por E/S son de 1 unidad de tiempo. Represente graficamente la evolución temporal de la asignación del procesador.&lt;br /&gt;
&lt;br /&gt;
[[sol-ejer3-planif-procesos|Ver solución ejercicio 3]]&lt;br /&gt;
&lt;br /&gt;
=Ejercicio 4 (1º PARCIAL)=&lt;br /&gt;
&lt;br /&gt;
Dada la siguiente configuracion de procesos:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | Proceso&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | H&amp;lt;sub&amp;gt;0&lt;br /&gt;
! width=&amp;quot;50&amp;quot; style=&amp;quot;background:#efefef;&amp;quot; | t&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 0 &lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 1 &lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt; &lt;br /&gt;
| 2 &lt;br /&gt;
| 6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Teniendo en cuenta el siguiente comportamiento:&lt;br /&gt;
&lt;br /&gt;
* El proceso A cada 1 unidad de tiempo de ejecución bloquea .&lt;br /&gt;
* El proceso B cada 3 unidades de tiempo de ejecución bloquea.&lt;br /&gt;
&lt;br /&gt;
Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acesso al dispositivo de E/S.&lt;br /&gt;
&lt;br /&gt;
Realice la traza de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación: &lt;br /&gt;
&lt;br /&gt;
#Turno rotatorio con compensacion con quantum de 2 unidades de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*En caso de que un proceso haya consumido el 50% de su quantum y en la cola de procesos preparados haya un unico proceso, insertelo delante de este.&lt;br /&gt;
&lt;br /&gt;
*Si dos o mas procesos pasan de estado preparado a la vez, considere que el orden de insercion en la cola de preparados es el siguiente: 1ºA 2ºB 3ºC&lt;br /&gt;
&lt;br /&gt;
*Recuerde que un proceso en estado bloqueado se inserta en la cola de preparados una vez que pasa el tiempo de bloqueo ( que en este ejercicio se trata de 2 unidades de tiempo)&lt;br /&gt;
&lt;br /&gt;
*En toda decisión del planificador tenga en cuenta a los procesos que justo acaban de pasar a estado preparado tras un bloqueo.&lt;br /&gt;
&lt;br /&gt;
''[[sol-ejer4-planif-procesos|Ver solución ejercicio 4]]''&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_otros_aspectos_de_la_planificaci%C3%B3n/Solucion_del_ejercicio_1&amp;diff=558</id>
		<title>Ejercicios otros aspectos de la planificación/Solucion del ejercicio 1</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_otros_aspectos_de_la_planificaci%C3%B3n/Solucion_del_ejercicio_1&amp;diff=558"/>
				<updated>2011-03-28T19:08:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Sol-ejer1-otros-aspectos trasladada a Ejercicios otros aspectos de la planificación/Solucion del ejercicio 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FIFO no apropiativo con multiprocesamiento =&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;_|_P&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;__|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|_3__|_4__|&lt;br /&gt;
           problema  _t__|_5__|_3__|_1__|_6__|_2__|&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;
                       +++ = procesador 1&lt;br /&gt;
                       --- = procesador 2&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;
    Pd             |   |   |   &amp;lt;   |   |+++|+++|+++|+++|+++|+++&amp;gt;   |&lt;br /&gt;
    Pe             |   |   |   |   &amp;lt;   |---|---&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;
                         _____|_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;D&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;__|&lt;br /&gt;
              Cálculos   __t__|_5__|_3__|_1__|_6__|_2__|&lt;br /&gt;
             de tiempos  __T__|_5__|_3__|_3__|_8__|_3__|&lt;br /&gt;
                         _T/t_|_1__|_1__|_3__|1.33|_1.5|&lt;br /&gt;
                           |&lt;br /&gt;
                           |_&amp;gt; Indice de penalización&lt;br /&gt;
&lt;br /&gt;
= SFJ no apropriativo con multiprocesamiento =&lt;br /&gt;
&lt;br /&gt;
La solución es igual que el FIFO no apropiativo con multiprocesamiento.&lt;br /&gt;
&lt;br /&gt;
= SFJ 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;_|_P&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;__|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|_3__|_4__|&lt;br /&gt;
           problema  _t__|_5__|_3__|_1__|_6__|_2__|&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;
                       +++ = procesador 1&lt;br /&gt;
                       --- = procesador 2&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;
    Pd             |   |   |   &amp;lt;   |   |   |+++|+++|+++|+++|+++|+++&amp;gt;&lt;br /&gt;
    Pe             |   |   |   |   &amp;lt;---|---&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;
                         _____|_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;D&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;__|&lt;br /&gt;
              Cálculos   __t__|_5__|_3__|_1__|_6__|_2__|&lt;br /&gt;
             de tiempos  __T__|_6__|_3__|_1__|_9__|_2__|&lt;br /&gt;
                         _T/t_|_1.2|_1__|_1__|_1.5|_1__|&lt;br /&gt;
                           |&lt;br /&gt;
                           |_&amp;gt; Indice de penalización&lt;br /&gt;
&lt;br /&gt;
=============&lt;br /&gt;
Observaciones&lt;br /&gt;
=============&lt;br /&gt;
&lt;br /&gt;
-En este caso, pd podría haberse procesado en cualquiera de los dos procesadores,¿no?. ¿O hay que suponer que cuando ambos procesadores están ociosos se utiliza el primero?.&lt;br /&gt;
&lt;br /&gt;
- Creo que si. En clase dijeron que se suponen las mismas características para ambos procesadores, por lo que no hay preferencia por uno en concreto.&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer1-otros-aspectos&amp;diff=559</id>
		<title>Sol-ejer1-otros-aspectos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Sol-ejer1-otros-aspectos&amp;diff=559"/>
				<updated>2011-03-28T19:08:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Sol-ejer1-otros-aspectos trasladada a Ejercicios otros aspectos de la planificación/Solucion del ejercicio 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Ejercicios otros aspectos de la planificación/Solucion del ejercicio 1]]&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Planificadores_de_sistemas_operativos_existentes&amp;diff=557</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=557"/>
				<updated>2011-03-28T19:07:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &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;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Modelos_de_Dise%C3%B1o_de_Sistemas_Operativos&amp;diff=556</id>
		<title>Modelos de Diseño de Sistemas Operativos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Modelos_de_Dise%C3%B1o_de_Sistemas_Operativos&amp;diff=556"/>
				<updated>2011-03-28T19:04:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modos de operación del procesador =&lt;br /&gt;
&lt;br /&gt;
Para entender los modelos de diseño de los sistemas operativos, tenemos que hacer referencia a los modos de ejecución del procesador. El modo de ejecución del procesador indica que conjunto de instrucciones y a qué recursos del procesador se puede acceder en un cierto instante de tiempo.&lt;br /&gt;
&lt;br /&gt;
En la actualidad, un procesador ofrece como mínimo dos modos de operación que son:&lt;br /&gt;
&lt;br /&gt;
* Modo supervisor, que permite la ejecución de todo el conjunto de instrucciones que ofrece el procesador.&lt;br /&gt;
* Modo usuario, que tiene algunas restricciones de acceso a aspectos del procesador o de ejecución de instrucciones.&lt;br /&gt;
&lt;br /&gt;
= Núcleo del sistema operativo =&lt;br /&gt;
&lt;br /&gt;
El núcleo del sistema operativo, también conocido por la terminología inglesa ''kernel'', es la parte más esencial del sistema operativo. Se trata de la capa visible de software más baja del sistema y provee y gestiona de forma segura los recursos del sistema a través de las llamadas al sistema.&lt;br /&gt;
&lt;br /&gt;
El núcleo de un sistema operativo suele operar en modo supervisor. Al operar en dicho modo un error de programación en el núcleo del sistema operativo puede resultar en un error fatal del cual el sistema sólo puede recuperarse mediante el reinicio del sistema. A tal error fatal también se le conoce en los sistemas operativos UNIX por la locución inglesa ''[http://es.wikipedia.org/wiki/Kernel_panic kernel panic]''.&lt;br /&gt;
&lt;br /&gt;
= Tipos de Sistemas Operativos =&lt;br /&gt;
&lt;br /&gt;
Los sistemas operativos se pueden clasificar en base a la cantidad de funcionalidad implementada en su núcleo. En general distinguimos dos tipos de sistemas operativos:&lt;br /&gt;
&lt;br /&gt;
* Monolíticos: son núcleos de gran tamaño con poca modularidad y flexibilidad pero con una gran cantidad de funcionalidades, las cuales son normalmente compiladas junto al núcleo en el mismo momento.&lt;br /&gt;
* Micronúcleos: son núcleos de pequeño tamaño que fueron compilados sólo con las necesidades más básicas del sistema operativo. El resto de funcionalidades son añadidas mediante la adición de módulos externos al núcleo, lo que les proporciona flexibilidad y facilidad de ampliación en detrimento del desempeño necesario para la gestión dinámica de éstos.&lt;br /&gt;
&lt;br /&gt;
No obstante, existen tipologías híbridas o que acentúan algunos aspectos, que también detallamos en esta sección.&lt;br /&gt;
&lt;br /&gt;
[[Imagen:OS-structure2.svg|880px| Comparativa de distribución de funcionalidades entre distintos tipos de SO]]&lt;br /&gt;
&lt;br /&gt;
== Sistemas operativos Monolíticos ==&lt;br /&gt;
&lt;br /&gt;
Los sistema operativos monolíticos se caracterizan por emplear un núcleo que implementa la planificación de procesos, el sistema de comunicación de procesos, el sistema de sincronizacion de procesos, la administración de la memoria principal, la administración de ficheros y la gestión de los dispositivos de entrada/salida. Por tanto, a mayor funcionalidad implementada en el núcleo, mayor número de líneas de código que se ejecutan en modo supervisor.&lt;br /&gt;
&lt;br /&gt;
Los sistemas operativos monolíticos son los predominantes hoy día, algunos ejemplos son:&lt;br /&gt;
&lt;br /&gt;
* Sistemas operativos UNIX, tales como FreeBSD, NetBSD y OpenBSD. &lt;br /&gt;
* Sistemas operativos GNU/Linux.&lt;br /&gt;
* DOS, tales como MS-DOS y DR-DOS.&lt;br /&gt;
&lt;br /&gt;
Como inconveniente, al emplear un núcleo que incluye gran parte de las funcionalidades básicas del sistema operativo, dispone de un alto número de líneas de código ejecutándose en modo supervisor. Por ello, un error de programación en el núcleo puede provocar un ''kernel panic''. Además el hecho de añadir nuevas funcionalidades provocaría una nueva recompilación del núcleo llevando a reiniciar el sistema para que se apliquen los nuevos cambios.&lt;br /&gt;
&lt;br /&gt;
Como principal ventaja, los sistemas operativo monolíticos ofrecen un alto rendimiento puesto que las peticiones entre los diferentes componentes se reducen a invocaciones de funciones.&lt;br /&gt;
&lt;br /&gt;
== Sistemas operativos Micronúcleo ==&lt;br /&gt;
&lt;br /&gt;
También conocidos como sistemas operativos exokernel o exonúcleo, se caracterizan por disponer de un núcleo que implementa únicamente:&lt;br /&gt;
&lt;br /&gt;
* Planificación de procesos&lt;br /&gt;
* Mecanismo de comunicación entre procesos&lt;br /&gt;
* Gestión de interrupciones&lt;br /&gt;
&lt;br /&gt;
Además, existen procesos servidores que están fuera del núcleo, que se ejecutan en modo usuario del procesador, y que implementan la:&lt;br /&gt;
&lt;br /&gt;
* Administración de memoria principal&lt;br /&gt;
* Administración de ficheros&lt;br /&gt;
* Gestión de dispositivos de entrada/salida.&lt;br /&gt;
&lt;br /&gt;
Siguiendo este esquema, cuando un proceso cualquiera solicita un servicio a través de una llamada al sistema, el micronúcleo canaliza la petición al proceso servidor correspondiente. Dicha comunicación se realiza mediante mensajería.&lt;br /&gt;
&lt;br /&gt;
La principal ventaja de los sistemas operativos micronúcleo es que, al ejecutar menos líneas de código en modo supervisor, de manera intuitiva son más fiables. Otras ventajas son que se garantiza el aislamiento de las partes que estan fuera del nucleo, como los modulos son independientes unos de otros, si cae alguno de ello los demas no se ven afectados y pueden seguir funcionando.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, el principal problema que presentan es el rendimiento, puesto que cualquier petición requiere mensajería, que lleva consigo un coste extra debido a la construcción de los mensajes, el reparto y la interpretación. Son estos problemas relacionados con el rendimiento los que hacen que no existan sistemas operativos micronúcleo desplegables en productivo, a excepción de Minix 2, que tiene propósitos educativos.&lt;br /&gt;
&lt;br /&gt;
== Sistemas basados en Máquinas Virtuales ==&lt;br /&gt;
&lt;br /&gt;
Implementan el material (hardware) en el software. Algunos sistemas operativos ofrecen técnicas de paravirtualización.&lt;br /&gt;
&lt;br /&gt;
Paravirtualización: técnica de programación que ofrecen algunos SO anfitrión para facilitar la virtualización y el rendimiento de máquinas virtuales. Ofrecen llamadas directas al sistema &lt;br /&gt;
o acceso a una API especial del anfitrión para acceder directamente a los recursos. Observamos que se deposita una gran confianza en los procesos de la VM por motivos de rendimiento.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Ventajas de las Máquinas Virtuales&lt;br /&gt;
** Ahorro de coste material.&lt;br /&gt;
** Se pueden tener diferentes SO en un mismo sistema.&lt;br /&gt;
** Se adapta a las necesidades de usuario.&lt;br /&gt;
** Se puede deslocalizar la máquina virtual (deslocalización: migrar a otro SO sin sufrir ningún cambio ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Desventajas de las Maquinas Virtuales &lt;br /&gt;
** Rendimiento  (KVM +  paravirtualizacion 10%).&lt;br /&gt;
** Punto único de fallos(si falla algún componente y las aplicaciones están montadas en él provoca un fallo general).&lt;br /&gt;
&lt;br /&gt;
= Otro material a consultar =&lt;br /&gt;
&lt;br /&gt;
El estudiante puede encontrar el siguiente material de interés para complementar sus conocimientos:&lt;br /&gt;
&lt;br /&gt;
* Debate entre Linus Torvalds, creador del núcleo Linux, que sigue el paradigma monolítico y Andrew S. Tanembaum, creador de Minux, que sigue el modelo micronúcleo: http://oreilly.com/catalog/opensources/book/appa.html (en inglés).&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Modelos_de_Dise%C3%B1o_de_Sistemas_Operativos&amp;diff=555</id>
		<title>Modelos de Diseño de Sistemas Operativos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Modelos_de_Dise%C3%B1o_de_Sistemas_Operativos&amp;diff=555"/>
				<updated>2011-03-28T19:03:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modos de operación del procesador =&lt;br /&gt;
&lt;br /&gt;
Para entender los modelos de diseño de los sistemas operativos, tenemos que hacer referencia a los modos de ejecución del procesador. El modo de ejecución del procesador indica que conjunto de instrucciones y a qué recursos del procesador se puede acceder en un cierto instante de tiempo.&lt;br /&gt;
&lt;br /&gt;
En la actualidad, un procesador ofrece como mínimo dos modos de operación que son:&lt;br /&gt;
&lt;br /&gt;
* Modo supervisor, que permite la ejecución de todo el conjunto de instrucciones que ofrece el procesador.&lt;br /&gt;
* Modo usuario, que tiene algunas restricciones de acceso a aspectos del procesador o de ejecución de instrucciones.&lt;br /&gt;
&lt;br /&gt;
= Núcleo del sistema operativo =&lt;br /&gt;
&lt;br /&gt;
El núcleo del sistema operativo, también conocido por la terminología inglesa ''kernel'', es la parte más esencial del sistema operativo. Se trata de la capa visible de software más baja del sistema y provee y gestiona de forma segura los recursos del sistema a través de las llamadas al sistema.&lt;br /&gt;
&lt;br /&gt;
El núcleo de un sistema operativo suele operar en modo supervisor. Al operar en dicho modo un error de programación en el núcleo del sistema operativo puede resultar en un error fatal del cual el sistema sólo puede recuperarse mediante el reinicio del sistema. A tal error fatal también se le conoce en los sistemas operativos UNIX por la locución inglesa ''[http://es.wikipedia.org/wiki/Kernel_panic kernel panic]''.&lt;br /&gt;
&lt;br /&gt;
= Tipos de Sistemas Operativos =&lt;br /&gt;
&lt;br /&gt;
Los sistemas operativos se pueden clasificar en base a la cantidad de funcionalidad implementada en su núcleo. En general distinguimos dos tipos de sistemas operativos:&lt;br /&gt;
&lt;br /&gt;
* Monolíticos: son núcleos de gran tamaño con poca modularidad y flexibilidad pero con una gran cantidad de funcionalidades, las cuales son normalmente compiladas junto al núcleo en el mismo momento.&lt;br /&gt;
* Micronúcleos: son núcleos de pequeño tamaño que fueron compilados sólo con las necesidades más básicas del sistema operativo. El resto de funcionalidades son añadidas mediante la adición de módulos externos al núcleo, lo que les proporciona flexibilidad y facilidad de ampliación en detrimento del desempeño necesario para la gestión dinámica de éstos.&lt;br /&gt;
&lt;br /&gt;
No obstante, existen tipologías híbridas o que acentúan algunos aspectos, que también detallamos en esta sección.&lt;br /&gt;
&lt;br /&gt;
[[Imagen:OS-structure2.svg|880px| Comparativa de distribución de funcionalidades entre distintos tipos de SO]]&lt;br /&gt;
&lt;br /&gt;
== Sistemas operativos Monolíticos ==&lt;br /&gt;
&lt;br /&gt;
Los sistema operativos monolíticos se caracterizan por emplear un núcleo que implementa la planificación de procesos, el sistema de comunicación de procesos, el sistema de sincronizacion de procesos, la administración de la memoria principal, la administración de ficheros y la gestión de los dispositivos de entrada/salida. Por tanto, a mayor funcionalidad implementada en el núcleo, mayor número de líneas de código que se ejecutan en modo supervisor.&lt;br /&gt;
&lt;br /&gt;
Los sistemas operativos monolíticos son los predominantes hoy día, algunos ejemplos son:&lt;br /&gt;
&lt;br /&gt;
* Sistemas operativos UNIX, tales como FreeBSD, NetBSD y OpenBSD. &lt;br /&gt;
* Sistemas operativos GNU/Linux.&lt;br /&gt;
* DOS, tales como MS-DOS y DR-DOS.&lt;br /&gt;
&lt;br /&gt;
Como inconveniente, al emplear un núcleo que incluye gran parte de las funcionalidades básicas del sistema operativo, dispone de un alto número de líneas de código ejecutándose en modo supervisor. Por ello, un error de programación en el núcleo puede provocar un ''kernel panic''. Además el hecho de añadir nuevas funcionalidades provocaría una nueva recompilación del núcleo llevando a reiniciar el sistema para que se apliquen los nuevos cambios.&lt;br /&gt;
&lt;br /&gt;
Como principal ventaja, los sistemas operativo monolíticos ofrecen un alto rendimiento puesto que las peticiones entre los diferentes componentes se reducen a invocaciones de funciones.&lt;br /&gt;
&lt;br /&gt;
== Sistemas operativos Micronúcleo ==&lt;br /&gt;
&lt;br /&gt;
También conocidos como sistemas operativos exokernel o exonúcleo, se caracterizan por disponer de un núcleo que implementa únicamente:&lt;br /&gt;
&lt;br /&gt;
* Planificación de procesos&lt;br /&gt;
* Mecanismo de comunicación entre procesos&lt;br /&gt;
* Gestión de interrupciones&lt;br /&gt;
&lt;br /&gt;
Además, existen procesos servidores que están fuera del núcleo, que se ejecutan en modo usuario del procesador, y que implementan la:&lt;br /&gt;
&lt;br /&gt;
* Administración de memoria principal&lt;br /&gt;
* Administración de ficheros&lt;br /&gt;
* Gestión de dispositivos de entrada/salida.&lt;br /&gt;
&lt;br /&gt;
Siguiendo este esquema, cuando un proceso cualquiera solicita un servicio a través de una llamada al sistema, el micronúcleo canaliza la petición al proceso servidor correspondiente. Dicha comunicación se realiza mediante mensajería.&lt;br /&gt;
&lt;br /&gt;
La principal ventaja de los sistemas operativos micronúcleo es que, al ejecutar menos líneas de código en modo supervisor, de manera intuitiva son más fiables. Otras ventajas son que se garantiza el aislamiento de las partes que estan fuera del nucleo, como los modulos son independientes unos de otros, si cae alguno de ello los demas no se ven afectados y pueden seguir funcionando.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, el principal problema que presentan es el rendimiento, puesto que cualquier petición requiere mensajería, que lleva consigo un coste extra debido a la construcción de los mensajes, el reparto y la interpretación. Son estos problemas relacionados con el rendimiento los que hacen que no existan sistemas operativos micronúcleo desplegables en productivo, a excepción de Minix 2, que tiene propósitos educativos.&lt;br /&gt;
&lt;br /&gt;
== Sistemas basados en Máquinas Virtuales ==&lt;br /&gt;
&lt;br /&gt;
Implementan el material (hardware) en el software. Algunos sistemas operativos ofrecen técnicas de paravirtualización.&lt;br /&gt;
&lt;br /&gt;
Paravirtualización: técnica de programación que ofrecen algunos SO anfitrión para facilitar la virtualización y el rendimiento de máquinas virtuales. Ofrecen llamadas directas al sistema &lt;br /&gt;
o acceso a una API especial del anfitrión para acceder directamente a los recursos. Observamos que se deposita una gran confianza en los procesos de la VM por motivos de rendimiento.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Ventajas de las Máquinas Virtuales&lt;br /&gt;
&lt;br /&gt;
** Ahorro de coste material.&lt;br /&gt;
** Se pueden tener diferentes SO en un mismo sistema.&lt;br /&gt;
** Se adapta a las necesidades de usuario.&lt;br /&gt;
** Se puede deslocalizar la máquina virtual (deslocalización: migrar a otro SO sin sufrir ningún cambio ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Desventajas de las Maquinas Virtuales &lt;br /&gt;
 &lt;br /&gt;
** Rendimiento  (KVM +  paravirtualizacion 10%).&lt;br /&gt;
** Punto único de fallos(si falla algún componente y las aplicaciones están montadas en él provoca un fallo general).&lt;br /&gt;
&lt;br /&gt;
= Otro material a consultar =&lt;br /&gt;
&lt;br /&gt;
El estudiante puede encontrar el siguiente material de interés para complementar sus conocimientos:&lt;br /&gt;
&lt;br /&gt;
* Debate entre Linus Torvalds, creador del núcleo Linux, que sigue el paradigma monolítico y Andrew S. Tanembaum, creador de Minux, que sigue el modelo micronúcleo: http://oreilly.com/catalog/opensources/book/appa.html (en inglés).&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mecanismos_de_sincronizaci%C3%B3n&amp;diff=554</id>
		<title>Mecanismos de sincronización</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Mecanismos_de_sincronizaci%C3%B3n&amp;diff=554"/>
				<updated>2011-03-28T19:01:47Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Tipos de mecanismos de sincronización :'''&lt;br /&gt;
== Optimista== &lt;br /&gt;
Se considera que la frecuencia de acceso a un recurso compartido es baja, es decir, suponemos que la probabilidad de acceso simultanea a un recurso compartido es baja.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;/*Ejemplo de control optimista suponiendo 2 hilos, hx y hy.*/&amp;lt;/font&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt; compartida = 1, tmp;&lt;br /&gt;
       retry:&lt;br /&gt;
            tmp = compartida;         &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;/* anoto */&amp;lt;/font&amp;gt;&lt;br /&gt;
            tmp++;                    &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;/* actualizo temporal */&amp;lt;/font&amp;gt;&lt;br /&gt;
            &amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;if&amp;lt;/font&amp;gt;(compartida+1 != tmp)&lt;br /&gt;
                  &amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;goto&amp;lt;/font&amp;gt; retry;           &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;/* compruebo si la variable compartida ha sido modificada mientras operaba con el temporal */&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Los inconvenientes de este tipo de mecanismo es su elevado recurso de memoria, ya que se debe tener una copia del recurso compartido y efectuar la comprobación, y su alto recurso de procesamiento, al tener que volver a realizar la operación. Por esto último, puede darse el caso de que un hilo esté sin progresar durante un tiempo indefinido, si se da el caso de que siempre que se le agote el tiempo de procesador asignado debido a que otro hilo modifique el recurso compartido.&lt;br /&gt;
&lt;br /&gt;
==Pesimista==&lt;br /&gt;
Se considera que la frecuencia de acceso al recurso compartido es alta.&lt;br /&gt;
En este mecanismo disponemos de tres partes :&lt;br /&gt;
*Un protocolo de entrada : en el cual se restringe el permiso de acceso para las variables compartidas.&lt;br /&gt;
*Una sección crítica : donde se realizan todas las operaciones con las variables compartidas.&lt;br /&gt;
*Un protocolo de salida : en el cual se restablece el permiso de acceso para las variables compartidas.&lt;br /&gt;
&lt;br /&gt;
(Toda operación con una variable compartida necesita un protocolo de entrada y otro de salida)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;/*Ejemplo de control pesimista suponiendo 2 hilos, hx y hy*/&amp;lt;/font&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
  &amp;lt;font color=&amp;quot;#0000FF&amp;quot;&amp;gt;int&amp;lt;/font&amp;gt; compartida = 1;&lt;br /&gt;
         no_permito_acceso_variable_compartida();       &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;/* protocolo de entrada */&amp;lt;/font&amp;gt;&lt;br /&gt;
                 compartida++;                       &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;/* sección crítica */&amp;lt;/font&amp;gt;&lt;br /&gt;
         permito_acceso_a_variable_compartida();   &amp;lt;font color=&amp;quot;DarkGreen&amp;quot;&amp;gt;/* protocolo de salida */&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''¿Cómo implementamos el protocolo de E/S en el control de concurrencia pesimista?'''&lt;br /&gt;
&lt;br /&gt;
Interrumpiendo la conmutación, desactivando las interrupciones, seguidamente ejecutando la sección crítica y finalmente permitiendo el acceso a las variables compartidas y activando las interrupciones.&lt;br /&gt;
&lt;br /&gt;
'''¿Cómo implementar el control de concurrencia pesimista?'''&lt;br /&gt;
&lt;br /&gt;
*Espera ocupada/activa : cerrojos. Se comprueba continuamente la condición que permite franquear el protocolo de entrada&lt;br /&gt;
*Espera no ocupada/no activa : semáforos, monitores y mensajes. Se pasa a estado bloqueado cuando no se puede franquear el protocolo de entrada.&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Conmutaci%C3%B3n_de_procesos&amp;diff=91</id>
		<title>Conmutación de procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Conmutaci%C3%B3n_de_procesos&amp;diff=91"/>
				<updated>2011-03-02T10:26:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La conmutación de procesos es la operación que consiste en retirar el procesador a un proceso para asignarselo a otro. La conmutación puede suceder por dos motivos:&lt;br /&gt;
&lt;br /&gt;
* Un proceso está pendiente de un evento externo, por tanto, pasa a estado bloqueado. El planificador debe asignar el procesador a otro nuevo proceso de entre los proceso en estado preparado.&lt;br /&gt;
* Un proceso agota el tiempo máximo asignado al procesador, por tanto, se debe dar paso a otro proceso para garantizar que la multiprogramación es llevada a cabo apropriadamente.&lt;br /&gt;
&lt;br /&gt;
Los pasos que se siguen son los siguientes:&lt;br /&gt;
&lt;br /&gt;
# Pasar a modo supervisor.&lt;br /&gt;
# Guardar el contenido de los registros del hardware en el PCB (el llamado ''contexto de la ejecución'').&lt;br /&gt;
# Actualizar el estado del proceso en el PCB (el estado ha pasado de activo a bloqueado o preparado).&lt;br /&gt;
# Si se produjo una interrupción, atenderla.&lt;br /&gt;
# Seleccionar un nuevo proceso.&lt;br /&gt;
# Restaurar el contexto de ejecución del nuevo proceso seleccionado. En el caso de que el nuevo proceso no hubiese estado en estado activo el contexto de la ejecución deberá inicializarse.&lt;br /&gt;
# Pasar a modo usuario.&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Estados_de_los_procesos&amp;diff=80</id>
		<title>Estados de los procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Estados_de_los_procesos&amp;diff=80"/>
				<updated>2011-02-23T20:43:47Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Planificador de procesos: Diagrama de estados simplicado =&lt;br /&gt;
&lt;br /&gt;
Todo proceso en un sistema operativo presenta un estado que indica la situación de la ejecución en que se encuentra. El número de posibles estados varía de un sistema operativo a otro. No obstante, un proceso de cualquier sistema operativo puede estar, como mínimo, en uno de los siguientes tres estados:&lt;br /&gt;
&lt;br /&gt;
* '''Activo''': el proceso está empleando la CPU, por tanto, está ejecutandose. Pueden haber tantos procesos activos como procesadores haya disponible. Por tanto, si el sistema dispone de un único procesador, únicamente puede haber un proceso activo a la vez.&lt;br /&gt;
* '''Preparado''': el proceso no está ejecutándose pero es candidato a pasar a estado activo. Es el planificador el que, en base a un criterio de planificación, decide qué proceso selecciona de la lista de procesos preparados para pasar a estado activo.&lt;br /&gt;
* '''Bloqueado''': el proceso está pendiente de un evento externo, tales como una operación de lectura/escritura, la espera de finalización de un proceso hijo, una señal o una operación sobre un semáforo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                           |---------------|&lt;br /&gt;
   pendiente               |               |              recibido&lt;br /&gt;
    evento      ---------&amp;gt; |   bloqueado   |-----------    evento&lt;br /&gt;
    externo     |          |               |          |    externo&lt;br /&gt;
                |          |---------------|          |&lt;br /&gt;
                |                                     |&lt;br /&gt;
                |             planificador            V&lt;br /&gt;
        |--------------|       retira CPU     |---------------|&lt;br /&gt;
        |              | -------------------&amp;gt; |               |&lt;br /&gt;
        |    activo    |                      |   preparado   |&lt;br /&gt;
        |              | &amp;lt;------------------- |               |&lt;br /&gt;
        |--------------|                      |---------------|&lt;br /&gt;
                             planificador&lt;br /&gt;
                              asigna CPU&lt;br /&gt;
&lt;br /&gt;
La transición de activo a preparado y viceversa depende de decisiones tomadas por el '''planificador del sistema operativo''' en base a un cierto criterio. La transición de activo a bloqueado, y de bloqueado a preparado puede inducirlas el programador mediante llamadas al sistema.&lt;br /&gt;
&lt;br /&gt;
Hay tres posibles situaciones en las que se ejecutará el planificador del sistema operativo:&lt;br /&gt;
# El proceso que se encuentra en el estado activo hace una llamada al sistema que, por su naturaleza, hace que pase al estado bloqueado (como la llamada READ, por ejemplo). Entonces automáticamente se ejecuta el planificador para que decida qué proceso ocupará el estado activo a continuación.&lt;br /&gt;
# Si el proceso que se encuentra en el estado activo excede el tiempo asignado a ese proceso, se ejecuta el planificador que asignará el estado activo a otro proceso.&lt;br /&gt;
# También se ejecuta el planificador si el proceso que hasta ese momento se encontraba en estado activo termina de ejecutar su código.&lt;br /&gt;
&lt;br /&gt;
Además, algunos sistemas operativos disponen de un estado terminado en el que los procesos pasan antes de terminar su ejecución.&lt;br /&gt;
&lt;br /&gt;
En el caso del núcleo de Linux, existen tres tipos de estados bloqueado y dos estados terminado: http://www.ibm.com/developerworks/linux/library/l-task-killable/&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Qu%C3%A9_es_un_Sistema_Operativo&amp;diff=40</id>
		<title>Qué es un Sistema Operativo</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Qu%C3%A9_es_un_Sistema_Operativo&amp;diff=40"/>
				<updated>2011-02-21T19:01:23Z</updated>
		
		<summary type="html">&lt;p&gt;Jescudero: Página nueva: == ¿Que es un Sistema Operativo? == * Un programa de programas.  * Gestiona los recursos que ofrece el material (el ''hardware'' del equipo): ** La CPU. ** La Memoria principal ** Lo...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Que es un Sistema Operativo? ==&lt;br /&gt;
* Un programa de programas.&lt;br /&gt;
&lt;br /&gt;
* Gestiona los recursos que ofrece el material (el ''hardware'' del equipo):&lt;br /&gt;
** La CPU.&lt;br /&gt;
** La Memoria principal&lt;br /&gt;
** Los dispositivos de Entrada/Salida, tales como la tarjeta de vídeo, la de red, los dispositivos de almacenamiento masivo (disco duro, memoria flash), los dispositivos USB, teclado, ratón...&lt;br /&gt;
&lt;br /&gt;
* Ofrece un lanzador de aplicaciones, que puede ser de dos tipos:&lt;br /&gt;
** Gestor de ventanas: las órdenes se dan con el ratón.&lt;br /&gt;
** Intérprete de órdenes/comandos (traducción defectuosa del original inglés ''command'', que significa orden), también llamado ''shell''. Las órdenes se escriben con el teclado.&lt;br /&gt;
&lt;br /&gt;
* Ofrece una interfaz (API) a las aplicaciones para solicitar recursos. Debe ser estable (es decir, que no cambie con el tiempo).&lt;br /&gt;
&lt;br /&gt;
== Principios de diseño de un buen Sistema Operativo ==&lt;br /&gt;
&lt;br /&gt;
Los aspectos a tener en cuenta respecto a la gestión de recursos son:&lt;br /&gt;
&lt;br /&gt;
* Debe realizar una gestión eficiente de los recursos,&lt;br /&gt;
* coordinar la asignación de los mismos (como un &amp;quot;director de orquesta&amp;quot;), y&lt;br /&gt;
* hacer un reparto equitativo de ellos.&lt;br /&gt;
&lt;br /&gt;
Respecto a la API:&lt;br /&gt;
&lt;br /&gt;
* Tiene que ser estable, no debe cambiar con el tiempo.&lt;br /&gt;
* Debe ser homogénea.&lt;br /&gt;
* Oculta los detalles de bajo nivel de los componentes, ofreciendo una capa de abstracción sobre el material.&lt;br /&gt;
&lt;br /&gt;
Además, otro criterio a tener en cuenta por un buen sistema operativo es la portabilidad, es decir, que soporte diferentes arquitecturas, como por ejemplo la ARM (teléfonos móviles), la x86 de Intel, la SPARC (desarrollada por Sun Microsystems, ahora adquirida por Oracle), la PowerPC (creada por la alianza AIM: Apple-IBM-Motorola)...&lt;/div&gt;</summary>
		<author><name>Jescudero</name></author>	</entry>

	</feed>