Full Transcript

Vicente Sancho Guijarro 28 TEMARIO OPOSICIONES COIICV | TEMA 26 Figura 6: Organización de Windows en modo kernel. El nivel del kernel está implementado en C, usando ensamblador sólo cuando es absolutamente necesario. Tiene cuatro responsabilidades principal es: • Planificación de hilos de ejecución....

Vicente Sancho Guijarro 28 TEMARIO OPOSICIONES COIICV | TEMA 26 Figura 6: Organización de Windows en modo kernel. El nivel del kernel está implementado en C, usando ensamblador sólo cuando es absolutamente necesario. Tiene cuatro responsabilidades principal es: • Planificación de hilos de ejecución. Cada proceso t iene uno o más hilos, y cada hilo tiene su propio estado, prioridad, afinidad de procesador y uso de la CPU. Los seis posibles estados son: preparada, lista, en ejecución, en esp era, en transición y terminada. El planificador utiliza un esquema de 32 niveles de prioridad (a más nivel, más prioridad), divididas en dos grupos: clase variable (de 1 a 15) y clase de tiempo real (de 16 a 31). Si no se encuentra un hilo preparado, se ejecuta un hi lo especial llamado hilo de inactividad (idle thread) el cual tiene prioridad 0. Windows no es un sistema de tiempo real estricto, por lo que no se garantiza que un hilo de tiempo real p ueda comenzar a ejecutarse dentro de un límite de tiempo. • Implementación de primitivas de sincronización. Las estructuras de datos clave del sistema operativo se gestionan como objetos, utilizando fun ciones comunes para la asignación, para el recuento de referencias y para la seguridad . Los objetos del planificador controlan la sincronización dentro del sistema. Algunos ejemp los de estos objetos son:  Eventos. Usados para registrar un evento ocurrido y para sincronizarlo con alguna acción.  Mutantes. Suministra exclusión mutua del modo usuar io y el modo kernel, asociado al concepto de propiedad.  Mutex. Proporciona exclusión mutua antibloqueos en el modo kernel.  Semáforo. Controla el número de hilos que acceden a un recurso. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Concepto, evolución y tendencias de los sistemas op erativos TEMARIO OPOSICIONES COIICV | TEMA 26 29  Hilo. Es la entidad que es planificada por el kerne l. Está asociada al objeto proceso, el cual encapsula su propio espacio virtual de direcci ones.  Temporizador. Lleva el control del tiempo y envía u n timeout cuando una operación tarda demasiado y necesita ser interrumpida. • Tratamiento de interrupciones y excepciones. Pueden ser producidas por software o por hardware. Windows define diversas excepciones indep endientes de la arquitectura como pueden ser: violación de acceso a memoria, desborda miento de entero, división por cero, instrucción ilegal, etc. Cada interrupción tiene un a prioridad asociada y el servicio de las interrupciones se realiza según el orden de priorid ad. Windows tiene 32 niveles de solicitud de interrupción (IRQ, interrupt request level). Tabla VII: Niveles de peticiones de interrupción de Windows Nivel Tipo de interrupción 31 Error de bus o de comprobación de máquina 30 Fallo de energía 29 Notificación interprocesador (petición de actuac ión a otro procesador) 28 Reloj 27 Perfil 3 – 26 PC IRQ – Interrupciones hardware tradicional es 2 Deferred Procedure Call (DPC) 1 Asynchronous Procedure Call (APC) 0 Asignación del procesador y multiprogramación • Conmutar entre el modo usuario y el modo kernel. Ca da hilo realmente puede dividirse en dos: hilo de modo usuario e hilo de modo kernel. Cu ando un hilo de usuario requiere un cambio a modo kernel, el kernel se encarga de ello, devolviendo luego la ejecución al modo usuario. El sistema ejecutivo (executive) proporciona un con junto de servicios utilizado por todos los subsistemas de entorno. Estos servicios se pueden a grupar de la siguiente manera: • Gestor de Objetos. Para gestionar las entidades de modo kernel, Windows utiliza un conjunto genérico de interfaces que son manipuladas por los programas de modo usuario, llamadas objetos. El sistema ejecutivo permite prop orcionar un nombre interno a cada objeto, los cuales se manipulan mediante un conjunt o de funciones virtuales como create(), open(), close() o delete() entre otras. El gestor d e objetos es la única entidad que genera descriptores de objetos. Un descriptor es un identi ficador unívoco para un proceso y que confiere a este la capacidad de acceder y manipular un recurso del sistema. Cada objeto está protegido mediante una lista de co ntrol de acceso que contiene los ID de seguridad y los derechos de acceso concedidos. Gene ralmente, el creador del objeto determina la lista de control de acceso al mismo. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Vicente Sancho Guijarro 30 TEMARIO OPOSICIONES COIICV | TEMA 26 • Gestor de memoria virtual. Gestiona el espacio virt ual de direcciones, la asignación de memoria física y la paginación. Windows utiliza un esquema de gestión basado en página con un tamaño de página de 4KB en procesadores comp atibles con IA32 y de 8KB en máquinas IA64. En los procesadores IA32, cada proceso tiene un esp acio virtual de direcciones de 4GB, siendo los dos primeros fundamentalmente idénticos en todos los procesos ya que son utilizados en modo kernel para acceder al código y a las estructuras de datos del sistema y los dos últimos específicos de cada proceso, tanto en modo kernel como en modo usuario. Windows implementa la memoria compartida definiendo un objeto sección. Después de obtener un descriptor de un objeto sección, los pro cesos mapean la parte de memoria que necesitan dentro de su espacio de direcciones. La p rotección de las páginas componentes de la sección puede configurarse como de sólo lectu ra, de lectura-escritura, de lectura- escritura-ejecución, de sólo ejecución, sin acceso o de copia durante la escritura. Una página física puede encontrarse en uno de los s iete posibles estados: válida, libre, borrada, modificada, reserva, corrupta o en transic ión. Windows usa una política de reemplazo LRU (Least Re cently Used) para las páginas de los procesos, donde se reemplazan las que estadísticame nte tienen menos probabilidad de ser usadas nuevamente. • Gestor de procesos. Proporciona servicios para crea r, borrar y utilizar procesos, hilos y trabajos. No tiene ningún conocimiento de las relac iones padre-hijo ni de las jerarquías de los procesos. No está implicado en la planificación , ya que de esto se encarga el planificador del kernel, pero sí que configura las prioridades y afinidades de los procesos. Los propios procesos pueden agruparse en objetos tr abajo. El gestor de procesos también implementa la entrega y puesta en cola de llamadas a procedimiento asíncrona (APC) a los hilos, las cual es son utilizadas para iniciar la ejecución de hilos, completar la E/S, terminar los hilos y procesos y para asociar depuradores. • Funcionalidad de llamada a procedimientos locales. Utiliza un modelo cliente-servidor. Muchas características como la gestión de la seguri dad, de la impresión, las funciones plug-and-play utilizan este modelo. Para reducir el consumo de memoria se suelen agrupar dentro de unos cuantos procesos en el programa scvh ost.exe. La implementación normal de este paradigma es la de utilizar RPC para las peticiones. Para el transporte de las llamadas del cliente al s ervidor se utiliza ALPC (Advance Local Procedure Call Facility). Sin embargo, en las etapa s tempranas del arranque RPC no está disponible, por lo que los servicios nativos de Win dows utilizan ALPC directamente. • Gestor de E/S. Es el responsable de los sistemas de archivos, controladores de dispositivos y controladores de red, gestionando ta mbién los buffers para las solicitudes de E/S. Es fundamentalmente asíncrono. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Concepto, evolución y tendencias de los sistemas op erativos TEMARIO OPOSICIONES COIICV | TEMA 26 31 Los controladores de dispositivos de Windows se esc riben de acuerdo a la especificación WDM (Windows Driver Model). Para facilitar el desar rollar controladores con este modelo, existen los controladores de puerto. Dentro de una clase de dispositivos similares (controladores de audio, SCSI, etc.), cada instanci a de un dispositivo comparte un controlador común de la clase denominado controlado r de puerto. Este controlador implementa las operaciones estándar para la clase y luego invoca las rutinas específicas del dispositivo dentro del controlador de minipuert o de éste. • Gestor de caché. Coopera estrechamente con el gesto r de memoria virtual con el fin de proporcionar servicios de caché para todos los comp onentes que están bajo el control del gestor de E/S. El almacenamiento en caché en Window s está basado en archivos. Está dividida en bloques de 256 KB, cada uno de los cual es puede almacenar una vista de un archivo. Para cada archivo abierto, el gestor de ca ché mantiene una matriz índice VACB independiente que describe el almacenamiento en cac hé para el archivo completo. • Monitor de referencia de seguridad. La centralizaci ón de la gestión de las entidades del sistema en el gestor de objetos permite a Windows u tilizar un mecanismo uniforme para llevar a cabo las validaciones de acceso en tiempo de ejecución y las comprobaciones de auditoría para todas las entidades del sistema. Cad a vez que un proceso abre un descriptor de un objeto, el monitor de referencia d e seguridad (SRM, Security Reference Monitor) comprueba el testigo de seguridad del proc eso y la lista de control de acceso del objeto para ver si el proceso tiene los derechos ne cesarios. • Gestor plug-and-play. El sistema operativo utiliza el gestor plug-and-play (PnP) para reconocer los cambios en la configuración hardware y adaptarse a los mismos, mientras el sistema sigue funcionando. El gestor también contro la los recursos utilizados por cada dispositivo y se responsabiliza de cargar los contr oladores apropiados. Como algunos programas del sistema se interesan por la adición o la desconexión de dispositivos, el gestor PnP soporta notificaciones. • Gestor de energía. Windows soporta estrategias sofi sticadas de eficiencia energética. El gestor de energía detecta las condiciones del siste ma actuales, como la carga de la CPU y de los dispositivos de E/S, y mejora la eficiencia energética reduciendo el rendimiento del sistema cuando las necesidades son bajas. Incluso p uede copiar todo el contenido de la memoria en el disco y apagar el sistema, a lo cual le llama hibernar, permitiendo el poder volver a arrancar en muy poco tiempo. Al igual que el gestor PnP, también soporta notificaciones, ya que a algunas aplicaciones les i nteresa conocer cuándo se va a apagar el sistema para poder guardar sus estados antes de que esto se produzca. • Registro. Windows mantiene buena parte de su config uración en unas bases de datos internas, llamadas colmenas (hives), pero comúnment e llamado Registro. Existen distintas colmenas para la información del sistema, las prefe rencias del usuario, la instalación de software y para la seguridad. Se implementa como un componente del ejecutor porque contiene información necesaria para el arranque del sistema. El registro de Windows representa la configuración de cada colmena como espacio de nombres de claves jerárquico (directorios), cada un o de los cuales puede contener un Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Vicente Sancho Guijarro 32 TEMARIO OPOSICIONES COIICV | TEMA 26 conjunto de valores de distintos tipos: cadena UNIC ODE, cadena ANSI, entero o datos binarios sin tipo. Cuando se produce una actualización importante del sistema, como instalación de drivers o actualizaciones del sistema, Windows crea un punto de recuperación del sistema antes de hacer dichos cambios. Para incrementar la estabilid ad del registro, Windows añade un mecanismo de transacciones llamado KTM (Kernel Tran saction Manager), el cual puede ser usado para prevenir actualizaciones parciales d el registro. • Arranque. El arranque de un equipo con Windows comi enza cuando se enciende el hardware y comienza la ejecución del firmware de la ROM. En equipos antiguos era llamado BIOS, pero los sistemas modernos utilizan U EFI (Unified Extensible Firmware Interface). Tras esto, el firmware localiza el disc o del sistema, carga el programa bootmgr y comienza la ejecución del mismo para arrancar el si stema operativo. Si el sistema estaba hibernando, carga el programa winresume, mientras q ue, si estaba completamente apagado, bootmgr lleva a cabo la inicialización del sistema y entonces carga el programa winload, el cual carga hal.dll, el kernel (ntoskrnl .exe), los drivers necesarios y el sistema de colmenas. Una vez terminado todo el proceso, transf iere la ejecución al kernel. El kernel se inicializa y crea dos procesos:  Proceso del sistema, contiene todos los hilos inter nos del kernel y nunca se ejecuta en modo usuario.  Proceso en modo usuario, llamado SMSS (Session Mana ger SubSystem), el cual lleva a cabo la inicialización del sistema, incluyendo lo s ficheros de paginación, carga de drivers y la gestión de usuarios de Windows. 3.2.1. Sistema de archivos NTFS El sistema nativo de archivos en Windows es NTFS y se usa en todos los discos locales. Algunos dispositivos externos (lápiz USB, disco externo, ta rjeta de memoria, etc.) pueden seguir usando FAT32, pero una de sus desventajas es que no es cap az de restringir el acceso a los archivos por parte de los usuarios autorizados. En cambio, NTFS utiliza ACLs (Access Control List) para controlar el acceso a archivos individuales y sopor ta encriptación mediante BitLocker. La entidad fundamental de NTFS es el volumen y está basado en una partición lógica de disco. No trata con los sectores individuales del disco, sino que utiliza clústeres como unidades de asignación de disco, el tamaño de los cuales es sie mpre una potencia de 2 y se selecciona al formatear el disco. NTFS utiliza LCNs (Logical Clus ter Numbers) como direcciones de disco, numerando los clústeres desde el principio hasta el final del disco. Un archivo en NTFS no es un simple flujo de bytes c omo en UNIX, sino que es un objeto estructurado en atributos tipados. Todos los archiv os en NTFS se describen mediante uno o más registros dentro de una matriz almacenada en un arc hivo especial denominado MFT (Master File Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Concepto, evolución y tendencias de los sistemas op erativos TEMARIO OPOSICIONES COIICV | TEMA 26 33 Table). Cada archivo tiene un ID unívoco denominado referencia de archivo, el cual es un valor de 64 bits. El espacio de nombres de NTFS está organizado como una jerarquía de directorios. Cada directorio utiliza una estructura de datos denomina da árbol B+ para almacenar un índice de los nombres de archivo contenidos en ese directorio. Es te árbol elimina el coste de reorganizar el árbol. Además del archivo MFT, se crea otro archivo con un a copia de las 16 primeras entradas de la tabla del mismo, que se utilizará para recuperar la MFT si ésta resulta dañada. Los siguientes archivos que se crean también son de propósito espe cial e incluyen el archivo de registro, el archivo de volumen, la tabla de definición de atrib utos, el directorio raíz, el archivo de mapa de bit s, el archivo de arranque y el archivo de clústeres er róneos. 3.2.2. Active Directory El directorio activo o Active Directory, es la impl ementación de Windows de los servicios LDAP (Lightweight Directory Access Protocol). Almacena l a información acerca del dominio, gestiona las cuentas de los usuarios y los grupos de usuarios de l dominio, así como sus contraseñas, y proporciona los soportes que necesita, como las Pol íticas de Grupo de Windows. Los administradores emplean estas políticas para establ ecer estándares relativos a las preferencias y al software de las máquinas a las que acceden los u suarios. 4. Los sistemas Android El sistema operativo Android está diseñado para tel éfonos móviles y, más recientemente, para tabletas. Está basado en el kernel de Linux, pero c ombina código abierto (AOSP, Android Open Source Project) con aplicaciones de terceros con có digo cerrado. Google implementó Android para dar soporte a una am plia variedad de servicios propios en la nube (Gmail, sincronización de calendario y contact os, mensajería nube-dispositivo, etc.). Google Play es la tienda online de Google para las aplicac iones de Android. Las distintas versiones se suelen identificar comer cialmente con nombres de postres, por orden alfabético. Las dos primeras versiones no obtuviero n este identificativo, pero desde la tercera versión (1.5), se comenzó por la letra C con Cupcak e. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019