You are on page 1of 59

Tema 1 : Introduccion a los Sistemas operativos.

0. Introduccion.

Definicion :
Conjunto de programas que ordenadamente relacionados entre si, dan coherencia a las acciones
que se llevan a cabo en un ordenador.

El sistema operativo se manifiesta de dos maneras :

· Tiene que dar un eficaz aprovechamiento de los recursos del sistema.


· Tiene que permitir una adecuada comunicacion entre el ordenador y los usuarios.

1. Funciones y objetivos del S.S.O.O

Funciones de recursos

- Gestion de recursos

. Gestion de dispositivos.
. Gestion de ficheros.
. Gestion de programas.
. Gestion de la informacion.

- Comunicacion usuario <--> ordenador

. Interprete de ordenes.
. Tener traductores.
. Programas de utilidad.
. Informes del sistema.

Gestion de recursos

Gestion de dispositivos

El sistema operativo debe estar dotado de rutinas para:

 Poder solicitar un recurso cuando sea necesario.


 Asignar un recurso cuando sea necesario (y este disponible).
 Liberar de la tarea cuando esta concluya.
Gestion de ficheros

El sistema operativo debe estra dotado de rutinas para:

 Crear un nuevo fichero.


 Incluirlo en un directorio.
 Leer y escribir el contenido.
 Asignar atributos a los archivos.
 Eliminar ficheros.

Gestion de programas

El sistema operativo debe estar dotado de las rutinas necesarias para:

 Carga o transferencia de instrucciones de un soporte magnetico a memoria.


 Ejecutar esas instrucciones.
 Finalizar el trabajo.

Gestion de la informacion

 Debemos detectar errores en la utilizacion del sistema.


 Se deben realizar estadisticas sobre la utilizacion del sistema.

Comunicacion usuario - ordenador

Interprete de ordenes

Es un programa con rutinas para dar al usuario el servicio que necesita.

Traductores

Se encargan de traducir a lenguaje maquina los programas realizados por el usuario en un lenguaje
determinado.

Hay 4 tipos:

 Ensambladores.
 Compiladores.
 Interpretes.
 Montadores de enlace.

Montador de enlace : Crea un ejecutable con todos los modulos objeto que forman parte del programa
que se desea ejecutar.
Programas de utilidad

Pueden ser desde los editores de texto hasta los visores de video pasando por los sistemas de gestion de
bases de datos, navegadores web, etc...
Informes del sistemas

 Resumenes sobre el sistema de organizacion de la informacion.


 Resumenes sobre el estado y uso de los recursos fisicos.

Objetivos

1. Facilidad de utilizacion:

 Comodo de utilizar.
 Proporciona una interfaz agradable.

2. Eficiencia en la ejecucion:

 Tiene que aprovechar adecuadamente los recursos del ordenador.

3. Capacidad de evolucion.

 El sistema operativo debe ser capaz de introducir nuevas funciones sin interferir en las que
brinda.

2. Evolucion de los sistemas operativos.

1ª Generacion 1945 - 1955

 Debido a la 2ª guerra mundial se construyen inmensas maquinas de cálculo que utilizaban


tuvos de vacio y paneles de conexion (en ello intervinieron personas como Aiken o Vonn
newman)

 No existian los SSOO, no conocian los lenguajes de programacion y programaban en


lenguaje máquina,

 Los errores se indicaban mediante indicadores luminosos y el programador podia examinar


los registros y la memoria para determinar la causa del error.

 Cableados particulares (uno particular para cada computador) para controlar funciones
básicas de la máquina. (no habia una estandarizacion).

 Su utilizacion era de ámbito militar y cientifico.

Sus inconvenientes eran:

a) El elevado coste.
b) Su bajo rendimiento.
2ª Generacion 1955 - 1965

 Aparece el transistor, que facilito el diseño de los ordenadores.


 Aparece el assembler, para programar aplicaciones.
 Surgen los primeros dispositivos de E/S (impresoras, etc...).
 El usuario debe añadir al programa las rutinas para controlar los dispositivos que desea utilizar.
 Aparecen los lenguajes de programacion de alto nivel, entendibles por las personas.

Problema : Estos programas de ayuda al usuario solo se cargaran en memoria cuando se necesiten.

ventaja : se facilita la escritura de programas.


Inconveniente : el nº de pasos para la ejecucion de un programa se incrementa.

Numero de pasos:

 Se carga el compilador.
 Se programa en lenguaje de alto nivel y se traduce a assembler.
 Se desmonta la cinta con el compilador.
 El programa en assembler se traduce a codigo maquina.
 Se carga el programa en memoria.
 Se ejecute.

Para la optimizacion del tiempo de utilizacion del microprocesador aparecio el procesamiento por lotes
(batch) que agrupa los trabajos que requieren los mismos recursos logicos.

Con esto aparece la figura del operador, una persona dedicada a manipular el ordenador llevando a
cabo los trabajos que le llegan.

La aparicion de la figura del operador tiene la ventaja de que separa al programador de la operacion
de trabajo, pero persiste el inconveniente de que el microprocesador pasa demasiado tiempo ocioso,

Surge la idea de 'secuencia automática de trabajos' que es un programa incorporado permanentemente


a la memoria del ordenador que se utiliza para tomar la mayoria de las decisiones que antes tomaba el
operador.

Debido a eso, se crea el lenguaje de control de trabajos (JCL de job control languaje) que se encarga de
decir al ordenador el trabajo a realizar, las tareas que componen ese trabajo, los programas que ejecuta
cada tarea y los ficheros que utiliza cada programa.

Tambien aparec el 'sistema de control de E/S' (input output control system, IOCS) que se encarga de
controlar los dispositivos E/S.

Tambien debido a la secuencia informatica de trabajos aparece el gestor de interrupciones que efectua
las acciones apropiadas cuando se genera una interrupcion (un error, alguien que quiere imprimir con
la impresora ocupada, etc...)

Todo esto junto dio lugar a lo que se llama monitor residente (que es el embrion de los sistemas
operativos) compuesto de todo esto anterior mas una cosa, un traductor.
Los cientificos empezaron a trabajar con esto y mejoraron el monitor residente con dos medidas:

1. Impedir que los programas de usuario puedan manipular directamente los dispositivos de E/S
(se dieron permisos consistentes en un bit de control).
2. Impedir a los programas de usuario que puedan alterar las posiciones de memoria ocupadas
por el monitor residente. Se comprobaban todas las posiciones que el programa solicitaba y si
alguna de ellas era de la zona del monitor residente, no se le daba.

Los programas de usuario tenian que solicitar al monitor el uso de dispositivos de E/S mediante
llamadas al monitor llamadas ' llamadas al sistema ' que son instrucciones seguidas de parametros
necesarios para indicar al monitor el tipo de tarea que se le quiere encomendar.

instruccion (x-1) nterrupcion : modo usuario -> modo monitor


.
.
llamada(...) modo monitor --> modo usuario

Esto tiene la desventaja de que mientras los dispositivos de E/S estan ocupados, el microprocesador
permanece inactivo.

Para disminuir esta ineficacia en el rendimiento del microprocesador, se utilizan instrucciones 'OFF-
Line' que consiste en pasar la informacion de dispositivos lentos atraves de otros mas rapidos antes de ser
procesador por el ordenador. El encargado de realizar esta operacion es el 'input output control system' pero
no permite hacer simultaneas las operaciones del procesador y las de E/S.

Antes:

Lectura Procesador Impresoras

Despues:

Lectura Cinta Procesador Cinta Impresora

Todo es uni-proceso, aun no existia la programacion multitarea en tiempo real.

Para aprovechar aun mas el procesador, se desarrolla el 'buffering', que para lograr la simultaneidad de
las operaciones del procesador y las de los dispositivos de E/S consiste en situar un buffer o memoria
intermedia entre el dispositivo de entrada y el procesador, de esta manera la informacion ledia del
dispositivo de entrada se podrá procesar mientras el dispositivo de entrada comienza a leer la siguiente
informacion, y lo mismo pasa a la salida.

Lectura buffer 1 procesador buffer 2 salida

La utilizacion del buffering permite amortiguar el tiempo requerido para procesar la informacion.
Inconvenientes :
 pocas veces el procesador se mantiene ocupado todo el tiempo ya que sigue existiendo una
diferencia entre la velocidad de ejecucion del procesador y la de los dispositivos E/S.

3ª Gneracion 1965 - 1980

IBM creo una familia de maquinas con software compatible. Para mantener esa arquitectura utilizaron
circuitos integrados LSI.

Tenian el problema de tener miles de miles de lineas de codigo esritas por distintas personas con el lio
que eso conllevava.

Una vez arreglado y con software, vieron que seguia siendo monotarea y eso tambien era un problema.

La memoria RAM es compartida asique para que la usaran mas tareas, la dividieron.

Cuando se tenia en memoria un unico proceso, no existian problemas de compaticion, sin embargo al
aparecer la multitarea se vio que era necesario dividir la memoria en varias partes, siendo cada parte
propiedad de un determinado proceso o tarea y no pudiendo acceder a una parte de memoria que no le
perteneciese.

Se pasa del 'buffering' al 'spooling', que consiste en utilizar un disco como un buffer de gran tamaño
para tratar de leer la mayor parte de la informacion de los dispositivos de entrada y almacenar la
informacion de salida hasta que los dispositivos de salida estuvieran disponibles para procesarlas.

.- Diferencia:

 En el 'buffering' el acceso de E/S es de un unico proceso y en el 'spooling' el acceso es


simultaneo para diferentes procesos.

.- Ventajas del 'Spooling':

 Proporciona una estructura de datos que es un deposito de trabajo leidos y en espera de


ejecucion (job spool).
 Permite al SSOO seleccionar el siguiente trabajo a ejecutar : 'planificador de trabajos'.
 Podemos tener distintos procesos funcionando

El job spool es una Pila (LIFO, last input first output) asi el primero en ejecutarse es el ultimo en
quedarse pendiente.

El aspecto mas importante de la planificacion de trabajos es la multiprogramacion. El SSOO elije un


trabajo del job spool y lo comienza a ejecutar.

En un modo mono tarea el procesador solo esta activo mientras ejecuta una tarea pero entre el final de
una y el comienzo de la siguiente pasa un tiempo de inactividad. Sin embargo en la programacion
multitarea nada mas acabar una tarea ya puede leer otra del job spool, tareas que el dispositivo de entrada
ya ha leido mientras el procesador procesaba la primera....

