Sistemas Operativos Practica 1: procesos y concurrencia.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Sistemas Operativos Practica 1: procesos y concurrencia."

Transcripción

1 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 uso de la función fork. Introducción La programación consiste en tomar un algoritmo y traducirlo a un conjunto de sentencias en un determinado lenguaje de programación. Estas sentencias son convertidas a instrucciones por un compilador, y esto se denomina programa. Posteriormente, al ejecutar el programa cada instrucción es efectuada de manera secuencial en una computadora; a la ejecución del programa se le conoce como proceso o tarea. Sin embargo es posible ejecutar más un proceso o tarea en una computadora, lo cual se conoce como concurrencia. La concurrencia sea asocia a un conjunto de procesos los cuales son ejecutados en paralelismo real (simultáneamente) o bien en paralelismo abstracto. De manera sencilla, la concurrencia es el entrelazamiento de las instrucciones de dos o más programas en ejecución. En esta práctica estudiaremos el concepto de concurrencia haciendo uso de la función fork. Primero veremos como trabaja dicha función, posteriormente mostraremos algunos ejemplos usando fork y finalmente terminamos con unos ejercicios. Creación de procesos con fork Los procesos de un sistema Linux (y en general en los sistemas basados en UNIX), tienen una estructura jerárquica en donde un proceso (padre) puede crear un nuevo proceso (hijo), y así sucesivamente (un proceso padre puede tener muchos hijos, pero un hijo un solo padre), lo cual forma una estructura de tipo árbol, en donde la raíz es el nodo padre principal (en un ambiente Linux, el nodo raíz será el shell desde el cual se ejecuta el proceso). En ocasiones es adecuado partir un proceso en dos o más procesos (o subprocesos o tareas), tal vez con la finalidad de acelerar su ejecución. Para el desarrollo de sistemas con varios procesos, el sistema operativo Linux proporciona la función fork 1. La ejecución de la instrucción fork crea procesos hijos que son una copia fiel del padre después del punto de ejecución de fork; y a partir de ese punto, aun cuando ambos procesos posean el mismo código, posiblemente no contendrán los mismos datos, ello depende de la manera en que se haya codificado el programa. Por ejemplo, consideremos el siguiente código escrito en lenguaje C: 10: int a, b, c, Id;... 30: a = 120; 31: b = 200; 1 Estrictamente hablando, no es como tal una función, el nombre correcto es llamada al sistema, solo que vista desde el lenguaje C es una función. Es una llamada al sistema debido a que es código que está dentro del sistema operativo, y hacemos uso de fork al invocarla con la correspondiente función en lenguaje C.

2 32: c = a; 33: Id = fork (); 34: a = Id * 100; /*Sin fork, tenemos un solo proceso y a =?*/... Justo antes de la ejecución de la línea 33 y después de la ejecución de la línea 32, tenemos un solo proceso en donde el valor de las variables a, b, y c es: 120, 200 y 120 respectivamente. Después de la ejecución de la línea 33, pero antes de la ejecución de la línea 34, se tiene ahora dos procesos exactamente iguales: un proceso padre y un proceso hijo. En ambos procesos las variables a, b y c tendrán los valores de 120, 200 y 120 respectivamente. Qué sucede al ejecutar la línea 34? Cuánto vale la variable Id? Llamar a la instrucción fork crea un segundo proceso (hijo) con el mismo código, solo que el proceso padre recibirá en la variable Id el identificador del proceso hijo, mientras que el hijo recibirá el valor de cero en Id. Debido a lo anterior, después de la ejecución de la línea 34, la variable a será igual a cero en el proceso hijo, mientras que en el padre la variable a tendrá un valor diferente a cero. Llamar a la función fork requiere del archivo de cabecera unistd.h, el cual tiene la declarado la función como sigue: int fork(void). Un ejemplo más completo es el siguiente: int main () int iid; iid = fork (); /*A partir de la siguiente línea, padre e hijo inician su ejecución*/ switch (iid) case 0: printf ("Soy el hijo.\n"); case -1: printf ("Hay un error.\n"); default: printf ("Soy el padre.\n"); return (0); Como se menciono, tanto padre como hijo son exactamente iguales, tienen el mismo contenido en las variables pero no las comparten; es decir, una vez creados, siguen su ejecución de manera independiente, y lo que los hace diferentes es su identificador. Esto último es muy importante, ya que significa que aun cuando hay una relación de parentesco entre los procesos, ambos son aparentemente independientes.

