You are on page 1of 5

Introducción |1

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.

1.1 ¿Qué es un sistema operativo?


Sus objetivos básicos son:
1) Comodidad para los usuarios: hace que los usuarios vean una máquina virtual o
extendida.
2) Eficiencia: gestiona los recursos del sistema de forma más eficaz.

1.1.1 Los sistemas operativos como máquinas virtuales

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.

1.1.2 El sistema operativo como gestor de recursos

Un SO es un conjunto de políticas para gestionar un conjuntos de recursos. Su función es


proporcionar a los programas que compiten por ellos una asignación ordenada y controlada de:
1) El procesador
2) La memoria
3) El sistema de archivos
4) Los dispositivos de E/S
Funciona de la misma forma que otro programa, con la peculiaridad de que con cierta
frecuencia pierde el control del procesador y debe esperar a disponer de él.
Introducción |2

1.2 Historia de los Sistemas Operativos


1) Generación cero: Años 40. Ausencia de sistemas operativos en los computadores.
Acceso completo al lenguaje máquina y todas las instrucciones se codificaban
manualmente.
2) Primera generación: Años 50. 1er SO por los laboratorios de investigación de General
Motors, y desarrollado para su computador IBM 701. Permitía en la máquina la secuencia
automática de los trabajos de los usuarios. Organización en lotes. Monoproceso.
3) Segunda generación: 1ª parte de los 60. Introducción de la multiprogramación (debido a
la diferencia de velocidades entre los dispositivos E/S y el procesador) y el
multiprocesamiento. Se utilizaban varios procesadores en un único computador para lograr
una mayor potencia de cálculo. Aparecen los primeros sistemas en tiempo real dedicados
al control de procesos industriales y monitoreo de miles de puntos con fines militares. SO
significativos: Master Control Program (MCP) de Burroughs y SABRE de IBM. MCP escrito
en lenguaje de alto nivel y poseía muchas de las características que proporcionan los
sistemas actuales: multiprogramación, multiprocesamiento, memoria virtual y capacidad de
depurar el lenguaje fuente. SABRE era un SO de tiempo compartido, con miles de
terminales distribuidos por toda la geografía norteamericana, desde los cuales se podía
interactuar directamente con el sistema. El 1er sistema de tiempo compartido con propósito
general fue el Compatible Time-Sharing System (CTSS). Sus características: Empleo de
numerosos terminales conectados al computador que se podían usar al mismo tiempo,
cada terminal parecía tener disponible toda la potencia y software del computador, el
tiempo necesario para hacer tareas no muy grandes era lo suficientemente pequeño como
para hacer pensar a los usuarios que tenían la máquina para su servicio, y disposición de
varios compiladores, utilidades para el manejo de archivos y aplicaciones específicas.
4) Tercera generación: 1964 hasta mediados de los 70. Comienza con la introducción de la
familia de computadores IBM/360. SO era el OS/360. Disponía de la mayor cantidad de
programas de utilidad para facilitar el uso del computador que se había suministrado hasta
la fecha. Permitía avanzar en serie sin que fuera necesario cambiar de SO. Desarrollo de
SO grandes y costosos que pretendían incorporar todas las posibilidades.
5) Cuarta generación: Estado actual del campo. La mayoría de SO de los computadores
grandes son descendientes de los de la 3ª generación. Multics de Honeywell, VMS y
VM/370 de IBM y Scope de Control Data. Disponían de multiprogramación, tiempo
compartido, memoria virtual, procesos secuenciales que cooperan por medio de
semáforos, sistemas de archivos jerárquicos y E/S independiente del dispositivo. El SO
más influyente UNIX, diseñado a principios de los 70 en los laboratorios de la Bell. Retiene
la mayor parte de las características más útiles de su predecesor, Multics: procesos,
sistema de archivos jerárquicos, independencia de los dispositivos, redirección de E/S y un
lenguaje de intérprete de órdenes (shell) de alto nivel. En los 80 se desarrollan SO para
PC’s: MS-DOS, Apple-DOS, CP/M, y Xenix. Estaban muy limitados en sus funciones. Se
desarrollaron para microprocesadores de 8 y 16 bits con poca memoria. SO como Unix y
VMS de Digital han evolucionado para adaptarse a las redes de computadores. El sistema
de archivos de Sun Microsystems, NFS (Network File System) fue uno de los 1º sistemas
de archivos situado por encima de una red de servidores y estaciones de trabajo.

