• Save
Conceptos 2
Upcoming SlideShare
Loading in...5
×
 

Conceptos 2

on

  • 2,582 views

 

Statistics

Views

Total Views
2,582
Views on SlideShare
2,570
Embed Views
12

Actions

Likes
3
Downloads
0
Comments
0

3 Embeds 12

http://history-507.blogspot.com 7
http://www.slideshare.net 4
http://www.history-507.blogspot.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Conceptos 2 Conceptos 2 Presentation Transcript

  • SISTEMAS OPERATIVOS Docente . ING. Becerra Pacherres Oscar. TEMA 1 Organización de las Computadoras y sus Sistemas Operativos en: Sistemas Centralizados (Monoprocesadores), Sistemas Distribuidos y Sistemas Multiprocesador
  • CONCEPTO CARACTERISTICAS USUARIO HARDWARE
  • Qué es un Sistema Operativo?
    • Es un programa que actúa como intermediario entre el usuario de un Sistema de Cómputo y el Hardware de un Computador. Así mismo actúa como un Programa de Control que coordina la ejecución de los programas de aplicación de los usuarios para evitar errores y uso incorrecto del computador principalmente de la operación y control de los dispositivos de E/S.
    Figura 1: Visión Abstracta de los Componentes de un Sistema de Cómputo
  • FUNCIONES Y OBJETIVOS USUARIO HARDWARE
  • Funciones y Objetivos de un Sistema Operativo
    • Funciones
    • Controla y Coordina el uso del Hardware entre los diferentes programas de aplicación para los diversos usuarios.
    • Proporciona los medios para el uso apropiado de el Hardware, el Software y los Datos.
    • Se encarga de asignar recursos, mediante la administración eficiente de los mismos entre las diferentes aplicaciones, entre éstos recursos se tienen:
      • Tiempo del CPU
      • Espacio de Almacenamiento
      • Dispositivos de E/S
  • Funciones y Objetivos de un Sistema Operativo
    • Objetivos
    • Comodidad para el Usuario: Un SO Ofrece un ambiente en el que los usuarios pueden ejecutar sus programas de aplicaciones sin grandes complicaciones.
    • Eficiencia del Sistema de Cómputo: En particular en Sistemas Multiusuarios grandes, de tiempo compartido.
    • Capacidad de Desarrollarse: Un SO debe ser construido como una vía para permitir el efectivo desarrollo, pruebas e introducción hacia nuevas funciones del sistema sin afectar a los servicios.
  • SERVICIOS PROPORCIONADOS POR EL S.O EJECUCION CONTROL DETECCION
  • Servicios Proporcionados por los Sistemas Operativos
    • Facilidades y Servicios para la creación de Programas como: Editores, Buscadores, Compiladores, Debuggers, etc..
    • Ejecución de Programas, a través de la carga (Load) en memoria de los mismos, Inicialización de los Dispositivos de E/S.
    • Acceso a los Dispositivos de E/S.
    • Controlar el acceso a Archivos: Formato de los archivos y los medios de almacenamiento. Provee mecanismos de Protección.
    • Control de Acceso al Sistema: Protección de acceso a los recursos y datos de usuarios no autorizados, Resolver conflictos de contención de recursos.
    • Detección de Errores:
      • Errores Internos y Externos del Hardware como: Error en Memoria, Fallas en algún dispositivo.
      • Errores de Software como: Desbordamiento (Overflow) Artimético, Accesos prohibidos a localizaciones de memoria.
      • Incapacidad del SO para ofrecer requerimientos de aplicaciones.
  • Servicios Proporcionados por los Sistemas Operativos
    • Respuesta a Errores:
      • Reportar el error.
      • Informar las posibles causas del mismo.
      • Finalizar el programa ó reintentar la operación.
    • Contabilidad:
      • Recolecta las estadísticas de uso de varios recursos
      • Monitorea los parámetros de rendimiento, como tiempos de respuesta
      • Util para anticipar mejoras anticipadas
      • Util para afinar los parámetros del sistema a fin de mejorar el performance del mismo.
      • En los Sistemas Multiusuario, ésta información puede ser usada para propósitos de facturación
  • EVOLUCION DE LOS SISTEMAS OPERATIVOS EJECUCION CONTROL DETECCION
  • Evolución de Los Sistemas Operativos
    • La evolución de los SO a través del tiempo ha estado determinada por los siguientes factores:
    • Actualizaciones de Hardware: Como por Ejemplo la evolución de los terminales de caracteres Vs Terminales Gráficos. Introducción de Sistemas de paginación en el Hardware.
    • Introducción de Nuevos Servicios: Como por ejemplo el manejo del Internet y nuevos niveles de seguridad para el Sistema.
    • Introducción de Parches (Fixes) correctivos: La necesidad de hacer cambios al SO de forma regular, implica ciertas consideraciones de diseño, como por ejemplo, la construcción modular con interfaces claramente definidas entre los módulos, y que deben ser muy bien documentadas.
    • Sistemas por lotes (Batch)
    • Fueron los primeros SO desarrollados cerca de los años 1950.
    • Su función principal era transferir automáticamente el control de un trabajo a otro.
    • El SO residía en la memoria principal.
    • El usuario no tenía un contacto directo con el equipo.
    • Utilizaba un Software especial denominado ¨MONITOR¨.
    • Como el Monitor residía en la memoria principal, el resto del monitor consistía en utilidades y funciones en común que eran cargadas como subrutinas para los programas de usuario.
    Evolución de Los Sistemas Operativos
    • Secuencia de Trabajo:
      • Los trabajos eran vaciados en tarjetas perforadas ó cintas por los programadores, y eran entregados a un operador.
      • Para agilizar el procesamiento, el operador agrupaba los trabajos de igual naturaleza en lotes.
      • Estos lotes eran cargados en un dispositivo de entrada (Input), para su ejecución por el monitor.
      • Cada programa regresa al estado del monitor una vez que se ha completado el procesamiento, punto en el cual el monitor podrá automáticamente cargar el siguiente programa.
    Evolución de Los Sistemas Operativos
    • Operación del Monitor
      • El monitor lee los trabajos uno a la vez desde los dispositivos de entrada.
      • El programa Actual es cargado en el área de la memoria correspondiente a los datos del usuario, y se pasa el control a éste trabajo.
      • Cuando el trabajo se ha completado, retorna el control al monitor.
      • El monitor lee la siguiente instrucción.
      • El resultado de cada trabajo se imprime y es entregado a cada usuario.
    Evolución de Los Sistemas Operativos Figura 2: Disposición de la memoria para una monitor residente
    • Características de Hardware Deseables
    • Protección de la Memoria: El programa del usuario no debe alterar el área de la memoria que contiene el monitor.
    • Cronometro: Un contador es utilizado para evitar que un simple trabajo monopolice el sistema. Se activa una interrupción cuando ha expirado el tiempo de un trabajo.
    • Instrucciones Privilegiadas: Ciertas instrucciones sólo pueden ser ejecutadas por el monitor como lo son, Instrucciones de I/O,. Si se encuentra una instrucción privilegiada en medio de la ejecución de un programa, el procesador del hardware considera esto un error y transfiere el control al monitor.
    • Interrupciones: Esto ofrece al SO mas flexibilidad en retomar el control y regresar el control desde el programa del usuario.
    Evolución de Los Sistemas Operativos
  • Evolución de Los Sistemas Operativos
    • Sistemas por lotes Multiprogramados ó Multitasking
    • Las operaciones I/O, por lo general son más lentas que el tiempo de ejecución de un CPU.
    • La introducción de Discos Duros ó dispositivos de almacenamiento secundario a los equipos permitió al SO realizar Spooling, manteniendo varios trabajos almacenados en Disco
    • Esto abrió el camino para la Multiprogramaión de Tareas.
    • La Multiprogramación permitía que el CPU ejecutase varios trabajos al mismo tiempo.
    • Así, mientras se realizaba una tarea de I/O, se cargaba y ejecutaba otro programa.
    • Se mantenían Trabajos de reserva en el disco.
    • Si la memoria pude almacenar varios programas, entonces el CPU puede realizar un Switching entre ellos mientras espera por una operación I/O
  • Evolución de Los Sistemas Operativos Figura 3: Sistema Uniprogramado Figura 4: Multiprogramación con tres procesos
    • La Multiprogramación conlleva a incorporar mecanismos de Planificación de Tareas en el CPU, de manera usar los recursos y ejecutar las tareas de manera eficiente.
    • Así mismo, cuando existen varios trabajos que están listos para ejecutarse y ser llevados a memoria, el CPU implementar un mecanismo que le permita decidir que Jobs ejecutar primero, un mecanismo sería el de asignación de prioridades.
    • De igual forma como se pueden cargar varios programas de usuario en memoria, es requerido algún mecanismo de Administración de la Memoria.
    • El Multitasking en la base de los SO modernos.
    Evolución de Los Sistemas Operativos
  • Evolución de Los Sistemas Operativos
    • Sistemas de Tiempo Compartido (Time Sharing Systems, TSS)
    • Los TSS se consideran como una extensión lógica de la Multiprogramación, ya que la Multiprogramación Batch no soporta interacción directa con el usuario.
    • Un TSS permite que varios usuarios compartan la computadora simultáneamente. Manejando de ésta manera múltiples Jobs interactivos.
    • Un TSS utiliza la planificación del CPU y la Multiprogramación para brindar a cada usuario una pequeña porción de una computadora de tiempo compartido.
    • Cuando ocurre una entrada interactiva el CPU puede permanecer ocioso un rato, entonces el SO rápidamente asignará el control a algún otro usuario.
    • El acceso al Sistema de los usuarios múltiples se realiza a través de las terminales. Denominadas terminales tontas.
  • Evolución de Los Sistemas Operativos
    • Los TSS deben incluir:
      • Mecanismos de Administración y Protección de memoria.
      • Manejo de Memoria Virtual.
      • Sistemas de Archivos y Administración de Discos.
      • Mecanismos para las ejecuciones concurrentes, lo que amerita complejos esquemas de Planificación del CPU.
      • Para asegurar la ejecución ordenada, el SO debe manejar mecanismos de sincronización y Comunicación de los trabajos, asegurando que éstos no se atasquen por un Bloque mutuo, esperando indefinidamente uno a otro.
    Figura 4: Multiprogramación por Lotes Vs Tiempo Compartido
  • Evolución de Los Sistemas Operativos
    • Sistemas para Computadores Personales
    • Los primeros PC en los años ´70, carecían de características para proteger al SO de los programas de los usuarios. No manejaban ni multiususarios, ni multiprogramación.
    • Al pasar los años esto ha cambiado, y ahora en el diseño de los SO en lugar de maximizar la utilización del CPU y los dispositivos periféricos, los SO optan por maximizar la comodidad para el usuario y el grado de respuesta para con éste.
    • Las características que antes estaban disponibles sólo para los Mainframes, ahora han sido adoptadas por las Micro, conceptos como la protección de archivos.
    • Las Estaciones de Trabajo Personales son consideradas PC grandes. A medida que los PC’s incorporan Hardware y Software más complejos, se ha ido desvaneciendo la línea que divide a éstas dos categorías.
  • Evolución de Los Sistemas Operativos
    • Sistemas Paralelos
    • Los Sistemas Multiprocesador, constan de más de 1 CPU en estrecha comunicación, compartiendo el bus del computador, el reloj y en ocasiones la memoria y Disp. Periféricos.
    • A éstos se les conoce a menudo como Sistemas Fuertemente Acoplados.
    • Entre sus ventajas está el hecho de que a mayor # CPU se busca realizar más trabajos en menos tiempo los que se refleja en una mejora en el rendimiento.
      • El hecho de que varios CPU trabajen en una misma tarea, implica un trabajo adicional conocido como ¨OVERHEAD¨, la cual aunada a la disputa por los recursos compartidos reduce la ganancia esperada de los procesadores adicionales.
    • Otra ventaja es lo que se conoce como ¨ TOLERANCIA A FALLAS ¨. Que permite aumentar la confiabilidad en el sistema.
    • Otra ventaja es el ahorro de dinero, en comparación con múltiples sistemas con unidades de un solo CPU.
  • Evolución de Los Sistemas Operativos
    • Este tipo de Sistemas puede operar de dos maneras diferentes conocidas como Multiprocesamiento Simétrico (SMP) y Multiprocesamiento Asimétrico (ASMP).
    • En el SMP, cada CPU ejecuta una copia idéntica del SO, y estas copias se comunican entre sí de ser necesario.
    • En el ASMP, a cada CPU se le asigna una tarea específica. En este esquema se da una relación Maestro-Esclavo.
    • La diferencia entre el SMP y ASMP puede ser el resultado del Hardware ó Software que se utilice.
    Figura 6: Arquitectura del Multiprocesamiento Simétrico
    • Sistemas de Tiempo Real
    • Son utilizados cuando existen requerimientos rígidos de tiempo sobre la operación de un CPU ó el flujo de datos, como dispositivos de control en aplicaciones dedicadas.
    • Las restricciones de tiempo son bien definidas y fijas. Si el procesamiento no se realiza dentro del tiempo establecido, se considera que el sistema falla.
    • Existen dos tipos de sistemas:
      • El Sistema Estricto de Tiempo Real: Garantizan que las tareas críticas se completen a tiempo. Estos sistemas presentan conflictos con las operaciones de tiempo compartido y las dos no pueden mezclase.
      • El Sistema Suave de Tiempo Real: En este sistema una tarea crítica de tiempo real tiene prioridad sobre otras tareas, y retiene dicha prioridad hasta que se completa. Entre las áreas en las que son útiles tenemos: Multimedia, Realidad Virtual y proyectos científicos avanzados, como exploración submarina.
    Evolución de Los Sistemas Operativos
    • Sistemas Distribuidos ó Débilmente Acoplados
    • Las redes de computadores en las que sus estaciones conectadas incluyen sistema que manejan Navegadores de Internet, Correo electrónico, FTP, etc.., generalmente se encuentran compuestas de varios CPU que no comparten la memoria ó un reloj. En su lugar, cada CPU tiene su propia memoria local.
    • Los CPU se comunican entre ellos, mediante varias líneas de comunicación, como buses de alta velocidad (Ethernet).
    • Estos Sistemas generalmente se conocen como Sistemas Débilmente Acoplados ó Sistemas Distribuidos.
    • Algunos SO se pueden clasificar bajo alguno de los dos siguientes conceptos:
      • SO de Red: Es aquel que proporciona características como la compartición de archivos en la red y que incluye un sistema de comunicación que permite que procesos diferentes en computadores diferentes puedan comunicarse.
      • SO Distribido: Es menos autónomo que los de red. Los diferentes SO se comunican de manera suficientemente estrecha para dar la ilusión de que hay un solo SO controlando la red.
    Evolución de Los Sistemas Operativos
  • DIFICULTADES DEL DISEÑO DEL S.O. USUARIO HARDWARE
  • Dificultades de Diseño de un SO
    • Sincronizaciones Inapropiadas: Se da en los casos en los que una rutina debe ser suspendida a la espera de que se produzca un evento en otra parte del sistema. Por ejemplo: Un programa inicializa una lectura de I/O y debe esperar mientras que los datos estén disponibles en el buffer antes de proceder, en éste caso es requerida una señal desde otra rutina. Un diseño inapropiado de los mecanismos de señalización pueden resultar en la perdida de señales o señales duplicadas.
    • Fallas de Exclusión Mutua: Se da en los casos en los que más de un usuario ó programa intentan hacer uso de los recursos compartidos al mismo momento. El SO debe proveer algún tipo de mecanismo de exclusión mutua que permita que sólo una rutina a la vez asigne a una transacción una porción de datos.
    • Operación de programas no determinados: Se da en los casos donde los sistemas compartidos en los que la ejecución de un programa interfiere con la de otro. Por ejemplo cuando se varios programas comparten la memoria, en los que la ejecución de alguno puede sobrescribir áreas comunes de la memoria de forma impredecible.
    • Deadlocks (Abrazo Mortal): Esto se da en los casos en los que dos o más programas se quedan a la espera uno del otro. Por ejemplo, cuado una programa A requiere copiar desde el Disco1 al Disco2 y toma el control del Disco1. Así mismo el programa B requiere copiar desde el Disco2 al Disco1 y toma el control del Disco2. El programa A debe esperar a que B libere al disco2 y B debe esperar a que A libere al Disco1. Ambos se quedan esperando por siempre.
  • Logros Importantes en los SO
    • Existen cinco áreas claves que involucran el diseño e implementación de los SO modernos:
    • Procesos: Un proceso se puede definir como un programa que está cargado en memoria y se está ejecutando.
    • Adicionalmente se puede conceptualizar como una forma de monitorear y controlar varios programas que se estén ejecutando.
    • Un proceso está compuesto por tres componentes básicos:
      • Los programas en ejecución.
      • Los datos que son requeridos por un programa (Variables, Buffres, etc..)
      • Contexto de ejecución del programa. Este elemento es esencial, incluye la información que el SO necesita para administrar los procesos y que necesita el proceso para ejecutarse apropiadamente. Esto contiene:
        • Contador del programa
        • Datos de registros
        • Prioridad de los Procesos
        • Si el proceso está esperando por la terminación de un evento de I/O
  • Mejoras Alcanzadas por los SO
    • Implementación de Proceso
    • Cada proceso se localiza en un bloque de memoria en el cual contiene: El programa, datos y información de contexto.
    • Cada proceso es registrado en una lista de procesos construida y mantenida por el SO.
    • La lista de procesos contiene una entrada por cada proceso, el cual incluye un apuntador para la localización del bloque de memoria que contiene el proceso.
    • Está entrada debe contener también parate o todo el contexto de ejecución de el proceso. El resto del contexto de ejecución es almacenado con el proceso.
    • El registro índice del proceso contiene: El índice dentro de la lista de procesos del proceso que está actualmente ejecutándoce. El apuntador del contador del programa (PC) para la siguiente instrucción a ser procesada. Los registros ¨base¨ y ¨Limite¨ que definen la región de la memoria ocupada por el proceso.
    • El PC y todos los datos referentes son interpretados relativamente por el registro base y no debe exceder en el registro límite. Esto previene interferencias entre procesos.
  • Mejoras Alcanzadas por los SO
    • En la figura el registro índice indica que el proceso ¨B¨ está ejecutandoce. El proceso ¨A¨ estuvo ejecutándoce previamente pero fué interrumpido temporalmente.
    • El contenido de todos los registros al momento de la interrupción de ¨A¨ son almacenados en el contexto de ejecuión.
    • El CPU realiza un Switching entre ambos procesos, almacenando el contexto de ¨B¨ y restaurando en contexto de ¨A¨.
    • Cuando el PC es cargado con el valor del apuntador del área de programa de ¨A¨, será retomada la ejecución del proceso ¨A¨.
    • El proceso es visto como una estructura de datos.
    • Está estructura permite el desarrollo de poderosas técnicas para proveer coordinación y cooperación entre procesos
    Figura 7: Típica Implementación de Proceso
  • Mejoras Alcanzadas por los SO
    • Administración de Memoria
    • Devido a que los usuarios necesitan un entorno que soporte programación modular y un uso flexible de los datos, así como los Administradores de Sistemas necesitan controlar eficiente y ordenadamente la asignación del almacenamiento, los SO tienen cinco principales responsabilidades en la Administración del Almacenamiento para satisfacer éstos requerimientos:
      • Aislamiento del Proceso
      • Administración y Localización Automática
      • Soporte de programación Modular
      • Protección y Control de Acceso
      • Almacenamiento a Largo Plazo
    • El principal avance de los SO es el empleo de la Memoria Virtual y el Sistemas de Archivos.
  • Mejoras Alcanzadas por los SO
    • Memoria Virtual
    • Entre sus ventajas encontramos:
      • Permite a los programas direccionar memoria desde un punto de vista lógico, sin tener en cuenta la capacidad física real.
      • Cuando un programa se está ejecutando, sólo una porción del programa y los datos pueden actualmente mantenerse en la memoria principal, y la otra parte es colocada en bloques en el disco.
    • Sistema de Archivos
      • Implementa el almacenamiento a largo plazo, con información guardada en objetos denominados ¨Archivos¨, los cuales son unidades utilizadas para el Control de Acceso y protección de parte del SO
  • Mejoras Alcanzadas por los SO
    • El Hardware del CPU, junto con el SO proveen al usuario de un ¨Procesador Virtual ¨ que tiene acceso a la Memoria Virtual. Esta puede almacenar un espacio de líneas de dirección ó una colección de segmentos, los cuales son bloques de direcciones continuas de longitud variable.
    • En éste caso las instrucciones de un lenguaje de programación pueden hacer referencia a programas y datos localizados en la Memoria Virtual.
    • Los procesos aislados pueden ser almacenados para tener con cada proceso un único intercambio con la memoria virtual.
    • Los procesos compartidos pueden ser almacenados para intercambiar porciones de dos espacios de dirección virtual.
    • Los Archivos son mantenidos en un almacenamiento a largo plazo, éstos pueden ser copiados dento de la MV para la manipulación por los programas .
    Figura 8: Sistema de Archivos Visto desde el Usuario
  • Mejoras Alcanzadas por los SO
    • Un hardware traductor de direcciones (Mapper) es colocado entre el CPU y la Memoria. Los usuarios hacen referencias a localizaciones de memoria utilizando dicciones virtuales. Estas direcciones son Mapeadas hacia las direcciones reales de la Memoria Principal.
    • Si una referencia es realizada a la direcciones virtuales y no a direcciones reales, entonces una porción del contenido de memoria real es intercambiado (Swapped) hacia la memoria auxiliar y el bloque de datos deseado es intercambiado hacia ésta.
    • Durante ésta actividad, el proceso que generó la referencia a dirección debe ser suspendido.
    Figura 9: Sistema de Archivos Visto por los Diseñadores de SO
  • Mejoras Alcanzadas por los SO
    • Información de Protección y Seguridad
    • Las tareas de se seguridad y protección relacionadas con los SO pueden ser agrupadas en tres categorías:
      • Control de Acces: Concerniente al acceso regulado de los usuarios al sistema, subsistema y datos, y la regulación del acceso de los procesos a los recursos y objetos del sistema.
      • Control de Flujo de Información: Regula el flujo de los datos con el sistema y la entrega a los usuarios.
      • Certificación: Relacionado en proveer que los mecanismos de acceso y control de flujo se realicen acorde con estas especificaciones y que éstos se esfuercen en diseñar políticas de de protecció y seguridad.
  • Mejoras Alcanzadas por los SO
    • Planificación (Scheduling) y Administración de los Recursos
    • Cualquier localización de recursos y política de planificación debe considerar 3 factores:
      • Justicia: Provee igualdad y justicia en el acceso de los procesos de la misma clase a los recursos por los que compiten.
      • Sensibilidad Diferencial: El SO discrimina entre diferentes clases de trabajos con diferentes requerimientos de servicios. Así mismo planifica las desiciones a ser tomadas para el total de los requerimientos.
      • Eficiencia: El SO debe maximizar el throughput, minimizar los tiempos de respuesta y en el caso de los TSS, albergar a tantos usuarios como sea posible.
    • Las tareas de planificación y administración de recursos es escencial en problemas de operación-busqueda y resultados matemáticos donde la discipliana debe ser aplicada.
  • Mejoras Alcanzadas por los SO
    • Elementos claves de un SO en un entorno de Multiprogramación que involucra Planificación de Procesos y Localización de Recursos
    Figura 10: Elementos Claves de un SO para Multiprogramación
  • Mejoras Alcanzadas por los SO
    • El SO mantiene colas ó listas de procesos que esperan por algún recurso, éstas colas son:
      • Colas a Corto Plazo (Shor-Term Queue): Consisten en procesos que están en la memoria listos para ser ejecutados. Un Despachador ó Planificador a Coro Plazo decide cual será el próximo proceso en ser ejecutado. La técnica de Round-Robin es una estrategía común para obtener cual es el siguiente preceso en la cola en cederle el turno. También puede ser usado el nievel de prioridades.
      • Colas a Largo Plazo (Long-Term Queue): Consiste en una lista de nuevos trabajos esperando para usar el sistema. El SO agrega Jobs al sistema y transfiere procesos desde las colas a largo plazo, hasta las colas a corto plazo. El SO debe asegurarse de no sobregarcar la memoria ó admitir muchos procesos en el sistema en un mismo momento.
      • Colas para cada dispositivo de I/O: Cada proceso que esperan por la utilización de un dipositivo es colocado en la cola de dispositivos, el SO debe decidir a que proceso le asignará los dispositivos disponibles.
      • Manejador de Interrupciones
      • Manejador de Llamadas al Servicio
  • Estructura de un Sistema de Computo
    • CPU: Controla las operaciones del computador y el procesamiento de datos
    • Memoria Principal: Almacena datos y programas. Es volátil. Memoria Real.
    • Módulos de I/O: Mueve datos entre los dispositivos externos I/O y el computador.
    • Sistema de Interconexión (Bus): Permite la comunicación entre el CPU, Memoria compartida y los Módulos de I/O
    Figura 11: Sistema de Cómputo Moderno Figura 12: Componentes de un computador vistos internamente
  • Estructura de un Sistema de Computo
    • Los registros que conforman el CPU proveen un nivel de memoria más rápido y pequeño que la memoria principal, se clasifican en dos categorías, Registros Visibles al Usuario y Registros de Control y Estado.
    • Registros Visibles al Usuario: Minimizan las referencias a la memoria principal, optimizando el uso de los registros. Hay tres tipos de registros disponibles:
      • Registros de Datos: Generalmente son asignados por las funciones de los programas, y pueden ser usados como instrucciones de máquina para mejorar las operaciones de los datos. Ejemplo, Registros para operaciones de punto flotante.
      • Registros de Dirección: Contienen direcciones de memoria de datos e instrucciones, ó una porción de la dirección que es usada para calcular la dirección completa. Ejemplo de éstos son:
        • Registros de Índice y Desplazamiento : Modo de direccionamiento en el que se agrega un índice a un valor base para obtener una dirección válida.
        • Apuntador de Segmento: La memoria se divide en bloques de longitud variable denominada segmentos. Las referencias a memoria, son en sí referencias a un segmento en particular y a un desplazamiento dentro del segmento.
        • Apuntador de Pila: La memoria principal tiene una estructura de pila, éste apunta al tope de la pila. Se refiere al uso de instrucciones que contienen campos de dirección.
  • Estructura de un Sistema de Computo
      • Códigos de Condición ó Bandera (Flag): Son grupos de bits del Hardware del CPU, como resultado de operaciones, Ejemplo: Las operaciones aritméticas pueden producir como resultado Bits Positivos, Negativos, cero ó desbordamiento (Overflow). Son parte de los Registros de Control. Pueden ser leídos pero no modificados.
    • Registros de Control y Estado: Entre los registros vistos en la gráfica anterior en el CPU, se tiene un set de registros como lo son:
      • MAR (Registro de Dirección de Memoria): Específica la dirección en memoria para la siguiente lectura ó escritura.
      • MBR (Registro de Buffer de Memoria): Contiene los datos a ser escritos en la memoria ó se reciben los datos para ser leídos desde la memoria) éstos 2 registros se utilizan para intercambiar datos con la memoria.
      • I/O AR (Registro de Dirección de I/O): Especifica cada dispositivo de I/O en particular.
      • I/O BR (Registro de Buffer de I/O): Usado para intercambiar datos entre el módulo de I/O y el CPU.
    • Aparte de éste set de registros, existen 2 registros que son esenciales para la ejecución de una Instrucción: PC y IR
  • Estructura de un Sistema de Computo
      • PC (Contador del Programa): Contiene la dirección de la instrucción a ser ejecutada.
      • IR (Registro de Instrucción): Contiene la dirección de la instrucción recientemente ejecutada ó en ejecución.
      • PSW ( Palabra de Estado del Programa): Con frecuencia muchos diseños de CPU, incluyen un set de éste tipo de registro, que contiene información de estado, típicamente contiene códigos de condición. Por ejemplo, Bits de activación/desactivación de Interrupciones, Bits de modo supervisor/usuario.
    • Estos registros también pueden ser usados en el control de las operaciones de I/O.
  • Ejecuci ón de una Instrucción
    • Un programa en ejecución consiste en un grupo de Instrucciones almacenadas en memoria.
    • La forma más simples de cómo se puede ver la ejecución de una Instrucción, realiza dos pasos básicos:
      • El CPU lee ó trae una Instrucción de la memoria. Una a la vez.
      • Las ejecuta .
      • Estos dos pasos se realizan de forma repetitiva. Este proceso requiere de una simple instrucción denominada ¨Ciclo Básico de Instrucción¨.
  • Ejecuci ón de una Instrucción Figura 13: Ciclo Básico de una Instrucción El CPU Interpreta la instrucción y realiza la acción requerida La Instrucción contiene bits que le indican al CPU, las acciones que se deben realizar La instrucción traída es almacenada en el Registro de Instrucción (IR). EL CP guarda la dirección de la siguiente instrucción a ser ejecutada. Siempre hay un incremento en el CP El ciclo se inicia cuando el CPU se trae una instrucción de la memoria.
  • Ejecuci ón de una Instrucción
    • En términos generales las acciones pueden ser clasificadas en 4 categorías:
      • Memoria-CPU: Acciones que se refieren a la transferencia de datos entre la memoria y el CPU, y viceversa.
      • I/O-CPU: Acciones que se refieren a la transferencia de datos desde un dispositivo de I/O y el CPU, y viceversa .
      • Procesamiento de Datos: Operaciones Aritmético-Lógicas realizadas por el CPU.
      • Control: Una Instrucción puede especificar la alteración de una secuencia de ejecución.
    • Muchos CPU modernos incluyen instrucciones que contienen más de una dirección. Así el ciclo de ejecución para un instrucción en particular puede involucrar más de una referencia a memoria, una instrucción puede especificar una operación I/O.
  • Ejecuci ón de una Instrucción
    • Funciones de I/O
      • Cada Controlador de Dispositivo (Módulo I/O), está a cargo de un tipo específico de dispositivo, y según el controlador, puede haber más de un dispositivo conectado.
      • El controlador mantiene un almacenamiento de buffer local y un conjunto de registros de propósito especial . El tamaño de éste Buffer varia de un controlador a otro.
      • En algunos casos, se permite un intercambio directo entre el módulo de I/O y la memoria. Así el CPU sede al módulo de I/O autoridad para leer ó escribir desde la memoria y viceversa, sin que intervenga el CPU.
      • Durante ésta transferencia el módulo de I/O publica los comandos de lectura ó escritura para la memoria, relevando al CPU de las responsabilidades del intercambio. Esta Operación es conocida como ¨Acceso Directo a Memoria (DMA)¨ .
  • Interrupciones
    • Las Interrupciones pueden ser de Hardware ó de Software.
      • Las Interrupciones de Hardware, se pueden dar en cualquier momento, enviando una señal al CPU con frecuencia mediante el bus del sistema.
      • Las Interrupciones de Software, se pueden activar ejecutando una operación especial denominada ¨Llamadas al Sistema¨.
    • Existen diferentes tipos de eventos que pueden activar una interrupción en base a la cual se pueden clasificar las mismas:
    Tipos de Interrupciones Generada por algunas fallas como: Fallas de Alimentación eléctrica, Error de paridad de memoria Fallas de Hardware Generada por el Controlador I/O, indicando la culminación de una operación I/O, ó para señalar una variedad de condición de error I/O Generada por el cronómetro del CPU. Culminación del tiempo de reloj. Cronómetro Generada por la ocurrencia de alguna condición, como resultado de la ejecución de una instrucción, Ejem: Overflow Aritmético, División entre cero (0), referencias del usuario fuera del espacio en memoria permitido. Programa
  • Interrupciones
    • Para cada Interrupción se proporciona una rutina de servicio, la cual es responsable de manejar dicha interrupción.
    • Las Interrupciones proveen principalmente una vía para mejorar la eficiencia del procesamiento.
    • Cuando se interrumpe al CPU, éste detiene lo que esté haciendo y de inmediato transfiere el control de ejecución a una localidad fija en memoria.
    • La localidad fija comúnmente contiene la dirección inicial de la rutina de servicio para la interrupción.
    • La rutina del servicio de la interrupción, se ejecuta. Al terminar, el CPU continúa la tarea interrumpida.
  • Interrupciones
    • En esta figura se observan secuencias de instrucciones que No involucran I/O.
    • Las llamadas Write , son hechas al programa del usuario que utiliza el sistema, para realizar alguna operación de I/O.
    • En éste ejemplo se observan tres secciones:
      • Una secuencia de instrucciones que se prepara para la actual operación de I/O.
      • El Actual comando I/O.
      • Una secuencia de instrucciones completa la operación. Está puede incluir un Flag, que indicará si ocurre un fallo durante la operación.
    Figura 14: Control del flujo de un Programa sin Interrupciones
  • Interrupciones
    • El método para transferir el control a la rutina de servicio apropiado, consiste en invocar a una rutina genérica que examina la información de interrupción.
    • A su ves, ésta rutina llama al manejador específico.
    • Se utiliza una tabla de apuntadores de rutina de interrupción. Esta tabla se almacena generalmente en la memoria principal, formando un arreglo.
    • El arreglo de direcciones se denomina ¨Vector de Interrupciones¨ y se maneja por medio de un índice basado en un número de dispositivo único.
    • La Instrucción adicionalmente debe guardar la dirección de la instrucción interrumpida. Esta información está contenida en el PSW y PC.
  • Interrupciones
    • Al producirse la interrupción se transfiere el control al controlador de interrupciones .
    • El programa de I/O, prepara el módulo de I/O y envía los comandos I/O.
    • El programa I/O transfiere nuevamente el control al programa del usuario.
    • El código del usuario se ejecuta durante, la ejecución de la I/O, sin ninguna espera.
    • El programa se interrumpe cuando el comando I/O, se ha completado, y transfiere el control a la rutina manejadora de interrupciones para examinar el estado del módulo de I/O.
    • Se retoma la ejecución del código del usuario.
    Figura 15: Control del flujo de un Programa Con interrupción y corta espera I/O
  • Interrupciones
    • El procesador chequea para verificar si ha ocurrido una interrupción, indicado por la presencia de una señal de interrupción .
    • Si no hay solicitudes de interrupción, el CPU, lee la siguiente instrucción en la ejecución del programa actual.
    • Si hay interrupciones pendientes, suspende la ejecución del programa actual y ejecuta la rutina menejadora de interrupciones.
    • El programa manejador de interrupciones es generalmente parte del SO. Típicamente, éste programa determina la naturaleza de la interrupción y realiza las acciones necesarias.
    Figura 16: Ciclo de una instrucción manejando interrupciones
  • Interrupciones
    • El dispositivo envía una señal de interrupción al CPU.
    • El CPU culmina la ejecución de la instrucción actual antes de responder a la interrupción.
    • El CPU examina la interrupción para determinar su tipo y envía una señal de reconocimiento al dispositivo que invocó la interrupción.
    • El CPU se prepara para transferir el control a la rutina de interrupción. Almacena el PSW y PC para retomar la ejecución del programa actual.
    • El CPU carga el CP con la localización del programa manejador de interrupciones y responde a la misma.
    • El contenido de los registros del CPU también son almacenados e la pila ya que es información de estado
    • Ahora el manejador de interrupciones procede a procesar la interrupción.
    • Cuando se ha completado el procesamiento de la interrupción, los valores de los registros son sacados desde la pila y restaurados.
    • Restaurados el PSW y PC, continua la ejecución el programa interrumpido.
    Figura 17: Procesamiento de una simple instrucción
  • Interrupciones
    • Interrupciones Múltiples
    • El CPU deshabilita la segunda interrupción mientras se está ejecutando la anterior.
    • Las interrupciones entrantes se mantienen pendientes hasta que el CPU las habilite de nuevo.
    • Completada la rutina del manejador de interrupciones, el CPU verifica si hay interrupciones pendientes antes de continuar la ejecución del programa actual.
    • El orden de ejecución de las interrupciones se lleva de forma secuencial.
    • Una desventaja de éste método es que no se toman en cuenta los niveles de prioridad y las necesidades de tiempo crítico.
    Figura 18: Procesamiento secuencial de interrupciones
  • Interrupciones
    • Interrupciones Múltiples
    • Se definen esquemas de prioridad para las interrupciones.
    • Las interrupciones de alto nivel pueden interrumpir a las de más bajo nivel de prioridad.
    • La información de las interrupciones de bajo nivel interrumpidas es almacenada en la pila del sistema.
    • Es transferido el control a la ISR de la interrupción de más alto nivel.
    Figura 19: Procesamiento de interrupciones múltiples con transferencia de control Figura 20: Ejemplo Procesamiento de interrupciones múltiples con transferencia de control
  • Técnicas de Comunicación I/O
    • Existen tres técnicas para el manejo de las interrupciones ó operación de I/O:
      • I/O programada (Síncrona):
      • En éste modo no existen las interrupciones y el CPU, debe esperar a que termine la operación de entrada/salida para retomar la ejecución del programa de usuario interrumpido.
      • El CPU debe repetidamente chequear el estado del módulo de I/O, para verificar la culminación de una I/O.
      • El CPU es responsable de extraer datos desde la memoria principal para la salida y almacenar datos en la memoria principal para la entrada .
      • La desventaja de ésta técnica es que el rendimiento entero del sistema se ve severamente degradado.
      • El Software de I/O está escrito de forma tal que el CPU ejecuta instrucciones que dan el control directo de las operaciones de I/O, las cuales se dividen en tres categorías:
  • Técnicas de Comunicación I/O
    • Instrucciones de Control: Usadas para activar un dispositivo externo y decirle que debe hacer.
    • Instrucciones de Chequeo: Usadas para chequear varios estados de condición asociados con un Módulo I/O y su periférico.
    • Instrucciones de lectura ó escritura: Usadas para transferir datos entre los registros del procesador y los dispositivos externos.
    Figura 21: I/O Programada
  • Técnicas de Comunicación I/O
    • Existen tres técnicas para el manejo de las interrupciones ó operación de I/O:
      • I/O con Interrupciones (Asíncrona):
      • En éste modo se regresa el control al programa del usuario sin esperar que se complete la operación de I/O.
      • El CPU solo es interrumpido cuando el módulo de I/O, ha completado su operación y está listo para ejecutar transferencias de datos.
      • Como se puede llevar un registro de varias solicitudes de I/O al mismo tiempo, el SO utiliza unas ¨Tablas de estado de los dispositivos¨, en las que se almacena el tipo de dispositivo, su dirección y estado .
      • La principal ventaja es lograr una mayor eficiencia del sistema, realizando un uso eficiente de los recursos.
      • El los sistemas de TSS el SO podría conmutar a otro proceso para su ejecución.
  • Técnicas de Comunicación I/O Figura 22: I/O con Interrupciones
  • Técnicas de Comunicación I/O
    • Existen tres técnicas para el manejo de las interrupciones ó operación de I/O:
      • Acceso Directo a Memoria (DMA)
      • Las dos técnicas anteriores presentan dos desventajas:
        • La tasa de transferencia es limitada, por la velocidad con la que el CPU puede evaluar y servir a los dispositivos.
        • El CPU tiene que ocuparse de la administración de la transferencia de I/O, un conjunto de instrucciones deben ser ejecutadas para cada transferencia de I/O .
      • El DMA es más eficiente cuando un gran volumen de datos debe ser movido.
      • Las funciones del DMA pueden mejorarse por módulos separados ó pueden ser incorporados dentro de los módulos de I/O.
      • Cuando el CPU, requiere leer ó escribir un bloque de datos, éste genera un comando para el módulo DMA y envía al módulo DMA la siguiente Información:
  • Técnicas de Comunicación I/O
      • Cualquier requerimiento de escritura o lectura.
      • La dirección de I/O del dispositivo involucrado.
      • La localización inicial en la memoria para leer ó escribir.
      • El número de palabras a ser leídas o escritas.
    • El CPU continua con otra tarea y delega las operaciones de I/O al módulo DMA.
    • El Módulo DMA transfiere un bloque entero de datos ó una palabra al instante directamente desde la memoria sin intervención del CPU.
    • Cuando se ha completado la transferencia el módulo DMA envía una señal de interrupción al CPU.
    • El CPU sólo interviene al inicio y fin de la transferencia.
    Figura 22: DMA
  • Estructuras de Almacenamiento, Jerarquías de Memoria Figura 23: Jerarquías de Memorias
  • Estructuras de Almacenamiento, Jerarquías de Memoria
    • Memoria Principal
      • Por lo general es demasiado pequeña para almacenar todos los datos y programas necesarios para la ejecución de éstos de manera permanente.
      • Es volátil, ya que pierde su contenido cuando se interrumpe la energía.
      • Es el único medio junto con los registros del CPU a los que éste puede acceder de forma directa.
      • En algunos dispositivos se utiliza el mapeo de memoria.
      • El acceso a ella es a través del bus del sistema. Debido a que éstos accesos pueden tomar varios ciclos de reloj para completarse y el CPU necesita detenerse, para completar la ejecución del programa con todos los datos necesarios, se torna intolerable ya que la frecuencia de lecturas es alta por lo cual se introduce la memoria caché, la cual es más rápida entre el CPU y la memoria principal. Se emplea para compensar el diferencial de espera.
  • Estructuras de Almacenamiento, Jerarquías de Memoria
    • Memoria Caché
      • Son memorias más pequeñas, pero más rápidas que interactúan entre la memoria principal y el CPU.
      • La transferencias desde el caché hacia el CPU, es una función de hardware, no hay intervención del SO.
      • A medida la información que se utiliza, se realiza una copia de la misma en el caché de forma temporal.
      • Cuando se requiere una información, primero se busca en el caché, si está se utiliza de allí, sino está, se utiliza la localizada en la memoria principal.
      • Un bloque que contiene la información es copiado en el caché, para futuras referencias (también conocido como localidad de referencia) .
    Figura 24: Memoria Caché y Memoria Principal
  • Estructuras de Almacenamiento, Jerarquías de Memoria Figura 25: Operación de lectura del caché
  • Estructuras de Almacenamiento, Jerarquías de Memoria
    • Tasa de Aciertos de Búsqueda en la Memoria Caché
      • La tasa de aciertos en el caché es igual a la fracción de los accesos donde los datos se encuentran en el caché.
      • T1 indica el tiempo de acceso en la caché.
      • T2 indica el tiempo de acceso en la memoria principal.
      • Cuando la tasa de aciertos está cerca de 1, el tiempo medio de acceso es cercano a T1.
    Figura 26: Tasa de ciertos en la cahé
  • Estructuras de Almacenamiento, Jerarquías de Memoria
    • Principio de localidad de Referencia
      • Las referencias a memoria tienden a guardarse por un largo período de tiempo.
      • Un que una palabra es referenciada es probable que las palabras relacionadas a ésta sean referenciadas en un futuro próximo.
      • La tasa de aciertos estará cercana a 1 incluso en cachés pequeños.
      • Cuando la tasa de aciertos está cerca de 1, el tiempo medio de acceso es cercano a T1.
    • Consideraciones del diseño para el caché
      • Tamaño del caché
      • Tamaño de los bloques
      • Funciones de Mapeo
      • Algoritmos de reemplazo
      • Políticas de escritura
  • Sistemas de Protección
    • Protección del Hardware
    • Operación en modo dual: Muchos sistemas operativos proporcionan un soporte de hardware que permite diferenciar entre cada modo de ejecución. El modo dual proporciona los medios para proteger al SO de usuarios errantes, y a los usuarios errantes entre sí.
      • Modo Usuario: Es el modo en el que se ejecutan los programas del usuario.
      • Modo Monitor (Supervisor, del Sistema ó Privilegiado): Son las tareas efectuadas para el sistema operativo, como por ejemplo la ejecución de trampas ó interrupciones son manejadas por el SO. Cuando el SO toma control del computador, el Sistema se encuentra en modo monitor.
    • Para manejar el modo dual se agrega un bit al Hardware del computador denominado Bit de Modo, el cual permite diferenciar en que modo se está ejecutando en ese momento el sistema. Cuando el Bit de Modo tiene un valor de (0), indica que se está ejecutando en modo monitor, y cuando el Bit tiene un valor de (1), indica que se está ejecutando en modo usuario.
  • Sistemas de Protección
    • La protección en el hardware se logra designando como Instrucciones Privilegiadas. El Hardware permite que éstas instrucciones sean ejecutadas sólo en modo monitor
    • Protección de la E/S
    • Un programa de usuario puede causar grandes inconvenientes, como por ejemplo: Un programa de usuario puede emitir instrucciones ilegales de E/S, intento de acceder a localidades de memoria dentro del espacio asignado al SO ó Negarse a liberar el CPU. Para lo cual se implementan mecanismos que evitan que tales alteraciones no ocurran.
      • Se definen que todas las instrucciones de E/S son privilegiadas.
      • Los programas de usuario nunca pueden tomar control del computador en Modo Monitor.
    • Protección de la Memoria
    • Se debe separar el espacio de memoria de cada programa de usuario, de la asignada al SO, Vector de interrupciones y las rutinas de servicio, para lograr esto se debe establecer el rango de direcciones legales al que un programa puede acceder y proteger la memoria fuera de dicho rango.
  • Sistemas de Protección
    • Esta protección se proporciona con la utilización de dos registros específicos: Registro Base y Registro Límite.
      • Registro Base: Contiene la dirección física de inicial válida para cada programa.
      • Registro Límite: Posee el tamaño del rango, lo que indica el límite del bloque de memoria.
    • Esta protección se realiza a través del Hardware del CPU, el cual compara cada dirección generada en el modo usuario con los registros. Cualquier intento por acceder a porciones de memoria fuera de éstos límites, provoca la activación de una trampa, la cual es comunicada al monitor, quien trata al intento como un error fatal.
    • Los Registros Base u Límite, solo pueden ser cargados por el SO, empleando para ello instrucciones privilegiadas especiales.
    • El SO ejecutándose en Modo monitor, tiene full acceso tanto a la memoria del monitor, como a la de los usuarios. Esto permite al SO cargar programas de usuarios en la memoria de los usuarios, realizar un vaciado de los programas en caso de errores, tener acceso y modificar parámetros de llamadas al sistema entre otros.
  • Sistemas de Protección Figura 27: Registro Base y Límite Figura 28: Diagrama de Flujo de protección de direcciones mediante el Hardware
  • Sistemas de Protección
    • Protección del CPU
    • Se debe impedir que un programa de usuario se atasque y en un ciclo infinito y que nunca regrese el control al SO. Para éste propósito se utiliza un Temporizador ó Timer, el cual puede interrumpir al computador después de un tiempo determinado.
      • Temporizadores Fijos: Los cuales manejan una porción de tiempo fija.
      • Temporizadores Variables: El cual se implementa mediante un reloj de tasa fija y un contador. El SO ajusta el contador, y cada vez que se de un pulso de reloj el contador se decrementa hasta llegar a cero, y entonces se genera una interrupción. Entre los usos más comunes de un temporizador, se da en los TSS, otro ejemplo es para calcular la hora actual.
        • Antes de entregar el control al usuario, el SO asegura que el temporizador esté ajustado para activar una interrupción. Si el temporizador intrrumpe, el control se transfiere automáticamente al SO, el cual puede tratar a la interrupción como un error fatal o darle al programa más tiempo. Las instrucciones que modifican la operación del temporizador son, privilegiadas.
  • Arquitectura General del Sistema
    • Tipos de Instrucciones Privilegiadas
    • Las Instrucciones de E/S.
    • Las Instrucciones para prender y apagar el sistema de interrupciones.
    • Las operacionesdel temporizador.
    • Las Instruccines para cambiar de modo usuario a modo privilegiado.
    • Cualquier cambio en el bit de modo.
    • Debido a que las operaciones de E/S son privilegiadas, sólo pueden realizarlas el SO, por lo cual, para que un programa de usuario realice una operación de E/S válido o inválido, el programa del usuario debe solicitar al SO que realice éstas operaciones para él.
    • Está solicitud es conocida como Llamadas al Sistema, las cuales se invocan de diversas formas dependiendo de la funcionalidad proporcionada por el CPU. Este, método es usado por un proceso para soliictar una acción por el SO. Por lo general tiene la forma de una trampa con referencia a una localidad específica en el vector de interrupciones.
  • Arquitectura General del Sistema
    • Cuando ocurre un Syscall, esta es tratada por el hardware como una interrupción de software.
    • El control pasa a través del vector de interrupciones a una rutina de servicios en el SO. Y el bit de modo cambia a modo monitor.
    • La rutina de servicio de la Syscall es parte del SO.
    • El monitor examina la instrucción que realiza la interrupción para determinar que Syscall ha ocurrido. Un parámetro indica que tipo de servicio está solicitando el programa del usuario.
    • La información adicional puede ser pasada en registros, en la pila ó en memoria.
    • El monitor verifica que los parámetros sean correctos y válidos, ejecuta la solicitud y regresa el control a la instrucción que va después de la Syscall.
    • .
  • Arquitectura General del Sistema
    • Un programa de usuario ejecuta una Syscall para solicitar que el SO realice una operación de E/S.
    • EL SO, se ejecuta en modo monitor, verifica que la solicitud sea válida.
    • Si es válida realiza la operación E/S, solicitada.
    • Al culminar el SO regresa el control al usuario, cambiando el bit de modo a modo usuario.
    Figura 29: ejemplo de una Syscall para realizar operaciones E/S
  • Estructuras de los SO
    • Administración de los Procesos
    • El SO es responsable de las siguientes actividades relacionadas con la administración de un Proceso:
      • Crear y eliminar procesos de usuario y procesos del sistema.
      • Suspender y continuar procesos.
      • Proporcionar mecanismos para la sincronización de procesos.
      • Proporcionar mecanismos para la comunicación de procesos.
      • Proporcionar mecanismos para el manejo de bloqueos mutuos (Deadloock).
    • Administración de la Memoria Principal
    • El SO es responsable de las siguientes actividades relacionadas con la administración de la Memoria:
      • Llevar un registro de las partes e la memoria que están siendo utilizadas en el momento y quién las está utilizando.
      • Decidir qué procesos se vana cargar en la memoria cuando el espacio de la misma esté disponible.
  • Estructuras de los SO
      • Asignar y liberar espacio de la memoria cuando el espacio de la misma esté disponible.
    • Administración de Archivos
    • Es uno de los componentes más visibles en un SO.
    • Los computadores almacenan la información en varios tipos de medios físicos diferentes.
    • Cada medio es controlado por un dispositivo, que tiene características propias como: velocidad de acceso, capacidad, velocidad de transferencia y métodos de acceso.
    • El SO proporciona una vista lógica uniforme del almacenamiento de la información, esta unidad lógica es el archivo.
    • El SO hace un mapa de los archivos en los medios físicos y accede a estos vía los dispositivos de almacenamiento.
    • Los archivos son organizados en directorios para facilitar su uso. Cuando varios usuarios acceden a los archivos es necesario controlar dicho acceso y de que manera: Lecturas, Escrituras, Anexos..
  • Estructuras de los SO
    • El SO es responsable de las siguientes actividades relacionadas con la administración de Archivos:
      • Crear y eliminar Archivos.
      • Crear y eliminar directorios.
      • Dar soporte a primitivas para la manipulación de archivos y directorios.
      • Hacer un mapa de los archivos en el almacenamiento secundario.
      • Respaldar archivos en medios de almacenamiento estables (No volátiles).
    • Administración del Sistema de E/S
    • Entre los propósitos de un SO está el ocultar al usuario las peculiaridades de los dispositivos específicos de hardware, por ejemplo el subsistema de E/S, el cual consta de:
      • Un componente de administración de memoria que incluye manejo de buffers, asignación de caché y spooling (Operación simultánea de periféricos en línea).
      • Una interfaz general de manejadores de dispositivos.
      • Controladores para dispositivos de hardware específicos.
  • Estructuras de los SO
    • Administración del Almacenamiento Secundario
    • El SO es responsable de las siguientes actividades relacionadas con la administración de Discos:
      • Administración del espacio libre.
      • Asignación de almacenamiento.
      • Planificación del disco.
    • Estructuras de los SO
    • Sistemas Monolíticos
    • Generalmente, el Kernel de un sistema monolítico estpa formado por un único proceso con todos sus componentes (funcionalidades) compartiendo el mismo espacio de direcciones., las funcioanlidades se ven limitadas por el hardware, con lo cual los niveles de protección del mismo no existen, ya que el hardware no incluye bits de modo, para operaciones modo dual.
  • Estructuras de los SO
    • Enfoque por capas
    • Es un enfoque común de diseño de un SO, consiste en dividir las tareas en pequeños componentes en logar de tener un sistema monolítico, examinemos como éstos componentes están interconectados y combinados en un Kernel (Núcleo del SO).
    • La principal ventaja de éste enfoque es la Modularidad, lo que simplifica la depuración y la verificación del sistema, yendo desde la capa más inferior (Capa 0) el Hardaware, hasta la más alta (capa 13), interfaz del usuario.
      • Consiste en visualizar al SO como una serie de niveles.
      • Cada nivel realiza un sub conjunto de relacionado de funciones.
      • Cada nivel confía en el próximo nivel más bajo para ejecutar mas funciones primitivas.
      • Existen interfaces bien definidas: un nivel puede modificarse sin afectar los otros niveles.
      • Se descompone un problema en varios sub problemas más manejables.
  • Estructuras de los SO Figura 30: Capa de un SO
  • Estructuras de los SO
  • Estructuras de los SO
    • Sistemas Operativos Modernos
    • Introducción de nuevos elementos de diseño:
    • En respuesta al desarrollo de nuevo Hardware.
      • Maquinas con multiprocesadores.
      • Redes de gran velocidad.
      • Procesadores más rápidos y memorias más grandes.
    • En respuesta a nuevas necesidades de Software
      • Aplicaciones Multimedia.
      • Acceso a Internet y al Web
      • Aplicaciones Cliente/Servidor
    • Muchos de los enfoques y diseños que se han implementado encaja en alguna de las siguientes categorías:
    Estructuras de los SO
      • Microkernels.
      • Máquinas Virtuales
      • Diseño Orientado a Objetos.
      • Multithreads
      • Multiprocesamiento simétrico.
      • Cluster
      • Máquinas Virtuales
    • MicroKernels
      • Estructura el SO removiendo todos los componentes no esenciales del Kernel, e implementándolos como programas del sistema y de nivel de usuario. Como resultado se obtiene un Kernel más pequeño.
      • Típicamente proporcionan una administración mínima de los procesos y de la memoria, además de un servicio de comunicaciones.
      • Proporciona un alto grado de flexibilidad y modularidad.
    Estructuras de los SO
  • Estructuras de los SO
      • Entre sus beneficios se tienen la Facilidad de extender el SO.
      • Proporciona mayor seguridad y confiabilidad. Si un servicio falla, el resto el SO permanece intacto.
      • Se popularizó en el SO Mach de Unix.
      • Implementado en Windows NT, el cual exige un alto grado de portabilidad y modularidad como principales beneficios.
      • Reemplaza la tradicional estratificación vertical de un SO en capas, con una horizontal.