Está en la página 1de 40

Tema 3

Sistemas Operativos
Dictino Chaos García
dchaos@dia.uned.es
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 saberComputador como
funciona el pendrive?
Procesador Memoria principal
• Por suerte NO
Controlador
• Al HW al descubieto se le DMA

Bus

Llama “máquina desnuda”


Tarjeta
Tarjeta Tarjeta Tarjeta
controladora
controladora controladora controladora
Host USB
del disco DVD-Rom gráfica

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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”
Programas de aplicación
Usuarios
• Sistemas de archivos: “como
Utilidades del SO
Programadores
organizar los datos”
• Gestión de memoria: “cargar los
de aplicaciones
Núcleo del SO
y utilidades

Hardware programas sin preocupar al


usuario”
Diseñadores del
sistema operativo
• Control de procesos: “a cada
programa le doy sus recursos”
• Comunicación y sincronización
entre procesos: “varios
programas pueden colaborar”
Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García
Programas y procesos
• Una instancia de un programa
proceso, el SO los numera con un PID Direcciones

– Un programa son instrucciones y datos Lógicas

0 Instrucción 1

– Para ejecutarlo se pone (carga) en la 1 Instrucción 2

memoria principal (ram) Zona de código

– Un programa se puede ejecutar varias


veces al mismo tiempo (instancias), cada 99
100
Instrucción 100
Dato 1
una con recursos propios (memoria 101 Dato 2
Zona de datos
archivos abiertos…) 124 Dato 25

• Ej. Abrir dos documentos de Word


• Al arrancar la BIOS carga al SO y luego
él carga el resto de procesos.
Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García
El programa no está solo…
• El SO le ayuda (y mucho) y el programador se
olvida de los detalles:
Esta línea da mucho juego…
Y produce todo esto…

#include <stdio.h>
int main()
{ Otros
Códigos
printf("Hola mundo"); Objeto
return 0;
Editor
} Programación
Código
Fuente
Compiladoro
Compilador
oensamblador
ensamblador
Código
de
Fichero
Ejecutable
Objeto
enlace

Librerías

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 Tema 3: Sistemas Operativos Dictino Chaos García


¿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 Tema 3: Sistemas Operativos Dictino Chaos García


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)
(1) Instrucción 1
Interrupción Instrucción
Instrucción 2
Código del
Instrucción 3
programa
8 2381 (3) Instrucción 4
9 1000 Instrucción 5

… …
Tabla de vectores de interrupción
Instrucción 1000
Instrucción 1001
(2) (4) Instrucción 1002 Manejador de la
Interrupción 9

(5) Instrucción 1100

Interrupción del teclado


IRQ1 (número 9)

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


¿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 Tema 3: Sistemas Operativos Dictino Chaos García


¿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 Tema 3: Sistemas Operativos Dictino Chaos García
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) Sistema Sistema
operativo operativo
• ¿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 Proceso A Proceso A
ordenador mainframe se facturaba por minutos
$$$…) Proceso B

• Ahora el tiempo de ordenador es barato, lo que se


optimiza es el tiempo del ser humano que lo maneja Espacio libre
Proceso C

y puede tener varios programas abiertos a la vez.


• Más complicado ya que hay que hacer más cosas: Espacio libre
– Proteger la memoria de cada proceso
– Planificar los procesos (ver quien se ejecuta y cuando)
(a) SO. monotarea (b) SO. multitarea
– Comunicar los procesos (para que colaboren)

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


Más clasificación…
• Por el número de usuarios
– Monousuario ej. MS-DOS, w95 o
MacOS (antes de X) Usuario 1 Usuario 2

– Multiusuario: Cada usuario tiene su


sesión:
SO. Multiusuario
• Control de sesión (login)
• Permisos (cada uno tiene sus ficheros)
• Roles (normales o administradores) Proceso A Proceso B Proceso C

• OJO: multiusuario no significa


multitarea (aunque suelen ir juntos) Ej Espacio de trabajo
del usuario 1
Espacio de trabajo
del usuario 2

W10, Linux o MacOSX tienen ambas


cosas

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


Servicios básicos “al detalle”
• Sistema de Archivos:
– Organiza la información en el
disco C: Directorio raíz ID=0
Programas
– Dos niveles Usuarios

• Lógico: “lo que el usuario ve como Usuarios Directorio ID=2
Programas Directorio ID=1
un disco” Firefox.exe
Pedro
Vanesa
• Físico: “lo que realmente es el …
disco” Pedro Directorio ID=3
Firefox.lnk

– A nivel lógico vemos carpetas y 101001


100001
Enlace ID=4 Carta.txt
Perrito.jpg

archivos Fotos

• Archivos=datos relacionados que Archivo ejecutable ID=5


Directorio ID=6 Estimada
podemos leer o escribir Fotos
Perro.jpg Ana
• Carpetas=contenedor de archivos …
Te escribo
para …
Archivo de texto ID=7
• Se organiza como un árbol
Archivo de Imagen ID=8
– Puede haber enlaces duros (varios
nombres y un mismo archivo
– O simbólicos (acceso directo)

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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)

Estimada Ana 101001


Te escribo para …
100001
carta.txt ID=7 Perro.jpg ID=8 Firefox.exe Id=5

… 0 1 0 1 2 3 0 13 2 3 4 5 4 5 6 …

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García
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 Tema 3: Sistemas Operativos Dictino Chaos García
Memoria
• No hay nada peor que no recordar…

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


Memoria

• Si hay un proceso es fácil si no se complica:


– Particiones (lo más simple)
Memoria principal

– Paginada (más versátil) Sistema


operativo
Sistema
operativo
Proceso A
• Lo mismo que pasa con los Proceso A A
B
Memoria C
B
Ficheros (se divide en bloques) sin usar Espacio
libre Proceso B
C
B
• Permite asignar más memoria
A
Proceso C
C
Proceso C A
C
• De la disponible (virtual)
A
C
Espacio C
libre B

• Sólo se carga la parte del Región de intercambio


Proceso B C

proceso que se necesita, el resto(a) Memoria basada en particiones B


(b) Memoria paginada

Puede estar en el disco (intercambio)

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


Comunicación entre procesos
• 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

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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)

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


GUI
• Partes escritorio: 4

– 1) Icono
– 2) ventana
– 3) Barra de 2
tareas
2
– 4) Barra de 3
notificaciones 3 4
(a) (b)
4 4
• Partes ventana 1
– Título
– Menús 1 1 1

– Botones 3 (d) (e)


(c)

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García
Ejemplo permisos

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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ás en peligro
Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García
Ejemplos de programas de utilidad

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


Pongámosle cara

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


Versiones Mac OS

(lisa 3.1) (system1/finder1) (Mac OS 9)

(MacOS X) (Mac OS X10,12 Sierra)

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García


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 Tema 3: Sistemas Operativos Dictino Chaos García


Distribuciones linux

(a) (b)

(c) (d)
Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García
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 Tema 3: Sistemas Operativos Dictino Chaos García


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 $$$

Fundamentos de la Informática Tema 3: Sistemas Operativos Dictino Chaos García

También podría gustarte