3 Debido al parentesco que adquieren el par de procesos cuando uno crea al otro, estos se pueden comunicar haciendo uso de las funciones wait y exit, que se incluyen en el archivo de cabecera stdlib.h, y que están definidas como 2 : void exit(int status); pid_t wait(int *status); exit termina al proceso que la manda a invocar. El valor de estado se le regresa al proceso padre para que este pueda conocer como termino su proceso hijo. wait del lado del padre, obtiene el estado con el que termina cualquiera sus procesos hijo. Cuando un proceso ejecuta wait y ninguno de sus procesos hijos ha terminado, este se queda bloqueado. El valor que regresa esta función es el pid del proceso hijo que termino. La función wait almacena la información de estado con el que termino un proceso hijo en la memoria apuntada por status. Esta información puede ser evaluada usando las siguientes macros: WIFEXITED (status) es distinto de cero si el hijo termino normalmente. WEXITSTATUS (status) evalúa los ocho bits menos significativos del código de retorno del hijo que termino, que podrían estar activados como el argumento de una llamada a exit o como el argumento de un return en el programa principal. Ejemplos con fork Un padre crea varios hijos: /*Creación de varios hijos por parte de un padre*/ #define N 4 int main() int i; pid_t pid; for(i=0;i<n;i++) switch(pid=fork()) case 0: printf("soy el proceso hijo: %d y mi padre es %d \n", getpid(), getppid()); case -1: printf("error en la creación del proceso \n"); exit(0); default: printf("soy el proceso padre: %d \n",getpid()); if(pid==0) /*El hijo no hace nada*/ sleep(10); 2 Más adelante estudiaremos otras formas de comunicación; por lo pronto, en este caso solo se contempla la comunicación del proceso hijo al padre, cuando el hijo finaliza su ejecución.

4 return (0); Una estructura lineal de procesos: /*Estructura lineal de procesos*/ #include <sys/types.h> #include <sys/wait.h> #define N 4 int main() int i,status=0; pid_t pid,pid_raiz; pid_raiz=getpid(); for (i=0;i<n;i++) if((pid=fork())==0) printf("soy el proceso hijo: %d y mi padre es %d \n", getpid(),getppid()); else if(pid==-1) printf("error en la creación del proceso \n"); exit(1); else printf("soy el proceso padre: %d \n",getpid()); wait(&status); /*Esperando al hijo*/ if(pid_raiz==getpid()) /*Si soy padre, le envío a mi padre el número de procesos*/ printf("el numero de procesos que somos es: %d \n", WEXITSTATUS(status)+1); exit(0); else exit(wexitstatus(status)+1); sleep(3); exit(1); Ejercicios Con ayuda de la llamada al sistema fork, desarrolle los siguientes programas: 1. Un proceso padre que cree dos hijos, y estos a su vez creen dos hijos, para que finalmente estos creen a tres hijos; al finalizar, cada padre o hijo deberá enviar a su padre el número hijos creados, de tal forma que el padre principal imprima el número de hijos creados. Por ejemplo, un estructura de nivel 3, tendrá en el nivel 0 al padre raíz; en el nivel 1 habrá dos hijos; en el nivel 2 habrá 4 hijos (dos

