Está en la página 1de 57

Sistemas Operativos

Tema 2: Fundamentos

1
Índice:
1. Conceptos básicos

2. Modelos de diseño

3. Ejemplos de organización interna


t ne ma dnuF: 2 a me T

2
Índice:
1. Conceptos básicos

2. Modelos de diseño

3. Ejemplos de organización interna


t ne ma dnuF: 2 a me T

3
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores

2. Procesos

3. Llamadas al sistema

4. Usuarios

5. Archivos
s ot ne ma dnuF: 2 a me T

6. Intérpretes de órdenes

7. Interfaces gráficas de usuario


4
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores

2. Procesos

3. Llamadas al sistema

4. Usuarios

5. Archivos
s ot ne ma dnuF: 2 a me T

6. Intérpretes de órdenes

7. Interfaces gráficas de usuario


5
1.1 Conceptos básicos sobre A.O.
 Organización básica de un ordenador:

procesador Memoria Adaptador Adaptador Adaptador


Teclado ratón Pantalla
s ot ne ma dnuF: 2 a me T

BUS

DMA
Controlador
discos duros

6
1.1 Conceptos básicos sobre A.O.
La CPU. Modos de ejecución
 Contiene un conjunto de registros de 8, 16, 32 o 64 bits
Estado de la CPU = valores de sus registros
Dos registros especiales: siguiente instrucción (IP, PC…) y
estado (CCR)
 Instrucciones: realización de operaciones aritméticas,
lógicas o de movimiento de datos
Los operandos pueden ser registros o posiciones de
memoria
s ot ne ma dnuF: 2 a me T

 Al menos dos modos de ejecución:


Supervisor: ejecución sin restricciones
Usuario: se restringen las instrucciones que puedan
acceder a recursos del sistema
 Si en modo usuario se intenta ejecutar instrucción 7
1.1 Conceptos básicos sobre A.O.
Interrupciones y excepciones
 Interrupción = alteración en secuencia de ejecución de
instrucciones. Causas:
Interrupción hardware
Excepción
Ejecución de instrucción de petición de interrupción (INT,
TRAP)
 Tratamiento:
s ot ne ma dnuF: 2 a me T

1.CPU termina de ejecutar instrucción actual


2.Se almacena estado de CPU en la pila
3.CPU pasa a modo supervisor
4.Determina dirección SSI (normalmente: tabla de vectores)
5.Salta a SSI
6.Al retornar de SSI: se restaura estado (y modo de ejecución) 8
1.1 Conceptos básicos sobre A.O.
Arranque del sistema
 Arranque del sistema = secuencia de operaciones que
tras el encendido llevan la máquina a un estado usable
 Pasos:
1.Procesador realiza inicialización interna que termina
transfiriendo control a una dirección determinada
2.En dicha dirección puede haber…
 Si sistema operativo en ROM: el sistema operativo (ir a paso 5)
s ot ne ma dnuF: 2 a me T

 Si sistema operativo no en ROM: el cargador hardware


1.Cargador hardware: realiza…
 Inicialización mínima: determina características y correcto
funcionamiento del sistema
 Determina dispositivo de carga del sistema operativo
 Lee de dicho dispositivo el cargador software


9
1.1 Conceptos básicos sobre A.O.
Arranque del sistema (cont.)
4.Cargador software (pertenece a SO): carga el sistema
operativo y le transfiere el control una vez cargado
5.Inicialización del sistema operativo:
 Se crean estructuras de datos del sistema operativo
 Comprobación detallada del sistema: detección de nuevos
dispositivos, comprobación del sistema de archivos, etc.
 Se cargan los componentes opcionales que procedan del SO
 Se crea uno o más procesos de inicio de sesión
s ot ne ma dnuF: 2 a me T

 Tras iniciar sesión, se crea un proceso intérprete de comandos


(texto o gráfico)

10
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores

2. Procesos

3. Llamadas al sistema

4. Usuarios

5. Archivos
s ot ne ma dnuF: 2 a me T

6. Intérpretes de órdenes

7. Interfaces gráficas de usuario


11
1.2 Procesos
 Proceso = programa en ejecución
