Site hosted by Angelfire.com: Build your free website today!

UNIVERSIDAD DEL VALLE DE MEXICO

CAMPUS CHAPULTEPEC

 PRINCIPIOS DE PROGRAMACIÓN

MATERIAL DE APOYO

 

El Kernel y el Shell  

Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte más importante del DOS es un programa con el nombre "COMMAND.COM" Este programa ti ene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el código máquina de bajo nivel para manejar la administración de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos. Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando carga s Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz de línea de comandos con una interfaz gráfica del usuario. Existen muchos shells diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versión 5.0 incluyó un Shell llamado DOS SHELL.

http://www.salonhogar.com/ciencias/tecnologia/computadoras/elkernelyelshell.htm

MULTITAREA

El término multitarea se refiere a la capacidad del SO para correr mas de un programa al mismo tiempo. Existen dos esquemas que los programas de sistemas operativos utilizan para desarrollar SO multitarea, el primero requiere de la cooperación entre el SO y los programas de aplicación.

Los programas son escritos de tal manera que periódicamente inspeccionan con el SO para ver si cualquier otro programa necesita a la CPU, si este es el caso, entonces dejan el control del CPU al siguiente programa, a este método se le llama multitarea cooperativa y es el método utilizado por el SO de las computadoras de Machintosh y DOS corriendo Windows de Microsoft.

El segundo método es el llamada multitarea con asignación de prioridades. Con este esquema el SO mantiene una lista de procesos (programas) que están corriendo. Cuando se inicia cada proceso en la lista el SO le asigna una prioridad. En cualquier momento el SO puede intervenir y modificar la prioridad de un proceso organizando en forma efectiva la lista de prioridad, el SO también mantiene el control de la cantidad de tiempo que utiliza con cualquier proceso antes de ir al siguiente.

Con multitarea de asignación de prioridades el SO puede sustituir en cualquier momento el proceso que esta corriendo y reasignar el tiempo a una tarea de mas prioridad. Unix OS-2 y Windows NT emplean este tipo de multitarea.

MULTIUSUARIO

Un SO multiusuario permite a mas de un solo usuario accesar una computadora. Claro que, para llevarse esto a cabo, el SO también debe ser capaz de efectuar multitareas.

Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue originalmente diseñado para correr en una minicomputadora, era multiusuario y multitarea desde su concepción.

Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la Machintosh llamada: A/UX.Unix

Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo tiempo.

Mediante Módems.

Mediante conexión de terminales a través de puertos seriales

Mediante Redes.

MULTIPROCESO

Las computadoras que tienen mas de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras.

Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instrucción, el otro procesador queda liberado para procesar otras instrucciones simultáneamente.

Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja.

Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como:

Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores.

Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía conv ertirse en un cuello de botella.

Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los SO tienen que ser rediseñados o diseñados desde el principio para trabajar en u n ambiente multiproceso.

Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo disponibles. Windows NT de Microsoft soporta multiproceso simétrico.

COMPILADOR:

Es un programa que traduce un lenguaje de alto nivel al lenguaje máquina. Un programa compilado indica que ha sido traducido y está listo para ser ejecutado. La ejecución de los programas compilados es más rápida que la de los interpretados, ya que el interprete debe traducir mientras está en la fase de ejecución (saca todos los errores).

INTERPRETE:

Traductor de lenguajes de programación de alto nivel, los interpretes ejecutan un programa línea por línea. El programa siempre permanece en su forma original(programa fuente) y el interprete proporciona la traducción al momento de ejecutar cada una de la s instrucciones .

http://www.geocities.com/siliconvalley/screen/2367/COMPU_S.htm

ANTECEDENTES DE MICROSOFT

Siempre ha existido el mito de que a Microsoft se le justifica haber copiado la Interfaz gráfica de la Macintosh, porque Apple se copió de la interfaz creada por Xerox PARC (Palo Alto Research Center)

Apple y Xerox

