Logo Studenta

Sistemas Operativos: Funções e Definição

¡Estudia con miles de materiales!

Vista previa del material en texto

E. U. Politécnica 
Ingeniería Técnica Industrial 
 
FUNDAMENTOS DE INFORMÁTICA 
 
TEMA 4 
SISTEMAS OPERATIVOS 
 
1. INTRODUCCIÓN 
2. DEFINICIÓN DE SISTEMA OPERATIVO 
3. FUNCIONES PRINCIPALES DE UN SISTEMA OPERATIVO 
3.1. Gestión de procesos 
3.2. Gestión de la memoria principal 
3.2.1. La memoria virtual 
3.3. Gestión de la entrada/salida (E/S) 
3.4. Gestión de ficheros 
4. ALGUNOS SISTEMAS OPERATIVOS 
4.1. MS-DOS 
4.2. WINDOWS 
4.3. UNIX 
4.4. LINUX 
5. INFORMES PROPUESTOS 
 
1. INTRODUCCIÓN 
Un sistema informático es un conjunto de software (SW) más hardware (HW) destinado procesar la 
información de forma rápida y automática. El HW está formado por los elementos tangibles que 
constituyen el ordenador y el SW son los programas y los datos. Los programas son listas de 
instrucciones que el ordenador podrá ejecutar sobre los datos. Los elementos que componen el 
ordenador (procesador, memoria, tarjetas, periféricos,...) se manejan a través de instrucciones 
formadas por secuencias de 0 y 1. Este conjunto de instrucciones, llamadas instrucciones máquina, 
forman la interfaz del ordenador. Si los usuarios de un ordenador tuvieran que utilizar el hardware a 
través de sus instrucciones máquina se escribirían muy pocos programas, y estos no podrían 
resolver tareas excesivamente complejas, pues el uso de los dispositivos físicos del ordenador 
mediante estas instrucciones es complejo, tedioso, y está lleno de detalles. 
La solución que se ha ido adoptando con el tiempo para salvar esta complejidad es la de escribir 
capas o niveles de software. El software se puede dividir de forma muy general en dos grupos: 
programas de aplicación que resuelven los problemas de los usuarios y los programas del 
sistema que gestionan las actividades del computador. 
En la Fig. 1 se describe esta situación. El HW se encuentra en la parte inferior, este nivel contiene 
los dispositivos físicos formados por circuitos integrados, cables, etc. A continuación viene un nivel 
de software muy rudimentario que controla directamente estos dispositivos y proporciona al nivel 
superior una interfaz más sencilla. Este SW, llamado microprograma (instrucciones formadas por 0 
y 1) busca en memoria instrucciones de lenguaje máquina (ADD, MOVE,...) y las ejecuta. 
El resto de SW del sistema se sitúa sobre el SO. Aquí se pueden encontrar programas como el 
intérprete de comandos (shell), compiladores y otros programas similares independientes de las 
aplicaciones y los programas de aplicación, escritos por los usuarios con objeto de resolver sus 
problemas específicos. 
 
Sistema 
bancario 
Editor de 
texto 
Juegos 
Compiladores 
Intérpretes de 
comandos 
Sistema operativo 
Lenguaje máquina 
Microprograma 
 Dispositivos físicos 
