Sunteți pe pagina 1din 59

Unidad Temática 2 Sistemas Operativos

PRESTACIONES DE UN SISTEMA OPERATIVO. .............................................................................................. 6

EL SISTEMA OPERATIVO COMO ADMINISTRADOR DE RECURSOS. ................................................................... 6

Recursos. ...................................................................................................................................... 6

EVOLUCIÓN HISTÓRICA .......................................................................................................................... 7

Los primeros ordenadores ........................................................................................................... 8

Sistemas de procesos por lotes. ................................................................................................... 8

Secuencia automática de trabajos. .............................................................................................. 9

Modos de operación (On-line y Off-line) .................................................................................... 10

Multiprogramación. ................................................................................................................... 10

Procesamiento distribuido ......................................................................................................... 11

Sistemas multiprocesador. ......................................................................................................... 12

Sistemas de interfaz gráfica de usuario. .................................................................................... 12

MODOS DE EXPLOTACIÓN DEL SISTEMA ................................................................................. 12


Procesamiento por lotes (batch). ............................................................................................... 13

Tiempo compartido (Time Sharing). .......................................................................................... 13

Tiempo real (Real Time). ............................................................................................................ 14

TIPOS DE SISTEMAS OPERATIVOS............................................................................................ 15


SEGÚN LA UTILIZACIÓN DE RECURSOS..................................................................................................... 15

Sistemas monoprogramados. .................................................................................................... 15

Sistemas multiprogramados (Multitarea). ................................................................................ 15

Sistemas de multiprocesamiento. .............................................................................................. 16

SEGÚN EL NÚMERO DE USUARIOS.......................................................................................................... 17

Sistemas monousuario. .............................................................................................................. 17

Sistemas multiusuario. ............................................................................................................... 17

SEGÚN EL TIPO DE APLICACIONES .......................................................................................................... 17

V.S.M. UT3.1
Unidad Temática 2 Sistemas Operativos

Sistemas de propósito general. .................................................................................................. 18

Sistemas de propósito especial. ................................................................................................. 18

FUNCIONES DEL SISTEMA OPERATIVO EN GENERAL Y GESTIÓN DE RECURSOS ......................... 18


GESTIÓN DE PROCESOS Y DEL PROCESADOR. ........................................................................................... 18

EL BLOQUE DE CONTROL DE PROCESO(PCB). .......................................................................................... 19

EL BLOQUE DE CONTROL DEL SISTEMA (SCB). ......................................................................................... 20

PRIORIDADES ..................................................................................................................................... 20

INTERRUPCIONES................................................................................................................................ 21

TIPOS DE INTERRUPCIÓN...................................................................................................................... 22

Interrupciones hardware ........................................................................................................... 22

Interrupciones software ............................................................................................................. 22

EXCEPCIONES .................................................................................................................................... 22

Diferencias entre interrupciones y excepciones ......................................................................... 23

ADMINISTRACIÓN DEL PROCESADOR ...................................................................................................... 25

Estados de los procesos. ............................................................................................................ 25

Operaciones sobre procesos ...................................................................................................... 26

PLANIFICACIÓN DEL PROCESADOR ......................................................................................................... 27

ALGORITMOS DE PLANIFICACIÓN ........................................................................................................... 28

Primero en llegar, primero en ser servido(FCFS- First Come, First Served) ............................... 30

Round Robin (RR) ....................................................................................................................... 31

El siguiente proceso, el más corto (SJF - Shortest Job First)....................................................... 31

Próximo proceso, el de tiempo restante más corto SRTF - Shortest Remaining Time First)...... 32

Próximo proceso el de más alto índice de respuesta (HRN - Higa Response Next) ................... 32

Colas múltiples (MQ - Multiple Queues) .................................................................................... 33

PROCESO PARALELO, SINCRONIZACIÓN E INTERBLOQUEO. ......................................................................... 34

V.S.M. UT3.2
Unidad Temática 2 Sistemas Operativos

GESTIÓN DE MEMORIA. .......................................................................................................... 37


MONOPROGRAMACIÓN ...................................................................................................................... 38

La memoria dedicada................................................................................................................. 38

División de la memoria. El monitor residente ............................................................................ 38

Protección de la memoria .......................................................................................................... 39

Reasignación de direcciones ...................................................................................................... 39

Intercambio de almacenamiento (swapping). ........................................................................... 40

MULTIPROGRAMACIÓN ....................................................................................................................... 40

Protección de la memoria .......................................................................................................... 41

Particiones contiguas de tamaño fijo ........................................................................................ 41

Particiones contiguas de tamaño variable ................................................................................ 42

LA GESTIÓN DE LA MEMORIA VIRTUAL .................................................................................................. 43

Paginación.................................................................................................................................. 44

Paginas compartidas.................................................................................................................. 46

Segmentacion. ........................................................................................................................... 46

GESTIÓN DE PERIFÉRICOS. ...................................................................................................... 48


INTERFAZ PROCESADOR- PERIFÉRICO...................................................................................................... 49

Polling ........................................................................................................................................ 49

Interrupciones ............................................................................................................................ 49

Otras técnicas. Bufferig y spooling ............................................................................................ 52

GESTIÓN DE DATOS: SISTEMAS DE ARCHIVO Y GESTIÓN DE ESPACIOS DE ALMACENAMIENTO. 53


Métodos de acceso. ................................................................................................................... 53

Registros físicos y lógicos. .......................................................................................................... 54

Algoritmos de planificación de acceso a disco. .......................................................................... 55

Asignación del espacio de almacenamiento. ............................................................................. 56

V.S.M. UT3.3
Unidad Temática 2 Sistemas Operativos

EJERCICIOS ............................................................................................................................. 58

V.S.M. UT3.4
Unidad Temática 2 Sistemas Operativos

V.S.M. UT3.5
Unidad Temática 2 Sistemas Operativos

SISTEMAS OPERATIVOS.

PRESTACIONES DE UN SISTEMA OPERATIVO.

Un sistema operativo ha de tener al menos las siguientes prestaciones:

Cómodo: El sistema operativo ha de proporcionar un entorno adecuado para que el


ordenador sea más fácil y cómodo de utilizar.

Eficiente: Ha de permitir que los recursos del sistema se aprovechen con mayor eficiencia.

Con capacidad de evolución: El sistema operativo ha de ser construido de tal manera que
permita la introducción de nuevas funciones en el sistema, sin que por ello se vean afectados
los servicios que proporciona.

EL SISTEMA OPERATIVO COMO ADMINISTRADOR DE RECURSOS.

Podemos definir ordenador como una unidad programable constituida por una o más unidades de
proceso (CPU o procesador) y equipos periféricos, que se controlan por programas internamente
almacenados, y que pueden realizar cálculos, incluyendo operaciones aritméticas y lógicas, sin
intervención humana.

El sistema operativo es el responsable de la gestión de los recursos del ordenador


para el traslado, almacenamiento y proceso de datos.

RECURSOS.

Recurso es un componente hardware necesario para llevar a cabo un trabajo. En los


ordenadores existen cuatro tipos de recursos: el procesador, la memoria principal, el
almacenamiento secundario y los dispositivos de entrada salida.

El ordenador es un sistema programable formado por un conjunto de elementos


hardware que necesitan instrucciones que le indique como utilizar los recursos. El conjunto de
instrucciones o programas es lo que conocemos como soporte lógico o software.

V.S.M. UT3.6
Unidad Temática 2 Sistemas Operativos

El software que se crea para gestionar los recursos del sistema es lo que denominamos
sistema operativo y que lo podemos definir como:

Un sistema operativo es un conjunto de programas que, ordenadamente relacionados


entre sí, contribuyen a que el ordenador lleve a efecto correctamente el trabajo encomendado,
controla el funcionamiento del elemento físico (hardware), ocultando sus detalles al usuario.

Desde el punto de vista del usuario, el sistema operativo es una serie de programas y
funciones que ocultan los detalles de hardware, ofreciéndole una vía sencilla y flexible de acceso
al mismo, teniendo dos objetivos fundamentales:

 Seguridad: El sistema operativo debe actuar contra cualquier manipulación extraña, ya


sea accidental o premeditada que pudiera dañar la información, perjudicar a otros
usuarios o provocar un funcionamiento indeseado del sistema.

 Abstracción: Es la tendencia actual del software y de los lenguajes de programación de


ocultar lo más posible los detalles de más bajo nivel, intentando dar a los niveles
superiores una visión más sencilla, global y abstracta, ofreciéndoles operaciones para
manipular dichas estructuras ocultas, desconociendo por completo la gestión interna de
las mismas.

Gracias a la abstracción, los sistemas operativos enmascaran los recursos físicos, permitiendo
su manejo con funciones más generales que ocultan las básicas, constituyendo verdaderos
recursos ficticios o virtuales, que mejoran y son más potentes que los físicos. Desde el punto de
vista de un programa o usuario, la máquina física se convierte, gracias al sistema operativo, en
una máquina virtual, que presenta la ventaja respecto a la física de ofrecer más funciones de las
que normalmente soportaría esta última.

Desde el punto de vista del usuario, el sistema operativo proporciona servicios que no
están disponibles en la máquina subyacente. Estos servicios incluyen las facilidades de carga y
ejecución de programas, comunicación entre el usuario y los programas, permitiendo que se
ejecuten varios al mismo tiempo, gestión de contabilidad del sistema y almacenamiento de los
datos y programas.

Como resumen, podemos decir que el sistema operativo persigue alcanzar la mayor
eficiencia posible del hardware y facilitar el uso del mismo a los usuarios.

EVOLUCIÓN HISTÓRICA

V.S.M. UT3.7
Unidad Temática 2 Sistemas Operativos

Las funciones de los sistemas operativos son diversas y han ido evolucionando de acuerdo
con los progresos que la técnica y la informática han experimentado.

LOS PRIMEROS ORDENADORES

Eran de gran tamaño, extremadamente caros y difíciles de usar. Eran gestionadas por el
usuario desde la consola y conmutadores, único medio de acceder al ordenador. Cada usuario
tenía asignados periodos de tiempo durante los cuales sólo él podía utilizar el ordenador, siendo
el dueño absoluto de la máquina.

El programador introducía el programa en el ordenador a través de un dispositivo lector


de tarjetas, ejecutándolo en la máquina, seguía su ejecución, corregía el programa y obtenía los
resultados.

Estos ordenadores se basaban en dos factores: sus dispositivos de entrada /salida y su


habilidad para ejecutar un programa, pero no disponían de recursos lógicos adicionales, como
pudieran ser medios de almacenamiento secundario, por lo que tenían que tener los programas
escritos en tarjetas perforadas que tenía que leer el ordenador cada vez que se deseaba ejecutar
el programa.

En el caso de que al programador consumiese el tiempo de máquina que tenía concedido


sin haber terminado el trabajo, este debía suspenderlo en el estado en el que se encontrará en
ese instante, recopilar todo el material obtenido y retirarse hasta que tuviera de nuevo tiempo de
máquina.

En caso contrario si terminaba su trabajo en menos tiempo del asignado para


determinado trabajo, el tiempo máquina sobrante se desperdiciaba.