Apple no se copió la interfaz de las Macs de Xerox, Apple Computers habia contratado algunas personas del equipo de Xerox quienes creían en el concepto de la interfaz gráfica. Este concepto es muy amplio, hacer que el uso de una computadora sea más fácil, gracias a íconos, menues, ventanas, etc.

El trabajo de Apple en GUI's (Graphical User Interface) comienza con la visita de Steve Jobs en el centro de investigaciones de Palo Alto. Apple anteriormente tenía trazadas las metas de ofrecer una computadora de uso masivo, más fácil de usar, y posiblemente de utilizar los mismos conceptos (iconos, menues,etc.). Debemos recordar que los iconos no eran nuevos, los hemos utilizado durante años, en avisos internacionales en las calles, carreteras, etc. Los menues no eran nuevos tampoco, ya existían los menues basados en texto para aquel entonces.

Jef Raskin había trabajado en Xerox y convenció a Steve Jobs a que visitara Xerox, Jobs volvió convertido en un abanderado de las GUI para la facilidad de uso.

Apple Paga

Job negoció un trato con Xerox, le entregaría a Xerox una gran cantidad de acciones de Apple si podía volver con algunos programadores, para inspirarlos un poco más en los conceptos de GUI. Esto fué como un tour de un día, Xerox estuvo de acuerdo, y a esto, algunos llaman robo.

PARC era un centro de investigaciones, en el cual no se desarrollaban verdaderos productos, allí se desarrollaban ideas,. Xerox no veia a Apple como competencia, por eso le permitieron entrar y les cobraron porque sabían que sus investigaciones tenían valor.

 

Apple estaba creando un producto es por esto que luego contrata unos cuantos programadores de Xerox para empezar a trabajar en los proyectos Lisa y Mac

Las diferencias en entre Xerox y Apple fueron grandes, en Xerox habían ventanas traslapadas pero no se podía operar directamente sobre ellas, para moverlas se seleccionaba una opción de un menú que se tenía para cada ventana y luego se introducía el nuevo tamaño o posición utilizando coordenadas numéricas. Habían íconos pero no estaban asociados con archivos, eran mas que todo "botones" de acción. Xerox utilizaba los iconos como verbos (hacer esto), Apple los utilizaba como pronombres, objetos, los mismos representaban datos que uno manipulaba. En Xerox no existía mucha manipulación directa y el uso de muchas ventana era más que todo para tener múltiples terminales de caracteres como DOS. Compare esto con Macintosh y verá que Apple fue mucho más lejos a partir de lo encontrado.

La Mac era una computadora personal con 128k de memoria RAM y utilizaba un procesador Motorola 6800, las máquinas de Xerox eran de todo menos una computadora personal, no eran productos, eran herramientas de investigación, además que las arquitecturas eran totalmente distintas.

Nota: No habia una sola línea de código igual en ambas interfaces, y el diseño de ambas interfaces y sistemas fue radicalmente distinto.

Apple y Microsoft

Todo comienza porque Microsoft fue una de las primeras compañías en desarrollar software para Apple. Steve Jobs sabía que necesitaba software para que la Mac fuese comercialmente viable, y Jobs se dió cuenta que Microsoft se estaba abriendo camino en el mercado de las aplicaciones.

 

Muy pocos recuerdan que Microsoft en un principio creaba lenguajes, hasta que "robaron" el sistema operativo DOS, y no fue hasta que salió la Mac que Microsoft empieza a crear aplicaciones.

 

Jobs le enseña a Microsoft los primeros prototipos de la Mac. A Bill Gates le gustan las ideas y accede a escribir aplicaciones para la Mac.

 

Gates luego amenaza con no soltar sus aplicaciones justo antes de soltar al mercado la Mac, a menos que Steve Jobs estuviese de acuerdo con las siguientes condiciones:

 

