SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el...
Transcript of SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el...
SISTEMAS OPERATIVOSINTRODUCCIÓN
Pedro de Miguel Anasagasti
© UPM 2015
ÍNDICE
● Introducción al sistema operativo
● Protección
● Arranque del computador
● Activación del SO
● Procesos
● Gestión de memoria
● Visión general del sistema
2
INTRODUCCIÓN AL SISTEMA OPERATIVO
© UPM 2014
MÁQUINA DESNUDA
● Máquina desnuda: Término que se aplica a un computador carente de sistema operativo.
● El término resalta el hecho de que un computador en sí mismo no hace nada. Como sabemos, solamente es capaz de repetir a alta velocidad la secuencia de: lectura de instrucción de máquina, incremento del CP y ejecución de la instrucción leída.
● Para que el computador realice una función determinada.
• Ha de tener en el mapa de memoria un programa máquina específico para realizar dicha función.
• Ha de conseguirse que el registro CP contenga la dirección de comienzo de ese programa.
● La misión del sistema operativo es completar (vestir) a la máquina mediante una serie de programas que permitan su cómodo manejo y utilización. 4
PC
Unidad de control Mapa de memoria
Programay datos
© UPM 2014
EL SISTEMA OPERATIVO
Sistema Operativo
● Capa de SW que facilita el uso del computador (conjunto de programas).
Funciones del Sistema Operativo
● Soporte de usuario (mandatos).
● Máquina ampliada (servicios a los programas).
● Gestor de recursos (UCP, memoria, ficheros...) entre los programas activos.
API: Application Programming Interface.
Núcleo
Servicios
Programas de usuario
Usuarios
ShellSistemaoperativo
API
Hardware
Instruccionesde máquina
5
© UPM 2014
FUNCIONES DEL SISTEMA OPERATIVO
● Soporte de usuario.
• Intérprete de mandatos o Shell.
● Máquina ampliada (servicios).
• Ejecución de programas (procesos).
• Órdenes de E/S.
• Operaciones sobre ficheros.
• Servicios de memoria.
• Comunicación entre procesos.
• Detección y tratamiento de error.
● Gestor de recursos (UCP, memoria, ficheros, puertos...).
• Asignación y recuperación de recursos.
• Los recursos asignados pueden ser físicos o lógicos.
• Protección de los usuarios.
• Contabilidad/monitorización.
6
© UPM 2014
COMPONENTES DEL SISTEMA OPERATIVO
● Núcleo: Es el componente del SO que gestiona el HW. Es la parte del SO que obligatoriamente ha de ejecutar en modo núcleo.
● Servicios: Como el Win32 o el POSIX. Suministra una capa de servicios o API (Application Programming Interface).
7
Núcleo
POSIX
Programas de usuario
Usuarios
Shell 1Sistemaoperativo
Varias API
Hardware
Win 32
Shell 2
© UPM 2014
CONCEPTO DE USUARIO
Usuario
● Persona autorizada a utilizar un sistema.
● Se identifica en la autenticación mediante:
• Código de cuenta.
• Clave (password).
● Internamente el SO le asigna el “uid” (user identifier).
Super-usuario o administrador
● Tiene todos los derechos.
● Administra el sistema.
● En UNIX el super-usuario tiene uid = 0.
Grupo de usuarios
● Los usuarios se organizan en grupos: “gid” (group identifier).
• Alumnos de 4º.
• Profesores del DATSI o del DIEEAFA.
● Todo usuario ha de pertenecer a un grupo.
8
© UPM 2014
CONCEPTO DE PROCESO
Programa en ejecución
● El programa ha de estar traducido a código máquina.
● El programa ha de estar almacenado en disco.
● El programa ha de cargarse en memoria (en el mapa de memoria).
● El contador de programa ha de apuntar al programa
Información asociada: Imagen de memoria, BCP y estado procesador9
Disco
Mapa dememoriaContador
de programaProgramay Datos
Memoriaprincipal
0
2 -1n
S.O.Inf. proceso
Ejecutable
Imagen delProceso
PROTECCIÓN
© UPM 2014
PROTECCIÓN
● Es necesario proteger unos usuarios de otros, de forma que los programas de un usuario no interfieran con los programas de otro y que no puedan acceder a la información de otro.
● Una de las funciones principales del SO es proteger unos usuarios de otros.
● Como el SO es un conjunto de programas, no puede supervisar las acciones de los programas cuando estos están ejecutando.
Si ejecuta un programa de usuario NO ejecuta el sistema operativo
● Esta supervisión la tiene que hacer directamente el HW, para lo que cuenta con unos mecanismos que impiden que los programas de los usuarios realicen operaciones contrarias a la seguridad.
● Tanto el procesador como la unidad de memoria tienen mecanismos de protección.
11
© UPM 2014
MECANISMOS DE PROTECCIÓN DEL PROCESADOR
Mecanismos
● El procesador tiene dos modos de ejecución.
• Núcleo: ejecuta todas las instrucciones de máquina. Permite acceder a la E/S y registros especiales.
• Usuario: ejecuta un subconjunto de las instrucciones. No permite acceder al mapa de E/S ni a parte del mapa de memoria.
● Las interrupciones pasan automáticamente a modo de ejecución núcleo (sólo se puede pasar de esta forma).
● La memoria tiene mecanismos de protección que limitan las direcciones que puede acceder un programa.
Consideraciones
● EL SO es el encargado de tratar todas las interrupciones. Por tanto es el único programa que ha de ejecutar en modo núcleo.
● Los programas de usuario no pueden acceder al mapa de E/S, por tanto no pueden acceder directamente a los periféricos. Lo que significa que no pueden leer los ficheros de otros usuarios.
● Los programas de usuario acceden a los periféricos a través del SO, que sólo permite realizar las operaciones autorizadas.
● Mediante la instrucción TRAP se cambia de modo usuario a núcleo. 12
© UPM 2014
Modo usuario Modo privilegiado o núcleo
Registro de estado
1514
7
3
13
5
9
11
1
6
10
12
2
4
8
0
T
N
S
I1
V
I2
Z
I0
C
Oct
eto
deS
iste
ma
Oct
eto
deU
suar
io
2 -131
0
Registro de estado
7
3
5
1
6
2
4
0
N
VZ
C
Oct
eto
deU
suar
ioPC
031
SP
PC
031
SP
0
2 -132
2 -116
Mapa dememoria
Mapa deE/S
Juego de Instrucciones
0
Mapa dememoria
Juego de Instrucciones
MODELO DE PROGRAMACIÓN DE USUARIO Y DE NÚCLEO
● El computador puede funcionar en modo usuario o núcleo.
● El modo usuario es restringido. No se puede acceder a todos los elementos de almacenamiento y no se pueden ejecutar todas las instrucciones.
13
© UPM 2014
SEGURIDAD I
La seguridad es una de las funciones fundamentales del SO.
Está basada en los mecanismos de protección y tiene dos facetas: autenticación y privilegios.
Mecanismos HW de protección.
● Vigilan la ejecución de los programas.
● Informan de los intentos de trasgresión de los programas.
Autenticación: garantiza la identidad de los usuarios.
● Algo que conoce el usuario.
● Propiedad del usuario.
● Algo que tiene el usuario.
● Lugar del usuario.
Privilegios: definen lo que puede hacer cada usuario.
● Información por recurso.
● Información por usuario.
14
© UPM 2014
SEGURIDAD II
Permisos UNIX● Para ficheros de datos.
• r: Especifica que el fichero se puede leer.• w: Especifica que el fichero se puede escribir.• x: Especifica que el fichero se puede ejecutar.
● Para ficheros de directorio.• r: Especifica que el directorio se puede leer, es decir, se puede hacer un
“ls” para conocer su contenido.• w: Especifica que el directorio se puede escribir, es decir, se puede
añadir o borrar un fichero del directorio.• x: Especifica que el directorio se puede atravesar para seguir analizando
un nombre de fichero. (/home/datsi/asignaturas/ssoo/practicas/leeme.txt)
r-x rw- rw- ¿Puede el dueño modificar el fichero? 15
rwxrwxrwxDueño Grupo Mundo
¿UID usuario =
UID fichero?
¿GID proceso =
GID fichero?
Usar permisosdel dueño
Usar permisosdel grupo
Usar permisosdel mundo
NO
SI
NO
SI
¿UID proceso =
UID fichero?
¿UID usuario
UID fichero?
NO¿UID proceso
0?
Inicio=
SI
=
Es superusuario seconcede el permiso
ARRANQUE DEL COMPUTADOR
© UPM 2014
ARRANQUE DEL COMPUTADOR
● El Reset carga valores predefinidos en registros.
• CP ← dirección de arranque del cargador ROM.
● Se ejecuta el Programa de Arranque del sistema.
• Que hace un test del sistema.
• Y trae a memoria RAM el boot del SO, que está en el disco.
● El Programa de Arranque funciona en modo Real y modo Núcleo- accede a los periféricos- las tablas de páginas de la memoria virtual las crea el SO (no hay SO )
(En el caso del PC la ROM contiene, además, SW de E/S (BIOS)).17
0
262.140
2n
- 1
Dirección Celdas
Unidad de Memoria
RAM
ROMprogr. arranque
0
786.428
1.048.572
Dirección Celdas
Unidad de Memoria
RAM
RAM
0
Dirección Celdas
Unidad de Memoria
RAM
ROMprogr. arranque
ROMprogr. arranque
Vacío
2n
- 1 2n
- 1
© UPM 2014
ARRANQUE DEL SO
El SO está almacenado en el disco.
● El Programa de Arranque ROM carga el sector de boot del SO y le da control.
● El boot del SO carga el SO residente y da control al programa de arranque del SO, que:
• Comprueba el hardware.
• Comprueba el sistema de ficheros.
• Establece las tablas internas del SO, como son las tablas de páginas.
– A partir de este momento se empieza a trabajar con memoria virtual.
• Crea procesos (según el tipo de SO).
– Proceso INIT.
– Procesos o tareas del sistema (demonios).
– Procesos de login (uno por terminal).
• Tras la autenticación, el proceso login se convierte en shell. 18
Programa cargador(identificador) Disco
Sistema Operativo
0
ACTIVACIÓN DEL SO
© UPM 2014
ACTIVACIÓN DEL SO
El SO se activa por interrupciones
● Solicitudes emitidas por los programas para solicitar servicios al SO.
● Interrupciones producidas por los periféricos.
● Excepciones del SW o del HW.
Ciclo simplificado del SO
● Salva el estado del Proceso A en curso (contenido de los registros del procesador), para poder seguir su ejecución más adelante.
● Realiza la función solicitada.
● Planifica y activa un Proceso B. (Puede planificar el A otra vez) 20
Ava
nza
la e
jecu
ció
n Proceso A
Proceso B
Sistemaoperativo
Se solicita el SO
ActivadorPlanificador
Salva el estado del proceso A
Realiza la función pedida
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
© UPM 2014
SOLICITUD DE UN SERVICIO AL SO
● Posibles formas de solicitar un servicio:
• Por llamada → problema de seguridad, por lo que no se puede usar.
• Por interrupción o TRAP (pone el procesador en modo núcleo).
● Rutina de biblioteca: Programa de máquina que prepara la llamada al SO.
Sintaxis de la llamada a la rutina de biblioteca en alto nivel:
mivariable = servicio(parámetro 1, parámetro 2, etc.);
● En muchos casos los parámetros de la rutina de biblioteca son referencias a estructuras que recibe y/o modifica el SO.
● En UNIX el servicio devuelve generalmente un entero. El valor -1 significa que el servicio ha fracasado:
• Por error
• Porque le llega una señal al proceso (errno = EINTR)
• Variable global errno y fichero errno.h (función perror)
● Dado que casi todos los servicios del SO pueden fallar por falta de recursos o por falta de privilegios, en un programa profesional es imprescindible incluir código que trate el caso de fracaso del servicio.
● En los ejemplos que plantearemos en algunos de los temas no incluiremos este tratamiento de error, puesto que complica el flujo normal de ejecución que se quiere destacar.
21
© UPM 2014
SERVICIO SÍNCRONO Y ASÍNCRONO
● Síncrono o bloqueante
● Asíncrono o no bloqueante
El uso de servicios síncronos es mucho más sencillo 22
servicioEspera
bloqueadofin servicio
servicio
Proceso A
Avan
za l
a e
jecu
ció
n
Proceso BInstrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquina
Instrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquinaInstrucción de máquina
Instrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquina
Instrucción de máquinaInstrucción de máquinaInstrucción de máquina
Instrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Instrucción de máquina
Instrucción de máquina
Instrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquinaInstrucción de máquina
Instrucción de máquinaInstrucción de máquina
Instrucción de máquina
Servicio síncrono Servicio asíncrono
fin servicioNotificación
© UPM 2014
SECUENCIA DE UN SERVICIO SÍNCRONO O BLOQUEANTE
La rutina de biblioteca:
● Almacena los parámetros del servicio siguiendo un convenio con el SO (p.e. en la pila del proceso).
● Realiza el TRAP.
El SO
● Bloquea al proceso
• Recoge los parámetros.
• Comprueba que puede realizar el servicio solicitado.
• Realiza el servicio.
– Puede requerir varios pasos.
– Si hay espera se pone en ejecución otro proceso.
• Genera la respuesta al proceso y la almacena siguiendo un convenio con la rutina de biblioteca.
● Desbloquea al proceso
La rutina de biblioteca toma la respuesta del SO y la deposita en la variable de retorno mivariable.
23
PROCESOS
© UPM 2014
CONCEPTO DE MULTITAREA
Base de la multitarea
● Paralelismo real entre E/S y el procesador (técnica de DMA).
● Los procesos alternan fases de:
• E/S
• y de procesamiento.
● La memoria almacena varios procesos.
25
Procesamiento
Entrada/salidaTiempo
© UPM 2014
CONCEPTO DE PROCESO
Proceso ● Programa en ejecución.
● Unidad de procesamiento gestionada por el SO.
Información del proceso
● Imagen de memoria (core image).
● Estado del procesador (registros del modelo de programación).
● Bloque de control del proceso BCP. Algunos contenidos:- Identificador “pid” - “uid” y “gid”- Ficheros abiertos- Estado (registros) - Señales - Semáforos- Segmentos de memoria - Puertos - Temporizadores
26
Mapa de Memoria
SO
BCP
Registros generales
PC
SPEstado
Imagen de Memoria(código y datos)
Mapade E/S
Informacióndel proceso
© UPM 2014
JERARQUÍA DE PROCESOS
Familia de procesos
● Proceso hijo.
● Proceso padre.
● (Procesoemparentado).
Vida de un proceso
● Crea.
● Ejecuta.
● Muere o termina.
Ejecución del proceso
● No interactivo (Batch y segundo plano)
● Interactivo o primer plano.
Grupo de procesos
● Grupos de procesos dependientes de cada inicio.
27
Proc. INIT
Inicio Inicio Dem. Impr. Dem. Com.InicioInicioShell
Editor
Shell
Proceso A
Proceso B Proceso D Proceso C
Proceso E Proceso F
GESTIÓN DE MEMORIA
© UPM 2015
MEMORIA REAL y VIRTUAL
● Memoria real: Mapa de memoria soportado sólo en memoria principal
● Memoria virtual: Mapa de memoria soportado conjuntamente por una parte del disco y por memoria principal.
0
2 -132
2 -116
Mapa dememoria
Mapa deE/S
Juego deInstrucciones
0
Registrosgenerales
Contadorde programaPC
Registro de estado
Modo Traza
Oct
eto
deS
iste
ma
Oct
eto
deU
suar
io
Negativo
Núcleo/Usuario
de
Desbordamiento
Máscara
Cero
Interrupciones
Acarreo
1514
7
3
13
5
9
11
1
6
10
12
2
4
8
0
T
N
S
I1
V
I2
Z
I0
C
031
SP Puntero de pila
29
© UPM 2015
PÁGINAS Y MARCOS
● El espacio virtual se considera organizado en páginas de tamaño fijo.
● El espacio de disco dedicado a soportar la memoria virtual se divide en páginas.
● La memoria principal se divide en marcos de página. En estos marcos se ubican las páginas.
● El SO ha de conseguir que las páginas usadas en cada momento estén ubicadas en marcos de memoria principal.
● Las páginas del mapa de memoria no asignadas, no tienen soporte físico. Ni en swap ni en marcos.
2 -1m
2 -1n
n > m
Disco
Memoriaprincipal
Mapa dememoria
Datos
00
Programa
Pila
Imagen dememoria
30
© UPM 2015
GESTOR DE MEMORIA
El gestor de memoria de un SO de propósito general tiene dos facetas complementarias.
● Servidor de memoria para los procesos.
● Soporte a la memoria virtual.
Los procesos no entienden del soporte físico del mapa de memoria, ya sea este soporte memoria principal o memoria virtual, solamente entienden de direcciones dentro del mapa de memoria del procesador.
Cuando el gestor de memoria asigna un marco de página a un proceso, no significa que el proceso vea más memoria. Simplemente establece un soporte físico más rápido a una zona de la memoria del proceso.
Mapa dememoria
Página en memoria
Página en disco
Re
gión
1R
egió
n 2
Re
gión
3
Ima
gen
de
mem
oria
del
pro
ceso
31
2 -1m
2 -1n
n > m
Disco
Memoriaprincipal
Mapa dememoria
Datos
00
Programa
Pila
Imagen dememoria
© UPM 2015
REQUISITOS DE LA GESTIÓN DE MEMORIA
El S.O. multiplexa los recursos entre los procesos
● Cada proceso cree que tiene una máquina para él solo.
• Gestión de procesos: Reparto de procesador.
• Gestión de memoria: Reparto de memoria.
Funciones del servidor de memoria
● Crear la imagen de los procesos a partir de los ficheros ejecutables.
• Ofreciendo a cada proceso los recursos de memoria necesarios, dando soporte a las regiones necesarias.
• Proporcionando grandes espacios de memoria a los procesos.
● Proporcionar protección entre procesos. Aislar los procesos.
• Pero permitir que los procesos compartan memoria de forma controlada.
● Controlar los recursos:
• Direcciones de los mapas de memoria ocupadas y libres.
• Direcciones de memoria principal y de intercambio ocupadas y libres.
• Recuperar los recursos de memoria liberados por los procesos.
● Tratar los errores de acceso a memoria: detectados por el HW.
● Optimizar las prestaciones del sistema.32
© UPM 2015
MEMORIA DEL PROCESO I
Las necesidades de memoria de un proceso se resuelven a dos niveles:
● Por el SO: Visión global o macroscópica consistente en regiones.
● Por las bibliotecas del lenguaje usado para el programa: Visión de detalle o microscópica consistente en objetos dentro de las regiones.
Los lenguajes de programación suelen permitir la asignación dinámica de objetos de memoria, lo que puede obligar a modificar las regiones.
El SO tiene un visión macroscópica de la memoria de un proceso, consistente en la imagen de memoria del proceso y formado por las regiones, que son grandes trozos de memoria contigua.
● El proceso tiene unas pocas regiones (p.e. código, datos y pila).
● En un sistema con memoria real (sin memoria virtual) todas las regiones están en una misma zona contigua de memoria principal.
• Se deja un espacio de memoria principal para el crecimiento dinámico de las regiones (desaprovechamiento de recursos).
● En memoria virtual las regiones están separadas, alineadas a página y están formadas por un número entero de páginas.
• Al crear o crecer es cuando se requiere asignar soporte físico.
• Los espacios entre regiones no tienen soporte físico.
Mapa dememoria
Página en memoria
Página en disco
Re
gió
n 1
Re
gió
n 2
Re
gió
n 3
Ima
ge
n d
e m
em
ori
a d
el p
roce
so
33
© UPM 2015
MEMORIA DEL PROCESO II
El programa tiene una visión microscópica de la memoria, consistente en variables y estructuras de datos.
● Crear una variable dinámica que quepa en la correspondiente región no implica al SO (lo resuelven las bibliotecas del lenguaje).
● Crear una variable dinámica que no quepa en la correspondiente región implica activar al SO para que aumente dicha región, o cree una nueva. De ello se encargan las bibliotecas del lenguaje, liberando al programador de esta tarea.
● Las bibliotecas del lenguaje utilizado en el desarrollo del programa gestionan el espacio disponible en la región de datos dinámicos.
• Solamente llaman al SO cuando tienen que variar el tamaño de la región, o crear una nueva región.
34
© UPM 2015
IMAGEN DE MEMORIA
Imagen de memoria: conjunto de regiones (o segmentos) de memoria asignados a un proceso.
Características de una región
● Es una zona contigua de direcciones de memoria definida por:
• Una dirección de comienzo
• y un tamaño.
● Fuente: lugar donde se almacena el valor inicial.
● Puede ser compartida o privada.
● Niveles de protección típicos: RWX.
● Puede tener tamaño fijo o variable.
Mapa dememoria
Página en memoria
Página en disco
Re
gió
n 1
Re
gió
n 2
Re
gió
n 3
Ima
ge
n d
e m
em
ori
a d
el p
roce
so
35
© UPM 2015
REGIONES DEL PROCESO
Las regiones más relevantes de la imagen de memoria del proceso son:
● Código (texto): Contiene el código máquina del programa.
● Datos, que se organiza en:
• Datos con valor inicial: Variables globales inicializadas.
• Datos sin valor inicial: Variables globales no inicializadas.
• Datos creados dinámicamente o heap.
● Pila: soporta la información relacionada con la invocación de las funciones y sus variables locales.
La estructuración en regiones depende del diseño del SO.
● Puede haber una sola región que englobe datos con valor inicial, datos sin valor inicial y datos creados dinámicamente.
● O puede haber regiones separadas para distintos tipos de datos.
En un sistema con memoria virtual las regiones se alinean a página, ocupando un número entero de páginas.
36
© UPM 2015
OPERACIONES SOBRE REGIONES
● Creación de región
• Al crear el mapa inicial o por una solicitud posterior
• En sistemas con memoria virtual no se asignan marcos de memoria principal, se asigna swap o rellenar con 0
● Liberación de región
• Al terminar el proceso o por solicitud posterior
• Se recuperan los recursos (swap y marcos)
● Cambio de tamaño de región
• Del heap o de la pila
• En sistemas con memoria virtual no se asigna memoria principal
● Duplicado de región
• Operación requerida por el servicio FORK de POSIX
37
© UPM 2015
MAPA DE MEMORIA DE UN PROCESO HIPOTÉTICO
Imagen de memoriaCompartido
Compartido
Com./Priv.
Privado
Compartido
R–X
RW–
R–X
??–
RW–
??–
TamañoFijo
Fijo
Variable
Variable
Ejecutable
← 0
Biblioteca
Fichero
Privado
Privado
Privado
FijoRW– Ejecutable
VariableRW–
Fijo
Fuente
0
0Variable
0 (pila inicial)
Privado RW– Variable 0
RW– 0
Privado
Privado
FijoRW–
Fijo
Biblioteca
Datos con valor inicial
Datos sin valor inicial
Pila del proceso thread 1
Heap
Zona de memoria compartida
Pila de thread 2
Fichero proyectado F
Código biblioteca dinámica B
Código o texto
Datos con val. inic. bibl. B
Datos sin val. inic. bibl. B
←
←
←
←
←
38
© UPM 2015
PROTECCIÓN
Monoprogramación: Hay que proteger al S.O.
Multiprogramación: Proteger al S.O. y a los procesos entre sí.
Es necesario validar todas las direcciones que genere el programa.
● La detección o supervisión debe realizarla el hardware del procesador.
• El HW comprueba que la dirección y el tipo de acceso son correctos.
● El tratamiento de la infracción lo hace el SO (p.e. aumenta la pila o envía una señal al proceso que normalmente lo mata).
Rellenar con 0
● Un posible problema de seguridad aparece cuando se le suministra a un proceso un soporte físico de memoria (ya sea una página en el espacio de swap o un marco de página) y éste no tiene valor inicial.
● Si no se rellena a 0 por el SO el proceso podrá leer el contenido que dejó en ese soporte físico el proceso que lo utilizó anteriormente, pudiendo recuperar información valiosa del mismo.
39
VISIÓN GENERAL DEL SISTEMA
© UPM 2014
VISIÓN GENERAL DEL SISTEMA
Procesopid = 25
fd 01
2
Procesopid = 4
UID=7(Pepe)
USUARIOSPROCESOS
RECURSOS
loginUID, GID
fd 01
23
fd 01
2
Procesopid = 32
fichero
pipe
3
fichero
4
Recursos con nombres lógicosRecursos sin nombres lógicos
UID, GID
UID, GID
GID
GID
UID(Pepe)
UID=7
UID=7
UID=7
41