Si varios programas se ejecutan concurrentemente, hay que limitar la posibilidad de que se interfieran.
Por lo tanto será necesario planificar procesos, almacenamiento en disco y administracion de
memoria. Una vez soluccionado esto, surgen los sistemas en multiprogramacion, en la que cada usuario
tiene un terminal conectado al sistema informatico atraves de una linea de comunicacion. Esto tiene la ventaja
de tener un reparto equitativo de los recursos dando la sensacion al usuario de posser la maquina para el solo.

Surgen los sistemas en tiempo real, para el control de procesos industriales.

Estos sistemas permanecen inactivos para atender con la mayor rapidez posible un suceso.

4ª Generacion de 1980 en adelante

La orimera caracteristica es que se dearrolla el circuito integrado con miles de transistores en 1cm
cuadrado de silicio. Es la tecnologia LVSI /very large scale integration).

Ventajas:
• La arquitectura basica del ordenador no varia.
• Se reduce el precio.
• Tanto los ordenadores grandes como los pc's tienen una interfaz comu de
comunicacion de datos.

Aparecen las redes de ordenadores (y con ella la encriptacion de datos como media de seguridad).

Aparecen los sistemas de bases de datos.

La conjugacion de las bases de datos mas las redes de ordenadores da lugar al procesamiento
distribuido (comparticion de los recursos de varias terminales para llevar a cabo una tarea pesada).

Aparecen los SSOO en red en los que los usuarios pueden conocer la existencia de varios ordenadores
y pueden conectarse con maquinas remotas.

Por ultimo, aparecen los SSOO con interfaz grafica: WYSWYG (What you See is What you Get).

3. Estructura de un sistema operativo.

Nucleo.
Supervisor.
IOCS (input output control system).
Monitor.

Nucleo

.- Conjunto de rutinas que gestionan la memoria ROM de un ordenador y el Hardware.


FUNCIONALIDAD

• Administracion del procesador, proporcionando el proceso mas adecuado para conseguir una
mayuor eficiencia.
• Deteccion de interrupciones producidas por los programas que se ejecutan en el procesador.
• Controlar las llamadas a procedimientos y sus retornos.
• Controlar la concurrencia.

.-Se controla mediante estados de espera y de aceptacion sobre el conjunto de


procesos que intentan acceder de forma simultanea al mismo recurso.

• Controla las transacciones exteriores en las que un proceso necesita intercambiar


informacion con otro.

Supervisor

Conjunto de rutinas que gestionan el sistema internamente.

FUNCIONALIDADES

• Administracion de la memoria solicitada por los procesos. (asignar memoria, controlar las
asignaciones, controlar espacios, liberar memoria etc...).

• asignar prioridad de ejecucion a los procesos (0 mayor prioridad y cuanto mayor numero
menos prioridad).

• Gestionar las interrupciones.

• Administracion de procesos para indicar en cada momento al sistema operativo el proceso


que debe ejecutarse.

I.O.C.S

Conjunto de rutinas encargadas de controlar la gestion de la informacion y los datos, su


almacenamiento y su manipulacion (se apoya en el suypervisor).

FUNCIONALIDADES

• Gestion de las operaciones de entrada y salida.

• Gestion de dispositivos para manipular la informacion de dispositivos de almacenamiento externo.

• Gestion de ficheros. (crear, copiar, mover, renombrar, eliminar, etc...).

Monitor

Es el estrato funcional mas externo y por tanto el que tiene definida una interfaz mas optimizada
respecto al usuario.
Se apoya en el IOCS y en el supervisor.

FUNCIONALIDADES

• Interprete de trabajos. Encadena la ejecucion.


• Establece las prioridades iniciales de los trabajos.
• Interprete de ordenes y comandos generados por el usuario.
• Proporciona proteccion a los trabajos de usuario.

4. Ciclo de instruccion.

• Dentro del procesador existe un registro llamado 'pc' , 'program counter' que se utiliza para llevar la
cuenta de cual es la siguiente instruccion a ejecutar.

Inicio Lee La Instruccion Se Ejecuta Fin

Se compone de dos ciclos, el ciclo de lectura se compone de la parte 'inicio' y de 'lee la instruccion' y el
ciclo de ejecucion es 'se ejecuta' y 'fin' despues de 'se ejecuta' se salta otra vez a 'lee instruccion' hasta
que no queden instruccions por leer y salga por el 'fin'.

5. Ciclo de interrupcion.

Interrupcion : Mecanismo que permite interrumpir la ejecucion normal del procesador para
ejecutar otros modulos.

Tipos

Interrupcion de programa

Generada por alguna condicion que se produce como resultado de la ejecucion de una
instruccion, como una referencia a una direccion de memoria no valida, una division por
cero etc...

Interrupcion de reloj

Generda por el reloj interno del procesador.

Interrupcion de E/S

Generada por un controlador de E/S para indicar que una operacion ha terminado
normalmente o para indicar condiciones de error.
INICIO LEE LA INSTRUCION EJECUTAR COMPROBAR INTERRUPCION

FIN

Ciclo de interrupcion : detecta la interrupcion, se para la ejecucion, guarda toda la informacion


de por donde va y los estados del sistema en la cola y carga el codigo de interrupcion, lo ejecuta
con el pc y vuelve a retomar la informacion de la cola para volver al estado del sistema tal y
como se quedo cuando detecto la informacion.

Pasos para el tratamiento de una interrupcion.

1. El procesador detecta la interrupcion.

2. El procesador finaliza la ejecucion de la instruccion en curso antes de responder a la interrupcion.

3. El procesador pregunta por la intyerrupcion, comprueba que hay una y envia una señal de
reconocimiento al dispositivo que genero la interrupcion.

4. El procesador se prepara para transferir el control a la rutina de interrupcion, para ello transfiere toda
la informacion necesaria para reanudar la ejecucion del programa en el futuro.

5. Se cargan en memoria todos los datos de la rutina de interrupcion.

6. Ejecuta la rutina

7. se carga la informacion guardada de el programa que estaba ejecutandose.

8. Se continua con la ejecucion.

Tema 2 : Gestion de Ficheros

0. Introduccion
a) Elementos logicos fundamentales.

I. Campo : Es el elemento de datos basico, se caracteriza por su longitud y tipos de datos, dados por
el usuario.

II. Registro : Conjunto de campos relacionado, de longitud fija o variable.

III. Registro Logico : Unidad de informacion interna de un fichero, compuesta por grupos de datos
elementales relacionados entre si.

IV.Registro fisico o Bloque : Unidad minima de memoria que se puede transferir entre la memoria y los
dispositivos de E/S.

V. Bloqueo o empaquetamimento de registros es la posibilidad de situar en el mismo registro fisico


varios registros logicos.

VI.Se llama factor de bloqueo al nº de registros logicos que pueden ser empaquetados dentro de uno
fisico.

VII.Archivo o fichero : Conjunto de registros logicos homogeneo, que tienen la misma estructura y estan
relacionados entre si.

VIII.Base de datos : Conjunto de datos, informaciones y archivos relacionados.

IX.Sistema de ficheros : Conjunto de programas del sistema operativo que permiten el almacenamiento
de la informacion y los datos agrupandola en ficheros situados en un soporte de
dispositivo periferico.

“La informacion es lo que se extrae de un dato, es un dato referenciado a un contexto”

b) Recursos fisicos necesarios para el manejo de ficheros.

Dispositivos perifericos

Permiten el almacenamiento de grandes cantidades de informacion fuera del almacenamiento principal


del ordenador.

Disco magnetico

– Dispositivo electromecanico que mantiene uno o varios discos en rotacion a velocidad constante.

– Dispone de un brazo mecanico que mueve las cabezas magneticas de lectura / escritura en sentido
transversal. (al vector velocidad de un punto situado en la periferia del disco).
Tambor magnetico

Disco duro con un brazo por cilindro.

Unidad de control del dispositivo

Está formada por un conjunto de componentes electronicos encargados de transformar los requisitos
del sistema operativo sobre el dispositivo en señales especificas de control que permiten gestionar los
dispositivos de dicha unidad.

Elementos Basicos (caracteristicas):

• Constituye una interfaz que establece el protocolo de comunicacion entre la unidad


de control y el dispositivo.

• Estandariza el metodo y los pasos en los cuales se va a realizar esta comunicacion.

• Establece el esquema de codificacion de los datos.

c) Tiempos de acceso.

• Es el tiempo transcurrido desde que la unidad de control proporciona a la unidad de disco una
direccion de sector hasta que dicho sector es transferido a memoria.

• Sector es equivalente a bloque.

Tiempo de acceso = Tiempo de posicionamiento + Tiempo de latencia + Tiempo de transferencia.

• Tiempo de posicionamiento : tiempo que tarda la cabeza de lectura / escritura en situarse sobre el
cilindro en el que esta el sector a localizar.

• Tiempo de latencia : tiempo que tarda la cabeza en localizar el sector desde que esta sobre el
cilindro correcto. Corresponde con lo que tarda el disco en dar media vuelta.

• Tiempo de transferencia : Tiempo transcurrido desde que la cabeza se situa sobre el sector
correspondiente hasta que dicho sector es transferido a memoria.

d) organizacion fisica y logica de los discos.

– Un volumen de almacenamiento de acceso directo esta formado por un conjunto de discos con un
eje comun y un brazo que sopora las cabezas de lectura / escritura.
– Cada disco de los dispositivos magneticos esta formado por caras o superficies, pistas y sectores.
– Cada una de las caras de un disco esta dividida en una serie de pistas concentricas que pueden ser
accedidas por una cabeza de lectura / escritura.
– Cada una de las pistas esta dividida en sectores o bloques que contienen la minima unidad de
transferencia de informacion.
– El conjunto de todas las pistas que se encuentran en la misma vertical en cada una de las superficies
del disco y que contienen toda la informacion accesible por el conjunto de cabezas de lectura /
escritura desde una posicion fija, se denomina CILINDRO.
– La longitud de todos los sectores de un disco medida en butes es la misma, pero varia de unos
sistemas a otros.
– Desde el punto de vista fisico, la unidad minima de informacion que se puede transferir entre el
disco y la memoria es el sector.
– Desde el punto de vista logico, la unidad minima de informacion que se puede transferir es el
bloque. (por regla general un bloque suele equivaler a un sector, pero puede variar).

Bloque : 0 - 0 - 0

.- El primer 0 indica el nº de cilindro.

.- El segundo la superficie o cara.

.- El tercero el sector.

B = K + D*J + I*P*S.

B : Nº de bloque.

K : Nº de sector.

S : Sectores por pista.

J : Nº de superficies (sustituyo).