Si se ejecuta dos o más veces un mismo programa:
procesos distintos
Un proceso puede cambiar el programa (execve) y sigue
siendo el mismo proceso
 S.O. multiprogramado: aquel que permite más de un
proceso en ejecución simultáneamente
Emplean mecanismos de protección para aislar procesos
Cada proceso tiene su propio espacio de memoria
s ot ne ma dnuF: 2 a me T

Se proporciona mecanismos de comunicación y


sincronización
Mecanismos de identificación de procesos (PID)
 Un proceso puede crear otros procesos
Relación paterno/filial entre procesos
12
Procesos padre: atribuciones especiales sobre procesos
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores

2. Procesos

3. Llamadas al sistema

4. Usuarios

5. Archivos
s ot ne ma dnuF: 2 a me T

6. Intérpretes de órdenes

7. Interfaces gráficas de usuario


13
1.3 Llamadas al sistema
 Llamada al sistema: petición que hace un proceso al
sistema operativo para obtener algún tipo de servicio
 API (Aplication Programming Interface):
Interfaz que el sistema operativo presenta a los programas
Compuesta por el conjunto de todas las llamadas al sistema
soportadas
API’s estandarizadas: POSIX (Portable Operating System
Interface)
API’s propietarias: WIN32, WinFX
s ot ne ma dnuF: 2 a me T

 Formas de implementación:
Mediante rutinas
Mediante interrupciones
14
1.3 Llamadas al sistema
Implementación mediante rutinas
 Por cada llamada al sistema, una rutina que la
implementa
 Primera dificultad: ¿en qué direcciones están?
 Soluciones: (Para simplificar: un único punto de entrada)
Punto de entrada en dirección fija
• ¡Los programas dependen de esta dirección!
Punto de entrada en dirección apuntada por una variable
s ot ne ma dnuF: 2 a me T

• ¡Los programas dependen de la dirección de dicha variable!


Programas hacen referencia a punto de entrada mediante
una variable conocida por montador de enlaces (Ej: CALL SYS)
• ¡Si cambia de versión de SO, hay que reenlazar los programas!

 Segunda dificultad: ¿paso a modo supervisor?


15
1.3 Llamadas al sistema
Implementación mediante interrupciones
 Punto de entrada único al que se accede mediante una
interrupción
Punto de entrada se coloca en cualquier dirección de
memoria
Para efectuar llamada al sistema, se usa instrucción INT n
En el vector n de interrupción: dirección punto de entrada
s ot ne ma dnuF: 2 a me T

 Al realizar una llamada:


Se pasa a modo supervisor
Hardware determina dirección de punto de entrada
Código del SO se ejecuta en modo supervisor
Al retornar, se restaura modo de ejecución previo a llamada
16
1.3 Llamadas al sistema
Implementación mediante interrupciones (cont.)
 Ventajas:
Independencia de los programas respecto a ubicación de
punto de entrada en memoria
Conmutación implícita a modo supervisor
Posibilidad de llamadas implícitas al sistema
s ot ne ma dnuF: 2 a me T

17
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores

2. Procesos

3. Llamadas al sistema

4. Usuarios

5. Archivos
s ot ne ma dnuF: 2 a me T

6. Intérpretes de órdenes

7. Interfaces gráficas de usuario


18
1.4 Usuarios
 Usuario = personas autorizadas a usar el sistema

 Los sistemas multiprogramados mantienen asociación


entre cada proceso y su usuario propietario
Es el usuario quien determina los derechos del proceso a
acceder a recursos del sistema

 Identificación de usuario: UID (normalmente numérico)


s ot ne ma dnuF: 2 a me T

 Posibilidad de definir grupos de usuario


Grupos identificados por GID (normalmente numérico)
Derechos del proceso: determinados por [UID, GID]

19
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores

2. Procesos

3. Llamadas al sistema

4. Usuarios

5. Archivos
s ot ne ma dnuF: 2 a me T

6. Intérpretes de órdenes

7. Interfaces gráficas de usuario


20
1.5 Archivos
 Archivo = conjunto de información

 Organización jerárquica basada en directorios y


subdirectorios

 Archivos frecuentemente residen en dispositivos

 Identificación de dispositivos: dependen de sistema


s ot ne ma dnuF: 2 a me T

Letras de unidad: C:, D:, etc.