Fig. 1 
El sistema operativo es la capa de software más importante de un sistema informático. 
2. DEFINICIÓN DE SISTEMA OPERATIVO 
Un Sistema Operativo (SO) es un conjunto de programas que actúan como interfaz entre el usuario 
y la máquina y que fundamentalmente lleva a cabo dos funciones: 
1. Administrar y gestionar los recursos HW: el procesador, la memoria, los dispositivos de E/S, 
etc. son recursos limitados que deben ser “repartidos” entre los programas que los soliciten de 
modo que se aumente su disponibilidad y se optimice su utilización. El SO lleva la cuenta del 
estado de cada recurso y cumple la función de asignarlos, de forma ordenada, a los procesos que 
compiten por ellos, resolviendo las peticiones conflictivas de manera que se preserve la 
integridad del sistema y que al hacerlo se optimice el rendimiento final. 
2. Facilitar el uso del sistema: un computador está formado por un conjunto de recursos HW 
(memoria, reloj, discos, tarjetas de red,...) que lo convierten en un sistema complejo y de difícil 
manejo. Resultaría muy complicado para un programador que desarrolla programas de 
aplicación (editor de texto, hoja de cálculo,...) escribir, por ejemplo, rutinas para leer y escribir 
en disco en las que tuviese que manejar directamente los controladores de disco, proporcionando 
datos necesarios como el sector, la pista, el número de bloques, etc. Probablemente no utilizaría 
muchos de los recursos de forma correcta y eficiente. 
El SO aísla al usuario de la complejidad del HW convirtiendo el computador en una máquina 
virtual más fácil de entender y programar. El SO presenta al programador un sistema más sencillo 
donde la memoria es más grande, se accede a los ficheros por nombres simbólicos (no necesita 
saber las direcciones físicas donde se almacena la información), se proporcionan rutinas para la 
protección y el tratamiento de errores, etc. 
Programas de aplicación 
Programas del sistema 
Hardware 
3. FUNCIONES PRINCIPALES DE UN SISTEMA OPERATIVO 
Las dos tareas principales de un SO (gestión de recursos y facilitar el uso del sistema) engloban 
numerosas funciones que serán estudiadas en este apartado. Debido a su complejidad se describirán 
a grandes rasgos, ofreciendo una visión simplificada. 
3.1. Gestión de procesos 
Un proceso es la unidad ejecutable elemental manejada por el SO. Podría decirse que un proceso es 
una instancia de un programa en ejecución. Cuando un usuario decide ejecutar un programa se 
crean en el sistema uno o varios procesos. Las instrucciones de estos procesos se cargan en 
memoria principal, a cada uno se le asigna espacio en memoria, permisos, nivel de prioridad, etc. 
Todos estos parámetros configuran el proceso. Una vez creado, un proceso necesita recursos de la 
máquina para llevar a cabo su tarea: tiempo de CPU, memoria, ficheros y dispositivos de E/S. El SO 
asigna estos recursos al proceso en el momento de su creación o durante su ejecución. Cuando el 
proceso termina libera los recursos que había ocupado le son devueltos al SO. 
El sistema operativo se encarga de las siguientes actividades relacionadas con la gestión de 
procesos: 
• Crear y eliminar procesos. 
• Suspender y reanudar procesos. 
• Asignar tiempo de CPU a los procesos. 
• Proveer mecanismos para la sincronización de procesos. 
• Proveer mecanismos para la comunicación entre procesos. 
• Proveer mecanismos para la gestión de interbloqueos. 
La gestión de procesos que realice el sistema operativo va a depender de si se quiere proporcionar 
monoprogramación o multiprogramación . 
 
 
Figura 1. Esquema de ejecución monoprogramada vs. multiprogramada. 
En un sistema monoprogramado los procesos (instancias de programas) se van atendiendo por 
orden de llegada, de modo que, tal y como se describe en la primera gráfica de la figura 1, si un 
usuario quiere ejecutar los programas P1 y P2, el sistema ejecutará completamente el programa P1 y 
hasta que no haya terminado no empezará con el siguiente. Pero un proceso durante su ejecución no 
está usando la CPU constantemente. A veces tiene que esperar por algún motivo (por ejemplo E/S) 
y mientras la CPU permanece inactiva (figura 1: ciclos sombreados). En un sistema 
multiprogramado , en vez de esperar, se cede la CPU a otro proceso, de este modo, si hay trabajos 
por ejecutar, la CPU nuca estará inactiva. La segunda gráfica de la figura 1 describe como se van 
Actividad del procesador 
P1 P1 P1 P2 
Programa 1 
Tiempo 
Programa 2 
P2 P2 
P1 
Programa 1 
Inactivo P1 Inactivo P1 P2 
Programa 2 
Inactivo P2 Inactivo P2 
Tiempo 
Actividad del procesador 
intercalando las ejecuciones de los programas P1 y P2. Los programas no son conscientes de que se 
ejecutan discontinuamente en el tiempo. Como se observa, se pueden lograr ganancias significativas 
de rendimiento. En el ejemplo de la figura se ilustra una situación ideal en la que se consigue un 
100% de utilización del procesador con sólo dos programas activos. Estos resultados no se alcanzan 
en situaciones reales aunque se mejora bastante el rendimiento del sistema. 
El número de programas activamente en competencia por los recursos de un sistema informático 
multiprogramado se denomina grado de multiprogramación. En principio,mayores grados de 
multiprogramación deberían producir mayor utilización de recursos. 
Como se ha visto, si el sistema es monoprogramado la gestión de procesos es muy simple con 
respecto a la gestión de un sistema operativo multiprogramado. 
Una de las tareas que tiene que realizar un sistema operativo para proporcionar multiprogramación 
es mantener una estructura de datos para guardar información sobre cada uno de los procesos 
que se ejecutan concurrentemente en el sistema. Esta información es necesaria para que la 
multiprogramación se realice correctamente. Por ejemplo, cuando el sistema operativo decide ceder 
la CPU a un nuevo proceso guarda en esta estructura de datos la dirección de memoria de la 
siguiente instrucción del proceso que se estuviese ejecutando actualmente. De esta forma, cuando el 
sistema operativo reanude su ejecución sabe en qué punto fue interrumpido. 
Otra de las tareas a realizar por el sistema operativo es la planificación de procesos, es decir, 
decidir cuándo y a qué proceso de los están esperando hay que ceder la CPU. Para ello se 
ejecuta un programa del sistema operativo llamado planificador. El criterio seguido por el 
planificador para tomar una decisión varía de un sistema operativo a otro, pero los más importantes 
son: 1) intentar utilizar más eficientemente los recursos del ordenador y 2) repartir equitativamente 
la ocupación de la CPU entre todos los programas que existen en el sistema. Si el sistema operativo 
sólo utiliza el primer criterio será un sistema simplemente multiprogramado, si utiliza ambos 
criterios será un sistema de tiempo compartido. El tiempo compartido es una variante de la 
multiprogramación en la gestión de la CPU. 
3.2. Gestión de la memoria principal 
Otra de las funciones del sistema operativo es la de gestionar la memoria principal del ordenador. 
Para ejecutar un programa es necesario cargarlo a memoria principal lo que la convierte en un 
recurso esencial para el funcionamiento de un computador. 
La gestión de memoria de un sistema operativo monoprogramado es sencilla, ya que en la memoria 
principal sólo es compartida por los programas del SO y por el único programa en ejecución. 
En los sistemas de multiprogramación es posible tener varios programas a la vez en memoria 
principal que se van ejecutando concurrentemente. El sistema operativo debe mantener una 
estructura de datos donde almacena la información sobre qué zona de la memoria ocupa cada 
proceso, así como de las zonas de la memoria libres. Cuando reciba una solicitud de creación de 
un proceso debe buscar una zona libre de la memoria (si hay), almacenar su código en ella y 
registrarla como ocupada. De igual forma, cuando un proceso finaliza hay que anotar que la zona de 
memoria que ocupaba queda como libre. 
 
