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

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Planificaci%C3%B3n_de_procesos_de_tiempo_real&amp;diff=3722</id>
		<title>Planificación de procesos de tiempo real</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Planificaci%C3%B3n_de_procesos_de_tiempo_real&amp;diff=3722"/>
				<updated>2017-11-16T15:21:17Z</updated>
		
		<summary type="html">&lt;p&gt;Vicalosan: /* Clasificación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es un proceso de tiempo real? ==&lt;br /&gt;
&lt;br /&gt;
Un proceso de tiempo real es aquel cuya actividad tiene un '''plazo de finalización'''.&lt;br /&gt;
&lt;br /&gt;
== ¿Qué es un sistema operativo de tiempo real? ==&lt;br /&gt;
&lt;br /&gt;
Un sistema operativo de tiempo real dispone de un planificador de procesos que tiene mecanismos para hacer lo máximo posible para garantizar que sus procesos de tiempo real cumplan los plazos de finalización que tienen establecidos.&lt;br /&gt;
&lt;br /&gt;
== Clasificación ==&lt;br /&gt;
&lt;br /&gt;
Podemos clasificar los procesos de tiempo real de diferentes maneras:&lt;br /&gt;
&lt;br /&gt;
Según el plazo de tiempo:&lt;br /&gt;
*'''Estricto(''hard-realtime'')''': se debe realizar en un plazo de tiempo determinado. Si no lo hace, deja de tener sentido. Si el plazo de tiempo para realizarla es superado el proceso se aborta. Ejemplo: Industriales (sensores, activadores, ...).&lt;br /&gt;
&lt;br /&gt;
*'''Flexibles(''soft-realtime'')''': es deseable que se cumpla el plazo de tiempo. Ejemplo: Videoconferencia. (Mientras más rápido vaya mejor será la comunicación, pero si no, nos adaptamos a ella)&lt;br /&gt;
&lt;br /&gt;
Según la periodicidad:&lt;br /&gt;
&lt;br /&gt;
*'''Aperiódicas''': se deben a sucesos externos que deben ser atendidos. El sistema operativo no sabe, a priori, cuándo van a llegar ni el tiempo que va a durar. Ejemplo: Notificaciones de errores, Sensores de emergencia en un coche, Ventiladores para refrigeración.&lt;br /&gt;
&lt;br /&gt;
*'''Periódicas''': se realizan cada cierto tiempo (actividad repetitiva). A diferencia del anterior el sistema operativo conoce a priori cuándo van a llegar y su tiempo de duración Ejemplo: leer la temperatura de un sensor.&lt;br /&gt;
&lt;br /&gt;
Podemos tener aplicaciones de tiempo real (flexibles) en sistemas operativos que no son de tiempo real (Linux, [http://darwinosx.blogspot.com/p/descarga-darwin-os.html Darwin], Windows).&lt;br /&gt;
&lt;br /&gt;
En la planificación apropiativa por plazos (con prioridad estática), cada proceso tiene asociado un índice de prioridad y el procesador elige aquel proceso de la lista de preparados con mayor prioridad, es el más tradicional y puede ser llevado a cabo por el procesador de un sistema que no sea de tiempo real.&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo emplea planificación apropiativa por prioridades estática con actividades periódicas y aperiódicas:&lt;br /&gt;
&lt;br /&gt;
                    ____|__PA__|_PB__|_PC__|_PD___|&lt;br /&gt;
         Datos del  _H0_|__0___|_1___|_2___|_3*n__|&lt;br /&gt;
          problema  _t__|__2___|_4___|_2___|_1____|&lt;br /&gt;
                   plazo|__3___|_5___|_7___|_3*n+2|&lt;br /&gt;
               prioridad|__-20_|_0___|_10__|_15___|&lt;br /&gt;
               (-20 a 19)&lt;br /&gt;
                 UNIX  &lt;br /&gt;
                      &amp;lt; = indica el instante de lanzamiento del proceso&lt;br /&gt;
                      &amp;gt; = indica el instante de finalización del proceso&lt;br /&gt;
                      X = se ejecuta el código del planificador&lt;br /&gt;
                  plazo = si la actividad no ha terminado de ejecutarse tras pasar este instante de tiempo, se aborta&lt;br /&gt;
                      * = el proceso se aborta&lt;br /&gt;
 &lt;br /&gt;
                  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
              PA  &amp;lt;---|---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
              PB  |   &amp;lt;   |---|---|---*   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
              PC  |   |   &amp;lt;   |   |   |---|---&amp;gt;   |   |   |   |   |   |   |   |   |   |   |   |   |&lt;br /&gt;
              PD  |   |   |   &amp;lt;   |   *   &amp;lt;   |---&amp;gt;   &amp;lt;---&amp;gt;   |   &amp;lt;---&amp;gt;   |   &amp;lt;---&amp;gt;   |   |   |   |&lt;br /&gt;
     Planificador X   X   X   X   |   X   X   X   |   X   |   |   X   |   |   X   |   |   |   |   |&lt;br /&gt;
             -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---&amp;gt; t&lt;br /&gt;
                  0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20&lt;br /&gt;
                                         &lt;br /&gt;
                         _____|_P&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;C&amp;lt;/sub&amp;gt;_|P&amp;lt;sub&amp;gt;D1ª&amp;lt;/sub&amp;gt;_|P&amp;lt;sub&amp;gt;D2ª&amp;lt;/sub&amp;gt;_|_P&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt;_|&lt;br /&gt;
              Cálculos   __t__|_2__|_3__|_2__|_1__|_1__|_1__|&lt;br /&gt;
             de tiempos  __T__|_2__|_*__|_5__|_*__|_2__|_1__|&lt;br /&gt;
                         _T/t_|_1__|_*__|_5/2|_*__|_2__|_1__|&lt;br /&gt;
                        |&lt;br /&gt;
                        |_&amp;gt; Indice de penalización&lt;br /&gt;
&lt;br /&gt;
Si alguna actividad entrante tiene más prioridad que la que se está ejecutando, ésta última pasa a estado preparado y se da paso a la nueva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.6. [[Planificación_en_sistemas_multiprocesadores | La planificación en sistemas multiprocesadores]]&lt;/div&gt;</summary>
		<author><name>Vicalosan</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Llamadas_al_sistema&amp;diff=3721</id>
		<title>Llamadas al sistema</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Llamadas_al_sistema&amp;diff=3721"/>
				<updated>2017-11-16T14:28:36Z</updated>
		
		<summary type="html">&lt;p&gt;Vicalosan: /* 2.7. Llamadas al sistema */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 2.7. Llamadas al sistema =&lt;br /&gt;
