viernes, 18 de mayo de 2012

**  SECUENCIA DE INSTRUCCIONES**

Otro requisito del modelo de von  Neumann es que el programa debe de ser una secuencia de instrucciones.Dado esto, cada instrucción opera en una o mas piezas de datos, de esta manera cadea instrucción puede cambiar el efecto de una instrucción previa, un ejemplo de esto seria, un programa que introduce dos números, luego los suma e imprime el resultado, esto nos demuestra que este programa necesita de cuatro instrucciones individuales.

Esto nos dice que debemos de seguir paso a paso las instrucciones de un programa al momento de desarrollarlo, para después el usuario puede manejar lo correctamente.

Un programa debe estar hecho de instrucciones, para que tenga la suficiente capacidad de poder usarse después. Actualmente las computadoras realizan millones de tareas, si  el programa para cada tarea fuera una entidad independiente sin una sección común con otros programas, la programación seria difícil. El modelo de von Neumann facilita la programación mediante una definición cuidadosa de diferentes instrucciones que la computadora puede usar:un programador puede cambiar esta instrucciones para hacer cualquier numero de programas (cada programa puede ser una combinación diferente de distintas instrucciones).
                                              organización de un programa almacenado
https://www.google.com.mx/searchhl=es&pwst=1&gbv=2&q=concepto%20de%20programa%20almacenado&psj=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&biw=620&bih=262&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi&ei=uSq5T4-bKcz_sQKUq5CLDA
Introducción a las ciencias comunicacionales.Pdf

 **CONCEPTO DE PROGRAMA ALMACENADO**


El aporte de von Neumann fue precisamente hacer ver la necesidad de separar el programa de la máquina misma, para así poder reconfigurar el computador según fuese necesario.
Dicho concepto es teórico muy importante  ya que fue establecido por el matemático John von Neumann el 30 de junio de 1945 en un borrador sobre el diseño de la EDVAC. A diferencia de los primeros computadores,  von Neumann proponía que tanto el programa como sus datos fueran almacenados en la memoria del computador. Esto no solo simplificaba la labor de programación al no tener que llevar a cabo el recableado del computador sino que además libraba y generalizaba el diseño del hardware para hacerlo independiente de cualquier problema y enfocado al control y ejecución del programa. Este concepto fue tan importante y  decisivo que dio lugar al concepto de la arquitectura de von Neumann, aún presente en nuestros días.
Según Von Neumann, la clave para construir una máquina de propósito general es poder almacenar no sólo los datos y los resultados intermedios de una computación,  sino también las instrucciones que definen el procedimiento de computación.
En una máquina de propósito especifico, el procedimiento puede ser parte de la máquina. Sin embargo, en una máquina de propósito general, cambiar las instrucciones tiene que ser tan fácil como cambiar los datos sobre los que actúan. La solución es codificar las instrucciones de forma numérica y guardarlas junto con los datos en la misma memoria.


miércoles, 16 de mayo de 2012

**HARDWARE**


El hardware de un ordenador lo componen todas las partes físicas y tangibles,  (todo lo que se puede ver y tocar)que componen todo el sistema que hace posible el funcionamiento del proceso de datos. Entre las partes más  importantes que componen el hardware de un ordenador se encuentra el procesador o microprocesador, antiguamente conocido como CPU ( Unidad Central de Procesamiento), que es el cerebro o corazón del sistema, por el cual pasan todos los datos, la placa base, o placa madre, que contiene todos los circuitos que interconectan los componentes del hardware.
                                              
Clasificaremos el hardware en dos tipos:
- El que se encuentra dentro de la torre o CPU, y que por lo tanto no podemos  ver a simple vista.
                                                     
- El que se encuentra alrededor de la torre o CPU, y que por lo tanto, si que vemos  a simple vista, y que denominamos periféricos.
                                                           
Es importante también, destacar las categorías de Periféricos de Entrada, Salida, o ambas (E/S). El hardware de Salida, como puede serlo un monitor, describe a aquellos que muestran resultados, mientras que el hardware de Entrada está regido por aquellos dispositivos que hacen posible la recepción de datos,
como por ejemplo el teclado. Por su parte, los que son capaces de soportar ambas visiones (Entrada y Salida) dan lugar a unidades, como por ejemplo un Hard Drive -Disco Duro-, que envían y reciben información, entre la PC y el usuario.
                                          

