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.

SSOO 1

  • Upload
    samira

  • View
    5.603

  • Download
    1

Embed Size (px)

Citation preview

Page 1: SSOO 1

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.

Page 2: SSOO 1

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.

Page 3: SSOO 1

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.

Page 4: SSOO 1

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.

Page 5: SSOO 1

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 :

Page 6: SSOO 1

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

Page 7: SSOO 1

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.

Page 8: SSOO 1

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.

Page 9: SSOO 1

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.

Page 10: SSOO 1

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

Page 11: SSOO 1

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).

Page 12: SSOO 1

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.

Page 13: SSOO 1

– 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)

Page 14: SSOO 1

gestor de directorios estructura de archivos

FAT32 funciones de manipulacion

Ordenes de Nombre de la operacion NTFS de archivosaplicaciones + 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.

Page 15: SSOO 1

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

Page 16: SSOO 1

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 nombreatributos

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 :

Page 17: SSOO 1

• 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:

Page 18: SSOO 1

• 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.

Page 19: SSOO 1

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).

Page 20: SSOO 1

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:

Page 21: SSOO 1

• 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.

Page 22: SSOO 1

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.

Page 23: SSOO 1

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

Page 24: SSOO 1

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 :

Page 25: SSOO 1

• 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

Page 26: SSOO 1

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 NTabla 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 DIRECCIONESPRIVADAS

ESPACIO DIRECCIONES

Page 27: SSOO 1

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

Page 28: SSOO 1

• 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

Page 29: SSOO 1

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 plazosuceso Espera

de sucesos

Cola de bloqueados

Modelo de 7 estadosCreacion

Fin plazo admitir Liberar

Nuevo Listo Ejecucion Terminado Eliminacion Expedir

admitnir activar ocurre el espera desuspender suceso un suceso

Page 30: SSOO 1

Listo Y BloqueadoSuspendido activar

suspender

Bloqueado ySuspendido

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).

Page 31: SSOO 1

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:

Page 32: SSOO 1

L/PM/P

C/PEJECUTANDO

LISTO

BLOQUEADO

BLOQUEADO YSUSPENDIDO

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)

Page 33: SSOO 1

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.

Page 34: SSOO 1

• 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.

Page 35: SSOO 1

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.

Sn+1 = 1n ∑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.

Tasa de respuesta ==> R=WSS

Page 36: SSOO 1

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).

Page 37: SSOO 1

• 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:

Page 38: SSOO 1

• 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.

Page 39: SSOO 1

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.

Page 40: SSOO 1

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.

Page 41: SSOO 1

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.

Page 42: SSOO 1

– 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.

Page 43: SSOO 1

• 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. BaseD < 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.

Page 44: SSOO 1

• 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 10Desplazamiento

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

Page 45: SSOO 1

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.

ERRORP D

< = aceso autorizado D +

S D' tabla de segmentos

longitud base atributosRBTS + S

Page 46: SSOO 1

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

NoSI

S D < = Memoria

P D' +

RBTS + longitud dir. Base + Dir. comienzo

2. Ubicación de programas en memoria.

• Primer ajuste.• Mejor Ajuste.• Peor Ajuste.

Page 47: SSOO 1

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:

Page 48: SSOO 1

– 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

Page 49: SSOO 1

dir. Virtual Memoria

P D Numero marco Desp

marco

+ Tabla de paginas

RBTP

b) Asociativa

P D memorianum. 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 memorian. Marco desp

TLB

Buffer

Page 50: SSOO 1

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

Page 51: SSOO 1

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

Page 52: SSOO 1

• 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.

Page 53: SSOO 1

• 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 – LocalCuando 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 – GlobalCuando 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 restoAsignacion Global Si que me importa y mucho.

b) Gestion de trabajos

b.1) Teoria del area de trabajo

Page 54: SSOO 1

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.

Page 55: SSOO 1

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.

Page 56: SSOO 1

• 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%.

Page 57: SSOO 1

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

Page 58: SSOO 1

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.

Page 59: SSOO 1

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.