Descarga la aplicación para disfrutar aún más
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.5MacOS 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 MacMacOS 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 $$$
Compartir