De esto de deduce que el aprovechamiento de los recursos de ordenador era escasísimo,


y por tanto carísimo, además de no ser satisfactorio para los usuarios.

SISTEMAS DE PROCESOS POR LOTES.

Para resolver el problema de los tiempos muertos en los que la máquina estaba desocupada, los
propietarios de las máquinas contrataron una o varias personas especializadas para ejecutar las
rutinas de carga y descarga, con el fin de mantener el sistema con la máxima ocupación posible,
recibiendo el trabajo de los usuarios para su ejecución. De esta forma, al recibir dichos trabajos,

V.S.M. UT3.8
Unidad Temática 2 Sistemas Operativos

los reunía y ejecutaba secuenciálmente consumiendo únicamente el tiempo que realmente


necesitasen y evitando en gran medida los tiempos de inactividad del procesador. Esta persona se
conoce como el operador de ordenador, que es un técnico dedicado únicamente a su
manipulación. A partir de este momento el programador deja de tener acceso directo al sistema.

En el caso de que existiesen errores en la ejecución de los trabajos, sé hacia un volcado en código
binario de la memoria para su entrega al programador, y se ejecuta inmediatamente el siguiente
trabajo, disminuyendo de esta manera los tiempos muertos.

También tenía la misión de agrupar los trabajos similares y ejecutarlos juntos, surge así el
concepto de «trabajo por lotes» o procesos batch. A sí tenia varios trabajos a compilar en COBOL
los agrupaban y compilaba todos seguidos, con lo cual se ahorraba cargar el compilador COBOL
cada vez que se compilaba un programa Cobol.

SECUENCIA AUTOMÁTICA DE TRABAJOS.

Analizando el trabajo del operador se observó que era bastante mecánico, y que se podía
automatizar en gran parte, pensando que podía diseñarse un programa que estuviese
permanentemente residente en memoria del ordenador y que fuese el que realizase muchas de
esas operaciones, surgiendo la secuencia automática de trabajos.

Se diseñó un pequeño programa que transfería automáticamente el control de un trabajo


a otro. Este programa se denominó Monitor Residente, que se puede considerar como el primer
sistema operativo. Residía permanente en memoria y en el momento de encender el ordenador
se daba control al monitor, el cual, a su vez, daba control al primer trabajo, de manera que cuando
terminaba su ejecución, el monitor tomaba el control de nuevo activando el siguiente trabajo, y
así sucesivamente. Para que el monitor supiera qué programa debía ejecutar, y qué datos iba a
tratar, se añadieron al paquete de tarjetas que contenía el programa unas tarjetas de control con
las directivas necesarias para dicho monitor. Estas tarjetas debían ceñirse a un lenguaje estricto
de comandos denominado Lenguaje de Control de Trabajos (J.C.L., Job Control Language).

A partir de este momento los operadores se encargaban de instalar y extraer cintas


magnéticas, mantener las impresoras con suficiente papel, y todas las operaciones físicas
necesarias para que el sistema funcione.

A pesar de estos avances, los dispositivos de entrada /salida, al ser de


funcionamiento mecánico, operaban a muy baja velocidad por lo que seguían produciendo

V.S.M. UT3.9
Unidad Temática 2 Sistemas Operativos

tiempos de espera. Así mientras las lectoras de tarjetas leían las tarjetas el procesador estaba
desocupado.

MODOS DE OPERACIÓN (ON-LINE Y OFF-LINE)

Hasta hora se trabajaba en On-line (Un trabajo cada vez).

Aunque los dispositivos de entrada/salida aumentaron su velocidad también lo hicieron


los procesadores por lo que los tiempos de espera seguían produciéndose.

Una ayuda las brindaron las cintas magnéticas, que eran más rápidas que la lectora de
tarjetas. Las tarjetas eran leídas por una lectora de tarjetas y copiadas sobre una cinta magnética.
Una vez que el programa estaba en cinta, el ordenador la leía y trataba. Los resultados eran
volcados en cinta que luego era volcada sobre una impresora.

Todas estas operaciones se realizaban sin la intervención del ordenador, por medio de
dispositivos especiales que sin estar conectados al ordenador, realizaban la transferencia a cinta.

Mientras el ordenador trataba otros trabajos que ya se habían copiado en cinta y que
podían ser cargados en memoria, pudiendo así realizar ambos trabajos simultáneamente, con el
consiguiente ahorro de tiempo. Es lo que se conoce como operación Off-line.

MULTIPROGRAMACIÓN.

Mientras un programa que sé esta ejecutando esta realizando operaciones de entrada


/salida el procesador esta desocupado, con lo cual no se esta aprovechando el tiempo de
procesador al 100%. Este tiempo que esta desocupado bien se podría utilizar para ejecutar otros
programas. Esta técnica de ejecutar varios programas a la vez recibe el nombre de
multiprogramación, que ejecuta varios programas, recibiendo el usuario la apariencia de que se
ejecutan varios programas a la vez.

La utilización de la multiprogramación ha dado lugar a diferenciar los trabajos de acuerdo


con sus características y necesidades de recursos, pudiendo clasificarlos en dos tipos.

En primer lugar los trabajos limitados por proceso, es decir, aquellos que consumen la
mayor parte de su tiempo en el tratamiento de la información y poco en entrada/salida y, en

V.S.M. UT3.10
Unidad Temática 2 Sistemas Operativos

segundo lugar, los trabajos limitados por entrada/salida que basan su acción en operaciones de
entrada/salida haciendo poco uso del procesador, el cual permanecerá la mayor parte inactivo.

El principal objetivo de la multiprogramación es mantener en memoria varios programas


activos.

Debido a esta técnica fue necesario replantearse la estructura del sistema operativo. A
partir de este momento se habla de núcleo de sistema operativo, que se compone de rutinas que
gestionan la memoria central, el procesador, los dispositivos y otros recursos, respondiendo a las
peticiones realizadas por los programas y las interrupciones de dichos dispositivos de
entrada/salida. De hecho, el núcleo entra en acción cuando, o bien lo requiere un programa, o
bien un dispositivo. Si no hay ningún programa que deba ser ejecutado, ni los dispositivos de E/S
necesitan atención, el procesador permanecerá inactivo.

Distintos mecanismos hardware necesarios para realizar correctamente la


multiprogramación:

1. -Mecanismos de interrupción: Son fundamentales para llevar a cabo la


multiprogramación.

2. - Temporización: Son mecanismos de medida de tiempo con el fin de controlar en todo


momento la ejecución de programas, pudiendo ser más justos en la distribución del
tiempo del procesador.

3. - Mecanismos de protección de almacenamiento: Son registros que nos indican los límites
de un programa, con el objeto de determinar si éste tiene permitido el acceso a dicha
zona de memoria o no.

4. - Reasignación dinámica de direcciones de memoria: Este mecanismo permite liberar una


zona de memoria ocupada por un programa y así poder utilizarla para otro fin.

PROCESAMIENTO DISTRIBUIDO

El sistema distribuido conecta un ordenador central al cual se conectan otros ordenadores


que pueden funcionar de forma autónoma o bien conectarse al ordenador central para acceder a
la información contenida en el mismo.

V.S.M. UT3.11
Unidad Temática 2 Sistemas Operativos

Todas estas técnicas han dado lugar a los sistemas cliente-servidor, que a su vez han dado
lugar a los sistemas cooperativos. Los sistemas cooperativos consisten en dividir la aplicación que
debe tratar los datos en dos partes, una de manipulación y gestión de dichos datos y otra de
presentación de los resultados al usuario. Cada una de las partes reside en distinto ordenador, y
se dice que cooperan entre sí para realizar el trabajo.

SISTEMAS MULTIPROCESADOR.

En la actualidad se han diseñado diversos sistemas constituidos por varios procesadores


unidos entre sí formando un único ordenador, y gestionados por un único sistema operativo.

Con los sistemas multiprocesador, los programas se pueden ejecutar sobre cualquier
procesador, pudiendo redistribuir constantemente la carga del sistema para que todos los
procesadores estén igualmente ocupados y terminen cuanto antes el trabajo encomendado
cooperando entre si para la realización del mismo.

SISTEMAS DE INTERFAZ GRÁFICA DE USUARIO.

Desde la aparición de los ordenadores, el sistema operativo ha sido el único interfaz


(medio de comunicación) entre la máquina y el usuario, basándose el diálogo en la utilización de
un lenguaje de comandos más o menos complejo. En los últimos años este sistema operativo se
ha ido completando con ciertas utilidades que han dado lugar a entornos gráficos, conocidos
como Sistemas de Gestión de Interfaces Gráficos de Usuario (Ejemplo Windows 3.x, Presentation
Manager, X-Windows, etc.), cuya finalidad es facilitar el trabajo al usuario.

Actualmente los sistemas ofrecen una fusión del sistema operativo con dichos entornos
gráficos, como por ejemplo Apple, Windows NT / 2000 / XP / Vista / 7; .

MODOS DE EXPLOTACIÓN DEL SISTEMA

V.S.M. UT3.12
Unidad Temática 2 Sistemas Operativos

Dependiendo del tipo de trabajo y los objetivos que debe cumplir cada sistema operativo
que utiliza la multiprogramación para dar el mejor servicio a los usuarios a quienes va destinado,
podemos clasificarlos como Sistemas de procesamiento por lotes, Sistemas de tiempo compartido
y Sistemas de tiempo real.

PROCESAMIENTO POR LOTES (BATCH).

En el proceso por lotes cada trabajo realiza un conjunto de pasos secuenciales relacionados entre
sí, asemejándose cada uno de ellos a un paquete de instrucciones que realizan las operaciones
requeridas. Todos los paquetes de un mismo trabajo de juntan para formar un lote. Por ejemplo
el primer paquete de un lote podría ser la compilación de un programa fuente, el siguiente el
linkado del programa objeto generado y finalmente la ejecución del programa ejecutable
resultado de la compilación.

Con el objeto de identificar cada paso de un trabajo, se definió el término proceso para
hacer referencia al programa en ejecución.

Los procesos por lotes han de cumplir los siguientes objetivos:

No existe la intervención del usuario durante la ejecución de los procesos que forman el
lote.

Procesamiento de trabajos largos.

No existen restricciones de tiempo, es decir no importa el tiempo que se necesite para


llevar a cabo el trabajo.

En definitiva consiste en lanzar al ordenador una serie de trabajos a realizar por el mismo.
Estos trabajos se ejecutan en secuencia (uno de tras de otro), sin la intervención del usuario.

TIEMPO COMPARTIDO (TIME SHARING).

V.S.M. UT3.13
Unidad Temática 2 Sistemas Operativos

Uno de los problemas que tiene el procesamiento por lotes, esta en la no-intervención del
usuario, por lo que los datos se les suministraban a los procesos antes de su ejecución. El tiempo
compartido permite que los procesos puedan pedir datos al usuario durante la ejecución de los
mismos utilizando la pantalla y el teclado. Así mismo también pueden devolver resultados al
usuario durante su ejecución.

