Tema 6: Sistemas Operativos

Anuncio
Tema 6: Sistemas Operativos
Un computador sin software es algo sencillamente inútil salvo, quizás, como elemento
decorativo. Un sistema operativo constituye, probablemente, la parte más importante del
conjunto de software que acompaña a cualquier computador moderno. El sistema
operativo controla todos los recursos del computador y ofrece la base sobre la cual
pueden escribirse y ejecutarse el resto de programas de aplicación.
6.1 Definición de Sistema Operativo
Aquí se describe aquella parte del "software" de un ordenador que transforma el
"hardware" en algo útil: el sistema operativo. Para los fines de este capítulo es
importante considerar un ordenador como un conjunto de recursos. Estos pueden ser de
tipo físico, lógico o una mezcla de ambos. Tomados como un todo, estos recursos
proporcionan facilidades para el tratamiento y la entrada/salida de datos, así como para
otros aspectos del funcionamiento de un sistema informático.
Un Sistema Operativo es un conjunto de programas y funciones que controlan el
funcionamiento del hardware ocultando sus detalles, ofreciendo al usuario una vía
sencilla y flexible de acceso a la computadora.
Una computadora es una máquina que posee un conjunto de elementos que
denominamos recursos, que deben ser racionalmente distribuidos y utilizados,
Para obtener de ellos el mejor rendimiento. Estos recursos son los siguientes:
•
El procesador: donde se ejecutan las instrucciones y, por ello, deben controlarse
los programas que se ejecuten y su secuencia.
•
La memoria principal: todo programa que se ejecute en una computadora, así
como cualquier dato que se desee procesar, debe estar en la memoria interna, por
tanto, es necesario regular su uso y ocupación.
•
La entrada/salida: todos los programas necesitan realizar operaciones de entrada
y salida sobre sus unidades periféricas para el control y direccionamiento de las
mismas.
•
La información: los datos, sus tipos, tamaños y métodos de representación tienen
que estar perfectamente controlados para evitar operaciones erróneas o falsas
interpretaciones.
Tema 6. Sistemas Operativos.
Página 1
Desde el punto de vista del control de los recursos de una computadora, se puede decir
que un sistema operativo es el administrador de los recursos ofrecidos por el hardware
para alcanzar un rendimiento eficaz de los mismos.
6.2 Tareas de los Sistemas operativos
Si todo programador de aplicaciones tuviera que controlar todos los componentes de la
estructura interna del computador cuando hace sus programas, muy probablemente, no
existirían tantos programas en el mercado. Por poner un ejemplo, emplear la instrucción
escribir archivo es mucho más simple que tener que preocuparse por mover las cabezas
lectoras del disco hasta una posición adecuada, esperar que se estabilicen, dirigir la
información desde la memoria e ir escribiendo la información en el disco.
Conviene al programador de aplicaciones (o al mismo usuario) desentenderse de los
complejos detalles del hardware. La idea fundamental para conseguirlo consiste en
ocultar los detalles del hardware puro con software (el sistema operativo) especialmente
diseñado para permitir un uso más fácil y racional de todas las partes del sistema.
Del mismo modo, el sistema operativo presenta un interfaz simple entre el programador
o usuario y otros aspectos del hardware, como son el manejo de interrupciones, relojes,
gestión de memoria y otras características de bajo nivel.
Según este enfoque, el sistema operativo tiene la misión de presentar al usuario una
máquina virtual que sea más fácil de programar que el hardware puro y, por lo tanto,
aumente la efectividad del computador al evitar la necesidad de trabajar a bajo nivel.
Por consiguiente, puede considerarse un sistema operativo como un interfaz adecuado
entre el usuario y el hardware.
Un sistema operativo también tiene la función de controlar y administrar de forma
ordenada el uso de todos los recursos del computador.
Esta función se hace especialmente necesaria cuando un computador está siendo
compartido por varios usuarios simultáneamente; en este caso, la necesidad de distribuir
convenientemente el tiempo de trabajo de la UCP, los espacios de memoria y los
periféricos es evidente. Desde este punto de vista, la tarea del sistema operativo es llevar
el control de quién está utilizando cada recurso y dirimir los posibles conflictos entre
varios procesos o usuarios que intenten acceder a la vez a un mismo recurso.
Tema 6. Sistemas Operativos.
Página 2
En general, un sistema operativo debe poder desempeñar al menos las siguientes
funciones:
•
Facilitar la comunicación hombre-máquina.
•
Gestionar los recursos: procesador(es), memoria(s) y periféricos, facilitando su
manejo al usuario.
•
Gestionar la información (los archivos) contenida en los periféricos de
almacenamiento y la organización de esa información (en directorios).
•
Controlar la ejecución de aplicaciones.
6.2.1 Programas de control
Los programas de control constituyen la parte del sistema operativo dedicada a
coordinar el funcionamiento de todos los recursos y elementos de la computadora, es
decir, el procesador, la memoria, las operaciones de entrada y salida, la información y
en definitiva todo el entorno del sistema, incluidos los periféricos.
En general, un sistema operativo tiene englobados estos programas en un conjunto
llamado núcleo (kernel) que se divide en los siguientes grupos:
Gestión del procesador:
Los programas del grupo de gestión del procesador son los encargados de la preparación
de los programas de usuario para su ejecución, así como de la asignación de tiempos en
el procesador. Sus principales funciones son:
•
Preparación de programas. Su misión es transferir los programas ejecutables de
usuario desde la memoria externa a la memoria principal a partir de una
determinada dirección de memoria, por medio de un programa que se denomina
cargador.
•
Planificación del procesador. Controla la utilización del procesador por parte de
los diferentes procesos que se encuentren en el sistema en cada momento. Hay
diferentes políticas de asignación del tiempo a cada uno de los procesos.
•
Asignación de periféricos. Este grupo de programas transforma las solicitudes
simbólicas de periférico en asignaciones físicas, concretando el periférico a
utilizar.
•
Relanzamiento de programas. Si durante la ejecución de un programa se produce
alguna interrupción, por solicitud externa o porque se le acaba el tiempo de CPU
Tema 6. Sistemas Operativos.
Página 3
asignado, es necesario que haya un grupo de programas del sistema operativo
encargado de establecer un punto de control en el instante de la interrupción para
que se pueda reproducir el estado que tenía el proceso cuando se vuelve a
reactivar. Para ello se reestablecen los valores de cada elemento en el momento
de la interrupción, hasta conseguir el estado de la ejecución del programa.
Gestión de memoria:
Un sistema operativo contiene un conjunto de programas cuya misión es la de asignar y
controlar el almacenamiento en la memoria principal y secundaria de la computadora.
•
Gestión de memoria principal. Hay muchos métodos de asignación y control de
la memoria principal, dependiendo de si el sistema operativo es multiprogramado
(varios programas en ejecución simultáneamente) o monoprogramado. Los
programas que controlan y gestionan la memoria principal asignan los espacios
que deben ocupar los programas y los datos, estableciendo zonas de seguridad
para que no se produzcan colisiones.
•
Gestión de memoria secundaria. Tienen como misión hacer ver al usuario el
tratamiento de la información almacenada en la memoria externa, desde el punto
de vista lógico ocultándole la realidad física.
•
Por otra parte, un sistema puede mantener en un mismo instante un gran número
de usuarios y procesos, y éstos pueden estar solicitando y manejando
continuamente archivos en memoria externa, en ocasiones compartiéndolos, y
por ello es necesario que el sistema operativo asegure el correcto funcionamiento
del almacenamiento secundario.
Gestión de Entrada/Salida:
El control de las operaciones de entrada y salida facilita el uso de los distintos
dispositivos externos que forman parte del sistema informático. Los programas de
gestión tienen como misión gestionar las operaciones que realice cada proceso sobre un
dispositivo externo, ocultando las peculiaridades del mismo.
Gestión de datos:
Los programas del grupo de gestión de datos controlan y coordinan las operaciones
relativas al movimiento de datos e informaciones en la computadora, como transferencia
y tratamiento de archivos de datos.
Estos programas realizan las siguientes funciones:
Tema 6. Sistemas Operativos.
Página 4
•
Control de periféricos. Cuando hay una petición de entrada/salida se comprueba
si el periférico está desocupado, se realiza la conexión y luego se pasa el control
al programa que se está ejecutando para que se inicie la operación. Cuando el
periférico solicitado está ocupado, la petición se coloca en una cola para ser
atendido más tarde. Normalmente existe una cola para cada uno de los
periféricos.
•
Control de transferencia de la información. Consiste en comprobar que el total de
caracteres transmitidos en cada bloque entre la memoria principal y los
periféricos coincide con el especificado previamente según las características
físicas de los soportes utilizados. Cuando no existe coincidencia, toma el control
del proceso un programa especial de corrección o recuperación de caracteres que
informa al usuario del error y/o cancela la ejecución del programa.
•
Tratamiento de cada bloque de información. Cuando un bloque de información se
almacena en la memoria central, interviene un nuevo programa del sistema
operativo que descompone cada bloque de información en las unidades lógicas
descritas en el programa que se está ejecutando. Cuando se realiza la operación
inversa, extraer información de la memoria central, el programa se encarga de
agrupar las informaciones componiendo el bloque físico para que pueda ser
transferido al periférico correspondiente.
•
Apertura y cierre de archivos. Un archivo se conecta a un programa cuando se
abre, quedando asignado al mismo mediante un canal de datos. Esta vía se
mantiene hasta que se cierra el archivo, bien por el programa o por el propio
sistema operativo.
•
Acceso a los archivos. Este grupo de programas transforma las direcciones
lógicas que figuran en el programa en ejecución en las correspondientes
direcciones físicas sobre el soporte (en el caso de un disco magnético sería
indicar cilindro, pista, sector, bloque).
Gestión del sistema:
Este grupo de programas es el verdadero motor del sistema operativo ya que se encarga
de la coordinación y supervisión del funcionamiento del resto de programas, por ello se
le denomina supervisor. Sus tareas son:
•
Protección de memoria. Fijan unos límites para evitar que los datos de un
programa puedan ser accedidos desde otro.
Tema 6. Sistemas Operativos.
Página 5
•
Errores en la memoria. Detectan errores en los datos que se encuentran en
memoria para averiguar dónde se produjo el error y reenviar el dato.
•
Errores de programas. Cuando la unidad lógica detecta que se intenta realizar
desde algún programa una operación errónea, se debe diagnosticar el error y
transferir el control a este grupo de programas que cancelarán el programa de
usuario y enviarán los mensajes correspondientes para informar sobre el error.
6.3 Entornos multiprogramados
En este punto se tratará sobre la gestión y administración del tiempo de la CPU en
sistemas de multiprogramación y tiempo compartido.
El aspecto más importante de la planificación de trabajo es la capacidad de
multiprogramación. Las operaciones descritas previamente para procesos de E/S tienen
sus limitaciones. Un usuario, no puede en general mantener la CPU o los dispositivos de
E/S ocupados todo el tiempo. La multiprogramación es un método para incrementar el
empleo de CPU, disponiendo en todo momento de algo que la CPU pueda ejecutar.
La idea es la siguiente: el sistema operativo toma uno de los trabajos y empieza a
ejecutarlo, eventualmente el trabajo tendrá que esperar por algún motivo, como por
ejemplo para montar una cinta magnética, en un sistema sin multiprogramación la CPU
quedaría inactiva.
Los sistemas operativos multiprogramados son bastante sofisticados. Tener varios
trabajos dispuestos para su ejecución, supone mantenerlos simultáneamente en
memoria, y tener varios programas en memoria al mismo tiempo requiere una gestión
de la memoria. Además, si hay varios trabajos dispuestos para ejecución al mismo
tiempo, hay que tomar alguna decisión para elegir entre ellos, mediante una
planificación adecuada de la CPU. La multiprogramación es el tema central de los
sistemas operativos modernos.
Los aspectos fundamentales a considerar son:
Gestión de la memoria
La memoria total del ordenador se ha de compartir de forma adecuada entre
todos los programas y datos que en cierto momento tenga cada usuario del
equipo.
Tema 6. Sistemas Operativos.
Página 6
Planificación de la CPU
Entre todas las tareas demandadas por los usuarios es posible establecer
preferencias, lo cual implica que la CPU se planifique dando más tiempo a
algunos tipos de trabajos o a los usuarios en función de unos niveles de
privilegios establecidos previamente.
Control de concurrencia
El sistema operativo ha de gestionar adecuadamente todos los recursos del
ordenador y ordenar la concurrencia de demandas de una forma adecuada. Por
ejemplo si varios usuarios solicitan al mismo tiempo el acceso a un disco, se
habrá de gestionar de forma correcta esta concurrencia para evitar bloqueos o
situaciones impredecibles.
Protección
En un sistema donde acceden muchos usuarios es lógico que exista un sistema
de protección que permita asegurar que a los trabajos de uno no pueden acceder
los otros usuarios, ya sea por motivos de seguridad (por ejemplo para evitar
pérdidas de información accidentales) o de confidencialidad.
Hay tres tipos básicos de multiprogramación:
6.3.1 Multiprogramación clásica
El planificador da el turno a un trabajo P1. Cuando P1 tiene que realizar una operación
de E/S da el turno a otro programa P2 hasta que éste necesita realizar una operación de
E/S, pasándose a ejecutar P3 y así sucesivamente. Cuando P1 acaba su E/S, el periférico
se lo comunica a la CPU por medio de una interrupción para poder volver a asignarle
CPU en cuanto le llegue el turno.
6.3.2 Tratamiento paralelo
La multiprogramación clásica tiene el inconveniente de que un proceso con mucho
cálculo y poca E/S puede monopolizar la CPU hasta que acabe su ejecución. Para evitar
esto, se asigna un intervalo fijo de tiempo (quantum) a cada proceso (normalmente del
orden de décimas de segundo). Cuando finaliza el quantum de un proceso, el
planificador pasa el control al siguiente, y así sucesivamente.
Tema 6. Sistemas Operativos.
Página 7
Este sistema se lleva a cabo por medio de un circuito contador activado por el reloj de la
CPU, que cuando llega a un valor determinado provoca una interrupción que avisa al
planificador para que dé el turno a otro trabajo.
6.3.3 Tiempo compartido
El tratamiento paralelo sigue teniendo tiempos muertos, bien porque en el transcurso de
un quantum se produce una E/S o porque al asignarle su quantum el proceso esté
realizando alguna E/S. El tipo de planificación de tiempo compartido aprovecha estos
tiempos muertos. Para asignar CPU a un programa Pj, interrumpiendo el que se esté
ejecutando en ese momento Pi, tiene que cumplirse una de las siguientes condiciones:
•
El programa Pi agote su quantum, o bien
•
El programa Pi entre en ejecución de una instrucción de E/S.
Pj será el siguiente programa en la cola de CPU y que esté listo para ejecución.
6.4 Tipos de Sistemas Operativos
Los sistemas operativos pueden ser clasificados de muy distintas formas, entre ellas:
6.4.1 En función de la utilización de los recursos del ordenador.
•
Sistemas Monoprogramados: Son los que sólo permiten la ejecución de un
programa en el sistema, se instalan en la memoria y permanecen hasta que
termine su ejecución.
•
Estos sistemas sólo permiten que un programa este usando tanto el
microprocesador como la memoria en un momento determinado, y otro programa
no podrá usarlos hasta que el anterior termine lo que está haciendo.
•
Sistemas Multiprogramados: Son aquellos que se basan en las técnicas de
multiprogramación que se han descrito en el punto anterior.
•
Sistemas Multiprocesamiento: Sistemas que disponen de varios procesadores.
6.4.2 En función de la interactividad con el usuario.
Depende del tipo de trabajo y los objetivos que debe cumplir cada sistema para dar el
mejor servicio al usuario, se clasifican en:
Tema 6. Sistemas Operativos.
Página 8
•
Procesamiento por lotes (batch): Cada programa realiza un conjunto de pasos
secuenciales relacionados entre sí. No existe posibilidad de intervención del
usuario en la ejecución y no hay restricciones de tiempo en los procesos.
•
Tiempo compartido: En este tipo de sistema, el control lo tiene el usuario
registrando su entrada y obteniendo todo el tiempo la CPU hasta que sale del
sistema y entra otro usuario, pero para permitir que otro usuario pueda hacer uso
también de la CPU, el sistema operativo cada cierto tiempo atenderá a cada
usuario que tenga conectado, siendo así de tiempo compartido.
•
Tiempo real: El sistema puede responder a ciertos eventos en cualquier instante,
independientemente del proceso que esté ejecutando en cada momento. Este tipo
de sistemas operativos se utilizan principalmente en el control de instalaciones
industriales o donde se hace necesario en control en tiempo real de determinadas
funciones o circunstancias: sistemas médicos, controladores aéreos, etc.
6.4.3 En función del número de usuarios.
Según la cantidad de usuarios que utilicen el sistema operativo, se clasifican en:
•
Monousuario: Son sistemas muy simples que sólo aceptan la conexión de un
usuario al mismo tiempo, dichos sistemas se pueden basar en técnicas de
multiprogramación, y facilitar al usuario la ejecución de varios programas
simultáneamente.
•
Multiusuario: Se basan siempre en la multiprogramación, permiten varios
usuarios conectados a la vez, suelen utilizar técnicas de tiempo compartido o de
tiempo real.
6.4.4 En función del tipo de aplicaciones.
Según el tipo de aplicación que se pueda ejecutar:
•
De propósito general: Cuando la instalación puede ser de cualquier tipo
(monousuario, multiusuario, tiempo compartido, tiempo real, etc..) siempre que
no requiera procedimientos especiales para ejecutar determinados programas.
•
De propósito especifico: Cuando tienen componentes específicos para ejecutar
una determinada aplicación, este tipo de sistemas operativos normalmente no
suelen ser de difusión conocida y esta centrados en determinadas empresas o
Tema 6. Sistemas Operativos.
Página 9
gobiernos dada la especialidad del programa a ejecutar y la dedicación de todos
los recursos del ordenador a dicho programa.
6.5 Evolución de los Sistemas Operativos.
La evolución de los sistemas operativos va ligada a la evolución de las computadoras.
Se distinguen varias generaciones.
•
1ª Generación: Comprende los años desde 1945 al 1955 y en este periodo de
tiempo se puede decir que existieran sistemas operativos tal como se conocen en
la actualidad, sino que el programador debía hacerse cada una de las rutinas que
necesitara (lectura de memoria, proceso del microprocesador, lectura de datos,
etc.).
•
2ª Generación: Comprende los años desde 1955 al 1965 y en este periodo de
tiempo aparece lo que se denomina proceso por lotes (batch). En realidad lo que
hacía era poner una serie de instrucciones en memoria y el sistema iba ejecutando
una tras otras instrucciones de forma automática sin que fuera necesario que el
programador diera la orden.
•
3ª Generación: Comprende los años desde 1965 al 1980 y en este periodo de
tiempo fue donde se dio el gran salto, debido a la aparición de los circuitos
integrados, que consiguieron disminuir considerablemente el tamaño de las
computadoras, y acercarlas a la población en general. También apareció la
multiprogramación, que permite la ejecución simultánea de varios programas a la
vez.
•
4ª Generación: Comprende los años desde 1980 hasta la actualidad y en este
periodo de tiempo aparecen los sistemas operativos de red que dan nuevas
oportunidades al máximo aprovechamiento del ordenador y su equipamiento.
Tema 6. Sistemas Operativos.
Página 10
Descargar