Ejercicio 2 - Universidad de Las Palmas de Gran Canaria

Anuncio
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
Descargar