Ahora, la entidad básica a controlar por el sistema no son los trabajos, sino las sesiones.
Una sesión comprende el intervalo de tiempo transcurrido desde el momento en que el usuario se
identifica en el ordenador hasta que lo abandona. Durante estas sesiones se pueden realizar
multitud de operaciones. Cuando se inicia una sesión, el sistema operativo activa un programa,
conocido como intérprete de comandos que es el que permite la comunicación entre el usuario y
el sistema operativo. Este programa es el encargado de transmitir al sistema los procesos que
quiere ejecutar el usuario. Durante una sesión, el usuario cree que todos los recursos del
ordenador los tiene asignados y disponibles, incluso aunque otras muchas sesiones de otros
tantos usuarios puedan estar activas simultáneamente.

Los sistemas compartidos han de tener las siguientes características:

Deberán ser muy conversacionales.

Permitir el acceso al sistema de varios procesos a la vez, compartiendo el


microprocesador.

Que el tiempo de respuesta del sistema ante una petición del usuario sea lo más corto
posible.

Es muy normal que los sistemas permitan tanto el procesamiento por lotes y el proceso a
tiempo compartido. De tal forma que los usuarios lancen procesos por lotes y a su vez puedan
seguir trabajando.

TIEMPO REAL (REAL TIME).

Se suelen emplear en aplicaciones destinadas al control de instalaciones. Su


funcionamiento se basa en responder a ciertos sensores que obtienen los datos de entrada al
sistema, procesarlos y actuar rápidamente sobre el sistema a controlar. Podemos decir que un
sistema trabaja en tiempo real si su tiempo de respuesta permite afectar (controlar y regular) al
medio en el cual opera. Sus principales características son:

V.S.M. UT3.14
Unidad Temática 2 Sistemas Operativos

Tiempo de respuesta inmediato.

La información debe estar permanentemente actualizada.

El sistema permanecerá mucho tiempo inactivo para así estar permanentemente


pendiente de cualquier evento de entrada de los sensores que este controlando.

TIPOS DE SISTEMAS OPERATIVOS

SEGÚN LA UTILIZACIÓN DE RECURSOS

SISTEMAS MONOPROGRAMADOS.

Estos sistemas son los que sólo admiten la ejecución de un programa en el sistema y
solamente es capaz de manejar un solo microprocesador. El programa se carga inicialmente
en memoria y permanece en ella hasta el final de la ejecución. Mientras, ningún otro
programa puede ser ejecutado, aunque quede espacio en memoria y el procesador este
desocupado por estar realizándose una operación de entrada/salida.

Este tipo de sistemas son los que se diseñaron inicialmente cuando se utilizaban los
monitores residentes y, actualmente, también son empleados en los ordenadores
personales y en los microordenadores,

SISTEMAS MULTIPROGRAMADOS (MULTITAREA).

Se basan en las técnicas de multiprogramación. Pueden admitir uno o varios usuarios a la


vez en un solo microprocesador. Son soportados por todos los grandes y medios sistemas e
incluso los ordenadores personales también admiten sistemas multiprogramados.

Se distinguen dos tipos de sistemas operativos multitarea.

V.S.M. UT3.15
Unidad Temática 2 Sistemas Operativos

. Multitarea apropiativa. Es la que se basa en quitar el control del procesador y de la


ejecución del programa al programa que se esta ejecutando. El sistema operativo se
encarga de controlar la ejecución del programa permitiendo así ejecutar otros programas.

. Multitarea cooperativa. El programa que se esta ejecutando tiene el control del


procesador y el mismo programa será el responsable de permitir que otras aplicaciones
(programas) se puedan ejecutar. El sistema operativo, por lo tanto, no toma el control
voluntariamente del procesador para poder decidir el programa que se debe ejecutar,
estando a merced de lo que dicte la aplicación que en este momento se esté ejecutando.

SISTEMAS DE MULTIPROCESAMIENTO.

Los dos sistemas anteriores se utilizan en ordenadores con un único procesador, pero la
actual potencia de los ordenadores permite incorporar varios procesadores
interconectados entre sí. Es decir en un sistema multiproceso el sistema operativo ha de ser
capaz de atender a varios procesadores a la vez y distribuir su carga de trabajo y éste es
capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas
trabajan de dos formas: simétrica o asimétricamente.

Asimétrica.

Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de


los procesadores el cual jugará el papel de procesador maestro y servirá como
pivote para distribuir la carga a los demás procesadores, que reciben el nombre de
esclavos.

Simétrica.

Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son
enviados indistintamente a cual quiera de los procesadores disponibles, teniendo,
teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este
esquema. Se dice que un thread es la parte activa en memoria y corriendo de un
proceso, lo cual puede consistir de un área de memoria, un conjunto de registros
con valores específicos, la pila y otros valores de contexto.

Un aspecto importante a considerar en estos sistemas es la forma de crear


aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que
fueron hechas para correr en sistemas monoproceso que no toman ninguna ventaja
a menos que el sistema operativo o el compilador detecte secciones de código

V.S.M. UT3.16
Unidad Temática 2 Sistemas Operativos

paralelizable, los cuales son ejecutados al mismo tiempo en procesadores


diferentes. Por otro lado, el programador puede modificar sus algoritmos y
aprovechar por sí mismo esta facilidad, pero esta última opción las más de las veces
es costosa en horas hombre y muy tediosa, obligando al programador a ocupar
tanto o más tiempo a la paralelización que a elaborar el algoritmo inicial.

SEGÚN EL NÚMERO DE USUARIOS.

Según el número de usuario que pueden acceder a un ordenador y de acuerdo al sistema


operativo que les dé servicio.

SISTEMAS MONOUSUARIO.

Son sistemas que sólo soportan un usuario por lo que no necesitan realizar ningún tipo de
gestión de usuarios ni controlar el acceso al mismo. Son los ordenadores personales.

Pueden ser monoprogramados (sólo se puede ejecutar un programa a la vez) y


multiprogramados que facilitan al usuario la ejecución de varios programas
simultáneamente. (DOS, Windows 3.x, Windows 9x,Me, Windows 2000 Pro,Windows XP,
Vista, 7, etc)

SISTEMAS MULTIUSUARIO.

Se basan siempre en la multiprogramación, permitiendo que varios usuarios accedan


simultáneamente al sistema y utilizar los mismos recursos. Normalmente serán sistemas de
tiempo compartido aunque también podrían ser de tiempo real. (UNIX, LINUX, Novell,
Windows NT, Windows Server, VMS (Digital), MVS (IBM), AS/400, etc )

SEGÚN EL TIPO DE APLICACIONES

V.S.M. UT3.17
Unidad Temática 2 Sistemas Operativos

SISTEMAS DE PROPÓSITO GENERAL.

En este tipo se engloban la mayoría de los sistemas operativos. Permiten cualquier


tipo de instalación ya sea monousuario, multiusuario, de tiempo compartido, de tiempo
real ,etc.

Este tipo de sistemas operativos se emplea en instalaciones informáticas que tengan que
dar servicio a un gran número de usuario con una amplia variedad de tareas. Tales sistemas
están diseñados para ejecutar un flujo continuo de trabajo. Cada trabajo lleva a cabo una
tarea específica para cada usuario en particular consistiendo, generalmente, en la ejecución
de uno o más programas. Por todo esto, los sistemas de propósito general pueden ser tanto
de procesamiento por lotes como de tiempo compartido.

SISTEMAS DE PROPÓSITO ESPECIAL.

Son los construidos para una determinada aplicación informática. No suelen ser sistemas
comerciales ni de gran difusión al estar creados para una aplicación específica.

FUNCIONES DEL SISTEMA OPERATIVO EN GENERAL Y GESTIÓN DE RECURSOS

El núcleo (kernel) de un sistema operativo es un conjunto de rutinas cuya misión es la de


gestionar el procesador, la entrada/salida y el resto de los recursos disponibles en la instalación
del sistema informático. Toda esta gestión la realiza para atender al funcionamiento y peticiones
de los trabajos que se ejecutan en el sistema.

GESTIÓN DE PROCESOS Y DEL PROCESADOR.

Un proceso es un programa en ejecución junto con el entorno asociado (registros, variables, etc.).
Es decir, un proceso contiene toda la información relativa al entorno donde se ejecuta.

V.S.M. UT3.18
Unidad Temática 2 Sistemas Operativos

La diferencia entre un programa (conjunto de instrucciones) y un proceso (instrucciones


ejecutándose) es obvia y fundamental para entender el funcionamiento de los sistemas
operativos.

Comparando el funcionamiento de un ordenador con un taller mecánico podríamos


establecer las siguientes comparaciones:

El mecánico sería el procesador que va a realizar el trabajo.

El manual de cada reparación sería el programa

Las herramientas serían los recursos (utilidades) proporcionadas por el sistema operativo.

Las piezas de recambio y las averiadas serian los datos.

La actividad de utilizar las herramientas para desmontar las piezas defectuosas


sustituyéndolas por otras nuevas siguiendo las instrucciones del manual equivaldría al
proceso.

Todo ello lo debemos entender dentro del concepto de la multiprogramación, es decir, el


mecánico puede cambiar de trabajo (proceso), ante la necesidad de una reparación urgente, en
cualquier momento, dando la sensación de estar arreglando varios automóviles a la vez. La
multiprogramación permite ejecutar varios procesos simultáneamente dando la sensación de
que se están ejecutando a la vez (en el mismo instante). Cuando se cambia el proceso en
ejecución, el momento en el que se suspende la ejecución de un proceso para realizar otro es
llamado como estado en ejecución de un proceso.

En definitiva un proceso es una actividad que se apoya en datos, recursos del sistema, el
estado en cada momento y un programa.

EL BLOQUE DE CONTROL DE PROCESO(PCB).

Cada proceso se representa en el sistema operativo por un conjunto de datos, que incluye toda la
información necesaria para definirlo; el estado, los recursos utilizados, registros, etc, forman el
llamado Bloque de Control de Proceso (PCB), dando nombre a la estructura donde se almacenará
toda la información que el sistema operativo necesite para poder ejecutar un programa.

V.S.M. UT3.19
Unidad Temática 2 Sistemas Operativos

Los objetivos del bloque de control de procesos son los siguientes:

- Localización de la información sobre el proceso por parte del sistema operativo.

- Mantener registrados los datos del proceso en caso de tener que suspender
temporalmente su ejecución o reanudarla.

La información contenida en el bloque de control es la siguiente:

- Estado del proceso. Información relativa al contenido del controlador del programa
(Program Counter, PC), estado de procesador en cuanto a prioridad del proceso, modo de
ejecución, etc., y por ultimo el estado de los registros internos de la computadora.

- Estadísticas de tiempo y ocupación de recursos para la gestión de la planificación del


procesador.

- Ocupación de memoria interna y externa para el intercambio (swapping).

- Recursos en uso (normalmente unidades de entrada/salida).

- Archivos en uso.

- Privilegios.

Muchos de estos datos pueden estar almacenados en memoria secundaria o en la memoria


principal, y acceder a ellos sólo cuando sea necesario actualizarlos, pero aquellos que sean
imprescindibles para el proceso siempre estarán en memoria principal.

EL BLOQUE DE CONTROL DEL SISTEMA (SCB).

