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

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Material_teor%C3%ADa&amp;diff=4379</id>
		<title>Material teoría</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Material_teor%C3%ADa&amp;diff=4379"/>
				<updated>2019-06-01T23:35:32Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: /* Subida de notas */&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. &lt;br /&gt;
&lt;br /&gt;
= Noticias =&lt;br /&gt;
&lt;br /&gt;
* El próximo día 19 de marzo (martes) no habrá clase.&lt;br /&gt;
* El primer control de evaluación continua tendrá lugar el 21 de marzo (jueves) a las 17h30.&lt;br /&gt;
* El tercer control de evaluación continua tendrá lugar el 30 de abril (martes) a las 15h30.&lt;br /&gt;
&lt;br /&gt;
= Subida de notas =&lt;br /&gt;
&lt;br /&gt;
Indica aquí tu UVUS si quieres que revise tus contribuciones para ser tenidas en cuenta en la subida de notas:&lt;br /&gt;
&lt;br /&gt;
* beagalcar&lt;br /&gt;
&lt;br /&gt;
= Notas =&lt;br /&gt;
&lt;br /&gt;
           C1     C2    C3  C4&lt;br /&gt;
 aceralale  0    1,25   -   &lt;br /&gt;
 aratrijua  0    0      -&lt;br /&gt;
 asucarchr  2    2,5    0&lt;br /&gt;
 ayogarele  3,5  0      0&lt;br /&gt;
 cablinant  4    4,75   3   10&lt;br /&gt;
 calvazign  8    7,5   10    5&lt;br /&gt;
 camcremir  2    1      1,5&lt;br /&gt;
 cargaredu  4    7,5    6   10&lt;br /&gt;
 cerbegfra  1    2,5    0,5&lt;br /&gt;
 corborfra  4    2,5    0&lt;br /&gt;
 diacarraf  5    1,5    4   8,5&lt;br /&gt;
 dieblajua  3,5  2,75   2&lt;br /&gt;
 fermariva  5,5  -      -&lt;br /&gt;
 fersanjua  1    -      -&lt;br /&gt;
 galcarbea  9,5 10     10   10&lt;br /&gt;
 gilmarraf  5    -     0&lt;br /&gt;
 jimmarang  7,5  7,5   8    7.5&lt;br /&gt;
 laivaljua  2,5  2,0   5&lt;br /&gt;
 lopmordan  2    -     -&lt;br /&gt;
 loponcale  3    1     6    7&lt;br /&gt;
 micmanrog  4    2,5   0&lt;br /&gt;
 morviñadr  2    0,75  3&lt;br /&gt;
 muñgomant  0    0     0&lt;br /&gt;
 notquifra  4    0     2&lt;br /&gt;
 parmigale  4,5  0,5   3&lt;br /&gt;
 pazrubpab  3    2.75  5&lt;br /&gt;
 pertrijos  4    3.5   6    10&lt;br /&gt;
 rammarant  5    -     -&lt;br /&gt;
 romcacana  3    4,25  1&lt;br /&gt;
 rubhuralb  10   4,25  7&lt;br /&gt;
 silgorant  8    7     4    7,5&lt;br /&gt;
 gonmarfel                  5&lt;br /&gt;
