SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el...

41
SISTEMAS OPERATIVOS INTRODUCCIÓN Pedro de Miguel Anasagas

Transcript of SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el...

Page 1: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

SISTEMAS OPERATIVOSINTRODUCCIÓN

Pedro de Miguel Anasagasti

Page 2: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 3: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

INTRODUCCIÓN AL SISTEMA OPERATIVO

Page 4: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 5: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 6: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 7: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 8: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 9: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 10: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

PROTECCIÓN

Page 11: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 12: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 13: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 14: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 15: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 16: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

ARRANQUE DEL COMPUTADOR

Page 17: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 18: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 19: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

ACTIVACIÓN DEL SO

Page 20: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 21: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 22: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 23: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 24: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

PROCESOS

Page 25: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 26: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 27: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 28: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

GESTIÓN DE MEMORIA

Page 29: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 30: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 31: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 32: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 33: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 34: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 35: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 36: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 37: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 38: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 39: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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

Page 40: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

VISIÓN GENERAL DEL SISTEMA

Page 41: SISTEMAS OPERATIVOS INTRODUCCIÓN€¦ · Introducción al sistema operativo ... Para que el computador realice una función determinada.

© 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