Dependiendo del sistema operativo, los datos que el sistema utiliza para controlar sus
datos y la ejecución de los programas de los usuarios, se pueden considerar reunidos como una
estructura que se suele conocer con el nombre de Bloque de Control de Sistema (SCB).

PRIORIDADES

Algunos de los procesos requieren más tiempo, disponibilidad de recursos y una atención
más inmediata, mientras que otros no tienen ningún tipo de urgencia para su ejecución,
pudiéndose aparcar para beneficio de los anteriores.

V.S.M. UT3.20
Unidad Temática 2 Sistemas Operativos

Por ello, algunos procesos tendrán que acceder al procesador más veces que otros. Esto
se lleva a cabo por medio de la definición de la prioridad de cada proceso.

Dicha prioridad se expresa como un número entero. Así, si un proceso A tiene asignada la
prioridad 1 se ejecutará más rápido que otro que tenga la prioridad 2.

La prioridad asignada a cada proceso se puede realizar de las siguientes maneras:

1. - Asignada por el sistema operativo

El usuario no puede ejercer ningún control, ya que las prioridades las asigna el
sistema operativo en el momento de comenzar la ejecución del proceso.

2. - Asignadas por el propietario

Es el usuario el que asigna al proceso la prioridad con la que debe ejecutarse. Esta
libertad entraña riesgos como por ejemplo, dejar bloqueado al resto del sistema si
la prioridad excediera incluso la normal del sistema operativo. Es la más utilizada
en los sistemas de tiempo real, ya que hay ciertos programas que necesitan en
algún momento atender rápidamente algún evento cuyo tratamiento no pueda
ser interrumpido.

INTERRUPCIONES

Una interrupción es la presencia o señal que obliga al sistema operativo a tomar el control
del procesador para estudiarla y tratarla. Normalmente el procesador reconoce dos tipos de
eventos que pueden dar lugar a estos cambios: las interrupciones y las excepciones.

El procesador sabe que software ha de ejecutar ante una interrupción o excepción. Para
ello tiene en el bloque de control del sistema (SCB) las direcciones de rutinas que deben ejecutar
ante la presencia de un determinado evento.

Cuando se produce una interrupción en el sistema, debe existir algún procedimiento


que permita tratarla. Para ello el sistema operativo toma el control del procesador
suspendiendo momentáneamente la ejecución del proceso que estaba tratando.

Cada tipo de interrupción tiene asociada una rutina específica cuya dirección conoce
el sistema operativo. Cuando se produce la interrupción el procesador pasa a ejecutar la
rutina asociada a dicha interrupción y cuando termina continua con la ejecución del proceso
que quedo suspendido cuando se produjo la interrupción.

V.S.M. UT3.21
Unidad Temática 2 Sistemas Operativos

TIPOS DE INTERRUPCIÓN.

Podemos englobarlas en tres categorías:

INTERRUPCIONES HARDWARE
Se producen de forma inesperada, simultánea e independientemente del
procesamiento, por un agente distinto al procesador. Sus características son:

a) Interrupciones de entrada/salida: Son iniciadas por los dispositivos de entrada/salida


como una impresora, pantalla o las tarjetas controladoras de las mismas.

b) Interrupciones externas: Son causadas por diferentes elementos hardware del


ordenador, como por ejemplo, el reloj de interrupción.

c) Interrupciones de reinicio: Cuando por un fallo de alimentación, o por la pulsación de


la tecla de reinicio, el sistema se debe ejecutar otra vez desde el inicio.

INTERRUPCIONES SOFTWARE

Consiste en la llamada al sistema operativo para que realice una determinada


tarea desde el proceso que se esta ejecutando.

EXCEPCIONES
Trata los eventos que se puedan producir por errores que no puede controlar el proceso
en ejecución.

La naturaleza impredecible de este tipo de problemas hace que la programación


secuencial normal sea inadecuada para tratarlos.

Los problemas que tratan las excepciones pueden ser de tres tipos:

a) Fallos hardware y software que afecten al proceso, por ejemplo una división por 0.

V.S.M. UT3.22
Unidad Temática 2 Sistemas Operativos

b) Eventos anómalos, como el desbordamiento de una variable, o una llamada al sistema


operativo que no se ha completado satisfactoriamente.

c) Datos de entrada incorrectos suministrados por el usuario del programa.

DIFERENCIAS ENTRE INTERRUPCIONES Y EXCEPCIONES

1. Las interrupciones se presentan inesperadamente y sin relación con el proceso


en ejecución, mientras que las excepciones se producen como efecto directo de una instrucción
concreta del proceso que se esta ejecutando.

2. Las rutinas software que tratan las excepciones forman parte programa en
ejecución, mientras que las rutinas que tratan loa interrupciones son eventos generales que
afectan al sistema en general y que no están relacionadas ni soportadas por los procesos en
ejecución, siendo rutinas del sistema operativo las que tienen la misión de llevarlas a cabo.

3. Las interrupciones suelen tener asociados niveles de prioridad para su


tratamiento, mientras que las excepciones no.

4. Si se producen varias interrupciones simultáneamente, sólo una se tratará,


quedando bloqueadas el resto. Sin embargo, las excepciones no se pueden producir varias al
mismo tiempo.

V.S.M. UT3.23
Unidad Temática 2 Sistemas Operativos

V.S.M. UT3.24
Unidad Temática 2 Sistemas Operativos

ADMINISTRACIÓN DEL PROCESADOR

Todos los procesos en ejecución tienen unas características que los identifican. Cada proceso
tiene asignado un número de proceso o PID (Process IDentificator) a través del cual se puede
parar el proceso, reanudarlo, eliminarlo, cancelarlo, etc. El sistema operativo nos provee de
herramientas para manejar los procesos, ver su estado de ejecución, tamaño, uso de la CPU etc.

ESTADOS DE LOS PROCESOS.

Estados activos

Estos estados son aquellos en el que el proceso compite por el procesador, o esta en
condición de poder hacerlo y pueden dividirse de la siguiente forma:

Ejecución Es cuando un proceso tiene el control del procesador. En un sistema con un sólo
procesador, en este estado, sólo puede estar un proceso.

Preparado Procesos que están dispuestos ha ser ejecutados pero que no lo están debido a
que otro proceso tiene el control del procesador.

Bloqueado Los procesos que no pueden ejecutarse porque han realizado operaciones que
requieren una espera, como las de entrada/salida y que no han finalizado.

Proceso Zombi, es aquel que ha acabado de ejecutarse, pero aún faltan por liberar
algunos recursos, por lo que el proceso puede considerarse todavía en estado activo en el
sistema.

Estados inactivos

Son los procesos que no compiten por el procesador, pero que pueden volver a hacerlo
cuando sean activados. Para el sistema operativo es como si no existieran Este estado lo podemos
dividir en:

V.S.M. UT3.25
Unidad Temática 2 Sistemas Operativos

Suspendido bloqueado: son los procesos que se han suspendido mientras esperaban un
evento, sin que hayan desaparecido las causas de su bloqueo.

Suspendido preparado: son los procesos que han sido suspendidos y no tienen causas
para estar bloqueados. Por ejemplo cuando un proceso que estaba bloqueado es
suspendido por el usuario.

OPERACIONES SOBRE PROCESOS

Los sistemas operativos proporcionan una serie de funciones o primitivas con el objeto de
facilitar dicha manipulación, que pueden ser ejecutadas desde el proceso en ejecución por medio
de llamadas al sistema operativo, o desde el intérprete de comandos por el usuario. Las más
comunes son:

Crear: Crea un proceso, requiriendo los siguientes argumentos: Nombre y prioridad del
proceso.

Ante esta petición el sistema operativo busca un hueco libre en la lista de PCB, y cuando
lo encuentra, crea el PCB del proceso con todos los datos necesarios para comenzar su
ejecución, le asigna los recursos que necesite, y lo inserta en la cola de procesos
preparados.

Destruir un proceso: Elimina un proceso del sistema operativo, es decir destruye su PCB. Lo
que puede representar un problema si el proceso destruido tiene procesos hijos.

Cambiar la prioridad de un proceso.

Dormir o bloquear la ejecución de un proceso: Hace que un proceso quede bloqueado


durante un determinado periodo de tiempo. Situación que se suele dar cuando un proceso
está a la espera de un recurso (impresora, CD-ROM, etc) que está utilizando otro proceso.

Despertar un proceso: Es una forma artificial de desbloquear un proceso, se emplea


normalmente para procesos que han sido dormidos.

Suspender un proceso: Suele emplearse en situaciones de mal funcionamiento del sistema o


sobrecarga del mismo. El proceso se podrá reanudar posteriormente con la orden de
reanudar un proceso.

Reanudar un proceso: Activar un proceso suspendido.

V.S.M. UT3.26
Unidad Temática 2 Sistemas Operativos

PLANIFICACIÓN DEL PROCESADOR

Se conoce como planificación al objetivo de dar servicio a todos los procesos que
compitan en un momento dado por los recursos del ordenador. Podemos distinguir varios niveles
de planificación:

PLANIFICACIÓN A LARGO PLAZO (PLANIFICADOR DE TRABAJOS).


Es el encargado de crear los procesos necesarios para la realizar los trabajos, creándose
una cola donde se colocan, según se piden por el usuario, extrayéndose de la misma cuando
pueden ser cargados en memoria.

Este nivel sólo existe en los sistemas de procesamiento por lotes donde la decisión del
proceso a ejecutar depende de las necesidades de recursos y su disponibilidad. En los sistemas de
tiempo compartido tiene como única misión cargar los programas que se desean ejecutar en
memoria. Este nivel, es por tanto, el encargado de crear los procesos.

PLANIFICACIÓN A MEDIO PLAZO (PLANIFICADOR DE PROCESOS INTERACTIVOS).


Decide si un proceso que está en ejecución en estado bloqueado o suspendido debe ser
extraído de la memoria temporalmente. Posteriormente, cuando el sistema se encuentre más
descargado, devolverá dicho proceso a la memoria y al estado de ejecución. Esta técnica se
conoce con el nombre de swapping (intercambio).

PLANIFICACIÓN A CORTO PLAZO (PLANIFICADOR DEL PROCESADOR).


Es el encargado de decidir cómo y cuándo tendrá acceso al procesador un proceso que
está preparado para utilizarlo. Por lo tanto, lleva a cabo las funciones de multiprogramación,
estando siempre residente en memoria y ejecutándose con mucha frecuencia (aproximadamente
cada 20 milisegundos); por ello, debe ser de ejecución muy rápida. Da servicio a los servicios
interactivos, para que el usuario no perciba que esta compartiendo el procesador con otros
usuarios.

V.S.M. UT3.27
Unidad Temática 2 Sistemas Operativos

ALGORITMOS DE PLANIFICACIÓN

El planificador del procesador (planificador a corto plazo) tiene como misión la asignación
del procesador a los procesos que están preparados. A su vez, cuando el proceso haya terminado
su ejecución totalmente, éste habrá dejado de existir para el planificador.

Podemos definir un planificador del procesador por las siguientes características:

El modo de decisión del planificador.

El cálculo de la prioridad interna.

El modo de regulación de la planificación