I : Nº de cilindro.

P : Nº de pistas por cilindro. (total).

• Para direccionar un sector especifico solo necesito I, J, y K.

1. Arquitectura.

Se puede ver desde dos puntos de vista :

esquema a)
gestor de directorios estructura de archivos

FAT32 funciones de
manipulacion
Ordenes de Nombre de la operacion NTFS de archivos
aplicaciones + fichero sobre el q actua.
y usuarios FAT16

Planificador de sucesos.

opera sobre
registros memoria ppal. Memoria secundaria
Asignacion de
archivos (uno a uno)
agrupacion en bloques

en la entrada salida trabajamos con bloques gestion de espacio libre

• Para poder realizar estas operaciones necesitare una estructura que me de permisos. El planificador
de discos o planificador de accesos.

• La parte izquierda, hasta los reistros logicos inclusive pertenecen al gestor de ficheros, el resto es
responsabilidad del sistema operativo.

Pasos:

Los usuarios y programas dicen al sistema de archivos lo que quieren hacer por medio de ordenes.

Por lo tanto tenemos que tener algun mecanismo que nos permita administrar estos accesos. La gestion de
directorios nos dice donde se encontran y que propiedades tiene cada fichero.

La planificacion de accesos nos especifica quien puede acceder a cada elemento.

La estructura de archivos estable como estan estructurados los archivos dentro del sistema y por lo tanto
como acceder a ellos.

Los usuarios y aplicaciones acceden a registros logicos sin enbargo las operaciones de entrada / salida se
realizan a nivel de bloques. Es necesario realizar una gestion del espacio libre para poder realizar
asignaciones cuando queramos crear un archivo o este modifique su tamaño por el motivo que sea.

La asignacion de archivos dice a que archivo corresponde cada bloque.

Esquema b)

• por capas.
Metodos de acceso

• Pila
• Secuencial
• Secuencial Indexado
• Particionado

E/S Logica

Supervisor basico de E/S

Sistema Basico de archivos

Gestores de dispositivos

Metodos de acceso

• Definen la organizacion de la informacion en el archivo y como se recupera dicha


informacion.

E/S Logica

• Permite a los uusarios y aplicaciones acceder a los registros logicos de un archivo.


• Esta formado por todas las funciones necesarias para leer, escribir, situarse en un registro,
etc...

Supervisor Basico de E/S

• Planifica cuando tiene que acceder al dispositivo correspondiente para la lectura / escritura
de la informacion segun lo solicite el programa.
• Selecciona los buffers a utilizar y decide cuando se inicia y finaliza la E/S.

Sist. Basico de Archivos

• Almacena los registros logicos o fisicos en buffers.


• Consulta el formato de los bloques fisicos propios del soporte donde se lea o escriba.
• Realiza el empaquetamiento de registros logicos en fisicos.

Gestores de Dispositivos

• se comunican con los dispositivos y los gestionan.


• Trabajan con bloques fisicos cuando realizan una escritura, trabajando directamente sobre el
soporte fisico
• cuando hacemos una lectura, trabajan con un flujo de bits que cojen del dispositivo fisico.

2. Directorios
Un directorio es un archivo gestionado por el sistema operativo atraves de distintas rutinas del sistema
que controla la informacion de los archivos y directorios que cuelgan de el.

2.1.Elementos fundamentales de un directorio.

• nombre del archivo y el tipo.


• Informacion del direcionamiento (volumen, que es el dispositivo donde se almacena).
• Direccion de comienzo (nº de bloques fisicos).
• Informacion de control de acceso:

• Esta tendra el propietario, los usuarios autorizados y las acciones permitidas.

• Informacion de uso:

• Fecha de creacion
• Ultima lectura
• Ultima modificacion.

2.2.Operaciones que pueden realizarse sobre un directorio.

• Crear
• Borrar
• Listar

2.3.Tipos de estructuras de directorios

2.3.1.Estructuras en un solo nivel.

propiedades nombre
atributos

Consiste en una linea de entradas (una para cada archivo) que se van generando sin
necesidades de establecer niveles ni dependencias jerarquicas entre ellas.

Este tipo de estructura puede ser utilizado en un sistema monousuario pero no es


adecuado cuando existen varios usuarios compartiendo el sistema.

Ventajas :

• Facilidad y simplicidad para su implementacion.

Inconvenientes :
• Todos los archivos deben tener nombres distintos.
• No se puede hacer una organizacion de archivos
• dificil ocultar partes del directorio al usuario.

2.3.2.Estructuras en varios niveles

DIRECTORIO MAESTRO

Usuario 1 Usuario 2 Usuario 3 ....... Usuario N

• Existe un directorio para cada usuario.


• Todos los directorios penden de un directorio maestro que dispone de una entrada
para cada directorio de usuario incluyendo una direccion e informacion de control de
acceso.

Ventajas :

• cada directorio de usuario es una simple lista de archivos, por lo tanto los
nombres deben ser unicos solo dentro del directorio del usuario
correspondiente.

Inconvenientes :

• No ofrece a los usuarios ayuda para organizar sus archivos.


• Se tienen problemas cuando los usuarios desean cooperar (compartir).

Tendremos un directorio especial que contenga los archivos del sistema. Cuando un
usuario proporcione el nombre de un archivo, el sistema operativo buscara primero en el
directorio del usuarioy si no lo encuentra, automaticamente buscara en el directorio
especial que contiene los archivos del sistema operativo.

2.3.3.Estructuras en arbol.

• La estructura jerarquica es un metodo mas potente que los anteriores y mas efectivo.
• GNU / linux utiliza un grafo ciclico, y Microsoft Windows una estructura en arbol.
• En una estructura en arbol existe un directorio raiz.
• Cada archivo en el sistema posee un nombre de ruta unico.

Tipos de rutas:
• Relativas : Define una ruta apartir de la actual
• Absolutas : Comienza en el directorio raiz y va hasta el archivo especificado.

• Un directorio o subdirectorio contiene un conjunto de archivos y / o subdirectorios.


• Cada entrada del directorio contiene un bit de marca que indica si es un archivo o un
subdirectorio.

Ventajas :

• Adecuado pa la comparticion de informacion.


• Permite al usuario la organizacion.

Inconvenientes :

• Para hacer comparticion es necesaria la redundancia fisica.

Borrado de un directorio :

• Si no está vacio, cargarnos lo que haya dentro.


• Si no está vacio no permitir borrarlo.
• Preguntar lo que se quiere hacer.

2.2.4.Directorios mediante un grafo aciclico.

Cuando uno o varios usuarios necesitan trabajar conjuntamente en un proyecto, es


necesario compartir los archivos.

La estructura de arbol impedia compartir sin utilizar redundancia fisica.


Un grafo aciclico es un grafo que no contiene ciclos y permite que los directorios
contengan subdirectorios y archivos compartidos.

Los dos metodos para hacer comparicion son :

a) Enlaces simbolicos :

• Crea una nueva entrada llamada enlace que es un apuntador a otro


archivo o subdirectorio.

b) Duplicar la referencia a la informacion realacionada con este archivo.

Ventajas :

• Buena estructuracion de la informacion.


• Podemos compartir sin necesitar redundancia fisica.

Inconvenientes :

• Complejidad de gestion e implementacion de un sistema con estas


caracteristicas.

Borrado de un fichero o directorio :

• Eliminar sin preocuparnos de nada mas.

• Utilizacion de contadores : Se lleva la cuenta de cuantos apuntadores hay


'mirando' a ese archivo o directorio, mientras haya mas de un apuntador solo
se elimina el apuntador creado por el usuario que pretende eliminar el archivo
o directorio, si el contador nos dice que ya no quedarian despues mas
apuntadores 'mirando' a ese archivo o directorio se elimina definitivamente.

• Cuando son enlaces simbolicos, al eliminar el enlace no se elimina el archivo


o directorio.

2.2.5.Grafos Ciclicos.

Un mismo fichero puede ser accedido desde varias trayectorias, permitiendose enlaces o
referencias a directorios de la misma trayectoria (puede volver sobre si mismo).
Se implementa igual que el grafo aciclico y las ventajas e inconvenientes son las
mismas.

El problema es que un archivo se puede quedar huerfano, pueden surgir referencias


aisladas, ya que los archivos no pueden ser accedidos desde ninguna trayectoria ni
pueden ser eliminados ya que siempre hay un apuntador 'mirandolos' que son ellos
mismos.

Solucion :

• recorro todo el arbol y a los nodos a los que no pueda acceder los apunto para
eliminarlos.
• Ese proceso se denomina 'Recogida de residuos'.

Este nodo esta Huerfano.

3. Mecanismos de proteccion

Existe la proteccion a dos niveles, fisico y logico:

Cuando se almacena informacion en un sistema informatico se debe tener en cuenta:

• Protegerlo de daños fisicos : confiabilidad.


• Se deben tener en cuenta los accesos inadecuados, para lo cual tenemos dos extremos,
ambos igual de inutiles:
• Prohibir el acceso a todo el mundo.
• Permitir el acceso a todo el mundo.

La proteccion puede estar asociada al archivo o a la ruta de acceso.

Los esquemas basicos de proteccion son:

• Nominacion : Impide el acceso a un usuario que no puede nombrar el archivo.


• Mediante palabra clave : asocia una posible clave para el acceso.
• Listas de acceso : El acceso depende de la identidad del usuario.
• Grupos de acceso : Resuelve el problema de la longitud de las listas de acceso
agrupando a los usuarios.

4. Comparticion de archivos.

4.1.Derechos de Acceso.

• Ninguno : el usuario conoce la existencia.


• Conocimiento : El usuario puede determinar que el archivo existe y quien es el propietario.
• Ejecucion : El usuario puede cargar y ejecutar un programa pero no copiarlo.
• Lectura : El usuario puede leer el archivo para cualquier proposito, incluyendo copia y
ejecucion.
• Adicion : El usuario puede añadir datos al archivo pero no puede modificar o borrar el
contenido del mismo.
• Actualizacion : El usuario puede modificar, borrar y añadir datos al archivo.
• Cambio de proteccion : El usuario puede cambiar los derechos de acceso otorgados por otros
usuarios.
• Borrado : El usuario lo puede borrar.

4.2Accesos simultaneos.

• Para leer no hay problemas.


• La escritura simultanea de varios usuarios en el mismo archivo presenta un problema que se
soluciona bloqueando el archivo : el primero que lo coje lo usa hasta que acaba (los demas
mientras tantopueden leer pero no modificar, copiar, etc) hasta que termine entonces lo coje
el siguiente usuario que lo solicite.