5 por cada hijo del nivel 1); finalmente en el nivel 3, habrá 12 hijos (llamados hojas); en total hay 18 nodos o procesos hijos creados. Su programa debe solicitar el nivel. 2. Un proceso (raíz) que solicite un número entero N entre 3 y 21, y con dicho número genere un arreglo de N elementos en donde el contenido del arreglo será el número que le corresponde en el arreglo; por ejemplo, para N = 10, tendríamos el siguiente arreglo: El proceso raíz deberá crear tres procesos hijos, cada uno de los cuales tendrá acceso a una parte del arreglo (usted define qué sección del arreglo), deberá sumar los elementos del arreglo que le corresponden (que desde luego son arreglos disjuntos), y enviar el resultado al proceso padre para que este finalmente imprima el resultado. 3. Elabore un programa que genere un árbol no balanceado de procesos. El proceso padre raíz deberá generar dos hijos, y estos a su vez deben generar más hijos de la siguiente manera: los hijos del lado izquierdo van a generar un árbol binario en cambio los hijos del lado derecho van a generar un árbol de tres hijos; ver fig. 1. Figura 1. Árbol no balanceado de procesos de nivel 2. El proceso padre principal, deberá pedir el nivel hasta el cual se van a generar hijos. Cada proceso le regresar a su padre el número de hijos que ha engendrado, de tal forma que el proceso padre raíz imprimirá el número de procesos creados; para la fig. 1, el número de procesos es de 21. Para ver que efectivamente ha creado el árbol de procesos solicitado, investigue el uso del comando ps de Linux. Fecha de entrega: 15/05/2012.

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

Más detalles

MC Hilda Castillo Zacatelco PROCESOS

MC Hilda Castillo Zacatelco PROCESOS MC Hilda Castillo Zacatelco hildacz@gmail.com PROCESOS Definición y atributos Un proceso es la instancia de un programa en ejecución. Desde el punto de vista del SO, un proceso es la entidad más pequeña

Más detalles

Procesos e Hilos en C

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.

Más detalles

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos Boletín 4- Procesos Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción (Procesos) 2. Identificadores de usuarios y procesos 3. La llamada fork() 4. Las llamadas wait() y exit() 5.

Más detalles

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos Boletín 4- Procesos Departamento de Lenguajes y Sistemas Indice 1. Introducción n (Procesos) 2. Identificadores de usuarios y procesos 3. La llamada fork() 4. Las llamadas wait() y exit() 5. La llamada

Más detalles

1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8.

1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8. 1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8. Código Proceso Manejados por el sistema operativo Memoria independiente

Más detalles

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Segunda Semana: Procesos, Procesos Padre y Procesos Hijo, familia exec() 1 Entregas

Más detalles

Prácticas de Sistemas Operativos

Prácticas de Sistemas Operativos Prácticas de Sistemas Operativos Toñi Reina, David Ruiz, Juan Antonio Álvarez, Antonio Tallón, Javier Gutiérrez, Pablo Neira, Paco Silveira, Sergio Segura y José Ángel Bernal Boletín 4: Procesos Curso

Más detalles

Sistemas Operativos sesión 12: tuberías

Sistemas Operativos sesión 12: tuberías Sistemas Operativos sesión : tuberías Grado en Ingeniería Informática Universidad Carlos III de Madrid Agenda Linux Comunicación con tuberías Ejercicios Agenda Linux Comunicación con tuberías Ejercicios

Más detalles

Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores

Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores Práctica 1: Intérprete de mandatos Introducción Desarrollo de un intérprete de mandatos (minishell) en UNIX/Linux en lenguaje C. Debe permitir: Ejecución de mandatos simples ls, cp, mv, rm, etc. Ejecución

Más detalles

Clases 04 y 05: Repaso de programación de sistemas basados en UNIX

Clases 04 y 05: Repaso de programación de sistemas basados en UNIX Clases 04 y 05: Repaso de programación de sistemas basados en UNIX Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof.

Más detalles

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados

Más detalles

Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX

Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX Concurrencia en UNIX / LINUX Introducción: Procesos e Hilos POSIX El estándar POSIX POSIX: Interfaz de sistemas operativos portables. Basado en UNIX A pesar de que UNIX es ya de por sí estándar, había

Más detalles

Procesos en UNIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale

Procesos en UNIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Un proceso en Unix es un programa en ejecución que tiene los siguientes atributos: Área de código, Área de datos, Área de stack,

Más detalles

Sistemas Operativos I Manual de prácticas

Sistemas Operativos I Manual de prácticas Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...

Más detalles

Introducción y Gestión de Procesos

Introducción y Gestión de Procesos Introducción y Gestión de Procesos Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Llamadas al sistema Concepto Constituye el juego de instrucciones del sistema operativo

Más detalles

Llamadas al Sistema para la Creación de Procesos

Llamadas al Sistema para la Creación de Procesos Llamadas al Sistema para la Creación de Procesos Transparencias realizadas por M. Curiel. Se utiliza material ya publicado en la WEB y elaborado por todos los prof. que hemos dado el curso. Llamada al