El sistema operativo, en función del modo de decisión, evaluará la prioridad de todos


los procesos existentes, de manera que los procesos con mayor prioridad serán los que
antes alcancen el procesador, aplicándose la regulación en el caso de que varios
procesos tengan la misma prioridad.

Decisión de planificación.

Estudia la prioridad de los procesos y su posterior ejecución. Hay dos tipos:

Apropiativas: Pueden interrumpir la ejecución de un proceso con el fin de estudiar si


puede seguir siendo ejecutado o, por el contrario, debe ser otro el que lo haga, quedando este
último bloqueado, o bien en espera de volver a acceder al procesador. La decisión se lleva a cabo
cuando un nuevo proceso accede al sistema, cuando se bloquea un proceso cuando esta en
ejecución, o, periódicamente cuando finaliza el tiempo concedido al proceso en ejecución. Puede
ser utilizado para los sistemas operativos de tiempo compartido y de tiempo real.

No apropiativas: Un proceso nunca abandona el procesador hasta que finaliza o se


bloquea por alguna razón. Se emplea en los procesos por lotes y no es adecuado para los procesos
compartidos o de tiempo real.

V.S.M. UT3.28
Unidad Temática 2 Sistemas Operativos

CÁLCULO DE PRIORIDAD

Este cálculo se lleva a cabo por una función que será diferente en cada sistema
dependiendo de los parámetros que la. La prioridad hallada de esta manera se denomina
prioridad interna y que es fijada por el sistema, para diferenciarla de la que establezca el usuario
para sus programas o prioridad externa. La prioridad interna calculada por el sistema operativo
obedece a los siguientes parámetros:

Necesidades de memoria

Tiempo de procesador utilizado por el proceso

Tiempo que lleva el proceso cargado en el sistema

Tiempo total de servicio

Prioridad externa definida por el usuario

Carga del sistema

Regulación

Son reglas que definen el mecanismo por el cual el sistema operativo decidirá qué
proceso debe acceder al procesador entre todos los que estén en igualdad de condiciones.

Para comprender las distintas políticas de planificación utilizaremos el siguiente ejemplo de


procesos a ejecutar por el procesador:

Proceso Instante de Tiempo de


llegada ejecución (CPU)

0 3
A

V.S.M. UT3.29
Unidad Temática 2 Sistemas Operativos

B 1 5

C 4 2

D 5 6

E 8 4

PRIMERO EN LLEGAR, PRIMERO EN SER SERVIDO(FCFS- FIRST COME, FIRST SERVED)

Bajo FCFS, el procesador ejecuta cada proceso hasta que termina. Los procesos en la cola
de preparados esperan su turno en el orden en el que han sido cargados en el sistema. El
mecanismo que concede el acceso al procesador de los procesos se basa únicamente en el orden
de acceso de llegada de los procesos al sistema. Es predecible y los procesos largos harán esperar
a los más cortos.

A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Llegada (preparado)

Tiempo de ejecución

Proceso Instante de Tiempo de Ciclo Ciclo


llegada ejecución (CPU)
inicial final

V.S.M. UT3.30
Unidad Temática 2 Sistemas Operativos

0 3 0 2
A
B 1 5 3 7

C 4 2 8 9

D 5 6 10 15

E 8 4 16 19

ROUND ROBIN (RR)

Se conoce como asignación cíclica. Asigna a cada proceso un tiempo, transcurrido el cual
cede el control al siguiente proceso, quedando el proceso cancelado al final de la cola de procesos
preparados.

A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Tiempo asignado a cada proceso: 2

EL SIGUIENTE PROCESO, EL MÁS CORTO (SJF - SHORTEST JOB FIRST).

Escoge de la cola de procesos preparados el que necesite menor tiempo para su


ejecución. Este algoritmo puede ser combinado con el algoritmo Round Robin para ser mas justos
en la asignación del procesador.

V.S.M. UT3.31
Unidad Temática 2 Sistemas Operativos

A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

PRÓXIMO PROCESO, EL DE TIEMPO RESTANTE MÁS CORTO SRTF - SHORTEST


REMAINING TIME FIRST).
Es una mezcla de los dos anteriores con alguna variante. Se asigna un tiempo de ejecución
a los procesos y cuando cambia de proceso, por haber consumido el tiempo asignado, ejecuta el
proceso que este en la cola de preparados que menos tiempo de ejecución necesite para terminar
de ejecutarse.

A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Tiempo asignado: 2

PRÓXIMO PROCESO EL DE MÁS ALTO ÍNDICE DE RESPUESTA (HRN - HIGA RESPONSE


NEXT)

V.S.M. UT3.32
Unidad Temática 2 Sistemas Operativos

Se basa en hacer variable la prioridad interna de un proceso, calculándola


constantemente por medio de la expresión: P = (W+T)/T donde:

P es la prioridad del proceso

W es el tiempo que lleva el proceso en la cola de preparados

T es el tiempo de ejecución del proceso.

En un principio p valdrá 1 e irá aumentando paulatinamente a medida que el


proceso permanezca en la cola de procesos preparados, e irá disminuyendo cuanto más tiempo
esté en ejecución.

PA=(0+3)/3 PB=(2+5)/5 PC=(4+2)/2 PD=(5+6)/6 PE=(2+4)/4


PA=1 PB=3,5 PC=3 PD=1,833 PE=1,5

A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Nota: Este algoritmo puede ser implementado junto con otro de los algoritmos vistos anteriormente.

COLAS MÚLTIPLES (MQ - MULTIPLE QUEUES)

Se utiliza cuando los procesos se pueden agrupar en distintas colas, con distinta
planificación, para darles el servicio que realmente necesitan. Por ejemplo procesos foreground

V.S.M. UT3.33
Unidad Temática 2 Sistemas Operativos

(interactivos) y background (batch, no interviene el usuario), que necesitan diferentes tiempos de


respuesta y, por lo tanto, pueden ser gestionados por diferentes algoritmos de planificación.

Divide la cola de procesos preparados en varias colas separadas, de manera que


los procesos se asignan de forma permanente a una determinada cola según sus necesidades y
tipo. Cada cola tiene asignado un algoritmo de planificación diferente y comparten el tiempo de
procesador entre las colas.

PROCESO PARALELO, SINCRONIZACIÓN E INTERBLOQUEO.

Las técnicas de multiprogramación y los sistemas multiprocesador, donde se pueden


ejecutar varios procesos simultáneamente compartiendo los mismos recursos, suelen dar lugar a
importantes conflictos que deben ser resueltos por el gestor de procesos y, por lo tanto, del
procesador. Para ello los sistemas operativos ofrecen a los usuarios diversos mecanismos y
facilidades para poder controlar la ejecución de los procesos en cuanto a su acceso a los mismos
datos, con el fin de evitar los posibles conflictos que pudiesen surgir.

Conceptos que se van a utilizar:

 Paralelismo: Es la ejecución de varias actividades en varios procesadores al mismo tiempo.


Este es un concepto físico, ya que el paralelismo sólo puede existir ante la presencia de varios
procesadores. Si sólo existe un procesador, la multiprogramación consigue dar una apariencia
de paralelismo, ya que desde el punto de vista del usuario parecerá que se ejecutan varios
procesos a la vez. Aunque sólo un proceso se ejecuta por el procesador en un instante
determinado.

 Concurrencia: Se produce cuando varias actividades se ejecutan simultáneamente y precisan


utilizar los mismos recursos, debiendo sincronizarse para actuar conjuntamente. Es un
concepto que hace referencia a la utilización de más de un proceso del mismo recurso, como
puede ser estar utilizando el mismo fichero simultáneamente, o la utilización de dos o más
actividades de usuario del mismo programa editor de textos.

Con respecto a la concurrencia puede presentarse el siguiente problema. Supongamos


que un proceso esta grabando un registro en un fichero y su tiempo de procesamiento

V.S.M. UT3.34
Unidad Temática 2 Sistemas Operativos

termina sin haber terminado de realizar la escritura del registro esperando un nuevo turno
para terminarla. Si en ese intervalo de espera otro proceso lee ese registro, no obtendrá la
información deseada. Este problema no lo soluciona el sistema operativo si no que debe ser
el programador en su programa el que lo resuelva. Para ello se utiliza el concepto de
exclusión mutua en la que una actividad impide que otras puedan tener acceso a un dato
mientras se encuentra realizando una operación sobre el mismo. En nuestro ejemplo el
programador bloquearía el registro que esta grabando, impidiendo que se pueda acceder al
mismo hasta que no finalice la grabación del mismo.

 Sincronización: Si una actividad desea impedir que otra acceda a ciertos datos compartidos
mientras no se cumpla determinada condición como, por ejemplo, haber terminado de operar
con dichos datos, deberemos sincronizar las actividades con dicha condición. La sincronización
es necesaria para asegurar la exclusión mutua.

 Interbloqueo

En un sistema operativo multiprogramado son muchos los procesos que pueden estar
activos al mismo tiempo. Podría darse el caso de que varios procesos intentasen realizar
operaciones con un mismo recurso, pudiendo ser fuente de problemas.

Un recurso es tanto un dispositivo hardware como una cierta cantidad de información


(por ejemplo un registro de un fichero). Cada recurso sólo puede ser utilizado por un proceso en
un instante dado.

Los recursos se pueden clasificar en dos grupos :

Reutilizables en serie :son los que sólo los puede utilizar un proceso quedándose el resto
de los procesos que intenten usarlo bloqueados.

Consumibles : Son los recursos que una vez utilizados por un proceso desaparecen,
exigiendo que haya un proceso productor y un consumidor. Este es el caso de los procesos que
envían información por medio de mensajes, los cuales se crean y se consumen.

V.S.M. UT3.35
Unidad Temática 2 Sistemas Operativos

El interbloqueo lo podemos definir como : Un conjunto de procesos ha alcanzado un


estado de interbloqueo, si cada uno de ellos espera que tenga lugar un suceso, que sólo puede ser
producido por alguno de los procesos de dicho conjunto.

Un ejemplo de interbloqueo sería el caso de dos programas A y B ejecutándose en un


ordenador y ambos trabajando con dos ficheros F1 y F2. El programa A leerá datos del fichero F1 y
los graba en el fichero F2. A su vez, el proceso B realizará las mismas operaciones que el A pero
leyendo de F2 y grabando en F1. Se produce la siguiente situación en un momento determinado :
A ha solicitado utilizar el recurso fichero F1 para lectura, y se lo ha asignado el sistema operativo,
y trabaja con F1 sin tener asignado el fichero F2. Mientras el programa B ha solicitado leer de F2 y
el sistema operativo le concede el acceso al recurso fichero F2. Si B continua el proceso llegará el
momento en que necesite el fichero F1 para grabar los resultados , pero como lo tendrá asignado
A, se quedará bloqueado esperando a que tenga permiso para utilizarlo. Mientras el programa B
continua con el recurso fichero F2 asignado ya que lo sigue necesitando. Por otro lado A , también
necesitará utilizar en un futuro próximo el fichero F2 pero como lo tiene asignado B se bloqueará
esperando a que lo liberé el proceso B , mientras siguen sin liberar el recurso F1, pues lo sigue
necesitando. Ambos procesos se quedan bloqueados esperando la liberalización de un recurso
que no se producirá nunca, situación que se conoce como interbloqueo.