Cuando se otorga permisopara modififcar un archivo, podemos :

• Utilizar un metodo por 'fuerza bruta' que permite a los usuarios


bloquear el archivo completo.
• Utilizar un metodo que unicamente bloquee la zona de registros que
va a ser modificada para que los demas puedan trabajar con el resto.
5. Agrupacion de registros.

Registro : Unidad basica de E/S a nivel logico.


Bloque : Unidad basica de E/S a nivel fisico.

Factor de interbloqueo :

• Agrupacion de los registros en bloques para trabajar con ellos.


• Tamaño relativo de un bloque en comparacion con el tamaño del registro.

Los registros pueden ser de tamaño fijo o variable, y tenemos 3 metodos para agruparlos.

5.1.Bloques que utilizan registros de longitud fija.

• Se guarda en cada bloque un nº entero de registros, pudiendo existir un espacio sin


utilizar al fial del bloque.

5.2.Bloques que utilizan registros de longitud variable por tramos

• Se agrupan los registros en bloques sin dejar espacios libres.


• Algunos registrops abarcaran dos bloques indicando con un puntero desde el final del
primer bloque donde esta el comienzo del siguiente con el que ha de enlazar.

5.3.Bloques que utilizan registros de longitud variable sin tramos.

• se busca un registro pequeño para los huecos al final.

6. Gestionar el almacenamiento secundario.


6.1.Asignacion de archivos.

La politica de asignacion previa requiere que se declare el tamaño maximo del archivo
en el momento de crearlo, sin embargo para muchas aplicaciones es dificil, si no
imposible, estimar de manera fiable apriori el posible tamaño del archivo, por lo
que se tiende a sobreestimar el tamaño maximo del archivo con lo que
obtenemos un desperdicio de almacenamiento secundario.

La asignacion dinamica va asignando espacio a los archivos en secciones a medida que


lo necesitan.

Tamaño de las secciones :

• La contiguidad del espacio aumenta el rendimiento.


• Disponer de un gran numero de secciones pequeñas, aumenta el tamaño en las
tablas necesarias para gestionar la asignacion de informacion.
• Disponer de secciones de tamaño fijo simplifica la reasignacion de espacio.
• Disponer de secciones de tamaño variable minimiza la perdida de espacio no
usado.
6.2.Asignacion Contigua

Consiste en la asignacion de un unico conjunto contiguo de blques.

La tabla de asignacion de archivos necesita unicamente una entrada por archivo que
indique el bloque de comienzo y la longitud del archivo.

En la asignacion contigua se pueden presentar problemas de fragmentacion externa,


siendo dificilencontrar bloques contiguos de tamaño suficiente, por lo tanto de vez en
cuando sera necesario ejecutar un algoritmo de computacion para liberar espacio
adicional en el disco.

Nombre Bloque Nº 1 Longitud


--------------------------------------------

A 0 4

B 7 4

C 17 3

Dentro de la asignacion contigua tenemos 3 metodos distintos de llevarla a cabo que


son:

6.2.1.Primer Hueco - First Fit

Se elije el primer grupo de bloques sin usar que tengan el tamaño suficinete.

6.2.2.Mejor Hueco - Best Fit

Se elije el grupo mas pequeño sin usar (donde quepa).

6.2.3.Hueco mas cercano - Nearest Fit

Se elije el grupo de bloques sin usar mas cercano al asignado previamente al


archivo.

6.3.Asignacion enlazada

Se basa en la asignacion de bloques individuales, por lo cual, cada bloque contendrá un


puntero al siguiente bloque de la cadena.

La tabla de archivos necesita una sola entrada por archivo, que le indique el bloque de
comienzo y su longitud
6.4. Asignacion Indexada

La tabla de asignacion contiene un indice para cada archivo y este indice posee una
entrada para cada bloque asignado al archivo.

La asignacion puede hacerse por bloques de tamaño fijo o en secuencias de tamaño


variable.

La asignacion por bloques elimina la fragmentacion externa y la asignacion por


secciones mejora la cercania.

6.4.1.Por bloques.

En la tabla las casillas son un indice donde te te dice que bloques pertenecen a la
secuencia, y en la tabla lo que tenemos es para cada archivo donde esta la casilla
donde se encuentra su indice.

6.4.2.Por secuencias.

Si el bloque de indice es de menor tamaño que un bloque, se puede resolver de 3


modos:

• Esquema enlazado : Se podrian enlazar varios bloques de indices por


medio de punteros.
• Esquema multinivel : Consiste en emplear un bloque indice que a su
vez apunte a otros bloques de indices los cuales apuntan a datos.
• Esquema combinado : Utiliza los primeros apuntadores del bloque
para apuntar a datos y el resto para apuntar a indices.

6.5Gestion del espacio libre.

6.5.1.Mediante una tabla de bits

Usa un vector que contiene un bit por cada bloque del disco, si esta a cero el
bloque esta libre, si esta a uno esta ocupado.

Ventajas :
• Muy facil encontrar bloques libres.
• Es un buen metodo de gestion para cualquiera de los metodos de
asignacion de archivos.
• Ocupa poco espacio, pudiendose mantener en memoria principal con
la gran velocidad de trabajo que esto permite.

6.5.2.Secciones libres encadenadas.

Las secciones libres pueden encadenarse mediante un puntero y un valor de


longitud en cada seccion libre.

Este metodo tiene un gasto insignificante de recursos de la maquina ya que no


hay necesidad de una tabla de asignacion de disco sino simplemente un puntero
al comienzo de la cadena.

6.5.3.Indexacion.

Trata el espacio libre como si fuera un archivo y utiliza una entrada para cada
seccion libre del disco (nos indica el bloque de comienzo y cuantos bloques
contiguos libres existen a continuacion del bloque de comienzo).

Tema 3: Gestion Y Administracion de procesos

0. Introduccion

Multiprogramacion ; Posibilidad de tener varios procesos ejecutandose al mismo tiempo.

Proceso : Programa o conjunto de rutinas para hacer algo.

1. Estructuras de control de procesos


1.1.Estructuras de control del sistema operativo

Memoria Tablas de memoria

Dispositivos Tablas de dispositivos

Ficheros Tablas de ficheros Proceso 1

Procesos tablas de procesos Proceso 2

Proceso N
Tabla de memoria

• Se utiliza para conocer en cada momento el estado de la memoria interna y


del almacenamiento secundario.

Tablas de dispositivos

• Utilizadas por el S.O para administrar los dispositivos ya que en un momento


determinado un dispositivo de E/S puede estar disponible o asignado a un
proceso en particular.

Tablas de ficheros

• Ofrecen al S.O informacion sobre los archivos existentes, su posicion en


memoria (ppal y secundaria), su estado actual y otros atributos.
• Lo controla el sistema de archivos.

Tabla de procesos

• Para administrar y controlar los procesos, para lo cual se debe conocer donde
esta ubicado el proceso y sus atributos.

1.2.Imagen del proceso

PCB Bloque de control de procesos.

PILA

ESPACIO DIRECCIONES
PRIVADAS

ESPACIO DIRECCIONES
COMPARTIDAS

• En la ejecucion de un programa entra en juego normalmente una pila que se utiliza


para llevar la cuenta de las llamadas a procedimientos y de los parametros que se
pasan entre ellos.

• En el espacio de direcciones privadas se guarda informacion a la cual solo puede


acceder el proceso, son por ejemplo, las variables locales.

• En el espacio de direcciones compartidas se almacena informacion accesible por


otros procesos, como por ejemplo variables globales, constantes globales, etc...

• Asociado a cada proceso hay una serie de atributos utilizados por el S.O para
controlar y administrar el proceso, conocido como 'bloque de control de proceso' o
PCB cuyos elementos basicos son:

PCB

I. Identificadores del proceso

• ID del proceso.

• ID del proceso padre.

• ID del usuario que lo ha creado.

II. Informacion de estado del procesador

• Registros especiales del procesador.

• Registros de control y estado.

• Informacion de los punteros a pilas.

III.Informacion del control del proceso

Se utiliza para que el S.O pueda coordinar los diferentes procesos activos. Para
ello tendra:

Informacion de planificacion y estado

• Estado del procesador.


• Prioridad del proceso.
• Informacion de planificacion
• suceso que esta esperando.

Estructuracion de datos

• Colas de espera.
• Informacion sobre la relacion Padre - Hijo.

Comunicacion entre procesos

• Indicadores de estado de un proceso.


• Señales.
• Mensajes.

Privilegios de los procesos

• Memoria a la que se puede acceder.


• Tipo de instrucciones que se pueden ejecutar.

Gestion de memoria

• Punteros a tablas de paginas y/o segmentos.

Propiedades de los recursos y utilizacion.

2. Estados de un proceso.

2.1.Creacion y eliminacion de procesos

Creacion de un proceso

• En un entorno batch la creacion de un nuevo proceso se genera con la llegada


de un nuevo trabajo.
• En un entorno interactivo, la creacion de un proceso la genera la conexion de
un usuario para realizar un trabajo.
• La peticion de servicio por una aplicacion ejecutandose tambien puede crear
un proceso.
• Por peticion de otro proceso; el proceso generador recibe el nombre de padre
y el creado el de hijo.

Eliminacion de un proceso

• El propio proceso indica que ha terminado.

• Por un error.

• Porque ha finalizado el padre o se lo ordena el padre.

Modelo de 5 estados
Nuevo Listo Ejecucion Terminado FIN

Bloqueado

Estados

• Ejecucion : Proceso que se encuentra actualmente en ejecucion.

• Listo : Posee todos los recursos que necesita para ejecutarse excepto la CPU. Esta a
espera de que el planificador le asigne la CPU.

• Bloqueado : En espera de algun suceso para poder serguir su ejecucion. No compite


por la CPU hasta que suceda dicho suceso.

• Nuevo : Proceso que se acaba de crear pero aun no ha sido adminitdo por el S.O en el
grupo de procesos.

• Terminado : Excluido por el S.O del grupo de procesos que se pueden ejecutar,
liberandose de todos sus recursos.

El mismo modelo puede estudiarse desde otro punto de vista: Disciplina de Colas.

Cola de listos

Admitir
Expedir CPU

Ocurre Fin de plazo


suceso Espera
de sucesos

Cola de bloqueados

Modelo de 7 estados
Creacion

Fin plazo
admitir Liberar
Nuevo Listo Ejecucion Terminado Eliminacion
Expedir
admitnir activar ocurre el espera de
suspender suceso un suceso
Listo Y Bloqueado
Suspendido activar
suspender