&lt;br /&gt;
Revisión: martes 4 de junio, a las 17h30, en I0.66&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;
* 1.1. [[Qué es un  Sistema operativo|Qué es un Sistema Operativo]]&lt;br /&gt;
* 1.2. [[Introducción histórica|Breve introducción histórica a los Sistemas Operativos]]&lt;br /&gt;
* 1.3. [[Tipos de Sistemas Operativos|Tipos de Sistemas Operativos]]&lt;br /&gt;
&lt;br /&gt;
== Fundamentos de Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* 2.1. [[Organización básica de un ordenador]]&lt;br /&gt;
* 2.2. [[Modos de operación de la CPU|Modos de operación de la CPU]]&lt;br /&gt;
* 2.3. [[Interrupciones y excepciones|Interrupciones y excepciones]]&lt;br /&gt;
* 2.4. [[Conceptos básicos|Conceptos básicos]]&lt;br /&gt;
* 2.5. [[Arranque del sistema|Arranque del sistema]]&lt;br /&gt;
* 2.6. [[Componentes básicos de un sistema operativo|Componentes básicos de un sistema operativo]]&lt;br /&gt;
* 2.7. [[Llamadas al sistema|Llamadas al sistema]]&lt;br /&gt;
* 2.8. [[Ejercicios fundamentos Sistemas Operativos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Modelos de diseño de Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* 3.1. [[Modelos de Diseño de Sistemas Operativos|Modelos de diseño de sistemas operativos]]&lt;br /&gt;
* 3.2. [[Virtualización]]&lt;br /&gt;
* 3.3. [[Ejercicios 3|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Procesos ==&lt;br /&gt;
* 4.1. [[Multiprogramación|La multiprogramación]]&lt;br /&gt;
* 4.2. [[Estados de los procesos|Estados de los procesos]]&lt;br /&gt;
* 4.3. [[Planificador de procesos|El planificador de procesos]]&lt;br /&gt;
* 4.4. [[Comportamiento de los procesos|El comportamiento de los procesos según el planificador]]&lt;br /&gt;
* 4.5. [[Bloque de control de procesos|El bloque de control del proceso]]&lt;br /&gt;
* 4.6. [[Conmutación de procesos|La conmutación de procesos]]&lt;br /&gt;
* 4.7. [[Hilos|Hilos]]&lt;br /&gt;
* 4.8. [[Ejercicios Procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Planificación de Procesos ==&lt;br /&gt;
* 5.1. [[Planificación de procesos|La planificación de procesos]]&lt;br /&gt;
* 5.2. [[Índices de evaluación|Índices de evaluación de la planificación de procesos]]&lt;br /&gt;
* 5.3. [[Criterios de planificación|Criterios de planificación]]&lt;br /&gt;
* 5.4. [[Planificadores de sistemas operativos existentes|Planificadores de sistemas operativos existentes]]&lt;br /&gt;
* 5.5. [[Planificación de procesos de tiempo real|La planificación de procesos de tiempo real]]&lt;br /&gt;
* 5.6. [[Planificación en sistemas multiprocesadores|La planificación de procesos en sistemas multiprocesadores]]&lt;br /&gt;
* 5.7. [[Ejercicios otros aspectos de la planificación|Ejercicios]]&lt;br /&gt;
* 5.8. [[Ejercicios planificación de procesos|Ejercicios]]&lt;br /&gt;
* 5.9. [[Ejercicios_simples_de_planificación_de_procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Concurrencia de procesos ==&lt;br /&gt;
&lt;br /&gt;
* 6.1. [[Concurrencia de procesos|Concurrencia de procesos]]&lt;br /&gt;
* 6.2. [[Mecanismos de sincronización|Control optimista y pesimista de la concurrencia]]&lt;br /&gt;
* 6.3. [[Cerrojos|Cerrojos]]&lt;br /&gt;
* 6.4. [[Ejercicio de concurrencia de procesos|Ejercicios]]&lt;br /&gt;
* 6.5. [[Semáforos|Semáforos]]&lt;br /&gt;
* 6.6. [[Monitores|Monitores]]&lt;br /&gt;
* 6.7. [[Mensajería|Mensajería]]&lt;br /&gt;
* 6.8. [[Ejercicios sincronización y comunicación|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Interbloqueo ==&lt;br /&gt;
&lt;br /&gt;
* 7.1. [[Definición de interbloqueo|Definición]]&lt;br /&gt;
* 7.2. [[Condiciones para el interbloqueo y estrategias de resolución|Modelado y Estrategias]]&lt;br /&gt;
* 7.3. [[Algoritmo para averiguar interbloqueo|Algoritmo del banquero]]&lt;br /&gt;
* 7.4. [[Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Administración de memoria ==&lt;br /&gt;
&lt;br /&gt;
* 8.1. [[Introducción|Introducción]]&lt;br /&gt;
* 8.2. [[SO multiprogramables con particiones variables|SO multiprogramables con particiones variables]]&lt;br /&gt;
* 8.3. [[Segmentación|Segmentación]]&lt;br /&gt;
* 8.4. [[Paginación|Paginación]]&lt;br /&gt;
* 8.5. [[Sistema combinado|Sistema combinado]]&lt;br /&gt;
* 8.6. [[Ejercicios administración de memoria contigua|Ejercicios (Administración de memoria contigua)]]&lt;br /&gt;
* 8.7. [[Ejemplo de segmentación, paginación y combinado|Ejercicios (Segmentación, paginación y sistemas combinados)]]&lt;br /&gt;
&lt;br /&gt;
== Memoria virtual ==&lt;br /&gt;
&lt;br /&gt;
* 9.1. [[Memoria Virtual|Introducción]]&lt;br /&gt;
* 9.2. [[Criterios de reemplazo|Criterios de reemplazo]]&lt;br /&gt;
* 9.3. [[Memoria virtual con multiprogramacion|Otros aspectos relacionados con la memoria virtual]]&lt;br /&gt;
* 9.4. [[Ejercicios memoria virtual|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Entrada/Salida ==&lt;br /&gt;
&lt;br /&gt;
* 10.1. [[EstructuraES|Estructura dispositivo E/S]]&lt;br /&gt;
* 10.2. [[GestionES|Modos de gestionar dispositivos E/S]]&lt;br /&gt;
* 10.3. [[Diseño modular E/S|Diseño modular E/S]]&lt;br /&gt;
* 10.4. [[Ejercicios de Entrada/Salida|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Gestión E/S ==&lt;br /&gt;
&lt;br /&gt;
* 11.1. [[Discos Magnéticos|Discos Magnéticos]]&lt;br /&gt;
* 11.2. [[Mejoras de tiempos de desplazamiento|Mejoras de tiempos de desplazamiento]]&lt;br /&gt;
* 11.3. [[Mejoras en la demora de rotación|Mejoras en la demora de rotación]]&lt;br /&gt;
* 11.4. [[Tipos de errores en discos magnéticos|Tipos de errores en discos magnéticos]]&lt;br /&gt;
* 11.5. [[Unidades SSD|Unidades SSD]]&lt;br /&gt;
* 11.6. [[Reloj hardware: Intel 8253]]&lt;br /&gt;
* 11.7. [[Ejercicios Gestión L/E|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Administración de archivos ==&lt;br /&gt;
&lt;br /&gt;
* 12.1. [[Introducción en la administración de archivos|Introducción en la administración de archivos]]&lt;br /&gt;
* 12.2. [[FAT|FAT]]&lt;br /&gt;
* 12.3. [[EXT2 |EXT2]]&lt;br /&gt;
* 12.4. [[Ejercicios Administración Ficheros|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Seguridad ==&lt;br /&gt;
&lt;br /&gt;
* 13.1. [[Definiciones de Seguridad]]&lt;br /&gt;
&lt;br /&gt;
== Anexo ==&lt;br /&gt;
&lt;br /&gt;
Esta sección contiene información interesante pero que no pertenece al temario de la asignatura.&lt;br /&gt;
&lt;br /&gt;
* Todo lo que siempre has querido saber sobre el protocolo SSH está [[SSH|aquí]].&lt;br /&gt;
* Instrucciones para emular BATHOS usando QEMU [[bathos_QEMU|aquí]].&lt;br /&gt;
* Instrucciones para emular XV6 usando QEMU [[xv6|aquí]].&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_de_los_ejercicios_de_administraci%C3%B3n_de_ficheros&amp;diff=4343</id>
		<title>Solución de los ejercicios de administración de ficheros</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_administraci%C3%B3n_de_ficheros&amp;diff=4343"/>
				<updated>2019-05-28T10:27:54Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: Cambiar unidades de B a Byte&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
'''Apartado A'''&lt;br /&gt;
*'''Incoherencia nº1:''' Fichero2.txt está asociado a un bloque corrupto, el número 4.&lt;br /&gt;
&lt;br /&gt;
*'''Incoherencia nº2:''' Cuando se accede al bloque 7 (correspondiente al archivo Imagen2.jpg), el siguiente en ser accedido es el número 4, que además de estar asociado a otro archivo, está corrupto.&lt;br /&gt;
&lt;br /&gt;
'''Apartado B'''&lt;br /&gt;
   Entrada al directorio raíz E:   1 acceso al bloque 2&lt;br /&gt;
   Entrada a Imagen.jpg:           1 acceso al bloque 3&lt;br /&gt;
   Siguiente bloque de Imagen.jpg: 1 acceso al bloque 5&lt;br /&gt;
   Siguiente bloque de Imagen.jpg: 1 acceso al bloque 6 y final de fichero.&lt;br /&gt;
   Total: 4 accesos&lt;br /&gt;
&lt;br /&gt;
Mejorada explicación del primer apartado y corregida la del segundo. --[[Usuario:Ferguatol|fernandoenzo]] 16:27 22 ene 2012 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2 ==&lt;br /&gt;
&lt;br /&gt;
   Bloque del i-nodo:                          1 acceso&lt;br /&gt;
   Camino hacia el bloque del doble indirecto: 2 accesos&lt;br /&gt;
   Acceso al bloque del doble indirecto:       1 acceso&lt;br /&gt;
   Total: 4 accesos&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 3 ==&lt;br /&gt;
'''c)''' 5 accesos a bloque: Nos indican que tenemos que acceder al bloque 1035, en EXT2 para poder tener esta cantidad de bloque se necesita usar el doble indirecto.&lt;br /&gt;
   &lt;br /&gt;
   Tabla de archivo (cuenta como un acceso):   1 acceso&lt;br /&gt;
   Bloque del i-nodo:                          1 acceso&lt;br /&gt;
   Camino hacia el bloque del doble indirecto: 2 accesos&lt;br /&gt;
   Acceso al bloque del doble indirecto:       1 acceso&lt;br /&gt;
   Total: 5 accesos&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 4 ==&lt;br /&gt;
EXT2&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 5 ==&lt;br /&gt;
&lt;br /&gt;
Para poder calcular lo que nos piden, tendremos que calcular el número de entradas que existen en un bloque, para poder calcular esto usamos el tamaño de un bloque y el tamaño de palabra del sistema (32 bits = 32/8 bytes = 4 bytes = 2^2 bytes).&lt;br /&gt;
&lt;br /&gt;
        2^12&lt;br /&gt;
       ────── = 2^10 = 1024 entradas por cada bloque.&lt;br /&gt;
        2^2 &lt;br /&gt;
&lt;br /&gt;
Como nos dicen que el sistema de archivo es EXT2, debemos saber que las 10 primeras entradas del i-nodo referencian a bloques y además que es indirecto triple, es decir, el indirecto simple tendrá 1024 entradas, donde cada entrada referencia a un bloque de tamaño 4KB, en indirecto doble habrá 1024^2 entradas y en indirecto triple habrá 1024^3 entradas.&lt;br /&gt;
&lt;br /&gt;
Por tanto, el número total de entradas es:&lt;br /&gt;
&lt;br /&gt;
   10 + 1024 + 1024^2 + 1024^3 = 1*10^9 entradas.&lt;br /&gt;
&lt;br /&gt;
Como cada entrada referencia a un bloque, el '''tamaño máximo de un fichero es: 4KB * 1*10^9 = 4TB'''&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 6 ==&lt;br /&gt;
&lt;br /&gt;
*'''Fichero1.txt : 7, 2, 5, 12.&lt;br /&gt;
*'''Fichero2.txt : 4.&lt;br /&gt;
*'''Fichero3.txt : 10, 5, 12.&lt;br /&gt;
*'''Fichero4.txt : 8, 3.&lt;br /&gt;
&lt;br /&gt;
En el Fichero1.txt y Fichero3.txt están asignados los bloques 5 y 12, eso no es posible, ya que en FAT no existe la compartición de bloques. &lt;br /&gt;
El Fichero4.txt tiene asignado un bloque BAD(Corrupto).&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 7 ==&lt;br /&gt;
&lt;br /&gt;
En primer lugar calculamos el desperdicio interno de un bloque, esto es la diferencia entre el tamaño del bloque y el tamaño que ocupa el fichero:&lt;br /&gt;
&lt;br /&gt;
16KB = 2¹⁴Bytes&lt;br /&gt;
&lt;br /&gt;
2¹⁴B - 4B = 15,996KBytes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora calcularemos el número de bloques que hay en la unidad de almacenamiento masivo:&lt;br /&gt;
&lt;br /&gt;
    50MB               50·2²⁰&lt;br /&gt;
 ──────  =  ─────────  = 50·2⁶ bloques&lt;br /&gt;
    16KB                  2¹⁴&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, el desperdicio interno total será el producto del desperdicio por bloque por el número de bloques:&lt;br /&gt;
&lt;br /&gt;
50·2⁶ * 15,996 = 51187,2 KBytes&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 8 ==&lt;br /&gt;
&lt;br /&gt;
Calculamos el número de entradas del bloque indirecto doble:&lt;br /&gt;
&lt;br /&gt;
  tam bloque          32KBytes       2¹⁵&lt;br /&gt;
 ─────────  =  ──────  =  ────  =  2¹³ nº de entradas&lt;br /&gt;
  tam palab                4Bytes         2²&lt;br /&gt;
&lt;br /&gt;
ahora calculamos el número de bloques:&lt;br /&gt;
&lt;br /&gt;
16 + 2¹³ + 2¹³·2¹³ = 67117072&lt;br /&gt;
&lt;br /&gt;
por último, el producto del tamaño de bloque por el número de bloques son aproximadamente 2048.29GBytes&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 9 ==&lt;br /&gt;
&lt;br /&gt;
Calculamos primero el número de entradas de bloques indirecto simple:&lt;br /&gt;
&lt;br /&gt;
  tam bloque      64KBytes         2¹⁶&lt;br /&gt;
 ─────────  =  ──────  =  ────  =  2¹³ nº de entradas&lt;br /&gt;
  tam palab            8Bytes            2³&lt;br /&gt;
&lt;br /&gt;
Vemos que llega hasta el 8192 por lo que no nos sirve ya que estamos buscando el 324 548, calculamos el nº de entradas de bloque indirecto doble:&lt;br /&gt;
&lt;br /&gt;
2¹³·2¹³ = 2²⁶ = 67 108 864&lt;br /&gt;
&lt;br /&gt;
Este sí que sirve, así que ya sabemos que el fichero que buscamos está en el indirecto doble, esto significa que necesitamos 4 accesos para llegar al dato: 3 bloques de metadatos (i-nodo, indir simple, indir doble) y 1 para acceder al fichero en sí.&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Administraci%C3%B3n_Ficheros&amp;diff=4339</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=4339"/>
				<updated>2019-05-24T15:58:13Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: /* Ejercicio 8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Continua 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;br /&gt;
&lt;br /&gt;
== Ejercicio 3 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Contínua del Curso 2011/12, del 23 de enero de 2012]''&lt;br /&gt;
En un sistema de archivo EXT2, para acceder al bloque 1035 de un archivo cuantos accesos a bloque hay que realizar. Cuente el acceso a la tabla de archivo como un acceso a bloque.&lt;br /&gt;
&lt;br /&gt;
a) 4 accesos a bloque&lt;br /&gt;
&lt;br /&gt;
b) 3 accesos a bloque&lt;br /&gt;
&lt;br /&gt;
c) 5 accesos a bloque&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 3|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 4 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Continua del Curso 2011/12, del 23 de enero de 2012]''&lt;br /&gt;
Un administrador de sistema tiene que elegir qué sistema de archivo usar entre FAT16, FAT32 y EXT2 para un sistema como mucho archivos pequeños y multitud de accesos aleatorios. Elige cual es la mejor opción.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 2|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 5 ==&lt;br /&gt;
&lt;br /&gt;
En un sistema de archivo EXT2, el tamaño de cada bloque es de 4KB en un sistema de 32bits. ¿Cuál es el tamaño máximo de un fichero en bytes?&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 2|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 6 ==&lt;br /&gt;
¿Encuentra alguna incoherencia en la configuración actual? Justifique brevemente su respuesta.&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| BAD&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|EOF&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|BAD&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|FREE&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|FREE&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|EOF&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;
|Fichero1.txt&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|Fichero2.txt&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Fichero3.txt &lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|Fichero4.txt&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 6|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 7 ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el tamaño del bloque es de 16KB, que la unidad de almacenamiento masivo tiene 50MB y que el tamaño de los ficheros es de 4B. ¿Cuál es el desperdicio interno total?&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio7|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 8==&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el tamaño del bloque es de 32KB, el tamaño de palabra es de 32bits y que el i-nodo tiene:&lt;br /&gt;
&lt;br /&gt;
* 16 referencias directas a bloques&lt;br /&gt;
* referencias indirectas dobles y simples&lt;br /&gt;
* no tiene referencias indirectas triples&lt;br /&gt;
&lt;br /&gt;
Calcular el tamaño máximo del fichero.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio8|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 9 ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el tamaño del bloque es de 64KB, el tamaño de palabra es de 64bits y que el i-nodo tiene:&lt;br /&gt;
* 12 referencias directas a bloques&lt;br /&gt;
* referencias indirectas simples, dobles y triples&lt;br /&gt;
¿Cuántos accesos a bloque se necesitarán para acceder al fichero en la posición 324548? ¿En qué referencia de bloque se encuentra?&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio9|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Administraci%C3%B3n_Ficheros&amp;diff=4338</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=4338"/>
				<updated>2019-05-24T15:57:44Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: /* Ejercicio 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Continua 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;br /&gt;
&lt;br /&gt;
== Ejercicio 3 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Contínua del Curso 2011/12, del 23 de enero de 2012]''&lt;br /&gt;
En un sistema de archivo EXT2, para acceder al bloque 1035 de un archivo cuantos accesos a bloque hay que realizar. Cuente el acceso a la tabla de archivo como un acceso a bloque.&lt;br /&gt;
&lt;br /&gt;
a) 4 accesos a bloque&lt;br /&gt;
&lt;br /&gt;
b) 3 accesos a bloque&lt;br /&gt;
&lt;br /&gt;
c) 5 accesos a bloque&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 3|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 4 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Continua del Curso 2011/12, del 23 de enero de 2012]''&lt;br /&gt;
Un administrador de sistema tiene que elegir qué sistema de archivo usar entre FAT16, FAT32 y EXT2 para un sistema como mucho archivos pequeños y multitud de accesos aleatorios. Elige cual es la mejor opción.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 2|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 5 ==&lt;br /&gt;
&lt;br /&gt;
En un sistema de archivo EXT2, el tamaño de cada bloque es de 4KB en un sistema de 32bits. ¿Cuál es el tamaño máximo de un fichero en bytes?&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 2|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 6 ==&lt;br /&gt;
¿Encuentra alguna incoherencia en la configuración actual? Justifique brevemente su respuesta.&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| BAD&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|EOF&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|BAD&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|FREE&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|FREE&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|EOF&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;
|Fichero1.txt&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|Fichero2.txt&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Fichero3.txt &lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|Fichero4.txt&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 6|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 7 ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el tamaño del bloque es de 16KB, que la unidad de almacenamiento masivo tiene 50MB y que el tamaño de los ficheros es de 4B. ¿Cuál es el desperdicio interno total?&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio7|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 8==&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el tamaño del bloque es de 32KB y que el i-nodo tiene:&lt;br /&gt;
&lt;br /&gt;
* 16 referencias directas a bloques&lt;br /&gt;
* referencias indirectas dobles y simples&lt;br /&gt;
* no tiene referencias indirectas triples&lt;br /&gt;
&lt;br /&gt;
Calcular el tamaño máximo del fichero.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio8|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 9 ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el tamaño del bloque es de 64KB, el tamaño de palabra es de 64bits y que el i-nodo tiene:&lt;br /&gt;
* 12 referencias directas a bloques&lt;br /&gt;
* referencias indirectas simples, dobles y triples&lt;br /&gt;
¿Cuántos accesos a bloque se necesitarán para acceder al fichero en la posición 324548? ¿En qué referencia de bloque se encuentra?&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio9|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_de_los_ejercicios_de_administraci%C3%B3n_de_ficheros&amp;diff=4337</id>
		<title>Solución de los ejercicios de administración de ficheros</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_administraci%C3%B3n_de_ficheros&amp;diff=4337"/>
				<updated>2019-05-24T15:56:21Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: Añadir soluciones de los ejercicio 8 y 9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
'''Apartado A'''&lt;br /&gt;
*'''Incoherencia nº1:''' Fichero2.txt está asociado a un bloque corrupto, el número 4.&lt;br /&gt;
&lt;br /&gt;
*'''Incoherencia nº2:''' Cuando se accede al bloque 7 (correspondiente al archivo Imagen2.jpg), el siguiente en ser accedido es el número 4, que además de estar asociado a otro archivo, está corrupto.&lt;br /&gt;
&lt;br /&gt;
'''Apartado B'''&lt;br /&gt;
   Entrada al directorio raíz E:   1 acceso al bloque 2&lt;br /&gt;
   Entrada a Imagen.jpg:           1 acceso al bloque 3&lt;br /&gt;
   Siguiente bloque de Imagen.jpg: 1 acceso al bloque 5&lt;br /&gt;
   Siguiente bloque de Imagen.jpg: 1 acceso al bloque 6 y final de fichero.&lt;br /&gt;
   Total: 4 accesos&lt;br /&gt;
&lt;br /&gt;
Mejorada explicación del primer apartado y corregida la del segundo. --[[Usuario:Ferguatol|fernandoenzo]] 16:27 22 ene 2012 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2 ==&lt;br /&gt;
&lt;br /&gt;
   Bloque del i-nodo:                          1 acceso&lt;br /&gt;
   Camino hacia el bloque del doble indirecto: 2 accesos&lt;br /&gt;
   Acceso al bloque del doble indirecto:       1 acceso&lt;br /&gt;
   Total: 4 accesos&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 3 ==&lt;br /&gt;
'''c)''' 5 accesos a bloque: Nos indican que tenemos que acceder al bloque 1035, en EXT2 para poder tener esta cantidad de bloque se necesita usar el doble indirecto.&lt;br /&gt;
   &lt;br /&gt;
   Tabla de archivo (cuenta como un acceso):   1 acceso&lt;br /&gt;
   Bloque del i-nodo:                          1 acceso&lt;br /&gt;
   Camino hacia el bloque del doble indirecto: 2 accesos&lt;br /&gt;
   Acceso al bloque del doble indirecto:       1 acceso&lt;br /&gt;
   Total: 5 accesos&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 4 ==&lt;br /&gt;
EXT2&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 5 ==&lt;br /&gt;
&lt;br /&gt;
Para poder calcular lo que nos piden, tendremos que calcular el número de entradas que existen en un bloque, para poder calcular esto usamos el tamaño de un bloque y el tamaño de palabra del sistema (32 bits = 32/8 bytes = 4 bytes = 2^2 bytes).&lt;br /&gt;
&lt;br /&gt;
        2^12&lt;br /&gt;
       ────── = 2^10 = 1024 entradas por cada bloque.&lt;br /&gt;
        2^2 &lt;br /&gt;
&lt;br /&gt;
Como nos dicen que el sistema de archivo es EXT2, debemos saber que las 10 primeras entradas del i-nodo referencian a bloques y además que es indirecto triple, es decir, el indirecto simple tendrá 1024 entradas, donde cada entrada referencia a un bloque de tamaño 4KB, en indirecto doble habrá 1024^2 entradas y en indirecto triple habrá 1024^3 entradas.&lt;br /&gt;
&lt;br /&gt;
Por tanto, el número total de entradas es:&lt;br /&gt;
&lt;br /&gt;
   10 + 1024 + 1024^2 + 1024^3 = 1*10^9 entradas.&lt;br /&gt;
&lt;br /&gt;
Como cada entrada referencia a un bloque, el '''tamaño máximo de un fichero es: 4KB * 1*10^9 = 4TB'''&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 6 ==&lt;br /&gt;
&lt;br /&gt;
*'''Fichero1.txt : 7, 2, 5, 12.&lt;br /&gt;
*'''Fichero2.txt : 4.&lt;br /&gt;
*'''Fichero3.txt : 10, 5, 12.&lt;br /&gt;
*'''Fichero4.txt : 8, 3.&lt;br /&gt;
&lt;br /&gt;
En el Fichero1.txt y Fichero3.txt están asignados los bloques 5 y 12, eso no es posible, ya que en FAT no existe la compartición de bloques. &lt;br /&gt;
El Fichero4.txt tiene asignado un bloque BAD(Corrupto).&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 7 ==&lt;br /&gt;
&lt;br /&gt;
En primer lugar calculamos el desperdicio interno de un bloque, esto es la diferencia entre el tamaño del bloque y el tamaño que ocupa el fichero:&lt;br /&gt;
&lt;br /&gt;
16KB = 2¹⁴B&lt;br /&gt;
&lt;br /&gt;
2¹⁴B - 4B = 15.996KB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora calcularemos el número de bloques que hay en la unidad de almacenamiento masivo:&lt;br /&gt;
&lt;br /&gt;
    50MB               50·2²⁰&lt;br /&gt;
 ──────  =  ─────────  = 50·2⁶ bloques&lt;br /&gt;
    16KB                  2¹⁴&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, el desperdicio interno total será el producto del desperdicio por bloque por el número de bloques:&lt;br /&gt;
&lt;br /&gt;
50·2⁶ * 15.996 = 51187.2 KB&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 8 ==&lt;br /&gt;
&lt;br /&gt;
Calculamos el número de entradas del bloque indirecto doble:&lt;br /&gt;
&lt;br /&gt;
  tam bloque          32KB             2¹⁵&lt;br /&gt;
 ─────────  =  ──────  =  ────  =  2¹³ nº de entradas&lt;br /&gt;
  tam palab                4B               2²&lt;br /&gt;
&lt;br /&gt;
ahora calculamos el número de bloques:&lt;br /&gt;
&lt;br /&gt;
16 + 2¹³ + 2¹³·2¹³ = 67117072&lt;br /&gt;
&lt;br /&gt;
por último, el producto del tamaño de bloque por el número de bloques son aproximadamente 2048.29GB&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 9 ==&lt;br /&gt;
&lt;br /&gt;
Calculamos primero el número de entradas de bloques indirecto simple:&lt;br /&gt;
&lt;br /&gt;
  tam bloque          64KB             2¹⁶&lt;br /&gt;
 ─────────  =  ──────  =  ────  =  2¹³ nº de entradas&lt;br /&gt;
  tam palab                8B               2³&lt;br /&gt;
&lt;br /&gt;
Vemos que llega hasta el 8192 por lo que no nos sirve ya que estamos buscando el 324 548, calculamos el nº de entradas de bloque indirecto doble:&lt;br /&gt;
&lt;br /&gt;
2¹³·2¹³ = 2²⁶ = 67 108 864&lt;br /&gt;
&lt;br /&gt;
Este sí que sirve, así que ya sabemos que el fichero que buscamos está en el indirecto doble, esto significa que necesitamos 4 accesos para llegar al dato: 3 bloques de metadatos (i-nodo, indir simple, indir doble) y 1 para acceder al fichero en sí.&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Soluci%C3%B3n_de_los_ejercicios_de_administraci%C3%B3n_de_ficheros&amp;diff=4336</id>
		<title>Solución de los ejercicios de administración de ficheros</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_administraci%C3%B3n_de_ficheros&amp;diff=4336"/>
				<updated>2019-05-24T14:07:41Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: Añadir solución del ejercicio 7&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
'''Apartado A'''&lt;br /&gt;
*'''Incoherencia nº1:''' Fichero2.txt está asociado a un bloque corrupto, el número 4.&lt;br /&gt;
&lt;br /&gt;
*'''Incoherencia nº2:''' Cuando se accede al bloque 7 (correspondiente al archivo Imagen2.jpg), el siguiente en ser accedido es el número 4, que además de estar asociado a otro archivo, está corrupto.&lt;br /&gt;
&lt;br /&gt;
'''Apartado B'''&lt;br /&gt;
   Entrada al directorio raíz E:   1 acceso al bloque 2&lt;br /&gt;
   Entrada a Imagen.jpg:           1 acceso al bloque 3&lt;br /&gt;
   Siguiente bloque de Imagen.jpg: 1 acceso al bloque 5&lt;br /&gt;
   Siguiente bloque de Imagen.jpg: 1 acceso al bloque 6 y final de fichero.&lt;br /&gt;
   Total: 4 accesos&lt;br /&gt;
&lt;br /&gt;
Mejorada explicación del primer apartado y corregida la del segundo. --[[Usuario:Ferguatol|fernandoenzo]] 16:27 22 ene 2012 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 2 ==&lt;br /&gt;
&lt;br /&gt;
   Bloque del i-nodo:                          1 acceso&lt;br /&gt;
   Camino hacia el bloque del doble indirecto: 2 accesos&lt;br /&gt;
   Acceso al bloque del doble indirecto:       1 acceso&lt;br /&gt;
   Total: 4 accesos&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 3 ==&lt;br /&gt;
'''c)''' 5 accesos a bloque: Nos indican que tenemos que acceder al bloque 1035, en EXT2 para poder tener esta cantidad de bloque se necesita usar el doble indirecto.&lt;br /&gt;
   &lt;br /&gt;
   Tabla de archivo (cuenta como un acceso):   1 acceso&lt;br /&gt;
   Bloque del i-nodo:                          1 acceso&lt;br /&gt;
   Camino hacia el bloque del doble indirecto: 2 accesos&lt;br /&gt;
   Acceso al bloque del doble indirecto:       1 acceso&lt;br /&gt;
   Total: 5 accesos&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 4 ==&lt;br /&gt;
EXT2&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 5 ==&lt;br /&gt;
&lt;br /&gt;
Para poder calcular lo que nos piden, tendremos que calcular el número de entradas que existen en un bloque, para poder calcular esto usamos el tamaño de un bloque y el tamaño de palabra del sistema (32 bits = 32/8 bytes = 4 bytes = 2^2 bytes).&lt;br /&gt;
&lt;br /&gt;
        2^12&lt;br /&gt;
       ────── = 2^10 = 1024 entradas por cada bloque.&lt;br /&gt;
        2^2 &lt;br /&gt;
&lt;br /&gt;
Como nos dicen que el sistema de archivo es EXT2, debemos saber que las 10 primeras entradas del i-nodo referencian a bloques y además que es indirecto triple, es decir, el indirecto simple tendrá 1024 entradas, donde cada entrada referencia a un bloque de tamaño 4KB, en indirecto doble habrá 1024^2 entradas y en indirecto triple habrá 1024^3 entradas.&lt;br /&gt;
&lt;br /&gt;
Por tanto, el número total de entradas es:&lt;br /&gt;
&lt;br /&gt;
   10 + 1024 + 1024^2 + 1024^3 = 1*10^9 entradas.&lt;br /&gt;
&lt;br /&gt;
Como cada entrada referencia a un bloque, el '''tamaño máximo de un fichero es: 4KB * 1*10^9 = 4TB'''&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 6 ==&lt;br /&gt;
&lt;br /&gt;
*'''Fichero1.txt : 7, 2, 5, 12.&lt;br /&gt;
*'''Fichero2.txt : 4.&lt;br /&gt;
*'''Fichero3.txt : 10, 5, 12.&lt;br /&gt;
*'''Fichero4.txt : 8, 3.&lt;br /&gt;
&lt;br /&gt;
En el Fichero1.txt y Fichero3.txt están asignados los bloques 5 y 12, eso no es posible, ya que en FAT no existe la compartición de bloques. &lt;br /&gt;
El Fichero4.txt tiene asignado un bloque BAD(Corrupto).&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 7 ==&lt;br /&gt;
&lt;br /&gt;
En primer lugar calculamos el desperdicio interno de un bloque, esto es la diferencia entre el tamaño del bloque y el tamaño que ocupa el fichero:&lt;br /&gt;
&lt;br /&gt;
16KB = 2^14B&lt;br /&gt;
&lt;br /&gt;
2^14B - 4B = 15.996KB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora calcularemos el número de bloques que hay en la unidad de almacenamiento masivo:&lt;br /&gt;
&lt;br /&gt;
    50MB            50·2^20&lt;br /&gt;
 ──────  =  ─────────  = 50·2^6 bloques&lt;br /&gt;
    16KB               2^14&lt;br /&gt;
&lt;br /&gt;
Por lo tanto, el desperdicio interno total será el producto del desperdicio por bloque por el número de bloques:&lt;br /&gt;
&lt;br /&gt;
50·2^6 * 15.996 = 51187.2 KB&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Ejercicios_Administraci%C3%B3n_Ficheros&amp;diff=4335</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=4335"/>
				<updated>2019-05-24T13:58:34Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: Añadir enunciados de los problemas realizados en clase el jueves&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicio 1 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Continua 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;br /&gt;
&lt;br /&gt;
== Ejercicio 3 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Contínua del Curso 2011/12, del 23 de enero de 2012]''&lt;br /&gt;
En un sistema de archivo EXT2, para acceder al bloque 1035 de un archivo cuantos accesos a bloque hay que realizar. Cuente el acceso a la tabla de archivo como un acceso a bloque.&lt;br /&gt;
&lt;br /&gt;
a) 4 accesos a bloque&lt;br /&gt;
&lt;br /&gt;
b) 3 accesos a bloque&lt;br /&gt;
&lt;br /&gt;
c) 5 accesos a bloque&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 3|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 4 ==&lt;br /&gt;
''[Este ejercicio fue parte del cuarto Control de Evaluación Continua del Curso 2011/12, del 23 de enero de 2012]''&lt;br /&gt;
Un administrador de sistema tiene que elegir qué sistema de archivo usar entre FAT16, FAT32 y EXT2 para un sistema como mucho archivos pequeños y multitud de accesos aleatorios. Elige cual es la mejor opción.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 2|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 5 ==&lt;br /&gt;
&lt;br /&gt;
En un sistema de archivo EXT2, el tamaño de cada bloque es de 4KB en un sistema de 32bits. ¿Cuál es el tamaño máximo de un fichero en bytes?&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 2|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 6 ==&lt;br /&gt;
¿Encuentra alguna incoherencia en la configuración actual? Justifique brevemente su respuesta.&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;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| BAD&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|EOF&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|BAD&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|FREE&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|FREE&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|EOF&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;
|Fichero1.txt&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|Fichero2.txt&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Fichero3.txt &lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|Fichero4.txt&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio 6|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 7 ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el tamaño del bloque es de 16KB, que la unidad de almacenamiento masivo tiene 50MB y que el tamaño de los ficheros es de 4B. ¿Cuál es el desperdicio interno total?&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio7|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 8==&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el tamaño del bloque es de 32KB y que el i-nodo tiene:&lt;br /&gt;
&lt;br /&gt;
* 16 referencias directas a bloques&lt;br /&gt;
* referencias indirectas dobles y simples&lt;br /&gt;
* no tiene referencias indirectas triples&lt;br /&gt;
&lt;br /&gt;
Calcular el tamaño máximo del fichero.&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio8|Ver solución]]'')&lt;br /&gt;
&lt;br /&gt;
== Ejercicio 9 ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el tamaño del bloque es de 64KB y que el i-nodo tiene:&lt;br /&gt;
* 12 referencias directas a bloques&lt;br /&gt;
* referencias indirectas simples, dobles y triples&lt;br /&gt;
¿Cuántos accesos a bloque se necesitarán para acceder al fichero en la posición 324548? ¿En qué referencia de bloque se encuentra?&lt;br /&gt;
&lt;br /&gt;
(''[[Solución de los ejercicios de administración de ficheros#Ejercicio9|Ver solución]]'')&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Material_teor%C3%ADa&amp;diff=4318</id>
		<title>Material teoría</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Material_teor%C3%ADa&amp;diff=4318"/>
				<updated>2019-04-24T15:47:23Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: /* Noticias */&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. &lt;br /&gt;
&lt;br /&gt;
= Noticias =&lt;br /&gt;
&lt;br /&gt;
* El próximo día 19 de marzo (martes) no habrá clase.&lt;br /&gt;
* El primer control de evaluación continua tendrá lugar el 21 de marzo (jueves) a las 17h30.&lt;br /&gt;
* El tercer control de evaluación continua tendrá lugar el 30 de abril (martes) a las 15h30.&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;
* 1.1. [[Qué es un  Sistema operativo|Qué es un Sistema Operativo]]&lt;br /&gt;
* 1.2. [[Introducción histórica|Breve introducción histórica a los Sistemas Operativos]]&lt;br /&gt;
* 1.3. [[Tipos de Sistemas Operativos|Tipos de Sistemas Operativos]]&lt;br /&gt;
&lt;br /&gt;
== Fundamentos de Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* 2.1. [[Organización básica de un ordenador]]&lt;br /&gt;
* 2.2. [[Modos de operación de la CPU|Modos de operación de la CPU]]&lt;br /&gt;
* 2.3. [[Interrupciones y excepciones|Interrupciones y excepciones]]&lt;br /&gt;
* 2.4. [[Conceptos básicos|Conceptos básicos]]&lt;br /&gt;
* 2.5. [[Arranque del sistema|Arranque del sistema]]&lt;br /&gt;
* 2.6. [[Componentes básicos de un sistema operativo|Componentes básicos de un sistema operativo]]&lt;br /&gt;
* 2.7. [[Llamadas al sistema|Llamadas al sistema]]&lt;br /&gt;
* 2.8. [[Ejercicios fundamentos Sistemas Operativos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Modelos de diseño de Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
* 3.1. [[Modelos de Diseño de Sistemas Operativos|Modelos de diseño de sistemas operativos]]&lt;br /&gt;
* 3.2. [[Virtualización]]&lt;br /&gt;
* 3.3. [[Ejercicios 3|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Procesos ==&lt;br /&gt;
* 4.1. [[Multiprogramación|La multiprogramación]]&lt;br /&gt;
* 4.2. [[Estados de los procesos|Estados de los procesos]]&lt;br /&gt;
* 4.3. [[Planificador de procesos|El planificador de procesos]]&lt;br /&gt;
* 4.4. [[Comportamiento de los procesos|El comportamiento de los procesos según el planificador]]&lt;br /&gt;
* 4.5. [[Bloque de control de procesos|El bloque de control del proceso]]&lt;br /&gt;
* 4.6. [[Conmutación de procesos|La conmutación de procesos]]&lt;br /&gt;
* 4.7. [[Hilos|Hilos]]&lt;br /&gt;
* 4.8. [[Ejercicios Procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Planificación de Procesos ==&lt;br /&gt;
* 5.1. [[Planificación de procesos|La planificación de procesos]]&lt;br /&gt;
* 5.2. [[Índices de evaluación|Índices de evaluación de la planificación de procesos]]&lt;br /&gt;
* 5.3. [[Criterios de planificación|Criterios de planificación]]&lt;br /&gt;
* 5.4. [[Planificadores de sistemas operativos existentes|Planificadores de sistemas operativos existentes]]&lt;br /&gt;
* 5.5. [[Planificación de procesos de tiempo real|La planificación de procesos de tiempo real]]&lt;br /&gt;
* 5.6. [[Planificación en sistemas multiprocesadores|La planificación de procesos en sistemas multiprocesadores]]&lt;br /&gt;
* 5.7. [[Ejercicios otros aspectos de la planificación|Ejercicios]]&lt;br /&gt;
* 5.8. [[Ejercicios planificación de procesos|Ejercicios]]&lt;br /&gt;
* 5.9. [[Ejercicios_simples_de_planificación_de_procesos|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Concurrencia de procesos ==&lt;br /&gt;
&lt;br /&gt;
* 6.1. [[Concurrencia de procesos|Concurrencia de procesos]]&lt;br /&gt;
* 6.2. [[Mecanismos de sincronización|Control optimista y pesimista de la concurrencia]]&lt;br /&gt;
* 6.3. [[Cerrojos|Cerrojos]]&lt;br /&gt;
* 6.4. [[Ejercicio de concurrencia de procesos|Ejercicios]]&lt;br /&gt;
* 6.5. [[Semáforos|Semáforos]]&lt;br /&gt;
* 6.6. [[Monitores|Monitores]]&lt;br /&gt;
* 6.7. [[Mensajería|Mensajería]]&lt;br /&gt;
* 6.8. [[Ejercicios sincronización y comunicación|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Interbloqueo ==&lt;br /&gt;
&lt;br /&gt;
* 7.1. [[Definición de interbloqueo|Definición]]&lt;br /&gt;
* 7.2. [[Condiciones para el interbloqueo y estrategias de resolución|Modelado y Estrategias]]&lt;br /&gt;
* 7.3. [[Algoritmo para averiguar interbloqueo|Algoritmo del banquero]]&lt;br /&gt;
* 7.4. [[Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Administración de memoria ==&lt;br /&gt;
&lt;br /&gt;
* 8.1. [[Introducción|Introducción]]&lt;br /&gt;
* 8.2. [[SO multiprogramables con particiones variables|SO multiprogramables con particiones variables]]&lt;br /&gt;
* 8.3. [[Segmentación|Segmentación]]&lt;br /&gt;
* 8.4. [[Paginación|Paginación]]&lt;br /&gt;
* 8.5. [[Sistema combinado|Sistema combinado]]&lt;br /&gt;
* 8.6. [[Ejercicios administración de memoria contigua|Ejercicios (Administración de memoria contigua)]]&lt;br /&gt;
* 8.7. [[Ejemplo de segmentación, paginación y combinado|Ejercicios (Segmentación, paginación y sistemas combinados)]]&lt;br /&gt;
&lt;br /&gt;
== Memoria virtual ==&lt;br /&gt;
&lt;br /&gt;
* 9.1. [[Memoria Virtual|Introducción]]&lt;br /&gt;
* 9.2. [[Criterios de reemplazo|Criterios de reemplazo]]&lt;br /&gt;
* 9.3. [[Memoria virtual con multiprogramacion|Otros aspectos relacionados con la memoria virtual]]&lt;br /&gt;
* 9.4. [[Ejercicios memoria virtual|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Entrada/Salida ==&lt;br /&gt;
&lt;br /&gt;
* 10.1. [[EstructuraES|Estructura dispositivo E/S]]&lt;br /&gt;
* 10.2. [[GestionES|Modos de gestionar dispositivos E/S]]&lt;br /&gt;
* 10.3. [[Diseño modular E/S|Diseño modular E/S]]&lt;br /&gt;
* 10.4. [[Ejercicios de Entrada/Salida|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Gestión E/S ==&lt;br /&gt;
&lt;br /&gt;
* 11.1. [[Discos Magnéticos|Discos Magnéticos]]&lt;br /&gt;
* 11.2. [[Mejoras de tiempos de desplazamiento|Mejoras de tiempos de desplazamiento]]&lt;br /&gt;
* 11.3. [[Mejoras en la demora de rotación|Mejoras en la demora de rotación]]&lt;br /&gt;
* 11.4. [[Tipos de errores en discos magnéticos|Tipos de errores en discos magnéticos]]&lt;br /&gt;
* 11.5. [[Unidades SSD|Unidades SSD]]&lt;br /&gt;
* 11.6. [[Reloj hardware: Intel 8253]]&lt;br /&gt;
* 11.7. [[Ejercicios Gestión L/E|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Administración de archivos ==&lt;br /&gt;
&lt;br /&gt;
* 12.1. [[Introducción en la administración de archivos|Introducción en la administración de archivos]]&lt;br /&gt;
* 12.2. [[FAT|FAT]]&lt;br /&gt;
* 12.3. [[EXT2 |EXT2]]&lt;br /&gt;
* 12.4. [[Ejercicios Administración Ficheros|Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
== Anexo ==&lt;br /&gt;
&lt;br /&gt;
Esta sección contiene información interesante pero que no pertenece al temario de la asignatura.&lt;br /&gt;
&lt;br /&gt;
* Todo lo que siempre has querido saber sobre el protocolo SSH está [[SSH|aquí]].&lt;br /&gt;
* Instrucciones para emular BATHOS usando QEMU [[bathos_QEMU|aquí]].&lt;br /&gt;
* Instrucciones para emular XV6 usando QEMU [[xv6|aquí]].&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Concurrencia_de_procesos&amp;diff=4295</id>
		<title>Concurrencia de procesos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Concurrencia_de_procesos&amp;diff=4295"/>
				<updated>2019-03-31T14:02:17Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: /* El problema del productor y consumidor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La concurrencia de procesos se refiere a las situaciones en las que dos o más procesos puedan coincidir en el acceso a un recurso compartido o, dicho de otra forma, que requieran coordinarse en su ejecución. Para evitar dicha coincidencia, el sistema operativo ofrece mecanismos de arbitraje que permiten coordinar la ejecución de los procesos.&lt;br /&gt;
&lt;br /&gt;
= El problema del productor y consumidor =&lt;br /&gt;
&lt;br /&gt;
Un ejemplo de un problema de concurrencia sería el siguiente: Dados dos procesos A (productor) y B (consumidor), suponiendo que ambos se ejecutan indefinidamente en el tiempo, el proceso A debe recibir tiempo de ejecución antes que B, tras esto, el proceso B debe recibir su oportunidad de ejecución, dando paso de nuevo al proceso A y así sucesivamente, siguiendo un esquema de alternancia estricta.&lt;br /&gt;
&lt;br /&gt;
 proceso A  |--   --    --&lt;br /&gt;
                       |&lt;br /&gt;
 proceso B  |   --    --     --&lt;br /&gt;
                       |_____________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Recuerde que el planificador de procesos, al desconocer la naturaleza de los procesos y sus objetivos, no dispone de información suficiente para garantizar la secuencia de ejecución descrita en el ejemplo anterior. Por tanto, suponiendo que ambos procesos se encuentran en estado preparado, podría seleccionar al proceso B para pasar a estado activo antes de seleccionar al proceso A, situación que no es deseada.&lt;br /&gt;
&lt;br /&gt;
Recuerde que el planificador de procesos, como hemos visto en capítulos anteriores, emplea [[Criterios de planificación|criterios de planificación]] que no tienen en consideración el objetivo de los procesos. Podemos decir que el planificador de procesos '''desconoce''' cuál es el propósito de los procesos, únicamente puede observar su comportamiento, es decir, si presentan un comportamiento más o menos interactivo.&lt;br /&gt;
&lt;br /&gt;
Por tanto, el programador, a la hora de modelar los procesos, debe emplear mecanismos de arbitraje que ofrece el sistema operativo y que permiten resolver el problema de concurrencia que se plantee.&lt;br /&gt;
&lt;br /&gt;
= Mecanismos de arbitraje =&lt;br /&gt;
&lt;br /&gt;
Los mecanismos de arbitraje que ofrece el sistema operativo son básicamente dos:&lt;br /&gt;
&lt;br /&gt;
* Mecanismos de '''sincronización''': el sistema operativo ofrece mecanismos que permiten a los procesos coordinar su ejecución para conseguir el objetivo sin que sucedan situaciones no deseadas, como por ejemplo que dos o más procesos coincidan simultáneamente en el acceso a un cierto recurso que no se puede compartir.&lt;br /&gt;
&lt;br /&gt;
* Mecanismos de '''mensajería''': el sistema operativo ofrece mecanismos de comunicación entre procesos mediante mensajes. El intercambio de mensajes entre procesos permite coordinarlos.&lt;br /&gt;
&lt;br /&gt;
= Programación concurrente = &lt;br /&gt;
&lt;br /&gt;
El término programación concurrente se emplea con frecuencia para referirse a un conjunto de programas que funcionan en cooperación.&lt;br /&gt;
&lt;br /&gt;
Hay tres formas de interacción entre procesos cooperativos:&lt;br /&gt;
&lt;br /&gt;
*Concurrencia: Hay un recurso común, si varios procesos modificaran  la misma información a la vez, cada uno podría destruir parte del trabajo de los demás. Si lo hacen uno tras otro, en serie, se obtendrá el resultado correcto.&lt;br /&gt;
&lt;br /&gt;
*Sincronización: El Sistema Operativo se encarga de enviarle señales a los procesos para coordinar su evolución y conseguir que progrese armónicamente.&lt;br /&gt;
&lt;br /&gt;
*Comunicación:  El S.O. transmite mensajes entre los procesos, que se usan para intercambiar, enviar o recibir información.&lt;br /&gt;
&lt;br /&gt;
Se le llama programación concurrente ya que la concurrencia fue la primera forma de iterar recursos entre procesos cooperativos.&lt;br /&gt;
&lt;br /&gt;
= Sección crítica =&lt;br /&gt;
&lt;br /&gt;
Una ''sección crítica'' se trata de una sección del código que puede ser ejecutada por un único proceso o hilo simultáneamente. Un ejemplo de ''sección crítica'' es la sección de código en la que se accede a un recurso compartido. Para evitar el acceso simultaneo a la sección crítica se emplean mecanismos que garantizan la ''exclusión mutua''.&lt;br /&gt;
&lt;br /&gt;
La exclusión mutua se debe realizar de forma coordinada y eficiente, para ello se requiere:&lt;br /&gt;
&lt;br /&gt;
*No más de un proceso por sección crítica y recurso compartido.&lt;br /&gt;
&lt;br /&gt;
*El mismo proceso no puede usar el mismo recurso compartido indefinidamente.&lt;br /&gt;
&lt;br /&gt;
*Todo proceso debe entrar antes o después a usar el recurso.&lt;br /&gt;
&lt;br /&gt;
*Si el recurso está sin uso, cualquiera que lo requiera dispondrá de él inmediatamente.&lt;br /&gt;
&lt;br /&gt;
*Si hay varios esperando usar el recurso y éste se libera, uno de los que estaba esperando lo usará durante un tiempo determinado.&lt;br /&gt;
&lt;br /&gt;
Para llevar esto a cabo se necesita un protocolo que indique cuando el recurso está libre y cuando está siendo ocupado.&lt;br /&gt;
&lt;br /&gt;
= Tipos de mecanismos de sincronización =&lt;br /&gt;
&lt;br /&gt;
Los mecanismos de sincronización los podemos catalogar en dos categorías:&lt;br /&gt;
&lt;br /&gt;
*[[Mecanismos de sincronización#Optimista|Optimistas]]: Este mecanismo considera que la frecuencia de acceso a un cierto recurso compartido es ''baja''. Este tipo tiene más consumo de memoria, ya que tiene que copiar el recurso compartido y, en caso de interferencia en el hilo, tiene que volver a ejecutarlo y consume más recursos.&lt;br /&gt;
&lt;br /&gt;
*[[Mecanismos de sincronización#Pesimista|Pesimistas]]: Este mecanismo permite coordinar la ejecución de dos o más procesos que acceden al recurso compartido con una frecuencia ''alta''.&lt;br /&gt;
&lt;br /&gt;
Dependerá del criterio del programador el tipo de mecanismo que utilice ya que puede que no elija el tipo correcto. Por ejemplo, puede que la frecuencia de acceso a un cierto recurso sea alta y el programador le asigna un mecanismo optimista, esto provocaría no obtener el resultado esperado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ¿Cómo provocar errores de concurrencia en Java? ==&lt;br /&gt;
Pequeño experimento, por si queremos observar cómo se producen errores de concurrencia en operaciones tan simples como la actualización de una lista.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
		List&amp;lt;Integer&amp;gt; list = new ArrayList&amp;lt;Integer&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
		/*&lt;br /&gt;
		 * EXPLICACIÓN:&lt;br /&gt;
		 * &lt;br /&gt;
		 * Tenemos creada una lista global, &amp;quot;list&amp;quot; , que será accedida al mismo&lt;br /&gt;
		 * tiempo por varios hilos. En este código se observa como a veces se&lt;br /&gt;
		 * producen errores de concurrencia al realizar modificaciones sobre la&lt;br /&gt;
		 * lista al mismo tiempo. Este es el motivo por el que debemos usar&lt;br /&gt;
		 * mecanismos como los semáforos u otras técnicas para prevenir este&lt;br /&gt;
		 * tipo de errores.&lt;br /&gt;
		 * &lt;br /&gt;
		 * Los errores de concurrencia en java se muestran como:&lt;br /&gt;
		 * ConcurrentModificationError&lt;br /&gt;
		 *&lt;br /&gt;
		 * También es curioso notar que los errores se dan sobretodo al principio, en&lt;br /&gt;
		 * los 30 primeros segundos, luego hay hilos que no se vuelven a&lt;br /&gt;
		 * ejecutar mientras que un par de ellos de forma aleatoria, se ejecutan&lt;br /&gt;
		 * cíclicamente, uno tras el otro.&lt;br /&gt;
		 * &lt;br /&gt;
		 */&lt;br /&gt;
		// -----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
		// Los hilos con esta tarea añaden un número aleatorio de 0 a 100 en la&lt;br /&gt;
		// lista cada seg.&lt;br /&gt;
		Runnable tarea = () -&amp;gt; {&lt;br /&gt;
			while (true) {&lt;br /&gt;
				String nombreHilo = Thread.currentThread().getName();&lt;br /&gt;
				System.out.println(&amp;quot;Hola soy el hilo &amp;quot; + nombreHilo);&lt;br /&gt;
				list.add(new Random().nextInt(100));&lt;br /&gt;
				System.out.println(list);&lt;br /&gt;
				try {&lt;br /&gt;
					Thread.sleep(1000);&lt;br /&gt;
				} catch (InterruptedException e) {&lt;br /&gt;
&lt;br /&gt;
					e.printStackTrace();&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		// Los hilos con esta tarea añaden también otro número aleatorio de 0 a&lt;br /&gt;
		// 100 en la lista cada seg.&lt;br /&gt;
&lt;br /&gt;
		Runnable tarea2 = () -&amp;gt; {&lt;br /&gt;
			while (true) {&lt;br /&gt;
				String nombreHilo = Thread.currentThread().getName();&lt;br /&gt;
				System.out.println(&amp;quot;Hola soy el hilo &amp;quot; + nombreHilo);&lt;br /&gt;
				list.add(new Random().nextInt(100));&lt;br /&gt;
				System.out.println(list);&lt;br /&gt;
				try {&lt;br /&gt;
					Thread.sleep(1000);&lt;br /&gt;
				} catch (InterruptedException e) {&lt;br /&gt;
&lt;br /&gt;
					e.printStackTrace();&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		// Los hilos con esta tarea eliminan un número de una posición aleatoria&lt;br /&gt;
		// cada seg.&lt;br /&gt;
		Runnable tarea3 = () -&amp;gt; {&lt;br /&gt;
			while (true) {&lt;br /&gt;
				String nombreHilo = Thread.currentThread().getName();&lt;br /&gt;
				System.out.println(&amp;quot;Hola soy el hilo &amp;quot; + nombreHilo);&lt;br /&gt;
				Random r = new Random(list.size());&lt;br /&gt;
				if (list.contains(r))&lt;br /&gt;
					list.remove(r);&lt;br /&gt;
				System.out.println(list);&lt;br /&gt;
				try {&lt;br /&gt;
					Thread.sleep(1000);&lt;br /&gt;
				} catch (InterruptedException e) {&lt;br /&gt;
&lt;br /&gt;
					e.printStackTrace();&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		//Creación de Hilos.&lt;br /&gt;
		Thread hilo = new Thread(tarea);&lt;br /&gt;
		Thread hilo2 = new Thread(tarea2);&lt;br /&gt;
		Thread hilo3 = new Thread(tarea3);&lt;br /&gt;
		Thread hilo4 = new Thread(tarea3);&lt;br /&gt;
		Thread hilo5 = new Thread(tarea);&lt;br /&gt;
		Thread hilo6 = new Thread(tarea3);&lt;br /&gt;
&lt;br /&gt;
		//Ejecución.&lt;br /&gt;
		hilo.start();&lt;br /&gt;
		hilo2.start();&lt;br /&gt;
		hilo3.start();&lt;br /&gt;
		hilo4.start();&lt;br /&gt;
		hilo5.start();&lt;br /&gt;
		hilo6.start();&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6.2[[Mecanismos_de_sincronización | Control optimista y pesimista de la concurrencia]]&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Criterios_de_planificaci%C3%B3n&amp;diff=4279</id>
		<title>Criterios de planificación</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Criterios_de_planificaci%C3%B3n&amp;diff=4279"/>
				<updated>2019-03-08T11:35:40Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: /* Turno rotatorio estricto (Round Robin: RR) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Planificación apropiativa y no apropiativa =&lt;br /&gt;
&lt;br /&gt;
Un planificador no apropiativo carece de transición de activo a preparado en el diagrama de estado de un proceso.&lt;br /&gt;
&lt;br /&gt;
Un planificador cualquiera, ya sea apropiativo o no, decide qué proceso se asigna al procesador si:&lt;br /&gt;
&lt;br /&gt;
* El proceso activo pasa a estado bloqueado.&lt;br /&gt;
* El proceso activo termina su ejecución.&lt;br /&gt;
&lt;br /&gt;
Un planificador apropiativo, además, se ejecuta si:&lt;br /&gt;
&lt;br /&gt;
* Se lanza un nuevo proceso (véase ''prioridades'').&lt;br /&gt;
* El proceso activo agota el tiempo máximo de asignación del procesador (véase ''Turno Rotatorio'').&lt;br /&gt;
&lt;br /&gt;
== Planificación por prioridades ==&lt;br /&gt;
&lt;br /&gt;
Se establecen índices de prioridad a cada proceso:&lt;br /&gt;
&lt;br /&gt;
* '''Índice estático''': Establecido por el usuario por medio de una llamada al sistema (ver sys_nice() y sys_setschedprio()). En el caso de sistemas operativos tipo Unix, se dispone de un índice denominado ''nice value'' cuyos valores están entre -20 (máxima prioridad) y 19 (mínima prioridad).&lt;br /&gt;
* '''Índice dinámico''': Establecido por el planificador, inicialmente basado en el índice estático, después se va recalculando en base a las observaciones que realiza el planificador sobre el comportamiento de los procesos, aumentándola cuando un proceso está a la espera o disminuyéndola cuando tiene adjudicado el procesador.&lt;br /&gt;
&lt;br /&gt;
El método funciona de la siguiente manera: El planificador mantiene ordenada la cola de procesos preparados, según prioridades decrecientes. Si el proceso en ejecución se bloquea, el planificador selecciona el primero de la lista. Cuando un proceso pasa a la situación de preparado, comprueba si su prioridad es mayor que la del proceso activo. En tal caso, suspende la ejecución de éste, colocándolo al principio de la cola de preparados, y elige al recién llegado; si no, lo inserta en la cola según su prioridad.&lt;br /&gt;
Cuando hay varios procesos con la misma prioridad se pueden aplicar diversos criterios, como seguir el orden de llegada a la cola de preparados, o el que necesite menos tiempo para acabar, entre otros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El orden es siempre O(n).&lt;br /&gt;
&lt;br /&gt;
    Ejemplo:&lt;br /&gt;
                                                                                         &lt;br /&gt;
                     ____|_Pa_|_Pb_|_Pc_|_Pd_|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|_3__|&lt;br /&gt;
           problema  _t__|_2__|_4__|_2__|_7__|    p = prioridad estática&lt;br /&gt;
                     _p__|_0__|-20_|_4__|_10_|&lt;br /&gt;
                                                       &lt;br /&gt;
                       &amp;lt; = lanzamiento del proceso&lt;br /&gt;
                       &amp;gt; = finalización del proceso&lt;br /&gt;
                       x = indica que el proceso está asignado al procesador en ese momento&lt;br /&gt;
                       $ = indica la ejecución del planificador para retirar un&lt;br /&gt;
                           proceso y establecer otro según el criterio&lt;br /&gt;
                       &amp;amp; = se ejecuta el código del planificador&lt;br /&gt;
         |---$---|---|---|---$---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
     Pa  &amp;lt;xxx|---|---|---|---|xxx&amp;gt;---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
     Pb  |---&amp;lt;xxx|xxx|xxx|xxx&amp;gt;---$---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
     Pc  |---|---&amp;lt;---|---|---|---|xxx|xxx&amp;gt;---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
     Pd  |---|---|---&amp;lt;---|---|---|---|---|xxx|xxx|xxx|xxx|xxx|xxx|xxx&amp;gt;---|---|---|---|---|&lt;br /&gt;
 Planif. |---&amp;amp;---&amp;amp;---&amp;amp;---|---&amp;amp;---&amp;amp;---|---&amp;amp;---|---|---|---|---|---|---&amp;amp;---|---|---|---|---|&lt;br /&gt;
  -------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---&amp;gt; t&lt;br /&gt;
         0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
                                                                                                   &lt;br /&gt;
                   ____|_Pa_|_Pb_|_Pc_|_Pd_|&lt;br /&gt;
       Cálculos    _t__|_2__|_4__|_2__|_7__|&lt;br /&gt;
      de tiempos   _T__|_6__|_4__|_6__|_12_|        z = índice de penalización&lt;br /&gt;
                   _z__|_3__|_1__|_3__|12/7|&lt;br /&gt;
&lt;br /&gt;
== Turno rotatorio ==&lt;br /&gt;
&lt;br /&gt;
=== Turno rotatorio estricto (Round Robin: RR) ===&lt;br /&gt;
&lt;br /&gt;
En este criterio, todo proceso es asignado al procesador durante un tiempo máximo denominado ''quantum'', tras el cual se le retira el procesador y se asigna a otro proceso de la cola de preparados. De esta manera, los procesos acceden al procesador por turnos, en base al orden de procesos que hay en la cola de preparados.&lt;br /&gt;
&lt;br /&gt;
El tamaño del ''quantum'' es fundamental para determinar el comportamiento de este criterio de planificación.  Si el ''quantum'' empleado es muy pequeño, por ejemplo, de 1000 ciclos, suponiendo que la conmutación de procesos requiere 1000 ciclos, el procesador empleará el 50% del tiempo en ejecutar el codigo del planificador de procesos del sistemas operativo. Sin embargo, si el ''quantum'' empleado es grande, por ejemplo, de 1 millon de ciclos, suponiendo una cola de procesos suficientemente grande y N procesos en la cola de preparados, el proceso que está al final de la cola no tendra oportunidad de ejecucion hasta pasados N * 1 millon de ciclos, degradando la experiencia del usuario que notará como sus procesos progresan ''a saltos''.&lt;br /&gt;
&lt;br /&gt;
Si un proceso bloquea antes de consumir su ''quantum'' '''se le retira el procesador''' y se añade al final de la cola. Esto beneficia a los procesos por lotes, cuyo comportamiento está limitado por el procesador, pues se pasan más tiempo asignados al procesador.&lt;br /&gt;
&lt;br /&gt;
Los procesos recién lanzados y los que pasan de estado bloqueado a preparado se insertan siempre al final de la cola.&lt;br /&gt;
&lt;br /&gt;
Este criterio se puede implementar con una cola, de manera que el orden de complejidad en la selección del proceso que pasa a estado activo es &amp;lt;math&amp;gt;O(1)&amp;lt;/math&amp;gt; puesto que siempre se toma el primero proceso de la cola. Nótese que, a mayor número de procesos preparados, mayor tiempo tardará un proceso al final de la cola en volver a pasar a estado activo.&lt;br /&gt;
&lt;br /&gt;
    Ejemplo:&lt;br /&gt;
                                                                                         &lt;br /&gt;
                     ____|_Pa_|_Pb_|_Pc_|_Pd_|&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|_3__|&lt;br /&gt;
           problema  _t__|_2__|_4__|_2__|_7__|    quantum = 1 unidad de tiempo&lt;br /&gt;
                                                       &lt;br /&gt;
                       &amp;lt; = lanzamiento del proceso&lt;br /&gt;
                       &amp;gt; = finalización del proceso&lt;br /&gt;
                       x = indica que el proceso está asignado al procesador en ese momento&lt;br /&gt;
                       $ = indica la ejecución del planificador para retirar un&lt;br /&gt;
                           proceso y establecer otro según el criterio&lt;br /&gt;
        |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pa  &amp;lt;xxx|---|xxx&amp;gt;---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pb  |---&amp;lt;xxx|---|---|xxx|---|---|xxx|---|xxx&amp;gt;---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pc  |---|---|---&amp;lt;xxx|---|---|xxx&amp;gt;---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pd  |---|---|---|---|---|&amp;lt;xxx|---|---|xxx|---|xxx|xxx|xxx|xxx|xxx&amp;gt;---|---|---|---|&lt;br /&gt;
     $  $---$---$---$---$---$---$---$---$---$---$---$---$---$---$---$---|---|---|---|---|&lt;br /&gt;
   -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---&amp;gt; t&lt;br /&gt;
        0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
                                                                                                   &lt;br /&gt;
                   ____|_Pa_|_Pb_|_Pc_|_Pd_|&lt;br /&gt;
       Cálculos    _t__|_2__|_4__|_2__|_7__|&lt;br /&gt;
      de tiempos   _T__|_5__|_10_|_5__|_12_|        z = índice de penalización&lt;br /&gt;
                   _z__|_5/2|10/4|_5/2|12/7|&lt;br /&gt;
&lt;br /&gt;
=== Turno rotatorio con compensación ===&lt;br /&gt;
&lt;br /&gt;
Es una variante del anterior. Para no perjudicar a los procesos cuyo comportamiento está limitado por operaciones de entrada/salida, se reinsertan en la cola en proporción al tiempo consumido. Es decir, si un cierto proceso ha consumido el 25% de su '''quantum''', se reinserta en el 25% de la cola, contando desde el principio (dispondrá de otro quantum completo).&lt;br /&gt;
Este tipo de criterio tiene un problema y es que se pueden posponer indefinidamente algunos procesos si hay varios procesos que bloqueen.&lt;br /&gt;
&lt;br /&gt;
Hay que tener en cuenta que: &lt;br /&gt;
* Cuando un proceso consume su quantum pasa al final de la cola de preparados.&lt;br /&gt;
* Un proceso en estado bloqueado se inserta en la cola de preparados una vez que pasa el tiempo de bloqueo.&lt;br /&gt;
&lt;br /&gt;
        Ejemplo:&lt;br /&gt;
                                                                                         &lt;br /&gt;
                     ____|_Pa_|_Pb_|_Pc_|_Pd_|    Pa y Pc bloquean cada 1 unidad de tiempo&lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|_3__|    El bloqueo se resuelve tras 2 unidades de tiempo&lt;br /&gt;
           problema  _t__|_2__|_4__|_2__|_7__|    quantum = 2 unidad de tiempo&lt;br /&gt;
                                                       &lt;br /&gt;
                       &amp;lt; = lanzamiento del proceso&lt;br /&gt;
                       &amp;gt; = finalización del proceso&lt;br /&gt;
                       x = indica que el proceso está asignado al procesador en ese momento&lt;br /&gt;
                       $ = indica la ejecución del planificador para retirar un&lt;br /&gt;
                           proceso y establecer otro según el criterio&lt;br /&gt;
        |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pa  &amp;lt;xxx|---|---|---|---|---|xxx&amp;gt;---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pb  |---&amp;lt;xxxxxxx|---|---|---|---|---|xxx|xxx&amp;gt;---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pc  |---|---&amp;lt;---|xxx|---|---|---|xxx&amp;gt;---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pd  |---|---|---&amp;lt;---|xxx|xxx|---|---|---|---|xxxxxxxxxxxxxxxxxxx&amp;gt;---|---|---|---|---|&lt;br /&gt;
     $  $---$---|---$---$---$---|---$---$---|---$---|---$---|---$---$---|---|---|---|---|&lt;br /&gt;
   -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---&amp;gt; t&lt;br /&gt;
        0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
                                                                                                   &lt;br /&gt;
                   ____|_Pa_|_Pb_|_Pc_|_Pd_|&lt;br /&gt;
       Cálculos    _t__|_2__|_4__|_2__|_7__|&lt;br /&gt;
      de tiempos   _T__|_7__|_9__|_6__|_12_|        z = índice de penalización&lt;br /&gt;
                   _z__|_7/2|_9/4|_6/2|12/7|&lt;br /&gt;
&lt;br /&gt;
=== Turno rotatorio con quantum dependiente del número de procesos ===&lt;br /&gt;
&lt;br /&gt;
Otra variante se trata de emplear un '''quantum''' proporcional al número de procesos que haya en estado preparado. De esta forma se obtiene una progresión más uniforme, y por tanto una mejor experiencia para el usuario. Sin embargo, esto aumenta el número de conmutaciones entre procesos. Para evitar la degradación del rendimiento por un exceso de conmutaciones, se establece un mínimo de manera que el quantum no puede ser menor a éste.&lt;br /&gt;
&lt;br /&gt;
== Colas multinivel ==&lt;br /&gt;
&lt;br /&gt;
En este tipo de criterio se mantienen múltiples colas con los procesos en estado preparado. Los procesos se clasifican en las colas según sus características, cada cola recibe un tratamiento distinto.&lt;br /&gt;
&lt;br /&gt;
Un ejemplo sería el siguiente, compuesto de cuatro colas:&lt;br /&gt;
&lt;br /&gt;
# Esta primera cola es para procesos que poseen menor tiempo de ejecución, son los gestores de interrupción y los gestores de dispositivos (drivers). Hay que tomar los datos y almacenarlos en memoria lo antes posible para poder recoger más, aunque se posponga el procesamiento de dichos datos.&lt;br /&gt;
# En esta cola se almacenan los procesos del servidor, tales como: proceso administrador de memoria, administrador de ficheros, administrador de red, etc.&lt;br /&gt;
# Esta cola está reservada a los procesos de usuario (procesos útiles para el usuario). Esta se divide a su vez en dos colas:&lt;br /&gt;
## Cola de procesos interactivos, limitados por E/S.&lt;br /&gt;
## Cola de procesos por lotes, limitados por el procesador.&lt;br /&gt;
&lt;br /&gt;
Las colas tienen prioridad según su número, por ejemplo, mientras que haya procesos preparados en la primera cola, no se mira la segunda. Esto puede dar lugar a que si hay muchos procesos de gestión de dispositivos se degrade la eficiencia del sistema.&lt;br /&gt;
&lt;br /&gt;
La primera cola esta implementada con una FIFO(no apropiativo), mientras que las colas 2 y 3 se basan en un sistema de RR (turno rotatorio).&lt;br /&gt;
&lt;br /&gt;
=== Colas multinivel con realimentación (feedback)===&lt;br /&gt;
&lt;br /&gt;
Es una variante de las colas multinivel en las que los procesos pasan de una cola a otra según su comportamiento, de manera que:&lt;br /&gt;
&lt;br /&gt;
* Los procesos interactivos tienen más oportunidades de emplear el procesador.&lt;br /&gt;
* Los procesos por lotes disponen del procesador durante más tiempo.&lt;br /&gt;
&lt;br /&gt;
Los procesos se asignan al procesador por turnos rotatorios, empleando un ''quantum'' dependiente de la cola en la que se encuentren. Los procesos que consumen el ''quantum'' asignado completamente un número determinado de veces pasan a colas en las que se asignan ''quantum'' mayores. Nótese que los procesos que no consumen su ''quantum'' muestran un comportamiento interactivo. Para no discriminar a los procesos que se encuentran en las colas con ''quantum'' menores, se les dan más oportunidades de ejecución. &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, en un sencillo planificador de colas multinivel con realimentación compuesto por dos colas:&lt;br /&gt;
&lt;br /&gt;
* En la primera cola se le asignan un ''quantum'' de 2 unidades de tiempo a los procesos.&lt;br /&gt;
* En la segunda cola se le asignan un ''quantum'' de 1 unidad de tiempo a los procesos.&lt;br /&gt;
&lt;br /&gt;
Si un proceso no consume el ''quantum'' asignado dos veces, pasa a la cola en la que en la se le asignan ''quantum'' de 1 unidad de tiempo.&lt;br /&gt;
&lt;br /&gt;
Para que los procesos interactivos no salgan perjudicados, en aras de hacer un reparto del procesador más equitativo, se le dan dos oportunidades de ejecución a los procesos situados en la cola con ''quantum'' de 1 unidad de tiempo. De esta manera, los procesos de la primera cola reciben una oportunidad de ejecución con un ''quantum'' de 2 unidades de tiempo y los de la segunda reciben dos oportunidades de ejecución con un ''quantum'' de 1 unidad de tiempo.&lt;br /&gt;
&lt;br /&gt;
 Ejemplo:&lt;br /&gt;
 Pa y Pc bloquean cada 1 unidad de tiempo&lt;br /&gt;
 El bloqueo se resuelve tras 2 unidades de tiempo&lt;br /&gt;
 Colas multinivel:  1. Procesos interactivos (quantum = 1 unidad de tiempo)&lt;br /&gt;
                    2. Procesos por lotes    (quantum = 2 unidad de tiempo)    &lt;br /&gt;
 Inicialmente todos los procesos van a la cola 2&lt;br /&gt;
 Los procesos que no consuman su quantum al menos una vez pasan a la cola 1&lt;br /&gt;
 Las colas implementan turno rotatorio estricto.&lt;br /&gt;
 Siempre que haya procesos en la cola 1, debe ser atendidos de manera preferente frente a la cola 2.&lt;br /&gt;
                                                                                         &lt;br /&gt;
                     ____|_Pa_|_Pb_|_Pc_|_Pd_|   &lt;br /&gt;
          Datos del  _H0_|_0__|_1__|_2__|_3__|   &lt;br /&gt;
           problema  _t__|_2__|_4__|_2__|_7__|                      &lt;br /&gt;
                                               &lt;br /&gt;
                                                       &lt;br /&gt;
                       &amp;lt; = lanzamiento del proceso&lt;br /&gt;
                       &amp;gt; = finalización del proceso&lt;br /&gt;
                       x = indica que el proceso está asignado al procesador en ese momento&lt;br /&gt;
                       $ = indica la ejecución del planificador para retirar un&lt;br /&gt;
                           proceso y establecer otro según el criterio&lt;br /&gt;
        |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pa  &amp;lt;xxx|---|---|xxx&amp;gt;---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pb  |---&amp;lt;xxxxxxx|---|---|---|---|---|xxxxxxx&amp;gt;---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pc  |---|---&amp;lt;---|---|xxx|---|---|xxx&amp;gt;---|---|---|---|---|---|---|---|---|---|---|---|&lt;br /&gt;
    Pd  |---|---|---&amp;lt;---|---|xxxxxxx|---|---|---|xxxxxxxxxxxxxxxxxxx&amp;gt;---|---|---|---|---|&lt;br /&gt;
     $  $---$---|---$---$---$---|---$---$---|---$---|---$---|---$---$---|---|---|---|---|&lt;br /&gt;
   -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---&amp;gt; t&lt;br /&gt;
        0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
                                                                                                   &lt;br /&gt;
                   ____|_Pa_|_Pb_|_Pc_|_Pd_|&lt;br /&gt;
       Cálculos    _t__|_2__|_4__|_2__|_7__|&lt;br /&gt;
      de tiempos   _T__|_4__|_9__|_6__|_12_|        z = índice de penalización&lt;br /&gt;
                   _z__|_4/2|_9/4|_6/2|12/7|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.4. [[Planificadores_de_sistemas_operativos_existentes | Planificadores de sistemas operativos existentes]]&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Tipos_de_Sistemas_Operativos&amp;diff=4255</id>
		<title>Tipos de Sistemas Operativos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Tipos_de_Sistemas_Operativos&amp;diff=4255"/>
				<updated>2019-02-15T11:08:27Z</updated>
		
		<summary type="html">&lt;p&gt;Beagalcar: /* Características que pueden presentar: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 1.3. Tipos de Sistemas Operativos =&lt;br /&gt;
== 1.3.1. Según cuántas aplicaciones pueda ejecutar a la vez ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Monoprogramables'''===&lt;br /&gt;
*En un determinado instante de tiempo, '''sólo hay un único proceso en ejecución que monopoliza todos los recursos''' del sistema.&lt;br /&gt;
*Principal ventaja: su sencillez.&lt;br /&gt;
*Dos subtipos:&lt;br /&gt;
**Ofrece intérprete de órdenes.&lt;br /&gt;
**Ofrece entrada a través de cinta/switches o disquettes (SSOO históricos).&lt;br /&gt;
*Ejemplo: DOS (80's), BeOS (90's).&lt;br /&gt;
&lt;br /&gt;
=== '''Multiprogramables''' ===&lt;br /&gt;
&lt;br /&gt;
*Permiten ejecutar '''múltiples procesos en un único procesador'''. Se tienen varios programas cargados simultáneamente en la memoria, así que el SO debe controlar los accesos y los espacios de la misma.&lt;br /&gt;
*Tienen mecanismos de protección del espacio de memoria (el SO impide que una aplicación acceda al espacio de memoria de otra).&lt;br /&gt;
&lt;br /&gt;
====Características que pueden presentar:====&lt;br /&gt;
&lt;br /&gt;
*Multiprogramación: se ejecutan varios procesos simultáneamente de manera que se reparte el uso del procesador. A esta característica también se le llama (de forma imprecisa) &amp;quot;Multitarea&amp;quot;.&lt;br /&gt;
**Multiusuario: admite múltiples usuarios trabajando simultáneamente.&lt;br /&gt;
**Multiacceso: el sistema ofrece varios terminales (mecanismos) para acceso concurrente a él.&lt;br /&gt;
**Multiprocesamiento o multiprocesadores: soporta más de un procesador y hace uso de todos ellos.&lt;br /&gt;
***Tipos de sistemas multiprocesadores: Podemos diferenciar 3 tipos: especializados, con acoplamiento débil y con acoplamiento fuerte:&lt;br /&gt;
****Sistemas multiprocesadores con procesadores especializados: Son sistemas que cuentan con un procesador de propósito general y varios procesadores especializados (como por ejemplo coprocesadores aritméticos o el procesador de una tarjeta gráfica). Dichos procesadores especializados solo son capaces de ejecutar un conjunto de operaciones especificas y funcionan únicamente cuando el procesador general se lo solicita, en ese momento colaboran con el procesador general.&lt;br /&gt;
****Sistemas multiprocesadores con acoplamiento débil: Son sistemas con procesadores relativamente independientes, cada uno tiene su propia memoria y sus propios canales de E/S.&lt;br /&gt;
****Sistemas multiprocesadores con acoplamiento fuerte: Son sistemas con varios procesadores de propósito general independientes entre sí pero que comparten la memoria y trabajan bajo un sistema operativo común. &lt;br /&gt;
**Tiempo real: intenta garantizar que determinadas tareas se ejecuten en un plazo de tiempo específico. Atendiendo al nivel de exigencia, se subdividirían en dos: soft (suave) o '''flexible''' y hard(duro) o '''estricto'''. Un ejemplo puede ser el sistema operativo de tiempo real instalado en el procesador de un teléfono móvil; si llega una llamada tiene que pasarla en ese momento, si no, ese proceso deja de ser importante.&lt;br /&gt;
**Distribuido: permite la ejecución de múltiples procesos en diferentes máquinas comunicadas por un enlace de red. El primer SO en soportar esta característica fue [http://es.wikipedia.org/wiki/Plan_9_from_Bell_Labs Plan 9] de ''Bell Labs''.&lt;br /&gt;
&lt;br /&gt;
== 1.3.2. Según cómo se presta el servicio ==&lt;br /&gt;
&lt;br /&gt;
Clasificación no excluyente:&lt;br /&gt;
&lt;br /&gt;
* Sistemas operativos de servidor&lt;br /&gt;
* Sistemas operativos de ordenador personal&lt;br /&gt;
* Sistemas operativos en tiempo real&lt;br /&gt;
* Sistemas operativos embarcados / integrados / &amp;quot;embebidos&amp;quot; (dispositivos móviles o smartcard, p.ej.)&lt;br /&gt;
* Sistemas operativos web&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.1 [[Organización básica de un ordenador]]&lt;/div&gt;</summary>
		<author><name>Beagalcar</name></author>	</entry>

	</feed>