Más detalles

Gestión de procesos en UNIX

Gestión de procesos en UNIX PROCESOS UNIX Gestión de procesos en UNIX Cada proceso sólo puede tener un flujo: el concepto proceso engloba todo Dos llamadas implicadas en la creación de procesos crear proceso cargar programa La relación

Más detalles

Tema 3. Estructuras de control

Tema 3. Estructuras de control Tema 3. Estructuras de control 3.1. Secuencial 3.2. Selección 3.3. Repetición 2 Objetivos Objetivos del tema: Conocer y saber la utilidad de las tres estructuras de control (secuencial, alternativa y repetitiva)

Más detalles

Un ejemplo: UNIX PROCESOS UNIX

Un ejemplo: UNIX PROCESOS UNIX PROCESOS UNIX Un ejemplo: UNIX Cada proceso sólo puede tener un flujo: el concepto proceso engloba todo Dos llamadas implicadas en la creación de procesos crear proceso cargar programa La relación de procesos

Más detalles

Biblioteca de sistema

Biblioteca de sistema * Para la realización del presente examen se aconseja un tiempo de 2 horas. Teoría 1. Explique en detalle cómo se pasa una llamada al sistema operativo. El sistema operativo se activa cuando debe responder

Más detalles

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo) Procesos y Threads Procesos y Threads Procesos Procesos Threads Threads Concurrencia Concurrencia Ventajas Ventajas Modelos Modelos Información Información adicional () adicional () Preparado Preparado

Más detalles

Tema 4: Gestión de Procesos

Tema 4: Gestión de Procesos Tema 4: Gestión de Procesos SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La Mancha Marzo

Más detalles

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

- 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

Más detalles

2. Problema de Análisis y Diseño Orientado a Objetos (4 puntos - 25 minutos)

2. Problema de Análisis y Diseño Orientado a Objetos (4 puntos - 25 minutos) APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento Electrónica, Automática e Informática Industrial ASIGNATURA: SISTEMAS

Más detalles

05 Funciones en lenguaje C. Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales

05 Funciones en lenguaje C. Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales 05 Funciones en lenguaje C Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales 1 Temario Programación funcional Declaración (prototipos) y definición de funciones

Más detalles

Ejercicios sobre tuberías

Ejercicios sobre tuberías Boletín 3. Ejercicios sobre tuberías July 14, 016 1. Indica de manera justificada si las siguientes afirmaciones sobre la utilización de tuberías como mecanismo de sincronización entre dos procesos son

Más detalles

Funciones POSIX (I): Introducción

Funciones POSIX (I): Introducción Funciones POSIX I Funciones POSIX I Llamadas al Llamadas al Sistema Sistema Gestión Básica Gestión Básica de Procesos de Procesos Procesos Procesos fork fork Señales Señales getpid getpid Memoria Memoria

Más detalles

Teoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1

Teoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1 Grupos Realización Entrega/Evaluación Lunes 22 de Febrero, 1, 8, 15 de Marzo 22 de Marzo Martes 23 de Febrero, 2, 9 y 16 de Marzo 23 de Marzo Miércoles 24 de Febrero, 3, 10 y 17 de Marzo 24 de Marzo Viernes

Más detalles

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona

Más detalles

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Tercera Semana: Comunicación entre procesos con Tuberías 1 Entregas 2 Introducción

Más detalles

ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Octubre 2015

ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Octubre 2015 2. Problema de Análisis y Diseño Orientado a Objetos (10 puntos - 20 minutos) Para el código de test adjunto, se pide. 1. Diagrama de clases de diseño (2.5 puntos). 2. Implementación en C++ de la solución

Más detalles

Formatos para prácticas de laboratorio

Formatos para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC 2003-1 5314 Sistemas Operativos PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA Comunicación entre procesos Tuberías DURACIÓN (HORA)

Más detalles

Lenguaje de Programación: C++ Directivas al preprocesador

Lenguaje de Programación: C++ Directivas al preprocesador UG Lenguaje de Programación: C++ Directivas al preprocesador Universidad de Guanajuato Septiembre 2010 Un preprocesador es un programa separado que es invocado por el compilador antes de que comience la