Bloqueado y
Suspendido

Estados

Listo y suspendido : Intercambiado a memoria secundaria pero listo para ejecutar en


cuando se cargue en memoria principal.

Bloqueado y suspendido : intercambiado a disco que ademas esta esperado por un


suceso.
Las Flechas

Creacion : Se crea un nuevo proceso para ejecucion.


Admitir : Paso el nuevo proceso al grupo de procesos que pueden ejecutarse.
Expedir : El planificador selecciona el proceso para ser ejecutado por la CPU.
Eliminacion : Se liberan todas las estructuras y recursos utilizados por el proceso.

Liberar : Unicamente finaliza la ejecucion.

Fin Plazo : El proceso consume el tiempo maximo de ejecucion permitido o bien se


desbloquea un proceso de prioridad mayor, o llega una interrupcion.

Suspender : Si es necesario el intercambiar un proceso a disco, los primeros


candidatos son los bloqueados (de bloqueado a bloqueado y suspendido).

Suspender (de listo a listo y suspendido) : Normalmente es preferible suspender


procesos bloqueados, pero puede ser
necesario si es la unica forma de liberar
recursos o si los procesos bloqueados tienen
mayor prioridad.

Activar (de bloqueado y suspendido a bloqueado) : Parece ineficiente traer a memoria


un proceso bloqueado pero si hay
memoria libre, la prioridad es
mayor que la de listos y
suspendidos en prevision de que
pronto ocurrira un suceso.
3. Algoritmos de planificacion.
Como el S.O planifica los procesos.

3.1.Tipos de planficacion.

– Planificacion a largo plazo (L/P).


– Planificacion a medio plazo (M/P).
– Planificacion a corto plazo (C/P).
Se gestionan mediante programas que se denominan planificadores y reciben el mismo nombre que el
tipo de planificacion que planifican.

3.1.1.Planificacion a largo plazo (L/P).

• Se encarga de decidir que procesos son admintidos en el sistema.


• Este planificador determina el grado de multiprogramacion, el numero de procesos
que se encuentran en memoria compitiendo por el procesador, activos en el sistema.
• Para decidir cuantos procesos puede tener el sistema, debe tener en cuenta que a
mayor grado de multiprogramacion menor sera el tiempo de uso de la cpu de cada
uno.
• Para decidir que proceso es admitido en el sistema, se puede usar un algoritmo FCFS
(primero en entrar, primero en salir). Otros criterios validos serian : las prioridades,
las exigencias de E/S (tipos de recursos que necesita) y los tiempos de ejecucion
esperados.
• Cuando el planificador determina que proceso se admite por el sistema pueden
suceder dos cosas dependiendo del diseño del sistema:

a) El proceso pasa a la cola de listos o


preparados y apartir de ahi es el
planificador a C/P el que se encarga.

b) Que pase a listos o listos y suspendidos


siendo el planificador a M/P el que pase a
encargarse de el.

• El grado de decision del planificador a L/P no tiene que ser necesariamente corto ya
que va a ejecutarse pocas veces. (el grado de decision del planificador es lo que tarda
en decidir cual es el proceso mas prioritario).

Planificador a M/P

• Se encarga de decidir que procesos pasan a almacenamiento secundario y que


procesos vuelven a cargarse en memoria.
• Se encarga de suspender y cargar los procesos.
• Este planificador no existe en todos los sistemas, solo en aquellos que tengan estado
suspendido como es el modelo de 7 estados.

3.1.3.Planificador a C/P

• Tambien se le conoce como 'DISTRIBUIDOR' o 'DISPATCHER'.


• Se encarga de decidir que proceso de la cola de listos pasa a ejecutarse.
• Es el que se ejecuta con mas frecuencia por lo que su tiempo de decision debe ser
bajo.
• Se ejecuta cuando un proceso que esta ejecutandose es interrumpido, por ejemplo
para realizar una operacion de E/S o que exista la posibilidad de retirar el proceso
actual en favor de otro proceso de prioridad mayor.
Modelo 1:
L/P
M/P
C/P
EJECUTANDO

LISTO

BLOQUEADO

BLOQUEADO Y
SUSPENDIDO

LISTO Y SUSPENDIDO

NUEVO TERMINADO

Modelo 2: Proceo por Lotes, Modelo de colas.


Time -Out

Nuevos Cola de listos


L/P CPU Ejecutandose

M/P Cola de suspendidos M/P

ocurre el M/P Espera de suceso (C/P)


Suceso (C/P) ocurre Cola de bloqueados suspendidos
suceso

M/P Cola de bloqueados M/P

4. Criterios de planficacion a corto plazo

4.1.Criterios orientados a usuario

• Tiempo de respuesta (para un proceso interactivo es el tiempo que pasa desde que se
emite una solicitud hasta que empieza a recibirse la respuesta).

• La politica de planificacion debe intentar que el tiempo de respuesta sea bajo y


maximizar el numero de usuarios interactivos que reciban un tiempo de respuesta
aceptable.

• Tiempo de retorno : Es el intervalo de tiempo transcurrido entre el lanzamiento de un


proceso y su finalizacion. Es la suma del tiempo de servicio y el tiempo de espera.

Tiempo de servicio : Tiempo de uso de la CPU (tiempo de


ocupacion real)

Tiempo de espera : Tiempo transcurrido en las colas esperando


por los recursos (incluido el tiempo de espera
por el procesador).

• Los plazos : Se utilizan en sistemas que permiten especificar los plazos de


terminacion de los procesos. La politica de planificacion debe maximizar el
porcentaje de plazos cumplidos.

• La previsibilidad : Un mismo trabajo o proceso se debe ejecutar aproximadamente en


el mismo tiempo y con el mismo coste sin importar la carga del sistema.

4.2.Criterios orientados al sistema

• La politica de planificacion debe intentar maximizar el numero de trabajos


terminados por unidad de tiempo. Indica la cantidad de trabajo que se esta realizando
y depende de :

a) Longitud media de cada proceso.


b) Politica o algoritmo de planificacion.

• Utilizacion del Procesador : Porcentaje de tiempo en que el procesador esta ocupado.


La politica de planificacion debe intentar que sea el maximo posible.
• Prioridades : Si el sistema asigna una prioridad a cada proceso, la planificacion debe
favorecer a los procesos con mayor prioridad.

• Equidad : Los procesos deben ser tratados de la misma forma y ningun proceso debe
sufrir inanicion (que no llegue a ejecutarse nunca).

• Utilizacion de recursos : El sistema debe mantener los recursos ocupados y se debe


favorecer a los procesos que no utilizen recursos sobrecargados.

5. Algoritmos de planificacion

5.1.FCFS (First Come First Served) -- FIFO (First Input First Output).

• El algoritmo organiza los procesos en la cola de listos segun van llegando.

• Cuando un proceso se esta ejecutando y realiza una peticion de accion de E/S


pasa a la cola de bloqueados y cuando ocurre el suceso que espera, vuelve a la
cola de listos en el ultimo lugar.

Inconvenientes :
.- En ocasiones produce tiempos de retorno muy altos.
.- Tiene mejor rendimiento con procesos largos que con procesos
cortos.
.- Favorece a los procesos orientados a CPU, frente a los
orientados a E/S.

Ventajas : .- Es muy sencillo de implementar.

• Es un algoritmo no apropiativo, eso significa que una vez que un proceso


tiene el control de la CPU, no la libera hasta que termine o solicite una
operacion de E/S.

5.2.SJF (Shortest Job First) -- SPN (Shortest Process Next)

• 'Primero el proceso mas corto'.


• El planificador organiza los procesos en la cola de listos en funcion de la
duracion estimada del siguiente intervalo de uso del procesador.
• El proceso mas prioritario es aquel cuya duracion sea menor.
• En caso de que exista coincidencia entre valores, se usa el algoritmo FCFS.

Ventajas :
.- Proporciona un tiempo de retorno medio muy bajo.
Inconvenientes :

.- Es imposible, en la practica, obtener el valor real de la duracion


de un intervalo de uso del procesador antes de que se haya
ejecutado.

.- La duracion del intervalo se va a calcular mediante


estimaciones matematicas dadas por la siguiente formula.

1
Sn+1 =
n ∑Ti
Sn+1 = Duracion del intervalo n+1 del proceso.
N = Numero de intervalos del proceso ya ejecutandose.
Ti = Duracion del intervalo 'i' del proceso.
• Se puede producir inanicion de procesos.

5.3.Menor tiempo restante (Shortest Remaining Time).

• Es una variacion apropiativa del algoritmo del proceso mas corto.

• La politica de planificacion ordena los procesos en la cola de listos en funcion


de la duracion estimada del siguiente intervalo de uso del procesador.

• El proceso mas prioritario es aquel cuyo intervalo sea el mas corto.

• La diferencia con el SJF es que el proceso que tiene el control del procesador
puede perderlo por la llegada de un nuevo proceso cuya duracion estimada de
CPU sea menor al tiempo que le resta al proceso que se esta ejecutando.

Ventajas :
.- Obtiene tiempos de retorno muy bajos, menores que con el
algoritmo de 'primero el mas corto'.

Inconvenientes :

.- La duracion de los intervalos solo se estima.


.- Se puede producir inanicion.

5.4.HRRN (Highest Response Ratio Next)

• Primero el de mayor tasa de respuesta.

• Organiza la cola de listos en funcion de la tasa de respuesta, dando mas


prioridad a los que tienen mayor tasa.

W S
Tasa de respuesta ==> R=
S
R : Tasa de respuesta.
W : Tiempo consumido esperando al procesador.
S : Tiempo de servicio.

Ventajas :
.- Favorece a los procesos cortos en un principio, pero a medida
que el sistema evoluciona y los procesos envejecen, va
favoreciendo mas a los largos.

.- No hay inanicion.

5.5.RR (Round Robin) -- Turno Rotatorio.

• Asigna a cada proceso un intervalo de tiempo llamado quanto.

• Los procesos se organizan segun el orden de llegada.

• Cuando un proceso toma el control del procesador, se ejecuta durante el


tiempo indicado en su quanto.

• Si el quanto se termina antes de que llegue a su terminacion natural, pasa a la


cola de listos por Time - Out.

• Si se produce una interrupcion antes de que finalize el quanto, el proceso pasa


a la cola de bloqueados y cuando ocurre el suceso por el que espera se situa al
final de la cola de listos.

Inconveniente:
.- Se favorece a los procesos orientados a CPU frente a los
procesos orientados a E/S.

5.6.Virtual Round Robin

