I.S.E.T. (Instituto Superior de Educación Técnica) Nº 57 Salta 1880 1º Piso – ROSARIO – Santa Fé - TE: 0341-4250840 Carrera: Técnico Superior en Técnicas Digitales Materia: Introducción a la Computación Curso: Primer Año UNIDAD I I I APLICACIONES Sistema Operativo Lenguaje Máquina Microprogramación HARDWARE INDICE SOFTWARE DE LAS COMPUTADORAS...............................................................................................................3 1. LOS SISTEMAS OPERATIVOS.......................................................................................................................4 1.1 HISTORIA DE LOS SISTEMA OPERATIVO...........................................................................................5 1.2 FUNCIONES DEL SISTEMA OPERATIVO.............................................................................................6 1.3 CLASIFICACIÓN DE LOS SISTEMA OPERATIVO................................................................................6 1.3.1 Sistemas Operativos por Lotes........................................................................................................6 1.3.2 Sistemas Operativos de Tiempo Real .............................................................................................7 1.3.3 Sistema Operativo de Multiprogramación (o Sistemas Operativos de Multitarea)..........................8 1.3.4 Sistema Operativo Monotarea .........................................................................................................8 1.3.5 Sistema Operativo de Tiempo Compartido .....................................................................................8 1.3.6 Sistema Operativo Distribuido .........................................................................................................8 1.3.7 Sistema Operativo de Red.............................................................................................................10 1.3.8 Sistema Operativo Paralelos .........................................................................................................10 1.3.9 Sistema Operativo Uniproceso (o Monoproceso)..........................................................................10 1.3.10 Sistema Operativo Multiproceso....................................................................................................10 1.3.11 Sistema Operativo Monousuario ...................................................................................................10 1.3.12 Sistema Operativo Multiusuarios ...................................................................................................10 2. SOFTWARE DE APLICACIÓN ......................................................................................................................11 2.1 SOFTWARE de USO ESPECÍFICO......................................................................................................11 2.2 SOFTWARE de USO GENERAL. .........................................................................................................11 Página 2 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada SOFTWARE DE LAS COMPUTADORAS El software es el conjunto de programas y documentación que permiten el adecuado funcionamiento, operación y programación de las computadoras. Las computadoras se diseñaron para funcionar con una parte física (hardware) y otra parte lógica (software) imprescindiblemente, por lo que se puede afirmar que una computadora es una construcción indivisible de hardware y software, que sencillamente no funciona correctamente, si una cualquiera de las partes se encuentra dañada total o parcialmente. En sus orígenes, el software no fue tal como hoy lo conocemos ya que el mismo era parte del hardware, por lo cual, cada vez que se necesitaba realizar una tarea o calculo distinto con el computador, a este se le debía modificar o reemplazar parte del hardware. Por este motivo los primeros computadores eran programados por los mismos científicos que los construían para propósitos muy específicos, como por ejemplo el cálculo de la trayectoria de los proyectiles usados en la II Guerra Mundial. Ante este problema se interesó el matemático Húngaro-Americano John Von Neumann, quien ante el problema de la necesidad de "recablear" la máquina para cada nueva tarea, propuso en 1949 una solución con un nuevo modelo de estas maquinas, dando origen a lo que hoy conocemos como “Arquitectura de Von Neumann”. La solución consistía en poner la información sobre las operaciones a realizar en la misma memoria utilizada para los datos, escribiéndola de la misma forma, es decir en código binario, este hecho permitió dar un giro importantísimo a como se programan las computadoras modernas y la implementación del software tal como hoy lo conocemos. Dada la diversidad de tareas que debe realizar una computadora desde el momento que se la enciende y posteriormente para llevar cabo las ordenes encomendadas por el o los usuarios, no es difícil pensar que en su interior se ejecutan grandes cantidades de instrucciones (programas) o software, pudiendo agruparlas en dos grandes categorías: • • Software de sistema: es el conjunto de instrucciones y programas que se ejecutan automáticamente cuando se enciende el ordenador y se encarga de controlar el Hardware de las computadoras y está compuesto por: • Las microinstrucciones del BIOS (Basic Input Output System), residente en memora ROM • Herramientas de programación, programas Intérpretes, programas Compiladores (estos últimos son los encargados de traducir las instrucciones escritas en lenguajes de alto nivel por el programador, a lenguaje de máquina para que puedan ser interpretadas por el microprocesador). • Sistema operativo, es un software que actúa de interfaz entre los dispositivos de hardware y los usuarios del sistema informático, dando apoyo a los programas de aplicación para su ejecución y resolución de problemas. Software de aplicación, es aquel que hace que el computador coopere con el usuario en la realización de tareas típicamente humanas, tales como gestionar una contabilidad o escribir un texto, etc. Un sistema informático puede ser visto por niveles, según se muestra en la siguiente figura: APLICACIONES Sistema Operativo Lenguaje Máquina Microprogramación HARDWARE Página 3 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada • El primer nivel es el hardware, compuesto por los dispositivos físicos. • Luego sigue un nivel de software primitivo que controla directamente los dispositivos físicos, llamado microprogramación. Generalmente localizado en la ROM • A continuación le sigue el software de sistema con las herramientas de programación, el lenguaje máquina, y el Sistema Operativo (S.O.). En este nivel se esconde toda la complejidad del sistema y da soporte al programador con un conjunto de instrucciones más conveniente para trabajar. Sobre el S.O. está el resto del software del sistema, donde se encuentra el intérprete de comandos (shell para ejecución de programas, dar formato a un disco, copiar información de un disco a otro, etc.), compiladores, editores y programas independientes de las aplicaciones. • Finalmente, sobre los programas del sistema vienen los programas de aplicación, son escritos por un usuario programador para solucionar problemas particulares, como por ej.: procesamiento de datos comerciales, cálculos de ingeniería, juegos, etc. 1. LOS SISTEMAS OPERATIVOS Los SISTEMAS OPERATIVOS (S.O.) son conjuntos de programas (o rutinas de instrucciones) que ayudan a los programadores y usuarios de las computadoras a interactuar con las mismas, presentando una interface agradable y simple bajo la cual se oculta la complejidad del hardware, disimulando también mucho del trabajo concerniente a: interrupciones, manejo de relojes o cronómetros, administración de memoria y otras características de bajo nivel. La función del S.O. es la de presentar al usuario el equivalente de una máquina ampliada o máquina virtual que sea más fácil de programar que el hardware implícito. Desde los primeros computadores, los diseñadores y creadores, se dieron cuenta que se necesitaba algo que permitiera la fácil interpretación de las instrucciones así como de los resultados obtenidos, para lo cual crearon un Programa básico que toda computadora debían cargar primero en su memoria para poder comunicarse y comprenderse con el ser humano. Así surge el Sistema Operativo (S.O.), programa básico que se carga al momento de encender la máquina y sirve de intérprete entre el frío lenguaje de las máquinas electrónicas y el complejo idioma humano, el S.O. es el gobierno interno de la máquina. Los programas del S.O. son activos cuando se encuentran en la memoria principal pero debido a que gran parte de la misma es volátil, se diseñó una estrategia de ahorro de recursos y eficiencia de operación, donde parte del S.O. se encuentra residiendo en la ROM (memoria de solo lectura que es parte de la memoria principal) y parte en un medio de almacenamiento masivo, habitualmente en un disco duro o rígido. El programa que se encuentra en la ROM se denomina BIOS (Basic Input Output System), por eso a esta ROM se la llama ROMBIOS. Múltiples son las funciones de la misma, pero, tal vez, la tarea clave es el momento del arranque de la computadora. En ese momento, la BIOS pone en funcionamiento un programa que le permite cargar otros programas que se encuentran en Memorias Auxiliares a la Memoria RAM, a este programa cargador se lo llama genéricamente "bootstrap" (nótese que el arrancar la computadora se denomina "buteo"). El Bootstrap, tiene distintos nombres según el S.O., es el responsable de cargar el resto del sistema en Memoria Principal y la máquina queda lista para operar. Antes de convocar al bootstrap, el BIOS tiene un programa de chequeo de la arquitectura de la computadora y su contrastación con el inventario que se encuentra en la memoria del Set Up, y en caso de no coincidir, emite mensajes para que el usuario tome los recaudos que crea son necesarios. Además la BIOS, tanto la parte que está en ROM, como la otra parte que se agrega después del buteo en memoria RAM, intervienen en las operaciones de conexión de entrada y salida de datos e información. Los programas del S.O. suelen tener comandos internos, que se encuentran durante toda la operatoria en memoria principal, y comandos externos, que son convocados a memoria principal en el momento que sea necesario utilizarlos y luego de ser usados, el lugar de la memoria que era ocupado por estos comandos se puede utilizar con otra aplicación. En la actualidad existen varios sistemas operativos para diferentes necesidades y tipos de computadoras, entre los más conocidos y utilizados actualmente se encuentran los siguientes: • MS-DOS Microsoft (Disk Operative System). El sistema operativo con cual de una u otra forma hemos estado más familiarizados desde la aparición de las Computadoras Personales y sobre el cuál trabajan la mayoría de los programas usados tanto en la pequeña, mediana y grande empresa, así como en Industrias, Instituciones y hogares por millones de gentes alrededor del mundo. Su versión más nueva a la fecha es la 6.22. Una característica de este S.O. era que los archivos se podían nombrar solo con 8 caracteres (solo 53 caracteres eran validos) para el nombre + 3 caracteres para la extensión que definía el tipo de archivo, como por ejemplo: Página 4 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada APLICACIÓN.BAS APLICACIÓN.OBJ APLICACIÓN.EXE ARCHIVO.TXT ARCHIVO.RTF ARCHIVO.DOC ARCHIVO.VBS = = = = = = = Archivo Fuente escrito en lenguaje BASIC Archivo objeto (necesario para su compilación) Programa Ejecutable Archivo de texto ASCII "texto plano" Archivo de texto con formato Archivo de texto con formato de Microsoft Word Archivo fuente escrito en lenguaje Visual Basic. • Windows de Microsoft, fue el sucesor del MS-DOS 6.22, con su versión Windows ’95 fue el primer S.O nato de Microsoft, ya que las versiones anteriores eran solamente entornos gráficos del MS-DOS. Además con Windows 95 se empezó a dar soporte a aplicaciones de 32 bits, multitarea, soporte de red incorporado, los sistemas operativos de Microsoft siguieron su camino de actualización y así pasaron el Windows 98, Windows NT4, Windows CE, hasta llegar al Windows XP, Windows Vista y Windows 7. A la hora de poner nombre a un archivo, hay que saber que Windows cuenta para los 255 caracteres todas las carpetas que hay en su ruta. Por ejemplo, en un archivo puede llamarse: textos_que_debería_borrar_pero_que_no • LINUX es un sistema operativo, compatible Unix. Dos características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto significa que no tenemos que pagar ningún tipo de licencia a ninguna casa desarrolladora de software por el uso del mismo, la segunda, es que el sistema viene acompañado del código fuente. El sistema lo forman el núcleo del sistema (kernel) más un gran número de programas / librerías que hacen posible su utilización. Día a día, más y más programas / aplicaciones están disponibles para este sistema, y la calidad de los mismos aumenta de versión a versión. La gran mayoría de los mismos vienen acompañados del código fuente y se distribuyen gratuitamente bajo los términos de licencia de la GNU Public License. • OS/2 WARP (Diseñado por IBM) es el competidor más cercano de MS-DOS sobre todo por sus grandes capacidades de interconexión de equipos y facilidad de uso bajo ambiente gráfico. • Netware (diseñado por Novell, líder mundial en sistemas operativos para redes de computadoras) es un Sistema operativo de red. Es una de las plataformas de servicio más fiable para ofrecer acceso seguro y continuado a la red y los recursos de información, sobre todo en cuanto a servidores de archivos. • Unix Sistema Operativo de alto rendimiento utilizado actualmente en grandes proyectos y para necesidades de intercomunicación a nivel internacional y de gran volumen de operaciones diarias. En resumen, podemos afirmar que ninguna computadora obedecerá las instrucciones de ningún programa independientemente de su utilidad sin haber cargado en su memoria dicho intérprete al momento de encenderse, ya que de esto dependerá su funcionamiento y eficiencia. 1.1 HISTORIA DE LOS SISTEMA OPERATIVO. Los sistemas operativos, al igual que el hardware, han sufrido cambios a través del tiempo, los cuales se pueden agrupar en generaciones. La evolución del hardware ha marcado el paralelismo de la evolución de los sistemas operativos. Se puede decir que hardware y el software deben ir: • 1945-1955, Primera Generación: Válvulas Los primeros sistemas computacionales no poseían sistemas operativos. Para los usuarios eran complejos por que trabajaban con lenguaje de máquina. Todas las instrucciones eran codificadas manualmente. • 1955-1965, Segunda Generación: Transistores y Sistemas Batch Los sistemas operativos fueron diseñados para que sean más ágiles. Antes de que los sistemas fueran diseñados, se perdía un tiempo considerable entre la terminación de un trabajo y el inicio del siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes (sistemas Batch), donde los trabajos se reunían por grupos o lotes. Cuando el trabajo estaba en ejecución, este tenía control total de la maquina. Al terminar cada trabajo, el control era devuelto al sistema operativo, el cual limpiaba y leía e iniciaba el trabajo siguiente. • 1965-1980, Tercera Generación: Circuitos Integrados y Multiprogramación La característica de estos S.O. fue el desarrollo de los sistemas compartidos con multiprogramación, y los principios del multiprocesamiento. En los sistemas de multiprogramación, varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rápidamente de un trabajo a otro. Página 5 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada La técnica de multiprogramación (multitasking) divide la memoria en varias partes con un trabajo diferente en cada partición. Mientras un trabajo está inactivo esperando datos I/O otro trabajo puede utilizar la CPU para ejecutarse. La técnica de spooling (Simultaneous Peripheral Operation On Line) permite leer y escribir en los periféricos cuando se necesita, en lugar de tener que esperar a que todos los trabajos estén listos. Para ello el sistema operativo mantiene una cola de impresión, es decir, con la información de los trabajos listos a ser impresos. • 1980-1990, Cuarta Generación: Computadoras Personales El desarrollo de chips que contenían miles de transistores en un centímetro de silicio, comenzó la era de los ordenadores personales (PC), constituyen el estado actual de la tecnología. Entre los S.O. dominantes de esta generación podemos encontrar: En el ámbito de las computadoras personales, se destacó el MS-DOS (Microsoft) para máquinas IBM PC basadas en los microprocesadores Intel 8088 y sus sucesores. En el ámbito de los grandes sistemas, como por ejemplo las basadas en los microprocesadores de la familia Motorola 68000, el S.O. dominante fue el UNIX. A mediados de los 80 comienza el crecimiento de redes de computadores con S.O. de red y S.O. distribuidos. 1.2 FUNCIONES DEL SISTEMA OPERATIVO. Una de las tareas más complejas que enfrenta el S.O. en una máquina es la administración de las memorias, tanto principal como auxiliar, al punto tal que se señala que el sistema DOS de Microsoft estuvo concebido fundamentalmente para manejar adecuadamente a los discos rígidos, de ahí su nombre de Disk Operation System, que podría pensarse como el Sistema Operativo para el Disco, posteriormente se opinó que era el Sistema Operativo en Disco. De todas formas es cierto, también, que los S.O. han sido diseñados para trabajar con el hardware de la computadora y realizar las tareas del usuario con la mayor facilidad. Por este motivo también se dice, que el usuario no ve a la máquina real sino que ve a una máquina virtual, precisamente la que el S.O. le muestra. Asimismo, desde los inicios hasta la actualidad, los S.O. han ido evolucionando y cambiando sus prestaciones, siempre procurando facilitar la tarea del operador. Entre las funciones básicas de un S.O. se encuentran: • • • • • 1.3 Ejecución de programas. Operaciones de I/O. Manejo de sistema de archivos. Detección de errores. Gestión recursos: a. CPU: puede ser compartida entre varios programas que se ejecutan al mismo tiempo (multitarea). Para ello el sistema operativo tiene alguna política, por ejemplo “roundrobing”: atiende una cola circular de programas asignando la CPU durante un lapso de tiempo limitado al primer programa en la cola, y al terminar el tiempo asignado pasa el programa al último lugar de la cola de programas. b. Memoria: gestiona la memoria para poder ser compartida entre diferentes programas que se ejecutan al mismo tiempo. c. Periféricos: gestiona por ej. Una impresora compartida por varios programas que se ejecutan al mismo tiempo en la misma máquina o incluso en máquinas diferentes que comparten el periférico. Para ello mantiene una cola de impresión (spooling de impresora) con los trabajos a ser impresos. d. Manejo de cuentas y permisos: esto es fundamental en sistemas multiusuario donde varios usuarios se conectan al mismo ordenador central pero necesitan protección de sus datos, o tienen acceso restringido a ciertos recursos del sistema. CLASIFICACIÓN DE LOS SISTEMA OPERATIVO. Con el paso del tiempo, los S.O. fueron clasificándose de diferentes maneras, dependiendo del uso o de la aplicación que se les daba. En la actualidad existen diversos tipos de Sistemas Operativos que se los pueden clasificar según algunas de sus características: 1.3.1 Sistemas Operativos por Lotes Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes Página 6 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas. Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos. Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico. Algunas otras características con que cuentan los S.O. por lotes son: • • • • • • • • • 1.3.2 Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote. Permiten poca o ninguna interacción usuario/programa en ejecución. Mayor potencial de utilización de los recursos, que procesamiento serial simple en sistemas multiusuario. No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea. Conveniente para programas de largos tiempos de ejecución (Ej.: análisis estadísticos, nóminas de personal, etc.). Se encuentra en muchos computadores personales combinados con procesamiento serial. Planificación del procesador sencilla, típicamente procesados en orden de llegada. Planificación de memoria sencilla, generalmente se divide en dos partes, una donde residente del S.O. y la otra de programas transitorios. Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso. Sistemas Operativos de Tiempo Real Los Sistemas Operativos de tiempo real son aquellos en los cuales se da prioridad a los procesos. Por lo general, hacen una subutilización de los recursos, con la finalidad de prestar atención a los procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. Las aplicaciones de tiempo real están creciendo muy rápidamente, principalmente en el ramo automovilístico y de la electrónica de consumo. Otros campos de aplicación de los S.O. de tiempo real son los siguientes: • • • • • • Control de trenes. Telecomunicaciones. Sistemas de fabricación integrada. Producción y distribución de energía eléctrica. Control de edificios. Sistemas multimedia. Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los S.O. de tiempo real, cuentan con las siguientes características: • • • • • • Se dan en entornos donde deben ser procesados, en breve tiempo o dentro de ciertos plazos, grandes cantidades de sucesos, la mayoría externos al sistema computacional. Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc. Objetivo es proporcionar rápidos tiempos de respuesta. Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso. Poco movimiento de programas entre almacenamiento secundario y memoria. Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso. Página 7 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada 1.3.3 Sistema Operativo de Multiprogramación (o Sistemas Operativos de Multitarea). Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización. Su objetivo es tener varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, esto último involucra máquinas con más de una UCP. Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, etc. soportan la multitarea. Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes: • • • • • • Mejora la productividad del sistema y utilización de los recursos. Generalmente soportan múltiples usuarios (multiusuario). Proporcionan facilidades para mantener el entorno de usuarios individuales. Requieren validación de usuario para seguridad y protección. Proporcionan contabilidad del uso de los recursos por parte de los usuarios. Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real. • Sistemas con multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución simultánea de múltiples tareas sobre diferentes procesadores. En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos. 1.3.4 Sistema Operativo Monotarea Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. 1.3.5 Sistema Operativo de Tiempo Compartido Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria. Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10. Características de los Sistemas Operativos de tiempo compartido: • • • • • • 1.3.6 Populares representantes de sistemas multiprogramados multiusuario, Ej.: sistemas de diseño asistido por computador, procesamiento de texto, etc. Dan la ilusión de que cada usuario tiene una máquina para sí. La mayoría utilizan algoritmo de reparto circular. Evitan la monopolización del sistema asignando tiempos de procesador (time slot). La gestión de memoria proporciona protección a programas residentes. La gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir múltiples usuarios accediendo un mismo archivo. Sistema Operativo Distribuido Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un mismo equipo o en diferentes, en este caso es transparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Página 8 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes S.O. distribuidos que existen tenemos los siguientes: Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Características de los Sistemas Operativos distribuidos: • • • • Colección de sistemas autónomos con capacidades de comunicación y cooperación mediante interconexiones hardware y software. El objetivo clave es la transparencia. Generalmente proporcionan medios para compartir globalmente los recursos. Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.). Ventajas de los Sistemas Distribuidos En general, los sistemas distribuidos exhiben algunas ventajas sobre los sistemas centralizados: • Economía: El cociente precio/desempeño de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando están distribuidos. • Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior. • Confiabilidad: Si una sola máquina falla, el sistema total sigue funcionando. • Crecimiento: El poder total del sistema se ir puede incrementando al añadir pequeños sistemas, lo cual es mucho más difícil y caro en un sistema centralizado. • Distribución: Algunas aplicaciones requieren de por sí una distribución física. Por otro lado, los sistemas distribuidos también exhiben algunas ventajas sobre sistemas aislados. Estas ventajas son: • Compartir datos: Un sistema distribuido permite compartir datos más fácilmente que los sistemas aislados, que tendrían que duplicarlos en cada nodo para lograrlo. • Compartir dispositivos: Un sistema distribuido permite acceder a dispositivos desde cualquier nodo en forma transparente, lo cual es imposible con los sistemas aislados. • Comunicaciones: La comunicación persona a persona es factible en los sistemas distribuidos, en los sistemas aislados no. • Flexibilidad: La distribución de las cargas de trabajo es factible en los sistemas distribuidos, se puede incrementar el poder de cómputo. Desventajas de los Sistemas Distribuidos Así como los sistemas distribuidos exhiben grandes ventajas, también se pueden identificar algunas desventajas tan serias que han frenado la producción comercial de sistemas operativos en la actualidad. El problema más importante en la creación de sistemas distribuidos es el software: los problemas de compartir datos y recursos es tan complejo que los mecanismos de solución generan mucha sobrecarga al sistema haciéndolo ineficiente. Otros problemas de los sistemas operativos distribuidos surgen debido a la concurrencia y al paralelismo. Tradicionalmente las aplicaciones son creadas para computadoras de ejecución secuencial, de manera que el identificar secciones de código `paralelizable' es un trabajo arduo, pero necesario de dividir un proceso grande en sub-procesos, para poder enviarlos a diferentes unidades de procesamiento. Con la concurrencia se deben implantar mecanismos para evitar las condiciones de competencia, las postergaciones indefinidas, el ocupar un recurso y estar esperando otro, las condiciones de espera circulares y, finalmente, los "interbloqueos" (deadlocks). Estos problemas de por sí se presentan en los sistemas operativos multiusuario o multitareas, y su tratamiento en los sistemas Página 9 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada distribuidos es aún más complejo, y por lo tanto, necesitará de algoritmos más complejos con la inherente sobrecarga esperada. 1.3.7 Sistema Operativo de Red Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (alámbrico o inalámbrico), con el objetivo primordial de poder compartir los diferentes recursos e información del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic. 1.3.8 Sistema Operativo Paralelos En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso. Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM. 1.3.9 Sistema Operativo Uniproceso (o Monoproceso) Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS. 1.3.10 Sistema Operativo Multiproceso Un sistema operativo multiproceso es de utilización en sistemas con varios procesadores, siendo capaz de usarlos a todos para distribuir la carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema. Se dice que un thread es la parte activa en memoria y que se está ejecutando de un proceso, lo cual puede consistir de un área de memoria, un conjunto de registros con valores específicos, la pila y otros valores de contexto. Un aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas monoproceso que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de código paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus algoritmos y aprovechar por sí mismo esta facilidad, pero esta última opción las más de las veces es costosa en horas hombre y muy tediosa, obligando al programador a ocupar tanto o más tiempo a la paralelización que a elaborar el algoritmo inicial. 1.3.11 Sistema Operativo Monousuario Los sistemas operativos monousuario son aquellos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón. 1.3.12 Sistema Operativo Multiusuarios Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente. Página 10 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada 2. SOFTWARE DE APLICACIÓN El software de aplicación, es el conjunto de programas informáticos diseñados para ser ejecutados en las computadoras electrónicas, con la finalidad de facilitar a los usuarios la resolución de problemas específicos o la realización de una determinada tarea. Al software de aplicación lo podemos clasificar según su uso en: 2.1 SOFTWARE de USO ESPECÍFICO. Hablar de este tipo de software nos referimos a un software dedicado que es desarrollado específicamente para un problema especifico de alguna organización o persona, la implementación de este software requiere de un experto en informática para su creación o adaptación, su uso está limitado a un grupo reducido de personas. Dentro de este grupo se encuentra los programas de: • • • • 2.2 Investigación Científica, los programas que usan las escuelas para registrar las calificaciones de los alumnos y generar certificados, los que usan los bancos para el control de las cuentas, etc. SOFTWARE de USO GENERAL. El software de uso general son aquellos que nos sirven para resolver problemas muy variados del mismo tipo, de muy diferentes empresas o personas, con adaptaciones realizadas por un usuario. Como ejemplos podemos encontrar programas de: - Tratamiento de Textos (Procesadores de Texto): Un buen paquete de tratamiento de textos aparte de tener todas las funciones de una moderna máquina de escribir, debe tener entre otras, características tales que permitan componer el texto en la pantalla, corregirlo, borrar o insertar nuevas palabras y párrafos en cualquier punto del texto, y por supuesto imprimirlo. Además debe permitir definir el formato de presentación (texto por página, distribución de columnas y márgenes, espaciado entre líneas y párrafos), el tipo de letra a aparecer en cada zona del texto (caracteres normales, en negrita, cursiva, etc.). A todas estas posibilidades se debe agregar el hecho de almacenar los textos desarrollados, lo que permite su posterior utilización, modificación o inserción de un documento o parte del mismo en otros documentos. Existen en el mercado una gran cantidad de paquetes destinados al tratamiento de textos, entre los que podemos mencionar, WORDSTAR, VOLKSWRITER, CHI-WRITER, MICROSOFT WORD, WORD-PERFECT, entre los más importantes para microcomputadoras que trabajen bajo sistema operativo MS-DOS. (Este apunte está realizado con MICROSOFT WORD PARA WINDOWS). - Hojas Electrónicas (Hojas de Cálculo): La introducción de las Hojas Electrónicas o Planillas Electrónicas de Cálculo, ha sido una de las ideas más revolucionarias en el campo del desarrollo del software. Parten de la base que existen una gran cantidad de problemas en diversas especialidades que se resuelven con lápiz, papel y calculadora. A partir de allí se debía generar un programa que fuera versátil, y que fuera el usuario el encargado de buscar las aplicaciones concretas del programa; además debía ser de fácil uso ya que normalmente el usuario no sería un experto en informática. A partir de allí se trabajó en el tema y se diseñó un programa que pudiera resolver problemas tales como Planificaciones financieras, de Personal, Gestión de Procesos de Fabricación, Seguimiento de Costos, Preparación de Ofertas, Estadísticas. Para ello se dispuso que la hoja electrónica fuese una gran matriz con filas numeradas (1, 2, 3, ...) y columnas denominadas (A, B, C, .... ,Z, AA, AB, ...). De forma tal que cada uno de los elementos de la hoja viene definido por un número y una letra que identifican la fila y la columna donde se encuentra ese elemento. A partir de esa estructura básica es el usuario el que define el contenido de cada elemento de la matriz con: o o o Literales alfabéticos, que sirven únicamente para efectuar descripciones. Datos numéricos, que representan la información numérica independiente. Fórmulas de Cálculo, que relaciona los datos numéricos. De esta manera cuando el usuario ingresa un literal alfabético, el programa simplemente se limita a almacenar dicha información, cuando se ingresa o modifica un elemento numérico, o una fórmula de cálculo el programa se encarga de almacenarlo y recalcular en forma automática todos los elementos relacionados. Esta característica de recálculo es la que le da potencia a este software. Entre las hojas electrónicas desarrolladas para trabajar en microcomputadoras con sistema operativo MSDOS podemos mencionar VISICALC, LOTUS 1-2-3, MULTIPLAN, QUATTRO, QUATTRO-PRO, MICROSOFT EXCEL, etc. - Gestores de Archivos y de Bases de Datos: Muy a menudo es necesario almacenar una determinada cantidad de información y luego tener acceso a esa información, modificarla, actualizarla, utilizarla o imprimirla. Página 11 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada La organización y tratamiento de todo este repertorio de datos está a cargo de paquetes denominados DBMS (Data Base Management System) o Sistemas para la Gestión de Bases de Datos. Además de permitir trabajar sobre un determinado archivo (se entiende por archivo un conjunto de datos interrelacionados entre sí, por ejemplo, un archivo podría ser los libros de una biblioteca, donde se debería almacenar todos los libros existentes, y de cada uno de ellos la información que se considere necesaria, esto es, nombre, autor, editorial, edición, etc.) un buen gestor de base de datos debe permitir interrelacionar archivos. (Siguiendo con el ejemplo de la biblioteca, se podría generar otro archivo que registre los movimientos, préstamos, devoluciones, etc. y que debe operar en relación directa con el anterior). Entre las bases de datos más comunes del mercado podemos mencionar DBase III+, DBase IV, Fox Base, Clipper, PFS File/Report, Access, etc. - Generación de Gráficos: A menudo cuando se realiza la presentación de un trabajo es conveniente complementarlo con información gráfica. Existen programas que pueden realizar una diversa variedad de gráficos, entre ellos, curvas, barras, histogramas, círculos de fraccionamiento proporcional, etc. La impresión de gráficos se puede realizar a través de una impresora, pero la calidad de presentación se ve ampliamente superada con la utilización de trazadores gráficos o plotters. A pesar que las hojas electrónicas permiten la generación de gráficos, esta posibilidad se ve potenciada con la utilización de programas especialmente diseñados para tal fin. Entre los principales paquetes de tratamiento de gráficos podemos mencionar: PFS Graph, MICROSOFT CHART, HARVARD PRESENTATION GRAPHICS, 3D GRAPHS, COREL DRAW, etc. - Paquetes de Comunicaciones: Las computadoras personales no sólo permiten el trabajo autónomo, sino que permiten la intercomunicación entre ellas o con mini o macrocomputadoras. Para poder realizar esta comunicación, es necesaria la utilización de software especialmente diseñado para tal fin. A los paquetes de comunicación lo podemos agrupar de la siguiente manera: o Convertidores de protocolo para comunicación con periféricos. o Emuladores de terminales, que permiten que una microcomputadora actúe como terminal de una computadora de mayor potencia. o Paquetes de creación de redes locales. Se denomina red a un grupo de microcomputadoras interconectadas entre sí y que pueden compartir información. o Paquetes para comunicación remota, por ejemplo, vía módem a través de línea telefónica o vía satélite. Entre los paquetes de comunicaciones más conocidos podemos mencionar: PROCOMM, PC-TALK, REMOTE ACCES, CROSSTALK XVI, NETSCAPE, etc. - Diseño Asistido por Computadora: Dentro de las aplicaciones de un Programa de Diseño Asistido por Computadora se pueden mencionar: o o o o o o o Diseños de todo tipo aplicados a la arquitectura. Producción de planos para el diseño de interiores. Diagramas de flujo y organizativos. Diseño en Ingeniería de distintas ramas. Representación de funciones matemáticas. Diseños de dibujo artístico. Producción de cualquier tipo de gráficos. Para realizar los diseños anteriormente descritos los programas de diseño asistido proveen dos herramientas básicas: entidades y comandos. Las entidades se utilizan para construir los gráficos y son puntos, líneas, círculos, arcos, polilíneas, textos, etc. Los comandos permiten al usuario manejar las entidades y por lo tanto ubicarlas y dimensionarlas convenientemente. Además de los comandos para el manejo de entidades existen una serie de comandos auxiliares que permiten una mayor facilidad en el diseño, tales como ampliar o reducir la vista de un dibujo en pantalla (ZOOM), comandos de ayuda en pantalla (HELP), comandos de manejo de archivos (FILES), además de los comandos necesarios para imprimir o graficar un dibujo. Entre los paquetes de diseño asistido más comunes entre las microcomputadoras con sistema operativo MSDOS podemos mencionar AutoCAD, DesignCAD, ProDesign, etc. - Programas de Autoedición: Los programas de Autoedición son una herramienta basada en PC que permite realizar cualquier composición de documentos de forma rápida, sencilla y limpia, olvidándose de la cuchilla, la escuadra y la goma de pegar. Los programas que cumplen estas funciones, generalmente trabajan bajo un entorno gráfico, combinando textos y gráficos bajo la filosofía WYSIWYG: What you see is what you get (lo que ves es lo que obtienes) editando los distintos componentes sobre la pantalla. Estos programas son cada vez más populares ya que la mayoría de las organizaciones crea sus propias publicaciones, consistentes en libros, revistas, catálogos, resúmenes, etc. Entre los paquetes más importantes para microcomputadoras podemos mencionar VENTURA PUBLISHER y PAGE MAKER. Estos dos sistemas monopolizan el sector alto del mercado de la Autoedición, existiendo programas de recursos más limitados pero muy convenientes para introducirse en este concepto, como GEM DESKTOP PUBLISHER, BYLINE y PFS: First Publisher. - Paquetes Integrados: Un paquete integrado lo podemos definir como la sumatoria de una hoja electrónica, un gestor de bases de datos, un procesador de textos, gráficos de gestión y programas de comunicaciones. Página 12 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada La pregunta obligada que surge es ¿para qué integrarlos?. La respuesta a esto es la migración de datos entre aplicaciones. Es común que en una empresa tengan que interactuar los datos provenientes de una base de datos, con una hoja electrónica, o con un procesador de textos para enviar una correspondencia. O bien tomar datos de cualquiera de estos y enviarlos a una computadora ubicada en algún lugar remoto. Para hacer ello es necesario pasar o migrar datos de un programa a otro, lo cual no siempre es posible realizarlo en forma sencilla, o simplemente no es posible realizarlo. En los paquetes integrados los datos generados en una aplicación están siempre disponibles para utilizarlos en cualquier otra, con lo que se aleja el problema de las migraciones. Como contracara del software integrado, es válida su aplicación siempre que se justifique, porque cada una de sus aplicaciones no tiene la potencia que tiene un programa especialmente desarrollado para esa función, y obviamente porque un paquete integrado resulta más costoso que un paquete de aplicación simple. Además de ello un paquete integrado necesita normalmente un hardware de mayor capacidad, fundamentalmente en lo referente a memoria, tanto principal como de almacenamiento. Entre los paquetes integrados más comunes del mercado podemos encontrar: FRAMEWORK, OPEN ACCESS, SYMPHONY, WORKS, MS Office, etc. • Software multimedia: El software multimedia se refiere a los programas utilizados para presentar de una forma integrada textos, gráficos, sonidos y animaciones, este tipo de software es considerado como una nueva tecnología. Las ventajas que se le atribuyen al software multimedia es en la educación, especialmente en escuelas primarias, porque realizando presentaciones con software multimedia, los alumnos prestan mas intención a la presentación realizada. Este tipo de software suele utilizarse para el desarrollo de proyectos específicos multimedios, utilizar software multimedia requiere de tiempo, capacidades, dedicación y recursos. • Aplicaciones en Educación/Autoestudio: Considerando que la informática no sólo es utilizada por los informáticos, sino por cualquier disciplina y que cada vez se hace más extenso su uso, es necesario introducir esta materia en los planes de estudio de otras carreras, e incluso incluirla en los programas de enseñanza a nivel primario y secundario. Esto trae como consecuencia el hecho que las empresas productoras de software comiencen a desarrollar software educativo. Además de ello se desarrollan programas destinado a la enseñanza asistida por ordenador, esto es que el usuario pueda adquirir conocimientos de una determinada materia. Al software educativo lo podemos clasificar básicamente de la siguiente forma: o Programas de Autoestudio: permiten al usuario estudiar una determinada materia en forma autónoma. Evidentemente al ser destinados a autodidactas el afinamiento y la claridad de estos programas deben ser máximas. La forma de estructura de un programa de autoestudio depende mucho de la materia a estudiar, pero básicamente deben existir en el una Introducción, una Exposición y un Test de Control. o Programas de Apoyo: Estos programas están pensados para servir de apoyo a un profesor humano. Su objetivo es complementar la labor del profesor y por tanto no deben ser tan minuciosamente depurados como los programas de autoestudio. o Programas de Educación Informática: Pueden considerarse un caso especial de los anteriores, donde la materia a estudiar es precisamente informática. En este caso el ordenador se utiliza a si mismo para realizar exposiciones teóricas o ejercicios prácticos. • Aplicaciones de utilería: ayudan a administrar y dar mantenimiento a la computadora, ayudan a correr los diferentes programas, recuperar información, aumentar la eficiencia de la máquina y organizar la información del sistema etc. por ejemplos: antivirus, antispywares, limpiadores de registros como el ccleaner. etc. • Aplicaciones Personales: son programas diseñados para gestión de tareas personales que le encomendamos a la maquina y también hace más eficiente este tipo de trabajo. ej. agenda de direcciones, envío de correo electrónico. etc. ejemplo: Outlook, Thunderbird, etc. • Aplicaciones en Entretenimiento: Los programas destinados a entretenimiento tuvieron su origen cuando se llevó a las microcomputadoras los videojuegos. Posteriormente esta industria tomó vida propia y se extendió a distinto tipo de aplicaciones lúdicas, en algunos casos de simulación y educativos muy interesantes. Página 13 de 13 Prof.: Jorge N Delfino Prof.: Héctor D Calzada