Introducción. Sistemas Operativos. Tema 1. Sistemas Operativos (IS11) – Tema 1 1 Concepto y definición de Sistema Operativo. • Sistema informático (S.I.) se divide en cuatro partes: • • • • Hardware. Sistema Operativo. Programas de Aplicación. Usuarios. Sistemas Operativos (IS11) – Tema 1 2 1 Concepto y definición de Sistema Operativo. • Hardware (Hw): – Proporciona recursos básicos del S.I.: – El procesador, Memoria, Dispositivos E/S). • Sistema Operativo (SO): – Es un programa. – Sirve de intermediario o interfaz entre usuarios y programas de aplicación-hardware. – Puede verse como un entorno para ejecutar programas. • Programas de Aplicación: – Aplicaciones concretas (para resolver los problemas de computación de los usuarios. – Demandan servicios del S.O. mediante llamadas al sistema). • Usuarios: – Entes que hacen uso del computador (personas, otras computadoras y máquinas que pueden hacer un servicio del mismo). Sistemas Operativos (IS11) – Tema 1 3 Concepto y definición de Sistema Operativo. • Objetivos del S.O.: – Incrementar la productividad de usuarios (facilitando el uso). • Proporciona entorno cómodo y abstracción del Hw al usuario. – Optimizar la utilización de los componentes o recursos hardware. Objetivos a menudo contradictorios. • S.O. puede considerarse gestor de recursos (HW y SW) del S.I.. Realiza tareas como: – Decidir quién, cuándo, durante cuánto tiempo se usa un recurso. – Resolver conflictos entre demandas concurrentes de recursos, preservando la integridad del sistema. – Maximizar el rendimiento del S.I.. • Es difícil de definir el concepto de S.O.. Sistemas Operativos (IS11) – Tema 1 4 2 Conceptos básicos. • El S.O. puede considerarse como un interfaz entre Hw y Sw: • La evolución de los S.O. va muy ligada a la del hardware. • Para entender mejor el concepto de S.O.: – Veremos una evolución histórica del desarrollo de los S.O. en los siguientes apartados: • Monitores. • Sistemas Batch (por lotes). • Multiprogramación. • Tiempo Compartido. • Tiempo Real. Sistemas Operativos (IS11) – Tema 1 5 Los Primeros Sistemas. • La máquina desnuda: – Inicialmente sólo existía el hardware del computador (no S.O.). – El desarrollo de programas consistía en: • Traducción manual de instrucciones en binario, octal o hexadecimal. • Arranque del programa cargando el contador de programa con la dirección de la primera instrucción. • El programador (usuario) realizaba el control de dispositivos de manera directa a través de puertos de E/S. • Para extraer los resultados se examinan los contenidos de registros y memoria. • Control interactivo de la ejecución: – El usuario estaba delante. – Vigilaba la existencia de errores en la ejecución. – Si existían podía detener el programa, examinar memoria y registros, depurando el programa en la consola. Sistemas Operativos (IS11) – Tema 1 6 3 Los Primeros Sistemas. – El usuario actuaba de operador del sistema: • Había una lista con los tiempos ocupados y libres. • Se apuntaba en la lista. – Estos sistemas se caracterizaban por una productividad muy baja del usuario y hardware. Sistemas Operativos (IS11) – Tema 1 7 Los Primeros Sistemas. • El procesamiento serie: – Se desarrolla hardware y software adicionales: • Se popularizan lectores de tarjetas, impresoras de líneas y cintas magnéticas. • Se diseñan ensambladores, cargadores y linkers. Se crean bibliotecas de funciones comunes. • Cada dispositivo de E/S tiene características especiales. Se programan subrrutinas especiales, manejadores de dispositivos, (device driver), facilitan tareas tales como escribir o leer un carácter. Sistemas Operativos (IS11) – Tema 1 8 4 Los Primeros Sistemas. • Aparecen compiladores (FORTRAN, COBOL, etc.): – Se facilita la tarea del programador. – Se hace más complejo el funcionamiento del computador. Ejecutar un programa supone: • Montar el compilador, que esta en una cinta. • Cargar el compilador en memoria. • Pasar el programa fuente de la lectora de tarjetas a cinta magnética. • Montar la cinta con el programa. • El compilador pasa el programa fuente a lenguaje ensamblador. • Montar la cinta con el ensamblador. • Montar la cinta con las rutinas de la biblioteca. • Se obtiene el código binario listo para ejecución que se carga en memoria. Sistemas Operativos (IS11) – Tema 1 9 Los Primeros Sistemas. – Existía un forma rudimentaria de S.O.: – Los manejadores de dispositivo. – El cargador: programa que transfiere la información de cinta a memoria e inicia la ejecución del programa. – Sigue existiendo baja productividad del usuario y hardware. Sistemas Operativos (IS11) – Tema 1 10 5 Sistemas por lotes (“batch”): uso de Monitores. • Para reducir el tiempo de preparación de los trabajos: – Se incorpora un operador que trabaja en la consola: • Cuando acaba un proceso comenzaba el siguiente. • Se reducía el tiempo de preparación (operador profesional). • La depuración se hacía con un volcado de memoria y registros fuera de la consola. – Los trabajos con requisitos semejantes se agrupaban en lotes: • Sólo hace falta cargar el compilador una vez. • Las operaciones las sigue haciendo el operador. • Mejora el rendimiento del sistema • Posteriormente, se introduce el secuenciador automático de trabajos, un programa llamado monitor residente (en memoria). Sistemas Operativos (IS11) – Tema 1 11 Monitores. – El monitor residente: • Transfiere automáticamente el control de un programa al proceso, este lo devuelve al monitor y así sucesivamente. • Formado por: interprete de tarjetas de control, cargador de memoria, manejadores de dispositivos de E/S. • Para indicar al monitor qué programa ha de ejecutar se crean unas tarjetas de control: – $JOB 10, 429754, CARLOS HERNANDEZ – $FORTRAN $ASM $RUN $END • El monitor es un S.O. rudimentario. Sistemas Operativos (IS11) – Tema 1 12 6 Operaciones fuera de línea (off-line). • La secuenciación automática de trabajos realizada por un monitor funciona ON-LINE: – La CPU lee de: • La lectora de tarjetas. • La unidad de cinta del sistema. • Problema: La CPU es mucho más rápida que la lectora de tarjetas. – Ejemplo: • Un ensamblador o compilador puede procesar 300 tarj./s. • Un lector de tarjetas rápido puede leer 20 tarj./s. • Para un trabajo de 1200 tarjetas tendríamos: – 60 seg. de lectura de tarjetas. 4 segundos de uso de CPU. – 56 de 60 seg. CPU inactiva. 93,3% del tiempo. Sistemas Operativos (IS11) – Tema 1 13 Operaciones fuera de línea (off-line). • Solución: Operación fuera de línea. – La CPU lee de cintas magnéticas (dispositivos de E/S más rápidos). – Los lectores de tarjetas e impresoras operan fuera de línea. Intercambian sus datos con cintas. Su funcionamiento es independiente de la CPU. Sistemas Operativos (IS11) – Tema 1 14 7 Operaciones fuera de línea (off-line). – Ventajas del funcionamiento off-line: 1.- La CPU depende de la velocidad de cintas (más rápidas). 2.- Los programas usan dispositivos E/S lógicos, para conseguir independencia del hardware (tarjetas, cinta) conectado a la CPU. El sistema utiliza el manejador de dispositivo correspondiente ante una E/S. 3.- Se puede utilizar más de un sistema lector-cinta y cintaimpresora para una misma CPU. Equilibrando velocidades. Sistemas Operativos (IS11) – Tema 1 15 Almacenamiento temporal (buffers y spoolers). • Buffer: – Método para hacer simultánea la E/S de un trabajo con su propio computo. Unidad de entrada Buffer lectura CPU Buffer escritura Unidad de salida • Funcionamiento: – Se lee un elemento a la entrada y se coloca en el buffer. – La CPU está lista y opera con él. – Simultáneamente comienza la próxima lectura y se acumula en el buffer. Sistemas Operativos (IS11) – Tema 1 16 8 Almacenamiento temporal (buffers y spoolers). • Situaciones provocadas por las diferencias relativas entre los tiempos de procesamiento y E/S: 1.- Si la velocidad de procesamiento medio CPU = velocidad de dispositivos, ambos funcionan a medio rendimiento. 2.- Si la CPU es mucho más rápida que los dispositivos o las aplicaciones poseen una gran proporción de operaciones de E/S. La CPU vaciará rápidamente el buffer de entrada y deberá esperar. 3.- Si la CPU es más lenta, o los programas efectúan mucho computo, los buffers de entrada estarán usualmente llenos y los de salida vacíos. Sistemas Operativos (IS11) – Tema 1 17 Almacenamiento temporal (buffers y spoolers). • El manejo de buffers es generalmente una función del sistema operativo: – El monitor residente o los manejadores de dispositivos incluyen buffers del sistema para cada dispositivo de E/S. – Una llamada a la subrrutina del manejador de dispositivo provoca una lectura (transferencia) de o hacia un buffer del sistema. • Spoolers (Simultaneous Peripheral Operation On-Line): – Surge con la aparición de discos que permiten un rápido acceso aleatorio (el disco como buffer de gran tamaño). – La lectora de cintas tenía el problema de que no podrá escribir por un extremo mientras la CPU leía por otro. Sistemas Operativos (IS11) – Tema 1 18 9 Almacenamiento temporal (buffers y spoolers). – El funcionamiento de la técnica de spooling (SpoolSimultaneous Peripherical Operations On-Line). • Se pasa el contenido de las tarjetas a discos. • El S.O. mantiene una tabla que indica la posición de las imágenes de las tarjetas en disco. • Al ejecutar un trabajo, las entradas y salidas se efectúan desde disco. Sistemas Operativos (IS11) – Tema 1 19 Almacenamiento temporal (buffers y spoolers). – Surge una estructura de datos muy importante: • Un depósito de trabajos (job spool). Esto permite al S.O. seleccionar cuál será el siguiente trabajo por ejecutar para así incrementar la utilización de la CPU. Es un primer ejemplo de planificación de trabajos. – Diferencias entre buffers y spoolers: • Buffers: permite el solapamiento de la ejecución de un trabajo con su propia E/S. • Spoolers: permite superponer la E/S y los cálculos de varios trabajos diferentes. Sistemas Operativos (IS11) – Tema 1 20 10 Multiprogramación. • Surge una nueva técnica para obtener un mayor aprovechamiento (rendimiento) de la CPU. – Ejemplo: • En cualquier trabajo que se ejecuta en un determinado momento habrá que esperar a que se introduzca un mandato por el teclado o se realice una operación de E/S. – En un sistema monoprogramado: Durante este tiempo la CPU espera y queda ociosa. – En un sistema multiprogramado: El sistema operativo cambia a otro proceso y lo ejecuta, y así sucesivamente. Sistemas Operativos (IS11) – Tema 1 21 Multiprogramación. • En un sistema operativo multiprogramado necesitaremos: – El sistema conserva varios trabajos en memoria al mismo tiempo para permitir la conmutación. – Para ello se necesita alguna forma de administración de memoria. (gestor de memoria) – Se necesita una planificación de la CPU. Para elegir que trabajo ha de ejecutarse. (gestor de procesos:planificación, cambio de contexto) – Necesita limitar la posibilidad de que un trabajo interfiera a otro. (protección entre procesos) Sistemas Operativos (IS11) – Tema 1 22 11 Tiempo compartido. Posteriormente aparecen: • Sistemas interactivos: – Proporciona comunicación directa entre el usuario y el sistema . – El usuario da instrucciones al S.O. o al programa directamente. – La entrada usualmente se efectúa por un teclado y la salida por una pantalla. • Sistemas de tiempo compartido: – Son una combinación de sistemas interactivos y multiprogramados (se vuelve a la concepción de las primeras máquinas programador-operador pero con mayor productividad del S.I.). – La CPU ejecuta diversas tareas alternando entre ellas con cambios muy frecuentes. – El usuario tiene la sensación de “poseer su propio computador” y puede trabajar interactivamente. Sistemas Operativos (IS11) – Tema 1 23 Sistemas Distribuidos. • Sistemas distribuidos: – Tienen varias CPUs y distribuyen los cálculos entre ellos. – Existen dos esquemas básicos para su construcción. • Sistemas fuertemente acoplados: los procesadores comparten la memoria y un reloj, y la comunicación se lleva a cabo a través de la memoria compartida. • Sistemas débilmente acoplados: los procesadores no comparten ni memoria ni reloj, se comunican a través de líneas de comunicación (canales de alta velocidad o redes de computadoras). Sistemas Operativos (IS11) – Tema 1 24 12 Sistemas Distribuidos. • Varias razones para construir sistemas distribuidos: – Compartición de recursos: • Impresoras, dispositivos de almacenamiento, etc. – Incremento de la velocidad de los cálculos: • Si un trabajo determinado puede dividirse en varios subtrabajos que se ejecutan concurrentemente. Un sistema distribuido permite distribuir instalaciones y ejecutarlos concurrentemente. – Incremento de la fiabilidad: Confiabilidad: • Si falla una instalación en un sistema distribuido, las restantes pueden, en principio, continuar operando. Sistemas Operativos (IS11) – Tema 1 25 Sistemas Distribuidos. • El S.O. de un sistema distribuido debe resolver problemas como los siguientes: – Sincronización y comunicación entre procesadores. – Tolerancia a fallos. – Distribución de trabajo y aprovechamiento del S.I. (distribución de cargas entre diferentes procesadores). Sistemas Operativos (IS11) – Tema 1 26 13 Tiempo real. • Sistemas operativos en tiempo real: – Suelen usarse en el control de actividades. Ejemplos: • Sistemas que controlan experimentos científicos. • Sistemas médicos de visualización. • Sistemas de control industrial. • Algunos sistemas gráficos. – Un sistema operativo en tiempo real tiene restricciones temporales definidas, el procesamiento debe llevarse a cabo dentro de los límites definidos o el sistema fallará. – Las restricciones temporales influyen en los recursos hardware de que normalmente se dispone (no suele haber almacenamiento secundario etc.). – Las características más avanzadas de los sistemas operativos suelen estar ausentes si suponen incertidumbre sobre el tiempo que requerirá una operación. Sistemas Operativos (IS11) – Tema 1 27 Estructura de los sistemas operativos. • Un sistema operativo es un programa complejo: – Para diseñarlo se divide en pequeños módulos (componentes): Cada uno de ellos es una porción bien definida del sistema y tiene una función determinada. – Se crea una interfaz bien definida entre estos módulos. • No todos los sistemas operativos tienen los mismos componentes. Suelen ser comunes los siguientes: – – – – – – – – Administrador de procesos. Administrador de la memoria principal. Administración de almacenamiento secundario. Administrador del sistema de E/S. Administrador de archivos o ficheros. Sistema de protección. Redes (gestor de red). Sistema interprete de comandos. Sistemas Operativos (IS11) – Tema 1 28 14 Estructura de los sistemas operativos. • Administración de procesos: – La idea básica de un proceso es la de un programa en ejecución: • Un programa de usuario de tiempo compartido. • Una tarea del sistema operativo. – En general, se suele pretender que puedan haber varios procesos ejecutandose en el sistema . – Un proceso necesitará determinados recursos para poder ejecutarse: • Tiempo de CPU. • Memoria. • Archivos. • Dispositivos de E/S. Sistemas Operativos (IS11) – Tema 1 29 Estructura de los sistemas operativos. – El sistema operativo realiza las siguientes tareas de administración de procesos: • • • • • • Crear y eliminar los procesos de usuario y sistema. Asignar recursos a los procesos. Suspender y reanudar la ejecución de los procesos. Proporcionar mecanismos de sincronización de procesos. Proporcionar mecanismos de comunicación entre procesos. Proporcionar mecanismos para la prevención de bloqueos (manejo de bloqueos mutuos). Sistemas Operativos (IS11) – Tema 1 30 15 Estructura de los sistemas operativos. • Administración de la memoria principal: – La memoria: “deposito” de datos de acceso rápido, compartido por la CPU y dispositivos de E/S. • La CPU: lee instrucciones de la memoria y escribe y lee datos de la memoria. • Los dispositivos de E/S: leen y escriben datos en memoria mediante DMA • Memoria como sucesión de celdas (bytes, palabras) cada una con su dirección. – Para ejecutar un programa: • Convertir direcciones relativas en absolutas y • Cargarlo en memoria. – Cuando la ejecución del programa termina: • Se debe liberar el espacio en memoria que ocupaba. Sistemas Operativos (IS11) – Tema 1 31 Estructura de los sistemas operativos. – El sistema operativo es responsable de las siguientes tareas de administración de memoria: • Controlar que zonas de memoria (celdas libres y ocupadas) se están usando y quién las usa (habrá varios programas ejecutandose en memoria). • Decidir que procesos se cargaran en memoria cuando haya espacio. • Asignar y recuperar el espacio de memoria. – Existen varias formas de administración de memoria y su eficacia del diseño del hardware del sistema. Sistemas Operativos (IS11) – Tema 1 32 16 Estructura de los sistemas operativos. • Administración del almacenamiento secundario (respaldo a la memoria principal): – Las unidades de almacenamiento secundario (discos): • Almacenan programas que se ejecutarán cargandolos en memoria principal (memoria limitada). • Almacenan datos (puede ser fuente y destino de un proceso). – El sistema operativo realizará tareas de administración de procesos como: • Administración del espacio libre. • Asignación del almacenamiento (asignación y liberación). • Planificación de operaciones sobre discos. Sistemas Operativos (IS11) – Tema 1 33 Estructura de los sistemas operativos. • Administración del sistema de E/S: – Para optimizar la productividad del usuario: • Se ocultan las particularidades del dispositivo hardware de E/S. – Por ejemplo, en UNIX se utiliza un sistema de E/S: • Un sistema de memoria cache (buffer). • Una interfaz general con manejadores de dispositivos. • Manejadores para dispositivos de hardware específicos (utiliza particularidades del dispositivo al cual está asignado). Sistemas Operativos (IS11) – Tema 1 34 17 Estructura de los sistemas operativos. • Administración de archivos: – Pueden haber distintos tipos de dispositivos de almacenamiento: sus características y organización física varían. – El S.O. proporciona una forma lógica y uniforme de almacenamiento de la información. La unidad de almacenamiento es el fichero. – Los archivos o ficheros se organizan en directorios para facilitar su uso. – El S.O. hace las siguientes tareas de administr. de archivos: • La creación y eliminación de archivos. • La creación y eliminación de directorios. • El manejo de operaciones primitivas para manipular archivos y directorios. • La correspondencia entre archivos y almacenamiento secundario (mapeado de archivos entre memoria y al.sec). Sistemas Operativos (IS11) – Tema 1 35 Estructura de los sistemas operativos. • Sistema de protección: – Protección consiste en: • Mecanismos para controlar el acceso de programas, procesos o usuarios a los recursos de un S.I. • Un recurso desprotegido no puede “defenderse “ del uso (o abuso) de un usuario (autorizado o no). • Ejemplo: Permisos de archivos y directorios en UNIX. – Función del SO • Determinar si el acceso está o no permitido • Determinar los controles a realizar Sistemas Operativos (IS11) – Tema 1 36 18 Estructura de los sistemas operativos. • Gestión de Redes: – Concepto de Sistema distribuido: • Puede ser un conjunto de procesadores que no comparten ni reloj. ni memoria. Se comunican a través de una red de comunicaciones. • Permiten el acceso a los recursos entre nodos interconectados que tiene el sistema de forma compartida. – El S.O.: • Suele generalizar el acceso a red como una forma del acceso a archivos. • Los detalles de la red se incluyen en el manejador del interfaz de red. Sistemas Operativos (IS11) – Tema 1 37 Estructura de los sistemas operativos. • Interprete de comandos: – Se suele proporcionar mandatos u ordenes al S.O. por medio de enunciados de control. • Ejemplo: Las tarjetas de control de un monitor residente. – El interprete de mandatos tiene como misión: • Leer u obtener el siguiente mandato. • Ejecutarlo. – Es uno de los programas más importantes del S.O.: • Un interprete fácil de usar hace más agradable al S.I.. al usuario. – Los hay: • Gráficos: Mac, Windows. • Los mandatos se introducen mediante teclado: Los Shells de UNIX. Sistemas Operativos (IS11) – Tema 1 38 19 Estructura de los sistemas operativos. – Los mandatos pueden realizar tareas de: • Administración de procesos. • Manejo de E/S. • Administración de almacenamiento secundario. • Administración de memoria principal. • Acceso al sistema de archivos. • Protección y Redes. Hasta aquí hemos analizado los componentes de un SO. Pasemos a ver la clasificación de los SO en función de su estructura (Taxonomía de los SO) Sistemas Operativos (IS11) – Tema 1 39 Estructura de los sistemas operativos. • Estructura del S.O.: – Los componentes descritos se interconectan entre sí para formar el S.O. – A los componentes que existen y su forma de interconexión se le denomina estructura del S.O. – Tipos de estructuras (monolítica y por capas o jerárquica): • Estructura simple o monolítica: – No hay estructura. – El S.O. se escribe como un conjunto de procedimientos que pueden llamarse todos entre sí cuando lo necesitan. – Cada procedimiento tiene una interfaz bien definida en cuanto a parámetros y resultados. – Dentro del S.O. no hay ocultación de información, todos los procedimientos son visibles para los demás. – Ejemplo: MS-DOS. Sistemas Operativos (IS11) – Tema 1 40 20 Estructura de los sistemas operativos. – Estructura multinivel por capas o jerárquica: • Es una organización modular o por niveles jerárquicos del S.O.: – El nivel inferior o capa 0 sería el hardware. – Una capa o nivel M: • Será un conjunto de programas con sus estructuras de datos o rutinas. • Estos programas pueden usar las rutinas de capas inferiores (M-1, M-2, etc.). • Las rutinas o programas que posee la capa M pueden ser usadas por los programas de las capas superiores (M+1, M+2, etc.) • Los niveles superiores no necesitan conocer cómo se implementan las operaciones de niveles inferiores, sólo lo que hacen). Sistemas Operativos (IS11) – Tema 1 41 Estructura de los sistemas operativos. • Ventajas: – Se facilita la construcción, verificación del S.O. • Fácil mantenimiento y detección de errores, si falla un módulo no se bloquea todo el SO, extensión del SO sencilla • Desventajas: – Se necesita una cuidadosa definición de niveles a priori. ¿Qué se coloca en cada nivel o capa?. Sistemas Operativos (IS11) – Tema 1 42 21 Estructura de los sistemas operativos. – Ejemplos de estructuras por capas: Sistemas Operativos (IS11) – Tema 1 43 Servicios de los sistemas operativos. • Un sistema operativo proporciona un entorno cómodo para la ejecución de programas: – Ofrece ciertos servicios para los programas y sus usuarios. – Varían de un sistema operativo a otro. • Agrupando los servicios en clases comunes: Recursos de ayuda al usuario – Ejecución de programas: • Cargar un programa en memoria y ejecutarlo. • Un programa debe poder terminar su ejecución (normal o anormalmente). – Operaciones de E/S: • El S.O. debe ofrecer la posibilidad de ejecutar operaciones de E/S, ya que, en general, un programa no puede llevarlas a cabo directamente. Sistemas Operativos (IS11) – Tema 1 44 22 Servicios de los sistemas operativos. – Manipulaciones del sistema de archivos: • Los programas necesitan leer y escribir archivos, crearlos y eliminarlos. – Comunicaciones (entre procesos): • Un proceso puede necesitar compartir información con otro: – Entre procesos que se ejecutan en el mismo computador. – Entre procesos que se ejecutan entre distintos computadores unidos por una red. • Puede hacerse a través de memoria compartida o paso de mensajes. (el S.O. mueve paquetes de información entre procesos). Sistemas Operativos (IS11) – Tema 1 45 Servicios de los sistemas operativos. – Detección de errores: • El sistema operativo debe estar pendiente de posibles errores: En el hardware, en la memoria y la CPU o en un programa de usuario. • Emprender una acción adecuada en función del tipo de error. Servicios para asegurar la eficiencia del sistema – Asignación de recursos: • Debe asignar recursos (memoria, CPU, almacenamiento etc.) a cada uno de los usuarios o trabajos que se ejecutan al mismo tiempo (procesos concurrentes). – Contabilidad: • Llevar un control de qué usuarios utilizan el computador, cuantos recursos y de qué tipo. • Las anotaciones tienen fines contables o para recopilar estadísticas de uso. Sistemas Operativos (IS11) – Tema 1 46 23 Servicios de los sistemas operativos. – Protección: • En un sistema multiusuario los dueños de la información puede que deseen controlar su uso. • No debe ser posible que un trabajo interfiera con los demás en su ejecución, ni con el sistema operativo. Sistemas Operativos (IS11) – Tema 1 47 Petición de servicio. Llamadas al sistema. • Las llamadas al sistema proporcionan la interfaz entre sistema operativo y un programa en ejecución. • Son puertas de acceso a los servicios ofrecidos por el SO, invocadas por procesos en modo usuario y ejecutadas en modo supervisor. • Hay lenguajes como (C), que permiten usar estas funciones en un programa. Sistemas Operativos (IS11) – Tema 1 48 24 Petición de servicio. Llamadas al sistema. • Veamos un ejemplo: llamadas al sistema que utilizaría un programa que copia datos de un fichero a otro. – El programa necesita conocer el nombre de los ficheros y le pregunta al usuario. Necesitamos: • Llamada al sistema para escribir en la pantalla un mensaje. • Llamada al sistema para leer del teclado los caracteres de los nombres de los ficheros. – Necesita abrir el fichero de entrada y crear el de salida. • Abrir un fichero es una llamada al sistema. • Crear un fichero es una llamada al sistema. • Pueden haber errores: Sistemas Operativos (IS11) – Tema 1 49 Petición de servicio. Llamadas al sistema. • El fichero de entrada existe y está permitido el acceso?. – No: – Mensaje de error (llamada al sistema). – El programa se aborta (termina anormalmente (llamada al sistema)). • El fichero de salida ya existe?. – Sí, podemos: • Terminar el programa anormalmente: Mensaje de error (llamada al sistema) y abortando el sistema (llamada al sistema). • Borrar y crear uno nuevo: Borrar el archivo (llamada al sistema) y crear uno nuevo (llamada al sistema). • Preguntar al usuario: Mensaje en pantalla (llamada al sistema), leeríamos la respuesta teclado (llamada al sistema), etc. Sistemas Operativos (IS11) – Tema 1 50 25 Petición de servicio. Llamadas al sistema. – Realizaríamos un bucle de lectura y escritura. • Escribir en un fichero (llamada al sistema). • Leer de un fichero (llamada al sistema). • Condiciones de error: – Lectura: EOF inesperado etc. – Escritura: No hay espacio, impresora sin papel etc.. – Terminación: • Se cierran los archivos (llamada al sistema). • Mensaje en pantalla (llamada al sistema). • Termina normalmente el programa (llamada al sistema). Sistemas Operativos (IS11) – Tema 1 51 Petición de servicio. Llamadas al sistema. • Los programas pueden hacer uso intensivo del S.O. – Las interacciones del programa y su entorno suponen solicitudes del programa al S.O. • El compilador y el soporte en ejecución ocultan detalles del interfaz con el S.O. • En un llamada, en general, se necesita su nombre (la operación) y parámetros (datos). • Las llamadas al sistema se pueden agrupar en cinco grandes grupos: – – – – – Control de procesos y trabajos. Manipulación de ficheros. Gestión de dispositivos. Mantenimiento de información. Comunicaciones. Sistemas Operativos (IS11) – Tema 1 52 26 Petición de servicio. Llamadas al sistema. • Control de procesos y trabajos: – Un programa debe ser capaz de terminar su ejecución: • Normalmente (ll. al sist.: end). El S.O. transfiere el control al interprete de ordenes o a otro programa. • Anormalmente (LL. Al sist.: abort). El S.O. puede enviar un mensaje de error, hacer un volcado de memoria y después continuaría. – Un programa o proceso puede: • Cargar o ejecutar otro programa. • Crear un nuevo proceso y ejecutarlo (concurrentemente). – Para un nuevo proceso que hemos creado podemos querer: • Obtener atributos de proceso, establecer atributos de proceso: prioridades, tiempo máximo de ejecución, etc. • Terminarlo. Sistemas Operativos (IS11) – Tema 1 53 Petición de servicio. Llamadas al sistema. – Podemos querer que un proceso espere a otro: • Durante un cierto tiempo. • A que se produzca un suceso. (Los trabajos o procesos deberán poder indicar que un suceso ha ocurrido). • Administración de archivos: – – – – Crear o eliminar archivos. Abrir el archivo para poder utilizarlo. Leer, escribir o reposicionarlo (puntero a la posición leída). Obtener atributos de archivo o establecer atributos (nombre, tipo de archivo, códigos de protección, información contable, etc.) – Con los directorios también se realizan algunos de estas operaciones. Sistemas Operativos (IS11) – Tema 1 54 27 Petición de servicio. Llamadas al sistema. • Administración de dispositivos: – Su utilización en algunos sistemas operativos suele ser similar a la de archivos. – Deberemos de solicitar el dispositivo (si hay varios usuarios), liberarlo al terminar de usarlo. – Leer, escribir y posicionar (depende del tipo de dispositivo) el dispositivo. • Mantenimiento de información: – Tienen como finalidad transferir información entre un programa y S.O. • Ejemplos: Consultar fecha y hora, número de usuarios, espacio libre en disco, información sobre procesos, etc. Sistemas Operativos (IS11) – Tema 1 55 Petición de servicio. Llamadas al sistema. • Comunicaciones: – Paso de mensajes: • El sistema operativo proporciona un medio de comunicación entre procesos. • Antes de intercambiar información se deberá abrir un conexión, existirán llamadas como leer mensaje y escribir mensaje y una vez terminada cerrar comunicación. – Memoria compartida: • Los procesos utilizan llamadas al sistema con el propósito de obtener acceso a regiones de memoria que pertenecen a otros procesos. • Si esos procesos “están de acuerdo”, esas zonas de memoria pueden usarse para leer y escribir datos intercambiando información. • La forma de la información y su situación la determinan los procesos, no el sistema operativo. Sistemas Operativos (IS11) – Tema 1 56 28