&lt;br /&gt;
== Definición de llamada al sistema ==&lt;br /&gt;
&lt;br /&gt;
Una llamada al sistema es un método o función que puede invocar un proceso para solicitar un cierto servicio al sistema operativo. Dado que el acceso a ciertos recursos del sistema requiere la ejecución de código en modo privilegiado, el sistema operativo ofrece un conjunto de métodos o funciones que el programa puede emplear para acceder a dichos recursos. En otras palabras, el sistema operativo actúa como intermediario, ofreciendo una interfaz de programación (API) que el programa puede usar en cualquier momento para solicitar recursos gestionados por el sistema operativo.&lt;br /&gt;
&lt;br /&gt;
Algunos ejemplos de llamadas al sistema son las siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''write''', que se emplea para escribir un dato en un cierto dispositivo de salida, tales como una pantalla o un disco magnético.&lt;br /&gt;
* '''read''', que es usada para leer de un dispositivo de entrada, tales como un teclado o un disco magnético.&lt;br /&gt;
* '''open''', que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele pasarse a write.&lt;br /&gt;
* '''close''', que se emplea para cerrar un descriptor de fichero.&lt;br /&gt;
&lt;br /&gt;
Todo sistema operativo ofrece un conjunto de llamadas al sistema. En el caso de Linux 3.0, se ofrecen un total de [http://syscalls.kernelgrok.com/ 345 llamadas al sistema]. El sistema operativo xv6 ofrece también una lista de llamadas al sistema [https://github.com/mit-pdos/xv6-public/blob/master/syscall.c#L107 mucho menor] al ser un sistema operativo muy sencillo.&lt;br /&gt;
&lt;br /&gt;
Toda llamada al sistema se identifica de manera unívoca mediante un valor numérico que no debe ser modificado a lo largo de la vida del sistema operativo para evitar que se rompa la compatibilidad hacia atrás.&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo muestra en C la invocación de las llamadas al sistema '''write''', '''read''', '''open''' y '''close'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
	char buf[1024];&lt;br /&gt;
	int fd, ret;&lt;br /&gt;