Archivo especial: /def/fd0, /dev/hda, etc.

 En sistemas multiusuario se proporcionan mecanismos


de protección del sistema de archivos 21
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores

2. Procesos

3. Llamadas al sistema

4. Usuarios

5. Archivos
s ot ne ma dnuF: 2 a me T

6. Intérpretes de órdenes

7. Interfaces gráficas de usuario


22
1.6 Intérpretes de órdenes
 Intérprete de órdenes = programa interactivo
que lee e interpreta comandos del usuario
Nombres alternativos: intérpretes de comandos, shells…
 Algunos sistemas permiten usar distintos intérpretes de
comandos
Ejemplo: UNIX
 En otros casos está integrado en sistema operativo
Ejemplo: MS-DOS
s ot ne ma dnuF: 2 a me T

 Funciones soportadas más frecuentemente:


Ejecución de programas con redirección de entrada y/o
salida
Ejecución en paralelo de procesos unidos por una tubería
Ejecución de secuencias de comandos (scripts)
… 23
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores

2. Procesos

3. Llamadas al sistema

4. Usuarios

5. Archivos
s ot ne ma dnuF: 2 a me T

6. Intérpretes de órdenes

7. Interfaces gráficas de usuario


24
1.7 Interfaces gráficas de usuario
 Interfaz gráfica de usuario (GUI) = intérprete de
órdenes en modo gráfico
 Suelen ofrecer API que permite su uso por parte de
programas de usuario
Aero (Windows Vista)
Beryl
s ot ne ma dnuF: 2 a me T

Explorer (Windows XP)


25
GNOME
Índice:
1. Conceptos básicos

2. Modelos de diseño

3. Ejemplos de organización interna


t ne ma dnuF: 2 a me T

26
2. Modelos de diseño
1. Modelo monolítico

2. Modelo en estratos

3. Modelo micronúcleo

4. Máquinas virtuales
s ot ne ma dnuF: 2 a me T

5. Diseño orientado a objetos

27
2. Modelos de diseño
1. Modelo monolítico

2. Modelo en estratos

3. Modelo micronúcleo

4. Máquinas virtuales
s ot ne ma dnuF: 2 a me T

5. Diseño orientado a objetos

28
2.1 Modelo monolítico
 Todo el sistema operativo comparte un único espacio
de memoria

rutina_servicio_interrupcion()
Administración {
de Gestor de Disco …
Memoria }

rutina_auxiliar () planificador ()
{ {
… …
s ot ne ma dnuF: 2 a me T

Administración
} de archivos
} T ab
la
Tab de
la de a pr
rchi oc
v os es
os

29
2.1 Modelo monolítico
 Ventajas:
Eficiencia en tiempo de
ejecución
Sistemas compactos

 Inconvenientes:
Dificultad de depuración
Complejidad y dificultad
mantenimiento
s ot ne ma dnuF: 2 a me T

30
2.1 Modelo monolítico
Estructura de un sistema monolítico

Despachador

Servicio 1 Servicio 2 Servicio 3 … Servicio N


s ot ne ma dnuF: 2 a me T

Rutina Aux. 1 Rutina Aux. 2 Rutina Aux. 3 …

SSI Int.1 SSI Int.2 …


