0% encontró este documento útil (0 votos)
35 vistas58 páginas

Curso: Introduccion A Los Sistemas Operativos

El documento es un material de curso sobre sistemas operativos, que cubre conceptos básicos como la arquitectura de ordenadores, procesos, llamadas al sistema, usuarios, archivos, intérpretes de órdenes e interfaces gráficas de usuario. También se discuten modelos de diseño de sistemas operativos, incluyendo el modelo monolítico, en estratos, micronúcleo, máquinas virtuales y diseño orientado a objetos. Se presentan ventajas e inconvenientes de cada modelo, así como ejemplos de sistemas que utilizan estos enfoques.

Cargado por

zavita2010
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
35 vistas58 páginas

Curso: Introduccion A Los Sistemas Operativos

El documento es un material de curso sobre sistemas operativos, que cubre conceptos básicos como la arquitectura de ordenadores, procesos, llamadas al sistema, usuarios, archivos, intérpretes de órdenes e interfaces gráficas de usuario. También se discuten modelos de diseño de sistemas operativos, incluyendo el modelo monolítico, en estratos, micronúcleo, máquinas virtuales y diseño orientado a objetos. Se presentan ventajas e inconvenientes de cada modelo, así como ejemplos de sistemas que utilizan estos enfoques.

Cargado por

zavita2010
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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

También podría gustarte