• Se resuelve el inconveniente que plantea el turno rotatorio.

• En este caso la cola de listos esta formada por dos colas, la cola N0 y la cola
N1. Cuando un proceso se incorpora a la cola de listos, bien porque acaba de
incorporarse al sistema por primera vez o bien porque ha terminado su quanto
pero no su ejecucion, pasa al ultimolugar de la cola N0.

• Cuando un proceso pierde el control del procesador para realizar una


operacion de E/S, una vez que realize dicha operacion pasa al ultimo lugar de
la cola N1 (de bloqueado a Listo = N1).
• Todos los procesos de N0 tienen el mismo quanto, sinembargo los procesos
que estan en N1 tendran un quanto igual al tiempo que le quedaba para
finalizar su quanto cuando fue bloqueado.

• Por eso se le da prioridad a los procesos que estan en N1, porque ya se han
ejecutado una vez (en teoria) y les queda menos para finalizar, su tiempo de
retorno es menor.

• Con esto, ningun proceso de N0 tomara el control del procesador si hay


procesos pendientes en N1.

6. Planificacion por prioridades

• Se organizan los procesos en la cola de listos en funcion de la prioridad asignada a cada


proceso o externamente.

• Si la prioridad es interna, quiere decir que todos los procesos de una misma cola tendran una
prioridad fija y que se utiliza para elegir el proceso que se va a ejecutar a continuacion.

• Si es externa, se usa en algoritmos en los que existen distintas colas de listos relacionadas
entre si : Colas Multinivel.

• Las colas multinivel se utilizan cuando los procesos se pueden clasifica en distintos grupos
(ejemplo: Procesos en primer y en segundo plano).

• Hay diversas colas de listas y en cada una se situan trabajos o procesos con determinadas
propiedades en comun.

• Cada cola puede tener un algoritmo de planificacion diferente.

• Hay dos tipos de colas multinivel: Colas no realimentadas y Colas realimentadas.

Colas no Realimentadas:

– Los procesos pasan a una cola en funicion de criterios internos como podria
ser la prioridad. En ese caso es necesario un algoritmo para gestionar las colas
que decida de que cola vamos a elegir el proceso mas prioritario.

Colas Realimentadas:

– En ellas un proceso puede cambiar de una cola a otra. Existen diversas


posibilidades:
• Si se usa un algoritmo de envejecimiento, el proceso pasa a
una cola de prioridad superior.

• Aquellos procesos que consuman mucha CPU seran


desplazados a una cola menos prioritaria.

7. Evaluacion de algoritmos
Los criterios para evaluar algoritmos se basan en:

a) Maximizacion de la utilizacion de la CPU.


b) Maximizacion de la productividad, de modo que el tiempo de retorno sea
linealmente proporcional al tiempo total de ejecucion.

Existen distintos metodos de evaluacion:

7.1.Evaluacion analitica.

• Utiliza el algoritmo y la carga de trabajo del sistema para producir una


formula que evalue las prestaciones del algoritmo para esa carga de trabajo.

a) Model determinista:

Se toma una carga determinada de trabajo y de CPU y se obtienen


las prestaciones para ese algoritmo.

b) Metodo de colas

– En muchos sistemas, los trabajos varian diariamente, por lo


que no hay un conjunto estatico de procesos para utilizar un
modelo determinista (osea, que no se puede usar).
– Sin embargo lo que si puede determinarse es las distancias de
rafagas de CPU y de E/S.
– Sobre esta distribucion pueden tomarse datos y obtener la
formula numerica que nos de la referencia del algoritmo.
7.2.Evaluacion por simulacion.

• Implica la programacion de un modelo del sistema informatico.


• Los principales componentes del sistema se representan por estructuras
software.

7.3.Evaluacion por implementacion.

• En este ultimo enfoque se realizan pruebas sobre sistemas reales.


Tema 4 : La gestion y administracion de la memoria

• Memoria Real

0. Introducion

– En un sistema monoprogramado, la memoria principal se divide en 2 partes, una para el


sistema operativo y otra para el programa que se esta ejecutando.

– En un sistema multiprogramado, la parte de usuario de la memoria debe dividirse en


subpartes para hacer sitio a varios procesos. La tarea de division de la memoria se llevara a
cabo de forma dinamica, según se va necesitando y se conoce como gestion de memoria.
1. Requisitos para la gestion de memoria.

– Reubicacion.
– Proteccion.
– Comparacion.
– Organizacion logica.
– Organización fisica.

1.1Reubicacion.

• En un sistema multiprogramado, la memoria disponible se encuentra compartida por


varios procesos, y ademas en ciertos momentos sera preciso poder cargar y descargar
los procesos que se encuentran activos en memoria.

• Cuando un proceso haya sido descargado al almazenamiento secundario, sera preciso


conocer si cuando ese proceso vuelva a ser cargado debe situarse en la misma region
de memoria principal en la que estaba anteriormente o bien puede situarse en
posiciones diferentes a las que tenia en el instante de ser descargado.

PCB

Codigo Prog

Datos SO

Pila

• Si usamos unas direcciones fijas absolutas hay que cargar y descargar el proceso
siempre en el mismo sitio. Si usamos una direccion base lo que hacemos son
movimientos según esa direccion,

• como el sistema operativo gestiona la memoria y es responsable de traer el proceso a


memoria principal, las direcciones que maneja el proceso deben ser faciles de
conseguir, ademas el procesador debe ocuparse de las referencias a memoria dentro
del programa.

• De algun modo el hardware del proesador y el software del sistema operativo deben
ser capaces de traducir las referencias en memoria encntradas en el codigo del
programa a direcciones fisicas reales que reflejen la posicion actual del programa en
memoria.
1.2Proteccion

• Se deben proteger los procesos de interferencias no deseadas de otros procesos.

• Un proceso no podra hacer referencia a posiciones de memoria de otros procesos sin


permiso,

• Es posible satisfaccer las exigencias de proteccion atraves del procesador.

Reg. Base Reg. Base + Lim

S S
Procesador >= < Memoria

N N

Error. Dir Errror.

1.3 Comparacion.

• Cualquier mecanismo de proteccion debera tener la flexibilidad de permitir el acceso


de varios procesos a la misma zona de memoria principal.

• Del mismo modo, si varios procesos tienen que cooperar en una misma tarea, es
logico que deban acceder a la misma estructura de datos.

• El sistema de gestion de memoria debe permitir accesos controlados a las areas


compartidas de memoria. (lo hace mediante el PCB). Con el PCB lo deja compartido
y con las interrupciones le dejo acceder.

1.4 Organización Logica.

• La memoria de los programas se organiza en modulos, algunos de los cuales no son


modificables y otros que contienen datos se pueden modificar.

• Si el so y el hardware del ordenador pueden tratar de forma efectiva los programas de


usuario y los datos que se necesitan, se conseguiran las siguientes ventajas:

– Los modulos pueden escribirse y compilarse independientemente.

– Con un escaso coste adicional pueden otorgarse varios grados de


proteccion.
– Es posible introducir mecanismos por medio de los cuales los procesos
pueden compartir modulos.

• La organización logica lo que me dice es que yo tengo mi memoria (como sea y


cuanta sea).

• Si consigo que el so coopere con el hardware puedo hacer un monton de cosas.

1.5.Organización Fisica.

• La memoria del ordenador se divide como minimo en 2 niveles: la memoria principal


(RAM) y la secundaria (normalmente disco duro).

• El so mediante el sistema de gestion de memoria mueve datos de memoria principal a


secundaria

2. Carga de programas en memoria principal.


2.1.Espacio Contigio

{aquí ahora falta el punto 2.1.1 que versa sobre la asignacion estatica asique pasamos directamente a la
asignacion dinamica.}

2.1.2Asignacion Dinamica

• Con las particiones dinamicas las particiones son variables en numero y


longitud.

• Cuando un proceso se lleva a memoria, se le asigna exactamente tanta


memoria como necesite.

• Para realizar esa asignacion se debera localizar un area contigua de memoria


libre, si se encuentra se crea una particion de tamaño exacto a las necesidades
del proceso y se introduce en la tabla de descripcion de procesos.

• Cuando una particion se libera, se apunta en una lista de segmentos libres.

2.2Espacio No Contiguo.
2.2.1.Segmentacion.

• En la segmentacion, el programa y sus datos asociados se dividen en un


conjunto de segmentos que pueden ser de distinta longitud o la misma, pero
siempre existe un maximo tamaño del segmento.
• Una direccion logica en segmentacion se divide en dos partes [S,D].

S : Nº de segmento.
D : Desplazamiento dentro del segmento.
• Para cada uno de los segmentos se guarda una entrada en la tabla de
segmentos que contiene los campos : Numero de segmento , Base y Longitud.
• Para realizar la traduccion de direcciones bidimiensionales [S,D] a
direcciones fisicas o reales, se sigue el siguiente esquema.

S < Nº max. SI Accede a la tabla de


segmentos segmentos apartir de S

NO +
ERROR

Nº Nase longitud

[S,D]

Desp + Dir. Base


D < Longitud

+
NO

ERROR DE DIRECCIONAMIENTO

• La segmentacion elimina la fragmentacion interna pero al igual que en las


particiones dinamicas, sigue habiendo fragmentacion externa.
• En cuanto a proteccion y comparticion, cada proceso tendra una tabla de
segmentos asociada a su bloque de control de proceso.

• Los segmentos que se comparten, apuntan a las mismas direcciones reales en


la tabla de segmentos.
• Los mecanismos de proteccion y comparticion estan en el PCB.
2.2.2.Paginacion

• Consiste en dividir la memoria principal en bloques de igual tamaño y


relativamente pequeños.

• Los procesos se dividen en bloques de tamaño fijo igual a los marcos de la


spaginas.

• En la pagina hay una imagen del proceso.

• La pagina se guarda en un marco de pagina.


• El problema es que puede haber fragmentacion interna en el ultimo marco del
proceso.

• Cada direccion generada por el procesador, se divide en 2 partes: Nº de


pagina y desplazamiento dentro de la pagina.

• El numero de pagina se usa como indice en una tabla de paginas. Contiene la


direcion base para cada pagina en memoria fisica.

• La direccion base se combina con el desplazamiento dentro de la pagina para


definir la direccion en memoria real.

• Tanto el tamaño de la pagina como el del marco seran potencia de 2 para


facilitar la traduccion de una direccion logica a pagina y desplazamiento.

Ejemplo:

Tamaño de pagina = 4 --> palabras = 22 --> exp = 2 = numero de


posiciones para definir la direccion.