martes, 15 de mayo de 2012

**SOFTWARE**


ALGORITMOS 


  • Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito. [Donald E. Knuth, 1968]
  • Descripción de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a prioridad. Este repertorio se denomica lexico [Pierre Scholl, 1988]
  • Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004]
                      Algoritmo [2]
Características fundamentales:

Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.
Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos.
Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende.
Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.
Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución.
Filed under: Algoritmica y Programación.
                                 


DIAGRAMAS DE FLUJO 
Es la representación gráfica de la secuencia de pasos que se realizan para obtener un cierto resultado. Oculta todos los detalles de una algoritmo en un intento por dar la idea global, se encarga de mostrar como fluye el algoritmo de principio a fin.
Estructuras: Permiten alternar el flujo secuencial de los algoritmos.

                                
  • Secuencial:  Es aquella en la que una acción (instrucción) sigue a otra en secuencia.

  • Selectiva: Se utilizan para tomar decisiones lógicas, se evalúa una condición y en función del resultado de la misma se realiza una opción u otra.
Las estructuras selectivas o alternativas pueden ser:
1.Simples: Si Entonces (en inglés If Then) ejecuta una determinada acción cuando se cumple una determinada condición.2.Dobles: Si Entonces Sino (en inglés If Then Else) permite elegir entre dos opciones o alternativas posibles, en función del cumplimiento o no de determinada condición.3.Múltiples: Según sea, caso de (en inglés Case Of) evaluará una expresión que podrá tomar n valores distintos.
  • Repetitiva: Son aquellas estructuras que repiten una secuencia de instrucciones un número determinado de veces se denominan bucles y se denomina  interacción al hecho de repetir la ejecución de una secuencia de acciones.

1.La estructura repetitiva Repetir Hasta que (en inglés Repeat Until), se ejecuta hasta que se cumpla una condición determinada que se comprueba al final del bucle.
2.La estructura repetitiva Mientras (en inglés While) es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición.
3.La estructura repetitiva Desde o Para (en inglés For), ejecuta las acciones del cuerpo del bucle un número especificado de veces y de modo automático controla el número de iteraciones o pasos a través del cuerpo del bucle.  

Símbolos 

                                Símbolos [1]
   


                                            
                                         
                                                                                                       

























fabocuevas.wordpress.com [1]

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhQ
SEBQUEBQVEBUUEBAVFBcVFRgVFBcVFBUYFhQYFRcYHCYeGBokGRYXHy
8gIycpLiwtFR4xNTArNSYrLCkBCQoKBQUFDQUFDSkYEhgpKSkpKSkpKSkpKSk [2]
Ricardo Baeza Yates. Computación: de los Juegos a los Algoritmos, y de la Teoría a la Práctica. Mayo 2003
Ricardo Baeza Yates. Algoritmia. Mayo 1995
Eduardo René Rodríguez Ávila. El Correcto y Completo Desarrollo de un Algoritmo. Mayo 2004
Wikipedia. Algoritmo. Wikipedia. Agosto 2007
www.dgb.sep.gob.mx/informacion...ii/b1-diagramadeflujo.pdf
www.embedded.com.mx/EstructurasControl.pdf













lunes, 14 de mayo de 2012

 **Arreglos**
Un arreglo permite almacenar vectores y matrices.
Los arreglos unidimensionales sirven para manejar vectores y los arreglos bidimencionales para matrices, sin embargo, las matrices tambien se pueden almacenar madiante arreglos unidimencionales y por medio de apuntadores.
La palabra unidimensional no indica que se trata de vectores en espacios de dimensi´on uno; indica
que su manejo se hace mediante un sub´ındice. El manejo de los arreglos bidimensionales se hace mediante dos sub´ındices.

arreglo unidimencional arreglo bidimencional











domingo, 13 de mayo de 2012

**SISTEMAS OPERATIVOS**


