Download Tema1 - Computer Vision Group
Document related concepts
Transcript
Sistemas Operativos Tema 1 Introducción Contenido • • • • • • • • • • Arranque del computador. Concepto y funciones del sistema operativo. Componentes y estructura de un sistema operativo. Gestión de procesos. Comunicación y sincronización de procesos. Gestión de memoria. Gestión de E/S. Gestión de archivos y directorios. Seguridad y protección. Activación del sistema operativo. Sistemas operativos: una visión aplicada 1 © J. Carretero, F. García, P. de Miguel, F. Pérez Arranque del computador • El arranque de una computadora tiene dos fases: Arranque del hardware y arranque del Sistema Operativo (SO). • El resumen de actividades son: – Iniciador ROM: • Test de hardware. • Carga de memoria del cargador del SO. – Control del cargador (boot) del SO: • Carga de memoria de las componentes del SO. – Inicialización bajo residente del SO: • • • • Test del sistema de archivos. Creación de estructuras de datos internas. Completa la carga del SO residente. Creación de procesos login. • Puesta en fase normal de funcionamiento del SO. Sistemas operativos: una visión aplicada 2 © J. Carretero, F. García, P. de Miguel, F. Pérez Iniciador ROM • • El hardware proporciona una memoria permanentemente grabada llamada memoria ROM. Existe un mapa de memoria permanente llamada Iniciador ROM con tres funciones: 1. 2. 3. – – Comprobación del sistema y detectar sus características: tamaño de memoria principal, periféricos instalados, etc. Fase de lectura y almacenamiento en memoria del programa cargador del SO. Dar el control al programa cargador del SO. El cargador es una operación combinada de lectura de un programa almacenado en el periférico y almacenarlo en el programa principal. El iniciador ROM es independiente del SO. Sistemas operativos: una visión aplicada 3 © J. Carretero, F. García, P. de Miguel, F. Pérez Arranque del computador • El Reset carga valores predefinidos en registros • Cargador de Procesos (CP) dirección de arranque del cargador ROM • Se ejecuta el cargador ROM del sistema – Test del sistema – Trae a memoria el boot del SO Unidad de Memoria Dirección 0 2.047 Unidad de Memoria Celdas Dirección Celdas 0 Zona ROM 1.046.528 1.048.575 1.048.575 Zona ROM • En el caso del PC la ROM contiene, además, software de E/S (BIOS) Sistemas operativos: una visión aplicada 4 © J. Carretero, F. García, P. de Miguel, F. Pérez Ubicación del sistema operativo • El SO está almacenado en el disco. Programa cargador (identificador) Disco Sistema Operativo • El cargador o Boot se encuentra en los primeros sectores del disco y tiene tamaño prefijado. • Existe un convenio entre el inicializador ROM y el SO. La máquina permite diversos SO. • El cargador del SO incluye una posición prefijada por el iniciador ROM. Esto permite verificar al iniciador ROM si en tal zona se encuentra el programa cargador. Sistemas operativos: una visión aplicada 5 © J. Carretero, F. García, P. de Miguel, F. Pérez Arranque del sistema operativo • El cargador ROM carga el sector de boot del SO y le da control • El boot del SO carga el SO residente y da control al programa de arranque del SO, que: – Comprueba el hardware – Comprueba el sistema de ficheros – Establece las tablas del SO – Crea procesos (según el tipo de SO) • Proceso INIT • Procesos o tareas del sistema (demonios) • Procesos de login (uno por terminal) – Tras la autenticación, el proceso login se convierte en shell Sistemas operativos: una visión aplicada 6 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido • Arranque del computador. • Concepto y funciones del sistema operativo. • • • • • • • • Componentes y estructura de un sistema operativo. Gestión de procesos. Comunicación y sincronización de procesos. Gestión de memoria. Gestión de E/S. Gestión de archivos y directorios. Seguridad y protección. Activación del sistema operativo. Sistemas operativos: una visión aplicada 7 © J. Carretero, F. García, P. de Miguel, F. Pérez Concepto y funciones del sistema operativo • Un programa que actúa como intermediario entre el usuario de un computador y el hardware del mismo • Objetivos del sistema operativo: – Ejecutar programas y facilitar la solución de los problemas del usuario – Hacer un uso conveniente del computador • Usar el computador de forma eficiente • Proporcionar una máquina virtual extendida Sistemas operativos: una visión aplicada 8 © J. Carretero, F. García, P. de Miguel, F. Pérez Funciones del sistema operativo • Gestor de recursos (UCP, memoria, ...) – Asignación y recuperación de recursos: • • • • Control de asignación y liberación de programas. Prioridades entre programas. Recuperación de recursos y gestión de la memoria disponible. Detectar si el programa ha terminado o no es necesario. – Protección de los usuarios: • Asegurar la confidencialidad de la información y que unos trabajos no interfieran a otros. – Contabilidad/monitorización: • Medir la cantidad de recursos en uso. • Conocer la carga de utilización de cada recurso y por cada usuario. • La monitorización mide la carga de componentes del sistema. – Soporte de usuario. Sistemas operativos: una visión aplicada 9 © J. Carretero, F. García, P. de Miguel, F. Pérez Funciones del sistema operativo • Máquina extendida (servicios): – Provee un conjunto de servicios o llamadas al sistema. – Posee servicios de software que permiten ejecutar de forma cómoda y protegida ciertas operaciones. • Cuatro clases de servicios: – – – – Ejecución de programas (procesos) Órdenes de E/S Operaciones sobre archivos Detección y tratamiento de errores • Ejecución de programas: – Servicios para ejecutar, parar o abortar programas. – Servicios para conocer y modificar las condiciones de ejecución, para comunicar y sincronizar con otros programas. – Proceso: programa en ejecución. Se traduce el programa a código máquina y es almacenado. El SO crea un proceso para ejecutar el programa. Varios procesos pueden estar ejecutando el mismo programa. Sistemas operativos: una visión aplicada 10 © J. Carretero, F. García, P. de Miguel, F. Pérez Funciones del sistema operativo • Órdenes de E/S: – La programación de operaciones de E/S es muy compleja y dependiente del hardware especifico. – Los servicios del SO ofrecen un alto nivel de abstracción de forma que el usuario no tenga que preocuparse por esos detalles. • Operaciones sobre archivos: – Creación, borrado, renombrado, apertura, escritura y lectura. • Detección y tratamiento de errores: – Tratar las condiciones de error que detecte el hardware. – Algunos errores: errores en las operaciones E/S, desbordamientos y violaciones de memorias, códigos de instrucción prohibidos, etc. Sistemas operativos: una visión aplicada 11 © J. Carretero, F. García, P. de Miguel, F. Pérez Funciones del sistema operativo • Interfaz de usuario: – El módulo del sistema que permite que los usuarios dialoguen de forma iteractiva con el sistema es el interprete de comandos o shell. – – Shell: Se comporta como un bucle infinito realizando las siguiente sequencia: • • • – Espera la orden del usuario. En el acaso de interfaz textual, el shell esta pendiente de la línea de comandos, y en interfaz gráfica de los eventos que se manipulan por el usuario. Analiza la orden y emplea los servicios necesarios. Concluida la orden vuelve a la espera. Casi todos los intérpretes de mandatos se pueden ejecutar como archivos de mandatos o scripts, que recojen funciones de control de flujo como for, if, etc.... Sistemas operativos: una visión aplicada 12 © J. Carretero, F. García, P. de Miguel, F. Pérez Concepto de usuario y grupo de usuarios • El usuario es una persona autorizada a usar un sistema informático. • Se autentifica con su nombre y contraseña. • El SO tiene un numero de cuentas con identificador (user identifier (uid)) y perfil. • Existe un usuario privilegiado denominado superusuario o administrador sin restricciones. • Los usuarios se organizan por grupos y todo usuario debe pertenecer a un grupo. Dichos grupos utilizan su propio modo de protección pudiendo ser distintos los derechos del usuario de los del grupo al que pertenece. Sistemas operativos: una visión aplicada 13 © J. Carretero, F. García, P. de Miguel, F. Pérez Niveles del sistema operativo • El nucleo o kernel es la capa más cerca al hardware. Este nivel suministra la funcionalidad básica y es muy permisivo. • La capa de servicios ofrece un interfaz de programación o API (Application Programming Interface). • El interprete de mandatos o shell suministra un interfaz para que el usuario dialogue con el ordenador. U su a rio s P ro g ra m a s S h e ll S e rv ic io s N ú c le o A P I S iste m a o p e ra tiv o H a rd w a re Sistemas operativos: una visión aplicada 14 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido • Arranque del computador. • Concepto y funciones del sistema operativo. • Componentes y estructura de un sistema operativo. • • • • • • • Gestión de procesos. Comunicación y sincronización de procesos. Gestión de memoria. Gestión de E/S. Gestión de archivos y directorios. Seguridad y protección. Activación del sistema operativo. Sistemas operativos: una visión aplicada 15 © J. Carretero, F. García, P. de Miguel, F. Pérez Componentes del SO • Un sistema operativo esta formado por tres capas: el núcleo, los servicios y el interprete de mandatos o shell. • El núcleo es la parte del sistema operativo que interacciona directamente con el hardware. • Las funciones del núcleo se centran en la gestión de recursos, como el procesador, tratamiento de interrupciones y funciones básicas de manipulación de memoria. Usuarios Programas de usuario Shell 1 Win 32 Shell 2 POSIX Gestión de Seguridad Comunicac. Gestión de Gestión de Gestión de y archivos y y procesos memoria la E/S directorios protección sincroniz. Varias API Sistema operativo Núcleo Hardware Sistemas operativos: una visión aplicada 16 © J. Carretero, F. García, P. de Miguel, F. Pérez Componentes de un SO • Los servicios se suelen agrupar según su funcionalidad en varios componentes. Cada uno de los cuales se ocupa de las siguientes funciones: – Gestión de procesos. Creación, planificación y destrucción de procesos. – Gestión de memoria. Componente encargada de saber que zonas de memoria están ocupadas, así como asignación y liberación de memoria. – Gestión de la E/S. Se ocupa de facilitar el manejo de dispositivos periféricos. – Gestión de archivos y directorios. Se encarga del manejo de archivos y directorios y de la administración de almacenamiento secundario. – Comunicación y sincronización entre procesos. Encargada de ofrecer mecanismos para que los procesos puedan comunicarse y sincronizarse. – Seguridad y protección. Este componente garantiza la identidad de los usuarios y define los recursos del sistemas que son permitidos a cada usuario. Sistemas operativos: una visión aplicada 17 © J. Carretero, F. García, P. de Miguel, F. Pérez Estructura del sistema operativo • • • Un SO es un programa muy grande y complejo compuesto por las componentes que hemos visto. Dos grandes grupos: 1. SO monolíticos. 2. SO estructurados. Sistemas operativos monolíticos: – – – – – Todas sus componentes se encuentran integrados en un solo programa (SO) que se ejecuta en un único espacio de direcciones. Todas la funciones del SO se ejecutan en modo núcleo. Surgen de SO pequeños y sencillos a los que se le añaden funcionalidades. Ej: MS-DOS y UNIX. Dificultad en añadir nuevas funcionalidades y servicios. Cambiar un programa muy grande con miles de líneas de código fuente. Necesidad de dotar de cierta estructura al SO. Sistemas operativos: una visión aplicada 18 © J. Carretero, F. García, P. de Miguel, F. Pérez Estructura del sistema operativo • Sistemas operativos estructurados: Sistemas por capas: – – – – – El SO se organiza como una jerarquía de capas, donde cada capa ofrece un interfaz clara y bien definida a la capa superior y solamente utiliza los servicios de la capa inferior. Modularidad y ocultar la información. Solo se necesita el interfaz que ofrece la capa anterior. Las capas se pueden ir construyendo y depurando por separado. Ej: SO THE [Dijkstra 1968], SO formado por 6 capas. SO OS/2 [Deitel, 1994] descendiente del MS-DOS. Modelo cliente-servidor: – – El enfoque consiste en implementar la mayor parte de los servicios y funciones del SO en procesos de usuario, dejando sólo una pequeña parte del sistema ejecutando en modo núcleo. A esta parte se le denomina micronúcleo y al resto de las funciones se les denomina servidores. Sistemas operativos: una visión aplicada 19 © J. Carretero, F. García, P. de Miguel, F. Pérez Estructura cliente-servidor • • Cada una de las partes del SO pueden desarrollarse por separado. Las gestiones del micronúcleo suelen ser gestión de interrupciones, gestión básica de proceso y de memoria y servicios de comunicación entre procesos. Procesos cliente API API Procesos servidores Servidor de Servidor Servidor de Servidor de Servidor de archivos y Servidor de de Seguridad procesos memoria la E/S directorios Comunicac. Micronúcleo Modo usuario Modo núcleo Hardware • El proceso usuario llamado cliente, solicita el servicio al proceso servidor que puede requerir a su vez servicios de otros servidores (Ej, servidor de memoria. Sistemas operativos: una visión aplicada 20 © J. Carretero, F. García, P. de Miguel, F. Pérez Estructura cliente-servidor • Desventajas: presentan una mayor sobrecarga en el tratamiento de servicios monolíticos. Las distintas componentes se realizan en espacios de direcciones diferentes. • MIMIX [Tanenbaum, 1998], Mach [Accetta, 1996] y Amoeba [Mullender, 1990] son ejemplos que siguen este modelo. Windows NT también sigue esta filosofía de diseño aunque con más servidores. Sistemas operativos: una visión aplicada 21 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido • Arranque del computador. • Concepto y funciones del sistema operativo. • Componentes y estructura de un sistema operativo. • Gestión de procesos. • • • • • • Comunicación y sincronización de procesos. Gestión de memoria. Gestión de E/S. Gestión de archivos y directorios. Seguridad y protección. Activación del sistema operativo. Sistemas operativos: una visión aplicada 22 © J. Carretero, F. García, P. de Miguel, F. Pérez Gestión de procesos • Un proceso es un programa en ejecución. De forma más precisa, se puede definir un proceso como la unidad de procesamiento gestionada por un sistema operativo. • Un programa no es más que un conjunto de instrucciones máquina, mientras que un proceso surge cuando un programa se pone en ejecución. • Un proceso necesita recursos, tales como UCP, memoria, ficheros, etc., para llevar a cabo su tarea. • El SO tiene la responsabilidad de gestionar los siguientes aspectos de procesos: – Creación y destrucción. – Suspensión y reanudación. – Asignación y mantenimiento de los recursos del proceso. – Proporcionar mecanismos de sincronización y comunicación. – Gestionar los interbloqueos. Sistemas operativos: una visión aplicada 23 © J. Carretero, F. García, P. de Miguel, F. Pérez Elementos de un proceso Código y datos Registros generales Mapa de E/S PC BCP SP Estado Mapa de Memoria – Al contenido de los segmentos de memoria en los que reside el código y los datos del proceso se le denomina imagen de memoria. – Durante ejecución se cambia los registros del modelo de programación de la computadora. – El contenido de los registros del modelo de programación es lo que se entiende como estado del procesador. Sistemas operativos: una visión aplicada 24 © J. Carretero, F. García, P. de Miguel, F. Pérez Gestión de procesos. • El sistema operativo mantiene por cada proceso una serie de estructuras de información que permite identificar las características de éste, así como los recursos que tiene asignados. • El bloque de control del proceso (BCP) incluye entre otra información el estado de los registros del proceso, cuando no se está ejecutando. • Dependiendo del número de procesos y de usuarios que puedan ejecutar simultaneamente un SO puede ser: – Monotarea o monoproceso. – Multitarea o multiproceso. El SO gestiona los procesos. – Monousuario. Soporta un solo usuario. – Multiusuario. Soporta diversos usuarios a la vez desde varios terminales. Los sistemas multiusuario reciben el nombre de tiempo compartido, porque el SO debe repartir el tiempo entre los usuarios. Sistemas operativos: una visión aplicada 25 © J. Carretero, F. García, P. de Miguel, F. Pérez Servicios de procesos • Crear un procesos – A partir de un proceso padre (UNIX). El hijo es una copia exacta del proceso padre. – A partir de un archivo ejecutable (Windows NT). • Ejecutar un proceso – Se pueden ejecutar de dos formas: batch e iterativa. – Un proceso batch no está asociado a ningún terminal. Deberá tomar sus datos de entrada de un fichero y depositar sus resultados en otros. Ej: gestión de nóminas. – Un proceso en modo iterativo está asociado a un terminal, por el que recibe la información del usuario y contesta con resultados. Ej: edición. • Terminar la ejecución de un proceso – Se termina de ejecutar el programa. – Se produce una condición de error en su ejecución. – Otro proceso o el usuario deciden que ha de terminar. • Muerte del proceso – Cambiar el programa que ejecuta un proceso por otro programa almacenando en disco. Sistemas operativos: una visión aplicada 26 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido • • • • Arranque del computador. Concepto y funciones del sistema operativo. Componentes y estructura de un sistema operativo. Gestión de procesos. • Comunicación y sincronización de procesos. • • • • • Gestión de memoria. Gestión de E/S. Gestión de archivos y directorios. Seguridad y protección. Activación del sistema operativo. Sistemas operativos: una visión aplicada 27 © J. Carretero, F. García, P. de Miguel, F. Pérez Comunicación y sincronización entre procesos • Los procesos son entes independientes y aislados, donde por razones de seguridad no deben interferir unos con otros. • En trabajos complejos, varios procesos que cooperan entre si deben comunicarse para transmitirse datos y órdenes, además de sincronizar la ejecución de sus acciones. • Los mecanismos básicos de comunicación a través de cadenas de bytes deben de permitir la interpretación del mensaje. • Deben ponerse de acuerdo en la longitud y el tipo de datos utilizados. Proceso de Usuario Proceso de Usuario SO UN COMPUTADOR Sistemas operativos: una visión aplicada Proceso de Usuario Proceso de Usuario SO SO DOS COMPUTADORES 28 © J. Carretero, F. García, P. de Miguel, F. Pérez Servicios de comunicación y sincronización • Dependiendo del servicio utilizado, la comunicación se limita a procesos de una máquina (procesos locales) o puede involucrar a proceso de máquinas distintas (proceso remotos). • Servicios de comunicación: – – – – Crear el mecanismo de comunicación Enviar datos a un proceso Recibir datos de un proceso Destruir el servicio de comunicación • La comunicación puede ser síncrona o asíncrona. • En comunicación síncrona el emisor ha de estar en el servicio de enviar y el receptor de recibir. Uno esta en espera a que el otro ejecute. • En comunicación asíncrona el emisor no espera a que el receptor solicite el servicio. Esto obliga al SO a un almacenamiento intermedio para guardar la información hasta que el receptor la solicite. • Servicios de sincronización – Crear el mecanismo de sincronización – Bloquear un proceso hasta que ocurra un evento – Despertar a un proceso bloqueado – Destruir el mecanismo de sincronización Sistemas operativos: una visión aplicada 29 © J. Carretero, F. García, P. de Miguel, F. Pérez Tipos de comunicación • Comunicación síncrona – Los dos procesos han de ejecutar los servicios de comunicación al mismo tiempo Proceso B Avanza la ejecución Proceso A Proceso B Proceso A enviar Espera recibir recibir enviar El proceso A espera al B Espera El proceso B espera al A • Comunicación asíncrona – Los dos procesos no tiene que ejecutar los servicios de comunicación al mismo tiempo Sistemas operativos: una visión aplicada 30 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido • • • • • Arranque del computador. Concepto y funciones del sistema operativo. Componentes y estructura de un sistema operativo. Gestión de procesos. Comunicación y sincronización de procesos. • Gestión de memoria. • • • • Gestión de E/S. Gestión de archivos y directorios. Seguridad y protección. Activación del sistema operativo. Sistemas operativos: una visión aplicada 31 © J. Carretero, F. García, P. de Miguel, F. Pérez Gestión de memoria • Memoria: vector enorme de palabras o bytes, cada uno con su propia dirección. – Compartido por UCP y dispositivos E/S. – Volátil: pierde su contenido si el sistema falla. • El SO tiene la responsabilidad de gestionar los siguientes aspectos de la memoria: – – – – – Asignar memoria a los proceso para crear su imagen de memoria. Mantener un mapa de las partes de memoria en uso y saber quién las está usando. Decidir qué procesos se deben cargar, y dónde, cuando hay memoria disponible. Asignar y liberar espacio de memoria cuando sea necesario. Tratar errores de acceso a memoria, evitando que unos procesos interfieran en la memoria de otros. – Ofrecer servicios para que los procesos puedan compartir memoria. – Gestionar la jerarquía de memoria y tratar los fallos de página con la memoria virtual Sistemas operativos: una visión aplicada 32 © J. Carretero, F. García, P. de Miguel, F. Pérez Servicios de gestión de memoria • Solicitar memoria: Aumenta el espacio de datos de la imagen de memoria del proceso. El SO satisface esta petición siempre que tenga recursos. En general, el sistema operativo devuelve un apuntador de la nueva memoria. • Liberar memoria: Este servicio sirve para devolver trozos de memoria del proceso. El SO recupera el recurso liberado y lo añade a la lista de recursos libres. • Compartir memoria: El gestor de memoria se encarga de ofrecer servicios que permiten que los procesos puedan comunicarse utilizando un segmento de memoria compartida. Sistemas operativos: una visión aplicada 33 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido • • • • • • Arranque del computador. Concepto y funciones del sistema operativo. Componentes y estructura de un sistema operativo. Gestión de procesos. Comunicación y sincronización de procesos. Gestión de memoria. • Gestión de E/S. • Gestión de archivos y directorios. • Seguridad y protección. • Activación del sistema operativo. Sistemas operativos: una visión aplicada 34 © J. Carretero, F. García, P. de Miguel, F. Pérez Gestión de E/S • El gestor de E/S debe alcanzar los siguientes objetivos: – Facilitar el manejo de dispositivos periféricos. Para ello debe ofrecer una interfaz sencilla, uniforme y fácil de utilizar entre los dispositivos, y gestionar los errores que se pueden producir en el acceso a los mismos. – Ofrecer mecanismos de protección que impidan a los usuarios acceder sin control a los dispositivos periféricos. • El gestor de E/S está formado por: – Un sistema global de almacenamiento intermedio en memoria. – Manejadores genéricos, uno por cada clase, de dispositivos. – Manejadores específicos para cada dispositivo. • Almacenamiento secundario no volátil en dispositivos rápidos de E/S (discos, NAD, etc.) como respaldo de la memoria. Sistemas operativos: una visión aplicada 35 © J. Carretero, F. García, P. de Miguel, F. Pérez Servicios de E/S • El SO tiene la responsabilidad de gestionar los siguientes aspectos de la E/S y el almacenamiento secundario: – – – – – – Traducir peticiones a formato de manejador. Copiar memoria de/a memoria a/de controlador. Controlar operaciones por DMA. Controlar dispositivos de E/S serie: teclado, ratón, etc. Asignación y liberación de espacio. Planificación de accesos a los dispositivos. • Servicios orientados a caracteres – Impresoras, terminales • Servicios orientados a bloques – La operación de E/S se hace sobre un bloque de información de un número fijo de caracteres – Discos Sistemas operativos: una visión aplicada 36 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido • • • • • • • Arranque del computador. Concepto y funciones del sistema operativo. Componentes y estructura de un sistema operativo. Gestión de procesos. Comunicación y sincronización de procesos. Gestión de memoria. Gestión de E/S. • Gestión de archivos y directorios. • Seguridad y protección. • Activación del sistema operativo. Sistemas operativos: una visión aplicada 37 © J. Carretero, F. García, P. de Miguel, F. Pérez Gestión de archivos y directorios • Archivo: conjunto de información lógicamente relacionada y definida por su creador. • Directorio: conjunto de identificadores lógicos de archivos y su relación con identificadores internos del SO. • Archivos frecuentes: programas (fuentes y ejecutables) y datos. • El SO tiene la responsabilidad de gestionar los siguientes aspectos del servicio de archivos: – Creación y borrado de archivos y directorios. – Primitivas para manipular archivos y directorios. – Proyectar los ficheros sobre almacenamiento secundario. – Hacer respaldo de archivos sobre dispositivos estables y no volátiles. Sistemas operativos: una visión aplicada 38 © J. Carretero, F. García, P. de Miguel, F. Pérez Visión lógica del sistema de archivos Visión lógica Sistemas operativos: una visión aplicada Visión física 39 © J. Carretero, F. García, P. de Miguel, F. Pérez Servicios de archivos • Un archivo es una unidad de almacenamiento lógico no volatil que agrupa un conjunto de información relacionada bajo el mismo nombre. • Entre las informaciones más usuales en un archivo cabe destacar: – Tipo de archivo (datos, ejecutable, etc...) – Propietario del archivo (identificador de usuario y grupo del usuario) – Tamaño del fichero – Instante de creación, última modificación, último acceso. – Derechos de acceso. • La solución más común en su visión lógica es tratarlo como un vector de bytes o caracteres. • La ventaja de esta visión en vector es su flexibilidad, puesto que no supone ninguna estructura especifica interna del archivo. • La visión lógica supone un puntero a posición. Este puntero permite hacer operaciones de lectura y escritura consecutivas si tener que indicar la posición de la operación. Sistemas operativos: una visión aplicada 40 © J. Carretero, F. García, P. de Miguel, F. Pérez Visión lógica de un archivo • La visión física está formada por los elementos físicos del periférico que soportan al archivo. • En discos supone la enumeración de los bloques de disco que supone el archivo. • Debe existir una estructura de información que recoja la composición física de cada archivo que se denomina descripción física del archivo. • Esta estructura es la FAT en MS-DOS y el nodo-i en UNIX. Estas estructuras han de residir en el propio periférico para poder ser autocontenido y transportarse de un sistema a otro. Visión Lógic a Posición Sistemas operativos: una visión aplicada 41 © J. Carretero, F. García, P. de Miguel, F. Pérez Visión física de un archivo Archivo A Bloques: 13 20 1 8 3 16 19 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Bloques de la Unidad de Disco Sistemas operativos: una visión aplicada 42 © J. Carretero, F. García, P. de Miguel, F. Pérez Servicios de archivos • • • • • Crear un archivo: interpretación de que el nombre es correcto y el usuario puede hacer la operación solicitada. Abrir un archivo: comprueba que el fichero existe, que el usuario tiene derechos de acceso, y trae a memoria información del objeto. Escribir y leer: utilizan el identificador, descriptor o manejador del archivo. Lectura: se expecifica el identificador, la posición de memoria y la cantidad de información a leer. Idem Escribir. Cerrar un archivo: elimina el identificador temporal obtenido en la apertura y libera los recurso de memoria ocupados. Borrar un archivo: Se borra su nombre del correspondiente directorio y la información auxiliar que se necesita para ofrecer una visión lógica de una archivo. !Se crea el archivo !Se abre: se genera un descriptor de archivo !Se escribe y lee (el archivo puede crecer) !Se cierra !Se borra Sistemas operativos: una visión aplicada 43 © J. Carretero, F. García, P. de Miguel, F. Pérez Esquema jerárquico de un directorio Directorio raíz Textos Div11 .Div2 Edit Apl1 Tipo Distrib Sec1 Sec2 Apl2 Apl3 Person Client Sec1 Des Sec2 Product Almac Simin Sec3 PR1 Activ PR2 Mant Pasiv Identificador de directorio Identificador de fichero PR3 • En un directorio se relaciona de forma unívoca un nombre con un archivo. • El servicio de directorios también presenta una visión lógica y una visión física. • La visión lógica consiste en el esquema jerárquico de nombres mostrado en la figura. • Directorio raiz, camino absoluto, camino relativo /Textos/Tipo/Sec1/Ap11 Sistemas operativos: una visión aplicada 44 © J. Carretero, F. García, P. de Miguel, F. Pérez Servicios de directorios • • • • Permite una gestión distribuida de los nombres para garantizar que no existan nombres repetidos. La visión física de directorios consiste en unas estructuras de información que permiten relacionar cada nombre lógico con la descripción física del correspondiente archivo. Se trata de una tabla NOMBRE-IDENTIFICADOR por cada subdirectorio. El IDENTIFICADOR es una información que permite localizar la descripción física del archivo. Servicios del directorio: – Crear: Lo crea y lo sitúa en el árbol de directorios. – Borrar: Elimina el objeto de forma que no pueda ser ya accesible y borra su entrada del árbol de directorios. – Abrir: Abre un directorio para leer los datos del mismo. Esto es necesario para acceder a su contenido. Devuelve al usuario un identificador, para su manipulación. – Leer: Extrae la siguiente entrada y devuelve una estructura de datos como la que define la entrada de directorios. – Cerrar: Cierra el directorio, liberando el identificador devuelto en la operación de apertura, así como los recursos de memoria y del SO relativos al mismo. Sistemas operativos: una visión aplicada 45 © J. Carretero, F. García, P. de Miguel, F. Pérez Sistema de archivos • Se denomina sistema de archivos al conjunto de archivos incluidos en una unidad de disco. • Se denomina metainformación a toda la información auxiliar que es necesario para mantener un volumen. • La metainformación esta compuesta por los siguientes elementos: – Estructura física de los archivos (nodos-i en UNIX o FAT en MS-DOS). – Directorios (archivos que contienen las tablas nombre-puntero). – Estructura física del sistema de archivos (superbloque en UNIX). – Estructura de información de bloques y nodos-i libres (mapas de bits). • Cada SO organiza las particiones del disco de formas diferentes, repartiendo el espacio disponible entre: el programa de carga (boot) del sistema operativo, la metainformación y los datos. Sistemas operativos: una visión aplicada 46 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido • • • • • • • • Arranque del computador. Concepto y funciones del sistema operativo. Componentes y estructura de un sistema operativo. Gestión de procesos. Comunicación y sincronización de procesos. Gestión de memoria. Gestión de E/S. Gestión de archivos y directorios. • Seguridad y protección. • Activación del sistema operativo. Sistemas operativos: una visión aplicada 47 © J. Carretero, F. García, P. de Miguel, F. Pérez Seguridad y protección • Protección: controlar accesos a los recursos de usuario y sistema. • El servidor de protección debe: – Distinguir entre uso autorizado y no autorizado. – Especificar los controles de acceso a llevar a cabo. – Proporcionar métodos de control de acceso. • Seguridad: proteger al sistema de un uso indebido. • La seguridad reviste dos aspectos, uno es la de garantizar la identidad de los usuarios y otro es definir lo que puede hacer cada uno de ellos. • El primer aspecto se trata bajo el termino autentificador, mientras que el segundo se hace mediante los privilegios. • Los privilegios especifican los recursos a los que puede acceder cada usuario. Se suele organizar la información en grupos, asignando privilegios a los grupos. • El servidor de seguridad debe: – Autenticar a los usuarios. – Evitar amenazas al sistema (gusanos, virus, piratas, fuego, etc.) – Evitar la intercepción de comunicaciones: cifrado, canales seguros, etc. Sistemas operativos: una visión aplicada 48 © J. Carretero, F. García, P. de Miguel, F. Pérez Contenido • • • • • • • • • Arranque del computador. Concepto y funciones del sistema operativo. Componentes y estructura de un sistema operativo. Gestión de procesos. Comunicación y sincronización de procesos. Gestión de memoria. Gestión de E/S. Gestión de archivos y directorios. Seguridad y protección. • Activación del sistema operativo. Sistemas operativos: una visión aplicada 49 © J. Carretero, F. García, P. de Miguel, F. Pérez Activación de los servicios del SO • El SO es un servidor que esta en espera a que se le encargue un trabajo. • Fuentes de las peticiones. – Mandatos de los usuarios interpretados por el shell. – Llamadas al sistema emitidas por los programas. – Interrupciones producidas por los periféricos. – Condiciones de excepción o error del hardware. • Los mecanismos para romper la secuencia lineal de ejecución son dos: las instrucciones de bifurcación y las interrupciones. • El primero de estos mecanismos no sirve para invocar al SO, puesto que el proceso se ejecuta en el nivel de usuario y el SO ha de ejecutar a nivel de núcleo y en espacios de direcciones distintos. • Por tanto, la activación del sistema operativo solamente se realiza mediante el mecanismo de interrupciones. • Cuando un programa en un lenguaje de alto nivel como C, la solicitud del servicio al SO se hace con una llamada a función. Sistemas operativos: una visión aplicada 50 © J. Carretero, F. García, P. de Miguel, F. Pérez Avanza la ejecución Fases en la activación del SO Proceso A Se solicita el SO Salva el estado del proceso A Sistema operativo Realiza la función pedida Planificador Activador Proceso B Sistemas operativos: una visión aplicada 51 © J. Carretero, F. García, P. de Miguel, F. Pérez Servicios del SO: llamadas al sistema • Interfaz entre aplicaciones y SO. – Generalmente disponibles como funciones en ensamblador. – Actualmente en otros lenguajes de alto nivel (C, Bliss, …). • Esta funciones se componen de: – Una parte inicial que prepara los parámetros del servicio de acuerdo con la forma en que los espera el SO. – La instrucción TRAP, que genera una interrupción para dar paso al SO. – La parte final que recupera los parámetros de contestación del SO, para devolverlos al programa que los llamó. • Servicios típicos del sistema operativo – – – – – Gestión de procesos Gestión de procesos ligeros Gestión de señales, temporizadores Gestión de memoria Gestión de ficheros y directorios Sistemas operativos: una visión aplicada 52 © J. Carretero, F. García, P. de Miguel, F. Pérez Paso de los parámetros a las llamadas • Ejemplos de llamada – read: permite leer datos de un fichero – fork: permite crear un nuevo proceso • Tres métodos genéricos para pasar parámetros a las llamadas al sistema: – En registros. – En una tabla de memoria, cuya dirección se pasa al SO en un registro. – Poner los parámetros en la pila del programa y dejar que el SO los extraiga. • Cada SO proporciona sus propias llamadas al sistema: – Estándar POSIX en UNIX y LINUX. – Win32 en Windows NT. Sistemas operativos: una visión aplicada 53 © J. Carretero, F. García, P. de Miguel, F. Pérez Servicios del SO • Los servicios se programan mediante sentencias de un lenguaje (p.e. C) • Estas sentencias son como llamadas a función • Se convierten, mediante una rutina de biblioteca de sistemas en un conjunto de instrucciones de máquina que terminan con una instrucción de trap • El trap, como toda interrupción es tratada por el SO • El SO realiza el servicio pedido y devuelve un valor • Ejemplo: int fork() { int r; LOAD R8, FOR_SYSTEM_CALL TRAP LOAD r, R9 return r; } Sistemas operativos: una visión aplicada 54 © J. Carretero, F. García, P. de Miguel, F. Pérez Paso de llamadas al sistema MEMORIA PROCESO N MODO USUARIO PROCESO 2 Rutina de biblioteca PROCESO 1 LOAD R8, FORK_SYSTEM_CALL TRAP LOAD r, R9 1 2 R8 6 FORK_SYSTEM_CALL 7 3 4 SERVICIO fork LOAD R9, resultado Retorno del TRAP TABLA R9 Resultado 5 MODO NÚCLEO SISTEMA OPERATIVO PROCESO DE USUARIO RUTINA DE BIBLIOTECA PROCESO DE USUARIO Sistemas operativos: una visión aplicada TRAP TRATAMIENT0 DE INTERRUP. RUTINA DE SERVICIO SISTEMA OPERATIVO HW 55 © J. Carretero, F. García, P. de Miguel, F. Pérez Ejemplo • Si el programa quiere escribir datos en un archivo, el código del programa de usuario hace un CALL a la rutina en código máquina write, con código similar al mostrado con fork. • Se preparan los parámetros de la operación escritura y se ejecuta una instrucción TRAP. • El SO identifica la interrupción y la trata como una solicitud de servicio. • El SO ejecuta la rutina que lanza la pertinente operación E/S. • Se ejecuta el planificador y la activación da paso a la ejecución de otro proceso. • Cuando el periférico termina la operación, su controlador genera una solicitud de interrupción que es tratada por el SO. • En este momento la rutina de código máquina write recibe los parámetros que ha devuelto el SO y ejecuta un RET para volver al programa de usuario que la llamó. Sistemas operativos: una visión aplicada 56 © J. Carretero, F. García, P. de Miguel, F. Pérez