Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. TEMA 6: SISTEMAS OPERATIVOS 1. 2. 3. 4. 5. 6. 7. 1. Función del Sistema Operativo ................................................................................................ 1 Evolución Histórica ................................................................................................................ 2 Arquitectura y componentes .................................................................................................... 3 Modos de explotación. ............................................................................................................ 4 Tipos de S.O........................................................................................................................... 5 Seguridad en un S.O................................................................................................................ 6 Servicios de un S.O................................................................................................................. 8 7.1.-Gestión de Procesos............................................................................................................. 8 Planificación de ejecución de procesos..................................................................................... 8 Algoritmos de planificación. .................................................................................................... 9 Interbloqueo de procesos......................................................................................................... 9 7.2 Gestión de memoria. ............................................................................................................. 9 7.2 Gestión de Entrada/Salida.....................................................................................................10 7.2 Gestión de almacenamiento secundario. .................................................................................11 7.2 Gestión de Seguridad del sistema. .........................................................................................11 Función del Sistema Operativo Un sistema operativo es un conjunto de programas que, ordenadamente relacionados entre sí, contribuyen a que el ordenador lleve a efecto el trabajo encomendado. Desde el punto de vista del usuario, el sistema operativo es una serie de programas y funciones que ocultan los detalles del hardware, ofreciéndose una vía sencilla y flexible de acceso al mismo, teniendo dos objetivos fundamentales: Seguridad: el S.O. debe actuar contra cualquier manipulación extraña, ya sea accidental o premeditada que pudiera dañar la información, perjudicar a otros usuarios o que funcione de forma inapropiada el sistema. Para ello hay ciertas instrucciones que pueden parar la máquina y otras que realizan operaciones directamente sobre el hardware, que hay que evitar que se utilicen directamente por los programas. Para ello algunos sistemas proporcionan dos estados, llamados estado protegido (o Sistema Kernel) en el cual se ejecuta el sistema operativo y estado no protegido (Usuario o User), que es el destinado a la ejecución de los programas de usuario y de aplicación. De esta manera se impide que los programas de usuario puedan tener contacto directo con el Hardware del sistema. Abstracción: La tendencia actual del Software y de los lenguajes de programación es ocultar lo más posible los detalles de mas bajo nivel, intentando dar a los niveles superiores una visión más sencilla, global y abstracta ofreciéndoles operaciones para manipular dichas estructuras ocultas, desconociendo por completo la gestión interna de las mismas. Sobre estas estructuras se crean otras que abstraen a las anteriores y así sucesivamente. Gracias a la abstracción, los sistemas operativos enmascaran los recursos físicos, permitiendo su manejo con funciones más generales que ocultan las básicas, constituyendo verdaderos recursos ficticios o virtuales, que mejoran y son más potentes que los físicos. Desde el punto de vista de un programa o usuario, la máquina física se convierte gracias al sistema operativo, en una Prof.: Justo Sáez Arenas 1 Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. máquina virtual, también conocida como máquina extendida que presenta la ventaja respecto a la física de ofrecer más funciones de las que normalmente soporta esta última. Desde el punto de vista del usuario, el sistema operativo proporciona servicios que no están presentes en la máquina. Estos servicios incluyen las facilidades de carga y ejecución de programas, permitiendo que se ejecuten varios al mismo tiempo, gestión de la contabilidad para facturar los servicios y almacenamiento de datos y programas. Como resumen de función especifica podemos citar: • • • • • • • 2. Comunicación con el Usuario. Control y gestión de Elementos físicos. Utilización de varios Usuarios. Ejecución de varios Programas. Compartición de Información. Compartición de Periféricos. Comunicación entre Sistemas Evolución Histórica • Primera etapa.- No hay sistemas operativos. Los sistemas informáticos procesan un trabajo y la planificación la realizan los operadores. • Segunda etapa.- Procesamiento por lotes. Existe un proceso (MONITOR) que se encarga de recibir solicitudes de periféricos (otro u otros ordenadores) y planificar la ejecución secuencial de las peticiones que le son enviadas. • Tercera etapa. Multiprogramación. Los S.O. realizan tareas más complejas, pueden planificar la ejecución concurrente de varios procesos, trabajar con mas y mas variados tipos de periféricos y son capaces de soportar varios usuarios simultáneamente. • Cuarta etapa. Entornos gráficos y en red. Aparecen pequeños equipos que van adquiriendo cada vez mas potencia, surge la necesidad de comunicarlos y compartir sus recursos, por otra parte, el uso de las herramientas informáticas se generaliza y es necesario presentar la información y las herramientas correspondientes para su manejo a personas poco o nada cualificadas en conocimientos informáticos, con lo que es preceptivo que aparezcan S.O. de fácil manejo y presencia agradable. Prof.: Justo Sáez Arenas 2 Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. 3. Arquitectura y componentes - ARQUITECTURA, según el diseño del software: Proceso D Proceso A Proceso C Proceso B *- Sistema Monolítico. Conjunto de procedimientos que pueden ser llamados o llamar a cualquier otro del sistema, el cual es muy difícil depurar y mantener por su compleja estructura, ya que no están estructurados. Proceso E *- Sistema en niveles. Los procesos se agrupan por niveles (principal, servicio, auxiliares), cada procedimiento puede invocar a los de nivel inferior. Cada parte del sistema operativo se encarga de una función. Cuando la función X necesita de la función Y pedirá al sistema operativo ayuda, de esta forma se evita la interdependencia de todas las funciones (como ocurría en el sistema monolítico) Esta característica de la estructura permite la modificación de una función o parte determinada sin tocar las demás. También se pueden añadir mas módulos sin tener que modificar la estructura básica. Proc. Principal MV1 MV2 MV3 MV4 Gestor de MV Hardware *- Sistema de máquinas virtuales (IBM 370). Después surge otro tipo de sistemas operativos que simulan hardware, a los que denominamos sistemas virtuales, que permiten que con la misma unidad de proceso estén trabajando varios usuarios con sistemas operativos diferentes. *- Sistema cliente/servidor. Núcleo reducido, procesos capaces de interactuar como clientes (solicitantes de un servicio) y servidores (prestadores de los Núcleo servicios).Estos sistemas operativos se suelen dividir en partes especializadas en aspectos muy concretos, con las siguientes ventajas: Mayor modularidad al sistema, con partes más pequeñas. Sistema más rápido y manejable Si una de las partes falla, no se cae todo el sistema, sin perjuicios para los demás usuarios. *- Sistemas orientados al objeto: en vez de ver el S.O. como una colección de funciones que se pueden ejecutar, se basa en una colección de objetos. De esta manera un programa seria un tipo de objeto, también las funciones del S.O, los ficheros, y los periféricos, las líneas de comunicaciones etc. Como ejemplo de ellas tenemos Windows NT, OS/DOS de IBM. Proc. Cliente Prof.: Justo Sáez Arenas Proc. Servidor 3 Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. COMPONENTES DE UN S.O. Los S.O. se organizan en capas entorno al núcleo principal. Cada una de estas capas tiene un nivel de prioridad, siendo el núcleo principal la capa mas prioritaria. Las operaciones principales del núcleo son aquellas que se realizan casi directamente con los elementos físicos(circuitos del ordenador) Las siguientes capas se dispondrán sobre este núcleo principal acercándose cada vez mas al usuario. A medida que lleguen a la capa del usuario las funciones que se pueden realizar serán de menor prioridad que las que realizan las capas mas cercanas al núcleo. Los niveles en los que se dividen el sistema operativo son: • Núcleo. Capa interna del S.O. en contacto con el HW. (Gestión de la memoria y de las operaciones de E/S). • Nivel Ejecutivo. Gestión del sistema de archivos y de los procesos. • Nivel supervisor. Interpretación de los mandatos del sistema. • Nivel de interfaz de usuario. Presentación y gestión de las órdenes del usuario al sistema : -Texto: Es el mas utilizado y sencillo, se forma con un símbolo o letra identificativa. En caso de utilizar una letra esta suele ser la unidad de disco sobre la que está trabajando. MS-DOS. Unix, Xenix, CPM y Novell Netware. - Gráfico: Es un sistema de ventanas y menús desplegables que incluyen pequeños dibujos aclaratorios denominados iconos. Estos iconos proporcionan un acceso inmediato al programa que se quiere ejecutar haciendo un doble clic con el ratón. Este sistema operativo de interface gráfico es difícil de crear pero luego es muy sencillo de utilizar. dentro de estos hay dos tipos diferenciados: *Sistemas operativos individuales con interface gráfico que se ejecutan al iniciar el ordenador. OS/DOS y Windows 95. *Sistemas gráficos que necesitan de un sistema operativo, normalmente de tipo texto, para poder ejecutarse. Por lo tanto no son sistemas operativos como tales, aunque realizan la gran mayoría de las funciones que los sistemas operativos. Esto es posible porque ya que los interfaces gráficos se apoyan en los S.O. para realizar dichas funciones. Windows 3.0, 3.1 Windows para trabajo en grupo. 4. Modos de explotación. • • • Procesos por lotes (Batch). Son procesos cuyos resultados no se necesitan de forma inmediata. Son ejecutados con muy poca prioridad y aprovechan los tiempos en los que el procesador está mas libre, por ejemplo a la hora de comer, por la tarde o noche. Procesos en tiempo real (Interactivos). El tiempo de respuesta es inmediato para la solicitud de ejecución del proceso. Tiempo compartido(Shared Time): El tiempo que se tarda en resolver un proceso en ejecución dependerá de los procesos que se estén ejecutando. Cada proceso irá consumiendo una fracción de tiempo asignada y agotada esta fracción se ejecutará otro proceso. Un proceso deberá consumir tantas fracciones como necesite, cada una en su turno de ejecución, hasta finalizar el proceso. Prof.: Justo Sáez Arenas 4 Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. 5. Tipos de S.O. Según el nº de usuarios • Monousuario.: Cuando sólo puede trabajar un usuario con el ordenador. Todos los recursos del sistema estarán disponibles para él. Estos sistemas pueden basarse en técnicas de monoprogramación pudiendo ejecutar un programa del usuario o, bien pueden ser sistemas multiprogramados facilitando al usuario la ejecución de varios programas simultáneamente. • Multiusuario. Cuando varios usuarios pueden ejecutar procesos distintos y compartir el uso de los recursos del sistema de forma simultánea. Estos sistemas se basan siempre en las técnicas de multiprogramació n permitiendo que varios usuarios puedan acceder simultáneamente, por lo que normalmente serán sistemas de tiempo compartido aunque también podrían ser de tiempo real, según las exigencias y objetivos que deben cumplir dichos sistemas. Además el sistema permitirá que cada usuario pueda ejecutar varios programas al mismo tiempo y así aprovechar al máximo las características de los sistemas multiprogramados y alcanzar un alto rendimiento del procesador. Según la utilización de recursos • Monoprogramación. Estos sistemas son los sistemas que sólo admiten la ejecución de un programa en el sistema. En estos sistemas operativos el programa se carga inicialmente en memoria y permanece en ella hasta finalizar su ejecución. Ningún otro programa puede ejecutarse aunque exista suficiente espacio libre en la memoria principal, y aunque el programa estuviera en ejecución se hallase en espera de la finalización de una operación de e/s y el procesador se encontrase inactivo. • Multitarea. Cuando se pueden ejecutar varios procesos a la vez. Estos procesos compartirán el tiempo del uso del microprocesador. Se basan en técnicas de multiprogramación. Pueden admitir uno o varios usuarios simultáneamente y son los más extendidos en la actualidad. Debemos tener en cuenta que todos los ordenadores grandes y medios soportan este tipo de sistemas e, incluso los ordenadores personales también admiten sistemas multiprogramados como Unix y OS/2. En la actualidad se habla de dos tipos de sistemas operativos multitarea según realicen la gestión del procesador: § Multitarea apropiativa: es la que utilizan los sistemas operativos cuya gestión del procesador se basa en quitar el control del mismo al programa que se está ejecutando. Esta pérdida de control del procesador por el programa es totalmente involuntaria y ajena a él, siendo el sistema operativo el responsable de la misma, normalmente para permitir que otros programas puedan llegar a ejecutarse. § Multitarea cooperativa: El programa es el que controla el procesador de manera que, si lo tiene, será el responsable de permitir que otras aplicaciones se puedan ejecutar. El sistema operativo, por lo tanto, no toma el control voluntariamente del procesador para poder decidir el programa que se debe ejecutar, estando a merced de lo que dicte la aplicación en ese momento se esté ejecutando. • Multiproceso: Cuando se han instalado varios procesadores en un mismo ordenador. Puede ser que un mismo trabajo se ejecute por varios procesadores o lo que es mas común, que cada procesador ejecute un trabajo diferente. Prof.: Justo Sáez Arenas 5 Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. 6. Seguridad en un S.O. Compartimentación de la memoria. La memoria compartida se organiza como bloques de memoria primaria que pueden utilizar varios procesos simultáneamente. Cuando se crea un bloque de memoria compartida el sistema operativo asigna la cantidad de memoria solicitada y se la concede al proceso creador. El resto de procesos pueden utilizarla declarándola como memoria compartida en sus zonas de datos para que estén dentro de sus espacios de direccionamiento, de forma que cuando un proceso escriba información en dicha zona, los demás pueden leerla directamente. Bloqueo de procesos. Las técnicas de multiprogramación y los sistemas multiprocesador, donde se pueden ejecutar varios procesos simultáneamente compartiendo los mismos recursos, suelen dar lugar a importantes conflictos que deben ser resueltos por el gestor de procesos y, por lo tanto del procesador. La gran mayoría de los sistemas operativos utiliza mecanismos basados en algoritmos o herramientas que permitan la sincronización de dichos procesos. Hay dos definiciones importantes como: - Paralelismo. Ejecución de diversas actividades en varios procesadores al mismo tiempo. - Concurrencia. Varias actividades se ejecutan simultáneamente y tienen que utilizar los mismos recursos, debiendo sincronizarse para actuar conjuntamente, sin importar el número de procesadores existente ni las técnicas de multiprocesamiento o multiprogramación. Pero para que dos actividades se consideren concurrentes, es necesario que tengan alguna relación entre ellas. Exclusiones mutuas: Es una sincronización por la cual una actividad impide a otras que puedan tener acceso a un dato mientras se encuentra realizando una operación sobre el mismo; es decir una actividad impide (excluye) a la otra el acceso en un momento dado y viceversa (mutuamente) La zona de código perteneciente a cada programa o proceso destinada a utilizar los recursos o datos compartidos y que por lo tanto, no debe ser interrumpida por otro proceso se conoce con el nombre de sección crítica y debe reunir los siguientes requisitos: • Exclusión mutua. Mientras que un proceso esté en su sección crítica, ningún otro podrá hacer uso de los recursos compartidos con los que está operando el primero. • Progreso. Ningún proceso puede bloquear a otros cuando esté fuera de su sección crítica. • Espera limitada. Un proceso no espera indefinidamente para entrar en su sección crítica. • No realizar suposiciones sobre la velocidad de los procesos ni el número de procesadores, ya que podría dar lugar a que no se mantuviera la exclusión mutua en el caso de que existiera variación en las condiciones de procesamiento y del entorno, permitiendo la presencia de varios proceso utilizando al mismo tiempo los recursos compartidos. Alternancias (Esperas activas).Este método se basa en que los dos procesos compartan una variable que indique cual de ellos puede entrar en la sección crítica. Esta variable la denominaremos turno, pudiendo alcanzar dos valores 0 o 1, indicando si puede acceder a su sección crítica el proceso P0 o P1 respectivamente. Debido al uso del turno, no permite que dos procesos puedan estar en la sección crítica simultáneamente. Por otro lado, esta estricta alternancia puede representar un problema para el funcionamiento del sistema, y es la causante de que no se cumpla el requisito de progreso puesto que, en el caso de que el proceso se abortara dentro de la región crítica o al salir de la misma, no ejecutaría la función sale-sección y el Prof.: Justo Sáez Arenas 6 Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. proceso j se quedaría esperando indefinidamente para entrar en su región crítica, produciéndose el fenómeno conocido como postergación indefinida. Existe un riesgo de interbloqueo en el caso de que un proceso desee entrar en una sección crítica estando en otra, ya que esta nueva puede estar siendo usada por el proceso que esté pidiendo la entrada en la que esta usando el otro. Esto de puede generalizar para más de dos procesos. Semáforos. Para evitar los problemas que se producen con los algoritmos de espera activa, así como la sobrecarga que producen en el sistema, E.W. Dijkstra (1965) diseño un mecanismo basado en una variable entera utilizada como contador de peticiones de entrada a una sección crítica. Esta variable era compartida por todos los procesos del sistema, y tenía un identificador único en el mismo. Este nuevo tipo de variable se denominó semáforo, por su capacidad de gestionar el tráfico de procesos que deseaban acceder a datos compartidos. Con este mecanismo, cuando un proceso intente entrar en una sección crítica mientras otro está accediendo a los datos compartidos, se bloqueará de manera similar a cuando un proceso accede a un recurso que está ocupado. El semáforo tendrá un valor inicial que indicará el número de procesos que puede acceder simultáneamente a la sección crítica. Cada vez que entra un proceso en la sección, el valor del semáforo disminuirá en una unidad, y al salir de dicha sección, se incrementará. Cuando el semáforo alcance el valor 0, no podrá entrar ningún proceso en la sección crítica protegida. Los semáforos tienen las siguientes propiedades y problemas: • Garantizan correctamente la exclusión mutua de cualquier número de actividades en cualquier número de procesadores sólo si hacen referencia al mismo semáforo. • Cuando se bloquea una actividad al entrar en su sección crítica, nunca realizará una espera activa, sino que se insertará en la cola de procesos bloqueados. • Pueden darse problemas de postergación indefinida a no ser que la cola de procesos bloqueados del semáforo se gestione con una política primero en entrar primero en salir (Fifo) Monitores. Uno de los problemas subyacentes en los anteriores mecanismos se presenta cuando el programador tiene que proporcionar de forma explícita el modo de sincronización, añadiendo una dificultad más al ser difícil de evitar totalmente el interbloqueo. Con el fin de resolverlo se desarrolló un nuevo mecanismo que debe ser soportado por el lenguaje correspondiente. El Monitor, que permite compartir, segura y eficientemente datos entre varias actividades, ocultando la composición de los mismos, y garantizando la exclusión mutua; sin necesidad de que el programador tenga que suministrarla explícitamente. Se basa por lo tanto en dos premisas: 1. Abstracción de datos. Es una técnica de programación que separa las operaciones que se van a realizar con los datos , de los detalles de diseño propios de los mismos. De esta forma, los distintos procesos que tengan que operar con datos compartidos sólo podrán acceder a ellos a través de las operaciones que les ponga a disposición del monitor correspondiente, sin poder operar con ellos directamente. Los lenguajes modernos como Modula y Ada ya soportan este tipo de estructuras, de manera que permiten exportar e importar variables entre módulos, siendo estas las únicas visibles desde el módulo importador. Por otro lado cada módulo tendrá sus propias variables locales a las cuales no podrán acceder el resto. Prof.: Justo Sáez Arenas 7 Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. 2. Exclusión implícita. La finalidad mas útil de los monitores es reunir todas las funciones que operan sobre un conjunto de datos compartidos en un sólo módulo, de manera que todos los accesos a esos datos estarán forzados a utilizar dichas funciones ya que los datos por sí mismos estarán ocultos para el mundo exterior. De esta forma los programas serán mas fáciles de depurar y mantener. Para llevar a cabo la sincronización, el monitor se basa en un nuevo tipo de datos llamado condición, dando lugar a los monitores condicionales. Los programadores que prefieran sincronizar sus procesos conforme a sus deseos, pueden definir una o más variables de condición. Las funciones que se suelen utilizar sobre una variable de condición son dos: 1. Wait: que bloquea el proceso hasta que no exista otro dentro del monitor. 2. Signal: que permite la entrada de otro proceso al monitor. En el caso de que no hubiera ninguno bloqueado por wait, esta función no tiene ningún efecto (es como si la función no se hubiera ejecutado) . Estas funciones serán empleadas internamente por el monitor y no estarán accesibles al programador, lo que hace que los monitores sean mas fáciles y seguros de usar que los semáforos. Para cada condición construiremos una cola para las actividades que estén bloqueadas debido a dichas condiciones. Para que los monitores ofrezcan un grado de servicio aceptable, ningún proceso deberá permanecer durante mucho tiempo dentro del mismo. Si hubiera la necesidad de realizar alguna operación que necesita mucho tiempo, el proceso debería abandonar la zona de exclusión mutua, ya sea abandonando el monitor, o esperando por alguna condición especial en la cola destinada a tal efecto. Un problema asociado con el anterior es el caso de las llamadas anidadas en monitores es decir, cuando una actividad realiza una llamada a una función del monitor la actividad se encuentra dentro de el, impidiendo que entre cualquier otra actividad en el mismo. Dado que al intentar acceder al otro monitor puede quedarse bloqueada esperando acceder a este último podría permanecer largo tiempo dentro del primero. Puede incluso conducir a un interbloqueo si la condición por la que espera en el segundo monitor sólo puede ser activada por una actividad que está esperando para entrar al primero, por ello deberán evitarse siempre que sea posible el anidamiento de monitores y, sólo en el caso de que fuese imprescindible, deberemos diseñarlo con el máximo cuidado para evitar interbloqueos y esperas indeseadas dentro del sistema. 7. Servicios de un S.O. 7.1.-Gestión de Procesos. Proceso es un programa en ejecución con un contador de programa, registros y variables, se puede encontrar en uno delos siguientes estados: § Activo. Ejecutándose en U.C.P. § Preparado. En espera de que se le asignen los recursos que necesita. § Bloqueado. En espera de que una señal externa que le permita continuar su ejecución. que Planificación de ejecución de procesos. En el núcleo del S.O. está un proceso denominado “scheduler” encargado de organizar la ejecución del resto de los procesos del S.O. Este proceso carga y descarga de la U.C.P. los procesos que se han solicitado ejecutar en funcion de los algoritmos que se hayan definido. Estos algoritmos deben asegurar las siguientes circunstancias: Prof.: Justo Sáez Arenas 8 Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. § § § § Imparcialidad. Se deben asignar los recursos sin perjudicar ni beneficiar a ninguno de ellos. Eficiencia. El procesador debe estar ocupado la mayor parte del tiempo posible. Tiempo de respuesta. Se debe minimizar los tiempos de respuesta para los trabajos interactivos. Rendimiento. Se maximizará el numero de trabajos que se ejecutan en un periodo de tiempo. Algoritmos de planificación. Los procesos en ejecución se almacenan en una cola en la que se aplican diversos algoritmos para conseguir los objetivos especificados en el punto anterior. Algunos de estos algoritmos son: • FIFO: El primer proceso en llegar es el primer proceso atendido. Se atiende al primer proceso que llega, el resto de los procesos entran en una denominada cola de espera. El inconveniente es que los mas pequeños estarán a la espera de que finalice el que tienen anterior grande penalizando los mas pequeños. • Round-Robin Se definen intervalos de tiempo y se asigna un intervalo a cada proceso ubicado en la cola para ejecutar, si un proceso no ha sido completamente ejecutado, permanece el la cola hasta que le vuelva a corresponder otro intervalo de tiempo de procesador. • Planificación por prioridades o multinivel. Cada proceso que entra para ejecutarse trae asociada una prioridad, la U.C.P. atiende a los procesos de la cola que tienen una prioridad mas alta, de forma que los procesos con la misma prioridad compiten como FIFO para conseguir recursos pero están por delante de los que cuentan con prioridades menores. • Prioridad al más corto. El proceso más corto que entra en la cola recibe la prioridad más alta. Aquí tenemos dos tipos : a. Short Job first (SJF):Elegiría de la cola de trabajos el mas corto, que es el que tiene prioridad de uso de la CPU. Hasta que no acabe el proceso no dejará libre la CPU ya que junto con el método Fifo es un algoritmo apropiativo. b. Short Remainder Time (SRT): Es igual que el anterior, pero si entra un proceso mas pequeño que otro que está en ejecución quita la CPU al que está en ejecución y se la da al que acaba de llegar porque es el mas corto . Es apropiativo, se apropia de la CPU. • HRN (High Remainder Next). La prioridad mas alta se asigna al proceso que lleva mas tiempo esperando. Política no apropiativa Interbloqueo de procesos. Situación de un conjunto de procesos en un estado de espera tal que ninguno de ellos tiene suficientes criterios para continuar su ejecución. El sistema operativo deberá gestionar estas situaciones de interbloqueo. 7.2 Gestión de memoria. El problema se crea al intentar trabajar con varios procesos en memoria simultáneamente. Por ello será necesario hacer una adecuada gestión de la misma. Prof.: Justo Sáez Arenas 9 Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. Para poder procesar un programa en un ordenador es necesario que previamente, tanto él como los datos que maneja estén cargados en la memoria principal. Para ello necesitaremos mantener dichos programas simultáneamente en memoria, es decir deberán compartir la memoria. En el funcionamiento de un ordenador, la memoria principal es un recurso central ya que tanto el procesador como los dispositivos de e/s acceden a ella para leer y/o grabar la información que manejan. Los programas deben estar cargados en memoria para su ejecución, pero no saben en qué posición o dirección de memoria se deben cargar. Las principales técnicas de gestión de memoria son: Paginación. Es una técnica que divide la memoria en trozos de tamaño fijo donde se cargarán los datos y programas. Segmentación. Las direcciones de memoria se agrupan en en conjuntos de segmentos, cada uno definido por su tamaño y un número. Se basa en un espacio lógico de direcciones, donde cada dirección se expresa mediante dos valores: número de segmento y desplazamiento dentro del segmento. Sistemas combinados. Las técnicas anteriores tienen ventajas e inconvenientes, por lo que en realidad los sistemas operativos utilizan combinaciones de técnicas, así, podemos tener la paginación segmentada o la segmentación paginada. Memoria Virtual. Es una técnica de gestión que combinando Hw y Sw permiten que que los programas no estén cargados en su totalidad en la memoria física principal. Existen una serie de algoritmos que se encargarán de cargar y descargar las partes de programa que se neceiten en cada momento. 7.2 Gestión de Entrada/Salida. Los dispositivos hardware externos del ordenador dedicados a realizar las operaciones de entrada/salida (periféricos), son elementos complejos difíciles de usar directamente por los procesos, los cuales no necesitan conocer las peculiaridades de los dispositivos sino su capacidad de intercambiar datos con el mundo exterior, por lo que tales detalles deberán oeultarse para que las operaciones de E/S sean independientes del tipo y modelo del dispositivo. E] software del sistema operativo dedicado a esto representa el 50% del total del código del mismo. Tratará cuestiones como: − Buffering. Consiste en en almacenar la información del dispositivo de forma temporal en una memoria intermedia o buffer. − Spooling. Consiste en escribor los datos de salida en una zona del disco para que posteriormente puedan ser tratados por el dispositivo de salida. − DMA. Acceso directo a memoria. Algunos periféricos permiten el acceso directo a memoria, lo que libera al procesador. − Driver. Software de control de entrada salida. − Interrupciones. Son utilizadas por los dispositivos para pedir ser tratados por el procesador. − Direcciones de Entrada-Salida de un dispositivo. Parte de memoria donde los dispositivos leen o escriben información sobre las operaciones que realizan. Prof.: Justo Sáez Arenas 10 Sistemas Informáticos Multiusuario y en Red T-6.- Sistemas Operativos. 7.2 Gestión de almacenamiento secundario. El sistema operativo debe manejar los archivos asegurando la independencia y el acceso por aquellos usuarios que lo tengan permitido. Para ello deberá tratar cuestiones referentes a: v Estructura de la información. Cómo codificar los datos a guardar. v Soporte físico. Con que formato y estructura se escribe la información en el soporte físico. v Planificar los accesos a disco. Los algoritmos más importantes de planificación de acceso a discos son: o FIFO. Atiende por orden de llegada. o SSTF. Atiende a la petición mas cercana a la última servida. o Scan. Atiende a las peticiones mas cercanas a la recorrido que el brazo del disco sigue, ya sea por delante o por detrás.. o C-Scan. Igual que el anterior pero solo se atiende en el sentido de avance del brazo. v Sistema de archivos. Que sistema de archivos se utilizará. 7.2 Gestión de Seguridad del sistema. El sistema operativo tendrá funciones que permitan definir criterios de seguridad e integridad de la información que trata. Deberá tener métodos que garanticen: v v v v v Protección de acceso. Identificar a los usuarios y comprobar su contraseña. Seguridad funcional. Fiabilidad del tratamiento de los datos, que no se modifiquen o deterioren. Seguridad del procesador. Seguridad de la memoria. Seguridad del os archivos. Disponibilidad y privacidad de los archivos. Prof.: Justo Sáez Arenas 11