En cualquier sistema que existen procesos en espera por operaciones sobre recursos y por
las decisiones de planificación del sistema operativo , es posible que un proceso quede esperando
indefinidamente por el recuso deseado, mientras otros reciben la atención del sistema. Esta
situación es conocida como postergación indefinida y la podemos definir de la siguiente manera :
Un proceso sufre postergación indefinida si no puede proseguir su ejecución debido al continuo
procesamiento de otros de mayor prioridad o preferencia.

V.S.M. UT3.36
Unidad Temática 2 Sistemas Operativos

GESTIÓN DE MEMORIA.

Para poder procesar un programa en un ordenador es necesario que, previamente, tanto


el programa como los datos que maneja estén cargados en la memoria principal. Tanto el
procesador como los dispositivos se E/S acceden a ella para leer y/o grabar la información que
manejan.

La memoria física puede verse como una sucesión de bytes o palabras, cada una con su
propia dirección, de tal forma que se puede acceder de forma directa indicando dicha dirección.
Se denomina tiempo de acceso a la memoria al que transcurre entre el inicio y el fin de una
operación de lectura o escritura sobre la misma. Tiempo de memoria marca el retraso que impone
el hardware entre el fin de una operación y el inicio de la siguiente. Estos dos conceptos indican la
velocidad de acceso a la memoria principal.

• Dirección lógica .- generada por la CPU, también referida como dirección virtual.

• Dirección física.- dirección vista por la unidad de memoria.

Fragmentación.

• Fragmentación externa.- existe suficiente espacio físico en memoria para contener un


requerimiento, pero no es contiguo.

Libre (20K) Existen 40K de memoria total libre pero no es


contigua, es decir, un programa que ocupe 30K
no podría ejecutarse por no disponer de
suficiente memoria contigua . Si se
P3 (50K) compactase la memoria el programa se podría

V.S.M. UT3.37
Unidad Temática 2 Sistemas Operativos

Libre (20K) ejecutar.

P1(60K)

S.O.

• Fragmentación interna.- cuando la memoria asignada a un recurso es mayor que la que


requiere.

Tamaño part. 60K En una de las particiones quedan 10K no


utilizados, en la otra 20K, en este caso, no hay
P3 (50K) memoria libre, es decir, aunque tengamos un
programa de 10K este no podrá ser ejecutado,
Tamaño part. 40K hasta que no se libre memoria.

P1(20K)

S.O.

MONOPROGRAMACIÓN

LA MEMORIA DEDICADA

Los primeros ordenadores se utilizaban en régimen dedicado. El programador disponía


por completo del hardware y utilizaba la memoria a su antojo. No existía sistema operativo ni
gestor de memoria. Es el programador el que gestiona la memoria desde el programa.

DIVISIÓN DE LA MEMORIA. EL MONITOR RESIDENTE

V.S.M. UT3.38
Unidad Temática 2 Sistemas Operativos

La introducción de los sistemas operativos para manejar mejor el hardware dividió la


memoria principal en dos zonas, una utilizable por el usuario y otra reservada para la parte
residente del propio sistema operativo, también llamada monitor que, entre otras funciones, se
encargará de gestionar la memoria. Este reparto de memoria introduce dos problemas :

. Como asegurar la independencia de ambas zonas (protección)

. Como asegurar que los programas de usuarios no se vean afectados por esta división de
la memoria.

PROTECCIÓN DE LA MEMORIA

Ya que el sistema operativo y los programas de usuario van a compartir la memoria


principal hay que proteger la zona del sistema operativo contra cualquier acceso ilegal del
programa que podría afectar al funcionamiento del sistema. Se establece una dirección de
frontera que limita la zona del sistema. Cualquier dirección que genere el programa de usuario se
comparará con dicha frontera, permitiendo el acceso si es mayor o igual y denegándolo si es
menor. El control lo realiza el propio hardware.

Sólo será necesario controlar las direcciones generadas por el programa. El sistema
operativo debe poder acceder a cualquier punto de la memoria(para poder cargar programas,
pasarles información, etc).

Si a un sistema operativo se le añaden nuevas funciones o se reprograman las existentes ,


variaran sus necesidades de memoria, y normalmente crecerá. Si la dirección frontera fuera
inamovible, dicha variación obligaría a cambiar el hardware y , por ello, se utiliza un registro
frontera que el propio sistema cargará durante su inicialización dimensionando la memoria que se
necesite el monitor según su tamaño.

REASIGNACIÓN DE DIRECCIONES

Una vez inicializado el sistema, el contenido del registro frontera indicará a partir del cual
puede cargarse el programa de usuario. Para ello será necesario reasignar las direcciones del
programa en función de la frontera. Existen dos formas de hacerlo, una estática y otra dinámica.

V.S.M. UT3.39
Unidad Temática 2 Sistemas Operativos

La asignación estática se realiza durante la compilación o bien durante la carga del


programa en memoria. De esta manera cualquier variación del tamaño del sistema operativo
exigirá una nueva compilación o carga del programa.

La alternativa es asignar las direcciones reales dinámicamente durante la ejecución. Un


dispositivo hardware interceptará cada dirección lógica generada por el programa y le sumará el
contenido del registro frontera. El resultado será la dirección real correspondiente.

Cualquiera que sea la técnica empleada impedirá que el usuario pueda manejar
direcciones reales. Su programa utilizará direcciones relativas que podrán variar de 0 al máximo
permitido por el sistema operativo. Este será el Espacio lógico de direcciones.

El espacio entre la dirección frontera y el tamaño de la memoria real recibe el nombre


Espacio físico de direcciones.

INTERCAMBIO DE ALMACENAMIENTO (SWAPPING).

La necesidad de atender a vario usuarios en los sistemas de tiempo compartido, impulso


el desarrollo de técnicas de intercambio de almacenamiento o swapping. Consisten en extraer un
programa de memoria para que pueda ser ocupado por otro que necesite ejecutarse.

Cuando el programa cargado en memoria quede a la espera de una operación de


entrada/salida, por ejemplo, el sistema lo descargará copiándolo exactamente como está en
memoria en dispositivos rápidos de almacenamiento secundario. En su lugar cargará el de otro
usuario, traído de dichos dispositivos, que esté preparado para usar el procesador.

Si mientras un programa permanece en memoria secundaria recibe datos, por ejemplo de


una operación de entada/salida, no los podrá recibir el la parte de memoria principal que tenía
asignada, para ello se utilizan espacios de memoria o buffers destinados a tal fin. Cuando el
programa vuelva a cargarse en la memoria principal , el sistema se encargará de pasarle la
información del buffer a la memoria, para que pueda tratarla.

MULTIPROGRAMACIÓN

Para permitir repartir el procesador entre varios procesos o usuarios, necesitamos


tenerlos en memoria. Por ello la memoria se divide en trozos, llamados Particiones o Regiones,

V.S.M. UT3.40
Unidad Temática 2 Sistemas Operativos

donde se cargarán los diferentes procesos. EL número de particiones indicará el grado del
multiprogramación del sistema.

PROTECCIÓN DE LA MEMORIA

Se utilizan dos registros hardware como Registros límite, de forma que sus contenidos
apunten a los límites superior e inferior de la Partición que se trate. Cada dirección generada
deberá estar comprendida entre dichos valores. La utilización de esta técnica exigirá que las
direcciones de memoria que utilice el programa sean absolutas , asignadas bien durante la
compilación o durante la carga del programa en memoria. Si se varia el programa necesitará una
nueva compilación o carga del programa para que se reasignen las direcciones de acuerdo a los
límites que ocupa el programa en memoria.

Otra solución más flexible consiste en cargar un registro con la dirección de comienzo de
la partición y otro con el tamaño de la misma, denominándose Registro Base y Límite. Ahora es
posible asignar dinámicamente por parte del sistema operativo las direcciones, ya que bastará
actualizar el contenido del registro base para apuntar
a otra zona de memoria. Cada dirección generada por
el proceso deberá ser menor que el contenido del
registro límite , y si es así se le sumará el contenido
del registro base para obtener la dirección absoluta
correspondiente. Los programas podrán cargarse en
cualquier partición de tamaño adecuado, bastará con
cambiar el registro base.

PARTICIONES CONTIGUAS DE TAMAÑO FIJO

Podemos dividir la memoria en particiones contiguas de tamaño fijo, el número de éstas y


sus tamaños se definirán al iniciar el sistema y quedarán fijados para toda la sesión. Consideremos
un ordenador de 48K de memoria real, de las que 15K las ocupa el sistema operativo, quedando
33K para los programas de usuario. Podemos inicializar el sistema con tres particiones de 14K, 12K
y 7K.

Cuando tenga que iniciar un sistema, el sistema le asignará una partición que pueda
contenerlo. Será necesario, por ello, que los programas declaren sus necesidades de memoria al
sistema.

Produce fragmentación interna de la memoria.

V.S.M. UT3.41
Unidad Temática 2 Sistemas Operativos

Intercambio

Esta técnica permite la gestión de las particiones de la memoria principal. Los


programas pendientes de un evento o interrupción (E/S), se pueden descargar de la memoria
principal y llevarlo a memoria secundaria, cargando en su lugar otro programa que se quiera
ejecutar.

La forma de realizarlo dependerá del tipo de asignaciones reales que utilice el


programa. Si estas se definen en la compilación o carga del programa, éstos se deberán ejecutar
en una partición determinada y sólo podrán intercambiarse con programas dirigidos a la misma
partición. Todo programa descargado de una partición deberá ser devuelto a la misma partición.

Si la asignación de direcciones reales se hace durante la ejecución, el intercambio


será más flexible y un programa podrá ser devuelto a una partición distinta a la que estaba.

PARTICIONES CONTIGUAS DE TAMAÑO VARIABLE

El inconveniente de las particiones de tamaño fijo radica en la dificultada de definir


particiones de tamaño adecuado para todos los trabajos que se deben tratar. Esta técnica asigna
dinámicamente la memoria a los trabajos de acuerdo a su tamaño.

Ahora el sistema operativo mantendrá una tabla interna donde registrará las zonas de
memoria disponible o huecos. A cada trabajo el sistema le asigna una partición del tamaño
solicitado, descontando dicha cantidad de la citada tabla.

Un ejemplo, supongamos que tenemos 256K y un sistema operativo de 40K, quedando


216K de memoria para los programas de usuario. En la cola de espera de preparados tenemos los
procesos T1 (60K), T2 (100K), T3 (30K), T4 (70K) y T5 (50K). Se cargan en un primer momento los
procesos T1, T2 y T3, quedando un espacio libre (fragmentación) de 26K. Cuando termina el
trabajo T2 queda un hueco libre de 100K, en ese hueco el sistema carga el trabajo T4 y se produce
una nueva fragmentación de 30K. Posteriormente termina el trabajo T1 y se cargará T5 con una
fragmentación de 10K. De esta manera la memoria se va troceando pudiéndose llegar a no poder
cargar programas por no haber espacio de memoria contiguo capaz de contener ninguno de los
procesos en espera, aunque la suma de espacio libre en memoria supere el espacio necesario para

