Logo Studenta

Tema 3 Sistemas Operativos

¡Este material tiene más páginas!

Vista previa del material en texto

Tema 3
Sistemas Operativos
Dictino Chaos García
dchaos@dia.uned.es
http://creativecommons.org/licenses/by-nc-nd/4.0
http://creativecommons.org/licenses/by-nc-nd/4.0
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Sistemas Operativos ¿Para qué?
• El ordenador tiene muchas “piezas” y cada una funciona de 
una forma diferente…
• Si el usuario/programador necesita conocer los detalles… mal 
vamos
• Ej. copiamos ficheros a un pendrive ¿necesito saber como 
funciona el pendrive?
• Por suerte NO
• Al HW al descubieto se le 
Llama “máquina desnuda”
Bus
Computador
Memoria principalProcesador
Tarjeta 
controladora
Host USB
Tarjeta 
controladora 
del disco
Tarjeta 
controladora
DVD-Rom
Tarjeta
controladora
gráfica
Controlador
DMA
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Vistiendo a la máquina: servicios
• Interacción con el usuario: “lo 
que vende del SO es que hace el 
ordenador fácil de usar”
• Sistemas de archivos: “como 
organizar los datos”
• Gestión de memoria: “cargar los 
programas sin preocupar al 
usuario”
• Control de procesos: “a cada 
programa le doy sus recursos”
• Comunicación y sincronización 
entre procesos: “varios 
programas pueden colaborar”
Núcleo del SO
Hardware
Utilidades del SO
Programas de aplicación
Usuarios
Programadores 
de aplicaciones
y utilidades
Diseñadores del 
sistema operativo
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Programas y procesos
• Una instancia de un programa
proceso, el SO los numera con un PID
– Un programa son instrucciones y datos
– Para ejecutarlo se pone (carga) en la 
memoria principal (ram)
– Un programa se puede ejecutar varias 
veces al mismo tiempo (instancias), cada 
una con recursos propios (memoria 
archivos abiertos…)
• Ej. Abrir dos documentos de Word
• Al arrancar la BIOS carga al SO y luego 
él carga el resto de procesos.
Instrucción 1
Instrucción 2
Instrucción 100
Dato 1
Dato 25
0
1
Dato 2
Zona de código
Zona de datos
99
100
101
124
Direcciones
Lógicas
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
El programa no está solo…
• El SO le ayuda (y mucho) y el programador se 
olvida de los detalles:
Código
Fuente
Compilador
o ensambladorProgramación
Código
Objeto
Librerías
Otros
Códigos
Objeto
Compilador o 
ensamblador
Editor 
de 
enlace
Fichero
Ejecutable
#include <stdio.h>
int main()
{
printf("Hola mundo");
return 0;
}
Esta línea da mucho juego…
Y produce todo esto…
Yo no se cómo se pinta en la pantalla (ni siquiera cómo funciona una pantalla)
se lo pido al SO y el lo hace  printf hace una llamada al sistema
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
¿Y quién ayuda al SO?
• El HW, con las siguientes herramientas:
– Modos de ejecución:
• Usuario: operaciones limitadas (para los programas normales)
• Núcleo: puedes hacer lo que quieras (así se ejecuta el SO)
– Interrupciones y excepciones:
• El procesador deja lo que está haciendo y ejecuta un programa 
especial.
• ¿Qué programa? El SO
• Además pasa a modo núcleo (para que pueda hacer lo que le 
venga en gana)
• Dos tipos
– HW: Por ejemplo el ratón se mueve, el disco termina la lectura…
– SW: el programa la produce voluntariamente trap (o syscall)
– Una excepción es una interrupción que se produce cuando 
algo va mal (leo fuera de mi memoria, 1/0, intento ejecutar 
una instrucción privilegiada y no estoy en modo núcleo)
EL SO lo arregla (o mata al programa)
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Veamos cómo funciona
• Hay una tabla que dice qué hacer con cada 
interrupción (tabla de vectores de 
interrupción)
• La tabla sólo la toca el SO (modo núcleo)
Instrucción 1
Instrucción 2
Instrucción 1000
Instrucción 1001
Instrucción 1100
Instrucción 1002 Manejador de la 
Interrupción 9
Código del 
programa
Interrupción del teclado
IRQ1 (número 9)
Instrucción 3
Instrucción 4
Instrucción 5
Interrupción Instrucción
8
9
…
2381
1000
…
Tabla de vectores de interrupción
(1)
(2)
(3)
(5)
(4)
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
¿Qué más hace el HW?
• Memoria virtual
– El proceso pide leer/escribir de una posición de 
memoria (virtual)
– La CPU lee otra (real)
– La traducción se hace leyendo una tabla (lo hace la 
MMU)
• ¿Todo esto para qué?
– Para que el programador use la memoria como si la 
tuviese toda para él.
– El SO se ocupa de que la memoria de los procesos no 
se solapen. Ejemplo:
• Proceso A lee su posición virtual 10 y proceso B escribe en su
la posición virtual 10 no hay problema las posiciones 
reales son distintas.
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
¿Qué más ayuda necesita el SO? Drivers
• Hay millones de dispositivos distintos… Pero son todos 
“parecidos” (ej: cada disco duro es distinto pero todos 
hacen más o menos lo mismo…)
• Que el programador del SO los conozca todos es 
“imposible”
• Solución: Que el fabricante del dispositivo haga un 
programa específico para usar su dispositivo en el SO 
dado driver o controlador del dispositivo
• El SO define las operaciones básicas y el driver se 
ocupa de los detalles específicos.
– Carácter (como un teclado)
– Bloque (como un disco duro)
• Plug and play (¿os suena?) el SO se las apaña para 
localizar e instalar el driver sin molestar al usuario.
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Clasificación de los SO
• Se pueden clasificar de muchas formas
• Por el número de tareas:
– Monotarea: un proceso de cada vez (EJ, MS-Dos)
– Multitarea: varios procesos a la vez (EJ Windows)
• ¿Un capricho? NO, mejora el rendimiento: mientras 
una tarea está a la espera (por ejemplo leyendo del 
disco) se puede hacer otra cosa (pensad cuando el 
ordenador mainframe se facturaba por minutos 
$$$…) 
• Ahora el tiempo de ordenador es barato, lo que se 
optimiza es el tiempo del ser humano que lo maneja 
y puede tener varios programas abiertos a la vez.
• Más complicado ya que hay que hacer más cosas:
– Proteger la memoria de cada proceso
– Planificar los procesos (ver quien se ejecuta y cuando)
– Comunicar los procesos (para que colaboren)
(a) SO. monotarea (b) SO. multitarea
Sistema 
operativo
Proceso A
Espacio libre
Sistema 
operativo
Proceso A
Espacio libre
Proceso B
Proceso C
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Más clasificación…
• Por el número de usuarios
– Monousuario ej. MS-DOS, w95 o 
MacOS (antes de X)
– Multiusuario: Cada usuario tiene su 
sesión:
• Control de sesión (login)
• Permisos (cada uno tiene sus ficheros)
• Roles (normales o administradores)
• OJO: multiusuario no significa 
multitarea (aunque suelen ir juntos) Ej
W10, Linux o MacOSX tienen ambas 
cosas
Usuario 1 Usuario 2
Proceso A Proceso B Proceso C
SO. Multiusuario
Espacio de trabajo
del usuario 1
Espacio de trabajo 
del usuario 2
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Todavía más clasificación
• Por el tipo de aplicación:
– Tiempo Real: Garantiza tiempos de respuesta (útil para controlar 
sistemas físicos que necesitan respuestas predecibles) VxWorks, QNX…
– Sistemas de supercomputadores: Pensado para tener muchos 
procesadores colabrorando: EJ Mare Nostrum 10240 procesadores y 
es de los “pequeños”
– Para PC: los que todos conocemos como Windows O MacOS o Linux
– Para servidores: Da servicios a otras máquinas, el usuario no accede a 
ellas directamente (ej servidor web)
– Para dispositivos móviles: Android, IOS…
– Integrados (un ordenador puede estar donde menos te lo esperas por 
ejemplo en la lavadora) suelen usar pocos recursos
– En red: SO que comparten recursos (casi todos ahora mismo) Por 
ejemplo en Windows se pueden compartir carpetas o impresoras.
– SO Multiprocesador (casi todos ahora mismo)
•Permiten multiprocesamiento simétrico (repartir el trabajo vamos…)
– Distribuidos: Hacen que varias máquinas parezcan sólo una (Ej chorus, 
Mach)
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Servicios básicos “al detalle”
• Sistema de Archivos:
– Organiza la información en el 
disco
– Dos niveles
• Lógico: “lo que el usuario ve como 
un disco”
• Físico: “lo que realmente es el 
disco”
– A nivel lógico vemos carpetas y 
archivos
• Archivos=datos relacionados que 
podemos leer o escribir
• Carpetas=contenedor de archivos
• Se organiza como un árbol
– Puede haber enlaces duros (varios 
nombres y un mismo archivo
– O simbólicos (acceso directo)
Directorio raíz ID=0
Programas
Usuarios
…
C:
Directorio ID=2
Pedro
Vanesa
…
Usuarios
Directorio ID=3
Firefox.lnk
Carta.txt
Perrito.jpg
Fotos
…
Pedro
Archivo de texto ID=7
Estimada
Ana
Te escribo 
para …
Directorio ID=1
Firefox.exe
Programas
Directorio ID=6
Perro.jpg
…
Fotos
Archivo de Imagen ID=8
Archivo ejecutable ID=5
101001
100001
Enlace ID=4
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Más archivos
• Nivel físico:
– Los archivos se dividen en bloques que se guardan 
en “algún sitio” del disco (no siempre 
consecutivos)
– Hay que saber qué bloques tiene cada fichero:
• Mediante un índice (i-nodos) o una tabla (FAT)
carta.txt ID=7 Perro.jpg ID=8 Firefox.exe Id=5
0 1 0 1 2 3
Estimada Ana
Te escribo para …
101001
100001
65 …… 40 1 2 3 543
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Funcionamiento de los archivos
• Cuando se crea un fichero se asigna un ID
• Cada ID tiene una entrada en un índice o en una 
tabla.
• Cuando se escribe se van rellenando bloques, si 
se acaba un bloque se busca otro libre y se añade 
a la tabla/índice
• Cuando se borra un fichero simplemente se quita 
de la tabla/índice
– no se borran los bloques del disco que tardaría mucho 
tiempo
– EJ: por eso los discos de Bárcenas los sobrescribieron 
35 veces con datos… (para asegurarse de que no 
quedara nada)
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
El disco es lento ¿qué hacemos?
• El truco de siempre: usar caché
– Se mantiene una copia de los bloques que se 
están usando en RAM o de los que se cree que se 
van a usar (lectura adelantada).
– Cuando se “acaba de usar” un bloque se copia en 
el disco duro (escritura retardada).
– Se ahorran un montón de lecturas/escrituras.
• Si no se apaga bien el disco los datos se 
quedan sin guardar. EJ: se va la luz o se saca 
un USB “por las malas”
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Memoria
• No hay nada peor que no recordar…
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Memoria
• Si hay un proceso es fácil si no se complica:
– Particiones (lo más simple)
– Paginada (más versátil)
• Lo mismo que pasa con los
Ficheros (se divide en bloques)
• Permite asignar más memoria
• De la disponible (virtual)
• Sólo se carga la parte del 
proceso que se necesita, el resto
Puede estar en el disco (intercambio) 
(a) Memoria basada en particiones
Proceso A
Espacio 
libre
Proceso B
Proceso C
Sistema 
operativo
(b) Memoria paginada
A
A
A
B
A
B
B
C
C
C
C
C
C
B
Espacio 
libre
C
B
Memoria principal
Región de intercambio
Sistema 
operativo
Memoria
sin usar
Proceso A
Proceso B
Proceso C
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Control de procesos
• La multitarea es el arte de dividir el tiempo en 
trozos pequeños (cuantos)
• Cuando se acaba el tiempo una interrupción 
de reloj avisa al SO que carga otro proceso.
• El SO planifica (decide “a quién le toca”)
– Cambio de contexto
• Guardar los datos del proceso antiguo
• Cargar los del nuevo proceso
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
En la velocidad está la clave
• Los procesos se alternan en cuantos de +o-
10ms ni nos damos cuenta
• Parece que se ejecutan a la vez
– En realidad sólo hay uno por cada 
procesador/núcleo
– Si hay varios procesadores se usa el 
multiprocesamiento simétrico (SMP)
• Los que no se ejecutan están dormidos (por 
ejemplo esperando una E/S)
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
• Los procesos a veces hacen cosas juntos
– Ejemplo: Portapapeles, para copiar y pegar hay 
que pasar datos de un proceso A a otro B
– Ejemplo: Navegador de internet: un proceso habla 
con otro en ¡otro ordenador!
– También hay que sincronizarse
(esperar unos por otros o acceder 
Ordenadamente a un recurso)
– IPC es ubicuo, se usa 
muchísimo sin darnos cuenta
Comunicación entre procesos
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Interacción con el usuario
• Línea de órdenes (terminal)
– REPL: Lee Ejecuta e imprime, (al principio en una 
imprsora o terminal en línea) 
– El shell escucha se escribe una orden, se ejecuta y da 
una respuesta todo en texto
– Se pueden hacer programas (scrips)
https://www.microsiervos.com/archivo/ordenadores/ordenador-pdp-7-unix-version-0.html
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
GUI Graphical User Interface
• Representación icónica (con dibujos) de los 
elementos.
• Los programas tienen una zona de la pantalla 
donde está su salida (ventana)
• Más interactivo:
– Pinchar un elemento
– Arrastrar (pinchar y llevar a otro sitio sin soltar)
– Pasar por encima
• Cada orden “gráfica” se traduce en llamadas al SO 
que hacen la acción deseada.
– EJ: se pueden copiar ficheros arrastrándolos de una 
ventana del explorador a otra…
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
GUI
• Partes escritorio:
– 1) Icono
– 2) ventana
– 3) Barra de 
tareas
– 4) Barra de 
notificaciones
• Partes ventana
– Título
– Menús
– Botones
(a) (b)
(c)
(d) (e)
1
2
2
3
3
3
4
4
11 1
4 4
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Intercambio (portapapeles)
• Es uno de los usos más claros del IPC
• Copiar (ej CTRL+C en Windows)
• Pegar (CTRL+V)
• Cortar (CTRL-X) (el original se borra)
• Aunque parezca trivial a veces hay que 
cambiar el formato de los datos que se 
transmite a uno adecuado al programa de 
destino (tiene su miga…)
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Otros servicios
• Hemos hablado de mínimos pero el SO tiene muchos
programas de utilidad…
– Programas de internet
– Programas de usuario (ej editor de textos)
– Programas de mantenimiento
– Herramientas de seguridad
• Algo tan simple como copiar un fichero no lo hace el 
núcleo del SO, lo hace un programa de aplicación:
– Abre el fichero de origen
– Crea el fichero destino
– En un bucle lee del fichero origen y lo escribe en destino
– Cierra ambos ficheros
• Lo rojo son las llamadas al sistema que proporciona el núcleo.
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Algunos servicios interesantes
• Seguridad:
– Confidencialidad, integridad y disponibilidad
• Herramientas básicas
– Login (acceso del usuario)
– Permisos de acceso (el usuario puede leer/escribir 
o ejecutar algunos ficheros pero otros no)
– Cifrado: para ocultar datos como contraseñas o 
documentos privados.
• Protección contra SW malicioso
– Bomba lógica, Puerta secreta, troyano, virus, 
gusano, programa espía…
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Ejemplo permisos
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Más servicios
• Mantenimiento:
– Monitorizar recursos
– Chequeo y reparación de ficheros
– Desfragmentación (sobre todo en FAT y derivados)
• Evitar que los ficheros se “desparramen” por todo el 
disco
– Recuperación de espacio
– Copia de seguridad
•Si no tienes estásen peligro
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Ejemplos de programas de utilidad
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Historia de los SO
• La historia es muy importante en un SO ¿Por 
qué?
– Los SO normalmente no se hacen desde cero
– Hay familias de SO que heredan características de 
sus antecesores y añaden mejoras
– Vamos a ver las más importantes
• UNIX y derivados
• Windows
• Linux
• MacOS
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Familia UNIX
• 1969
• Reescrito en C en los 70
• Muy avanzado
– Multitarea
– Multiusuario
– Permisos
– IPC
– Y mucho más…
• Como hay muchas 
implementaciones se 
creó el estándar POSIX
• Muchos SO modernos 
siguen dicho estándar 
HOY
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Microsoft
• Dos familias exitosas:
– La de DOS (obsoleta)
• MS DOS
– Monotarea
– Sin GUI
– 16 Bits
• Los primeros Windows (hasta 3.11) 
son capas GUI sobre DOS y añaden 
multitarea
• W95 es el primero “sin DOS” y de 
32 bits
– La NT o “New Techology” (hasta 
la actualidad)
• Mejora la seguridad
• Añade:
– Multiusuario/multitarea
– Permisos
• XP da el salto a los PC y en paralelo 
hay versiones de servidor.
• Actualmente estamos en W10
– Hay más pero no son muy 
exitosos EJ OS/2, Xenix o 
Windows Phone
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Pongámosle cara
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Apple
• A diferencia de Windows que es genérico y se puede instalar en muchos PCs Apple 
hace el SO para su HW
• Los primeros no tenían más que un cargador de programas (En BASIC)
• En 1983 aparece Lisa
– Fue el primero comercial en incorporar GUI (basado en la idea de Xerox star) y tener ratón
– El SO no tiene nombre propio y es una combinación System/finder (sistema e interfaz de 
usuario)
– Primero en usar el concepto WISIWIG (ahora ubicuo)
– Fracaso, muy caro… (todavía lo es ;P)
• Primeros Mac 1984
– Híbrido entre GUI y línea de órdenes
– Introduce un sistema de ficheros nuevo MFS
– Tenía multimedia (muy adelantado en ese aspecto)
• Power Pc: Migración en System 7.5MacOS como cambia de plataforma usa un 
emulador para los programas anteriores, se introduce HFS+ (actual)
• MacOS X: Se vuelve a Intel, muchos cambios de nombre (marqueting…)
– En 1996 se compra NexSTEP y se rediseña MacMacOS X que es POSIX con micronúcleo
Darwing sobre el que corria un BSD. Mac es UNIX…
– Por fin fue portable (lo que favoreción la creación de iOS)
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Versiones Mac OS
(lisa 3.1) (system1/finder1) (Mac OS 9)
(MacOS X) (Mac OS X10,12 Sierra)
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Linux
• Linux es un kernel (núcleo) que implementa POSIX.
• Movimiento del SW libre:
– 1983 Richard Stallman quiere hacer un SO libre (UNIX cierra sus licencias 
abiertas) y monta GNU y la definición de software libre así como la licencia 
GPL y el compilador GCC pero… Le falta lo más importante, el núcleo del SO.
– Andrew Tanembaun quería enseñar SO pero UNIX no le servía y creo MINIX, 
pero la licencia no era libre…
– Linus Torvals, aluno de Tanembaun 1991 “solo por diversión” hizo un SO 
pequeño para jugar con él en un 386… y lo libera a internet
– Lo que no sospechaba es que la comunidad de sw libre se volcaría con su 
juguete para hacer un SO libre GNU/Linux y el núcleo llegaría a tener 25 
millones de líneas de código…
– El proyecto actualmente tiene un gran interés comercial ya que de él 
dependen muchas distribuciones:
• Red hat
• Centos
• Debian
– Ubutntu
– Y otros SO derivados como por ejemplo ANDROID
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Distribuciones linux
(d)(c)
(a) (b)
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
SO móviles
• No solo para teléfonos, para tabletas relojes, 
TV…
– Symbian (un clásico extinto de Nokia)
– PalmOS (PDAs)
– Windows CE (ya difunto)
– Android (Google, sobran las palabras)
– IOS (iphone y todo lo que tenga i…)
Fundamentos de la Informática Dictino Chaos GarcíaTema 3: Sistemas Operativos
Estado del arte
• Windows 10
– App universales (Intel y ARM)
– Cortana
– E incluso interfaz con Linux
• Mac OS 10.12
– También Inteligencia artificial Siri
• Linux
– En el escritorio se usa muy poco pero… en servidores es el más usado
– Presente en los 500 mayores supercomputadores 
– Y en las cosas pequeñas (embebidos, raspberry, drones…)
• Android
– Basado en Linux pero con una capa de aplicaciones propia (basada en java y 
una MV propia)
– Amplio mercado de app
– Libre y se puede instalar en muchos dispositivos
• iOS Basado en MacOS X (que básicamene es UNIX)
– Solo para dispositivos Apple
– Mercado más cerrado pero muy productivo $$$

Continuar navegando