1.3 Conceptos fundamentales


1.3.1 Proceso

Introducido por los diseñadores de Multics. Un proceso es un programa en ejecución. La


información sobre cada proceso se almacena en una tabla de procesos construida y mantenida
por el SO.
Introducción |3

1.3.2 Gestión de la memoria y del sistema de archivos

Necesidades: disponer de un soporte para la programación modular y para un uso flexible de


los datos. Control ordenado y eficiente del almacenamiento asignado. Para esto el SO debe
responsabilizarse de:
1) Aislar los procesos
2) Ubicar y gestionar automáticamente a los procesos
3) Soportar una programación modular
4) Controlar el acceso y proteger la memoria
5) Disponer de un medio de almacenamiento de larga duración
Para cumplir con estos objetivos el SO cuenta con la memoria virtual (los programas pueden
direccionar la memoria desde un punto de vista lógico, sin considerar la cantidad de memoria
principal realmente instalada en el sistema) y las funciones del sistema de archivos (la
información se almacena en archivos y estos archivos se mantienen en directorios, que pueden
tener una estructura arborescente dentro de otros directorios).

1.3.3 Llamadas al sistema

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…

1.3.4 Gestión planificación de los recursos

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.

1.3.5 Protección y seguridad de la información

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

1.4 Estructura de los sistemas operativos


Los SO han ido creciendo llegando a un tamaño vasto y complejo. Un sistema tan grande sólo
se puede construir si se particiona en componentes más pequeños. No todos los SO tienen la
misma estructura, pero es usual dividirlos de la siguiente manera:
1) Gestor de procesos
2) Gestor de la memoria principal
3) Gestor del almacenamiento secundario y del sistema de archivos
4) Gestor del sistema E/S
5) Sistema de protección
6) Sistema de comunicación
7) Intérprete de órdenes
Algunos de estos componentes se suministran como programas de utilidades, más que como
un componente propio del SO.

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.

Para grandes sistemas operativos, la modularidad solamente no es suficiente y se ha ido


imponiendo la utilización de conceptos tales como los de niveles jerárquicos y abstracción de la
información.
La estructura jerárquica diferencia sus funciones de acuerdo a su complejidad, sus
características en el tiempo y su nivel de abstracción:

Nivel 5 Programas de los usuarios


Nivel 4 Manejador de dispositivos y buffers de E/S
Nivel 3 Manejador de la consola
Nivel 2 Gestor de la memoria
Nivel 1 Planificador del procesador
Nivel 0 Hardware

La mayor dificultad en el diseño de estas estructuras es definir los niveles.

1.5 Diseño e implementación de sistemas operativos


El primer problema es definir adecuadamente sus objetivos y especificaciones. Hay que tener
en cuenta que se verá afectado por el hardware elegido y por el tipo de sistema que se quiere
implementar. Hay que especificar sus requisitos que se pueden dividir en dos grandes grupos:
1) Requisitos del usuario: el usuario desea que el SO sea cómodo, fácil, sencillo de
utilizar y aprender, fiable, seguro y rápido
2) Requisitos del sistema: debe ser fácil de diseñar, implementar y mantener, flexible,
fiable, sin errores y eficiente.
Hay que tener en cuenta otra exigencia del sistema, su capacidad de evolución, por las
siguientes razones:
1) Las actualizaciones del hardware y la aparición de nuevos tipos de máquinas.
2) La posibilidad de añadir nuevos servicios solicitados por los usuarios.
3) La necesidad de corregir fallos detectados después de un tiempo de funcionamiento.

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).

No obstante, se consiguen mejores rendimientos con estructuras de datos apropiadas y


utilizando buenos algoritmos, que con sólo una optimización del código. Las partes más críticas
para lograr un buen rendimiento del SO son el gestor de memoria y el planificador del
procesador.

You might also like