V.S.M. UT3.42
Unidad Temática 2 Sistemas Operativos

cargar el siguiente proceso en espera. Produciendo con ello, fragmentación externa. Para resolver
este problema se aplican la siguiente técnica:

Compactación

Se utiliza por algunos sistemas para combatir la fragmentación que sufre la


memoria. Consiste en recolocar los espacios de memoria utilizados de tal forma que el espacio
libre este contiguo en memoria. Exige que los programas sean reubicables es decir que permitan
cambiar sus direcciones de memoria durante la ejecución de los mismos. Tiene el agravante del
tiempo consumido por el procesador para reubicar los programas en memoria.

LA GESTIÓN DE LA MEMORIA VIRTUAL

Hasta este momento se han estudiado las técnicas para la gestión de la memoria real, que
sólo admite programas que cupieran totalmente en memoria. Esto se resuelve con la utilización
de la memoria virtual. Realmente no todas las partes del programa se ejecutan normalmente,
como pueden ser las rutinas creadas para el tratamiento de errores por parte del programa, por lo
cual , no es necesario que todo el programa este residente en memoria para poder ejecutarlo
correctamente.

La memoria Virtual es una técnica de gestión de memoria que, combinando hardware y


software, permite la ejecución de programas parcialmente cargados en memoria real. Esta forma
de trabajar aporta ventajas importantes:

 La memoria lógica puede ser mayor que la real disponible.

 Puesto que cada programa ocupa menos memoria real, el índice de multiprogramación
aumenta al poderse cargar más procesos en memoria.

Gracias al uso de la memoria virtual se pueden ejecutar programas que a veces son mas
grandes que la memoria, por lo que no queda más remedio que ejecutarles por partes. El sistema

V.S.M. UT3.43
Unidad Temática 2 Sistemas Operativos

operativo toma las partes del programa y de datos que son realmente necesarios y los copia en
memoria, dejando el resto en disco (memoria secundaria). Cuando necesite las partes de
programa que están en disco las trae a memoria y devuelve al disco la parte del programa que
estaba cargada según se vaya necesitando.

El usuario no se dará cuenta de esta forma de ejecución del programa, en todo caso
puede ser una ejecución más lenta que si estuviera todo el programa cargado en memoria. El
usuario tiene la sensación de que todo el programa esta en memoria de hay el nombre de
memoria virtual o ficticia.

PAGINACIÓN.

La paginación permite asignar la memoria de forma discontinua. Con este fin la memoria
física se divide en trozos de tamaño fijo llamados armazones, marcos o frames y la lógica en
bloques del mismo tamaño llamados páginas.

Cada dirección que genere el procesador, será interceptada y dividida en dos


componentes:

 Un número de página(p)

 Un desplazamiento de página (d), que indica la posición que ocupa el byte indicado por la
dirección, contando desde el principio de la página.

Utilizando p como índice, el


sistema (su gestor de memoria)
recorrerá la Tabla de páginas hasta
localizar dicha página, a continuación
sumará d a la dirección de carga
correspondiente y obtendrá la
dirección real adecuada.

El sistema operativo mantiene internamente una tabla de páginas donde relaciona cada
página cargada en memoria con el frame que lo contenga, es decir, su dirección inicial en la
memoria real.

V.S.M. UT3.44
Unidad Temática 2 Sistemas Operativos

Esta función se realiza con


registros hardware ya que su acceso es
mucho más rápido.

Cada programa se divide en


páginas y estas se cargan en frames libres
que no tienen porqué ser continuos.

De esta manera se separa


definitivamente la memoria lógica del
usuario de la memoria física del
ordenador. Los programas de los usuarios
ya no están limitados por la memoria real disponible y el programador logra una independencia
importante respecto al hardware.

ALGORITMOS DE REEMPLAZAMIENTO DE PÁGINAS

Algoritmo de reemplazamiento FIFO

Es el más sencillo. Cuando se necesite una sustitución de elegirá aquella que lleve
más tiempo en memoria(primera en llegar, primera en salir).

Para controlar el tiempo de permanencia en memoria se utiliza una tabla en


memoria de las páginas cargadas en la misma en su orden de llegada.

Aunque una página lleve más tiempo en memoria, puede que sea la más utilizada
y entonces se sustituirá la página memos adecuada.

Pensemos en un programa editor utilizado por varios usuarios a la vez,


seguramente las páginas del programa editor serán las más antiguas y por lo tanto las primeras en
ser sustituidas, siendo las más utilizadas.

Este sistema es inadecuado para su utilización con sistemas de tiempo compartido, pero puede
ser útil en entornos batch (por lotes).

Algoritmo LRU.(Menos recientemente utilizada)

V.S.M. UT3.45
Unidad Temática 2 Sistemas Operativos

Este algoritmo considera que aquellas páginas muy usadas en el pasado reciente
lo serán también en el futuro. En el mismo sentido, las poco utilizadas en el pasado seguirán sin
usarse en el futuro y se deberá sustituir aquella que haya sido menos usada recientemente.

Para ello es sistema debe contabilizar de alguna manera el uso que tienen las páginas utilizando
diversos contadores:

PAGINAS COMPARTIDAS.

Es cuando varios procesos o usuarios comparten páginas cargadas en memoria. Es


especialmente útil para los sistemas de tiempo compartido. En la tabla de páginas de cada usuario
constarán las direcciones de páginas que son compartidas con otros usuarios. Puesto que estas
páginas compartidas son usadas por varios usuarios o procesos no puede ser alterado el
contenido de las mismas de tal forma que todos los usuarios obtendrán el mismo resultado.
Cuando el contenido de estas páginas son programas estos reciben el nombre de programas
reentrantes.

SEGMENTACIÓN.

La segmentación es una técnica distinta de gestión de memoria que pretende acercarse


más al punto de vista del usuario. Los programas se desarrollan, normalmente, en torno a un
cuerpo central desde el que se bifurca a otras partes, rutinas, o se accede a zonas de datos (tablas,
pilas, matrices, etc). Desde este punto de vista el programa es un conjunto de componentes
lógicos de tamaño variable, un conjunto de segmentos.

De esta manera, el espacio lógico de direcciones


se puede considerar como un conjunto de segmentos,
cada uno definido por su tamaño.

Toda dirección lógica se expresará mediante dos


valores: número de segmento, s, y desplazamiento
dentro del segmento d.

V.S.M. UT3.46
Unidad Temática 2 Sistemas Operativos

La segmentación del programa la realizará el compilador. En general es similar a la


paginación, teniendo en cuenta que ahora sí tiene sentido emplear una técnica para determinar la
colocación de los segmentos en memoria, pudiendo ser la del mejor ajuste que se emplee.

Esta técnica permite reducir la fragmentación interna de la memoria provocada por la


paginación, ya que asigna a cada programa la cantidad de memoria que requiere. Puede producir
fragmentación externa.

La carga de un programa en memoria exige la búsqueda de los huecos adecuados a sus


segmentos, y puesto que éstos son de tamaño variable, se ajustarán lo más posible a las
necesidades , produciéndose huecos pequeños.

La eficacia de la segmentación requiere, de igual forma que la paginación, el uso de


memorias cache para lograr unos tiempos de acceso más adecuados.

V.S.M. UT3.47
Unidad Temática 2 Sistemas Operativos

GESTIÓN DE PERIFÉRICOS.

Los dispositivos hardware, externos al ordenador dedicados a operaciones de


entrada/salida, también conocidos como periféricos, son elementos complejos y difíciles de usar
directamente por los procesos. El sistema operativo se encarga de gestionar estos dispositivos,
haciendo que sean transparentes a los procesos y programadores. El software de un sistema
operativo destinado a gestionar los periféricos viene a ser el 50 % del mismo. El sistema operativo
ha de proporcionar a programadores y procesos:

Comando que faciliten el uso de los periféricos

Aceptación y tratamiento de interrupciones

Gestión de errores

Que no haya que cambiar el programa en el caso de cambiar el dispositivo de entrada


/salida.

A su vez los dispositivos se pueden clasificar atendiendo al tipo de información que


manejan y cómo lo hacen, en :

 Organización en bloques: Manejan la información en bloques de tamaño fijo (256 a 1024


bytes) teniendo como característica principal el tratamiento de cada bloque como una
unidad independiente de las demás (por ejemplo, discos).

 Organización por caracteres : Entregan o aceptan cadenas de caracteres sin tener en


cuenta ninguna estructura prefijada. No son direccionables ni pueden realizar operaciones
de búsqueda (por ejemplo, terminales).

Clasificación de dispositivos en cuanto a su forma de organizar su información:

Tipo de dispositivo Bloques Carácter

V.S.M. UT3.48
Unidad Temática 2 Sistemas Operativos

Almacenamiento X

Terminales X

Impresoras X

Apuntadores X

INTERFAZ PROCESADOR- PERIFÉRICO.

El sistema operativo sólo conoce el momento en el que comienza una operación de


entrada/salida, pero no cuando termina. Para saberlo se utiliza una de las siguientes técnicas:

POLLING
Consiste en comprobar constantemente el estado del dispositivo. Tiene el inconveniente
de ocupar el procesador un tiempo indeseado.

INTERRUPCIONES
El procesador continúa ejecutando otros procesos y sólo cuando el dispositivo concluye la
operación llama la atención del procesador, interrumpiendole para que tenga conocimiento de
dicha situación y realice las acciones que considere necesarias, es decir, sirva la interrupción.

Los componentes que se utilizan para la conexión de los dispositivos al ordenador pueden
ser:

 Controladores

 Canales

Controladores.

V.S.M. UT3.49
Unidad Temática 2 Sistemas Operativos

En el caso de dispositivos complejos su conexión no se realiza directamente al


ordenador sino que se utiliza un Controlador o Adaptador, el cual contiene el dispositivo,
le controla y realiza la transferencia de datos. Cada controlador puede manejar varios
dispositivos del mismo tipo y modelo. Las controladoras o adaptadores necesitan de un
software para que exista comunicación entre el periférico y el microprocesador, este
software se denomina controlador o driver.

Cada controlador tiene una serie de registros que gestionan la comunicación con
el procesador, conocidos como registros del dispositivo. Estos registros tienen cuatro
misiones :

a. Informar del estado del dispositivo

b. Transferir instrucciones al dispositivo

c. Transferir datos del dispositivo

d. Transferir datos al dispositivo.

El sistema operativo realizará las operaciones de entrada/salida por medio de


comandos específicos del controlador que permiten el acceso a dichos registros. Cuando
un comando ha sido aceptado por dicho controlador, el procesador no volverá a ocuparse
de la operación de entrada/salida hasta que el controlador implicado le interrumpa para
indicarle que ha terminado de realizar la transferencia de datos solicitada.

En ese momento el procesador reconocerá la interrupción pasando a tratarla,


estudiando el estado del controlador y del dispositivo a través de los registros,
principalmente el de estado, con el fin de comprobar cuál ha sido la causa de dicha
interrupción para tomar, posteriormente, las acciones que estime apropiadas.

Drivers de Entrada / Salida