Más detalles

Programación en Lenguaje C

Programación en Lenguaje C Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo

Más detalles

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario

Más detalles

Tema 2. Administración de procesos

Tema 2. Administración de procesos Sistemas Operativos Tema 2. Administración de procesos Objetivo: El alumno identificará los tipos de procesos y sus estados. Describirá las diferentes técnicas de comunicación y sincronización de procesos

Más detalles

Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos.

Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos. Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos. 1.-Considerar los siguientes procesos con los tiempos de llegadas, prioridades y ráfagas de cpu. Proceso Ráfaga de CPU Prioridad Tiempo

Más detalles

Procesos e hilos: el downloader

Procesos e hilos: el downloader Departamento de Automática 1 / 8 Descarga de archivos con procesos en paralelo Objetivo principal: descarga de un archivo de gran tamaño de forma eficiente desde Internet Otros objetivos: Utilizar la biblioteca

Más detalles

Sistemas Operativos Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

CONDICIONALES SWITCH CASE DEFAULT BREAK EN C. ELEGIR ENTRE VARIAS OPCIONES. EJEMPLO. (CU00532F)

CONDICIONALES SWITCH CASE DEFAULT BREAK EN C. ELEGIR ENTRE VARIAS OPCIONES. EJEMPLO. (CU00532F) APRENDERAPROGRAMAR.COM CONDICIONALES SWITCH CASE DEFAULT BREAK EN C. ELEGIR ENTRE VARIAS OPCIONES. EJEMPLO. (CU00532F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde cero Fecha

Más detalles

Apuntadores en C y C++

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

Más detalles

Programación estructurada (Introducción a lenguaje C)

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

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Colonia, Uruguay 15 de marzo de 2016 Programación 2 Introducción al lenguaje C 15 de marzo de 2016 1 / 34 Objetivos

Más detalles

Realizar el ejercicio anterior utilizando Punteros

Realizar el ejercicio anterior utilizando Punteros PUNTEROS Y ARRAYS En C existe una relación entre punteros y arrays tal que cualquier operación que se pueda realizar mediante la indexación de un arrays, se puede realizar también con punteros. Para clarificar

Más detalles

Funciones Definición de función

Funciones Definición de función Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas

Más detalles

Taller de Sistemas Operativos. Procesos 2012

Taller de Sistemas Operativos. Procesos 2012 Taller de Sistemas Operativos Procesos 2012 Agenda Introducción PCB (task_struct) Agrupaciones de procesos Estado de un proceso Cambio de proceso (task switch) Creación y destrucción de un proceso Threads

Más detalles

Estructuras de Datos Declaraciones Tipos de Datos

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

Más detalles

PARTE II PROGRAMACION CON THREADS EN C

PARTE II PROGRAMACION CON THREADS EN C PARTE II PROGRAMACION CON THREADS EN C II.1 INTRODUCCION Una librería o paquete de threads permite escribir programas con varios puntos simultáneos de ejecución, sincronizados a través de memoria compartida.

Más detalles

Procesos Definición y Estados

Procesos Definición y Estados Procesos Definición y Estados Profesorado de Informática CeRP del Suroeste, Uruguay Contenidos Qué es un proceso Estructuras de datos para gestionar procesos API para trabajar con procesos Hilos (threads).

Más detalles

AMBITO DE VARIABLES EN C. GLOBALES Y LOCALES. UNDECLARED (FIRST USE IN THIS FUNCTION). EJEMPLOS (CU00548F)

AMBITO DE VARIABLES EN C. GLOBALES Y LOCALES. UNDECLARED (FIRST USE IN THIS FUNCTION). EJEMPLOS (CU00548F) APRENDERAPROGRAMAR.COM AMBITO DE VARIABLES EN C. GLOBALES Y LOCALES. UNDECLARED (FIRST USE IN THIS FUNCTION). EJEMPLOS (CU00548F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde

Más detalles

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++ 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

Más detalles

Sistemas Operativos Primer Examen Parcial 13/07/15

Sistemas Operativos Primer Examen Parcial 13/07/15 Dpto. 1.- El siguiente código intenta representar la solución a la siguiente problemática: Un proceso crea un conjunto de procesos descendientes y le asigna a cada uno una tarea determinada, cada proceso

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C 2013 ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C Departamento de Computación UNAN-León TEMA 4: ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 4.1 INTRODUCCIÓN: En términos de listas lineales, una pila puede ser

Más detalles

Concepto de proceso. (c) 2006 Alexis Quesada / Francisco J. Santana 2

Concepto de proceso. (c) 2006 Alexis Quesada / Francisco J. Santana 2 Tema 3 : procesos Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Concepto de proceso Un programa

Más detalles

Programación. Test Autoevaluación Tema 3

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.

Más detalles

WHILE Y DO WHILE BREAK EN LENGUAJE C. BUCLES MIENTRAS. FORZAR SALIDA O TERMINACIÓN. EJEMPLO (CU00534F)

WHILE Y DO WHILE BREAK EN LENGUAJE C. BUCLES MIENTRAS. FORZAR SALIDA O TERMINACIÓN. EJEMPLO (CU00534F) Bucles en lenguaje C Bucle while y forzar detención con break APRENDERAPROGRAMARCOM WHILE Y DO WHILE BREAK EN LENGUAJE C BUCLES MIENTRAS FORZAR SALIDA O TERMINACIÓN EJEMPLO (CU00534F) Sección: Cursos Categoría:

Más detalles

7.3. Estructura de un programa

7.3. Estructura de un programa TEMA 7 ALGORITMOS Y PROGRAMAS. ESTRUCTURA DE UN PROGRAMA 7.1. Algoritmos 7.2. Compilación 7.3. Estructura de un programa 7.1. Algoritmos Objetivo: Resolver problemas mediante computadoras (usando el lenguaje

Más detalles

Programación I Teoría I.

Programación I Teoría I. Programación I Teoría I http://proguno.unsl.edu.ar Horarios Teorías: Jueves 8:00 10:00; aula 58 (Bloque 2) Prácticas: Comisión 1: Licenciatura Martes de 10 a 13 en sala 7, bloque 2 jueves de 10 a 13 en

Más detalles

Introducción a la Programación

Introducción a la Programación Introducción a la Programación Fundamentos de Programación Ingeniería Informática en Sistemas de Información Alicia Troncoso 1 Contenido l Introducción l Mi primer programa l Etapas a seguir en la programación

Más detalles

PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS

PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: 1. Objetivo PRÁCTICA No. 9 RECORRIDOS EN ÁRBOLES BINARIOS El alumno comprenderá y aplicara

Más detalles

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE) Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben

Más detalles

Lección 3 Sentencias de control

Lección 3 Sentencias de control 3.1. INTRODUCCIÓN - Hasta aquí: ejecución secuencial de los programas. - Aquí vamos a ver: Lección 3 Sentencias de control Sentencias de control Sentencias condicionales: if- y switch-case Sirven para

Más detalles

Elementos de un programa en C

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

Más detalles

Llamadas al sistema básicas de control de procesos

Llamadas al sistema básicas de control de procesos Actividad 7 (v. 16046) Pablo González Nalda Depto. de Lenguajes y Sistemas Informáticos lsi.vc.ehu.es/pablogn Llamadas al sistema básicas de control de procesos Observa, analiza y prueba los programas:

Más detalles

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos Contenido Introducción...1 Objeto...2 Atributo...2 Métodos...2 Clase...3

Más detalles

Análisis y escritura de las estructuras de control

Análisis y escritura de las estructuras de control Análisis y escritura de las estructuras de control por Iván Cruz En esta lectura se abordarán las estructuras de control del lenguaje de programación C, estas estructuras. Permiten al programador comunicarse

Más detalles

EJEMPLOS LENGUAJE C. DECLARAR VARIABLES Y ASIGNARLES CONTENIDO. PROGRAMA BÁSICO INT MAIN MOSTRAR MENSAJE. (CU00511F)

EJEMPLOS LENGUAJE C. DECLARAR VARIABLES Y ASIGNARLES CONTENIDO. PROGRAMA BÁSICO INT MAIN MOSTRAR MENSAJE. (CU00511F) APRENDERAPROGRAMAR.COM EJEMPLOS LENGUAJE C. DECLARAR VARIABLES Y ASIGNARLES CONTENIDO. PROGRAMA BÁSICO INT MAIN MOSTRAR MENSAJE. (CU00511F) Sección: Cursos Categoría: Curso básico de programación en lenguaje

Más detalles

Usando el Sistema Operativo

Usando el Sistema Operativo Sistemas Operativos Pontificia Universidad Javeriana Enero de 2010 Los sistemas operativos Los sistemas operativos Perspectivas del Computador Concepto general El sistema operativo es parte del software

Más detalles

Capítulo 3: Procesos. n Concepto de Proceso. n Despacho (calendarización) de Procesos. n Operaciones en Procesos. n Procesos en cooperación

Capítulo 3: Procesos. n Concepto de Proceso. n Despacho (calendarización) de Procesos. n Operaciones en Procesos. n Procesos en cooperación 3.- Procesos Capítulo 3: Procesos Concepto de Proceso Despacho (calendarización) de Procesos Operaciones en Procesos Procesos en cooperación Compunicación Interprocesos Communicación en sistemas Cliente-Servidor

Más detalles

Sistemas Operativos. Procesos

Sistemas Operativos. Procesos Sistemas Operativos Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso

Más detalles

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana Fundamentos de los Sistemas Operativos Tema 2. Procesos 1998-2015 José Miguel Santos Alexis Quesada Francisco Santana Contenidos del Tema 2 Qué es un proceso Estructuras de datos para gestionar procesos

Más detalles

SOLUCION EXAMEN junio 2006

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

Más detalles

PRACTICA # 3 PROCESOS (CONTINUACION)

PRACTICA # 3 PROCESOS (CONTINUACION) PRACTICA # 3 PROCESOS (CONTINUACION) 1. OBJETIVO Aprender cómo manipular procesos por medio de las funciones wait() y kill(); además del uso de señales del sistema Linux. 2. INTRODUCCIÓN Estados de un

Más detalles

roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación

roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación There are no translations available. Introducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C.

Más detalles

Sintaxis de los aspectos generales de un lenguaje de programación

Sintaxis de los aspectos generales de un lenguaje de programación Sintaxis de los aspectos generales de un lenguaje de programación por Iván Cruz Un lenguaje de programación cuenta con una estructura y sintaxis que debe ser utilizada exactamente como se indique para

Más detalles

5. Sentencias selectivas o condicionales

5. Sentencias selectivas o condicionales 60 A. García-Beltrán y J.M. Arranz 5. Sentencias selectivas o condicionales Objetivos: a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y switch) b) Interpretar el resultado

