Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 3. Sistemas operativos Informática Ingenierı́a en Electrónica y Automática Industrial Raúl Durán Dı́az Juan Ignacio Pérez Sanz Departamento de Automática Escuela Politécnica Superior Curso académico 2016–2017 Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 1 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Contenidos 1 Definición de sistema operativo 2 Procesos 3 Sistema de ficheros 4 Interfaces de usuario Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 2 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Objetivos Definiciones básicas Objetivos Comprender el concepto de sistema operativo y su utilidad. Ser capaz de describir los diferentes elementos de que consta y comprender su importancia. Entender el concepto de proceso en el contexto de los sistemas operativos. Entender el concepto de sistema de ficheros. Ser capaz de utilizar los comandos básicos de Linux, manejando la entrada/salida estándar y los comandos concatenados. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 3 / 33 Objetivos Definiciones básicas ¿Qué es un sistema operativo? Definición Un sistema operativo es un programa (o conjunto de programas) de control que tiene por objeto facilitar el uso del computador y conseguir que este uso sea eficiente. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 4 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Objetivos Definiciones básicas Misiones del sistema operativo El sistema operativo proporciona dos servicios fundamentales: extiende las instrucciones de la máquina base; media en los conflictos entre procesos a causa de los recursos. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 5 / 33 Objetivos Definiciones básicas Máquina extendida u operativa El sistema operativo esconde detalles demasiado finos como para que el programador deba ocuparse de ellos. Por ejemplo: cómo se maneja la cabeza de lectura/escritura de un disco magnético. Presenta al usuario-programador una ((máquina virtual)) que se maneja de modo mucho más sencillo. Esa ((máquina virtual)) está normalmente estandarizada, de manera que un mismo programa puede valer para sistemas operativos distintos si estos ofrecen al usuario-programador la misma interfaz estándar. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 6 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Objetivos Definiciones básicas Máquina extendida u operativa La ((máquina virtual)) extiende el repertorio estándar de instrucciones por medio de los llamados system calls o servicios del sistema. Esos servicios del sistema pueden verse como ((instrucciones extendidas)) que permiten al programador ampliar sus posibilidades a la hora de programar. Los servicios del sistema constituyen la “interfaz” entre el programador y el sistema operativo. Los servicios del sistema se dividen en dos categorı́as esenciales: los que manejan procesos; los que manejan el sistema de ficheros. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 7 / 33 Objetivos Definiciones básicas Máquina extendida u operativa nivel máquina simbólica Compiladores Editores Intérprete de comandos nivel máquina extendida Sistema Operativo nivel máquina real Instrucciones en lenguaje máquina Figura: Posición relativa de las máquinas Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 8 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Objetivos Definiciones básicas Administrador de recursos La segunda misión importante del sistema operativo es actuar como árbitro entre los distintos usuarios para manejar los recursos limitados del sistema. Ejemplo Si varios programas quieren escribir en una impresora, hay que arbitrar los medios para que lo hagan en serie, uno detrás de otro, y que no se obstaculicen mutuamente. Ejemplo Mientras un proceso espera un dato del disco, otro puede usar la capacidad de cómputo del procesador. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 9 / 33 Definiciones Estructura Planificación Procesos El elemento ejecutivo fundamental de un sistema computador es el proceso. Un sistema computador en funcionamiento no es más que un conjunto de uno o más procesos en ejecución según diversas posibles planificaciones temporales. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 10 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Definiciones Estructura Planificación ¿Qué es un proceso? Definición Un proceso es, en esencia, un programa en ejecución. Observación Podemos ver un proceso como la instanciación dinámica de un programa. Puede, pues, ocurrir que varios procesos ejecuten (es decir, instancien) el mismo programa. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 11 / 33 Definiciones Estructura Planificación Elementos de un proceso Un proceso consta de un espacio de memoria, estructurado en secciones; los registros del procesador. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 12 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Definiciones Estructura Planificación Estructura de un proceso Vista de un proceso en relación a la memoria virtual y registros: Pila Un proceso necesita manejar registros de la CPU: Direcciones de memoria crecientes $SP 11111111111111111 00000000000000000 00000000000000000 11111111111111111 00000000000000000 11111111111111111 00000000000000000 11111111111111111 Hueco libre (variable) $GP Datos dinámicos Datos estáticos contador de programa $PC. puntero de pila $SP. puntero a datos dinámicos $GP. registro de estado $PSW. Instrucciones $PC Reservado 0 Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 13 / 33 Definiciones Estructura Planificación Caracterı́sticas un proceso Un proceso solo puede ser creado por otro proceso. Cualquier proceso puede crear a su vez procesos. Se utilizan dos servicios del sistema para crear nuevos procesos: fork: crea una réplica del proceso llamante; exec(p1): pone en ejecución el programa en el archivo ejecutable p1. El servicio del sistema exec se ocupa de trasladar el archivo ejecutable a memoria, dándole la adecuada estructura a cada sección, para que pueda comenzar la ejecución en el contexto del nuevo proceso. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 14 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Definiciones Estructura Planificación Estructura de un árbol de procesos A B C D E F Figura: Vista de un árbol de procesos Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 15 / 33 Definiciones Estructura Planificación Arranque (boot) del sistema computador En el momento de arranque de la máquina, hay un solo proceso en ejecución, responsable de ir creando todos los demás. Este proceso está grabado en la imagen de arranque (boot image). El arranque del sistema se ejecuta en varios pasos: Se ejecuta un pequeño código almacenado en memoria no volátil que carga un cargador más potente y lo pone en ejecución. Este segundo cargador carga la imagen del sistema operativo (boot image) y pone en ejecución el primer proceso de esa imagen. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 16 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Definiciones Estructura Planificación Estructura de un fichero de imagen ejecutable Secciones Símbolos Datos estáticos Instrucciones Cabeceras Figura: Estructura de un fichero ejecutable Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 17 / 33 Definiciones Estructura Planificación Turno en la ejecución de los procesos El recurso más valioso es el procesador. El procesador solo puede ejecutar un proceso cada vez. Cuando el proceso en ejecución se bloquea (porque espera un dato del disco, por ejemplo) el proceso distribuidor suspende el proceso en curso y selecciona otro que tenga posibilidad de ejecutarse en ese momento de acuerdo con cierta planificación. Cada proceso se describe por el espacio de memoria que usa y por el valor de los registros del procesador en el momento de la suspensión. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 18 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Definiciones Estructura Planificación Planificación: modo monoprograma Recursos impresora dispositivos E/S disco puerto USB proceso 1 sistema operativo 11111 00000 00000 11111 0 1 00 11 0 1 00 11 0 1 00 11 0000 1111 0000 1111 11 00 0 1 00 11 0 1 00 11 0 1 CPU no usada CPU inicio proc. 1 CPU no usada proceso 2 inicio proc. 2 11 00 00 11 fin proc. 1 00 11 00 11 00 11 0 1 00 011 1 00 11 011 1 00 Tiempo Figura: Planificación en modo monoprogramación Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 19 / 33 Definiciones Estructura Planificación Planificación: modo multiprograma Recursos E/S proc. 1 E/S proc. 1 impresora dispositivos E/S disco puerto USB proceso 2 CPU proceso 1 sistema operativo inicio proc. 2 proc. 2 interrumpido por el s.o. continúa proc. 2 11111 00000 0000 1111 00 11 00000 11111 0000 1111 00 11 fin proc. 1 00000 11111 0000 1111 00 11 00000 11111 0000 1111 00 11 00000 11111 0000 1111 00 11 0 1 00 11 00 11 0 1 0 1 00 0 1 00 11 00 11 0 1 011 1 00 11 inicio proc. 1 Tiempo Figura: Planificación en modo multiprogramación Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 20 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Definiciones Estructura Planificación Planificación: modo turno rotatorio El modo multiprograma tiene el inconveniente de que si un proceso tiene poca E/S, monopoliza demasiado tiempo el procesador. Solución: multiprogramación apropiativa El distribuidor del sistema operativo puede interrumpir un proceso en ejecución, apropiándose del procesador y dando turno a otro proceso que esté listo para ejecutarse. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 21 / 33 Definiciones Estructura Planificación Planificación: ciclo de vida de un proceso fin, error Nonato Finalizado cancelado, error distribuidor distribuidor Listo fin E/S cancelado, error distribuidor Activo E/S Bloqueado Figura: Diagrama de estados para un proceso Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 22 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Definiciones Estructura Planificación Memoria virtual El sistema operativo ofrece al proceso la ilusión de que puede utilizar toda la memoria disponible. Esto se denomina memoria virtual. En realidad, la memoria fı́sica que ocupa un proceso puede ser mucho más pequeña. El sistema operativo se encarga de mantener una tablas especı́ficas para cada proceso mediante las cuales realiza la traducción de la dirección de memoria virtual a la dirección fı́sica. Ası́ pueden convivir simultáneamente en un sistema más procesos de los que realmente caben en la memoria fı́sica de que ese sistema dispone. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 23 / 33 Definiciones Aplicación a Unix/Linux Sistema de ficheros Concepto de fichero y directorio. Directorio de trabajo. Rutas absolutas y relativas. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 24 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Definiciones Aplicación a Unix/Linux Sistema de ficheros Definición Abstracción limpia para manejar ficheros con independencia del hardware real que exista. Ejemplo Existen muchos tipos de sistemas de ficheros. Cada sistema operativo soporta unos u otros. Como ejemplo tenemos: ext4, NTFS, FAT32, ReiserFS, ISO9660, etc. Pueden convivir varios simultáneamente en un mismo sistema. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 25 / 33 Definiciones Aplicación a Unix/Linux Servicios del sistema para manejar ficheros El sistema nos da servicios para manejar ficheros: create/open: para crear un fichero nuevo o abrir uno existente; read/write: para leer o escribir en un fichero; close: cerrar el canal de comunicación con un fichero; unlink: borra un fichero de un directorio. Nota Los servicios de manejo de ficheros son independientes del sistema de ficheros usado. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 26 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Definiciones Aplicación a Unix/Linux Estructura de un árbol de directorios raíz clases informática trabajos física ficheros pelis ice-age shrek Figura: Vista de la estructura de ficheros en Unix/Linux Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 27 / 33 Definiciones Aplicación a Unix/Linux Aplicación a Unix/Linux jerarquı́a de ficheros; dispositivos como ficheros (virtuales); puntos de montaje. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 28 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Definiciones Aplicación a Unix/Linux Dispositivos y ficheros Para proporcionar una interfaz coherente, en Unix/Linux se accede a los dispositivos también a través de ficheros. Se trata de fichero especiales, normalmente situados bajo el directorio /dev. Los servicios del sistema que se usan son los mismos que para los ficheros normales. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 29 / 33 Definiciones Aplicación a Unix/Linux Puntos de montaje en el sistema de ficheros Para aumentar el espacio disponible se pueden agregar más discos al sistema de ficheros existente. El nuevo disco ha de contener a su vez un árbol de directorios. Para hacer conocido al sistema el nuevo disco, se utiliza el concepto de punto de montaje. El punto de montaje no es más que un directorio del sistema original bajo el cual se monta el nuevo disco. El usuario ve que aparecen nuevos directorios y archivos bajo un directorio originalmente vacı́o. No tiene conciencia de en qué disco está escribiendo. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 30 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Concepto Interfaz shell Interfaz de usuario En todo sistema computador siempre existe al menos un proceso para cada usuario que permite a este la interacción con el sistema. En su forma más sencilla, la interfaz consiste en una consola textual donde el usuario puede teclear órdenes. Esas órdenes mandan en su mayor parte poner en ejecución distintos programas que el usuario quiere utilizar. El proceso interfaz recoge esas órdenes, busca los programas correspondientes, los pone en ejecución y dirige hacia la consola la salida que estos programas producen. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario 31 / 33 Concepto Interfaz shell Tipos de interfaz de usuario Existen varios tipos de interfaces de usuario, cada uno con sus ventajas y sus inconvenientes. Interfaz de lı́nea de órdenes: las órdenes se teclean sobre una terminal obedeciendo a cierta sintaxis. En la misma terminal se muestra también la salida producida. Interfaz de menús: el usuario selecciona las órdenes a partir de un elenco pre-establecido. Interfaz con iconos: las posibles órdenes están simbolizadas con iconos o figuras que se ejecutan al pulsar con el ratón sobre ellas. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 32 / 33 Definición de sistema operativo Procesos Sistema de ficheros Interfaces de usuario Concepto Interfaz shell Programa shell Se trata de un programa muy completo que funciona en modo interfaz de lı́nea de órdenes. El usuario teclea sus órdenes y el shell las manda ejecutar. Presenta varias caracterı́sticas tı́picas: entrada y salida estándar; concatenación de entrada/salida, ((tuberı́as)); variables de entorno; estructura tı́pica de un comando de lı́nea: llamada al comando, argumentos, variable de entorno PATH. algunos comandos muy básicos: ls -l, cd, pwd, mkdir, rmdir, ps -ef, pstree. Rev: 1.22 Raúl Durán Dı́az, Juan Ignacio Pérez Sanz 3. Sistemas operativos 33 / 33