Escuela Universitaria Politécnica Ingeniería Técnica en Obras Públicas Construcciones Civiles Informática Básica Examen Práctico - Extraordinaria Especial Sabado 11 de Diciembre de 2004 9:00 -12:00 – Aula II de Informática Universidad de Las Palmas de Gran Canaria Notas Aclaratorias Cree en su disquete un directorio, y nómbrelo con sus apellidos, seguido de su nombre en minúsculas y separados por guión “-“, no utilice tildes. Así pues, si su nombre es “José Manuel Ramírez Pérez”, debe crear un directorio en su disco y nombrarlo “ramirez-perez-jose-manuel”. El disquete SÓLO debe contener ese directorio al final del examen. Copie en el mencionado directorio los ficheros COMPRIMIDOS correspondientes a los diferentes ejercicios. Debe escribir en la etiqueta del disco sus apellidos y nombre, por este orden, así pues, si su nombre es José Manuel Ramírez Pérez, debe escribir “Ramírez Pérez, José Manuel”. Además debe escribir en qué sesión se ha examinado. Una vez finalice el examen debe entregar el disquete y una copia al examinador. Ejercicio 1- Microsoft Word (2 puntos) Utilizando el fichero de texto sin formato “plasticos-mayco-sin-formato” debe crear un documento llamado “ejercicio-1” en Microsoft Word con el mismo FORMATO que el documento de 4 páginas llamado “Plásticos Mayco” que se adjunta tras el enunciado de este examen práctico. Los tipos de letra utilizados son los siguientes: Portada y Título del documento: “Times New Roman” tamaño 28, y “Arial” tamaño 16. Resto del documento: “Arial Narrow” tamaño 12 para los títulos de apartado, y firma final, y tamaño 10 para el resto. Ejercicio 2 - Microsoft Word (3’5 puntos) Cree un nuevo documento llamado “ejercicio-2” a partir del documento Word “software-delatlantico-sin” al añadirle: (1’5 puntos) Una estructura de secciones con encabezados y píes de página. Utilice Arial Narrow tamaño 8. (1 punto) Una tabla de contenidos generada automáticamente. Utilice Arial Narrow tamaño 12 en negrita (1 punto) Un índice alfabético final generada automáticamente. Utilice Arial Narrow tamaño 12 en negrita. De forma que el documento final sea idéntico al documento llamado “Multiprogramación en Microsoft Windows NT” que se adjunta tras el enunciado de este examen práctico. Ejercicio 3 - Microsoft Excel (2 puntos) Cree un documento en Microsoft Excel llamado “ejercicio-3” que realice el cálculo de la Figura 1. Figura 1: Ejercicio 3 1/2 Escuela Universitaria Politécnica Ingeniería Técnica en Obras Públicas Construcciones Civiles Universidad de Las Palmas de Gran Canaria Informática Básica Examen Práctico - Extraordinaria Especial Sabado 11 de Diciembre de 2004 9:00 -12:00 – Aula II de Informática Ponga atención en que el cálculo de la Nota Total tanto en el Examen Práctico como en el Examen Teórico debe hacerse teniendo en cuenta los distintos porcentajes correspondientes a cada una de la pruebas (P1,P2 y P3) de las que cada uno de los exámenes se compone. Observe además que para el cálculo de la Nota Final Total, cada una de las Notas Totales de los Exámenes Práctico y Teórico debe ser sumada considerando el porcentaje que se le ha atribuido, tal y como se puede observar en la figura. Recuerde que los cálculos de estas notas deben realizarse íntegramente mediante fórmulas en las distintas casillas donde corresponda. Ejercicio 4 - Microsoft Access (2’5 puntos) Añada a la base de datos contenida en el fichero “base-de-datos-97”: (0’75 punto) Las relaciones que considere necesarias entre las tres tablas (Aspirantes, Pruebas y Pruebas Realizadas) que la componen. (0’75 punto) Una consulta que permita determinar todas las personas que han superado la prueba de “Natación”. (1 punto) Una consulta que solicite el código de una prueba y a continuación determine todas las personas que no la han superado. Suponga que para superar cualquiera de las pruebas, el resultado (campo “Resultado” en la tabla “Pruebas Realizadas”) que un alumno debe obtener en una prueba siempre debe ser menor o igual que los umbrales correspondientes a cada sexo en cada una de las pruebas contenidos en la tabla “Pruebas” (campos “Mínimo H” y “Mínimo M” aplicables a hombres y a mujeres respectivamente). Una vez haya hecho tales cambios renombre la base de datos con el nombre “ejercicio-4”. 2/2 Plásticos Mayco S.A. Informe trimestral de ventas Primer trimestre Plásticos Mayco S.A. Informe trimestral de ventas Primer trimestre 1. Introducción Tal y como esperábamos cuando acometimos este negocio, los productos informáticos, como las cubiertas para teclado o los estuches protectores, han experimentado una importante alza. ¡Enhorabuena a todos! Una revisión inicial de las ventas nacionales revela un ascenso de las ventas de Mayco en todas las zonas comerciales. Hemos añadido nuevos clientes y nuevos productos se hallan en camino. 2. Actualizaciones por zonas Zona Norte Tras varios años de caída de las ventas debido al declive en el sector del automóvil, Vladimiro Serrano y sus compañeros tienen algo que celebrar. Zona Centro Juan Martínez y su grupo están realizando un excelente trabajo en Toledo. Han asegurado importantes contratos de una amplia serie de productos nuevos y de los ya existentes. La mayor parte de su negocio proviene de la Corporación de Equipamiento informático, un destacado cliente de Mayco. Zona Sur Marcos Díaz y su grupo han llevado a cabo un buen trabajo manteniendo relaciones comerciales con la sección de Desarrollo de los Productos Belsur, en Almería. 3. Estudio informático En marzo, se realizará un estudio general bajo la dirección de Catalina Domingo y Antonio Segura, de la sección de procesamiento de datos, para determinar la forma más efectiva de utilizar la automatización en nuestra firma. Este proceso de informatización nos proporcionará un gran aumento de ventas al final de este año. 4. Reunión trimestral Esta vez, la reunión trimestral se desarrollará en Valencia. Adjunto a este informe, encontrará la información pertinente. 5. Conclusión Si esta recuperación continúa como hasta la fecha, este año supondrá un gran éxito para todos en Mayco. Queremos felicitar a todos por su excelente trabajo y, principalmente, por haberos mantenido al lado de Mayco en los malos momentos. ¡Sigamos trabajando así! Juan Pérez Coordinador regional Plásticos Mayco S.A. Software del Atlántico S.A. Informe Interno 7659 Multiprogramación en Microsoft Windows NT Tabla de Contenidos 1. El sistema operativo Windows NT.................................................................................................................... 1 1.1. Objetivos de diseño. ................................................................................................................................... 1 2. Estructura de Windows NT. .............................................................................................................................. 2 2.1. Los subsistemas protegidos...................................................................................................................... 2 2.1.1. El Subsistema Win32............................................................................................................................ 2 2.2. El Ejecutor. .................................................................................................................................................. 3 3. Los procesos en Windows NT.......................................................................................................................... 4 3.1. Procesos y subprocesos (threads)............................................................................................................ 4 3.2.1. Clases de prioridad de un proceso. .................................................................................................... 5 3.2.2. Prioridad relativa de un subproceso................................................................................................... 5 3.2.3. Suspensión y activación de subprocesos. ........................................................................................ 6 3.2.4. Procesos hijos y herencia. .................................................................................................................. 6 4. Sincronización entre procesos y subprocesos............................................................................................... 7 4.1. Secciones Críticas. ..................................................................................................................................... 7 4.2 Sincronización con objetos Windows NT. ................................................................................................. 7 4.2.1. Mutexes. ................................................................................................................................................ 8 4.2.2. Semáforos. ............................................................................................................................................ 8 4.2.3. Eventos.................................................................................................................................................. 8 4.3. Memoria compartida: ficheros mapeados en memoria. .......................................................................... 9 4.4. APC o Llamadas Asíncronas a Procedimientos....................................................................................... 9 4.5. Suspensión de procesos............................................................................................................................ 9 5. IPC o Comunicaciones Entre Procesos en Windows NT. ............................................................................ 10 6. Referencias. ..................................................................................................................................................... 11 Informe Interno 7659 – Página i Multiprogramación en Windows NT Software del Atlántico S.A. – Informe Interno 7659 1. El sistema operativo Windows NT. Windows NT es un sistema operativo de 32 bits, multiplataforma, multitarea, multiusuario y multiprocesador. Otras características se explican a si mismas observando cuales fueron los objetivos de diseño que se pretendían conseguir. 1.1. Objetivos de diseño. Como objetivos de diseño del sistema operativo se plantearon los siguientes: Extensibilidad: El código tiene que estar escrito para crecer cómodamente y cambiar según evolucionen las necesidades del mercado. Esto dio lugar a que el NT tome una estructura modular, utilice objetos para representar los recursos del sistema, soporte drivers cargables de dispositivo e implemente el mecanismo RPC o Llamada a Procedimiento Remoto. Transportabilidad: El código ha de ser fácilmente movible de un procesador a otro. Este objetivo se traduce en la codificación del sistema operativo en lenguaje C portable principalmente, además de aislar todo el código dependiente del procesador y de las distintas plataformas en las que el NT funciona. Fiabilidad y Robustez: El sistema operativo debería protegerse a sí mismo del mal funcionamiento interno y de los fallos externos. Debería comportarse de forma predecible en todo momento, y las aplicaciones no deberían poder dañar al sistema operativo o a su funcionamiento. Para conseguir este objetivo el NT implementa un nuevo sistema de ficheros, el NTFS (NT File System) más robusto, un sistema de seguridad para cualquier tipo de objeto en el sistema, además de considerar separados los espacios de direcciones de cada proceso en ejecución. Compatibilidad: Aunque Windows NT debería extender la tecnología existente, su interfaz de usuario y las API deberían ser compatibles con los sistemas ya existentes de Microsoft. Esto dio lugar al concepto de subsistemas protegidos que proporcionan entornos de ejecución para aplicaciones Win32, Win16, MSDOS, OS/2, POSIX y LAN Manager. Además soporta los sistemas de ficheros FAT de MSDOS, el HPFS de OS/2, y el nuevo NTFS. Rendimiento: Dentro de las limitaciones impuestas por el resto de los objetivos de diseño, el sistema debería ser lo más rápido posible en cualquier plataforma hardware. Para llevar a cabo este objetivo se tuvo en cuenta el rendimiento en el diseño de cada componente del NT, se adoptó un paso de mensajes de alta de velocidad a los subsistemas de entorno llamado LPC o Llamada a Procedimiento Local (Local Procedure Call) y además los componentes cruciales del software de red se implementaron en la parte privilegiada del sistema operativo. Informe Interno 7659 – Página 1 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT 2. Estructura de Windows NT. La estructura de Windows NT puede dividirse en dos partes: la porción de modo usuario del sistema y la porción de modo kernel. En la figura siguiente se muestra tal estructura. 2.1. Los subsistemas protegidos. Los subsistemas protegidos o servidores se ejecutan en modo usuario. Cada subsistema protegido proporciona una API o Interfaz de Programación de Aplicaciones (Application Programming Interface) distinto a los programas. En NT existen dos tipos de subsistemas protegidos: Los subsistemas de entorno: estos proporcionan un API específico para distintos sistemas operativos (Win32, Win16, MSDOS, OS/2 y POSIX). Los subsistemas integrales: estos son “servidores” que realizan funciones importantes del sistema operativo (el subsistema de seguridad, los distintos subsistemas de red, ...). 2.1.1. El Subsistema Win32. Este el subsistema de entorno más importante de Windows NT que suministra la API de Windows de 32 bits a las aplicaciones. Además proporciona el interfaz gráfico de usuario (GUI, Graphical User Interface) y controla todas las Informe Interno 4358 – Página 2 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT E/S de los procesos, también este subsistema es utilizado por el resto de los subsistemas de entorno para recibir las entradas de usuario y mostrar la salida por pantalla. 2.2. El Ejecutor. El ejecutor de Windows NT es la parte del sistema operativo que se ejecuta en modo kernel, y excepto en lo que se refiere al interfaz de usuario, constituye un sistema operativo completo en sí mismo. Consiste en una serie de componentes, cada uno de los cuales presentan dos conjuntos de funciones: servicios del sistema, que pueden ser llamados por subsistemas de entorno y otros componentes del ejecutor, y funciones o rutinas internas, disponibles solamente para componentes del ejecutor. Informe Interno 4358 – Página 3 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT 3. Los procesos en Windows NT. 3.1. Procesos y subprocesos (threads). Un proceso es una instancia en ejecución de una aplicación. Cada proceso consta de bloques de código y datos que se ubican en el espacio de direcciones virtuales de 4 GB asignado al proceso. Un proceso también es propietario de otros recursos, tales como archivos, asignaciones de memoria dinámica y subprocesos (threads). Los diferentes recursos que se crean durante la vida de un proceso se destruyen cuando éste finaliza. En definitiva, un proceso NT es un objeto que posee un conjunto de objetos(espacio de direcciones de memoria, subprocesos, ficheros, semáforos, ventanas, ...) que representan recursos, y que existe temporalmente en el sistema, mientras se ejecuta la aplicación que representa el proceso. Un subproceso o thread es la unidad de ejecución de un proceso. Cada subproceso en un proceso esta asociado con una secuencia de instrucciones de la CPU, un conjunto de registros de la CPU y una pila, y es un objeto más del proceso. Un proceso no ejecuta código, es sólo el espacio de direcciones y recursos donde reside el código. El código contenido en el espacio de direcciones de un proceso es ejecutado mediante subprocesos, y un proceso puede contener varios subprocesos. Cuando se ejecuta un proceso por primera vez el sistema le asigna un subproceso primario con el que puede comenzar su ejecución. El kernel del Ejecutor de Windows NT es el encargado de planificar la ejecución de todos los subprocesos que se ejecutan en el sistema. El scheduling de los procesos se realiza mediante un round-robin con colas circulares de prioridad. En la siguiente figura se resumen todos los estados por los que evoluciona la vida de un subproceso en Windows NT. Windows NT asigna a cada proceso un espacio de direcciones de 4 GB. Los 2 GB superiores de este espacio están reservados para uso del sistema (el Ejecutor, el kernel, drivers, subsistemas, ...) y se impide el proceso el uso de este espacio. Los 2 GB inferiores son privados a cada proceso. Todos los subprocesos de un proceso comparten el espacio de direcciones así como el resto de los recursos del proceso. A continuación enumeramos algunas de las funciones que la API Win32 proporciona y están relacionadas con la creación, y destrucción de procesos y subprocesos: Procesos: CreateProcess, ExitProcess y TerminateProcess. Subprocesos: CreateThread, ExitThread y TerminateThread. Informe Interno 4358 – Página 4 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT 3.2. Planificación de subprocesos en Windows NT. Los subprocesos tienen asignadas prioridades. El rango de prioridades va de 1 a 31, donde 31 es la máxima prioridad. El kernel al planificar en la cola de listos la asignación de tiempo de CPU trata de igual forma a todos los subprocesos con la misma prioridad, y siempre se despachan antes los subprocesos de mayor prioridad. Además, si en un momento determinado “aparece” un proceso de una prioridad superior a la de alguno que se este ejecutando, este desplaza de la CPU a alguno de los de menor prioridad sin importar cuanto tiempo le restara de su cuanto. 3.2.1. Clases de prioridad de un proceso. Windows NT no permite asignar las prioridades numéricamente a los subprocesos, la prioridad de un subproceso la determina mediante un proceso en dos pasos. El primer paso es asignar una clase de prioridad al proceso donde va a residir el subproceso. Windows NT contempla 4 clases de prioridad diferentes: desocupado, normal, alta y tiempo real. La clase de prioridad de un proceso se puede modificar mediante la función de la API Win32 SetPriorityClass y podemos averiguarla mediante GetPriority 3.2.2. Prioridad relativa de un subproceso. Una vez un subproceso a sido creado, éste se ejecuta al nivel de prioridad de la clase de prioridad del proceso que lo creo. Esta prioridad se puede modificar con la función Win32 SetThreadPriority, y donde podemos especificar 5 niveles de prioridad. Informe Interno 4358 – Página 5 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT Además de los mostrados en la figura existen dos indicadores especiales: THREAD_PRIORITY_IDLE que es siempre 1 y THREAD_PRIORITY_TIME_CRITICAL que es 15 cuando la clase de prioridad del proceso es desocupado, normal o alta, y 31 cuando es la clase tiempo real. La siguiente figura muestra como determina el sistema el nivel de prioridad de un subproceso. 3.2.3. Suspensión y activación de subprocesos. Un subproceso puede suspenderse mediante la función Win32 SuspendThread, y para “despertarlo” ResumeThread. 3.2.4. Procesos hijos y herencia. Un proceso puede lanzar otro proceso mediante una llamada a CreateProcess. Este proceso lanzado o proceso hijo hereda todos aquellos objetos que sean heredables del proceso padre. Lo demás que se pretenda compartir con él debe hacerse o mediante memoria compartida u otro método IPC. Informe Interno 4358 – Página 6 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT 4. Sincronización entre procesos y subprocesos. 4.1. Secciones Críticas. Las secciones críticas son los objetos de sincronización más simples de usar, pero sólo pueden utilizarse para sincronizar subprocesos dentro de un proceso. Para usar una sección crítica hay que definir una variable de tipo CRITICAL_SECTION que debe de ser global para que exista en el ámbito de todos los subprocesos. Luego para usar la sección crítica usaremos las funciones Win32 EnterCriticalSection y LeaveCriticalSection. ... CRITICAL_SECTION g_SeccionCritica; /* variable global */ ... DWORD WINAPI SubprocesoPrimario(LPVOID lpvThreadParm) { ... InitializeCriticalSection(&g_SeccionCritica); /* ‘abre’ la variable sección crítica */ ... HANDLE hSubproceso1=CreateThread(...,PrimerSubproceso,...); /* Lanza el 1er. subproceso */ HANDLE hSubproceso2=CreateThread(...,SegundoSubproceso,...); /* Lanza el 2º subproceso */ ... ... ... DeleteCriticalSection(&g_SeccionCritica); /* ‘cierra’ la variable sección crítica */ ... } ... ... DWORD WINAPI PrimerSubproceso(LPVOID lpvThreadParm) { ... EnterCriticalSection(&g_SeccionCritica); /* inicio de la sección crítica */ ... /* acceso a los datos compartidos */ ... LeaveCriticalSection(&g_SeccionCritica); /* fin de la sección crítica */ ... } ... ... ... DWORD WINAPI SegundoSubproceso(LPVOID lpvThreadParm) { ... EnterCriticalSection(&g_SeccionCritica); /* inicio de la sección crítica */ ... /* acceso a los datos compartidos */ ... LeaveCriticalSection(&g_SeccionCritica); /* fin de la sección crítica */ ... } Si un subproceso A llega a EnterCriticalSection y otro subproceso B ya esta dentro de la sección crítica a la que se refiere la función, el subproceso B se supende y será despertado cuando el subproceso A libere la sección crítica con un LeaveCriticalSection. 4.2 Sincronización con objetos Windows NT. Para sincronizar subprocesos sin importar en que procesos residan, hemos de realizar la sincronización con objetos Windows NT. En NT la sincronización se puede realizar con los siguientes objetos: Procesos. Subprocesos. Archivos. Notificaciones de cambio de archivo. Informe Interno 4358 – Página 7 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT Entrada del terminal. Mutexes. Semáforos. Sucesos. En cualquier instante un objeto puede estar en dos estados distintos: señalado y no señalado. Los subprocesos pueden suspenderse hasta que un objeto pase a estado señalado. Se puede esperar que un proceso o subproceso finalice, o que termine la lectura de un archivo en una E/S asíncrona, o que el usuario teclee algo. De la anterior enumeración de objetos los mutexes, los semáforos y los eventos fueron diseñados específicamente para sincronizar accesos a datos entre procesos, y estos son los que a continuación detallaremos. Existen principalmente en Win32 dos funciones para que los subprocesos esperen a que algún objeto este señalado. WaitForSingleObject: espera a que un objeto este señalado. WaitForMultipleObjects: espera a que estén señalados varios o algún objeto de un conjunto de objetos. Y mediante ellas los subprocesos esperan para tomar posesión de los distintos objetos de sincronización. 4.2.1. Mutexes. Los mutexes son parecidos a las secciones críticas excepto que podemos utilizarlos para sincronizar accesos a datos entre múltiples procesos. Las funciones Win32 que afectan este tipo de objetos son: CreateMutex. OpenMutex. ResetMutex. Un mutex tomado por un subproceso sólo puede liberarlo dicho subproceso. La función CloseHandle se utiliza para cerrar un mutex abierto por un subproceso. También es utilizada con los semáforos y eventos. 4.2.2. Semáforos. Los semáforos son similares a los mutexes. La mayor diferencia es que es posible que un subproceso libere un semáforo que el no “tomó”. La otra gran diferencia es que mientras un mutex permite acceso exclusivo sólo a un subproceso, un semáforo puede permitir acceso simultáneo a un nº finito de subprocesos, este nº finito se establece cuando se crea el semáforo. A continuación se muestran las funciones Win32 asociadas con los semaforos: CreateSemaphore. OpenSemaphore. ReleaseSemaphore. 4.2.3. Eventos. Los eventos son objetos utilizados para indicar que alguna operación se a realizado, o que algún suceso a tenido lugar. Hay dos tipos de objetos evento: Eventos de inicialización manual: al ser señalado este evento se “despiertan” todos los subprocesos que estén esperando por el evento, además el evento permanecerá señalado hasta que algún subproceso lo ponga en estado no señalado. Eventos de auto-inicialización: al ser señalado este evento se “despierta” uno de los procesos que están esperando por el evento, y automáticamente el evento vuelve a ponerse en estado no señalado. Las funciones relacionadas con los eventos son: Informe Interno 4358 – Página 8 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT CreateEvent. OpenEvent. SetEvent. ResetEvent. PulseEvent. 4.3. Memoria compartida: ficheros mapeados en memoria. Los archivos asignados en memoria son el único medio disponible en Win32 para que múltiples procesos compartan un segmento de datos simultáneamente. Para ello creamos un objeto de mapeo de memoria (objeto file mapping) pasándole como handle de archivo el valor 0xFFFFFFFF, de esta manera el Windows NT considera una región de memoria como si fuera un archivo y reserva espacio en el fichero de paginación del sistema. Win32 proporciona las siguientes funciones para el manejo los objetos de mapeo de memoria: CreateFileMapping. MapViewOfFile. MapViewOfFileEx. UnMapViewOfFile. 4.4. APC o Llamadas Asíncronas a Procedimientos. Una llamada asíncrona a procedimiento (APC) es una función que se ejecuta asíncronamente en el contexto de un subproceso. Cuando una APC e encolada a un subproceso, el sistema emite una interrupción software. La próxima vez que el subproceso es “despachado”, ejecutará la función APC. Las APC encoladas por el sistema son llamadas APCs de modo kernel, y las encoladas por una aplicación se denominan APCs de modo usuario. Un subproceso debe de estar en estado de alerta para ejecutar una APC en modo usuario. Cada subproceso tiene su propia cola APC. Una aplicación encola una APC a un subproceso llamando a la función Win32 QueueUserAPC. El subproceso que encola especifica la dirección de una función APC en la llamada QueueUserAPC. Cuando una APC de modo usuario es encolada, esta no se realiza a menos que el subproceso al que va dirigida este en estado de alerta. Un subproceso esta en estado de alerta cuando utiliza alguna de las siguientes funciones Win32: SleepEx, SignalObjectAndWait, MsgWaitForMultipleObjectsEx, WaitForMultipleObjectsEx o WaitForSingleObjectEx. 4.5. Suspensión de procesos. WaitForSingleObject y WaitForMultipleObjects son las funciones más utilizadas por los subproceso para autosuspenderse al esperar por que se señale algún objeto. Además de estas existen algunas funciones más para autosuspenderse: Sleep. WaitForInputIdle. MsgWaitForMultipleObjects. WaitForDebugEvent. InterlockedIncrement, InterlockedDecrement y InterlockedExchange. Informe Interno 4358 – Página 9 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT 5. IPC o Comunicaciones Entre Procesos en Windows NT. La API Win32 proporciona un rico conjunto de mecanismos que facilitan las comunicaciones y la compartición de datos entre aplicaciones. Normalmente a todos estos mecanismos se les conoce colectivamente como mecanismos IPC (interprocess communications). Algunas formas de IPC pueden distribuir la carga computacional no sólo entre varias aplicaciones locales a un equipo, sino que permiten hacerlo también entre los equipos que constituyen una red. A continuación simplemente se muestra una enumeración de algunos de los distintos mecanismos IPC de los que se dispone en Windows NT: Los objetos de sincronización y de compartición de memoria ya mencionados. Pipes. Mailslots. El clipboard. DDE o Intercambio Dinámico de Datos (Dynamic Data Exchange). OLE o Enlace de Objetos y Encrustamiento (Object Linking and Embedding). Librerias DLL (Dynamic Link Libraries). RPC o Llamada a Procedimiento Remoto (Remote Procedure Call). Acceso directo a la red: NetBIOS. Informe Interno 4358 – Página 10 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT 6. Referencias. “Windows NT Avanzado”, Jeffrey Richter, McGraw-Hill, 1994. “El Libro de Windows NT”, Helen Custer, Anaya Multimedia, 1993. Books On Line, Microsoft Visual C++ 4.2. Informe Interno 4358 – Página 11 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT Índice Alfabético A APC, 9 API, 1, 2, 4 C clases de prioridad, 5 D drivers, 1 E ejecutor, 3 eventos, 8 I IPC, 6, 10 K kernel, 4, 5 Ll Llamada a Procedimiento Local, 1 Llamada a Procedimiento Remoto, 1 L LPC, 1 M mapeo de memoria, 9 mecanismos IPC, 10 mutexes, 8 N nivel de prioridad, 5 NTFS, 1 P POSIX, 1 R rango de prioridades, 5 RPC, 1 S secciones críticas, 7 Informe Interno 4358 – Página 12 Software del Atlántico S.A. – Informe Interno Multiprogramación en Microsoft Windows NT semáforos, 8 subprocesos, 4 Informe Interno 4358 – Página 2