Más detalles

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

TEMA 3: EL LENGUAJE C: PRESENTACIÓN TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de

Más detalles

LEER RECUPERAR EXTRAER DATOS DE FICHEROS O ARCHIVOS EN C. FGETC, GETC, FGETS, FSCANF. EJERCICIOS (CU00538F)

LEER RECUPERAR EXTRAER DATOS DE FICHEROS O ARCHIVOS EN C. FGETC, GETC, FGETS, FSCANF. EJERCICIOS (CU00538F) APRENDERAPROGRAMAR.COM LEER RECUPERAR EXTRAER DATOS DE FICHEROS O ARCHIVOS EN C. FGETC, GETC, FGETS, FSCANF. EJERCICIOS (CU00538F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C

Más detalles

Objetivos. El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C.

Objetivos. El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C. Objetivos El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C. Al final de esta práctica el alumno podrá: 1. Decir cuáles

Más detalles

Primeros pasos con CUDA. Clase 1

Primeros pasos con CUDA. Clase 1 Primeros pasos con CUDA Clase 1 Ejemplo: suma de vectores Comencemos con un ejemplo sencillo: suma de vectores. Sean A, B y C vectores de dimensión N, la suma se define como: C = A + B donde C i = A i

Más detalles

TEÓRICO ID ; = [ ], $

TEÓRICO ID ; = [ ], $ N Examen de Traductores, Intérpretes y Compiladores. Convocatoria ordinaria de Septiembre de 2007 er 3 Curso de I.T. Informática de Sistemas. Apellidos, Nombre: Calificación: TEÓRICO 1.- Dibujar un único

Más detalles

U.A.B.C. Facultad de Ingeniería Programación Estructurada UNIDAD III

U.A.B.C. Facultad de Ingeniería Programación Estructurada UNIDAD III UNIDAD III Funciones 3.1 Forma general de una función. C fué diseñado como un lenguaje de programación estructurado, también llamado programación modular. Por esta razón, para escribir un programa se divide

Más detalles

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda Árboles Árboles Mario Medina C. mariomedina@udec.cl Árboles Estructura recursiva Árbol vacío 0 o más árboles hijos Altura ilimitada Árbol binario A lo más dos hijos: izquierdo y derecho Árboles Árboles

Más detalles

En lenguaje C son soportados dos tipos de sentencias condicionales: if y switch.

En lenguaje C son soportados dos tipos de sentencias condicionales: if y switch. 1 Sentencias de control. En lenguaje C, existen un conjunto de sentencias que se pueden usar para afectar el control o flujo de un programa. La mayoría de estas sentencias, se basan en una prueba condicional

Más detalles

Semana Lenguajes 7de programación Tipos de lenguajes de programación

Semana Lenguajes 7de programación Tipos de lenguajes de programación Semana Lenguajes 7de programación Semana 6 Empecemos! Estimados participantes, bienvenidos a esta nueva semana, en la que estudiaremos los lenguajes de programación más utilizados. No olvides repasar los

Más detalles

Introducción a C Primera parte Sofía Vitale

Introducción a C Primera parte Sofía Vitale 1 de 16 Introducción a C Primera parte Sofía Vitale 2 de 16 1. Qué es un programa? Un programa está constituído por un conjunto de instrucciones que se ejecutan de modo secuencial. 1.a Lenguajes de programación:

Más detalles

Examen de Fundamentos de Computadores y Lenguajes

Examen de Fundamentos de Computadores y Lenguajes Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Parcial. Febrero 2003 1) Escribir un fragmento de programa Java que, utilizando la instrucción switch,

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Estructuras de decisión PRÁCTICA NÚM. [ 5 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

Funciones en lenguaje C

Funciones en lenguaje C Funciones en lenguaje C Funciones Definición: Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad del programa. Criterios para crearlas: Se usa la estrategia

Más detalles

Introducción a la Programación en C Funciones

Introducción a la Programación en C Funciones Christopher Expósito-Izquierdo cexposit@ull.edu.es Airam Expósito-Márquez aexposim@ull.edu.es Israel López-Plata ilopezpl@ull.edu.es Belén Melián-Batista mbmelian@ull.edu.es José Marcos Moreno-Vega jmmoreno@ull.edu.es

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Introducción al lenguaje C V1.2 Introducción al lenguaje C Introducción Características del lenguaje C Funciones en C Identificadores o etiquetas

Más detalles

Cuales son los tipos de instrucciones que se utilizan en la programación?

Cuales son los tipos de instrucciones que se utilizan en la programación? EXAMEN NIVEL PREUNI/UNI Cuales son los tipos de instrucciones que se utilizan en la programación? a) Instrucciones afirmativas e instrucciones negativas b) Instrucciones entrada, instrucciones afirmativas

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN. PRÁCTICA 11: Apuntadores

FUNDAMENTOS DE PROGRAMACIÓN. PRÁCTICA 11: Apuntadores Objetivos El alumno conocerá y aplicará el concepto de apuntadores para la solución de programas en Lenguaje C Introducción Un apuntador es una variable que mantiene la dirección de memoria de un elemento

Más detalles

Arboles Binarios de Búsqueda en C++

Arboles Binarios de Búsqueda en C++ Arboles Binarios de Búsqueda en C++ por CCG/Mayo-2014 Tema de Arboles Binarios de Búsqueda, como un poco de teoría para su mejor entendimiento seguidamente mostrare la implementación en lenguaje de programación

Más detalles

Sistemas Operativos Tema 5. Procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana

Sistemas Operativos Tema 5. Procesos. 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana Sistemas Operativos Tema 5. Procesos 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos Concepto de proceso Estructuras de datos: BCP y colas de procesos Niveles de planificación

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO

FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO 3.2 Variables, tipos, expresiones y asignación 3.3 Estructuras de control condicional e iterativo. MODIFICADORES DE ALCANCE CONST Y STATIC

Más detalles