31
2.1 Modelo monolítico
Funcionamiento del despachador
1. ¿Llamada explícita al sistema o fallo de protección?
En caso de llamada explícita, comprobar validez de llamada
1. Seleccionar rutina de servicio e invocarla
2. Devolver el control
void seleccionar(int ident_servicio)
{
if (ident_servicio == IDENT1)
servicio1(...) voidtabla_servicios
seleccionar(int ident_servicio)
s ot ne ma dnuF: 2 a me T

else if (ident_servicio == IDENT2) { servicio1()


servicio2(...) fun_serv tabla_servicios[] = {servicio1,
else if (ident_servicio == IDENT3) servicio2()
servicio2, servicio3…};
servicio3(...) servicio3()
else if (ident_servicio == IDENT4) tabla_servicios[ident_servicio](…);

servicio4(...) }
... 32
2.1 Modelo monolítico
 Ejemplos de sistemas monolíticos:
Linux y la mayoría de Unix, a excepción de Solaris
Las versiones de windows basadas en MS-DOS
s ot ne ma dnuF: 2 a me T

33
2. Modelos de diseño
1. Modelo monolítico

2. Modelo en estratos

3. Modelo micronúcleo

4. Máquinas virtuales
s ot ne ma dnuF: 2 a me T

5. Diseño orientado a objetos

34
2.2 Modelo en estratos
 Idea: colocando una capa de software sobre el
hardware conseguimos una máquina ampliada
 Podemos construir un sistema colocando sucesivas
capas una encima de otra

Proceso de usuario

Capa 3: Gestión de entrada-salida


s ot ne ma dnuF: 2 a me T

Capa 2: Comunicación proceso-consola


Capa 1: Gestión de la memoria
Capa 0: Planificación

Hardware
35
2.2 Modelo en estratos
 Ventajas:
Gracias a la modularidad, sistema más fácil de depurar y
mantener
 Inconvenientes:
Al ser las capas cajas negras, se pierde la posibilidad de
compartir código y datos entre distintas capas

 Ejemplo de sistemas en estratos:


Multics
s ot ne ma dnuF: 2 a me T

OS/2

36
2. Modelos de diseño
1. Modelo monolítico

2. Modelo en estratos

3. Modelo micronúcleo

4. Máquinas virtuales
s ot ne ma dnuF: 2 a me T

5. Diseño orientado a objetos

37
2.3 Modelo micronúcleo
 Parte más compleja de un sistema operativo: el núcleo
 Idea: hagamos un núcleo tan simple como sea posible
Saquemos fuera de él toda la funcionalidad posible
Funcionalidad sacada del núcleo: se implementa mediante
procesos externos
 Núcleo mínimo:
Multiprogramación
Comunicación entre procesos
s ot ne ma dnuF: 2 a me T

Atención de interrupciones

Administrador Administrador Gestor de Proceso de


Archivos Memoria Disco
… Usuario

Micronúcleo
Hardware 38
2.3 Modelo micronúcleo
 Ventajas:
Facilidad de depuración
Robustez
Flexibilidad
Fácil adaptación a sistemas distribuidos

 Inconvenientes:
Sistemas más lentos
Requieren más memoria
s ot ne ma dnuF: 2 a me T

39
2. Modelos de diseño
1. Modelo monolítico

2. Modelo en estratos

3. Modelo micronúcleo

4. Máquinas virtuales
s ot ne ma dnuF: 2 a me T

5. Diseño orientado a objetos

40
2.4 Máquinas virtuales
 Colocando una capa de software sobre el hardware
obtenemos una máquina ampliada con interfaz de más
alto nivel
 Idea:
¿Por qué una?
¿Por qué de más alto nivel?

Sistema Sistema … Sistema


s ot ne ma dnuF: 2 a me T

Operativo 1 Operativo 2 Operativo n


Hardware (1) Hardware (2) … Hardware (n)

Monitor de máquinas virtuales


Hardware 41
2.4 Máquinas virtuales
 Monitor de máquinas virtuales…
Reparte recursos (memoria, disco)
Simula dispositivos e interrupciones
En particular: simula procesador
• Reparte tiempo de procesador entre las máquinas virtuales
• Simula los cambios de modo de ejecución
Proceso de
IN EAX,DX
Usuario
Sistema Sistema … Sistema
s ot ne ma dnuF: 2 a me T

OUT DX, AL
Operativo 1 Operativo 2 Operativo n
Hardware (1) Hardware (2) … Hardware (n)

OUT DX,AL
Monitor de máquinas virtuales
Hardware 42
2.4 Máquinas virtuales
 Aplicaciones de virtualización
Ejecución simultánea de varios SO en una misma máquina
Explotación de Mainframes: múltiples máquinas adaptadas
cada una a las necesidades de usuario (escalabilidad)
Depurado de sistemas operativos
…
 Téngase en cuenta…
Estamos dividiendo la potencia de la máquina
s ot ne ma dnuF: 2 a me T

Monitor introduce sobrecarga


• Suma de potencia de máquinas menor que la de la máquina real

43
2.4 Máquinas virtuales
Algunos virtualizadores
 z/VM (http://www.vm.ibm.com)
 VMWare (http://www.vmware.com)
 Virtual PC / Virtual Server (
http://www.microsoft.com/windows/products/winfamily/virtua
)
 BOCHS (http://bochs.sourceforge.net/)
 QEMU (http://fabrice.bellard.free.fr/qemu/)
s ot ne ma dnuF: 2 a me T

Emulador de procesador
 Plex86 (http://plex86.sourceforge.net/)
Lightweight Virtual Machine diseñada sólo para ejecutar
Linux
 Xen (http://www.cl.cam.ac.uk/research/srg/netos/xen/) 44
2. Modelos de diseño
1. Modelo monolítico

2. Modelo en estratos

3. Modelo micronúcleo

4. Máquinas virtuales
s ot ne ma dnuF: 2 a me T

5. Diseño orientado a objetos

45
2.5 Diseño orientado a objetos
 No es un modelo de diseño en sí mismo

 Consecuencia aplicación al desarrollo de un SO de los


métodos de análisis y diseño orientado a objetos

 Un sistema operativo orientado a objetos puede


desarrollarse con cualquier organización
s ot ne ma dnuF: 2 a me T

 Recursos en el sistema: se consideran objetos


Operaciones aplicables: depende de tipo de objetos

46
Índice:
1. Conceptos básicos

2. Modelos de diseño

3. Ejemplos de organización interna


t ne ma dnuF: 2 a me T

47
3. Ejemplos de organización interna
1. Linux

2. Minix

3. Windows 2000
s ot ne ma dnuF: 2 a me T

48
3. Ejemplos de organización interna
1. Linux

2. Minix

3. Windows 2000
s ot ne ma dnuF: 2 a me T

49
3.1 Linux
 Al igual que demás sistemas Unix, consta de:
Núcleo
Librerías del sistema
Utilidades del sistema

Utilidades del
Procesos de usuario
Sistema
s ot ne ma dnuF: 2 a me T

Bibliotecas del sistema

Núcleo

50
3.1 Linux
 Núcleo monolítico
 Problema: dificultad de mantenimiento
¡Muchas personas trabajan en núcleo de Linux!
 Solución: módulos cargables
Enlace dinámico
Módulos apilables
 El núcleo gestiona dependencias entre módulos
Tiene en cuenta dichas dependencia al cargar/descargar
s ot ne ma dnuF: 2 a me T

Esto facilita compartir código entre componentes de manera


ordenada
A D

B C E
51
3.1 Linux
 Se suelen cargar como módulos
Gestores de dispositivos
Sistemas de archivos
…
 Procesos de usuario pueden cargar/descargar módulos:
insprobe: carga un módulo en el núcleo
rmmod: elimina un módulo del núcleo
modprobe: gestión de módulos
s ot ne ma dnuF: 2 a me T

Linux Kernel Development, 2ª Edición


Robert Love
Novel Press

52
3. Ejemplos de organización interna
1. Linux

2. Minix

3. Windows 2000
s ot ne ma dnuF: 2 a me T

53
3.2 Minix
 Organización micronúcleo pura
 Organización de Minix 3:
En modo supervisor:
Todo lo demás en modo usuario

proceso 1 proceso 1 …
init
de usuario de usuario

Administrador de Administrador de Administrador de …


s ot ne ma dnuF: 2 a me T

archivos memoria red

Tarea de Tarea de Tarea de … Tarea del Tarea del


disco terminales ethernet reloj sistema
Operating Systems Design and Implementation, 3ª Edición
Micronúcleo
Andrew S. Tanenbaum, Albert S. Woodhull-Amherst
Prentice Hall 54
3. Ejemplos de organización interna
1. Linux

2. Minix

3. Windows 2000
s ot ne ma dnuF: 2 a me T

55
3.3 Windows 2000
 Combina modelos micronúcleo y monolítico
Subsistemas Procesos de Aplicaciones Subsistemas
de entorno Servicios de usuario de entorno

Librerías del sistema (DLL’s)


Modo usuario

Modo núcleo
s ot ne ma dnuF: 2 a me T

Executive
Gestores de
Kernel Interfaz Gráfica de Usuario
Dispositivos
Inside Windows 2000
Hardware Abstraction Layer (HAL)
David A. Solomon, Mark E. Russinovich
Microsoft Press 56
57

También podría gustarte