Un sistema operativo  es muy complejo y no tiene una definición especifica por lo que pongo las definiciones que mas se parecen.
    [1]
  • Un sistema operativo es un interfaz entre el hardware de una computadora y el usuario.
  • Un sistema aperativo es un programa (o uns serie de programas) que facilita la ejecucion de otros programas.
  • Un sistema operativo actua como un gerente que supervisa la actividad de cada componente en el sistema de computacion, como gerente general, el sistema operativo es el que revisa que los recursos del hardware y del software se utilice  de manera eficiente y cuando existe un conflicto al usar un recurso, este actúa como mediador para resolverlo.
Tiene dos objetivos:
  1. el uso eficiente del hardware
  2. Facilidad para usar los recursos
Sistemas por lotes: fue diseñado en la década de 1950, para controlar a las computadoras mainframe. Cada programa a ejecutarse se llamaba tarea, este se usaba, de manera de que un programador que deseaba ajecutar una tarea enviava una solicitud a la sala de enviaba a la sala de operaciones  junto con la targetas perforadas para el programa y los datos, el programador no tenia ningún control o interaccion con el sistema. Este sistema operativo era muy simple ya que solo se aseguraban de todos los recursos se transfirieran de una tarea a la siguiente.
Sistemas de tiempo compartido: este sistema de computación  utiliza la multiprogramacion, con la finalidad de tener varias tareas en la memoria y solo asignar un recurso a una tarea que lo necesite con la condición de que el recurso este disponible. 
La multiprogramacion trajo la idea del tiempo compartido  ya que los recursos pueden compartirse a diferentes tareas, a cada tarea se le puede asignar una parte del tiempo para poder usar el recurso, ya que la computadora es mas rápida que una persona, el tiempo compartido es transparente para el usuario ( cada usuario tiene la mentalidad de que todo el sistema esta trabajando para el o ella).
La programación y el tiempo compartido mejoran en gran medida la eficiencia de un sistema, no obstante esta requería de un sistema operativo mas complejo, dicha operación tenia que realizar la planificación ; esto significa asignación de los recursos a loas distintos programas y decir cual programa debería utilizar, cual recurso y cuando.
En esta época la relación entre una computadora y un usuario también cambio ya que el usuario tenia la facilidad de interactuar directamente con el sistema (sin pasar por un operador).De donde salio este nuevo termino Proceso. Una tarea es un programa a ejecutar, un proceso es un programa que ya esta en la memoria en espera de recursos.
Sistemas personales: este surgió cuando las computadoras personales se introdujeron ya que tenia la necesidad de un sistema operativo de este tipo: Durante la época, se introdujeron los sistemas operativos Monousuario tales como DOS (disk operating system, sistema operativo de disco).
Sistemas paralelos: estos fueron para obtener una mayor velocidad y eficacia (varios CPU en la misma maquina), cada CPU podía utilizarse para servir a una programa o a una parte del programa, lo cual significa que podían formarse muchas tareas en paralelo en vez de en forma de serie.
Sistemas distribuidos: combinan características con nuevos servicios como el control de la seguridad, Un programa puede ejecutarse parcialmente en una computadora y parcialmente en otra si esta conectado mediante un conjunto de redes interconectadas como internet.
Componentes:

  • Administrador de memoria

  1. Monoprogramacion
  2. Multiprogramacion
  3. Memoria Virtual



[2]



  • Administrador de procesos
  1. Programa, tarea y proceso
  2. Diagrama de estado
  3. Planificadores
  4. Colas de espera
  5. Proceso de  sincronizacion
  • Administrado de dispositivos
  • administrador de archivos
  • Interfaz de usuario


