Diferencia entre revisiones de «Pthreads visual studio 2010»
Línea 1: | Línea 1: | ||
− | + | **************************************************************************************************************** | |
+ | **************************************************************************************************************** | ||
+ | **************************************************************************************************************** | ||
+ | |||
+ | NOTA! Es igual que el VS 2012, porque me copie el articulo para tenerlo de base!!! | ||
+ | |||
+ | **************************************************************************************************************** | ||
+ | **************************************************************************************************************** | ||
+ | **************************************************************************************************************** | ||
+ | |||
+ | |||
+ | En el siguiente artículo, se pretende ayudar al usuario a crear y configurar un proyecto en Visual Studio 2012, con el fin de trabajar con los hilos '''''POSIX''''' usando el lenguaje de programación '''''C++'''''. | ||
+ | |||
+ | Este artículo, no pretende dar una completa explicación de lo que son los hilos POSIX (ni el respectivo estándar) ni el lenguaje de programación C++, mas si ofrecerá una breve descripción, con los conceptos básicos, para un rápido entendimiento. | ||
+ | |||
+ | Para mayor información sobre estos últimos, consulte la sección de referencias ubicada al final del artículo. | ||
+ | |||
+ | ==Visual Studio 2012== | ||
+ | |||
+ | info visual | ||
+ | |||
+ | ////////////////////////////////////////////////////// | ||
+ | ////////////////////////////////////////////////////// | ||
+ | selfnote: preguntar como agregar tabla de información "a lo wikipedia". | ||
+ | como agregar imagenes. | ||
+ | actualizar los links en la referencia (wiki, c++, láminas, libros) | ||
+ | ////////////////////////////////////////////////////// | ||
+ | ////////////////////////////////////////////////////// | ||
+ | |||
+ | |||
+ | ==Posix Threads== | ||
+ | |||
+ | Los PThreads, o Posix Threads, es un estandar de POSIX para el control de hilos en un programa, o extensión. Mas específicamente, el estandar POSIX.1c (Extensiones de hilos), define un API para la creación y la manipulación de los ''hilos''. | ||
+ | |||
+ | Existen alrededor de 100 procedimientos de este estandar, los cuales pueden ser categorizados en 4 grupos principales: | ||
+ | *''Manejadores de Hilos'' | ||
+ | *''Variables con condiciones'' | ||
+ | *''Sincronización'' | ||
+ | *''Mutex'' | ||
+ | |||
+ | Lamentablemente, para los usuarios de Windows, no hay una compatibilidad directa con este tipo de estándares, a diferencia de Linux, MAC OS X,FreeBSD, OpenBSD, Solaris, entre otros. Para ello, se han creado librerías y paquetes independientes para brindarle a Windows y DR-DOR, la compatibilidad necesaria. | ||
+ | |||
+ | '''Nota:''' En la sección ''Configurar Visual Studio 2012 con pthreads (Posix Threads)'' se encuentra un comprimido con un paquete específico con el cual se podrá trabajar usando Visual Studio. Mas adelante, se explica con detenimiento como configurar dichos archivos. | ||
+ | |||
+ | ==C++== | ||
+ | |||
+ | '''C++''' ''(C mas mas)'' es un lenguaje de programación, se puede considerar un lenguaje híbrido, que surgió como extensión del lenguaje de programación ''C'' a mediados de los 80. Dicho lenguaje, aporta mecanismos de programación orientada a objetos, como ''classes'' y definiciones de nuevos ''tipos de datos'' no incluidos en C, como wchar_t, permitiendo trabajar con caracteres UNICODE. | ||
+ | |||
+ | Para efectos prácticos de este artículo, se configurará a continuación el ''Visual Studio 2012'' para trabajar con C++ y sus respectivas extensiones, debido a su fácil uso y relación con el lenguaje de programación C. | ||
+ | |||
+ | |||
+ | ==Configurar Visual Studio 2012 con pthreads (Posix Threads)== | ||
+ | En primera instancia, se debe tener Visual Studio 2012 instaldo en la computadora a trabajar. Lo siguiente es descargar estos [https://www.dropbox.com/s/pl2qghdiu8nswtz/Archivos%20pthreads.rar '''Archivos para PThreads - Windows'''], los cuales incluyen las “librerías” e “includes” necesarios. | ||
+ | |||
+ | ===Creando Proyecto App Win32=== | ||
+ | Lo siguiente que se va a hacer, será crear un proyecto nuevo en Visual Studio, con la configuración Visual C++. Esto se puede realizar, dando click en “New Project” en el Start Page (Nuevo Proyecto en su defecto), como también buscando en la pestaña “FILE” o “ARCHIVO” -> “new” (nuevo) -> “Project” (proyecto). Para un acceso más rápido también puede presionar la combinación ''crtl+shift+n''. | ||
+ | |||
+ | //////Imágenes///// | ||
+ | |||
+ | |||
+ | Lo siguiente que se quiere hacer, es configurar el proyecto nuevo como una Aplicación de Consola Win32. Para ello, en la ventana que emergió anteriormente, ubicamos del lado izquierdo, Templates -> Visual C++ -> Win32 Console Application (Aplicación de consola Win32). Le asignamos nombre y ubicación al proyecto ('''¡¡¡Tomar nota!!!'''), y presionamos la tecla aceptar. | ||
+ | |||
+ | '''Nota:''' De estar trabajando en una computadora ubicada en el Laboratorio C, crear el proyecto en la carpeta Temp con un nombre especifico, para que de esa manera no sea eliminada por el personal. | ||
+ | |||
+ | //////Imágenes///// | ||
+ | |||
+ | En caso de no encontrar de manera manual el tipo de proyecto, uno siempre se puede apoyar en el buscador, ubicado en la esquina superior izquierda de dicha ventana. | ||
+ | |||
+ | //////Imágenes///// | ||
+ | |||
+ | Continuando con la configuración del proyecto, nos topamos con el asistente de aplicaciones Win32. En dicha ventana presionamos Siguiente, llevando a la configuración de aplicaciones, donde se escogerán las siguientes opciones: | ||
+ | *'''''Tipo de aplicación:''''' | ||
+ | **''Aplicación de consola'' | ||
+ | *'''''Opciones adicionales:''''' | ||
+ | **''Proyecto vacío''. | ||
+ | |||
+ | '''Nota:''' Dependiendo de los usos y fines de nuestro proyecto, estas opciones pueden variar, e incluso llevar a mas configuraciones. Para el caso actual, esas opciones no son de interés. | ||
+ | //////Imágenes///// | ||
+ | |||
+ | ===Archivo de Código Fuente=== | ||
+ | Ya con el proyecto creado, procedemos a agregar el archivo fuente de nuestro proyecto. Para ello, nos ubicamos en la carpeta Sources (Archivos de código fuente, o, Fuentes), que por defecto se encuentra en la parte derecha de nuestra pantalla. Damos click derecho, y abrimos el camino “Add -> New Item” (Agregar -> Nuevo elemento) ''Ctrl + Shift + A''. | ||
+ | |||
+ | //////Imágenes///// | ||
+ | |||
+ | En la nueva ventana, seleccionamos el tipo de archivo “C++ File (.cpp)” (Archivo C++ (.cpp)) y lo nombramos “main.cpp” en la parte de debajo de la presente pantalla. Damos click, en agregar. | ||
+ | |||
+ | //////Imágenes///// | ||
+ | |||
+ | Aquí es donde se agregará el código realizado. | ||
+ | |||
+ | === Agregando Librerias de PThreads === | ||
+ | Interesa en este punto de la configuración tener listos los archivos de librerías e includes, descargados al inicio del artículo. Para ello, se copiará la carpeta pthread (ubicada dentro de x86) en una carpeta, preferiblemente, junto a la carpeta del proyecto en cuestión. Lo siguiente será vincular dichos archivos al proyecto. | ||
+ | Ubicamos el nombre de nuestro proyecto, en el Explorador de Soluciones, justo debajo de Solución ‘nombredelproyecto’. Damos click derecho, y ubicamos “Properties” (Propiedades) o también, podemos acceder con la combinación ''Alt + Enter'', teniendo seleccionado el panel de Explorador de Soluciones. | ||
+ | |||
+ | |||
+ | Una vez, dentro de la ventana de propiedades, ubicamos en el panel izquierdo “VC++ Directories” (Directorios VC++), y ahí los 3 directorios “Executable Directories”, “Include Directories” y “Library Directories” (Directorio de Archivos Ejecutables, Inclusión y bibliotecas respectivamente) donde vamos a seleccionar la ubicación de los archivos descargados. Seleccionamos uno de ellos, y damos click a la flecha lateral que aparece en la dirección de los archivos actualmente seleccionados y presionamos editar. De ahí, nos aparece una nueva ventana. Presionamos el botón de la carpeta, seguido de los “…”. | ||
+ | |||
+ | ///// Imágenes ////// | ||
+ | |||
+ | Ubicamos las distintas carpetas en cada uno de los 3 casos: | ||
+ | |||
+ | '''''Archivos ejecutables:''''' | ||
+ | ''pthread -> lib'' | ||
+ | |||
+ | '''''Archivos de inclusión:''''' | ||
+ | ''pthread -> include'' | ||
+ | |||
+ | '''''Archivos de bibliotecas:''''' | ||
+ | ''pthread -> lib'' | ||
+ | |||
+ | Quedando de la siguiente manera: | ||
+ | |||
+ | ///// Imagen ////// | ||
+ | |||
+ | Por último, vamos a la sección “Linker -> Input” (Vinculador -> Entrada) en el panel izquierdo. Ubicamos “Additional Dependencies” (Dependencias adicionales), y para efectos prácticos de este artículo, SÓLO agregamos antes de kernel32.lib lo siguiente: | ||
+ | |||
+ | *''pthreadVC2.lib;'' | ||
+ | |||
+ | '''Nota:''' Recordar poner el “;” <<Punto y coma>> después de cada dependencia agregada, además del tipo de archivo que se está agregando. De tener cualquier dependencia adicional, necesaria para el programa o aplicación en cuestión ha de agregarse en esta sección. | ||
+ | |||
+ | ///// Imagen ////// | ||
+ | |||
+ | Una vez terminado, presionamos "Aplicar" luego "Aceptar", regresando a la pantalla principal de Visual Studio. | ||
+ | |||
+ | Ya con estos pasos, Visual Studio queda configurado para trabajar con lo básico de Hilos Posix, quedando pendiente probar los códigos. Dentro del comprimido descargado al principio del artículo se encuentra en un bloc de notas, un código de prueba, sacado de la página | ||
+ | [http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html Linux Tutorial PThreads] | ||
+ | |||
+ | ===Shortcuts de interés=== | ||
+ | *'''''Crear nuevo proyecto:''' (Ventana activa: Principal)'' | ||
+ | **''Ctrl + Shift + N'' | ||
+ | *'''''Añadir nuevo elemento:''' (Ventana activa: Explorador de soluciones)'' | ||
+ | **''Ctrl + Shift + A'' | ||
+ | *'''''Propiedades de proyecto:''' (Ventana activa: Explorador de soluciones)'' | ||
+ | **''Alt + Enter'' | ||
+ | *'''''Contruir proyecto:''' (Ventana activa: principal)'' | ||
+ | **''Ctrl + Shift + B'' | ||
+ | *'''''Correr con debug:''' (Ventana activa: principal)'' | ||
+ | **''F5'' | ||
+ | *'''''Correr SIN debug:''' (Ventana activa: principal)'' | ||
+ | **''Ctrl + F5'' | ||
+ | |||
+ | ==Referencias== | ||
+ | *[http://books.google.com/books?id=_xvnuFzo7q0C&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false '''Programming with POSIX threads.''' ''David R. Butenhof''] | ||
+ | *'''Tutorial de configuración de Visual Studio 2010 con Posix Threads.''' ''Raúl Acuña'' | ||
+ | |||
+ | |||
+ | Aún falta. Es para ir viendo como va quedando | ||
+ | blah. | ||
+ | |||
+ | |||
+ | **************************************************************************************************************** | ||
+ | **************************************************************************************************************** | ||
+ | **************************************************************************************************************** | ||
+ | |||
+ | NOTA! Es igual que el VS 2012, porque me copie el articulo para tenerlo de base!!! | ||
+ | |||
+ | **************************************************************************************************************** | ||
+ | **************************************************************************************************************** | ||
+ | **************************************************************************************************************** | ||
+ | |||
Gustavo Rivera | Gustavo Rivera | ||
[[Categoría: EC3731 - Arquitectura del Computador 2]][[Categoría: Sistemas Operativos]] | [[Categoría: EC3731 - Arquitectura del Computador 2]][[Categoría: Sistemas Operativos]] |
Revisión del 08:37 12 nov 2012
**************************************************************************************************************** **************************************************************************************************************** ****************************************************************************************************************
NOTA! Es igual que el VS 2012, porque me copie el articulo para tenerlo de base!!!
**************************************************************************************************************** **************************************************************************************************************** ****************************************************************************************************************
En el siguiente artículo, se pretende ayudar al usuario a crear y configurar un proyecto en Visual Studio 2012, con el fin de trabajar con los hilos POSIX usando el lenguaje de programación C++.
Este artículo, no pretende dar una completa explicación de lo que son los hilos POSIX (ni el respectivo estándar) ni el lenguaje de programación C++, mas si ofrecerá una breve descripción, con los conceptos básicos, para un rápido entendimiento.
Para mayor información sobre estos últimos, consulte la sección de referencias ubicada al final del artículo.
Contenido
Visual Studio 2012
info visual
////////////////////////////////////////////////////// ////////////////////////////////////////////////////// selfnote: preguntar como agregar tabla de información "a lo wikipedia". como agregar imagenes. actualizar los links en la referencia (wiki, c++, láminas, libros) ////////////////////////////////////////////////////// //////////////////////////////////////////////////////
Posix Threads
Los PThreads, o Posix Threads, es un estandar de POSIX para el control de hilos en un programa, o extensión. Mas específicamente, el estandar POSIX.1c (Extensiones de hilos), define un API para la creación y la manipulación de los hilos.
Existen alrededor de 100 procedimientos de este estandar, los cuales pueden ser categorizados en 4 grupos principales:
- Manejadores de Hilos
- Variables con condiciones
- Sincronización
- Mutex
Lamentablemente, para los usuarios de Windows, no hay una compatibilidad directa con este tipo de estándares, a diferencia de Linux, MAC OS X,FreeBSD, OpenBSD, Solaris, entre otros. Para ello, se han creado librerías y paquetes independientes para brindarle a Windows y DR-DOR, la compatibilidad necesaria.
Nota: En la sección Configurar Visual Studio 2012 con pthreads (Posix Threads) se encuentra un comprimido con un paquete específico con el cual se podrá trabajar usando Visual Studio. Mas adelante, se explica con detenimiento como configurar dichos archivos.
C++
C++ (C mas mas) es un lenguaje de programación, se puede considerar un lenguaje híbrido, que surgió como extensión del lenguaje de programación C a mediados de los 80. Dicho lenguaje, aporta mecanismos de programación orientada a objetos, como classes y definiciones de nuevos tipos de datos no incluidos en C, como wchar_t, permitiendo trabajar con caracteres UNICODE.
Para efectos prácticos de este artículo, se configurará a continuación el Visual Studio 2012 para trabajar con C++ y sus respectivas extensiones, debido a su fácil uso y relación con el lenguaje de programación C.
Configurar Visual Studio 2012 con pthreads (Posix Threads)
En primera instancia, se debe tener Visual Studio 2012 instaldo en la computadora a trabajar. Lo siguiente es descargar estos Archivos para PThreads - Windows, los cuales incluyen las “librerías” e “includes” necesarios.
Creando Proyecto App Win32
Lo siguiente que se va a hacer, será crear un proyecto nuevo en Visual Studio, con la configuración Visual C++. Esto se puede realizar, dando click en “New Project” en el Start Page (Nuevo Proyecto en su defecto), como también buscando en la pestaña “FILE” o “ARCHIVO” -> “new” (nuevo) -> “Project” (proyecto). Para un acceso más rápido también puede presionar la combinación crtl+shift+n.
//////Imágenes/////
Lo siguiente que se quiere hacer, es configurar el proyecto nuevo como una Aplicación de Consola Win32. Para ello, en la ventana que emergió anteriormente, ubicamos del lado izquierdo, Templates -> Visual C++ -> Win32 Console Application (Aplicación de consola Win32). Le asignamos nombre y ubicación al proyecto (¡¡¡Tomar nota!!!), y presionamos la tecla aceptar.
Nota: De estar trabajando en una computadora ubicada en el Laboratorio C, crear el proyecto en la carpeta Temp con un nombre especifico, para que de esa manera no sea eliminada por el personal.
//////Imágenes/////
En caso de no encontrar de manera manual el tipo de proyecto, uno siempre se puede apoyar en el buscador, ubicado en la esquina superior izquierda de dicha ventana.
//////Imágenes/////
Continuando con la configuración del proyecto, nos topamos con el asistente de aplicaciones Win32. En dicha ventana presionamos Siguiente, llevando a la configuración de aplicaciones, donde se escogerán las siguientes opciones:
- Tipo de aplicación:
- Aplicación de consola
- Opciones adicionales:
- Proyecto vacío.
Nota: Dependiendo de los usos y fines de nuestro proyecto, estas opciones pueden variar, e incluso llevar a mas configuraciones. Para el caso actual, esas opciones no son de interés. //////Imágenes/////
Archivo de Código Fuente
Ya con el proyecto creado, procedemos a agregar el archivo fuente de nuestro proyecto. Para ello, nos ubicamos en la carpeta Sources (Archivos de código fuente, o, Fuentes), que por defecto se encuentra en la parte derecha de nuestra pantalla. Damos click derecho, y abrimos el camino “Add -> New Item” (Agregar -> Nuevo elemento) Ctrl + Shift + A.
//////Imágenes/////
En la nueva ventana, seleccionamos el tipo de archivo “C++ File (.cpp)” (Archivo C++ (.cpp)) y lo nombramos “main.cpp” en la parte de debajo de la presente pantalla. Damos click, en agregar.
//////Imágenes/////
Aquí es donde se agregará el código realizado.
Agregando Librerias de PThreads
Interesa en este punto de la configuración tener listos los archivos de librerías e includes, descargados al inicio del artículo. Para ello, se copiará la carpeta pthread (ubicada dentro de x86) en una carpeta, preferiblemente, junto a la carpeta del proyecto en cuestión. Lo siguiente será vincular dichos archivos al proyecto. Ubicamos el nombre de nuestro proyecto, en el Explorador de Soluciones, justo debajo de Solución ‘nombredelproyecto’. Damos click derecho, y ubicamos “Properties” (Propiedades) o también, podemos acceder con la combinación Alt + Enter, teniendo seleccionado el panel de Explorador de Soluciones.
Una vez, dentro de la ventana de propiedades, ubicamos en el panel izquierdo “VC++ Directories” (Directorios VC++), y ahí los 3 directorios “Executable Directories”, “Include Directories” y “Library Directories” (Directorio de Archivos Ejecutables, Inclusión y bibliotecas respectivamente) donde vamos a seleccionar la ubicación de los archivos descargados. Seleccionamos uno de ellos, y damos click a la flecha lateral que aparece en la dirección de los archivos actualmente seleccionados y presionamos editar. De ahí, nos aparece una nueva ventana. Presionamos el botón de la carpeta, seguido de los “…”.
///// Imágenes //////
Ubicamos las distintas carpetas en cada uno de los 3 casos:
Archivos ejecutables: pthread -> lib
Archivos de inclusión: pthread -> include
Archivos de bibliotecas: pthread -> lib
Quedando de la siguiente manera:
///// Imagen //////
Por último, vamos a la sección “Linker -> Input” (Vinculador -> Entrada) en el panel izquierdo. Ubicamos “Additional Dependencies” (Dependencias adicionales), y para efectos prácticos de este artículo, SÓLO agregamos antes de kernel32.lib lo siguiente:
- pthreadVC2.lib;
Nota: Recordar poner el “;” <<Punto y coma>> después de cada dependencia agregada, además del tipo de archivo que se está agregando. De tener cualquier dependencia adicional, necesaria para el programa o aplicación en cuestión ha de agregarse en esta sección.
///// Imagen //////
Una vez terminado, presionamos "Aplicar" luego "Aceptar", regresando a la pantalla principal de Visual Studio.
Ya con estos pasos, Visual Studio queda configurado para trabajar con lo básico de Hilos Posix, quedando pendiente probar los códigos. Dentro del comprimido descargado al principio del artículo se encuentra en un bloc de notas, un código de prueba, sacado de la página Linux Tutorial PThreads
Shortcuts de interés
- Crear nuevo proyecto: (Ventana activa: Principal)
- Ctrl + Shift + N
- Añadir nuevo elemento: (Ventana activa: Explorador de soluciones)
- Ctrl + Shift + A
- Propiedades de proyecto: (Ventana activa: Explorador de soluciones)
- Alt + Enter
- Contruir proyecto: (Ventana activa: principal)
- Ctrl + Shift + B
- Correr con debug: (Ventana activa: principal)
- F5
- Correr SIN debug: (Ventana activa: principal)
- Ctrl + F5
Referencias
- Programming with POSIX threads. David R. Butenhof
- Tutorial de configuración de Visual Studio 2010 con Posix Threads. Raúl Acuña
Aún falta. Es para ir viendo como va quedando
blah.
**************************************************************************************************************** **************************************************************************************************************** ****************************************************************************************************************
NOTA! Es igual que el VS 2012, porque me copie el articulo para tenerlo de base!!!
**************************************************************************************************************** **************************************************************************************************************** ****************************************************************************************************************
Gustavo Rivera
Contributors
Alecruz185, Francjsalanova, Guso, JCaceres, Luis E Santana P, Minleung, Misato, Racuna