Professional Documents
Culture Documents
Un Sistema operativo (SO) es un programa informático que actúa de interfaz entre los dispositivos de
hardware y el usuario. Es responsable de gestionar, coordinar las actividades y llevar a cabo el
intercambio de recursos de un computador. Actúa como estación para las aplicaciones que se ejecutan
en la máquina. Uno de los propósitos de un sistema operativo como estación, consiste en gestionar los
recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de
aplicaciones de tener que tratar con éstos detalles. Nótese que es un error de precisión y común,
considerar al conjunto de herramientas que sirven para operar al sistema operativo, (gestores de
ventanas, exploradores, etc) es decir, al programa que actúa como estación, como al sistema operativo
en sí.
Cuando se aplica voltaje al procesador de un dispositivo electrónico, éste ejecuta un reducido código
en lenguaje ensamblador localizado en una dirección concreta en la ROM (dirección de reset) y
conocido como reset code, que a su vez ejecuta una rutina con la que se inicializa el hardware que
acompaña al procesador. También en esta fase suele inicializarse el controlador de las interrupciones.
Finalizada esta fase se ejecuta el código de arranque (startup code), también código en lenguaje
ensamblador, cuya tarea más importante es ejecutar el programa principal (main()) del software de la
aplicación.[1]
Un sistema operativo se puede encontrar en la mayoría de los aparatos electrónicos que utilicen
microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta
cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios, computadoras,
radios, etc).
Contenido
• 1 Funciones básicas
• 2 Perspectiva histórica
○ 2.1 Problemas de explotación y soluciones iniciales
○ 2.2 Monitores residentes
○ 2.3 Sistemas con almacenamiento temporal de E/S
○ 2.4 Spoolers
○ 2.5 Sistemas Operativos Multiprogramados
• 3 Llamadas al Sistema Operativo
○ 3.1 Modos de ejecución en un CPU
○ 3.2 Llamadas al Sistema
○ 3.3 Bibliotecas de interfaz de llamadas al sistema
• 4 Interrupciones y excepciones
○ 4.1 Tratamiento de las interrupciones
○ 4.2 Importancia de las interrupciones
○ 4.3 Excepciones
4.3.1 Clases de excepciones
4.3.2 Importancia de las excepciones
• 5 Componentes de un sistema operativo
○ 5.1 Gestión de procesos
○ 5.2 Gestión de la memoria principal
○ 5.3 Gestión del almacenamiento secundario
○ 5.4 El sistema de E/S
○ 5.5 Sistema de archivos
○ 5.6 Sistemas de protección
○ 5.7 Sistema de comunicaciones
○ 5.8 Programas de sistema
• 6 Gestor de recursos
• 7 Características
○ 7.1 Administración de tareas
○ 7.2 Administración de usuarios
○ 7.3 Manejo de recursos
• 8 Referencias
• 9 Véase también
• 10 Enlaces externos
Funciones básica
Los sistemas operativos, en su condición de capa software que posibilitan y simplifica el manejo de la
computadora, desempeñan una serie de funciones básicas esenciales para la gestión del equipo. Entre
las más destacables, cada una ejercida por un componente interno (módulo en núcleos monolíticos y
servidor en micronúcleos), podemos reseñar las siguientes:
• Proporcionar más comodidad en el uso de un computador.
• Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos
(programas)
• Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
• Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir
con los servicios que ya se prestaban (evolutividad).
Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema informático:
suministro de interfaz al usuario, administración de recursos, administración de archivos,
administración de tareas y servicio de soporte y utilidades.
• Interfaces del usuario: Es la parte del sistema operativo que permite comunicarse con él, de
tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen
tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las
interfaces gráficas de usuario.
• Administración de recursos: Sirven para administrar los recursos de hardware y de redes de
un sistema informático, como la CPU, memoria, dispositivos de almacenamiento secundario y
periféricos de entrada y de salida.
• Administración de archivos: Un sistema de información contiene programas de
administración de archivos que controlan la creación, borrado y acceso de archivos de datos y
de programas. También implica mantener el registro de la ubicación física de los archivos en
los discos magnéticos y en otros dispositivos de almacenamiento secundarios.
• Administración de tareas: Los programas de administración de tareas de un sistema operativo
administran la realización de las tareas informáticas de los usuarios finales. Los programas
controlan qué áreas tienen acceso al CPU y por cuánto tiempo. Las funciones de administración
de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en particular,
e interrumpir al CPU en cualquier momento para sustituirla con una tarea de mayor prioridad.
• Servicios de soporte: Los servicios de soporte de cada sistema operativo dependerán de la
implementación particular de éste con la que estemos trabajando. Entre las más conocidas se
pueden destacar las implementaciones de Unix, desarrolladas por diferentes empresas de
software, los sistemas operativos de Apple Inc., como Mac OS X para las computadoras de
Apple Inc., los sistemas operativos de Microsoft, y las implementaciones de software libre,
como GNU/Linux o BSD producidas por empresas, universidades, administraciones públicas,
organizaciones sin fines de lucro y/o comunidades de desarrollo. Estos servicios de soporte
suelen consistir en:
• Actualización de versiones.
• Mejoras de seguridad.
• Inclusión de alguna nueva utilidad (un nuevo entorno gráfico, un asistente para
administrar alguna determinada función, ...).
• Controladores para manejar nuevos periféricos (este servicio debe coordinarse a veces
con el fabricante del hardware).
• Corrección de errores de software.
• Otros.
No todas las utilidades de administración o servicios forman parte del sistema operativo, además de
éste, hay otros tipos importantes de software de administración de sistemas, como los sistemas de
administración de base de datos o los programas de administración de redes. El soporte de estos
productos deberá proporcionarlo el fabricante correspondiente (que no tiene porque ser el mismo que
el del sistema operativo).
Perspectiva histórica
Los primeros sistemas (1945 - 1950) eran grandes máquinas operadas desde la consola maestra por los
programadores. Durante la década siguiente (1950 - 1960) se llevaron a cabo avances en el hardware:
lectoras de tarjetas, impresoras, cintas magnéticas, etc. Esto a su vez provocó un avance en el software:
compiladores, ensambladores, cargadores, manejadores de dispositivos, etc.
Problemas de explotación y soluciones iníciales
El problema principal de los primeros sistemas era la baja utilización de los mismos, la primera
solución fue poner un operador profesional que manejaba el sistema, con lo que se eliminaron las hojas
de reserva, se ahorró tiempo y se aumentó la velocidad.
Para ello, los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como
procesamiento por lotes (batch) sin automatizar.
Monitores residentes
Fichas en lenguaje de procesamiento por lotes, con programa y datos, para ejecución secuencial
Según fue avanzando la complejidad de los programas, fue necesario implementar soluciones que
automatizaran la organización de tareas sin necesidad de un operador. Debido a ello se crearon los
monitores residentes: programas que residían en memoria y que gestionaban la ejecución de una cola
de trabajos.
Un monitor residente estaba compuesto por un cargador, un Intérprete de comandos y un Controlador
(drivers) para el manejo de entrada/salida.
Sistemas con almacenamiento temporal de E/S
Se avanza en el hardware, creando el soporte de interrupciones. Luego se lleva a cabo un intento de
solución más avanzado: solapar la E/S de un trabajo con sus propios cálculos. Por ello se crea el
sistema de buffers con el siguiente funcionamiento:
• Un programa escribe su salida en un área de memoria (buffer 1).
• El monitor residente inicia la salida desde el buffer y el programa de aplicación calcula
depositando la salida en el buffer 2.
• La salida desde el buffer 1 termina y el nuevo cálculo también.
• Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida al buffer 1.
• El proceso se puede repetir de nuevo.
Los problemas surgen si hay muchas más operaciones de cálculo que de E/S (limitado por la CPU) o si
por el contrario hay muchas más operaciones de E/S que cálculo (limitado por la E/S).
Spoilers
Hace aparición el disco magnético con lo que surgen nuevas soluciones a los problemas de
rendimiento. Se eliminan las cintas magnéticas para el volcado previo de los datos de dispositivos
lentos y se sustituyen por discos (un disco puede simular varias cintas). Debido al solapamiento del
cálculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas, lo que
se conoce como Spool (Simultaneous Peripherial Operation On-Line).
Sistemas Operativos Multiprogramados
Surge un nuevo avance en el hardware: el hardware con protección de memoria. Lo que ofrece nuevas
soluciones a los problemas de rendimiento:
• Se solapa el cálculo de unos trabajos con la entrada/salida de otros trabajos.
• Se pueden mantener en memoria varios programas.
• Se asigna el uso de la CPU a los diferentes programas en memoria.
Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo que éste debe
abordar nuevas tareas, naciendo lo que se denomina como Sistemas Operativos multiprogramados, los
cuales cumplen con las siguientes funciones:
• Administrar la memoria.
• Gestionar el uso de la CPU (planificación).
• Administrar el uso de los dispositivos de E/S.
Cuando desempeña esas tareas, el monitor residente se transforma en un sistema operativo
multiprogramado.
Llamadas al Sistema Operativo