jueves, 29 de noviembre de 2012

PROCESOS DEL SISTEMA


using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication5
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new formProcess());
        }
    }
}


En este programa nos muestra los procesos que se estan generando en el sistema

miércoles, 28 de noviembre de 2012

CARRERA DE CABALLOS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace caballosCarrera
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}




En la carrera de caballos nos muestra como es el proceso de hilos; cada caballo nos representa la velocidad de los procesos y su  posicion de dentro de la carrera


BARRAS 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace EjemploHilos1
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}




En este programa nos dice como o mejor dicho nos muestra como es que trabaja los procesos del sistema operativo, cuando termina con uno continua con el otro.

Hilos

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace EjemploHilos
{
    class Program
    {
        static void Main(string[] args)
        {
            Proceso oProceso = new Proceso();
            Console.WriteLine("Contando PARES en el proceso principal: ");
            Console.WriteLine("---------------------------------------");
            Console.WriteLine();
            oProceso.ContarNumerosPares();
            Console.WriteLine("Contando IMPARES en el proceso principal: ");
            Console.WriteLine("-----------------------------------------");
            Console.WriteLine();
            oProceso.ContarNumerosImpares();
            Console.WriteLine("Contando PARES desde un hilo: ");
            Console.WriteLine("-----------------------------");
            Console.WriteLine();
            Thread HiloPar = new Thread(oProceso.ContarNumerosPares);
            HiloPar.IsBackground = true;
            HiloPar.Start();
            HiloPar.Join();
            Console.WriteLine("Contando IMPARES desde un hilo: ");
            Console.WriteLine("-------------------------------");
            Console.WriteLine();
            Thread HiloImpar = new Thread(oProceso.ContarNumerosImpares);
            HiloImpar.IsBackground = true;
            HiloImpar.Start();
            HiloImpar.Join();
            Console.WriteLine("Lanzando los dos hilos al mismo tiempo: ");
            Console.WriteLine("---------------------------------------");
            Console.WriteLine();
            Thread nuevoHiloPar = new Thread(oProceso.ContarNumerosPares);
            Thread nuevoHiloImpar = new Thread(oProceso.ContarNumerosImpares);
            nuevoHiloPar.Start();
            nuevoHiloImpar.Start();
            Console.ReadLine();
        }
    }
    class Proceso
    {
        public void ContarNumerosPares()
        {
            for (int numero = 0; numero <= 100; numero = numero + 2)
            {
                Console.Write(numero + " ");
                for (int GranContador = 0; GranContador <= 20000000; GranContador++) ;
            }
            Console.WriteLine();
            Console.WriteLine();
        }
        public void ContarNumerosImpares()
        {
            for (int numero = 1; numero <= 100; numero = numero + 2)
            {
                Console.Write(numero + " ");
                for (int GranContador = 0; GranContador <= 20000000; GranContador++) ;
            }
            Console.WriteLine();
            Console.WriteLine();
        }
    }
}



 Hilos: Son mecanismos de sincronizacion para controlar el acceso a este recurso compartiendo entre las distintas hebras de un proceso

martes, 27 de noviembre de 2012

Programación paralela

La meta más agresiva del paralelismo de hoy en día es hacer que los programas sean eficientes, portables y escalables (que se adapten al incremento del número de núcleos que son integrados al sistema).
No es productiva, esto retardará y reducirá el número de programas que puedan explotar los recursos computacionales de las nuevas arquitecturas multinúcleos.

La programación paralela o programación concurrente es una técnica de programación basada en la ejecución simultánea, bien sea en un mismo ordenador (con uno o varios procesadores) o en un cluster de ordenadores, en cuyo caso se denomina computación distribuida.

Los sistemas multiprocesador o multicomputador consiguen un aumento del rendimiento si se utilizan estas técnicas. En los sistemas monoprocesador el beneficio en rendimiento no es tan evidente, ya que la CPU es compartida por múltiples procesos en el tiempo, lo que se denomina multiplexación.


La esencia de la porgramación concurrente es la división de una tarea en múltiples sub-tareas que puedan ser realizadas relativamente independientemente unas de otras para combinarlas después.


Critica:
En  se tiene que buscar la mejor forma y facil para la realizacion de programas.
La programacion en paralela se me hace una buena forma para llevar a cado dichos programas ya que se puede ejecutar simultanea o en un mismo ordenador.