Laboratorio de Sistemas Operativos
|
|
- Víctor Aguilar Calderón
- hace 6 años
- Vistas:
Transcripción
1 Laboratorio de Sistemas Operativos Juan Antonio Álvarez, Toñi Reina, David Ruiz, Antonio Tallón, Pablo Neira, José Ángel Bernal y Sergio Segura Boletín 7: Colas de Mensajes Curso 2006/07 Índice 1. Introducción 2 2. Llamadas del sistema relacionadas con colas de mensajes Creación/Acceso de una cola de mensajes. msgget Operaciones con colas de mensajes. msgsnd y msgrcv Control de las colas de mensajes. msgctl Ejercicios 5 A. Ejercicios de Examen 8 1
2 1. Introducción Las colas de mensajes son un mecanismo de comunicación entre procesos que aporta UNIX System V, como ya se mencionó en la práctica anterior. La idea que subyace bajo las colas de mensajes es parecida a la de las tuberías, pero permiten una mayor versatilidad. Las colas de mensajes son gestionadas por el núcleo del SO, es decir, es el SO el que porporciona los mecanismos necesarios para que las escrituras y las lecturas en la misma sean síncronas. En general, en una cola pueden escribir y leer varios procesos. Las operaciones de lecturas son gestionadas siguiendo un política FIFO (First Input First Output), es decir, el primer mensaje que entra es el primer mensaje que sale. Para hacer que la implementación sea más flexible, se ha permitido hacer lecturas filtradas por el tipo de mensaje, con lo cual, se rompe la filosofía FIFO, aunque ésta se sigue manteniendo para todos los mensajes de un mismo tipo. Si se hace una operación de lectura sin especificar el tipo de mensaje, se está forzando a leer el primer mensaje que haya en la cola. Las llamadas para trabajar con colas de mensajes en System V son: msgget, para crear una cola o acceder a una ya existente; msgctl, para acceder y modificar la información de control que el núcleo asocia a cada cola de mensajes; msgsnd, para escribir/enviar un mensaje en la cola, y msgrcv, para leer/recibir un mensaje de la cola. 2. Llamadas del sistema relacionadas con colas de mensajes 2.1. Creación/Acceso de una cola de mensajes. msgget Para crear una cola de mensajes deberemos utilizar la llamada al sistema msgget: #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> int msgget (key_t key, int msgflg); Si todo va bien devuelve el identificador de la cola que ha creado, en caso contrario, devuelve -1 y en errno el código del error. key Es una llave, tal y como se ha visto en el boletín anterior. msgflg Es una máscara de bits cuyos valores son los mismos que se han visto en el boletín de semáforos. IPC CREAT Si este flag está activo, se creará la cola de mensajes, en caso de que no haya sido ya creada. IPC EXCL Esta bandera se utiliza junto con IPC CREAT, para lograr que msgget de un error en el caso de que se intente crear una cola de mensajes que ya exista. En este caso, msgget devolvería -1 e inicializaría la variable errno con un valor EEXIST. permisos Los 9 bits menos significativos de msgflg indican los permisos de la cola de mensajes. Ver el boletín de semáforos para comprobar sus posibles valores. Ejemplo 1 El siguiente trozo de código crea una cola de mensajes. #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> #define PERMISOS S_IRUSR S_IWUSR int msqid; key_t llave; 2
3 llave= ftok("prueba", A ); msqid = msgget (llave, IPC_CREAT PERMISOS); if (msqid == -1) /* Error al crear la cola de mensajes */ 2.2. Operaciones con colas de mensajes. msgsnd y msgrcv Para enviar un mensaje utilizando una cola de mensajes utilizamos la llamada al sistema msgsnd y para leer un mensaje de la cola se utiliza msgrcv: #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> int msgsnd (int msqid, void *msgp, int msgsz, int msgflg); int msgrcv (int msqid, void *msgp, int msgsz, long msgtyp, int msgflg); donde msqid Es el descriptor de la cola de mensajes a utilizar. msgp Apunta a la zona de memoria que contiene los datos que vamos a enviar o recibir. Cómo esté organizada esta zona de memoria es cuestión que se ha dejado al programador. El único requisito que ha de cumplir es que el primer campo debe ser de tipo long y hay que utilizarlo para identificar el tipo de mensaje. No hay ningún tipo definido por el sistema, por lo tanto la tipificación de mensajes depende del programador. msgsz Es el tamaño en bytes que ocupa el mensaje a enviar o recibir. En este tamaño no se incluyen los bytes del long que se utiliza para indicar el tipo del mensaje. msgtyp Solamente se utiliza en msgrcv e indica el tipo de mensaje que se quiere leer. De forma que si: msgtyp = 0, entonces se lee el primer mensaje que haya en la cola. msgtyp > 0, entonces se lee el primer mensaje de tipo msgtyp que haya en la cola. msgtyp < 0, entonces se lee el primer mensaje cuyo tipo sea menor o igual al valor absoluto de msgtyp y sea el de menor valor de los que cumplan esta condición. msgflg Es un conjunto de bits que tienen distinto significado dependiendo de si aparece en una operación de lectura o de escritura. En el caso de una escritura (msgsnd) se tiene: Si la cola está llena y el bit IPC NOWAIT está activo, msgsnd devuelve el control inmediatamente, retornando un -1. Es decir, el mensaje no se envía. Si la cola está llena y el bit IPC NOWAIT no está levantado, el proceso suspende su ejecución hasta que haya espacio en la cola y pueda enviar el mensaje. Para la llamada msgrcv, se tiene lo siguiente: Si no hay ningún mensaje del tipo especificado en la cola y el bit IPC NOWAIT está activado, la llamada devuelve el control inmediatamente retornando un -1. Es decir, el mensaje no se recibe. Si no hay ningún mensaje del tipo especificado en la cola, y el bit IPC NOWAIT no está levantado, el procesos suspende su ejecución esperando hasta que haya un mensaje del tipo deseado que poder recibir. Si msgsnd se ejecuta sin ningún tipo de problema, devuelve 0. Si msgrcv se ejecuta sin errores, retorna el número total de bytes que ha recibido en msgp. Como ya hemos visto antes, este tamaño no incluye los bytes que ocupa el campo del tipo del mensaje. En el caso de que haya algún tipo de problema, las llamadas devolverán un -1, y en errno el código del error. 3
4 Ejemplo 2 El siguiente trozo de código muestra cómo enviar y recibir un mensaje utilizando las dos llamadas anteriores. int msqid; struct long tipo; char cadena[lon_cadena]; mensaje;... int longitud = sizeof(mensaje) - sizeof (mensaje.tipo);... /* Enviar mensaje de tipo 1 */ mensaje.tipo = 1; sprintf(mensaje.cadena, "PRUEBA"); if ( msgsnd(msqid, &mensaje, longitud, 0) == -1) /* Error al enviar el mensaje */... /* Recibir mensaje de tipo 1 */ if (msgrcv (msqid, &mensaje, longitud, 1, 0 ) == -1) /* Error al recibir el mensaje */ 2.3. Control de las colas de mensajes. msgctl Para leer y modificar la información estadística y de control de una cola se utiliza la llamada msgctl. Su declaración es la siguiente: #include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> int msgctl (int msqid, int cmd, struct msqid_ds *buf); donde msqid Es el identificador de la cola de mensajes sobre la que se va a actuar. cmd Es la operación a realizar. Sus posibles valores están definidos con las siguientes constantes: IPC STAT Lee el estado de la estructura de control de la cola y lo devuelve en la zona de memoria apuntada por buf. Esta estructura está definida en <msg.h> como sigue: struct msqid_ds struct ipc_perm msg_perm; /* operation permission struct */ struct msg *msg_first; /* ptr to first message on q */ struct msg *msg_last; /* ptr to last message on q */ msglen_t msg_cbytes; /* current # bytes on q */ msgqnum_t msg_qnum; /* # of messages on q */ msglen_t msg_qbytes; /* max # of bytes on q */ pid_t msg_lspid; /* pid of last msgsnd */ pid_t msg_lrpid; /* pid of last msgrcv */ time_t msg_stime; /* last msgsnd time */ time_t msg_rtime; /* last msgrcv time */ time_t msg_ctime; /* last change time */ ; IPC SET Inicializa los campos de la estructura de control de la cola. El valor de estos campos lo toma de la estructura apuntada por buf. IPC RMID Borra del sistema la cola de mensajes cuyo identificador es msqid. 4
5 Ejemplo 3 La siguiente línea de código borra una cola de mensajes que previamente fue creada con msgget. msgctl( msqid, IPC_RMID, 0); Ejemplo 4 La siguiente función comprueba si existen mensajes pendientes de ser leídos en una cola: int Mensaje_Pendiente(int mb) struct msqid_ds buf; msgctl(mb, IPC_STAT, &buf); return ( buf.msg_qnum!= 0 ); 3. Ejercicios 1. Realice una biblioteca de funciones para trabajar con colas de mensajes en UNIX, para ello debe definir los siguientes tipos de datos: typedef int MailBox; typedef struct long mtype; char mtext[max]; Message; y las siguientes funciones para manejarlos: MailBox MailBox_Create(char nombre_buz[]); Esta función sirve para crea una nueva cola, para ello se darán los siguientes pasos: a) Comprobar si existe un archivo llamado /tmp/mailbox.uid.nombre buz, donde uid es el identificador de usuario que crea la cola. b) En caso negativo, se debe generar una llave a partir de ese archivo y crear una nueva cola con dicha llave. c) En caso afirmativo, sólo se tendrá que devolver una referencia a la cola, es decir, devolver el resultado de msgget. void MailBox_Destroy(char nombre_buz[], MailBox buz); Esta función elimina el archivo sobre el que se ha mapeado la cola de mensajes (/tmp/mailbox.uid.nombre buz) y la propia cola. void Message_Create(char contenido[], Message *m); Esta función sirve para crear un mensaje m con texto contenido. El tipo de dicho mensaje siempre será 1. void Message_Destroy(Message *m); Librera la memoria reservada para m. void Message_Print(Message m); Imprime el contenido del mensaje por la salida estándar. void MailBox_Send(MailBox mb, Message m); Envía el mensaje m a la cola mb. En el caso de que la cola esté llena esta función se bloquea hasta que haya espacio. void MailBox_Receive(MailBox mb, Message *m); Recibe un mensaje de mb en m. Si no existen mensajes se esperará a que llegue uno. int MailBox_Has_Message(MailBox mb); Esta función devuelve 1 si existe algún mensaje en la cola mb. 5
6 Para probar el correcto funcionamiento de esta biblioteca cree un proceso emisor de mensajes y otro receptor como sigue: EMISOR: #include "MailBox.h" int main(void) MailBox mb; Message m; char txt[max]; mb = MailBox_Create("mibuzon"); for(;;) sprintf(txt, "%d\0", rand()); printf("voy a enviar un mensaje con contenido %s\n", txt); Message_Create(txt, &m); MailBox_Send(mb,m); sleep(1); MailBox_Destroy("mibuzon", mb); RECEPTOR: #include "MailBox.h" int main(void) MailBox mb; Message m; char txt[max]; mb = MailBox_Create("mibuzon"); for(;;) printf("a la espera de recibir mensajes\n"); MailBox_Receive(mb,&m); printf("recibido mensaje: "); Message_Print(m); printf("\n"); if (!MailBox_Has_Message(mb)) printf("el buzón está temporalmente vacio\n"); 2. Se desea sincronizar y comunicar dos grupos de procesos (productores y consumidores) haciendo uso de la anterior biblioteca de funciones. Los procesos productores se encargan de generar un número entero aleatorio (a través de la llamada rand()) y almacenarlo en un almacen en el que caben como máximo N elementos. Los procesos consumidores se encargan de sacar del almacen siempre que existan elementos. Por ejemplo, una llamada que crease dos productores y un consumidor podría generar la siguiente salida: productor & productor & consumidor [2] 7675 [3] 7676 Produciendo Consumiendo Produciendo Produciendo Produciendo Produciendo Consumiendo Produciendo Consumiendo Consumiendo
7 Consumiendo Produciendo Produciendo Produciendo 2749 Produciendo Produciendo Produciendo 2749 Consumiendo Produciendo 9084 Produciendo Produciendo 9084 Produciendo Consumiendo Realice el ejercicio de los emisores/receptor vistos en el boletín de semáforos haciendo uso sólo de mensajes y prescindiendo de archivo intermedio para almacenar los mensajes que se envían entre los emisores y el receptor. 4. Realice el ejercicio de los lectores/escritor visto en el boletín de semáforos haciendo uso sólo de mensajes. 5. (Ejercicio de Examen 2 a CONV II ) Escriba el código C para la función int Enviar_Mensaje(int cola, Mensaje m), dónde cola es el identificador de la cola de mensajes a la que se quiere enviar el mensaje m, que tiene la siguiente estructura: typedef struct long mtype; char cabecera[64]; char cuerpo[1024]; Mensaje; Esta función devolverá -1 en caso de error ó 0 en caso contrario. NOTA: El mensaje m está creado y contiene todos los campos rellenos con la información a enviar. 7
8 A. Ejercicios de Examen 1. (Ejercicio de Examen 1 a CONV II ) Figura 1: Estructura de procesos Considérese un sistema de archivos en el que hay un proceso que se encarga de la planificación central y procesos representantes o proxies que sirven de intermediarios entre dicho planificador central y las aplicaciones de usuario que quieren hacer uso del sistema de archivos. El número máximo de archivos abiertos está limitado a MAX_FILE. En caso de que no exista ninguna solicitud de archivo pendiente el planificador central se echa a dormir. Cuando un proceso de usuario necesita un archivo, el sistema operativo crea un proxy o proceso representante. En caso de que el número de archivos que tiene que servir el planificador central no exceda de MAX_FILE, el proxy esperará a que el planificador le atienda y terminará con su ejecución. De lo contrario, se generará un error indicado que la petición no puede ser atendida finalizando así la ejecución del proxy. Se pide: a) Haciendo uso de la biblioteca de mensajes realizada en el laboratorio, escriba el código C de los procesos Planificador y Proxy. Omita la inclusión de ficheros de los cabecera. Considere definidas las siguientes funciones: void ProcesaPeticion(Message Peticion): la ejecutará el planificador cada vez que tenga que procesar una nueva petición de archivo. void ErrorMaximoPermitido(void): la ejecutará el proxy cuando el planificador central no pueda atender la petición de archivo. Message Crea_Peticion(char nombre_archivo[]): la ejecutará el proxy para crear un mensaje de petición a partir de un nombre de archivo. Suponga que el proceso de usuario se comunica con su proxy a través de una variable compartida nombre_archivo. Dé una breve explicación de cómo resuelve los problemas de sincronización entre los proxies y el planificador central. 2. (Ejercicio de Examen 1 a CONV II ) Queremos sincronizar 2 tipos de procesos. Tenemos un conjunto de procesos generadores que se dedican a crear mensajes de dos tipos (mensajea, mensajeb) y los envían a 2 colas de mensajes (ColaA, ColaB). Las posiciones de ambos mensajes en sus respectivas colas debe ser la misma. Además dichas colas de mensajes sólo pueden albergar MAX mensajes (cada una de ellas). Cuando hay al menos un mensaje en ambas colas, interviene un proceso transformador que recoge un mensaje de cada una de ellas, realiza una operación sobre ambos y muestra el resultado por la salida estándar. Haciendo uso de la biblioteca de colas de mensajes realizada en el laboratorio, escriba el código C del proceso Transformador y los procesos Generadores. Omita la inclusión de ficheros de cabecera. Explique el número de colas de mensajes necesarios para resolver el problema y dé una breve explicación del uso de cada una de las colas. Disponemos de las siguientes funciones: void genera_mensaje(message *msj,char tipo); Recibe como argumentos un mensaje (que se pasará por referencia) y un carácter que indica si el mensaje es de tipo A o B. Servirá para crear e inicializar el mensaje. 8
9 int MailBox_Exist(char nombre_buzon[ ]); Esta función amplía la biblioteca de colas de mensajes realizada en el laboratorio. Recibe el nombre de una cola de mensajes y devuelve 1 en caso de que exista esa cola y 0 en caso contrario. 3. (Ejercicio de Examen 2 a CONV II ) Deseamos modelar el funcionamiento de una peluquería de niños en un sistema cuyo único mecanismo de comunicación entre procesos son las colas de mensajes. La peluquería se modela con un conjunto de procesos abuelo que llevan a sus nietos para que los pelen. El número de nietos de cada proceso abuelo vendrá indicado por un parámetro de la linea de argumentos, de forma que para lanzar a un proceso abuelo, habrá que hacerlo de la siguiente forma: $ abuelo <num_nietos> La peluquería tiene un aforo máximo de MAX_NINIOS y es atendida por un proceso peluquero. Los abuelos tienen las siguientes restricciones de sincronización y comunicación: a) Los nietos estarán identificados por una cadena con el siguiente formato <pid-abuelo>-<indice>. Por ejemplo, el proceso abuelo cuyo pid es 15048, tiene 3 nietos, que estarán identificados, respectivamente por , y b) En el caso de que no exista ningún niño pendiente de pelar, el peluquero se echa a dormir, en caso contrario, permanecerá despierto. c) En caso de que un abuelo llegue con varios nietos a la peluquería y alguno de ellos no pueda ser pelado, se irán todos. Solamente en el caso de que todos puedan ser atendidos, se quedarán. Haciendo uso de la biblioteca de colas de mensajes realizada en el laboratorio, escriba el código C del proceso Peluquero y los procesos Abuelo. Omita la inclusión de ficheros de cabecera. En caso de recibir la señal SIGINT (cuando se pulsa ctrl+c) se deberán liberar los recursos asignados. NOTAS: Los nietos se modelarán con el tipo de dato Message visto en laboratorio, con la particularidad de que el campo texto deberá incluir una cadena con el identificador del niño. La operación de dejar a un niño en la peluquería por parte de un abuelo se simulará con un mensaje por la salida estándar que tenga el siguiente formato: Enviando niño a pelar...<identificador-niño>. La operación de pelar a un niño se simulará con el mensaje Pelando a <identificador-niño> impreso por la salida estándar. Suponga que la biblioteca de Colas de mensajes implementada en clase tiene una nueva función int MailBox_Num_Messages (MailBox); que recibe una Cola de Mensajes y devuelve el número de mensajes que hay en dicha cola. Explique claramente el número de buzones necesarios para resolver el problema, y cómo utiliza cada uno de ellos. 4. (Ejercicio de Examen 3 a CONV II ) Se desea modificar la biblioteca creada en el laboratorio para colas de mensajes. Concretamente la función MailBox_Send de manera que acepte tanto mensajes del tipo Message definido en clase, como de otro tipo de mensajes definidos o por definir. El prototipo de la función será void MailBox_Send(MailBox mb,void *mensaje, int tamanyo_mensaje). El primer argumento es el buzón de mensajes al que vamos a enviar el mensaje, el segundo argumento es un puntero a la dirección de memoria dónde se encuentra nuestro mensaje y el último es el número de bytes que ocupa la estructura completa del mensaje. 5. (Ejercicio de Examen 4 a CONV II ) Se quiere convertir la librería de mensajes realizada en clase de un mecanismo asíncrono a un mecanismo síncrono, de tal forma que un proceso emisor, se detenga hasta que esté seguro de que el receptor haya recibido el mensaje. La forma de conseguir esto, es utilizando un nuevo buzón en el que el receptor enviará un mensaje de confirmación de recepción (ACK). Se pide implementar la función void MailBox_Send_Sinc (Mailbox mb, Mailbox sincro, Mensaje m);, que tome como entrada el buzón al que se quiere enviar el mensaje, mb; el buzón que se utiliza para sincronizar el envío, sincro; y el mensaje a enviar, m. NOTAS: No dispone de la librería de mensaje realizada en los laboratorios para resolver la cuestión. Los buzones se suponen creados y vacíos. 9
Mecanismos IPC System V
Mecanismos IPC System V Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Mecanismos IPC System V: generalidades (1) Existen tres tipos de mecanismos IPC
Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
Tema 5 : Comunicación entre Procesos mediante Tuberías Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Algunas
IPC SYSTEM V. Técnicas Digitales III Ing. Gustavo Nudelman 2011. Universidad Tecnológica Nacional - Facultad Regional Buenos Aires
IPC SYSTEM V Técnicas Digitales III Ing. Gustavo Nudelman 2011 IPC System V En la década del 70, se incorpora a Unix una gran cantidad de funcionalidades llamadas System V entre las cuales aparecen tres
System V MENSAJES. Francisco Javier Montero Vega Francisco García Rodríguez DSO 2004-05
IPC en Unix System V MENSAJES Francisco Javier Montero Vega Francisco García Rodríguez DSO 2004-05 1 Inter-Proces Comunicaction Paso de mensages(colas) Sincronización (semáforos, cerrojos) Memoria compartida
Procesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
Sistemas Operativos I. Enxeñería Informática. Curso 2007/08. Práctica 2: Concurrencia de procesos: Productores/Consumidores.
Sistemas Operativos I. Enxeñería Informática. Curso 2007/08. Práctica 2: Concurrencia de procesos: Productores/Consumidores. En esta práctica se tratará de resolver el problema de los productores/consumidores
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Tema 14: Arreglos estáticos en C
Tema 14: Arreglos estáticos en C Solicitado: Ejercicios 05: Ejercicios con arreglos estáticos unidimensionales M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 2: Memoria dinámica y Bibliotecas Objetivos Practicar conceptos
Tema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.
El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos
APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación
1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos
Programación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Escuela Politécnica Superior de Elche
EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs SEPTIEMBRE 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, una clase derivada puede acceder
Desarrollo de Aplicativos con winsockets
Seminario de Redes de Computadoras 66.48 Desarrollo de Aplicativos con winsockets Docentes: Ing. Marcelo Utard Ing. Pablo Ronco Alumnos: Baños, Germán Gámez, Pablo Rabino, Juan Pablo Salas, Federico Introducción
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema
Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C
Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS Departamento de Ciencias de la Computación e IA Subprogramas en C Objetivo Una vez que tengamos un programa que resuelva un problema concreto, ser capaces de usarlo
Laboratorio de Arquitectura de Redes. Entrada y salida estándar
Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada
Sistemas Operativos Practica 1: procesos y concurrencia.
Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo
Apuntadores en C y C++
Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta
- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?
Sistemas Operativos. Grado Ingeniería Informática. TGR-2.1 Procesos. Noviembre 2014 Problemas para hacer en clase FIFO cpu C A 1. Dos procesos A y B tienen una ráfaga de CPU de 50 ms y un proceso C tiene
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez
Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez 1. PUNTEROS 2. MEMORIA DINÁMICA 2 1. PUNTEROS 3 Qué es un puntero? Un tipo de variable cuyo valor es la dirección de memoria de otra variable.
TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.
APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación
TIPOS DE DATOS BASICOS EN LENGUAJE C
TIPOS DE DATOS BASICOS EN LENGUAJE C TIPO char int float double void ANCHO EN BIT 64 0 TIPOS DE DATOS RANGO EN PC -12 a 127 3.4E-3 a 3.4E+3 1.7E-30 a 1.7E+30 sin valores TIPO ANCHO EN BIT RANGO EN PC char
Seguridad. Mecanismos de protección Canales encubiertos Seguridad multinivel
Seguridad Mecanismos de protección Canales encubiertos Seguridad multinivel Mecanismos de protección Un dominio de protección es un conjunto de pares (objetos, permisos) que especifica para cada objeto
funciones printf scanf
FUNCIONES EN C FUNCIONES Los módulos en C se llaman funciones. Hemos estado utilizando funciones de la biblioteca estandar stdio.h como por ejemplo printf y scanf. Comenzaremos viendo algunas funciones
Lenguaje de Programación
UG C++ C++ Universidad de Guanajuato Sesión 33 Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad. La unidad es la estructura.
Apuntadores (Punteros)
Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.
-> Todo socket viene definido por dos características fundamentales:
LOS SOCKETS. Los sockets no son más que puntos o mecanismos de comunicación entre procesos que permiten que un proceso hable (emita o reciba información) con otro proceso incluso estando estos procesos
Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria
Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Métodos que devuelven valor Dado el siguiente triángulo rectángulo:
Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán
EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO
EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO TIPOS DE DATOS BÁSICOS: Tipo Tipo Tamaño aproximado en bits Rango mínimo Carácter char 8 0 a 55 Entero int 16-3767 a 3767 Real float 3
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:
Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++
USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++ Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo Reforma Sur 2007, C.P. 88250, Nuevo Laredo, Tamps. México http://www.itnuevolaredo.edu.mx/takeyas
2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA
Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I Laboratorio - Semestre 2012-1 (Sección C ) Profesor: Jaime Soto Examen #1 - Fecha: 07-03-2012
TADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013
TADs en C Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 1. Objetivos Definición de TADs en C Ocultación de la implementación del TAD Manejo básico de memoria dinámica 2. Usando
Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006
Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa
Estructuras de Datos Declaraciones Tipos de Datos
Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación
Programación. Práctica Final
Programación Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero Jose A. Iglesias Martínez Jose Luis Mira 1 1. Introducción. El objetivo de esta práctica
ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO
ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO 16.1 INTRODUCCIÓN: El teclado se comunica con la BIOS a través de puertos de comunicación controlados por las interrupciones de la
Bloque IV: El nivel de red. Tema 12: ICMP
Bloque IV: El nivel de red Tema 12: ICMP Índice Bloque IV: El nivel de red Tema 12: ICMP Introducción ICMP: Puerto inalcanzable ICMP: Fragmentación requerida Ping Traceroute Referencias Capítulo 4 de Redes
Diagramas de secuencia
Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Diagramas de secuencia Interacciones básicas 1 Para qué sirven los diagramas de secuencia? 2 Para qué sirven los diagramas de
MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C
MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C Antes de comenzar a desarrollar aplicaciones podemos crear el programa en cualquier editor de textos, solo hay que guardarlo con la extensión X.c
Guía rápida para gestionar el puerto paralelo del PC
Guía rápida para gestionar el puerto paralelo del PC Descarga desde: http://eii.unex.es/profesores/jisuarez/descargas/ip/guia_rapida_pp.pdf José Ignacio Suárez Marcelo Universidad de Extremadura Escuela
Laboratorio de Arquitectura de Redes. Punteros en lenguaje C
Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones
Tema 4 : señales. Sistemas Operativos: Programación de Sistemas. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez.
Tema 4 : señales Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Señales Las señales son un mecanismo para comunicar eventos
SOLUCION EXAMEN junio 2006
SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los
sockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM)
s s Comunicación punto-a-punto entre procesos Los s son los extremos de la comunicación Diferentes dominios UNIX: Entre procesos de un mismo equipo Internet: Entre procesos de diferentes equipos (TCP/IP)
El lenguaje C. 1. Estructuras. Principios de Programación. 1.1. Definicion de estructuras
Principios de Programación El lenguaje C 1. Estructuras Las estructuras son colecciones de variables relacionadas bajo un nombre. Las estructuras pueden contener variables de muchos tipos diferentes de
Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen
Fundamentos de Informática. Dpto. de ATC - Página 1 de 8 conceptos Manejo de ficheros en C Contienen los datos que se almacenan en dispositivos de almacenamiento masivo: disquetes, discos duros, DROM,
ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
Tema 16: Tipos de datos estructurados en lenguaje C
Tema 16: Tipos de datos estructurados en lenguaje C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo
Programación En Lenguaje C
Programación En Lenguaje C Introducción Básica para Primero de Bachillerato TECNOLOGÍA DE LA INFORMACIÓN IES PALAS ATENEA Lenguaje C Estructurado Secuencial De alto Nivel Altamente portable Necesita un
The Atomik Microkernel API Reference, version 0.1 february 2014 (Spanish)
Atomik Kernel API loader Una de las funciones del microkernel consiste en ejecutar diversos tipos de procesos (hilos del kernel, procesos de sistema y procesos de usuario). Para el caso de los procesos
Informática I para Bachillerato
CIMAT C++ C/C++ de Datos CIMAT Sesión 15 Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad, a diferencia de los arreglos
Tema 10: Tipos de datos definidos por el usuario
Tema 10: Tipos de datos definidos por el usuario Indice 1. Introducción 2. Registros 2.1. Elementos de un registro 2.2 Arrays de registros 2.3. Registros con arrays 2.4. Registros con registros 2.5. Paso
Programación estructurada (Introducción a lenguaje C)
Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada
Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Tema 3. Aplicaciones de Tipo Consola
Tema 3. Aplicaciones de Tipo Consola Una aplicación de consola es aquella que se ejecuta dentro de una ventana de línea de comandos. Este tipo de ventana recibe diferentes denominaciones: Símbolo del sistema,
Tema: Clases y Objetos en C#. Parte II.
Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y
LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009
Ingeniería Informática. Curso 3º. Sistemas Operativos Examen Final. TEORIA. 4 de Septiembre de 2009 1. [PROCESOS] a) Considerar el siguiente código: void main() { int j=10; pid_t pid; for (int i=0; i
Funciones Tipos de funciones y Recursividad
Funciones Tipos de funciones y Recursividad SESION 4 Definición Una función es una subrutina o subprograma que forman un programa que realiza tareas bien definidas. Todo programa en C consta de una o más
Examen de Fundamentos de sistemas distribuidos
Examen de Fundamentos de sistemas distribuidos Tiempo total: 2 horas Problema: Programa: Rendezvous con semáforos(5 puntos) Utilizando como único mecanismo de sincronización los semáforos descritos en
LENGUAJE. Tema 1 - Introducción
LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del
OBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos.
/ OBJETIVOS Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos. LABORATORIO 6 MANEJO DE ARCHIVOS DE TEXTO Y BINARIOS Msc. Walter Fernandez
Práctica 5MODBUS: Bus Modbus
Práctica 5MODBUS: Bus Modbus 1 Objetivos El objetivo de esta práctica es la utilización y la programación de una red Modbus. El alumno debe ser capaz de: Diferenciar los tres niveles fundamentales de la
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 2 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 2 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Reserva
Outlook Express de la A a la Z
Outlook Express de la A a la Z 2.- Leer, escribir, recibir y enviar emails El correo electrónico ha invadido nuestras vidas y se ha convertido en uno de los medios de comunicación preferidos entre particulares
LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.
LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.
Generador de analizadores léxicos FLEX
Generador de analizadores léxicos FLEX Procesadores de Lenguajes 4 o Informática PL curso 2008-2009 (CCIA) CCIA Octubre 2008 PL 0809 (CCIA) Introducción a FLEX Octubre-2008 1 / 12 Uso de FLEX FLEX: traduce
Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Asertos en C++ Mecanismo de excepciones: Declaración de excepciones Lanzar excepciones
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Programación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación
Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas
Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.
1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones
LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison
LABORATORIO DE PROCESADORES DE LENGUAJE Curso: 2008-2009 Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison Planteamiento del problema En esta práctica se trata de realizar, mediante el
Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
La sintaxis básica para definir una clase es la que a continuación se muestra:
DEFINICIÓN DE CLASES Y OBJETOS EN C# Sintaxis de definición de clases La sintaxis básica para definir una clase es la que a continuación se muestra: class nombreclase miembros De este modo se definiría
TEMA 4. ESTRUCTURAS DE CONTROL
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.
Arduino. Teclado matricial. Col1 Col2 Col3 Col4
TECLADO MATRICIAL 4x4 Información: http://www.prometec.net/teclados-matriciales/ Un teclado es una matriz de teclas organizadas en filas y columnas. Suelen ser de 4x4, como el de la figura, pero si no
PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad
PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad EJERCICIOS RESUELTOS 1. Escribe una función que calcule el factorial de un número, dado como parámetro. A continuación realiza un programa que lea por teclado
Nota: El protocolo ICMP está definido en la RFC 792 (en inglés, en español) Área de datos del datagrama IP. Área de datos de la trama
Protocolo ICMP Debido a que el protocolo IP no es fiable, los datagramas pueden perderse o llegar defectuosos a su destino. El protocolo ICMP (Internet Control Message Protocol, protocolo de mensajes de
El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */
Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones
TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN
TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN 4.1 Definiciones y palabras reservadas básicas del C El lenguaje C++ está compuesto por: 32 palabras clave (estándar ANSI), comunes a todos los compiladores de
7. Manejo de Archivos en C.
7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de
Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:
(3 ptos) Memoria Compartida y Semáforos R/W 1. Objetivo En esta práctica se pretende crear una librería que dé la funcionalidad de un semáforo para resolver problemas con múltiples lectores y escritores
Universidad Francisco Gavidia
La UNIVERSIDAD FRANCISCO GAVIDIA ahora dispone de un conjunto de herramientas web, de correo electrónico y colaboración que pueden ayudarte a trabajar más deprisa y obtener habilidades para el área de
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS Caso 1: 1.- Necesitamos un cd o Dvd para grabar alguna de las versiones de livecd de Linux. 2.- Liga de una