&lt;br /&gt;
	fd = open(&amp;quot;f123&amp;quot;, O_RDONLY);&lt;br /&gt;
	if (fd &amp;lt; 0) {&lt;br /&gt;
		perror(&amp;quot;open&amp;quot;);&lt;br /&gt;
		exit(EXIT_FAILURE);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ret = read(fd, buf, sizeof(buf));&lt;br /&gt;
	if (ret &amp;lt; 0) {&lt;br /&gt;
		perror(&amp;quot;read&amp;quot;);&lt;br /&gt;
		exit(EXIT_FAILURE);&lt;br /&gt;
	}&lt;br /&gt;
	close(fd);&lt;br /&gt;
&lt;br /&gt;
	write(1, buf, ret);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Familias de llamadas al sistema operativo: POSIX y WIN32/64 ===&lt;br /&gt;
&lt;br /&gt;
Las dos familias de APIs estandarizas más importantes son:&lt;br /&gt;
&lt;br /&gt;
* [http://es.wikipedia.org/wiki/POSIX POSIX].&lt;br /&gt;
* WIN32/64, empleada en los sistemas operativos de tipo-Windows. Además, existen emuladores como '''Wine''' que también las implementan.&lt;br /&gt;
&lt;br /&gt;
== Implementación de llamadas al sistema ==&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo muestra el código en ensamblador de x86 para invocar a la llamada al sistema '''write''' que permite escribir un dato en cualquier dispositivo. En concreto, se va a escribir una cadena por el dispositivo de salida '''pantalla''', que se identifica mediante el descriptor de fichero número 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
section .text&lt;br /&gt;
    global _start&lt;br /&gt;
_start:&lt;br /&gt;
    mov eax, 4         ;cargamos el número de la llamada al sistema en el regitro eax&lt;br /&gt;
    mov ebx, 1         ;cargamos el descriptor de fichero sobre el que queremos escribir&lt;br /&gt;
    mov ecx, string    ;cargamos en ecx la dirección de la cadena a imprimir&lt;br /&gt;
    mov edx, lenght    ;cargamos en edx el tamaño de la cadena a imprimir&lt;br /&gt;
    int 80h            ;se invoca al de&lt;br /&gt;
&lt;br /&gt;
    mov eax, 1&lt;br /&gt;
    mov ebx, 0&lt;br /&gt;
    int 80h&lt;br /&gt;
&lt;br /&gt;
section .data&lt;br /&gt;
    string: db &amp;quot;Hola Mundo&amp;quot;, 0x0A&lt;br /&gt;
    lenght: equ 13&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La instrucción ''int'' forma parte del conjunto de instrucciones de procesadores x86. Esta instrucción emite una [[Gestión_de_Entrada/Salida|interrupción]] por software cuyo tratamiento es realizado por la rutina ''dispatcher''. Dicha rutina se encarga del tratamiento de la interrupción por software número 80.&lt;br /&gt;
&lt;br /&gt;
En siguiente segmento de código muestra una llamada a sistema en un procesador de 32 bits:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
_start:&lt;br /&gt;
    movl $4, %eax   ; use the write syscall&lt;br /&gt;
    movl $1, %ebx   ; write to stdout&lt;br /&gt;
    movl $msg, %ecx ; use string &amp;quot;Hello World&amp;quot;&lt;br /&gt;
    movl $12, %edx  ; write 12 characters&lt;br /&gt;
    int $0x80       ; make syscall&lt;br /&gt;
    &lt;br /&gt;
    movl $1, %eax   ; use the _exit syscall&lt;br /&gt;
    movl $0, %ebx   ; error code 0&lt;br /&gt;
    int $0x80       ; make syscall&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Análogamente en un procesador de 64 bits:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
_start:&lt;br /&gt;
    movq $1, %rax   ; use the write syscall&lt;br /&gt;
    movq $1, %rdi   ; write to stdout&lt;br /&gt;
    movq $msg, %rsi ; use string &amp;quot;Hello World&amp;quot;&lt;br /&gt;
    movq $12, %rdx  ; write 12 characters&lt;br /&gt;
    syscall         ; make syscall&lt;br /&gt;
    &lt;br /&gt;
    movq $60, %rax  ; use the _exit syscall&lt;br /&gt;
    movq $0, %rdi   ; error code 0&lt;br /&gt;
    syscall         ; make syscall&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ejemplo de llamadas al sistema de Linux (64 bits):''' http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/&lt;br /&gt;
&lt;br /&gt;
[http://cs.lmu.edu/~ray/notes/linuxsyscalls/ Implementación de llamadas al sistema en Linux (32 y 64 bit)]&lt;br /&gt;
&lt;br /&gt;
== El ''dispatcher'' ==&lt;br /&gt;
&lt;br /&gt;
El dispatcher, que forma parte del SO, se ejecuta cuando se invoca una llamada al sistema. &lt;br /&gt;
Cuando un proceso hace una llamada al sistema, el dispatcher, se encarga de invocar la llamada que el proceso ha solicitado.&lt;br /&gt;
 &lt;br /&gt;
Tiene un comportamiento sincronizado, cuando recibe una llamada se la pasa al sistema operativo y hasta que no recibe respuesta no atiende otra llamada. &lt;br /&gt;
&lt;br /&gt;
En el caso de x86, el dispatcher consulta el registro eax e invoca a la llamada al sistema identificada con dicha numeración.&lt;br /&gt;
&lt;br /&gt;
El sistema xv6 ofrece un dispatcher muy sencillo, que se puede consultar [https://github.com/mit-pdos/xv6-public/blob/master/syscall.c#L132 aquí].&lt;br /&gt;
&lt;br /&gt;
== El punto de entrada == &lt;br /&gt;
&lt;br /&gt;
Es la posición de memoria desde la cual es posible solicitarle servicios al sistema operativo. Normalmente hay un único punto de entrada.&lt;br /&gt;
En algunos SO se realiza mediante llamadas a subprogramas. La dirección de memoria del punto de entrada puede cambiar si se modifica el SO. En algunos SO este problema lo solucionan usando una dirección fija, mientras en otros han preferido usar una referencia a dicha dirección.&lt;br /&gt;
&lt;br /&gt;
Lo ideal es que sean compatibles a lo largo del tiempo (aunque Windows normalmente no lo respeta).&lt;br /&gt;
&lt;br /&gt;
2.8. [[Ejercicios_fundamentos_Sistemas_Operativos | Ejercicios]]&lt;br /&gt;
&lt;br /&gt;
3.1. [[Modelos_de_Diseño_de_Sistemas_Operativos | Modelos de Diseño de SSOO]]&lt;/div&gt;</summary>
		<author><name>Vicalosan</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Tipos_de_Sistemas_Operativos&amp;diff=3672</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=3672"/>
				<updated>2017-11-13T12:18:34Z</updated>
		
		<summary type="html">&lt;p&gt;Vicalosan: /* 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 (SSOO históricos).&lt;br /&gt;
*Ejemplo: DOS.&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, sino 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;, ejemplos, dispositivos móviles o smartcard.&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>Vicalosan</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Modelos_de_Dise%C3%B1o_de_Sistemas_Operativos&amp;diff=3556</id>
		<title>Modelos de Diseño de Sistemas Operativos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Modelos_de_Dise%C3%B1o_de_Sistemas_Operativos&amp;diff=3556"/>
				<updated>2017-10-13T16:49:45Z</updated>
		
		<summary type="html">&lt;p&gt;Vicalosan: /* Tipos de Sistemas Operativos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 3.1. Modelos de Diseño de SSOO =&lt;br /&gt;
&lt;br /&gt;
== Modos de operación del procesador ==&lt;br /&gt;
&lt;br /&gt;
Para entender los modelos de diseño de los sistemas operativos, tenemos que hacer referencia a los modos de ejecución del procesador. El modo de ejecución del procesador indica qué conjunto de instrucciones y a qué recursos del procesador se puede acceder en un cierto instante de tiempo.&lt;br /&gt;
&lt;br /&gt;
En la actualidad, un procesador ofrece como mínimo dos modos de operación(ejecución) que son:&lt;br /&gt;
&lt;br /&gt;
* '''Modo privilegiado'''(supervisor), que permite la ejecución de todo el conjunto de instrucciones que ofrece el procesador (no tiene ninguna relación con el modo &amp;quot;root&amp;quot; o administrador de algunos sistemas operativos).&lt;br /&gt;
&lt;br /&gt;
* '''Modo no privilegiado'''(usuario), que tiene algunas restricciones de acceso a aspectos del procesador o de ejecución de instrucciones.&lt;br /&gt;
&lt;br /&gt;
== Núcleo del sistema operativo ==&lt;br /&gt;
&lt;br /&gt;
El núcleo del sistema operativo, también conocido por la terminología inglesa ''kernel'', es la parte más esencial del sistema operativo. Se trata de la capa visible del software más baja del sistema que provee y gestiona los recursos del sistema de forma segura a través de las llamadas al sistema.&lt;br /&gt;
&lt;br /&gt;
El núcleo de un sistema operativo suele operar en modo privilegiado. Al operar en dicho modo un error de programación en el núcleo del sistema operativo puede resultar en un error fatal del cual el sistema sólo puede recuperarse mediante el reinicio del sistema. A tal error fatal también se le conoce en los sistemas operativos UNIX por la locución inglesa ''[http://es.wikipedia.org/wiki/Kernel_panic kernel panic]'' y en los sistemas operativos Windows por el nombre de ''[http://www.google.es/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CCwQFjAA&amp;amp;url=http%3A%2F%2Fes.wikipedia.org%2Fwiki%2FPantalla_azul_de_la_muerte&amp;amp;ei=s02WTqvCCMjHtAaxuJyBBA&amp;amp;usg=AFQjCNE2tZra15VdohxjrhSogTQZOVedKg Pantallazo azul o BSOD]''.&lt;br /&gt;
&lt;br /&gt;
== Tipos de Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
Los sistemas operativos se pueden clasificar en base a la cantidad de funcionalidad implementada en su núcleo. En general distinguimos dos tipos de sistemas operativos:&lt;br /&gt;
&lt;br /&gt;
* '''Monolíticos:''' gestionan los tres componentes fundamentales del computador: CPU, memoría y E/S, en modo supervisor.&lt;br /&gt;
&lt;br /&gt;
* '''Micronúcleos:''' gestionan la CPU, las interrupciones y la mensajería entre procesos en modo supervisor. La memoria y la E/S se gestionan en modo usuario, a partir de procesos del sistema operativo especial que se denominan ''proceso servidor''.&lt;br /&gt;
&lt;br /&gt;
* '''Híbrido:''' a mitad de camino entre monolítico y micronúcleo, incluye la gestión de dispositivos de E/S en modo supervisor.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:OS-structure2b(EDITADO).svg‎ |880px| Comparativa de distribución de funcionalidades entre distintos tipos de SO]]&lt;br /&gt;
&lt;br /&gt;
Además, contamos con sistemas operativos pico y nanonúcleos de propósito específico que se puede considerar un subtipo de Micronúcleo. Son núcleos incluso más pequeños que los micronúcleos, permiten en cierto grado a las procesos ejecutar instrucciones en modo supervisor, por tanto, requieren un grado de confianza entre el sistema operativo y los procesos en ejecución.&lt;br /&gt;
&lt;br /&gt;
=== Sistemas operativos Monolíticos ===&lt;br /&gt;
&lt;br /&gt;
Los sistema operativos monolíticos se caracterizan por emplear un núcleo que implementa la planificación de procesos, el sistema de comunicación de procesos, el sistema de sincronizacion de procesos, la administración de la memoria principal, la administración de ficheros y la gestión de los dispositivos de entrada/salida. Por tanto, a mayor funcionalidad implementada en el núcleo, mayor número de líneas de código que se ejecutan en modo privilegiado.&lt;br /&gt;
&lt;br /&gt;
Los sistemas operativos monolíticos son los predominantes hoy día, algunos ejemplos son:&lt;br /&gt;
&lt;br /&gt;
* Sistemas operativos UNIX, tales como FreeBSD, NetBSD y OpenBSD. &lt;br /&gt;
* Sistemas operativos GNU/Linux.&lt;br /&gt;
* DOS, tales como MS-DOS y DR-DOS.&lt;br /&gt;
&lt;br /&gt;
Como inconveniente, al emplear un núcleo que incluye gran parte de las funcionalidades básicas del sistema operativo, dispone de un alto número de líneas de código ejecutándose en modo privilegiado. Por ello, un error de programación en el núcleo puede provocar un ''kernel panic''. Además el hecho de añadir nuevas funcionalidades provocaría una nueva recompilación del núcleo llevando a reiniciar el sistema para que se apliquen los nuevos cambios.&lt;br /&gt;
&lt;br /&gt;
Como principal ventaja, los sistemas operativo monolíticos ofrecen un alto rendimiento puesto que las peticiones entre los diferentes componentes se reducen a invocaciones de funciones.&lt;br /&gt;
&lt;br /&gt;
=== Sistemas operativos Micronúcleo ===&lt;br /&gt;
&lt;br /&gt;
También conocidos como sistemas operativos exokernel o exonúcleo, se caracterizan por disponer de un núcleo que implementa únicamente:&lt;br /&gt;
&lt;br /&gt;
* Planificación de procesos&lt;br /&gt;
* Mecanismo de comunicación entre procesos&lt;br /&gt;
* Gestión de interrupciones&lt;br /&gt;
&lt;br /&gt;
Además, existen procesos servidores que están fuera del núcleo, que se ejecutan en modo no privilegiado del procesador, y que implementan la:&lt;br /&gt;
&lt;br /&gt;
* Administración de memoria principal&lt;br /&gt;
* Administración de ficheros&lt;br /&gt;
* Gestión de dispositivos de entrada/salida.&lt;br /&gt;
&lt;br /&gt;
Siguiendo este esquema, cuando un proceso cualquiera solicita un servicio a través de una llamada al sistema, el micronúcleo canaliza la petición al proceso servidor correspondiente. Dicha comunicación se realiza mediante mensajería.&lt;br /&gt;
&lt;br /&gt;
La principal ventaja de los sistemas operativos micronúcleo es que, al ejecutar menos líneas de código en modo privilegiado, de manera intuitiva son más fiables. Otras ventajas son que se garantiza el aislamiento de las partes que están fuera del núcleo, como los módulos son independientes unos de otros, si cae alguno de ello los demás no se ven afectados y pueden seguir funcionando.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, el principal problema que presentan es el rendimiento, puesto que cualquier petición requiere mensajería, que lleva consigo un coste extra debido a la construcción de los mensajes, el reparto y la interpretación. Son estos problemas relacionados con el rendimiento los que hacen que no existan sistemas operativos micronúcleo desplegables en productivo, a excepción de Minix 2, que tiene propósitos educativos. Otro ejemplo de micronúcleo es Symbian OS.&lt;br /&gt;
&lt;br /&gt;
=== Sistemas operativos Híbridos ===&lt;br /&gt;
&lt;br /&gt;
Los núcleos híbridos se encuentran entre los monolíticos y los micronúcleo. La mayoría de sistemas operativos modernos pertenecen a esta categoría, siendo el más popular Microsoft Windows. XNU, el núcleo de Mac OS X, también es un micronúcleo modificado, debido a la inclusión de código del núcleo de FreeBSD en el núcleo basado en Mach. DragonFlyBSD es el primer sistema BSD que adopta una arquitectura de núcleo híbrido sin basarse en Mach.&lt;br /&gt;
&lt;br /&gt;
Algunos ejemplos de núcleos híbridos:&lt;br /&gt;
&lt;br /&gt;
* Microsoft Windows NT, usado en todos los sistemas que usan el código base de Windows NT&lt;br /&gt;
* XNU (usado en Mac OS X)&lt;br /&gt;
* DragonFlyBSD&lt;br /&gt;
* ReactOS&lt;br /&gt;
&lt;br /&gt;
Hay gente que confunde el término «núcleo híbrido» con los núcleos monolíticos que pueden cargar módulos después del arranque, lo que es un error. «Híbrido» implica que el núcleo en cuestión usa conceptos de arquitectura o mecanismos tanto del diseño monolítico como del micronúcleo, específicamente el paso de mensajes y la ejecución de ciertos componentes del sistema operativo en espacio de usuario.&lt;br /&gt;
&lt;br /&gt;
=== Sistemas en estratos (por capas).===&lt;br /&gt;
&lt;br /&gt;
El sistema en estratos “capas” consiste en organizar el sistema operativo como una jerarquía de capas, cada una construida sobre la inmediata inferior. Cada estrato desarrolla completamente una actividad del sistema.&lt;br /&gt;
&lt;br /&gt;
Algunos ejemplos de sistemas en estratos: &lt;br /&gt;
&lt;br /&gt;
* THE (Technishe Hogeschool Eindhoven) Dijkstra 1968 sistema de procesamiento por lotes. &lt;br /&gt;
Estratos: &lt;br /&gt;
     5.) Proceso operador del sistema. &lt;br /&gt;
     4.) Procesos de los usuarios. &lt;br /&gt;
     3.) Control de Entrada/Salida. &lt;br /&gt;
     2.) Comunicación proceso-consola. &lt;br /&gt;
     1.) Administración de la memoria y del disco. &lt;br /&gt;
     0.) Asignación del procesador y multiprogramación. &lt;br /&gt;
* MULTICS (Multiplexed Information and Computing Service) anillos concéntricos alrededor del hardware, donde los internos son más privilegiados que los externos.&lt;br /&gt;
[[Archivo:Anillos.jpg‎]]&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Ricjimode|Ricjimode]] ([[Usuario discusión:Ricjimode|discusión]]) 20:29 27 ene 2015 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exonúcleos y Uninúcleos === &lt;br /&gt;
&lt;br /&gt;
'''Exokernel o exonúcleo''' son sistemas caracterizados principalmente por tener aplicaciones de usuarios capaces de acceder a recursos del sistema sin necesidad de realizar llamadas al sistema. se da en sistemas operativos de tiempo real, de propósito específico. Generalmente empleados en industria aeronáutica, automotriz y telecomunicaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Unikernel o uninúcleo''' son sistemas caracterizados por el hecho de que sus apliaciones de usuario son lanzadas en el propio núcleo del Sistema Operativo. Por tanto, la totalidad del código se ejecuta en modo supervisor. Son también conocidos como sistemas operativos de biblioteca, en cuanto que se presentan a la aplicación como una biblioteca de métodos empleables por el software aplicativo. Se trata de una solución de propósito específico.&lt;br /&gt;
&lt;br /&gt;
== Otro material a consultar ==&lt;br /&gt;
&lt;br /&gt;
El estudiante puede encontrar el siguiente material de interés para complementar sus conocimientos:&lt;br /&gt;
&lt;br /&gt;
* Debate entre Linus Torvalds, creador del núcleo Linux, que sigue el paradigma monolítico y Andrew S. Tanembaum, creador de Minux, que sigue el modelo micronúcleo: http://oreilly.com/catalog/opensources/book/appa.html (en inglés).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.2.[[Virtualización | Virtualización]]&lt;/div&gt;</summary>
		<author><name>Vicalosan</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Modelos_de_Dise%C3%B1o_de_Sistemas_Operativos&amp;diff=3553</id>
		<title>Modelos de Diseño de Sistemas Operativos</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Modelos_de_Dise%C3%B1o_de_Sistemas_Operativos&amp;diff=3553"/>
				<updated>2017-10-13T16:48:23Z</updated>
		
		<summary type="html">&lt;p&gt;Vicalosan: /* Tipos de Sistemas Operativos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 3.1. Modelos de Diseño de SSOO =&lt;br /&gt;
&lt;br /&gt;
== Modos de operación del procesador ==&lt;br /&gt;
&lt;br /&gt;
Para entender los modelos de diseño de los sistemas operativos, tenemos que hacer referencia a los modos de ejecución del procesador. El modo de ejecución del procesador indica qué conjunto de instrucciones y a qué recursos del procesador se puede acceder en un cierto instante de tiempo.&lt;br /&gt;
&lt;br /&gt;
En la actualidad, un procesador ofrece como mínimo dos modos de operación(ejecución) que son:&lt;br /&gt;
&lt;br /&gt;
* '''Modo privilegiado'''(supervisor), que permite la ejecución de todo el conjunto de instrucciones que ofrece el procesador (no tiene ninguna relación con el modo &amp;quot;root&amp;quot; o administrador de algunos sistemas operativos).&lt;br /&gt;
* '''Modo no privilegiado'''(usuario), que tiene algunas restricciones de acceso a aspectos del procesador o de ejecución de instrucciones.&lt;br /&gt;
&lt;br /&gt;
== Núcleo del sistema operativo ==&lt;br /&gt;
&lt;br /&gt;
El núcleo del sistema operativo, también conocido por la terminología inglesa ''kernel'', es la parte más esencial del sistema operativo. Se trata de la capa visible del software más baja del sistema que provee y gestiona los recursos del sistema de forma segura a través de las llamadas al sistema.&lt;br /&gt;
&lt;br /&gt;
El núcleo de un sistema operativo suele operar en modo privilegiado. Al operar en dicho modo un error de programación en el núcleo del sistema operativo puede resultar en un error fatal del cual el sistema sólo puede recuperarse mediante el reinicio del sistema. A tal error fatal también se le conoce en los sistemas operativos UNIX por la locución inglesa ''[http://es.wikipedia.org/wiki/Kernel_panic kernel panic]'' y en los sistemas operativos Windows por el nombre de ''[http://www.google.es/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CCwQFjAA&amp;amp;url=http%3A%2F%2Fes.wikipedia.org%2Fwiki%2FPantalla_azul_de_la_muerte&amp;amp;ei=s02WTqvCCMjHtAaxuJyBBA&amp;amp;usg=AFQjCNE2tZra15VdohxjrhSogTQZOVedKg Pantallazo azul o BSOD]''.&lt;br /&gt;
&lt;br /&gt;
== Tipos de Sistemas Operativos ==&lt;br /&gt;
&lt;br /&gt;
Los sistemas operativos se pueden clasificar en base a la cantidad de funcionalidad implementada en su núcleo. En general distinguimos dos tipos de sistemas operativos:&lt;br /&gt;
&lt;br /&gt;
* '''Monolíticos:''' son núcleos de gran tamaño (muchas líneas de código) con un alto número de funcionalidades, las cuales normalmente son compiladas junto al núcleo en el mismo momento.&lt;br /&gt;
* '''Micronúcleos:''' son núcleos de pequeño tamaño que fueron compilados sólo con las necesidades más básicas del sistema operativo. El resto de funcionalidades son añadidas mediante la adición de módulos externos al núcleo, lo que les proporciona flexibilidad y facilidad de ampliación en detrimento del desempeño necesario para la gestión dinámica de éstos.&lt;br /&gt;
* '''Híbrido:''' a mitad de camino entre monolítico y micronúcleo, incluye la gestión de dispositivos de E/S en modo supervisor.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:OS-structure2b(EDITADO).svg‎ |880px| Comparativa de distribución de funcionalidades entre distintos tipos de SO]]&lt;br /&gt;
&lt;br /&gt;
Además, contamos con sistemas operativos pico y nanonúcleos de propósito específico que se puede considerar un subtipo de Micronúcleo. Son núcleos incluso más pequeños que los micronúcleos, permiten en cierto grado a las procesos ejecutar instrucciones en modo supervisor, por tanto, requieren un grado de confianza entre el sistema operativo y los procesos en ejecución.&lt;br /&gt;
&lt;br /&gt;
=== Sistemas operativos Monolíticos ===&lt;br /&gt;
&lt;br /&gt;
Los sistema operativos monolíticos se caracterizan por emplear un núcleo que implementa la planificación de procesos, el sistema de comunicación de procesos, el sistema de sincronizacion de procesos, la administración de la memoria principal, la administración de ficheros y la gestión de los dispositivos de entrada/salida. Por tanto, a mayor funcionalidad implementada en el núcleo, mayor número de líneas de código que se ejecutan en modo privilegiado.&lt;br /&gt;
&lt;br /&gt;
Los sistemas operativos monolíticos son los predominantes hoy día, algunos ejemplos son:&lt;br /&gt;
&lt;br /&gt;
* Sistemas operativos UNIX, tales como FreeBSD, NetBSD y OpenBSD. &lt;br /&gt;
* Sistemas operativos GNU/Linux.&lt;br /&gt;
* DOS, tales como MS-DOS y DR-DOS.&lt;br /&gt;
&lt;br /&gt;
Como inconveniente, al emplear un núcleo que incluye gran parte de las funcionalidades básicas del sistema operativo, dispone de un alto número de líneas de código ejecutándose en modo privilegiado. Por ello, un error de programación en el núcleo puede provocar un ''kernel panic''. Además el hecho de añadir nuevas funcionalidades provocaría una nueva recompilación del núcleo llevando a reiniciar el sistema para que se apliquen los nuevos cambios.&lt;br /&gt;
&lt;br /&gt;
Como principal ventaja, los sistemas operativo monolíticos ofrecen un alto rendimiento puesto que las peticiones entre los diferentes componentes se reducen a invocaciones de funciones.&lt;br /&gt;
&lt;br /&gt;
=== Sistemas operativos Micronúcleo ===&lt;br /&gt;
&lt;br /&gt;
También conocidos como sistemas operativos exokernel o exonúcleo, se caracterizan por disponer de un núcleo que implementa únicamente:&lt;br /&gt;
&lt;br /&gt;
* Planificación de procesos&lt;br /&gt;
* Mecanismo de comunicación entre procesos&lt;br /&gt;
* Gestión de interrupciones&lt;br /&gt;
&lt;br /&gt;
Además, existen procesos servidores que están fuera del núcleo, que se ejecutan en modo no privilegiado del procesador, y que implementan la:&lt;br /&gt;
&lt;br /&gt;
* Administración de memoria principal&lt;br /&gt;
* Administración de ficheros&lt;br /&gt;
* Gestión de dispositivos de entrada/salida.&lt;br /&gt;
&lt;br /&gt;
Siguiendo este esquema, cuando un proceso cualquiera solicita un servicio a través de una llamada al sistema, el micronúcleo canaliza la petición al proceso servidor correspondiente. Dicha comunicación se realiza mediante mensajería.&lt;br /&gt;
&lt;br /&gt;
La principal ventaja de los sistemas operativos micronúcleo es que, al ejecutar menos líneas de código en modo privilegiado, de manera intuitiva son más fiables. Otras ventajas son que se garantiza el aislamiento de las partes que están fuera del núcleo, como los módulos son independientes unos de otros, si cae alguno de ello los demás no se ven afectados y pueden seguir funcionando.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, el principal problema que presentan es el rendimiento, puesto que cualquier petición requiere mensajería, que lleva consigo un coste extra debido a la construcción de los mensajes, el reparto y la interpretación. Son estos problemas relacionados con el rendimiento los que hacen que no existan sistemas operativos micronúcleo desplegables en productivo, a excepción de Minix 2, que tiene propósitos educativos. Otro ejemplo de micronúcleo es Symbian OS.&lt;br /&gt;
&lt;br /&gt;
=== Sistemas operativos Híbridos ===&lt;br /&gt;
&lt;br /&gt;
Los núcleos híbridos se encuentran entre los monolíticos y los micronúcleo. La mayoría de sistemas operativos modernos pertenecen a esta categoría, siendo el más popular Microsoft Windows. XNU, el núcleo de Mac OS X, también es un micronúcleo modificado, debido a la inclusión de código del núcleo de FreeBSD en el núcleo basado en Mach. DragonFlyBSD es el primer sistema BSD que adopta una arquitectura de núcleo híbrido sin basarse en Mach.&lt;br /&gt;
&lt;br /&gt;
Algunos ejemplos de núcleos híbridos:&lt;br /&gt;
&lt;br /&gt;
* Microsoft Windows NT, usado en todos los sistemas que usan el código base de Windows NT&lt;br /&gt;
* XNU (usado en Mac OS X)&lt;br /&gt;
* DragonFlyBSD&lt;br /&gt;
* ReactOS&lt;br /&gt;
&lt;br /&gt;
Hay gente que confunde el término «núcleo híbrido» con los núcleos monolíticos que pueden cargar módulos después del arranque, lo que es un error. «Híbrido» implica que el núcleo en cuestión usa conceptos de arquitectura o mecanismos tanto del diseño monolítico como del micronúcleo, específicamente el paso de mensajes y la ejecución de ciertos componentes del sistema operativo en espacio de usuario.&lt;br /&gt;
&lt;br /&gt;
=== Sistemas en estratos (por capas).===&lt;br /&gt;
&lt;br /&gt;
El sistema en estratos “capas” consiste en organizar el sistema operativo como una jerarquía de capas, cada una construida sobre la inmediata inferior. Cada estrato desarrolla completamente una actividad del sistema.&lt;br /&gt;
&lt;br /&gt;
Algunos ejemplos de sistemas en estratos: &lt;br /&gt;
&lt;br /&gt;
* THE (Technishe Hogeschool Eindhoven) Dijkstra 1968 sistema de procesamiento por lotes. &lt;br /&gt;
Estratos: &lt;br /&gt;
     5.) Proceso operador del sistema. &lt;br /&gt;
     4.) Procesos de los usuarios. &lt;br /&gt;
     3.) Control de Entrada/Salida. &lt;br /&gt;
     2.) Comunicación proceso-consola. &lt;br /&gt;
     1.) Administración de la memoria y del disco. &lt;br /&gt;
     0.) Asignación del procesador y multiprogramación. &lt;br /&gt;
* MULTICS (Multiplexed Information and Computing Service) anillos concéntricos alrededor del hardware, donde los internos son más privilegiados que los externos.&lt;br /&gt;
[[Archivo:Anillos.jpg‎]]&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Ricjimode|Ricjimode]] ([[Usuario discusión:Ricjimode|discusión]]) 20:29 27 ene 2015 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exonúcleos y Uninúcleos === &lt;br /&gt;
&lt;br /&gt;
'''Exokernel o exonúcleo''' son sistemas caracterizados principalmente por tener aplicaciones de usuarios capaces de acceder a recursos del sistema sin necesidad de realizar llamadas al sistema. se da en sistemas operativos de tiempo real, de propósito específico. Generalmente empleados en industria aeronáutica, automotriz y telecomunicaciones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Unikernel o uninúcleo''' son sistemas caracterizados por el hecho de que sus apliaciones de usuario son lanzadas en el propio núcleo del Sistema Operativo. Por tanto, la totalidad del código se ejecuta en modo supervisor. Son también conocidos como sistemas operativos de biblioteca, en cuanto que se presentan a la aplicación como una biblioteca de métodos empleables por el software aplicativo. Se trata de una solución de propósito específico.&lt;br /&gt;
&lt;br /&gt;
== Otro material a consultar ==&lt;br /&gt;
&lt;br /&gt;
El estudiante puede encontrar el siguiente material de interés para complementar sus conocimientos:&lt;br /&gt;
&lt;br /&gt;
* Debate entre Linus Torvalds, creador del núcleo Linux, que sigue el paradigma monolítico y Andrew S. Tanembaum, creador de Minux, que sigue el modelo micronúcleo: http://oreilly.com/catalog/opensources/book/appa.html (en inglés).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.2.[[Virtualización | Virtualización]]&lt;/div&gt;</summary>
		<author><name>Vicalosan</name></author>	</entry>

	<entry>
		<id>https://1984.lsi.us.es/wiki-ssoo/index.php?title=Qu%C3%A9_es_un_Sistema_operativo&amp;diff=3543</id>
		<title>Qué es un Sistema operativo</title>
		<link rel="alternate" type="text/html" href="https://1984.lsi.us.es/wiki-ssoo/index.php?title=Qu%C3%A9_es_un_Sistema_operativo&amp;diff=3543"/>
				<updated>2017-10-09T15:36:27Z</updated>
		
		<summary type="html">&lt;p&gt;Vicalosan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Archivo:Sistema Operativo.png|right]]&lt;br /&gt;
Un '''sistema operativo''' es el '''software''' que gestiona los tres recursos fundamentales de un computador (la parte hardware), que son:&lt;br /&gt;
&lt;br /&gt;
* El procesador o CPU.&lt;br /&gt;
* La memoria principal.&lt;br /&gt;
* Los dispositivos de Entrada/Salida.&lt;br /&gt;
&lt;br /&gt;
Las utilidades y características de estos son las siguientes:&lt;br /&gt;
&lt;br /&gt;
* '''Abstrae del hardware''': Esto hace posible que los programas desarrollados para el sistema operativo en cuestión funcionen en distintos dispositivos, sin conocer sus detalles específicos. Es el sistema operativo el que se encarga de comunicarlo con el hardware.&lt;br /&gt;
&lt;br /&gt;
* '''Proporciona una biblioteca de métodos a las aplicaciones de usuario''': Estos métodos o funciones pueden ser usados por los programadores a la hora de desarrollar sus aplicaciones.&lt;br /&gt;
&lt;br /&gt;
* '''Gestiona los recursos de manera equitativa''': Un sistema operativo debe encargarse de que los procesos progresen en tiempo de ejecución. Un solo procesador debe encargarse de un gran número de procesos simultáneamente, y no es posible hacerlo en paralelo. El sistema operativo los gestiona para que todos los procesos avancen de manera ecuánime.&lt;br /&gt;
&lt;br /&gt;
* '''Debe consumir el mínimo de recursos''': Para que los procesos se realicen de la manera más rápida posible, el sistema operativo debe consumir los menos recursos posibles, de manera que la mayor parte de recursos se dedique a estos procesos.&lt;br /&gt;
&lt;br /&gt;
* '''Lanzador de aplicaciones''': El sistema operativo ofrece al usuario una interfaz que le permite lanzar las aplicaciones de usuario, ya sea de modo texto, gráfico basado en ventanas y ratón o táctil.&lt;br /&gt;
&lt;br /&gt;
1.2. [[Introducción histórica|Breve introducción histórica a los Sistemas Operativos]]&lt;/div&gt;</summary>
		<author><name>Vicalosan</name></author>	</entry>

	</feed>