Apple tenía que darles licencia a algunos de las aplicaciones de Microsoft para que estas utilizaran la interfaz de Macintosh en PC. (La suite de aplicaciones luego creció a Windows 1.0 y Office. Recuerden que Windows comenzó como una suite de aplicaciones y no como un Shell de Sistema Operativo.(Como Apple habia licenciado estos conceptos a Microsoft, esto debilitó su demanda en contra de Microsoft, en lo contrario al mito popular que dice que Apple perdió la demanda porque Microsoft no le robó la interfaz, la razón real de haber perdido la demanda, fue el hecho de haber licenciado estas tecnologías y se le concede a Microsoft el beneficio de la duda.)

Apple tenía que dejar de hacer su proyecto MacBasic, el cual estaba ya listo y mucho mejor que Microsoft Basic. MacBasic ya tenia muchos de los conceptos que Microsoft robó para crear Visual Basic. (Al parecer en el futuro, esta practica se trato de repetir para matar a QuickTime)

Luego Microsoft decidió que la interfaz gráfica no era lo suficientemente buena y empezó a desarrollar una suite de aplicaciones que utilizaría los conceptos de Mac para ventas, Morse y manipulación directa para lograr sus fines. Esto se convirtio en Windwos 1.0 y luego evolucionó en el Windows que hoy conocemos (y algunos odian)

 

El hecho de que Microsoft haya "pedido prestada" la interfaz de MacOS no es como lo ocurrido con Xerox y Apple (un intercambio de ambas perspecciones), este caso es mucho más intimo que es, Microsoft se llevó el mejor programador de Mac, y lo tuvieron haciendo casi todas las decisiones de diseño del primer Windows. Bill Gates le dijo que hiciera que la PC se viera y trabajara "TAL COMO UNA MAC", esto es una cita de Bill Gates!!!!, ya ven porque se dice que Apple expandió, Microsoft robó.

 

La Similaridad no fue solo en diseño, existen herramientas/APIs que son casi idénticas (en interfaz). Microsoft copió estrcturas de datos y muchas rutinas, nombres y muchos conceptos de otras cosas también. Si no fuese por el hecho de que ellos hackearon su software para correr encima de DOS también se hubiesen copiado todo el código de arranque y del kernel. Si U. Observa muchas de las viejas rutinas del viejo Windows verá que los nombres y estructuras son idénticos a los de la Mac. Pero Microsoft fue lo suficientemente inteligente como para cambiar un nombre de cada 10, re-ordenar las cosas, para evitar la demanda y decir que no eran idénticos. Microsoft tuvo que hacer unos cambios en diseño para que corriera en PC, pero en realidad el trabajo de diseño por parte de Microsoft fue nulo. La Mac era un documento de diseño viviente.

http://www.wedoit4you.com/reviews4you/show_review.php?Rev_pk_id=33

 

OLE

 

16.1. Introducción.

Hasta ahora hemos visto varias formas de comunicar aplicaciones en Windows (el portapapeles, SendKeys y DDE), todas ellas nos permiten alguna funcionalidad extra entre aplicaciones, pero se quedan bastante cortas frente a lo que puede hacer OLE (Object Linking and Embedding: Vinculación e incrustación de objetos).

 

OLE es un estándar desarrollado por Microsoft para la comunicación entre aplicaciones, incrustación de objetos de algún tipo dentro de una aplicación, reutilización de código y uso de servicios que ofrece una aplicación desde otra distinta (a esto se le llama automatización OLE). Ejemplos de lo que podemos hacer con OLE son:

ü        Introducir un documento de Word o de Excel desde nuestro programa usando el mismo entorno de Word o de Excel (en un formulario de VB).

 

ü        Llamada a Word o Excel (o muchos otros programas) desde nuestra aplicación con una serie de datos.

 

ü        Uso de alguna característica en particular de Word, por ejemplo el corrector ortográfico.

 

ü        Insertar un gráfico de Excel en un documento de Word.

 

ü        Crear una aplicación que ofrezca servicios OLE a cualquier otra aplicación que desee usarlos.

 

OLE no es algo particular de Visual Basic, sino de Windows, por lo tanto se puede hacer entre dos aplicaciones que no estén hechas en VB (Delphi , Visual C++, etc.), así como por supuesto Visual Basic. Lo que nos va a permitir VB es usar las capacidades OLE de Windows, e incluso crear aplicaciones OLE que ofrezcan servicios a otras: una calculadora realizada en VB podría ser dotada de características OLE, para que se pudieran hacer operaciones matemáticas desde otro programa que no posea estas características.

 

 Es decir, básicamente OLE permite dos cosas:

   Compartir información entre aplicaciones distintas, que por tanto tendrán sus documentos en formatos distintos. Incrustaremos o vincularemos objetos de un tipo en objetos de otro (desde Word por ejemplo se puede hacer desde el menú Insertar, Objeto, con lo que nos aparece una pantalla para seleccionar el tipo de objeto). Esto es bastante útil, ya que con los antiguos programas en MS-DOS compartir datos entre un programa de contabilidad y una hoja de cálculo o una base de datos era muy complejo, ya que tenían que tener formatos compatibles, o bien hacer un programa que convirtiera datos de un formato a otro.

 

   Usar características de otras aplicaciones para que no debamos programarlas en la nuestra otra vez (automatización OLE).

 

Es importante tener en cuenta que con OLE lo que hacemos es usar capacidades de otras aplicaciones, por lo tanto si nuestra aplicación quiere usar el diccionario de Word, sólo funcionará en los ordenadores donde esté instalado Word, además para poder usar OLE la aplicación debe estar preparada para ello, es decir podemos usar OLE con Word porque Word está hecho pensado para ofrecer servicios OLE.

 

Además OLE es mucho más robusto que DDE a la hora de producirse errores: si usamos una característica de Word, OLE se ocupa de abrir Word si no lo está, realizar las operaciones que sean y al final cerrar Word si no se está usando para nada más. Como contrapartida OLE tiene como principales inconvenientes que gasta bastantes recursos del sistema, ya que para realizar una sola operación con Word, se debe cargar completo, no se puede cargar sólo una parte (la que nos haga falta) y que las aplicaciones que ofrecen servicios OLE pueden tener errores que no dependen de nuestro programa.

http://www.geocities.com/udea2000/Ceubas16.htm

 

SUITES

En este artículo se presentan, a grandes rasgos, las aplicaciones que ofrece el paquete ofimático StarOffice 4.0. Y se analiza en más detalle la aplicación de creación de presentaciones (algo muy parecido al PowerPoint de MS). En posteriores artículos se tratará el resto de las aplicaciones: procesador de textos, hoja de cálculo, navegador web, etc.

Introducción

Aun a riesgo de caer en frases muy típicas, se puede describir al programa StarOffice 4.0 como:

"Una solución integral a los problemas informáticos de cualquier departamento"

Concretando: el paquete StarOffice contiene las siguientes aplicaciones (intentaré no dejarme ninguna): procesador de textos, hoja de cálculo, base de datos, editor de presentaciones, lector de correo, cliente ftp, lector de noticias, navegador web, editor HTML y editor gráfico.

http://www.linuxfocus.org/Castellano/May1998/article40.html

 

ENTRADA

SALIDA

ALMACENAMIENTO

COMUNICACIÓN

teclado

Impresora(todas)

Disco duro

modem

mouse

Bocinas

Disquette 31/2

Blue tooth

joystick

Monitor

Cd (todos)

Fax

monitor

cañón

Memoria USB

Infrarrojo

Scanner

Microfilm

Memostick

“Tarjeta de red”

Camara(digitalfoto)

nanofilm

Tarjetas de memoria

 

Micrófono

graficador

Cintas magnéticas

 

Lápiz óptico

 

Tarjetas perforadas

 

Webcam(video)

 

bioalmacenamiento

 

Lector código

 

 

 

Perforador de cinta

 

 

 

Lector de tarjetas

 

 

 

Lector de chips

 

 

 

 

 

 

 

CLASIFICACIÓN DEL SOFTWARE

USO GENERAL

Con licencias vendidas, solo el uso necesario.

SUITES generales

APLICACIONES

SUITES con aplicaciones. ASPEL-  administración y contaduría.

SUITE de COREL diseño  Easycreator

MAC tiene software de edición de multimedia integrado

HP también lo tiene.

MERCADO VERTICAL

Por una o dos empresas software exclusivo menos que software a la medida pero más que software de aplicación

SOFTWARE A LA MEDIDA

Hecho para una organización

SOFTWARE LIBRE ( freeware)

No tiene costo. Kazaa, Linux, MS OFFICE,

Ventajas: beneficios sociales y tecnológicos/ libre distribución/ gracias a Internet, forma comunidades / deseo de crear software nuevo, más robusto.

Desventajas: no tiene garantía que provenga del autor / conocer el funcionamiento del sistema operativo( hecho por y para programadores). Relativamente es menos seguro que el de marca.

 

Shareware.

Permite compartir el software pero bajo permiso del autor y en ocasiones te lo dan a prueba para compra posterior. No tiene acceso al código fuente, no puede ser modificado.

 

PRINCIPIOS DE PROGRMACIÓN

lConceptos básicos de informática

 

 

M.Ing. Norma Ochoa

 

lDefinición de informática

lComputo como herramienta

lImportancia de los sistemas de información

lIndice de crecimiento de la información

lClasificación de  computadoras

lDispositivos periféricos

lClasificación de software

lSistemas  Operativos

lSoftware de aplicación

lSoftware de proramación

lMedios de almacenamiento

lMicrosoft office

lTecnología Ole

lTecnología Active X

lMS Office y otras alternativas

lImportancia del Procesador de palabras, hoja de calculo, software de presentaciones, bases de datos, información compartida

lCaracterísticas de una Suite de trabajo.

 

Informática

 

lDe 2 palabras   información y automatica

lDel francés    Informatique

lOtro término     computación

lRealizar operaciones

lAritméticas y lógicas

 

Utilidad del cómputo

 

lPRACTICA DE LOS ALUMNOS

l¿uso de la informatica?

lTrabajo

lEstudio

lVida social

lRelaciones interpersonales

 

¿Para qué los sistemas de información?

 

lTomar decisiones

l3 niveles

lEstratégico

lTáctico

loperacional

lCantidad y calidad de la información

lMucha cantidad y poca calidad         operacional

lMucha calidad y poca cantidad         estratégico

lTipo de decisiones

lDeterministicas

lProbabilisticas

lincertidumbre

lComo esta formado un sistema de información

 

Elementos

 

lEquipo computacional

lRecurso humano

lDatos o información fuente

lProgramas

lTelecomunicaciones

lProcedimientos (políticas)

 

El proceso

 

lEntrada

lProceso

lSalida

lalmacenamiento

CLASIFICACIÓN

 

lSupercomputadoras

lMainframes

lMinicomputadora

lMicrocomputadora

lLaptop y notebook

lDe propósito especial

crecimiento

 

DISPOSITIVOS PERIFERICOS

 

lDe entrada

lDe salida

lDe almacenamiento

lDe comunicación

 

Clasificación del Software

 

lDe uso general

lDe aplicaciones

lDe mercado vertical

lDe aplicación a la medida

lLibre

 

Lenguajes y Programación

 

lLenguaje máquina o binario

lEnsamblador o nemotécnico

lA problemas, procedimientos y objetos, consulta y aplicación directa.

llenguaje natural.

lCompilador, interprete

lALGORITMO, DECISIONES

 

MEDIOS DE ALMACENAMIENTO

 

lNuevos, novedosos y cuales pueden existir en el futuro.

lPRACTICA DE CLASE.

lCual medio que tu inventes será bueno en el futuro y porque?