Documente Academic
Documente Profesional
Documente Cultură
Recursos. ...................................................................................................................................... 6
Multiprogramación. ................................................................................................................... 10
V.S.M. UT3.1
Unidad Temática 2 Sistemas Operativos
PRIORIDADES ..................................................................................................................................... 20
INTERRUPCIONES................................................................................................................................ 21
TIPOS DE INTERRUPCIÓN...................................................................................................................... 22
EXCEPCIONES .................................................................................................................................... 22
Primero en llegar, primero en ser servido(FCFS- First Come, First Served) ............................... 30
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
V.S.M. UT3.2
Unidad Temática 2 Sistemas Operativos
La memoria dedicada................................................................................................................. 38
MULTIPROGRAMACIÓN ....................................................................................................................... 40
Paginación.................................................................................................................................. 44
Paginas compartidas.................................................................................................................. 46
Segmentacion. ........................................................................................................................... 46
Polling ........................................................................................................................................ 49
Interrupciones ............................................................................................................................ 49
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.
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.
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.
RECURSOS.
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:
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:
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
PROCESAMIENTO DISTRIBUIDO
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.
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.
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; .
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.
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.
No existe la intervención del usuario durante la ejecución de los procesos que forman el
lote.
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.
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.
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.
V.S.M. UT3.14
Unidad Temática 2 Sistemas Operativos
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,
V.S.M. UT3.15
Unidad Temática 2 Sistemas Operativos
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.
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.
V.S.M. UT3.16
Unidad Temática 2 Sistemas Operativos
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.
SISTEMAS MULTIUSUARIO.
V.S.M. UT3.17
Unidad Temática 2 Sistemas Operativos
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.
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.
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
Las herramientas serían los recursos (utilidades) proporcionadas por el sistema operativo.
En definitiva un proceso es una actividad que se apoya en datos, recursos del sistema, el
estado en cada momento y un programa.
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
- Mantener registrados los datos del proceso en caso de tener que suspender
temporalmente su ejecución o reanudarla.
- 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.
- Archivos en uso.
- Privilegios.
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.
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.
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.
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.
INTERRUPCIONES HARDWARE
Se producen de forma inesperada, simultánea e independientemente del
procesamiento, por un agente distinto al procesador. Sus características son:
INTERRUPCIONES SOFTWARE
EXCEPCIONES
Trata los eventos que se puedan producir por errores que no puede controlar el proceso
en ejecución.
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
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.
V.S.M. UT3.23
Unidad Temática 2 Sistemas Operativos
V.S.M. UT3.24
Unidad Temática 2 Sistemas Operativos
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 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.
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.
V.S.M. UT3.26
Unidad Temática 2 Sistemas Operativos
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:
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.
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.
Decisión de planificación.
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
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.
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
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
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
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
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
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
V.S.M. UT3.32
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
Nota: Este algoritmo puede ser implementado junto con otro de los algoritmos vistos anteriormente.
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
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.
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
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.
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.
Fragmentación.
V.S.M. UT3.37
Unidad Temática 2 Sistemas Operativos
P1(60K)
S.O.
P1(20K)
S.O.
MONOPROGRAMACIÓN
LA MEMORIA DEDICADA
V.S.M. UT3.38
Unidad Temática 2 Sistemas Operativos
. Como asegurar que los programas de usuarios no se vean afectados por esta división de
la memoria.
PROTECCIÓN DE LA MEMORIA
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).
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
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.
MULTIPROGRAMACIÓN
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.
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.
V.S.M. UT3.41
Unidad Temática 2 Sistemas Operativos
Intercambio
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.
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
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.
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.
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.
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
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).
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.
Este sistema es inadecuado para su utilización con sistemas de tiempo compartido, pero puede
ser útil en entornos batch (por lotes).
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.
SEGMENTACIÓN.
V.S.M. UT3.46
Unidad Temática 2 Sistemas Operativos
V.S.M. UT3.47
Unidad Temática 2 Sistemas Operativos
GESTIÓN DE PERIFÉRICOS.
Gestión de errores
V.S.M. UT3.48
Unidad Temática 2 Sistemas Operativos
Almacenamiento X
Terminales X
Impresoras X
Apuntadores X
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
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 :
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.
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)
Tratar los errores y estado del dispositivo y comunicárselo al sistema operativo para que
este a su vez avise al usuario.
Canales
V.S.M. UT3.51
Unidad Temática 2 Sistemas Operativos
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
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.
Acceso secuencial.
Acceso directo.
V.S.M. UT3.53
Unidad Temática 2 Sistemas Operativos
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.
V.S.M. UT3.54
Unidad Temática 2 Sistemas Operativos
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:
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)
V.S.M. UT3.55
Unidad Temática 2 Sistemas Operativos
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.
V.S.M. UT3.57
Unidad Temática 2 Sistemas Operativos
EJERCICIOS
FCFS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
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 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