Download TEMA 6: SISTEMAS OPERATIVOS

Document related concepts

Proceso (informática) wikipedia , lookup

Sistema operativo wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Planificador wikipedia , lookup

Hilo de ejecución wikipedia , lookup

Transcript
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