Dir = 10 2 veces = 10 10
Desplazamiento

Pagina.

• Es posible que se produzca fragmentacion interna pero solo en el ultimo


marco del proceso.

• Fragmentacion externa no existe en este sistema.

Implementacion de la tabla de paginas

A) Mediante registros especializados o de un solo proposito.

• Un registro es un componente hardware diseñado con una logica de acceso


mas rapida que la que presentan los componentes hardware de la memoria
principal.

• Cada vez que se produce un cambio de contexto (un intercambio entre un


proceso que esta en memoria y disco) y el procesador va a tener que ejecutar
instrucciones de un nuevo proceso se cargan tantos registros especializados
como paginas tenga el proceso. Con las direcciones fisicas de comienzo de
los respectivos marcos de pagina donde dicha pagina esta cargada en
memoria.

B) Mediante un registro base de la tabla de paginas.

• Existe un unico registri del procesador utilizado por todos los procesos cada
vez que toman el control de la CPU, denominado RBTP (registro base tabla
de paginas).

• Cada vez que se produce un cambio de contexto, el sistema consulta el PCB


que va a entrar en ejecucion para conocer en que direccion de memoria
comienza su tabla de paginas, con dicha direccion carga el RBTP, el cual
tambien dice donde comienza la tabla de paginas, luego necesita dos accesos
para acceder a un dato en una pagina.

• los registros asociativos contienen unas pocas entradas de la tabla de paginas.

• Cada registro tiene dos campos, una clave (numero de pagina) y una direccion
fisica de comienzo del marco.

2.3.Sistemas combinados.

A) Programacion segmentada. P D

• A medida que evolucionaron los sistemas, fue deseable aumentar el tamaño


de la direccion logica, con lo que el espacio de la tabla de paginas se vio
incrementado. Sin embargo habia procesos que no necesitaban utilizar tanto
tamaño y para evitar un desperdicio de espacio se decidio segmentar la tabla
de paginas.

• Este es el esquema de la Traduccion de direccion logica a fisica o real.

ERROR
P D

<= aceso
autorizado D +
S D'
tabla de segmentos

longitud base atributos


RBTS + S
Tabla de Pagina

Pagina a la que
quiero acceder Memoria, para acceder al dato.

B) Segmentacion Paginada

• Para solucionar el problema de la carga de segmentos en memoria se decidio


paginar los segmentos, con lo que se elimina la fragmentacion externa y se
convierte en trivial el problema de la asignacion.

• La traduccion de direccion logica a direccion fisica tiene el siguiente


esquema:

ERROR

No
SI
S D <= Memoria

P D' +

RBTS + longitud dir. Base + Dir. comienzo

2. Ubicación de programas en memoria.

• Primer ajuste.
• Mejor Ajuste.
• Peor Ajuste.
Tema 5 : Gestion de memoria virtual
5.1Caracteristicas

• Los sistemas de gestion de memoria estudiados hasta ahora exigian tener cargado todo el programa
en memoria para poder ejecutarlo, aasi, el tamaño de los programas esta fuertemente condicionado
por el tamaño de la memoria.
• Posteriormente se diseñan formas de administracion como la memoria virtual, basadas en la idea de
que para la ejecucion de un proceso no es necesario que la totalidad del codigo este cargado en
memoria, sino que basta con mantener en memoria aquellos fragmentos del proceso que se
necesitan en cada instante determinado. Que es lo que se llama 'conjunto residente'
• Un estudio detallado de la estructura de los programas llevó a la conclusion de que:
– Solamente un subconjunto pequeño de rutinas o modulos era referenciado
habitualmente.
– Otro subconjunto mayor era referenciado pocas veces, con lo cual su permanencia en
memoria durante toda la ejecucion suponia un mal aprovechamiento de este recurso.
– Determinadas rutinas o modulos, como por ejemplo la gestion de errores no llegaban
a ejecutarse nunca.

Ventajas

– Se libera al programador de ionvertir esfuerzos en optimizar el codigo fuente.


– Es necesaria menos memoria para lña ejecucion
– es necesario menos tiempo de E/S para intercambiar un proceso de usuario
entre la memoria y el disco.

5.2Paginacion y segmentacion en memoria virtual

5.2.1Paginacion

• Un proceso puede ejecutarse si su pagina activa se encuentra en el almacenamiento


proncipal.
• Las paginas situadas en el almacenamiento auxiliar, correspondientes al proceso, tienen que
transferirse al almacenamiento principal. Los componentes nuevos de la tabla de paginas
son:

bit presencia Dir. Marco Dir. Auxiliar bits de control

• El bit de presencia puede estar a uno (1) si la pagina esta cargada en memoria o a cero (0) si
no lo esta.

• La direccion del marco es la direccion fisica de comienzo del marco donde esta cargada la
pagina.

• La direccion de memoria es la direccion fisica de la pagina en memoria auxiliar.

• Los bits de control ofrecen informacion estadistica asociada a la pagina (si no se modifica
desde su ultima carga en memoria, el numero de veces que se ha referenciado, etc...)

5.2.1.1Traduccion de direccion virtual a fisica

1. Busca la pagina en la tabla de paginas.


2. Si el bit de presencia esta a 1, coje la direccion del marco, sino, busca la direccion en
memoria principal.
3. Concatena el desplazamiento a la direccion del marco encontrado.

Formas de hacer la traduccion

a) Por Correpondencia directa


dir. Virtual Memoria

P D Numero marco Desp

marco

+
Tabla de paginas
RBTP

b) Asociativa

P D memoria
num. Marco desp
num. Pagina num. Marco

• Cada entrada del almacenamiento asociativo se revisa de forma


simultanea, este tipo de implementacion tiene un coste
prohibitivo.

c) Correspondencia : buffer de traduccion adelantada

P D memoria
n. Marco desp

TLB

Buffer
Trad. Adelantada Carga pagina

Fallo TLB

Tabla de paginas

Fallo de pagina Memoria secundaria

• Coje una pagina y dice : a ver si esta en el buffer de traduccion


adelantada, si esta la carga, sino mira en la memoria en la tabla
de paginas, si esta la carga, sino, hay un fallo de pagina, como
aun no esta cargada la buscara en la memoria secundaria y la
carga en memoria.
• Buffer de traduccion adelantada : Cada referencia a memoria
virtual puede generar 2 accesos a memoria, un para obtener la
entrada del TLB y otro para obtener el dato deseado, sin
embargo puede darse el caso de que el tiempo de acceso se
doble.
• Para evitar esto, se utiliza un almacenamiento asociativo que
almacene aquellas entradas en la tabla de paginas suadas hace
menos tiempo (se hace mediante los bits de control).

5.2.1.2Principio de cercania

Las referencias a los datos del programa dentro de un proceso tiende a agruparse, por lo
tanto durante cortos periododos de tiempo se necesitaran solo unos pocos fragmentos del
proceso.

Ademas seria posible hacer predicciones sobre que fragmentos del proceso se
necesitaran en un futuro cercano.

5.2.2Segmentacion

En la segmentacion, cada proceso tiene su propia tabla de segmentos, cada entrada de dicha
tabla contiene la direccion de comienzo del segmento en memoria principal y su longitud. En
memoria virtual, ademas se tendra un bit para indicar si el segmento esta en memoria principal y
otro bit que indica si el segmento se ha modificado recientemente.

La segmentacion es como la paginacion pero con segmentos variables.


5.3Algoritmos Software

• Cuando una pagina activa haga referencia a una direccion logica cuya pagina asociada no esta
cragada en memoria, se elevara una interrupcion del sistema operativo de fallo de pagina.

5.3.1Politicas de lectura de paginas

a) Paginacion por demanda


Incorpora a la memoria solamente las paginas necesarias evitando asi colocar en
memoria paginas que nunca se utilizaran, reduciendo el tiempo de
intercambio y la cantidad de memoria fisica necesaria.

b) Paginacion previamente

Como los discos tienen un tiempo de busqueda y una latencia de giro, se cargaran
las paginas secuencialmente en memoria secundaria.

El exito de estas politicas radica en que se hagan referencias secuenciales a


paginas contguas.

Pasos a seguir cuando hay una interrupcion de fallo de pagina

– Interrupcion del sistema operativo.


– Almacenamiento del estado de ejecucion actual.
– Determina que la interrupcion se ha debido a un fallo de
pagina.
– Determina la legalidad de la referencia a la pagina.
– Leer de memoria auxiliar la pagina referenciada.
– Suspender la ejecucion del nuevo proceso
– Corregir la tabla de paginas del proceso.
– Esperar a que se le asigne denuevo la CPU
– Restaurar el PCB

5.3.2Algoritmos de reemplazo de paginas

• Me van a edcir que pagina debo cargar en memoria

a) FIFO

• Cuando se necesita sustituir una pagina se hace con la que lleve mas
tiempo en memoria.
• Se produce un fallo de pagina cuando se pide una pagina que no esta
cargada en ningun marco.
• Se supone que cuando aumentamos el numero de marcos hemos de
reducir el numero de fallos de pagina en una misma secuencia, hay
veces que eso no ocurre, a ese hecho se le conoce como Anomalia de
Belady.

b) Reemplazo Optimo

• Se selecciona para reemplazar aquella pagina que mas tiempo va a


tardar en ser referenciada.

c) LRU – Last Recently Used


• Se selecciona para ser intercambiada a memoria auxiliar aquella
pagina que no ha sido referenciada en un mayot periodo de tiempo.
• Es una aproximacion probabilistica al algoritmo optimo.

• La implementacion del LRU se puede hacer por dos metodos

I – Implementacion por contadores

– Incorpora un contador que se incrementa


automaticamente con cada referencia a memoria y
añade un campo a la tabla de paginas que contiene el
contador

II – Lista doblemente enlazada

– El conjunto de paginas utilizadas se encuentran


asociadas mediante una lista doblemente enlazada.
– Cada vez que se utiliza una pagina se coloca al final de
la lista

Ventajas

– Buen rendimiento al tratarse de una aproximacion al


algoritmo optimo.
– No presenta anomalia de belady.

Inconvenientes

– Requiere gran soporte hardware.


– Dificil implementacion.

d) Algoritmo del reloj ( !!! )

– Cada marco tiene asociado un bit de uso.


– Cuando se carga una pagina por primera vez, su bit de ueso se pone a
cero.
– Cuando se referencia posteriormente a la pagina el bit de pone a 1 si
estaba a 0.
– para reemplazar una pagina el sistema operativo recorre el buffer
buscando un marco con el bit de uso a cer y por cada marco por el que
va pasando con el bit de uso a 1 lo pone a 0.

