CURSO: INTRODUCCION A
LOS SISTEMAS OPERATIVOS
Carrera: Computación
Docente: Ing. Oscar Condori Cruz.
Microsoft Certified Profesional
CLASE 2
FUNDAMENTOS
Índice
Tema 2: Fundamentos
1. Conceptos básicos
2. Modelos de diseño
3. Ejemplos de organización interna
3
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
Tema 2: Fundamentos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
1.1 Conceptos básicos sobre A.O.
Tema 2: Fundamentos
Organización básica de un ordenador:
procesador Memoria Adaptador Adaptador Adaptador
Teclado ratón Pantalla
BUS
Controlador
DMA
discos duros …
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
Tema 2: Fundamentos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
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
Tema 2: Fundamentos
Excepción
Ejecución de instrucción de petición de interrupción (INT,
TRAP)
Tratamiento:
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)
7. Se prosigue ejecución por siguiente instrucción
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
Tema 2: Fundamentos
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)
Si sistema operativo no en ROM: el cargador hardware
3. 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
→
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:
Tema 2: Fundamentos
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
Tras iniciar sesión, se crea un proceso intérprete de comandos
(texto o gráfico)
1. Conceptos básicos
Tema 2: Fundamentos 1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
1.2 Procesos
Proceso = programa en ejecución
Si se ejecuta dos o más veces un mismo programa: procesos
distintos
Tema 2: Fundamentos
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
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
Procesos padre: atribuciones especiales sobre procesos hijos
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
Tema 2: Fundamentos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
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):
Tema 2: Fundamentos
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
Formas de implementación:
Mediante rutinas
Mediante interrupciones
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?
Tema 2: Fundamentos
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
• ¡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?
1.3 Llamadas al sistema
Implementación mediante interrupciones
Punto de entrada único al que se accede mediante una
interrupción
Tema 2: Fundamentos
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
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
1.3 Llamadas al sistema
Implementación mediante interrupciones (cont.)
Ventajas:
Tema 2: Fundamentos
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
1. Conceptos básicos
Tema 2: Fundamentos 1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
1.4 Usuarios
Usuario = personas autorizadas a usar el sistema
Los sistemas multiprogramados mantienen asociación
Tema 2: Fundamentos
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)
Posibilidad de definir grupos de usuario
Grupos identificados por GID (normalmente numérico)
Derechos del proceso: determinados por [UID, GID]
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
Tema 2: Fundamentos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
1.5 Archivos
Archivo = conjunto de información
Organización jerárquica basada en directorios y
subdirectorios
Tema 2: Fundamentos
Archivos frecuentemente residen en dispositivos
Identificación de dispositivos: dependen de sistema
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
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
Tema 2: Fundamentos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
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…
Tema 2: Fundamentos
Algunos sistemas permiten usar distintos intérpretes de
comandos
Ejemplo: UNIX
En otros casos está integrado en sistema operativo
Ejemplo: MS-DOS
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)
…
1. Conceptos básicos
1. Conceptos básicos sobre arquitectura de ordenadores
2. Procesos
Tema 2: Fundamentos
3. Llamadas al sistema
4. Usuarios
5. Archivos
6. Intérpretes de órdenes
7. Interfaces gráficas de usuario
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
Tema 2: Fundamentos
Aero (Windows Vista)
Beryl
Explorer (Windows XP)
GNOME
Índice:
1. Conceptos básicos
Tema 2: Fundamentos
2. Modelos de diseño
3. Ejemplos de organización interna
25
2. Modelos de diseño
1. Modelo monolítico
2. Modelo en estratos
Tema 2: Fundamentos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
2. Modelos de diseño
1. Modelo monolítico
2. Modelo en estratos
Tema 2: Fundamentos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
2.1 Modelo monolítico
Todo el sistema operativo comparte un único espacio
de memoria
rutina_servicio_interrupcion()
Tema 2: Fundamentos
Administración {
de Gestor de Disco …
Memoria }
rutina_auxiliar () planificador ()
{ {
… …
Administración
} de archivos }
2.1 Modelo monolítico
Ventajas:
Eficiencia en tiempo de ejecución
Sistemas compactos
Tema 2: Fundamentos
Inconvenientes:
Dificultad de depuración
Complejidad y dificultad mantenimiento
2.1 Modelo monolítico
Estructura de un sistema monolítico
Despachador
Tema 2: Fundamentos
Servicio 1 Servicio 2 Servicio 3 … Servicio N
Rutina Aux. 1 Rutina Aux. 2 Rutina Aux. 3 …
SSI Int.1 SSI Int.2 …
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
Tema 2: Fundamentos
2. Seleccionar rutina de servicio e invocarla
3. Devolver el control
void seleccionar(int ident_servicio)
{
if (ident_servicio == IDENT1)
servicio1(...) void tabla_servicios
seleccionar(int ident_servicio)
else if (ident_servicio == IDENT2) {
servicio1()
fun_serv tabla_servicios[] = {servicio1,
servicio2(...)
else if (ident_servicio == IDENT3) servicio2, servicio3…};
servicio2()
servicio3(...) servicio3()
else if (ident_servicio == IDENT4) tabla_servicios[ident_servicio](…);
} …
servicio4(...)
...
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
Tema 2: Fundamentos
2. Modelos de diseño
1. Modelo monolítico
Tema 2: Fundamentos
2. Modelo en estratos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
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
Tema 2: Fundamentos
capas una encima de otra
Proceso de usuario
Capa 3: Gestión de entrada-salida
Capa 2: Comunicación proceso-consola
Capa 1: Gestión de la memoria
Capa 0: Planificación
Hardware
2.2 Modelo en estratos
Ventajas:
Gracias a la modularidad, sistema más fácil de depurar y
mantener
Inconvenientes:
Tema 2: Fundamentos
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
OS/2
2. Modelos de diseño
1. Modelo monolítico
2. Modelo en estratos
Tema 2: Fundamentos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
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
Tema 2: Fundamentos
procesos externos
Núcleo mínimo:
Multiprogramación
Comunicación entre procesos
Atención de interrupciones
Administrador Administrador Gestor de … Proceso de
Archivos Memoria Disco Usuario
Micronúcleo
Hardware
2.3 Modelo micronúcleo
Ventajas:
Facilidad de depuración
Robustez
Flexibilidad
Tema 2: Fundamentos
Fácil adaptación a sistemas distribuidos
Inconvenientes:
Sistemas más lentos
Requieren más memoria
2. Modelos de diseño
1. Modelo monolítico
2. Modelo en estratos
Tema 2: Fundamentos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
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:
Tema 2: Fundamentos
¿Por qué una?
¿Por qué de más alto nivel?
Sistema Sistema … Sistema
Operativo 1 Operativo 2 Operativo n
…
Hardware (1) Hardware (2) Hardware (n)
Monitor de máquinas virtuales
Hardware
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
Tema 2: Fundamentos
• Simula los cambios de modo de ejecución
Proceso de
IN EAX,DX
Usuario
Sistema Sistema … Sistema
OUT DX, AL
Operativo 1 Operativo 2 Operativo n
…
Hardware (1) Hardware (2) Hardware (n)
OUT DX,AL
Monitor de máquinas virtuales
Hardware
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)
Tema 2: Fundamentos
Depurado de sistemas operativos
…
Téngase en cuenta…
Estamos dividiendo la potencia de la máquina
Monitor introduce sobrecarga
• Suma de potencia de máquinas menor que la de la máquina real
2.4 Máquinas virtuales
Algunos virtualizadores
z/VM (http://www.vm.ibm.com)
VMWare (http://www.vmware.com)
Tema 2: Fundamentos
Virtual PC / Virtual Server
(http://www.microsoft.com/windows/products/winfamily/v
irtualpc/default.mspx)
BOCHS (http://bochs.sourceforge.net/)
QEMU (http://fabrice.bellard.free.fr/qemu/)
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/)
Paravirtualizador
2. Modelos de diseño
1. Modelo monolítico
2. Modelo en estratos
Tema 2: Fundamentos
3. Modelo micronúcleo
4. Máquinas virtuales
5. Diseño orientado a objetos
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
Tema 2: Fundamentos
Un sistema operativo orientado a objetos puede
desarrollarse con cualquier organización
Recursos en el sistema: se consideran objetos
Operaciones aplicables: depende de tipo de objetos
Índice:
1. Conceptos básicos
Tema 2: Fundamentos
2. Modelos de diseño
3. Ejemplos de organización interna
46
3. Ejemplos de organización interna
1. Linux
2. Minix
Tema 2: Fundamentos
3. Windows 2000
3. Ejemplos de organización interna
1. Linux
2. Minix
Tema 2: Fundamentos
3. Windows 2000
3.1 Linux
Al igual que demás sistemas Unix, consta de:
Núcleo
Librerías del sistema
Utilidades del sistema
Tema 2: Fundamentos
Utilidades del
Procesos de usuario
Sistema
Bibliotecas del sistema
Núcleo
3.1 Linux
Núcleo monolítico
Problema: dificultad de mantenimiento
¡Muchas personas trabajan en núcleo de Linux!
Solución: módulos cargables
Tema 2: Fundamentos
Enlace dinámico
Módulos apilables
El núcleo gestiona dependencias entre módulos
Tiene en cuenta dichas dependencia al cargar/descargar
Esto facilita compartir código entre componentes de manera
ordenada
A D
B C E
3.1 Linux
Se suelen cargar como módulos
Gestores de dispositivos
Sistemas de archivos
…
Tema 2: Fundamentos
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
Linux Kernel Development, 2ª Edición
Robert Love
Novel Press
3. Ejemplos de organización interna
1. Linux
2. Minix
Tema 2: Fundamentos
3. Windows 2000
3.2 Minix
Organización micronúcleo pura
Organización de Minix 3:
En modo supervisor:
Todo lo demás en modo usuario
Tema 2: Fundamentos
proceso 1 proceso 1 …
init
de usuario de usuario
Administrador de Administrador de Administrador de …
Operating Systems Design and Implementation, 3ª Edición
archivos memoria
Andrew S. Tanenbaum, redS. Woodhull-Amherst
Albert
Prentice
Tarea de
Hall
Tarea de Tarea de … Tarea del Tarea del
disco terminales ethernet reloj sistema
Micronúcleo
3. Ejemplos de organización interna
1. Linux
2. Minix
Tema 2: Fundamentos
3. Windows 2000
3.3 Windows 2000
Combina modelos micronúcleo y monolítico
Subsistemas Procesos de Aplicaciones Subsistemas
de entorno Servicios de usuario de entorno
Tema 2: Fundamentos
Librerías del sistema (DLL’s)
Modo usuario
Modo núcleo
Executive
Gestores de
Kernel Interfaz Gráfica de Usuario
Inside Windows 2000
Dispositivos
David A. Solomon,
Hardware Abstraction Layer (HAL) Mark E. Russinovich
Microsoft Press
Guía de instalación de Windows
https://www.youtube.com/watch?v=5_7xv06yK20
Guía de instalación de Ubuntu Linux
https://www.youtube.com/watch?v=ae60pP2Wu7
8
Bibliografía:
https://1984.lsi.us.es/wiki-
ssoo/index.php/P%C3%A1gina_Principal#Fundamentos_de_Sistemas_Opera
tivos
https://www.researchgate.net/publication/305994090_Fundamentos_de_si
stemas_operativos