Un gestor de dispositivos o DRIVER es el software del sistema operativo formado por un


conjunto de rutinas y tablas que, formando parte del núcleo del sistema operativo, ejecutan y
controlan todas las operaciones de entrada/salida a realizar sobre cualquier dispositivo periférico
conectado a un ordenador y que son particulares o específicas del dispositivo en cuestión. Un
driver esta cargado constantemente en memoria.

V.S.M. UT3.50
Unidad Temática 2 Sistemas Operativos

Funciones de un driver

 Definir las características del dispositivo periférico para el sistema operativo y los
procesos de usuario.

 Asignar valores iniciales adecuados a los registros asociados al dispositivo en el momento


de arranque o encendido del sistema.

 Permitir que un proceso pueda acceder al dispositivo(OPEN), o bien retirarle dicho


permiso(CLOSE).

 Procesar las operaciones de E/S solicitadas por cualquier proceso que tenga permitido el
acceso al dispositivo (READ y WRITE).

 Cancelar toda operación de E/S en el momento en que sea necesario (KILL o CANCEL)

 Procesar las interrupciones hardware generadas por el dispositivo periférico.

 Tratar los errores y estado del dispositivo y comunicárselo al sistema operativo para que
este a su vez avise al usuario.

Canales

En los grandes ordenadores que soportan un gran número de dispositivos, los


controladores se conectan al procesador a través de un canal de entrada/salida
consistente en un procesador especializado para realizar operaciones de E/S. El
propósito de un canal es conseguir que los dispositivos sean tratados como virtuales,
abstractos o transparentes y descargar en lo posible al procesador central del ordenador
del trabajo de utilizarlos directamente.

Un canal es esencia un pequeño ordenador con capacidad para ejecutar sus


propios programas, denominados programas de canal (almacenados en la memoria
principal del ordenador) permitiendo liberar al procesador de las operaciones de
entrada/salida, una vez estas han comenzado a ejecutarse y aprovechándose este tiempo
para que el procesador se ocupe con otro proceso hasta que el canal haya terminado su

V.S.M. UT3.51
Unidad Temática 2 Sistemas Operativos

operación de entrada/salida. Se ejecutan en paralelo la operación de entrada/salida y otro


proceso ejecutado por el procesador. Cuando el canal termina la operación de E/S
provoca una interrupción, comunicando que la operación de entrada/salida ha concluido e
indicando al procesador que puede seguir ejecutando el programa suspendido por haber
solicitado el mismo una operación de entada/salida.

OTRAS TÉCNICAS. BUFFERIG Y SPOOLING

Buffering

Se utiliza con dispositivos lentos, para que el procesador no tenga que esperar mientras se
reciben datos del dispositivo.

Utiliza una memoria intermedia, buffer, para depositar los datos leídos o por grabar,
mientras el procesador se ocupa de otro proceso o de procesar la información anteriormente
recibida. Una vez lleno el buffer, el procesador recoge la información contenida en el mismo para
procesarla indicando al dispositivo que puede seguir transmitiendo información hacia el buffer.

Spooling

Con dispositivos de salida como cintas e impresoras se utiliza esta técnica para que el
procesador no tenga que esperar mientras se realiza la operación de entrada/salida. Para ello
utiliza la memoria secundaria (disco) donde se graba la información que por ejemplo se va a
imprimir en una impresora. El procesador genera la información grabándola en disco y la
impresora recoge la información de disco para imprimirla posteriormente.

V.S.M. UT3.52
Unidad Temática 2 Sistemas Operativos

GESTIÓN DE DATOS: SISTEMAS DE ARCHIVO Y GESTIÓN DE ESPACIOS DE


ALMACENAMIENTO.

Los usuarios necesitan disponer de un medio de almacenamiento donde mantener sus


programas en un cierto formato, programas fuente en desarrollo, textos para edición, datos, etc.
El hardware suministra esta capacidad de almacenamiento secundario mediante distintos
dispositivos periféricos: cintas, discos y CD-ROM que permiten guardar grandes cantidades de
información.

El sistema operativo es el encargado de gestionar los soportes físicos con el fin de


permitirle al usuario acceder a la información almacenada según diferentes técnicas. Son los
métodos de acceso.

Desde el punto de vista del usuario, la información se agrupa en unidades lógicas llamadas
Ficheros. Cada fichero es un conjunto de informaciones relacionadas entre sí según un criterio
establecido por el que crea dicho fichero.

MÉTODOS DE ACCESO.

Un método de acceso es un conjunto de rutinas y tablas que posibilitan acceder a la


información de los ficheros según un esquema lógico determinado, es decir, son los que el usuario
puede elegir para especificar cómo se va a leer y escribir la información en los ficheros.

Acceso secuencial.

Permite acceder a los registros de un fichero en el mismo orden en el que han


sido grabados. Una operación de lectura lee el siguiente registro y avanza el apuntador. La
escritura escribirá el siguiente registro lógico y avanza el apuntador. En este caso coinciden el
orden lógico de los registros con el orden físico en que han sido grabados.

Acceso directo.

V.S.M. UT3.53
Unidad Temática 2 Sistemas Operativos

Permite acceder arbitrariamente a cualquier registro del fichero. Así el usuario


podrá leer el registro 14, luego grabar el 123 y después leer el 7, sin tener que pasar por los
registros intermedios. Su uso queda limitado a los ficheros en disco. El usuario ve el fichero como
un conjunto de registros individualizados a los que puede acceder en cualquier orden. Por ello,
ante la petición de un registro determinado, el sistema operativo calcula la dirección del bloque
físico que lo contiene y accede a él directamente. Este cálculo es necesario ya que el usuario
suministra al sistema operativo la dirección relativa del registro a partir del primer registro
(registro 1), desconociendo el posicionamiento físico del registro en disco.

Acceso indexado.

En este caso se construye un índice o tabla de las relaciones entre las claves que
identifican a los registros y sus bloques físicos para cada fichero.

La localización de un registro se realizará accediendo primero a ese índice y con la


dirección del bloque correspondiente a la clave solicitada, se alcanzará el bloque adecuado.

REGISTROS FÍSICOS Y LÓGICOS.

El hardware de los dispositivos de almacenamiento determina el tamaño de la


unidad básica de información que puede accederse en cada operación de lectura o escritura.
Dicha unidad recibe el nombre de bloque o registro físico.

El usuario, por otro lado, maneja la información en unidades, denominados registros


lógicos o simplemente registros, compuestos de un número determinado de campo (registros de
clientes, de nómina, de piezas de almacén, etc). Un registro lógico puede estar formado por uno o
más, registros físicos.

Registro lógico: CLIENTES

DNI Nombre Dirección Teléfono

V.S.M. UT3.54
Unidad Temática 2 Sistemas Operativos

ALGORITMOS DE PLANIFICACIÓN DE ACCESO A DISCO.

En los sistemas multiprogramados pueden ser varios los procesos que soliciten
simultáneamente el acceso a disco y el sistema deberá mantener las peticiones de acceso en una
cola mientras atiende una de las peticiones. Para gestionar esta cola se pueden emplear uno de
los siguientes algoritmos:

Primero en llegar, primero en acceder(FCFS)

Según este criterio se sirven las peticiones en el orden en que llegan.

Primero el de menor tiempo de búsqueda(SSTF)

Atiende primero a la petición más cercana a la última servida, es decir aquella que
requiere un menor desplazamiento del brazo. Esto puede suponer que algunas peticiones tarden
mucho en ser atendidas, si hay peticiones posteriores más cercanas a la actual.

Exploración(Scan).

Ahora se establece un recorrido para el brazo del disco que va del primero al
ultimo cilindro y vuelta. En este recorrido irá atendiendo las peticiones más cercanas según el
sentido de desplazamiento. Es el más utilizado en los sistemas actuales.

Exploración circular(C-Scan)

Es similar al anterion, pero sólo atiende a las peticiones cuando se mueve en un


sólo sentido. Cuando llega al final vuelve al principio sin atender a las peticiones de acceso al
disco.

V.S.M. UT3.55
Unidad Temática 2 Sistemas Operativos

ASIGNACIÓN DEL ESPACIO DE ALMACENAMIENTO.

A la hora de asignar espacio a un nuevo fichero el


sistema puede optar por una de las siguientes soluciones:

Asignación contigua.

Crea el fichero en un grupo de bloques contiguos del disco. Cada entrada del directorio de
dispositivo del disco contendrá la dirección del bloque inicial del fichero y el número de bloques
que ocupa. Esta solución permite un rápido acceso al fichero una vez que el brazo se ha
posicionado en el bloque de inicio del fichero, pero provoca una gran fragmentación externa, ya
que al borrar ficheros, el espacio que ocupan puede ser insuficiente para nuevos ficheros y quedar
siempre sin utilizar. También puede representar un problema esta solución que el espacio
asignado inicialmente para el fichero sea insuficiente si el fichero crece en tamaño
posteriormente.

Asignación enlazada.

Este es un método de asignación no contigua, en el que cada fichero es una lista enlazada
de bloques de disco que pueden estar en cualquier dirección del mismo.

En el directorio del dispositivo se mantendrá por cada fichero un apuntador al primer bloque del
disco que ocupa el fichero. A partir del primero, cada bloque contiene un apuntador al siguiente y
así consecutivamente hasta el último. (Una
parte del bloque de datos contiene la
dirección del siguiente). De ésta forma no se
provoca fragmentación externa. Es ideal para
realizar accesos secuenciales a la información
contenida en los ficheros, pero, es
prácticamente inviable si se desean realizar
accesos directos a bloques. Esta es su
principal limitación. También tiene el
problema de que si se estropea un bloque, se
pierde el apuntador al siguiente y con ello el

V.S.M. UT3.56
Unidad Temática 2 Sistemas Operativos

fichero.

Asignación no contigua por lista enlazada


utilizando índices.

La asignación indexada agrupa todos los


apuntadores en un bloque de índices. Es decir se
sacan todos los punteros de los bloques y se colocan
en una tabla, única para todos los ficheros. En este
caso el bloque de datos, será solamente para datos o
programas. Para que resulte más eficaz el acceso
conviene que la tabla de índices esté en memoria.

No produce fragmentación externa, y permite acceso


directo.

V.S.M. UT3.57
Unidad Temática 2 Sistemas Operativos

EJERCICIOS

o Representa gráficamente la gestión que realiza la CPU si utiliza algoritmos de operación


round-robin y FCFS

Proceso Instante de Tiempo de


llegada ejecución (CPU)
A 4 4
B 7 3
C 3 4
D 2 2
E 5 5

FCFS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Round Robin: Tiempo asignado a cada proceso: 1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

V.S.M. UT3.58
Unidad Temática 2 Sistemas Operativos

o Realiza 20 preguntas con sus respectivas respuestas todas ellas relacionadas con los
sistemas operativos. Puedes hacer uso de los apuntes para realizar las preguntas o
consultar libros o Internet.

o La respuesta no debe sobrepasar las tres líneas.

o 10 de las preguntas han de ser de tipo test con al menos 3 posibles respuestas,
una de ellas correcta.

V.S.M. UT3.59

S-ar putea să vă placă și