Administrar la memoria.
Gestionar el uso de la CPU (planificación).
Administrar el uso de los dispositivos de E/S.
Cuando desempeña esas tareas, el monitor residente se transforma en un sistema operativo multiprogramado.
Definición breve: llamadas que ejecutan los programas de aplicación para pedir algún servicio al SO.
Gestión de procesos
Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de:
Crear y destruir los procesos.
Parar y reanudar los procesos.
Ofrecer mecanismos para que se comuniquen y sincronicen.
La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.
Sistema de archivos
Artículo principal: Sistema de archivos.
Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc. El SO es responsable de:
Construir y eliminar archivos y directorios.
Ofrecer funciones para manipular archivos y directorios.
Establecer la correspondencia entre archivos y unidades de almacenamiento.
Realizar copias de seguridad de archivos.
Sistemas de protección
Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:
Distinguir entre uso autorizado y no autorizado.
Especificar los controles de seguridad a realizar.
Forzar el uso de estos mecanismos de protección.
Sistema de comunicaciones
Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.
Clasificación
Administración de tareas
Monotarea: Solamente permite ejecutar un proceso (aparte de los procesos del propio SO) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de SO. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.
Administración de usuarios
Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
Manejo de recursos
Centralizado: Si permite usar los recursos de una sola computadora.
Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos...) de más de una computadora al mismo tiempo.


Ejemplos de sistemas operativos para PC


  1. Microsoft Windows
  2. Mac OS
  3. GNU/Linux
  4. Unix
  5. Solaris
  6. Google Chrome OS
  7. Debian
  8. Ubuntu
  9. Mandriva
  10. Sabayon






  1. Cfr., entre otros: Tanenbaum, A. (1992) Modern Operating Systems, Englewood Cliffs: Prentice-Hall; Haldar, S. y Aravind, A. A. (2010) Operating Systems, Pearson Education India, pp. 12 y ss.; Turner, R. W. (1986) Operating Systems: design and imnplementation, MacMillan.
  2. Washington Post - Debut de Windows 95» (en inglés).
  3. Toastytech.com (ed.): «BeOS 5.0 Personal Edition» (en inglés) (2010). Consultado el 10 de febrero de 2010.
  4. O´brien, James A. (2006). Sistemas de Información Gerencial. México DF.
  5. Silberschatz, Abraham (2006). Sistemas Operativos. México. ISBN 968-18-6168-X.
  6. Introducción a las ciencias computacionales [1] [2]
  7. haciendoweb.cult.cu [3]
  8. eq2-sistemasoperativos.blogspot.com [4]
  9. http://youtu.be/o_gEkCuKn5Q

viernes, 11 de mayo de 2012

** INGENIERÍA DE SOFTWARE**

La ingeniería de software es el establecimiento y uso de métodos y principios de ingeniería  sólidos para obtener software confiable que trabaje en maquinas reales, esta definición tomada de la primera conferencia internacional sobre la ingeniería de software en 1969, se propuso 30 años después de que salio la primera computadora, durante ese periodo el software fue mas un arte que una ciencia.
La ingeniería de software es un ciclo de vida del software El software igual que muchos otros productos pasan por un ciclo de fases repetitivas.
                                   Ing. de Software[1]
Procesos de desarrollo
Fase de análisis:es la que muestra lo que debe de hacer el paquete, define los requisitos que especifica lo que el sistema opuesto va a lograr, estos requisitos establecen los términos que el usuario comprende.
  • Definición de usuario
  • Definición de las necesidades
  • Definición de requisitos
  • Definición de los métodos
Fase de diseño: es la que define como lograr el sistema lo que se define como la fase de análisis. En la fase de diseño, se determinan los sistemas y el diseño de archivos y/o base de datos se completa.
  • Modularidad
  • Herramientas
Fase de implementacion: en esta fase se crean los programas reales.

  • Herramientas
  • CodificacionFase de prueba
Fase de prueba: una vez que el programa se ha escrito, debe probarse. La fase de prueba puede ser muy tediosa y consumir parte del tiempo del programa.
  • Prueba de caja negra
  • Prueba de caja blanca
                                  Procesos[2]








Introduccion a las ciencias comtupacionales
https://encrypted-tbn2.google.com/images?q=tbn:ANd9GcQBdXzHgjHIq_KD3c3Fue9Iw8o2sOkTRLcPhbRzKzaskuEiMBOnUg [1]
https://encrypted-tbn3.google.com/images?q=tbn:ANd9GcQhy544Mc3nwTCBiezeH2wZYVBfq53SeRm4s0sVb4yL_rsrZcUYZrh0LQ3g [2]