– Una posible mejora seria utilizar un bit de uso y un bit de


modificacion, creandose 4 categorias:

• Recorre el buffer buscando un marco con los bits de uso


y modificacion a 0.
• Si falla el paso 1 recorre el buffer buscando un marco
con el bit de uso a 0 y el de modificacion a 1.
• durante el recorrido pone a 0 el bit de uso.
• Si falla el paso 2 se repite el 1 y asi repetitivamente.

– Es una teoria unicamente.

e) Almacenamiento Intermedio de paginas

– El algoritmo de reemplazo es un FIFO y para mejorar el rendimiento


no se pierde la pista de la pagina reemplazada, sino que se asigna bien
a unalista de paginas libres o a una lista de paginas modificadas.
– La pagina reemplazada no se mueve fisicamente de la memoria.
Cuando se necesita un nuevo marco se utiliza el primero de la lista de
libres.

5.3.3Gestion del conjunto residente

a) Alcance

• El alcance determina cuantos marcos van a ser asignados en un


proceso. Puede ser asignacion fija (otorga a cada proceso un numero
fijo de marcos) o variable (permite que el numero de marcos varie).
• Un condicionamiento a tener en cuenta a la hora de determinar
cuantos marcos de memoria se asignan a un proceso es la limitacion
existente en cuanto a un numero maximo de marcos, que viene
determinado por la arquitectura de instrucciones del ordenador.
• Si una instruccion puede hacer referencia como maximo hasta 'n'
direcciones de memoria, habra que reservar 'n+1' marcos, 1 para
almacenar la instruccion y 'n' para las paginas de los operandos.

Criterios que se pueden seguir a la hora de reemplazar

I – Local
Cuando un proceso necesita cargar una nueva pagina y no
existe ninguna libre, el sistema selecciona una
pagina del conjunto de paginas activas del proceso.

II – Global
Cuando un proceso necesita cargar una nueva pagina, el
algoritmo de reemplazo puede seleccionar cualquier pagina
activa.

Asignacion Local No me importa lo que haga el resto


Asignacion Global Si que me importa y mucho.
b) Gestion de trabajos

b.1) Teoria del area de trabajo


Trata de determinar el conjunto de paginas que un proceso debe
mantener cargadas en memoria para asegurarse de que nunca se
entre en hyperpaginacion (emplear mas tiempo en paginar que en
ejecutar).

Permisos

– Durante un intervalo de tiempo un proceso en ejecucion


favorece a un subconjunto de paginas.
– Existe una alta correlacion entre las referencias a
memoria realizadas en un instante 't' y 't+1'
– la frecuencia con que una pagina es referenciada es una
funcion que cambia lentamente en el tiempo.

b.2) PFF – Page Fault Frecuency – Algoritmo de frecuencia de fallos

ada pagina de memoria tiene asociado un bit de uso, inicialmente


los bits estan a cero. El bit se pone a uno cuando se accede a la
pagina. Cuando se produce un fallo de pagina el sistem,a operativo
anota el tiempo transcurrido desde el fallo de pagina a ese proceso.
tipo transcurrido es menor que un umbr 'F' añade la pagina al
conjunto residente, sino, se quitan todas las paginas con el bit a
cero.

b.3) VSWS – Conjunto de trabajo con muestras variables

Parametros

• M : Duracion minima del intervalo de muestreo.


• L : Duracion maxima del intervalo de muestreo.
• Q : Numero de fallos permitidos entre cada par de
muestras.
Funcionamiento

• 1. Si el tiempo transcurrido desde la ultima muestra


alcanza L, se suspende el proceso y se exploran los bits
de uso.
• 2. Si antes de que transcurra el tiempo L se producen
'Q' fallos de pagina:

a) Si el tiempo es menor que 'M' espera


hasta que se alcanze, suspende el proceso
y explora los bits de eso

b) Si es mayor que 'M' directamente se


suspende y explora los bits de uso.
• Cuando se explora, se quitan aquellas paginas con el bit de uso
a cero. (en los dos casos, siempre que se explore). Y las que lo
tenian a uno se cambia a cero.
b.4) Mejora del PFF

• Se tendrá un umbral superior y un umbral inferior.


• El superior indica el crecimiento del tamaño del conjunto
residente y el inferior indica la reduccion del tamaño del
conjunto residente.

5.3.4Politicas de vaciado

Determinan en que momento hay qye escribir en la memoria secundaria una


pagina modificada.

a) Vaciado por demanda

La pagina se escribe en disco cuando haya sido elegida para


reemplazarase.

b) Vaciado Previo

Escribe la pagina modificada antes de que se necesiten sus marcos.

Inconvenientes

Del vaciado por demanda

– El proceso que suffre un fallo de pagina espera 2


transferencias de pagina antes de desbloquearse.

Del vaciado previo

– la pagina se escribe en disco pero permanece en


memoria hasta que el algoritmo de reemplazo diga que
se suprime.
– La mayoria de estas paginas son modificadas antes de
reemplazarse, con lo que se realizan escrituras
innecesarias.

5.3.5Control de carga

• Existe un numero maximo de paginas activas para cada proceso y tambien


existe un numero minimo, por debajo del cual es imposible que el proceso
pueda ejecutarse.
• Si hacemos que un proceso se ejecute con un numero de marcos muy proximo
al minimo, aunque teoricamente es posible su ejecucion, en la practica no
resulta rentable, puesto que su tasa de fallos de pagina será excesivamente
alta.
• A esta altisima actividad de paginacion se la denomina Hyperpaginacion
• Se dice que un programa esta hyperpaginando cuando emplea mas tiempo
paginando que ejecutando, la hiperpaginacion esta relacionada con el grado
de multiprogramacion, especialmente en aquellos sistemas con asignacion
global de marcos.

Metodos para la resolucion de la hyperpaginacion

I. Algoritmos del conjunto de trabajo

– Solo se pueden ejecutar aquellos procesos cuyo conjunto


residente sea suficientemente grande.

II. L = S

– Ajusta el grado de multiprogramacion de forma que el tiempo


medio entre fallos sea igual al tiempo medio exigido para
procesar un fallo de pagina.

III . 50%

– Mantiene el uso del dispositivo de paginacion


aproximadamente a su 50%.
Tema 6 : Gestion E / S

6.0Introduccion

El sistema de E/S es la parte del sistema operativo encargada de los dispositivos E/S y actua como
interfaz entre los usuarios del sistema y los dispositivos E/S.

Denominaremos operacion de E/S al intercambio de informacion entre la memoria principal y los


dispositivos perifericos.

6.1Caracteristicas de las operaciones de E/S

6.1.1Asincronismo

– La mayor parte de las operaciones de E/S se realizan de forma asincrona, es decir, se


solicitan en cualquier momento y no mantiene ninguna relacion con el reloj del procesador.

6.1.2Diferencia de velocidad

– Los dispositivos de E/S son mucho mas lentos que la CPU. Ademas dentro de los perifericos
el rango de velocidades es muy amplio y variable.

6.1.3Diferencia de formato

– El tipo de representacion de un dato varia cuando es almacenado en memoria o tratado por el


procesador.

6.2Esquema de un controlador

• Se trata de un dispositivo con un componente hardware y software que actua como interfaz entre la
memoria o la cpu y el dispositivo de E/S.
• Esta compuesto por una logica de direcciones que indica de que manera va a manejarse el espacio
de direcciones del controlador.
• El puerto de Entrada / Salida es el area de intercambio de datos y contiene los siguientes registros:

a) Registros de memoria intermedia de entrada

Su funcion principal es guardar un dato hasta que la CPU este preparada para
aceptarlo ya que esta puede estar ocupada cuando el dato esté disponible.

b) Registros de memoria intermedia de salida

Su funcion es almacenar temporalmente un dato que ha sido enviado por la CPU


a un periferico.

c) Registro de ordenes
Se divide en 2 tipos: registros de designacion de modo que tiene el formato del
dato a transmitir ademas de otra informacion y el registro de operaciones que
contiene las ordenes q gobiernan el mecanismo de transfrencia de la informacion.
d) Registro de estado

Contiene informacion relativa al estado del periferico (leyendo, bloqueado,


ocupado, etc...) y será usado por la CPU para ver si puede operar sobre ese
periferico o no.

Interfaz del dispositivos

• Se encarga de transformar las señales de control procedentes de la CPU en señales


reconocibles por el periferico.

6.3Tecnicas de comunicacion de E/S

6.3.1E/S Programada

Consiste en responsabilizar a la unidad de control de todas las fases de ejecucion de las


operaciones de E/S. Las operaciones de E/S se reducen a un intercambio de datos entre un
registro de la CPU y un registro del puerto de E/S del controlador.

6.3.2Acceso Directo a Memoria – DMA

Los circuitos del acceso directo a memoria (el DMA) se utiliza para mejorar la velocidad de las
operaciones de E/S y eliminar el papel de la unidad de control en estas rutinas.

En esta forma de gestion, la operacion de E/S es arrancada por la CPU, permitiendo al


controlador la transferencia de bloques de datos desde o hacia la memoria.

El puerto de E/S de un controlador con DMA tiene ademas de los anteriores registros, los dos
siguientes:

a) Registro 'DIR' : Controla la direccion de memoria a la cual se va a efectuar el


siguiente acceso.

b) Registro 'CONT' : Contiene el numero de datos que se van a transferir en la


operacion de DMA.

6.3.3E/S por interrupciones

Una interrupcion es una señal enviada por un controlador al procesador para indicarle a este que
ejecute una rutina de E/S a su favor.

El sistema operativo debe disponer de los mecanismos necesarios para :

– 1. Guardar el estado actual del proceso interrumpido.


– 2. Ejecutar la rutina de atencion a la interrupcion.
– 3. Continuar el proceso interrumpido.
6.4Planificacion de E/S

1. FCFS – First Come First Served

– Ordena las interrupciones en el orden en que llegan.

2. SSTF – Shortest Seek Time First

– Va ordenando las interrupciones en orden tal que la primera que atenderá sera la que tarde
menos en llegar hasta ella desde donde se encuentre (el dato de donde se encuentra al
empezar te lod an y despues de atender una interrupcion, por ejemplo en 40 nos encontramos
en 40).

3. SCAN

– Consiste en que la cabeza de lectura y escritura comienza en un extremo del disco y se va


moviendo hacia el otro, sirviendo todas las solicitudes que encuentre a su paso. Al llegar a
un extremo se invierte el sentido del movimiento.

You might also like