aboutsummaryrefslogtreecommitdiff
path: root/iso/n1.lyx
diff options
context:
space:
mode:
Diffstat (limited to 'iso/n1.lyx')
-rw-r--r--iso/n1.lyx997
1 files changed, 997 insertions, 0 deletions
diff --git a/iso/n1.lyx b/iso/n1.lyx
new file mode 100644
index 0000000..e1c15d4
--- /dev/null
+++ b/iso/n1.lyx
@@ -0,0 +1,997 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Un
+\series bold
+sistema operativo
+\series default
+ es un intermediario entre el usuario y el hardware, un programa complejo
+ que se ejecuta cuando otro lo solicita o periódicamente para realizar ciertas
+ tareas.
+
+\end_layout
+
+\begin_layout Itemize
+Como
+\series bold
+máquina extendida
+\series default
+ o
+\series bold
+virtual
+\series default
+, presenta una interfaz sencilla de la máquina al programador ocultando
+ detalles de hardware de bajo nivel (interrupciones, relojes, control de
+ memoria, etc.).
+\end_layout
+
+\begin_layout Itemize
+Como
+\series bold
+controlador de recursos
+\series default
+, proporciona una asignación ordenada y controlada de los recursos de hardware
+ (procesadores, memoria, entrada y salida, etc.) entre los programas que
+ compiten por ellos.
+\end_layout
+
+\begin_layout Standard
+Destacamos Microsoft Windows, Apple MacOS X, Linux, y para dispositivos
+ móviles, iOS y Android.
+ Las características de un sistema operativo dependen del hardware en que
+ se ejecuta; por ejemplo, este en general no puede garantizar la protección
+ entre zonas de memoria de dos programas si el hardware no dispone de un
+ mecanismo para ello.
+ Por esto los sistemas operativos han evolucionado a la par con el hardware.
+\end_layout
+
+\begin_layout Section
+Historia
+\end_layout
+
+\begin_layout Subsection
+Primera generación (1945–55)
+\end_layout
+
+\begin_layout Standard
+Grandes máquinas experimentales que ocupaban habitaciones enteras, formadas
+ por miles de válvulas de vacío y cables conectados a mano, que consumían
+ una gran cantidad de energía y eran muy poco fiables.
+ Un solo grupo de personas diseñaba, construía, programaba, operaba y mantenía
+ cada máquina.
+ No existían lenguajes de programación ni sistemas operativos: la programación
+ era en lenguaje máquina, incluyendo el código de E/S dentro del propio
+ programa, y con frecuencia se usaban conexiones directamente para controlar
+ funciones básicas.
+\end_layout
+
+\begin_layout Standard
+La interacción con la máquina era directa: los programadores la reservaban
+ durante un tiempo, en el que introducían y ejecutaban el programa.
+ Si el trabajo terminaba en ese tiempo, había periodos en que la máquina
+ no se usaba (al ser máquinas muy caras había que aprovecharlas al máximo),
+ y si no daba tiempo a terminar, el programador tenía que volver a reservar
+ la máquina.
+\end_layout
+
+\begin_layout Subsection
+Segunda generación (1955-65)
+\end_layout
+
+\begin_layout Standard
+Aparecen desarrollos como los lectores de tarjetas, impresoras de líneas,
+ cintas magnéticas y, por el lado del software, ensambladores, cargadores
+ y enlazadores.
+ La introducción del transistor hizo que los ordenadores se volvieran fiables,
+ pudiendo venderse a clientes, y las bibliotecas de E/S hicieron que el
+ programador ya no tuviera que preocuparse de este aspecto.
+\end_layout
+
+\begin_layout Standard
+Si la interacción era directa, esta incluía colocar tarjetas perforadas,
+ preparar la impresora, hacer cambios de cinta (por ejemplo, colocar la
+ cinta con el compilador de FORTRAN para compilar un programa), etc.
+ Si el programador no tenía experiencia en esto se podían producir grandes
+ pérdidas de tiempo, por lo que se contrataba a un operador profesional
+ que controlaba la máquina de forma que los programadores entregaban su
+ trabajo y esperaban al resultado, perdiendo la interacción directa.
+ Otra medida fue planificar los trabajos para minimizar los cambios de cinta
+ (por ejemplo, agrupando todos los programas en FORTRAN para ser compilados
+ tras preparar la cinta con el compilador).
+\end_layout
+
+\begin_layout Standard
+Aun así, cuando se detenía un trabajo, el operador debía percatarse observando
+ la consola, determinar si se trataba de una terminación normal o anormal,
+ efectuar un volcado si era necesario, cargar el lector de tarjetas o la
+ cinta con el siguiente trabajo y volver a preparar el ordenador.
+ En este tiempo la CPU estaba inactiva, por lo que se desarrollaron sistemas
+ de
+\series bold
+procesamiento por lotes
+\series default
+, sistemas operativos rudimentarios, como el
+\series bold
+monitor residente
+\series default
+, formado por un intérprete de tarjetas de control, un cargador de programas
+ y controladores de dispositivos de E/S compartidos con los programas.
+ Este interpretaba instrucciones de tarjetas de control insertadas entre
+ tarjetas normales de datos, que indicaban el inicio y fin de un trabajo
+ y tipo de trabajo a realizar.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+ filename pegado1.png
+ scale 30
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Ejemplo de trabajo por lotes.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Los dispositivos de E/S eran (y son) lentos en comparación con la CPU, que
+ debía esperar la terminación de cada operación de E/S, por lo que se creó
+ la
+\series bold
+operación fuera de línea
+\series default
+, consistente en pasar de operaciones en línea (
+\emph on
+on-line
+\emph default
+) donde la CPU interactuaba directamente con la E/S lenta, a operaciones
+ fuera de línea (
+\emph on
+off-line
+\emph default
+), donde la CPU interactuaba con dispositivos más rápidos.
+ Para esto, primero los datos se leían de las tarjetas y se guardaban en
+ una cinta, a continuación los datos de la cinta se procesaban y se guardaban
+ los resultados en otra cinta, y finalmente los datos de la cinta de salida
+ se imprimen.
+\end_layout
+
+\begin_layout Standard
+Esto hizo surgir la
+\series bold
+independencia de dispositivo
+\series default
+, el escribir un programa para usar dispositivos de E/S lógicos y que fuera
+ el sistema operativo el que hiciera corresponder los dispositivos lógicos
+ con los físicos.
+ También aumentó el tiempo que el programador debía esperar para obtener
+ los resultados, pues las cintas se tenían que llenar, y también hizo necesarias
+ varias máquinas en paralelo para hacer las copias de tarjetas a cintas
+ y de cintas a la impresora.
+ Solución:
+\end_layout
+
+\begin_layout Itemize
+Hacer que los dispositivos de entrada escriban directamente en un
+\series bold
+\emph on
+buffer
+\series default
+\emph default
+ en memoria principal, mientras la CPU procesa los datos anteriores, de
+ forma que la entrada y la CPU trabajen en paralelo.
+ Lo mismo ocurre con la salida.
+\end_layout
+
+\begin_layout Itemize
+Hacer que la entrada y la salida se den a través de ficheros en un disco,
+ por el mecanismo de
+\series bold
+\emph on
+spooler
+\series default
+\emph default
+ (
+\emph on
+simultaneous peripheral operation on-line
+\emph default
+), de forma que durante el cómputo de un programa se imprime la salida de
+ programas anteriores, leída del disco, y se lee la entrada de programas
+ posteriores, que se imprime en el disco.
+ Para esto el monitor necesita hacer uso de
+\emph on
+buffers
+\emph default
+ e interrupciones.
+\end_layout
+
+\begin_layout Standard
+Sigue habiendo la limitación de que un único usuario no puede mantener a
+ la CPU y la E/S ocupados todo el tiempo.
+\end_layout
+
+\begin_layout Subsection
+Tercera generación (1965-80)
+\end_layout
+
+\begin_layout Standard
+Los ordenadores se vuelven más pequeños y fiables.
+ Se crea la
+\series bold
+multiprogramación
+\series default
+: cuando un trabajo no puede continuar su ejecución porque tiene que esperar
+ a la E/S, se pasa la CPU a otro trabajo listo para ejecutarse.
+ Es necesaria una
+\series bold
+planificación de trabajos
+\series default
+, así como evitar que estos trabajos se interfieran unos a otros en el uso
+ de los recursos (por ejemplo, escribiendo a la vez en la impresora).
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+tiempo compartido
+\series default
+ o
+\series bold
+multitarea
+\series default
+ es una variante de la multiprogramación consistente en hacer un cambio
+ rápido entre tareas de forma que cada usuario pueda interactuar con el
+ programa que está ejecutando como si todos se ejecutaran a la vez (
+\series bold
+pseudoparalelismo
+\series default
+), recuperándose la interacción directa.
+ Puede ocurrir que un programa no quiera liberar la CPU durante bastante
+ tiempo, por lo que es necesario un mecanismo para obligarle a dejar la
+ CPU.
+\end_layout
+
+\begin_layout Standard
+Surgen sistemas operativos como OS/360 para el IBM 360, MULTICS y su sucesor
+ UNIX, del que se derivan sistemas como Linux.
+\end_layout
+
+\begin_layout Subsection
+Cuarta generación (1980-95)
+\end_layout
+
+\begin_layout Standard
+Los circuitos LSI (
+\emph on
+Large Scale Integration
+\emph default
+) y VLSI (
+\emph on
+Very Large Scale Integration
+\emph default
+) permiten la aparición en 1975 del primer
+\series bold
+ordenador personal
+\series default
+, invento que popularizó los computadores y la informática.
+ También aparecen las
+\series bold
+estaciones de trabajo
+\series default
+, ordenadores personales muy potentes (para empresas) conectados entre sí
+ en red.
+\end_layout
+
+\begin_layout Standard
+Se populariza el sistema operativo UNIX para estaciones de trabajo y el
+ MS-DOS, monousuario y monotarea, para ordenadores personales, si bien en
+ estos comienzan a aparecer conceptos como la multitarea o la memoria virtual
+ propios de UNIX.
+ También aparecen las redes de ordenadores personales, dando lugar a sistemas
+ operativos en red y distribuidos; los ordenadores con varias CPUs que permiten
+ ejecutar varios procesos a la vez (
+\series bold
+paralelismo
+\series default
+), y los sistemas operativos de tiempo real.
+\end_layout
+
+\begin_layout Subsection
+Quinta generación (1995-)
+\end_layout
+
+\begin_layout Standard
+Explosión del uso de Internet y aparición de dispositivos móviles, especialmente
+ los llamados
+\series bold
+teléfonos inteligentes
+\series default
+ o
+\emph on
+smartphones
+\emph default
+, que combinan telefonía y computación, siendo el primero el Nokia N9000,
+ lanzado a mediados de los 90, si bien estos no se popularizaron hasta el
+ iPhone de Apple en 2007.
+\end_layout
+
+\begin_layout Standard
+De Microsoft aparecen Windows 2000 y sus sucesores Server 2003, 2008, etc.,
+ destinados a servidores, y Windows XP y sus sucesores Vista, 7, etc., destinados
+ a usuarios.
+ También alcanzan gran popularidad Linux, MacOS X, Android e iOS.
+\end_layout
+
+\begin_layout Section
+Tipos
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De propósito general
+\series default
+, que destacan por su flexibilidad y capacidad para adaptarse, mediante
+ configuraciones concretas, tanto al hardware sobre el que se ejecutan como
+ a los trabajos a procesar.
+ Destacan Unix (principalmente Linux), Microsoft Windows y Apple MacOS X.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Unix es el más usado en
+\series bold
+supercomputadores
+\series default
+, formados por un gran cantidad de procesadores, memoria, discos, etc.
+ y capaces de procesar enormes cantidades de datos en poco tiempo, así como
+ en los
+\series bold
+\emph on
+mainframes
+\series default
+\emph default
+, capaces de procesar a la vez muchos trabajos que requieren enormes cantidades
+ de E/S (sobre todo, disco y red), y que suelen servir para procesamiento
+ por lotes o
+\emph on
+batch
+\emph default
+ (sin interacción con usuarios), transacciones (bancarias, reservas de vuelo,
+ etc.) y trabajos multitarea (cuando los usuarios interactúan con el sistema).
+\end_layout
+
+\begin_layout Itemize
+Al pasar a sistemas menos potentes como
+\series bold
+servidores
+\series default
+, computadores que sirven a varios usuarios a la vez compartiendo recursos
+ hardware y software en red, podemos encontrar tanto Unix como MacOS X o
+ incluso Windows.
+ Esto también ocurre en los ordenadores personales, caracterizados por la
+ multitarea y estar diseñados para dar buen rendimiento a un único usuario,
+ y que hoy en día son
+\series bold
+multiprocesadores
+\series default
+, pues disponen de varios
+\series bold
+núcleos
+\series default
+ o
+\emph on
+cores
+\emph default
+ que actúan como CPUs separadas y comparten memoria principal.
+\end_layout
+
+\begin_layout Itemize
+En teléfonos inteligentes, tabletas y sistemas integrados, pequeños ordenadores
+ con menos recursos que uno normal pero con un consumo de energía mucho
+ menor, encontramos versiones de estos tres sistemas adaptados a estos dispositi
+vos y a la interacción por pantalla táctil.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+De red
+\series default
+: Permiten interactuar con otros ordenadores conectados a una misma red,
+ si bien cada máquina es independiente.
+ Actualmente esto es lo común, y de hecho los tres sistemas de propósito
+ general que hemos visto también son de red.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Distribuidos
+\series default
+: También se conectan a otros mediante red, pero el conjunto de ordenadores
+ en esta red es visto como un sistema tradicional, con lo que el usuario
+ no es consciente de dónde se ejecutan los programas o dónde se encuentran
+ los ficheros (
+\series bold
+transparencia de localización
+\series default
+).
+ Las ventajas son la compartición de recursos, aceleración de los cálculos
+ y tolerancia a fallos, pues si una máquina falla el resto puede seguir
+ haciendo todo el trabajo.
+ Destacan Amoeba, Plan 9 e Inferno, si bien todos han dejado de desarrollarse.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De tiempo real
+\series default
+: En los
+\series bold
+rigurosos
+\series default
+, usados por ejemplo en coches y plantas nucleares, una acción se debe realizar
+ necesariamente en cierto intervalo de tiempo o de lo contrario se podría
+ poner el sistema en peligro.
+ En los
+\series bold
+no rigurosos
+\series default
+ es aceptable no cumplir de vez en cuando un plazo, dentro de unos límites.
+ Destacan VxWorks y QNX.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Para tarjetas inteligentes
+\series default
+, debido a las grandes limitaciones de potencia y memoria que presentan.
+ Suelen disponer de una máquina virtual de Java (JVM) que ejecuta los
+\emph on
+applets
+\emph default
+ que se cargan en la tarjeta, pequeñas porciones de código que no se pueden
+ ejecutar por sí mismas sino que necesitan de un entorno proporcionado por
+ otro programa.
+\end_layout
+
+\begin_layout Section
+Programas y procesos
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+programa
+\series default
+ es la representación estática y almacenada de un conjunto de instrucciones
+ a ejecutar.
+ Cuando es cargado en memoria y se ejecuta, lo hace como un
+\series bold
+proceso
+\series default
+, la unidad de trabajo de un sistema, y de los cuales algunos pertenecen
+ al propio sistema operativo y el resto son procesos de usuario.
+ Un proceso es dinámico, requiriendo recursos como tiempo de CPU, memoria,
+ ficheros y dispositivos de E/S.
+ Varios procesos pueden ejecutar el mismo programa y un proceso (dependiendo
+ del sistema) puede ejecutar código de varios programas.
+\end_layout
+
+\begin_layout Standard
+En general los sistemas operativos se distribuyen junto con
+\series bold
+programas de sistema
+\series default
+, cuya misión es ofrecer un entorno más cómodo para el desarrollo y ejecución
+ de programas.
+ Tipos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De manipulación de ficheros
+\series default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De información de estado
+\series default
+, que solicitan información al sistema operativo, le dan formato y la imprimen.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De apoyo a lenguajes de programación
+\series default
+, como compiladores, ensambladores, intérpretes y depuradores.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De comunicaciones
+\series default
+, para crear conexiones virtuales entre procesos, usuarios o máquinas, permitien
+do el envío de mensajes, correos electrónicos o ficheros a usuarios de la
+ misma máquina u otra y la conexión a una máquina remota.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De aplicación
+\series default
+, para efectuar otras operaciones comunes.
+ Incluímos aquí ditores de texto, generadores de gráficos, sistemas de bases
+ de datos, hojas de cálculo, paquetes de análisis estadístico, etc.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Intérprete de órdenes
+\series default
+, encargado de interpretar y ejecutar órdenes dadas por el usuario.
+ Las órdenes pueden estar contenidas en el código del propio intérprete
+ o en programas independientes.
+\end_layout
+
+\begin_layout Standard
+Aunque no hay diferencia entre un programa de usuario y uno del sistema,
+ la mayoría de usuarios suelen ver el sistema operativo desde el punto de
+ vista de los programas del sistema.
+\end_layout
+
+\begin_layout Section
+Componentes y servicios
+\end_layout
+
+\begin_layout Standard
+La interfaz entre el sistema operativo y un proceso tiene lugar mediante
+
+\series bold
+llamadas al sistema
+\series default
+, con la siguiente estructura:
+\end_layout
+
+\begin_layout Enumerate
+El programa ejecuta la instrucción de la CPU para realizar la llamada al
+ sistema, cambiando la máquina a modo núcleo y pasando el control al sistema
+ operativo.
+\end_layout
+
+\begin_layout Enumerate
+Este lee el número de la llamada al sistema a realizar, y una vez validado,
+ llama al procedimiento correspondiente indicado en una tabla de apuntadores.
+\end_layout
+
+\begin_layout Enumerate
+La llamada termina y el control regresa al proceso de usuario, que continua
+ su ejecución por la instrucción inmediatamente posterior.
+\end_layout
+
+\begin_layout Standard
+El usuario informa al sistema operativo del número de la llamada a realizar
+ y los parámetros necesarios (habitualmente) mediante los registros, la
+ pila o una zona de memoria indicada en un registro.
+ Las bibliotecas de lenguajes de programación suelen contener procedimientos
+ que ocultan las llamadas al sistema, proporcionando una interfaz más sencilla.
+\end_layout
+
+\begin_layout Standard
+A continuación vemos los distintos componentes de un sistema operativo típico
+ junto a los servicios que ofrecen y las llamadas al sistema asociadas.
+
+\end_layout
+
+\begin_layout Subsection
+Administración de procesos
+\end_layout
+
+\begin_layout Standard
+El sistema operativo debe ser capaz de crear y eliminar procesos, controlar
+ el tiempo de CPU que se le da a cada uno y cargar programas en estos procesos,
+ además de proveer medios para que los procesos se comuniquen entre sí.
+\end_layout
+
+\begin_layout Standard
+Existen pues llamadas al sistema para crear y terminar procesos; finalizar
+ el proceso actual; obtener y establecer atributos de un proceso; cargar
+ un programa; esperar un tiempo; esperar un suceso; enviar una señal a otro
+ proceso; crear o eliminar una conexión; enviar o recibir mensajes, o transferir
+ información de estado.
+\end_layout
+
+\begin_layout Subsection
+Administración de memoria principal
+\end_layout
+
+\begin_layout Standard
+El esquema de administración de memoria depende sobre todo del hardware,
+ que el sistema operativo debe usar para controlar de qué procesos están
+ usando qué zonas de memoria, asignar y recuperar memoria según se requiera
+ y decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
+ Debe pues haber llamadas al sistema para solicitar y liberar memoria.
+\end_layout
+
+\begin_layout Subsection
+Administración de E/S
+\end_layout
+
+\begin_layout Standard
+En UNIX, esta se consigue mediante una interfaz uniforme con los manejadores
+ de dispositivo, un sistema de memoria caché y manejadores de hardware específic
+os para las particularidades de cada dispositivo.
+\end_layout
+
+\begin_layout Standard
+Existen pues llamadas al sistema para solicitar o liberar dispositivos;
+ leer y escribir en ellos; reposicionarnos; obtener y establecer atributos
+ de dispositivos, y unir o separar dispositivos lógicos, sean físicos y
+ conectados a la propia máquina o accedidos remotamente mediante red.
+\end_layout
+
+\begin_layout Subsection
+Administración de ficheros
+\end_layout
+
+\begin_layout Standard
+Por comodidad, el sistema operativo organiza la memoria de los dispositivos
+ de almacenamiento secundario en
+\series bold
+ficheros
+\series default
+, unidades de almacenamiento lógico, que a su vez se organizan en directorios.
+\end_layout
+
+\begin_layout Standard
+Existen pues llamadas al sistema para crear y eliminar ficheros y directorios;
+ abrir y cerrar ficheros; leer, escribir y reposicionarnos en ficheros abiertos;
+ obtener y establecer atributos de ficheros y directorios, y manipular el
+ contenido de estos directorios.
+\end_layout
+
+\begin_layout Subsection
+Sistema de protección
+\end_layout
+
+\begin_layout Standard
+Los procesos de un sistema operativo deben ser protegidos unos de otros,
+ y el sistema operativo debe ser protegido de estos.
+ Para ello existen tres mecanismos hardware:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Modos de ejecución
+\series default
+ del procesador: el
+\series bold
+modo núcleo
+\series default
+ o
+\series bold
+supervisor
+\series default
+, en el que se ejecuta el sistema operativo por ser así capaz de ejecutar
+ cualquier instrucción, y el
+\series bold
+modo usuario
+\series default
+, en el que se ejecutan los programas de usuario y que no puede ejecutar
+ ciertas instrucciones como de E/S, configuración de memoria, etc.
+ Los programas de usuario, para realizar E/S, deben usar una instrucción
+ especial de
+\series bold
+llamada al sistema
+\series default
+ (
+\emph on
+syscall
+\emph default
+), tratada como una interrupción que, como todas, es tratada por el sistema
+ operativo en modo núcleo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Protección de memoria
+\series default
+: Impedir que un programa de usuario acceda a zonas de memoria de otros
+ programas o del sistema operativo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Interrupciones periódicas
+\series default
+ mediante un reloj: Permiten al sistema operativo hacerse con el control
+ de la máquina cada cierto tiempo para evitar que un proceso monopolice
+ la CPU.
+\end_layout
+
+\begin_layout Standard
+Esta protección solo funciona si los tres mecanismos funcionan y se usan
+ de forma conjunta.
+ El sistema operativo es el encargado de hacer funcionar estos mecanismos
+ y usarlos para asegurarse de que los recursos puedan ser usados únicamente
+ por los procesos que han recibido la correspondiente autorización.
+ Además, el sistema operativo debe ser capaz de lidiar con los errores que
+ se puedan producir a nivel de hardware o dentro de un programa de usuario,
+ y emprender la acción adecuada en cada caso.
+\end_layout
+
+\begin_layout Subsection
+Mantenimiento de información
+\end_layout
+
+\begin_layout Standard
+Si bien esto generalmente no corresponde a una única parte del sistema operativo
+, puede ser deseable llevar un control del uso de recursos del ordenador
+ por parte de los usuarios, sea con fines contables para facturar a los
+ usuarios o sencillamente para recopilar estadísticas de uso del sistema
+ que son útiles para su administración.
+ Además, tanto los procesos como los dispositivos o ficheros pueden poseer
+ información adicional que se debe leer y modificar aparte, y el reloj es
+ tratado de forma especial al ser usado en el sistema de protección.
+\end_layout
+
+\begin_layout Standard
+Existen pues llamadas al sistema para obtener o establecer la fecha y la
+ hora, datos del sistema y atributos de proceso, fichero o dispositivo.
+\end_layout
+
+\begin_layout Section
+Estructura
+\end_layout
+
+\begin_layout Subsection
+Sistemas monolíticos
+\end_layout
+
+\begin_layout Standard
+Están formados por un conjunto de procedimientos que se llaman unos a otros.
+ Ofrecen una interfaz muy clara, pero no tienen una estructura formalmente
+ definida y cada procedimiento es visible a los demás.
+ Están formados por el
+\series bold
+núcleo
+\series default
+ (el sistema operativo como tal, junto a todos los controladores de dispositivo
+ o
+\emph on
+drivers
+\emph default
+) y los programas de sistema.
+ Destacan Unix (incluyendo Linux) y Windows.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename pegado2.png
+ width 100text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Esquema de un sistema monolítico.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Sistemas por capas
+\end_layout
+
+\begin_layout Standard
+El sistema operativo se divide en
+\series bold
+capas
+\series default
+ o
+\series bold
+niveles
+\series default
+, siendo la más baja (capa 0) el hardware y la más alta la interfaz con
+ el usuario, de forma que cada capa sólo usa funciones y servicios de capas
+ inferiores.
+ Esto simplifica la depuración y verificación, pues usa vez se depura una
+ capa se asciende a la siguiente, y proporciona ocultación de información,
+ haciendo posibles las modificaciones en una capa en cualquier momento siempre
+ que no se modifique la interfaz al resto de capas.
+ Sin embargo, da problemas de dependencias entre capas, pues a veces es
+ difícil saber dónde colocar una función, por lo que se opta por tener menos
+ capas con más funcionalidad.
+\end_layout
+
+\begin_layout Standard
+Destacan THE (1968) que se definió en 6 capas (hardware, planificación de
+ CPU, administración de memoria, consola del operador, administración de
+ E/S y programas de usuario) y VENUS, donde las capas inferiores se implementaro
+n directamente en hardware.
+\end_layout
+
+\begin_layout Subsection
+Sistemas cliente-servidor
+\end_layout
+
+\begin_layout Standard
+Están formados por un
+\series bold
+micronúcleo
+\series default
+ o
+\emph on
+microkernel
+\emph default
+ y una serie de procesos de usuario que implementan las funciones típicas
+ de un sistema operativo.
+ Así, los procesos
+\series bold
+clientes
+\series default
+ solicitan servicios de los procesos
+\series bold
+servidores
+\series default
+, que realizan los trabajos solicitados por los clientes y a su vez pueden
+ ser clientes de otros procesos, de modo que el micronúcleo se limita a
+ controlar las comunicaciones cliente-servidor.
+ Para la E/S, bien se incluye el servidor correspondiente en el modo núcleo
+ o existen mensajes especiales dirigidos al núcleo para que los procese
+ él mismo.
+\end_layout
+
+\begin_layout Standard
+Estos sistemas tienen la ventaja de que un fallo en un servidor concreto
+ no afecta a todo el sistema, y que pueden adaptarse como sistemas distribuidos
+ dado que no importa si los procesos que se comunican están en la misma
+ máquina o no.
+ Destacan QNX, Minix 3 y MacOS X, cuyo núcleo está basado en la versión
+ 2.5 del micronúcleo Mach desarrollado en los 80 en la Carnegie-Mellon University.
+\end_layout
+
+\end_body
+\end_document