Documente Academic
Documente Profesional
Documente Cultură
1. INTRODUCCIÓN
Hay que distinguir entre dos tipos de programas:
a) Los programas de sistema
b) Los programas de aplicación
Los programas de sistema se encargan de controlar las operaciones propias del computador.
El más importante es el sistema operativo, cuyo objetivo es que el computador se pueda utilizar
de una manera eficiente y cómoda, dando la visión de una máquina virtual.
Los programas de aplicación son los que resuelven problemas específicos a los usuarios.
El usuario en general desea una abstracción sencilla y fácil de entender, ocultando toda la
problemática de controlar el hardware. El SO tiene que proporcionar servicios para las
funciones:
a) Creación de programas: Existen otros programas del sistema que no son parte del SO,
pero que son accesibles a través de él.
b) Ejecución de programas: Para poder ejecutar un programa se tiene que realizar una serie
de funciones previas (cargar el código y datos en memoria principal, inicializar los
dispositivos de E/S y preparar los recursos necesarios).
c) Operaciones de E/S: Cada periférico tiene sus peculiaridades y un controlador específico
con su conjunto de instrucciones. El SO es el encargado de hacer todas esas funciones
que permiten la lectura, escritura y comunicación con los periféricos.
d) Manipulación y control del sistema de archivos: El SO debe conocer la propia
estructura de almacenamiento y proporcionar los mecanismos adecuados para su control y
protección.
e) Detección de errores: Hay gran cantidad de errores provenientes de distintos sitios. El SO
debe ser capaz de detectarlos y solucionarlos o por lo menos hacer que tengan el menor
impacto sobre el resto de las aplicaciones.
f) Control del acceso al sistema: En sistemas de acceso compartido o públicos, el SO debe
controlar el acceso al mismo, vigilando quién tiene acceso y a qué recursos. Aspecto que
cada vez está teniendo mayor interés.
g) Elaboración de informes estadísticos: Para conocer el grado de la utilización de los
recursos y de los distintos parámetros del sistema. Así se dispone de información que
permite saber con antelación las necesidades futuras y configurar al sistema para un mejor
rendimiento.
Interfaz entre el SO y los programas y los usuarios. Se pueden hacer de varias formas. Se
pueden agrupar en cinco categorías:
1) Control de procesos: crear proceso, cargar, ejecutar, abortar…
2) Manipulación de archivos: crear archivo, abrir, escribir, leer, cerrar…
3) Manipulación de periféricos: solicitar periférico, escribir, establecer atributos…
4) Mantenimiento de la información: establecer hora-fecha, obtener datos del sistema…
5) Comunicaciones: crear conexión, enviar mensajes, transferir información del estado…
La política de planificación y de asignación de recursos debe ser justa y eficiente. Todos los
procesos que compiten por la utilización de un determinado recurso, deben disponer de él de
una forma equitativa. El SO debe intentar hacer la planificación y la asignación considerando el
total de los requerimientos, estas decisiones se hacen dinámicamente.
Una de las cuestiones que más interés ha despertado últimamente, con el auge de los
sistemas de tiempo compartido y con las redes de computadores.
Introducción |4
Una de las primeras estructuras que se consideraron fue la de hacer sistemas monolíticos,
como MS-DOS. En una estructura de este tipo, el SO se puede construir compilando por
separado los diferentes procedimientos que los constituyen y enlazándolos después en un
único archivo. La 1ª versión de Unix poseía una estructura de este tipo con dos partes
separadas: el núcleo y los programas del sistema.
Una vez diseñados, hay que implementarlo. Hay que elegir el lenguaje a utilizar. En la
actualidad es cada vez más normal usar un lenguaje de alto nivel, aunque ciertas partes, muy
dependientes del hardware, se escriban en ensamblador.
Introducción |5
Ventajas:
1) El código se puede escribir más rápidamente.
2) Facilidad de comprender y depurar el código.
3) Transportabilidad del SO a otras plataformas.
Inconvenientes:
1) Los derivados de un código compilado (menor velocidad y mayores requisitos de
almacenamiento).