TEMA 1
INTRODUCCION.
·
Administración
de procesos.
·
Concurrencia
de procesos.
·
Protección y
seguridad informática.
·
Sistemas
distribuidos.
·
Sistemas
operativos reales.
Proceso.-
Es un programa en ejecución. Mientras que el programa es una entidad pasiva, el
proceso es una entidad activa. Un proceso es la entidad que puede ser asignada
al procesador y ejecutada pro este.
Se pueden
conseguir mejoras en el rendimiento si en lugar de ejecutar un programa dentro
de otro, introducimos diferentes procesos concurrentes en el procesador
(Programación concurrente o multitarea).
La multiprogramación (además de lo
anterior supone gestión de memoria y archivos). Fue diseñada para mantener
ocupados a la vez al procesador como a los dispositivos de E/S incluidos los dispositivos
de almacenamiento de modo que se alcance el máximo rendimiento.
La clave de
este mecanismo es que, como respuesta a las señales que indiquen que ha
terminado una operación de E/S el procesador cambie entre los diversos procesos
en memoria.
El SO es el
encargado de suministrar el software que ayude al hardware a la gestión de
procesos :
·
Creación /
Eliminación.
·
Control de
avance y retroceso.
·
Interrupciones.
·
Gestión de
errores.
·
Asignación de
recursos hardware.
·
Proveer de
método de comunicación entre diferentes procesos (mensajes u señales).
Un procesos, es un conjunto de
ráfagas de CPU y E/S teniendo siempre en cuenta que la primera y la última
ráfaga van a ser siempre de CPU.
·
Desde el punto
de vista del usuario .- Un proceso es un conj. De operaciones e instrucciones
especificas destinadas a obtener un resultado a partir de una entrada de datos.
·
Desde el punto
de vista del operador del sistema.- Se trata de informar al SO del conj. De las
actividades que deben ser planificadas para conseguir ejecución concurrente.
Residir
en memoria.
Atributos
à Recursos que necesita, Ficheros, Prioridades.
El que un mismo proceso pueda
dividirse en tareas independientes requiere, código complejo, introducción de
señales. El programador de sistema tendrá que tener todo esto en cuenta a la
hora de diseño.
·
Desde el punto
de vista del SO .- Es la entidad mínima individualmente planificable. Va a
constar de código y datos y se caracteriza por sus atributos y su estado
dinámico.
n
Un proceso
puede a su vez estar formado por varias tareas o hilos que pueden ejecutarse en
modo concurrente. La unidad mínima ejecutable es la tarea o hilo.
Diferencias
entre proceso e Hilo :
·
Los procesos
tienen asignados diferentes secciones de memoria mientras que os hilos no.
·
A los procesos
se les asigna recursos mientras que los hilos disponen de los recursos
asignados al proceso.
·
A la hora de
planificar si se pueden planificar los hilos de un mismo proceso.
Un proceso a
lo largo de su vida en el sistema va a pasar por varios estados :
n
Nuevo
n
Listo.-
Estructuras de datos.
n
Ejecución.-
CPU.
n
Bloqueo.-
Espera de E/S o Evento.
n
Suspendido.-
Suspender proceso por requerimientos del sistema.
·
La
concurrencia supone , que a un proceso al se le asigna CPU sale de ejecución y
se le asigna la CPU a otro proceso, este proceso en espera puede estar
esperando evento o en cola de espera.
·
Esto supone
que los procesos entren y salgan de la CPU sin finalizar su ejecución. Por
tanto, debe de haber algo donde se guarda la información del proceso y que
informe del estado del nuevo proceso.
·
Toda la
información relativa a estos se guarda en el BCP. Que consiste en una serie de
posiciones contiguas de memoria donde se guarda el identificador del proceso,
puntero a la siguiente instrucción, ficheros abiertos, recursos asignados,
lista de recursos solicitados, prioridades, etc.
·
En el momento
de creación del proceso hay que crear un bloque de control de procesos y hay
que ver cual es el sistema de gestión de memoria del sistema.
Si la memoria se gestiona estática se reserva un espacio
para contener TBCP (numero de procesos limitados al numero de bloques de la
tabla).
Gestión dimanica.- Donde no
existe limitación de procesos.
Cuando un
proceso comienza a ejecutarse vuelca el contenido del BCP en los registros de
la CPU y cuando sale de CPU se realiza la operación contraria (Cambio de contexto) Para que el
rendimiento de un sistema con multiproceso sea optimo el tiempo empleado en el
Cambio de contexto tiene que ser despreciable frente al tiempo de CPU.
n
Los procesos
van a provenir de 3 sistemas.-
·
Procesos por
lotes.
·
Tiempo
compartido.- Se asigna tiempo (cuanto) a cada proceso. Si todos los procesos
tienen la misma prioridad el cuanto es el mismo, pero los procesos de mayor
prioridad tiene un cuanto mayor. Procesos
en Background .- Se ejecutan en tiempos de CPU libre, estos no entran en
competición por cuantos de tiempo sino que van a la cola de Background.
·
Tiempo real.-
Precisan tiempo de respuesta del orden de mili o microseg., que desalojan el
proceso que esta en CPU.
n
En estos tipos
de procesos hay que tener en cuenta 4 principales causas de error :
·
Sincronización
incorrecta.- Mal diseño del mecanismo de señales. Puede dar lugar a perdida de
señales o recuperación duplicada de estas
·
Fases de
exclusión múltiple.- Un proceso puede dividirse en hilos, procesos de código
independiente, esto es inviable, porque hay secciones de código criticas que
hace volver al proceso a la ejecución secuencial, solo un proceso de los que
esta operando puede seguir ejecutando y a los mecanismos empleados para que esa
ejecución no sea concurrente se los llama mecanismos
de exclusión mutua. Es habitual el caso en que dos usuarios o dos procesos
intenten acceder a la vez a un recurso compartido. Si no se controlan estos
casos puede producirse un error. Debe existir un mecanismo que permita que solo
un proceso pueda realizar una transacción sobre una zona de datos.
·
Funcionamiento no determinista del programa.- Los
resultados del programa debe depender solo de las entradas de ese programa y no
de otros procesos en ejecución paralela, por ello no se deja acceder a memoria
asignada a otro proceso y se da la canalización de datos de entrada.
·
Interbloqueo.-
Es posible que dos o más procesos estén suspendidos uno a la espera del otro.
Cada uno está deseando que el otro libere un recurso deseado. La única forma de
resolver interbloqueo es suspender uno de los procesos para liberar los
recursos y que el resto pueda finalizar y así el proceso suspendido pueda
terminar también.
n Protección y seguridad de la
información. (Publicación de la oficina de
Estandares).
El crecimiento de la utilización
de sistemas en tiempo compartido y de redes de computadoras ha traído consigo
un aumento por la preocupación por la protección de la inforamción
1)
Intentos organizados y deliberados de
obtener información de las organizaciones del sector privado.
2)
Intentos organizados y deliberados de
obtener información de las oficinas del gobierno.
3)
Adquisición inadvertida de información
económica y mercantil.
4)
Adquisición inadvertida de información
sobre personas.
5)
Intromisión del gobierno en los
Derechos Individuales.
6)
Intrusión en Bases de Datos. (En la
adquisición de datos financieros, económicos, y personales.)
7)
Atropello de derechos individuales por
la comunidad de información.
·
Pueden
construirse algunas herramientas de propósito general dentro de las
computadoras y de los SO para dar soporte a varios mecanismos de protección y
seguridad.
·
En general,
interesan las problemas de control de acceso a las sistemas informaticos y a la información almacenada en ellos.
·
Se han
definido cuatro clases de políticas generales de protección:
1)
No compartición.- Los procesos están
completamente aislados unos de otros y cada proceso tiene control exclusivo
sobre recursos que le fueron asignados. Los procesos suelen compartir programas
o archivos de datos haciendo copias y pasandolas a su propia memoria virtual.
2)
Compartiendo originales de programas o
archivos de datos.- Con el uso de una unica copia reentrante, una unica copia
fisica de un programa puede aparecer en varios espacios de memoria virtual,
como archivos de solo lectura. Se requieren mecanismos especiales de bloqueo
para compartir archivos de datos en los que se puede escribir y evitar que
usuarios simultaneos interfieran unos con otros.
3)
Subsistemas confinados o sin memoria.-
En este caso los procesos se agrupan en subsistemas para cumplir una politica
de protección en particular. Por ejemplo, un proceso ‘cliente’ llama a un
proceso ‘servidor’ para llevar a cabo cierta tarea con datos. El servidor se
protegerá de que el cliente no descubra el algoritmo con el cual realiza su
trabajo y el cliente se protegerá de
que el servidor no descubra que tipo de trabajo esta realizando.
4)
Diseminación controlada de información
.- A los usuarios y a las aplicaciones se les de credenciales de seguridad en
un cierto nivel, mientras que a los datos y recursos se les dota de
clasificaciones de seguridad. La politica se seguridad hace cumplir las
restricciones relativas a que usuarios tiene acceso a que clasificaciones.
·
Gran parte del
trabajo realizado en cuanto a protección y seguridad se puede organizar en 3
categorías :
n
Control de
acceso (En cuanto al acceso a la información).- Regulación de acceso al usuario
al sistema completo, a los subsistemas y a los datos, así como regular el
acceso a recursos del sistema.
n
Control del
flujo de información, regulando flujo de información que se suministra al
usuario.
n
Certificación.-
Demostración de que los mecanismos de seguridad funcionan. Demostración de que
el acceso y los mecanismos de control se llevan a cabo de acuerdo a las
especificaciones y a que estas cumplen las políticas de protección y seguridad
deseadas.
Capas
del Sistema Operativo
(Clasificación genérica págs 73-75). .-
|
Capa 13
|
SHELL
|
|
Capa 12
|
Procesos
de usuarios.
|
|
Capa 11
|
Directorio
|
|
Capa 10
|
Dispositivos
|
|
Capa 9
|
Sistemas
de archivos.
|
|
Capa 8
|
Comunicaciones
|
|
Capa 7
|
Memoria
virtual.
|
|
Capa 6
|
Almacenamiento
secundario.
|
|
Capa 5
|
Procesos
primitivos
|
|
Capa 4
|
Interrupciones
|
|
Capa 3
|
Procedimientos
|
|
Capa 2
|
Conjunto
de instrucciones
|
|
Capa 1
|
Circuitos
electrónicos
|
·
Capa 1.-
Circuitos electrónicos. Objetos tratados son registros, celdas de memoria,
puertas lógicas.
·
Capa 2.-
Conjunto de instrucciones del procesador. Las operaciones de este nivel son las
permitidas por el conjunto de instrucciones del lenguaje máquina.
·
Capa 3.- Añade
concepto de procedimiento o subrurina. Operaciones de llamada y retorno.
·
Capa 4.-
Introduce interrupciones, las cuales hacen que procesador salve el contexto
actual e invoque rutina de tratamiento
de interrupción.
--- Las cuatros primeras capas anteriormente citadas no
pertenecen al SO sino al hardware de la máquina. ---
·
Capa 5.- Se
introduce noción de proceso como programa en ejecución. Entre requisitos
fundamentales de un SO que ofrezca soporte para varios procesos incluye
capacidad de suspender y reanudar un proceso (Exige guardar cambios de contexto
à Capa 4). Si un proceso necesita cooperación será necesario
un sistema de sincronización. (Técnica sencilla à Semáforo).
·
Capa 6.-
Dispositivos de almacenamiento secundario del ordenador. Se incluyen procesos
para la planificación de estos dispositivos.
·
Capa 7.- Crea
un espacio de direcciones lógicas para procesos. Organiza el espacio de
direcciones virtuales en bloques que se pueden mover entre memoria principal y
secundaris.
3 esquemas.-
·
Paginación de
longitud fija.
·
Segmentación
de longitud variable.
·
Las dos
anteriores.
·
Capa 8.-
comunicación de información y mensajes entre procesos (Nivel 5 proporciona
mecanismos de señalización). Una de las herramientas más potentes à Tubo à Canal lógico
para flujo de datos entre procesos.
·
Capa 9.- Da
soporte a almacenamiento a largo plazo de archivos con nombre. Los datos de
almacenamiento secundario se contemplan en terminos de entidades abstractas de
longitud variable en contraste con el enfoque a hardware del Nivel 6.
·
Capa 10.-
Acceso a dispositivos externos.
·
Capa 11.-
Mantienen asociación entre identificadores externos de recursos y objetos del
sistema Estos se mantiene en un directorio. Las entradas no incluyen solo lo
anterior sino también otras características.