Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Definición y Objetivos
o Programas de aplicación
o Definición de Sistema Operativo
Definiciones de distintos autores.
Posición del Sistema Operativo
Perspectivas de los Sistemas Operativos.
o Objetivos de un Sistema Operativo
1
Sesión 6. Implementación de un Sistema Operativo
o Implementación de un Sistema Operativo
Organizaciones Estructurales de los SSOO
Objetivos de Diseño
Lenguajes de Implementación y Portabilidad
Normalización de Interfaces
o Clases de Sistemas Operativos
Algunos tipos de SSOO.
El Sistema Operativo de referencia para este curso.
2
Sesión 1: Definición y Objetivos.
1. Programas de aplicación.
El hardware (CPU, memoria, dispositivos de E/S), proporciona los recursos básicos de computo
al sistema. Los programas de aplicación, como son los procesadores de texto, las hojas de
cálculo, los compiladores o los exploradores web, definen las formas en que estos recursos se
emplean para resolver los problemas informáticos de los usuarios. El sistema operativo controla
y coordina el uso del hardware entre los diversos programas de aplicación por parte de los
distintos usuarios.
3
petición de la aplicación. Cuando el S.O realiza la operación, informa a la aplicación y le entrega
los resultados.
•El Sistema como Administrador de Recursos. Un sistema informático tiene muchos recursos
que pueden ser necesarios para solucionar un problema: tiempo de CPU, espacio de memoria,
espacio de almacenamiento de archivos, dispositivos de E/S, etc. El sistema operativo actúa
como administrador de estos recursos y debe decidir como asignarlos a programas y usuarios
específicos, de modo que la computadora pueda operar de manera eficiente.
-Lograr que los recursos del sistema de cómputo se aprovechen con eficiencia.
-Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin inferir con
los servicios que ya se presentaban (evolutividad).
4
Sesión 2: Perspectiva histórica.
1. Perspectiva Histórica
-Años 1945-1950. Las primeras computadoras eran máquinas físicamente enormes que
se ejecutaban desde una consola. El programador, que también era el operador del sistema,
escribía un programa y luego lo gestionaba directamente desde la consola.
-El cargador para cargar programas del sistema y programas de aplicación en la memoria a
ciertos intervalos.
Sin embargo, la CPU continuaba estando inactiva muy a menudo. El problema era la lenta
velocidad de los dispositivos de E/S mecánicos.
Una solución provisional al problema de E/S era sustituir los dispositivos lentos (lectores de
tarjetas e impresoras) por otros más rápidos (cintas magnéticas), sin tener que cambiar los
programas de aplicación. Esta solución hizo que se revisará el monitor residente para soportar
la independencia de los dispositivos.
5
1.2 Sistemas con Almacenamiento Temporal de E/S
Los avances en el hardware crearon el soporte de interrupción y posteriormente se llevó a cabo
un intento de solución más avanzado: solapar la E/S de un trabajo con sus propios cálculos,
creando así un sistema de buffer con el siguiente funcionamiento:
-El monitor residente inicia la salida desde el buffer y el programa de aplicación calcula
depositando la salida en el buffer 2.
-Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida al buffer 1.
Spoolers. Con la aparición del disco magnético aparecen 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).
Con los cambios anteriores el monitor residente debe abordar nuevas tareas, naciendo los
Sistemas Operativos multiprogramados con las siguientes funciones:
-Administrar la memoria.
6
7
Sesión 3: Interrupciones y Excepciones
-Porque se haya producido una situación de error al intentar ejecutar una instrucción
del programa. (Excepción)
Una interrupción es una señal eléctrica que envía un dispositivo de E/S a la CPU para indicar que
necesita atención. Por ejemplo, para indicar que la operación de la se estaba ocupando ya ha
terminado.
Una excepción es una situación de error, detectada por la CPU mientras ejecutaba una
instrucción, que requiere tratamiento por parte del S.O.
8
decodifica la instrucción para saber si es una instrucción de salto, aritmética, etc., y se ejecuta.
La interrupción siempre se produce antes o después del proceso de ejecución, pero no durante.
Una vez que se ha producido la interrupción, se comprueba si esa misma está o no permitida
por el sistema. Si la interrupción está permitida, se comprueba si hay alguna pendiente.
-El mecanismo de tratamiento de las interrupciones permite al S.O utilizar la CPU en servicio de
una aplicación mientras otra permanece a la espera de que concluya una operación en un
dispositivo de E/S.
-El hardware se ocupa de avisar al S.O cuando el dispositivo de E/S ha terminado y el S.O puede
intervenir entonces para, si es conveniente, hacer que el programa que estaba esperando por el
dispositivo continúe ejecutando
-En ciertos intervalos de tiempo puede convenir no aceptar señales de interrupción. Por ello las
interrupciones pueden inhibirse por programa, aunque esto no deben poder hacerlo las
aplicaciones
Clases de Excepciones.
Las instrucciones de un programa pueden estar mal construidas por diversas razones:
-Se intenta realizar alguna operación no definida, como dividir por cero.
-La dirección de algún operando puede ser incorrecta o se intenta violar alguno de sus permisos
de uso.
-El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de
ejecución de la CPU y los mecanismos de protección de la memoria, que las aplicaciones hagan
operaciones que no les están permitidas
9
-En cualquier caso, el tratamiento específico de una excepción lo realiza el S.O.
-Como en el caso de las interrupciones, el hardware se limita a dejar el control al S.O. y éste es
el que trata la situación como convenga.
-Es bastante frecuente que el tratamiento de una excepción no retorne al programa que se
estaba ejecutando cuando se produjo la excepción, sino que el S.O. aborte la ejecución de ese
programa.
10
Sesión 4: Llamadas al Sistema Operativo
1. Llamadas al Sistema Operativo
Son llamadas que ejecutan los programas de aplicación para pedir algún servicio al Sistema
Operativo. Cada SSOO implementa un conjunto propio de llamadas al sistema. Este conjunto de
llamadas proporcionan una interfaz con la que poder invocar los servicios que el sistema
operativo ofrece.
Cuando un programa de aplicación diseñado para trabajar sobre un S.O concreto se intenta
ejecutar sobre otro SO distinto, en general el programa no funcionará, a no ser que el nuevo
sistema operativo tenga la misma interfaz. Para ello, las llamadas correspondientes tienen que
tener el mismo formato, y cada llamada tiene que dar los mismos resultados que la
correspondiente llamada del SO anterior.
Paso 1.
Paso 2.
11
Paso 3.
Paso 4.
Paso 5.
12
13
Sesión 5: Componentes de un Sistema
Operativo
1. Componentes de un Sistema Operativo.
1.1 Gestión de Procesos.
Un proceso es un programa en ejecución, aunque como veremos en el Tema 3, el concepto de
proceso es mucho más general.
Un proceso necesita para llevar a cabo su tarea ciertos recursos, entre los que se incluyen tiempo
de CPU, memoria, archivos y dispositivos de E/S. Estos recursos se pueden proporcionar al
proceso en el momento de crearlo o se le asignan mientras se está ejecutando.
-Sincronización de procesos.
La memoria principal es una matriz de palabras o bytes cada uno de los cuales tiene su propia
dirección. La memoria principal es un repositorio de datos rápidamente accesibles, compartida
por la CPU y los dispositivos de E/S Una de las características de esta memoria, es que es un
dispositivo de almacenamiento volátil, es decir, pierde su contenido cuando no recibe señales
eléctricas.
14
1.2.2 Gestión de Almacenamiento Secundario.
Dado que la memoria principal es demasiado pequeña para acomodar todos los datos y
programas, y puesto, que los datos que guarda se pierden al desconectar la alimentación, el
sistema informático debe proporcionar un almacenamiento secundario como respaldo de la
memoria principal.
La mayoría de los sistemas informáticos modernos usan discos como principal medio de
almacenamiento, tanto para programas como para datos. Así, la mayor parte de los programas,
incluyendo compiladores, ensambladores o procesadores de texto, se almacenan en un disco
hasta que se cargan en memoria, y luego usan el disco como origen y destino de su
procesamiento.
15
-Soporte de funciones primitivas para manipular archivos y directorios.
16
2. Programas del Sistema.
Son aplicaciones de utilidad que se suministran con el sistema operativo pero no forman parte
de él. Estas aplicaciones ofrecen un entorno útil para el desarrollo y ejecución de programas.
Realizan diferentes tareas como:
-Comunicaciones,
17
Sesión 6: Implementación de un Sistema
Operativo
1. Implementación de un Sistema Operativo.
La ingeniería de un sistema tan grande y complejo como es un sistema operativo moderno debe
hacerse cuidadosamente para que el sistema funcione apropiadamente y pueda modificarse con
facilidad.
18
•Sistemas de Máquina Virtual
El nivel más bajo del SO se ocupa de la
multiplicación de los recursos. A las
aplicaciones se les proporciona el
interfaz de un SO monousuario. Cada
máquina virtual ejecuta una copia del
hardware desnudo de soporte.
Desde el punto de vista de los usuarios, desean ciertas propiedades obvias en un sistema: el
sistema debe ser cómodo de utilizar, fácil de aprender y de usar, fiable, seguro y rápido. Un
conjunto de requisitos similar puede ser el definido por aquellas personas que tienen que
diseñar, crear y mantener el sistema. Así, desde la perspectiva del sistema, debería ser fácil de
diseñar, implementar, y mantener; debería ser flexible, fiable, libre de errores y eficiente.
-Mecanismos y políticas.
Dos conceptos relacionados con los requisitos de un sistema operativo son los mecanismos y
políticas. Los mecanismos determinan cómo hacer algo, mientras que las políticas determinan
qué hacer. Por ejemplo, cuando es necesario decidir si un recurso se asigna o no, se debe tomar
una decisión política. Cuando la pregunta es cómo hay que asignar un proceso, es un mecanismo
lo que hay que determinar. Es decir, el sistema operativo ofrece unos mecanismos y el
administrador del sistema o el usuario definen las políticas.
Las ventajas de usar un lenguaje de alto nivel son las mismas que las que se obtiene cuando el
lenguaje se usa para programar aplicaciones: el código puede escribirse más rápido, es más
compacto y más fácil de entender y depurar. Además, un sistema operativo es más fácil de
transportar a otro tipo de hardware si está escrito en un lenguaje de alto nivel.
Sin embargo, las partes del sistema operativo que manipulan directamente el hardware
continúan escribiéndose en lenguaje ensamblador.
19
1.4 Normalización de Interfaces.
La portabilidad de las aplicaciones necesita que el interfaz del Sistema Operativo esté
normalizado. La norma debería además describirse en algún lenguaje de alto nivel que índice el
modo de llamar a las funciones de la Biblioteca de Llamadas al S.O.
Cuando las normas anteriores no son propiedad de ninguna compañía es más probable que los
cambios sean menores y sean pactados entre muchas entidades.
La norma POSIX describe un interfaz del tipo citado y es la que se utiliza en los SSOO llamados
abiertos.
2. Clases de SSOO.
2.1 Algunos tipos de SSOO
•Sistemas Localizados. Son aquellos que proporcionan todos los servicios ejecutándose en
una misma máquina. Por ejemplo, el Sistema Operativo que utilizamos.
•Sistemas de Red. Son sistemas que permiten proporcionar servicios a aplicaciones remotas
(que se ejecutan en otras máquinas). Las aplicaciones que se ejecutan sobre ellos pueden pedir
servicios no locales (proporcionados por otros SSOO en otras máquinas) como archivos remotos
o dispositivos de E/S remotos.
•Sistemas Operativos Distribuidos. Son SSOO que no residen físicamente sobre una
máquina sino que se extienden sobre varias, que forman así un verdadero sistema
multicomputador. Consiguen que las aplicaciones que ejecutan sobre ellos puedan ser
distribuidas sin que el programador tenga que ocuparse de dónde reside cada parte.
•Sistemas Operativos Multiprocesadores. Son SSOO que trabajan sobre máquinas que
disponen de varios procesadores que acceden a una memoria única y usan un mismo reloj.
Consiguen que las aplicaciones que ejecutan sobre ellos puedan compartir el uso de los
diferentes procesadores y la memoria común.
20