3.2.1. La memoria virtual 
 
Para que un programa se pueda ejecutar debe estar cargado (residir) en la memoria principal. Por lo 
tanto, el tamaño máximo del código máquina de un programa no debería exceder del tamaño de la 
memoria principal (realmente de algo menos, pues siempre hay una parte de la memoria ocupada 
por el sistema operativo). A partir de 1961 muchos sistemas operativos comenzaron a utilizar una 
técnica de gestión de la memoria llamada memoria virtual. Esta técnica permite que el usuario 
pueda crear programas cuyo código máquina exceda del tamaño de la memoria principal. Para ello 
el sistema operativo mantiene en la memoria principal sólo parte del código de un programa, 
concretamente siempre mantiene por lo menos la parte del código que se está ejecutando 
actualmente, el resto permanece en la memoria secundaria. Cuando se necesita una parte del código 
que está en la memoria secundaria se transfiere a la memoria principal. Estas transferencias las 
realiza el sistema operativo de forma transparente al programador, es decir, el programador escribe 
programas igual que siempre, sólo que el tamaño de estos programas puede ser mayor que el 
tamaño de la memoria principal gracias a la gestión realizada por el sistema operativo. Para 
proporcionar memoria virtual se requiere un hardware especial. 
3.3. Gestión de la entrada/salida (E/S) 
Los ordenadores disponen de muchos periféricos, o dispositivos de E/S, como impresoras, teclados, 
monitores, discos, ratones, etc. Estos periféricos hacen posible que los programas se comuniquen 
con los usuarios. Es misión del sistema operativo gestionar directamente los periféricos, ofreciendo 
al programador unos servicios para su utilización mucho más sencillos que los que ofrecen éstos a 
nivel hardware. 
A nivel físico los periféricos son muy distintos, las instrucciones máquina que hay que suministrar a 
una impresora para que escriba una línea difieren notablemente de las que hay que darle a un 
scanner para que digitalice una imagen. Sin embargo, el SO permite trabajar al programador de 
forma similar con distintos periféricos. Este hecho se conoce como E/S independiente del 
dispositivo y permite que un programa que, por ejemplo, manda sus salidas a una impresora, pueda 
mandarlas a la pantalla realizando unos cambios mínimos en su código. 
En general, el sistema operativo ofrece como mínimo los siguientes servicios para realizar 
operaciones de E/S: apertura de un periférico, operaciones de lectura o escritura y cierre de un 
periférico. 
3.4. Gestión de ficheros 
Una vez que un programa termina su código y sus datos son eliminados de la memoria principal. Si 
queremos que ciertos datos perduren es necesario guardarlos en memoria secundaria (CD, pen-
drive, disco duro,...). Cada uno de estos dispositivos tiene sus propias características y su forma de 
organizar la información. 
Para facilitar el trabajo al usuario el SO establece el concepto de fichero (o archivo). Un fichero es 
una representación lógica de almacenamiento de datos. Esta representación es uniforme e 
independiente del tipo de dispositivo físico donde se vayan a guardar los datos. Un fichero es un 
objeto virtual, es decir, no existe como tal en un disco. El sistema operativo aporta un conjunto de 
servicios para manipular los ficheros, algunos de los más comunes permiten realizar tareas como: 
abrir un fichero, escribir en un fichero, leer de un fichero, borrar un fichero, cerrar un fichero. 
El sistema operativo también ofrece el concepto de directorio . Un directorio sirve para estructurar 
los ficheros almacenados en un disco, de forma que se puedan guardar ficheros relacionados 
lógicamente (por ejemplo porque todos son necesarios para ejecutar un programa) en un mismo 
directorio. Existe un directorio origen por disco, llamado directorio raíz. Un directorio puede 
contener a su vez directorios, lo que conduce una estructura de árbol. El sistema operativo ofrece 
servicios para trabajar con directorios, estos servicios permiten, por ejemplo, crear y eliminar 
directorios, o consultar los ficheros almacenados en ellos. 
4. ALGUNOS SISTEMAS OPERATIVOS 
En el inicio de la informática cada fabricante tenía sus propios sistemas operativos que no eran 
compatibles con los de otros, incluso dentro de un mismo fabricante podían coexistir varios. Estos 
se conocen como sistemas propietarios. La tendencia actual es hacia los llamados sistemas abiertos, 
esto es, sistemas operativos que trabajan sobre una gran variedad de máquinas con independencia 
del fabricante del equipo. 
A continuación se ofrece una revisión de los sistemas operativos más difundidos. 
4.1. MS-DOS 
MS-DOS son las siglas de M icroSoft Disk Operating System (Sistema operativo de disco de 
Microsoft). Fue un sistema operativo adaptado por Microsoft para el ordenador IBM PC, aunque se 
popularizó rápidamente siendo el más usado a nivel personal. Fue desarrollado en el año 1979 por 
Tim Paterson que trabajaba en Seatle Computer Products, y adquirido por Microsoft Corporation. 
El MS-DOS es un sistema operativo: 
• Monousuario y monotarea por lo tanto sólo puede trabajar un usuario ejecutando un solo 
programa al mismo tiempo. 
• Con unainterfaz en línea de comandos, es decir, que el usuario solicita las órdenes (copiar 
un fichero, cambiar de directorio, etc.) mediante el teclado. Estas órdenes son ejecutadas por 
un programa que inicia el SO llamado intérprete de comandos. 
 
 
Fig. 1 Intérpretes de comandos de MS-DOS 
4.2. WINDOWS 
Los sistemas operativos nos ofrecen una serie de servicios que se pueden solicitar desde el código 
de los programas que ejecutamos, a través del intérprete de órdenes (como el MS-DOS) o del GUI 
(Graphics User Interface, Interfaz Gráfico de Usuario). En la interfaz gráfica las distintas órdenes se 
representan mediante iconos y ventanas. El usuario sólo tiene que seleccionar con el ratón el icono 
para solicitar la acción correspondiente. 
En 1985 Microsoft publicó la primera versión de Windows, una interfaz gráfica de usuario (GUI) 
para su propio sistema operativo (MS-DOS). A partir del Windows XP los sistemas operativos de la 
familia Windows son SO por sí solos que no necesitan MS-DOS para funcionar. 
Estos sistemas tienen un entorno de trabajo multitarea. Como se comentó en el apartado 3.1 la 
multitarea es una característica que permite ejecutar más de una aplicación al mismo tiempo. 
El elemento fundamental de la interfaz de Windows es la ventana. Una ventana es un marco 
rectangular que maneja y ejecuta una aplicación. Las partes más importantes de una ventana, 
mostradas en la siguiente figura, son: 
1. Barra de menús: aquí se encuentran los menús disponibles en ese momento para esa aplicación. 
Un menú muestra un conjunto de acciones que puede ejecutar un programa. 
2. Barra de título: situada en la parte superior de todas las ventanas. Lleva el nombre de la 
aplicación con la que se está trabajando en ese momento. 
3. Botón para minimizar: si se pulsa, la ventana se minimiza, desapareciendo del primer plano de 
la pantalla y apareciendo su nombre en la barra de tareas. 
4. Botón para maximizar: si se pulsa, se amplía la ventana al tamaño de la pantalla. 
5. Botón de cierre: si se pulsa, se cierra la ventana. 
6. Barras de desplazamiento: cuando el tamaño de la ventana es menor que el tamaño que ocupa la 
información que ha de mostrarse en ella, las barras de desplazamiento nos permiten navegar por 
dicha información. 
7. Borde de la ventana: es el marco exterior de la ventana que permite cambiar el tamaño de la 
misma. 
 
 
4.3. UNIX 
Fue diseñado en los laboratorios BELL de la empresa AT&T, para su empleo en ordenadores marca 
Digital. Dadas sus características pronto se difundió ampliamente en ambientes universitarios, por 
lo que hasta hace poco tiempo se ha considerado como un sistema operativo orientado a ambientes 
de investigación y no en aplicaciones de gestión. Actualmente está muy difundido en todo tipo de 
equipos aunque se ha perdido la estandarización habiendo muchas versiones diferentes poco 
compatibles entre si. Otra versión es el Solaris de la empresa SUN. Una ventaja sobre otros sistemas 
operativos es que este sistema es multiusuario, por lo que un equipo admite gran cantidad de 
terminales trabajando simultáneamente, además de la robustez y seguridad. 
4.4. LINUX 
Linux es básicamente un sistema operativo compatible con UNIX, que opera principalmente bajo 
equipos compatibles con el estándar del mercado. Su principal ventaja es que su costo es 
prácticamente nulo. Fue escrito por Linus Torvalds como un sistema operativo abierto y estándar, 
siendo desarrollado posteriormente por muchos programadores, de forma independiente. El código 
fuente, gestores de dispositivos y utilidades están disponibles gratuitamente. 
Actualmente supone cierta competencia para Windows, no sólo por ser gratis y disponer de los 
códigos fuente, sino por superioridad y más seguridad. 
 
(1) 
(2) (3) (4) (5) 
(7) 
(6) 
 
Fig. 2 Aspecto de un SO de tipo UNIX con el entorno de escritorio GNOME1. 
5. INFORMES PROPUESTOS 
• Historia de los Sistemas Operativos 
• Tanenbaum: Bibliografía, vida, obra y milagros. 
• Windows Vista: Ventajas de la última versión de Windows. 
• Linux: Características básicas. 
• Linux: Distintas distribuciones que existen. 
• Guadalinex: Versión de Linux que promociona la Junta de Andalucía. 
• Gestión de procesos en UNIX 
• Gestión de procesos en Windows 
• Gestión de la memoria principal en UNIX 
• Gestión de la memoria principal en Windows 
• Diseño del sistema de ficheros en UNIX 
• Sistemas operativos en tiempo real 
• Sistemas operativos distribuidos 
 
1 Un entorno de escritorio (Desktop Environment) es un conjunto de software que proporcione al usuario de un 
ordenador una interfaz cómoda y fácil de utilizar. Existen distintos entornos de escritorio para SO UNIX y Linux 
(Gnome, Java Desktop System, KDE, etc.)

Continuar navegando