tema 1 introducción a la informática

Download Tema 1 Introducción a La Informática

If you can't read please download the document

Upload: nemes-rick

Post on 17-Dec-2015

6 views

Category:

Documents


1 download

DESCRIPTION

Tema 1 Introducción a la Informática

TRANSCRIPT

Instituto Universitario del Prado Asignatura: Introduccin a la Informtica Tema 1: Introduccin a los sistemas de computacin 1.1. Evolucin y actualidad en los sistemas computacionales . Origen La primera referencia en describir ampliamente el procedimiento de la ingeniera de sistemas fue publicada en 1950 por Melvin J. Kelly, entonces director de los laboratorios de Bell Telephone, subsidiaria de investigacin y desarrollo de AT&T. Esta compaa jug un papel importante en el nacimiento de la ingeniera de sistemas por tres razones: la acuciante complejidad que planteaba el desarrollo de redes telefnicas, su tradicin de investigacin relativamente liberal y su salud financiera. As, en 1943 se fusionaron los departamentos de ingeniera de conmutacin e ingeniera de transmisin bajo la denominacin de ingeniera de sistemas. A juicio de Arthur D. Hall, "la funcin de ingeniera de sistemas se haba practicado durante muchos aos, pero su reconocimiento como entidad organizativa gener mayor inters y recursos en la organizacin". En 1950 se cre un primer curso de posgrado sobre el tema en el M.I.T. y sera el propio Hall el primer autor en escribir un tratado completo sobre el tema [Hall, 1962]. . Historia Para Hall, la ingeniera de sistemas es una tecnologa por medio de la cual el conocimiento de investigacin se traslada a aplicaciones que satisfacen necesidades humanas mediante una secuencia de planes, proyectos y programas de proyectos. Hall definira asimismo un marco para las tareas de esta nueva tecnologa, una matriz tridimensional de actividades en la que los ejes representaban respectivamente: La dimensin temporal.- Son las fases caractersticas del trabajo de sistemas, desde la idea inicial hasta la retirada del sistema. o La dimensin lgica.- Son los pasos que se llevan a cabo en cada una de las fases anteriores, desde la definicin del problema hasta la planificacin de acciones. o La dimensin del conocimiento.- Se refiere al conocimiento especializado de las diversas profesiones y disciplinas. Con la invencin de la computacin surgi una gran gama de aplicaciones y tecnologas asociadas que permitieron, y permiten, el uso de nuevas herramientas de trabajo y conocimiento: se desarrollaron y mejoraron tecnologas como la telefnica, lo que permiti la masificacin de su uso. Adems surgi lo que se conoce como internet, que le provee a la humanidad el acceso, de manera rpida y mayoritariamente gratuita, al conocimiento, mejorando la calidad de la educacin; Tambin permite el acceso a nuevas formas de entretenimiento. . Evolucin La expresin "ingeniera de sistemas" se remonta 1940, de manos de Bell Telephone Laboratories. La puesta en prctica de esta disciplina surgi de la necesidad, por parte del Departamento de Defensa, la NASA, y otras industrias, de identificar y manipular las propiedades de un sistema en conjunto, dado que en proyectos complejos de ingeniera, la suma de las propiedades de las partes poda llegar a diferir en gran medida. El empleo del trmino ingeniero de sistemas data de finales de los aos 60 cuando empresas como IBM lo introdujeron como un cargo laboral que designara a personal competente, con una formacin profesional diversa, y capacitado en el conocimiento de equipo y tecnologa de la empresa. Esto era con el fin de que asesoraran la manera en que los productos satisfaran las necesidades de procesamiento de informacin de los clientes potenciales de la empresa. A mediados de los aos 70 aparece en la UNI una carrera universitaria denominada Ingeniera de Sistemas. La ingeniera en sistemas computacionales representa uno de los campos de la ingeniera que ms ha evolucionado en los ltimos aos. Son innumerables las innovaciones en la creacin de nuevos sistemas que permitan, tanto a las personas como a las instituciones, realizar satisfactoriamente sus actividades. El desarrollo de dispositivos de clculo no se limita al siglo XX. Mucho antes de la aparicin de los primeros computadores electrnicos hubo calculadores electromecnicos y an antes que stos existieron dispositivos mecnicos. Uno de los primeros dispositivos mecnicos para contar fue el baco, cuya historia se remonta a las antiguas civilizaciones griega y romana. Este dispositivo consta de cuentas ensartadas en varillas, que a su vez estn montadas en un marco rectangular. Al desplazar las cuentas sobre las varillas sus posiciones representan valores almacenados, y es mediante dichas posiciones que se representan y almacenan datos. A este dispositivo no se le puede llamar computadora al carecer del elemento fundamental llamado programa. La primera computadora fue la mquina analtica creada por Charles Babbage, profesor matemtico de la Universidad de Cambridge, en el siglo XIX. La idea de Babbage sobre un computador naci a causa de lo tedioso y propenso a errores que era el proceso de elaboracin de tablas matemticas. En 1823, el gobierno Britnico lo apoy para crear el proyecto de una mquina de diferencias, un dispositivo mecnico para efectuar sumas repetidas. A finales del siglo XIX, las mquinas mecnicas de clculo se utilizaban en los negocios y la gestin de empresas, como la Mquina Tabuladora de H. Holletrith (1886). Con ella se realiz el 11 censo norteamericano. Posteriormente se fund la Tabulating Machine Corporation que despus se transformara en IBM. En 1944 se construy, en la Universidad de Harvard, la Mark I, diseada por un equipo encabezado por Howard H. Aiken. Esta mquina no es considerada como computadora electrnica, pues no era de propsito general y su funcionamiento estaba basado en dispositivos electromecnicos llamados relevadores. En 1947 se construy, en la Universidad de Pensilvania, la ENIAC (Electronic Numerical Integrator And Calculator), la primera computadora electrnica. El equipo de diseo lo encabezaron los ingenieros John Mauchly y John Eckert. Esta mquina ocupaba todo un stano de la Universidad, tena ms de 18,000 tubos de vaco, consuma 200 KW de energa elctrica y requera todo un sistema de aire acondicionado; no obstante, tena la capacidad de realizar cinco mil operaciones aritmticas en un segundo. La EDVAC (Electronic Discrete Variable Automatic Computer) fue diseada por este nuevo equipo. Tena aproximadamente cuatro mil bulbos y usaba un tipo de memoria basado en tubos llenos de mercurio por donde circulaban seales elctricas sujetas a retardos. En 1946 se dise otra mquina de programa almacenado, muy similar al diseo de EDVAC, pero su memoria se construy con bulbos y tubos de rayos catdicos. Esta mquina se conoce como IAS, y se considera el prototipo de todas las mquinas subsecuentes de todo proceso general. De 1940 a 1950 se construy una gran cantidad de computadoras bajo los diseos de EDVAC e IAS. Se incluyen otros diseos, como la ATLAS, del Tecnolgico de Massachusetts, que se considera la primera en utilizar memoria de ncleos de ferrita. Cuando ya no fue posible confiar en la evolucin de diseo para mejorar el sistema, y los instrumentos existentes no eran suficientes para satisfacer la demanda creciente, los nuevos mtodos comenzaron a ser desarrollados y dirigidos directamente a lo complejo. La evolucin de la ingeniera de sistemas, que contina hoy en da, comprendi el desarrollo y la identificacin de nuevos mtodos y tcnicas de modelado. Estos mtodos ayudaron a comprender mejor los sistemas de ingeniera conforme estos crecan y se hacan ms complejos. . Estado actual El ingeniero en sistemas computacionales es lder, analtico, crtico y creativo, con visin estratgica y amplio sentido tico, capaz de disear, implementar y administrar infraestructuras computacionales para aportar soluciones innovadoras en beneficio de la sociedad, en un contexto global, multidisciplinario y sustentable. La tecnologa moderna y las computadoras han cambiado la forma de resolver las dificultades del mundo actual. La ingeniera en sistemas computacionales representa uno de los campos de la ingeniera que ms ha evolucionado en los ltimos aos. Son innumerables las innovaciones que ha habido para crear nuevos sistemas que permitan, tanto a las personas como a las instituciones, realizar satisfactoriamente sus actividades. La Ingeniera de sistemas es un modo de enfoque interdisciplinario que permite estudiar y comprender la realidad, con el propsito de implementar optimizaciones a sistemas complejos. Puede verse como la aplicacin tecnolgica de la teora de sistemas a los esfuerzos de la ingeniera, adoptando el paradigma sistmico. La ingeniera de sistemas integra otras disciplinas y grupos de especialidad en un esfuerzo de equipo, formando un proceso de desarrollo estructurado. Una de las principales diferencias de la ingeniera de sistemas respecto a otras disciplinas de ingeniera tradicionales es que esta no construye productos tangibles. Mientras que los ingenieros civiles podran disear edificios o puentes, los ingenieros electrnicos podran disear circuitos. Los ingenieros de sistemas tratan con sistemas abstractos con ayuda de las metodologas de la ciencia de sistemas, y confan adems en otras disciplinas para disear y entregar los productos tangibles que son la realizacin de esos sistemas. Otra caracterstica de la ingeniera de sistemas es su capacidad de interrelacin con otras disciplinas cuando el trabajo as lo requiera. 1.2. Fundamentos de hardware Definicin Hardware es un trmino de origen anglosajn que hace referencia a cualquier componente fsico tangible que trabaja e interacta de algn modo en los equipos de cmputo; incluye tanto los elementos internos del disco duro, la unidad de CD-ROM y unidades USB, as como el cableado, los circuitos, el gabinete, etc. Tambin hace referencia a elementos externos como la impresora, el ratn (o mouse), el teclado, el monitor y dems perifricos. En las computadoras de escritorio, laptops o similares, como algunos telfonos celulares o reproductores porttiles, se distinguen diferentes componentes: Una unidad central de procesamiento (CPU, por sus siglas en ingls) que constituye el cerebro de la mquina. Perifricos de entrada, como un ratn, teclado, escner, entrada de micrfono y cmara web. Perifricos de salida, como altavoces, impresora, monitor (con excepcin de las pantallas tctiles). Memoria RAM (memoria de acceso aleatorio) para almacenamiento temporal de datos, y el lugar donde se ejecutan programas en conjunto con la CPU y otros componentes. Mixtos: discos rgidos, mdems, memorias USB y pantallas tctiles. Hardware grfico: tarjetas de video (estas poseen su propia unidad de procesamiento central). Una computadora con tan slo una CPU y memoria interna no tiene mucho valor. Los perifricos permiten que dicha computadora se comunique con el mundo exterior y almacene informacin para su uso posterior. Estos perifricos se clasifican exclusivamente en dispositivos de entrada o de salida. A un tercer grupo pertenecen los dispositivos de almacenamiento externos que aceptan informacin desde y hacia la CPU. . Dispositivos de entrada Los usuarios de hoy en da disponen de cientos de dispositivos de entrada, los cuales facilitan enormemente la introduccin de datos en sus computadoras. De todos ellos, el ms familiar es el teclado. . Teclado El teclado QWERTY, nombrado as por las teclas de la primera fila, se convirti en el estndar, primero de las mquinas de escribir, y despus de los PC. Sin embargo, los teclados modernos se han ido alejando del diseo original de las mquinas de escribir. Ya sea estndar o ergonmico, un teclado enva seales a la computadora a travs de un cable, aunque los ms modernos al ser inalmbricos no estn sujetos a ste sistema. El diseo de los teclados es muy variado: hay teclados plegados, impresos en membranas, manejables con una sola mano y miniatura. A la fecha siguen habiendo diversas innovaciones. . Dispositivos de sealizacin Para introducir texto y datos numricos se utiliza el teclado. Para otras tareas, como enviar comandos o posicionar un cursor, se utiliza el ratn, o mouse. El ratn est diseado para mover un puntero sobre la pantalla y sealar a caracteres u objetos especficos. Los primeros diseos disponan de una bola en su interior que rodaba al desplazar el mouse. Por el contrario, los ms modernos utilizan la luz reflejada por un led para detectar el movimiento. Algunos tambin incluyen una rueda de desplazamiento entre los dos botones estndar, llamada scroll. La mayora de equipos de cmputo se venden en compaa de un ratn, sin embargo, las porttiles son una excepcin a la regla. Como stas no siempre estn sobre superficies por las que el ratn pueda desplazarse, los fabricantes han proporcionado alternativas a este dispositivo de sealacin, entre los que se encuentran: El touchpad (o trackpad): es un pequeo panel sensible a las presiones leves. El usuario mueve el puntero arrastrando un dedo sobre esta superficie. El pointing stick (o TrackPoint): es un pequeo palo situado en el centro del teclado y que responde a la presin de un dedo para desplazar el puntero. El trackball: permanece quieto mientras el usuario mueve una prominente esfera que permite controlar la posicin del puntero en la pantalla. Hay otros tipos de dispositivos de sealizacin especiales para determinados tipos de trabajo o para fines de entretenimiento. Por ejemplo, el joystick, que es similar a la palanca de cambios de un coche y se utiliza principalmente para los juegos, y el lpiz electrnico, con el cual se apuntan y seleccionan elementos sobre una pantalla. . Herramientas de lectura Existen alternativas para escribir nmeros completos o palabras. Los siguientes son algunos dispositivos que permiten leer marcas y cdigos de representacin: Lectores pticos de marcas: usan la luz reflejada para determinar la posicin de las marcas de un lpiz en hojas de respuesta tipo test y formularios similares. Lector de caracteres de tinta magntica: lee caracteres impresos con una tinta magntica especial. Los lectores de cdigos de barras: utilizan luz para leer cdigos UPC (Cdigos de producto universal, Universal Product Codes), cdigos de inventario o cualquier otro tipo de codificacin creado a partir de patrones de barras de anchura variable. El OCR (Reconocimiento ptico de caracteres, Optical Character Recognition) se emplea para determinar un carcter individual en una pgina impresa de forma que se pueda almacenar y editar como si fuera texto. . Digitalizando el mundo real Antes de que la computadora pueda reconocer la escritura manual o un texto impreso, se debe digitalizar la informacin mediante un escner u otro dispositivo de entrada similar. Debido a la variedad de medios en cmo se almacena la informacin en el mundo real, existen una gran cantidad de dispositivos preparados para capturar y digitalizar dicha informacin. Escner: es un dispositivo capaz de crear una representacin digital de una imagen impresa. Cmara digital: puede capturar instantneas del mundo real y almacenarlas como imgenes digitales. Digitalizador de vdeo: es un conjunto de circuitos que pueden capturar la entrada procedente de una cmara de vdeo. Digitalizador de audio: contiene los elementos necesarios para digitalizar sonidos procedentes de un micrfono o cualquier otro dispositivo de audio. Nuevos dispositivos de entrada aparecen a medida que la tecnologa evoluciona y las necesidades humanas cambian. Gracias a estos dispositivos, nuestra concepcin del uso de una computadora se expande hasta lmites insospechados. . Salida de la informacin Los dispositivos de salida convierten los patrones de bits internos en un formato que los humanos puedan comprender. La mayora de computadoras de hoy da generan operaciones de salida mediante dos tipos de dispositivos principales: pantallas e impresoras. Pantallas La pantalla, ya sea de tipo CRT (tubo de rayos catdicos, Cathode-Ray Tube) o LCD (pantalla de cristal lquido, Liquid Crystal Display), sirve como una ventana de una sola direccin entre la computadora y el usuario que muestra la informacin que continuamente genera la mquina. El tamao de visualizacin se mide por la diagonal que cruza la pantalla de una esquina a otra, en unidad de pulgadas. Las imgenes en un monitor estn compuestas por pequeos puntos, llamados pxeles. Mientras ms juntos estn los puntos, mejor es la calidad de la imagen y, por ende, mayor ser la resolucin. La resolucin no es el nico factor que determina la calidad de una imagen. Un monitor tambin est condicionado por la profundidad de color, que se define como el nmero de colores diferentes que el monitor puede visualizar al mismo tiempo. Ese factor recibe a veces el nombre de profundidad de bit: entre mayor es el rango de colores por pixel, se requieren ms bits de espacio en la memoria de video. . Videbeam o videoproyector Un proyector de vdeo, o vdeo proyector, es un aparato que recibe una seal de vdeo y proyecta la imagen correspondiente en una pantalla de proyeccin usando un sistema de lentes, permitiendo as visualizar imgenes fijas o en movimiento. Salida en papel Una impresora puede producir una copia permanente en papel de cualquier cosa que se muestre en la pantalla. Existen diversos modelos, pero todas se clasifican en dos grupos bsicos: impresoras de impacto e impresoras sin impacto. I. Impresoras de impacto: forman las imgenes haciendo que un martillo golpee sobre una cinta entinada que, a su vez, se encuentra sobre una hoja de papel. . Impresoras de lnea: son capaces de realizar las impresiones lnea por lnea. . Impresoras matriciales: imprimen carcter por carcter. II. Impresoras sin impacto: imprimen mediante el uso de tinta ya sea slida o lquida, como tambin mediante rayos lser y haces de luz. En consecuencia, son menos ruidosas y ms rpidas. . Impresoras lser: pueden imprimir rpidamente una gran cantidad de pginas por minuto con una gran calidad de texto y grficos. . Impresoras de inyeccin de tinta: pulverizan tinta directamente sobre el papel para generar la copia impresa. Son ms lentas que las que utilizan lser, pero son ms pequeas y ligeras. Gracias a su capacidad para imprimir texto e imgenes en alta resolucin, las impresoras sin impacto dominan actualmente el mercado. Adems de stas impresoras tenemos: . Las MFP (Impresoras multifuncin, Multifunction Printers): combinan varias herramientas como un escner, una impresora lser o de inyeccin de tinta y un fax-mdem. . Plotter: es un perifrico destinado a trabajos de impresin especficos (planos, esquemas complejos, dibujo de piezas, grandes formatos, etc.). Se utilizan en diversos campos como ciencias, ingeniera, diseo, arquitectura, etc. Salida de audio Un PC puede reproducir cualquier tipo de grabacin digital, desde una grabacin casera hasta una cancin descargada de internet. Para generar cualquier tipo de sonido, es preciso que la computadora disponga de altavoces o auriculares. . Altavoces: estos dispositivos de salida son mediante los cuales la computadora emite sonidos que proceden de la tarjeta de sonido. . Auriculares: se colocan en los odos para poder escuchar los sonidos que enva la tarjeta de sonido. La gran ventaja de estos dispositivos de salida es que los sonidos que emiten no pueden ser escuchados por otra persona y slo los puede or la persona que utiliza los auriculares. Almacenamiento de la informacin Los dispositivos de almacenamiento permiten a la computadora registrar informacin de forma semipermanente, de modo que pueda utilizarse ms adelante por esa misma computadora o por otra. . Cinta magntica Es un dispositivo de almacenamiento habitual en la mayora de mainframes y en algunos PC ya que ste puede escribir datos y leerlos. Adems, es capaz de almacenar grandes cantidades de informacin en un espacio pequeo y a un costo relativamente bajo. . Discos magnticos Un disco magntico tiene una superficie recubierta magnticamente que puede almacenar informacin codificada. Una unidad de disco escribe y lee datos en la superficie de ese disco, pero a diferencia de las cintas, puede recuperar rpidamente la informacin desde cualquier parte del disco sin tener en cuenta el orden en que fueron grabados. . Discos pticos Estas unidades usan un rayo lser en lugar de un imn para leer y escribir bits de datos en la capa reflectante del disco. Una superficie plstica protege esta capa reflectante de los daos fsicos, permitiendo que la luz pase a travs de ella. Las unidades pticas ms comunes son: CD-ROM, CD-RW, DVD-ROM y DVD-RW. . Tipos de discos pticos . CD-ROM: son discos compactos de 650 o 700 MB de capacidad que pueden ser ledos la cantidad de veces el usuario lo desee, pero su contenido no puede ser modificado una vez que haya sido grabado. . CD-RW: a diferencia del CD-ROM, estos dispositivos de almacenamiento son regrabables. Las unidades CD-RW tienen la capacidad de grabar informacin sobre discos CD-ROM y CD-RW, adems de poder leer discos CD-ROM y CD de audio. Las interfaces soportadas por estos dispositivos de almacenamiento son EIDE, SCSI y USB. . DVD-ROM: consiste en un disco compacto que tiene la capacidad de almacenar 4.7 GB de datos en una cara del disco. Los futuros medios de DVD-ROM sern capaces de almacenar datos en ambas caras del disco y usar medios de doble capa con el objetivo de permitirle a las unidades leer hasta cuatro niveles de datos almacenados ellas. De esta forma se obtiene una capacidad de almacenamiento de 17 GB. . DVD-RAM: tienen una capacidad de 2.6 GB en un disco de cara simple y 5.2 GB en un disco de doble cara. Los DVD-RAM son capaces de leer cualquier disco CD-R o CD-RW, pero no son capaces de escribir sobre dichos formatos. Adems, los DVD-RAM son regrabables, pero dichos discos no pueden ser ledos por unidades DVD-ROM. . Dispositivos de almacenamiento en estado slido Teniendo como ejemplo las memorias flash, resultan ms prcticos para la movilidad y sin ruidosos, como los anteriores. . Memoria ROM: Esta memoria es slo de lectura y sirve para almacenar el programa bsico de iniciacin, instalado desde fbrica. Este programa entra en funcin en cuanto es encendida la computadora y su primer funcin es la de reconocer los dispositivos (incluyendo memoria de trabajo). . Memoria RAM: Esta es la denominada memoria de acceso aleatorio, es decir, puede tanto leerse como escribirse. Tiene la caracterstica de ser voltil: slo opera mientras permanezca encendida la computadora. En ella son almacenadas tanto las instrucciones que necesita ejecutar el microprocesador, como los datos que introducimos y deseamos procesar, as como los resultados obtenidos de esto. imagen . Disquete o disco flexible: El disco flexible (floppy disk en ingls) es uno de los tipos de dispositivos de almacenamiento de datos ms antiguos de la historia de los sistemas informticos. Est formado por una pieza circular de material magntico que permite la grabacin y lectura de datos. Dicha pieza circular se encuentra encerrada en una carcasa fina y cuadrada de material plstico. Los discos suelen ser de 3 o 5 pulgadas. . PC Cards: Las PC Cards pueden ser dispositivos de almacenamiento o tarjetas de I/O. Dichas tarjetas son compactas, ligeras y fiables, convirtindolas en dispositivos ideales para notebooks, handheld, PDAs y palmtop. Gracias a su pequeo tamao, estos dispositivos son utilizados para el almacenamiento de datos, aplicaciones, etc. Las PC Cards poseen el tamao de una tarjeta de crdito. Existen tres espesores diferentes para las PC Cards: . Tipo I: 3.3 milmetros (mm) de espesor . Tipo II: 5.0 milmetros (mm) de espesor . Tipo III: 10.5 milmetros (mm) de espesor . Flash cards: Estos dispositivos de almacenamiento son tarjetas de memoria no voltil, es decir, conservan los datos guardados en ellas aun cuando estas no se encuentran alimentadas por una fuente elctrica. Las flash cards presentan una gran ventaja: sus datos pueden ser ledos, modificados y borrados. Gracias a las caractersticas positivas que presentan estos dispositivos, las flash cards han sido adoptadas como medio de almacenamiento de cmaras digitales, telfonos mviles, dispositivos digitales de msica, etc. Con esto se obtiene un menor costo en la produccin de dichos aparatos electrnicos, al igual que una gran capacidad de almacenamiento. . Tipos de flash cards . Pendrive/Memory Flash: Es un pequeo dispositivo de almacenamiento que utiliza memoria flash para guardar informacin sin necesidad de pilas o bateras. Los pendrive fueron creados con la resistencia que los antiguos medios de almacenamiento portables carecan, por lo que son resistentes a los rasguos y al polvo. Marcaron una gran diferencia con respecto los CD y los discos flexibles. Los sistemas operativos ms modernos son capaces de leer y escribir en Dispositivos de almacenamientodichos dispositivos sin necesidad de controladores especiales. . Unidades de Zip: Los dispositivos de almacenamiento Iomega Zip fueron lanzados al mercado en 1994 por la empresa Iomega. Contaban con una capacidad de 100 MB en su primera versin. Si bien el objetivo de la empresa Iomega era que las unidades Zip fueran las sucesoras de los discos flexibles de 3.5 pulgadas, estas nunca lo lograron completamente. Los primeros discos Zip del mercado compitieron con el Superdisk, un dispositivo que almacenaba un 20% ms de datos que las unidades Zip, pero presentaba una gran desventaja: tena menor velocidad de transferencia de datos. Aos despus, la baja de precios de las grabadoras CD-R y CD-RW, as como la introduccin de los pendrives y tarjetas flash al mercado, termin por desplazar a las unidades Zip del mercado. La unidad Zip posea tres versiones: Interfaz SCSI Interfaz IDE Unidad Iomega Zip que se conecta a un puerto paralelo 1.3. Fundamentos de software Definicin Algunos autores prefieren ampliar la definicin del software al incluir tambin todo lo que es producido en el desarrollo del mismo. La tecnologa ha transformado la educacin al proveernos de diversas herramientas necesarias en el procesamiento y transmisin de la informacin. Son importantes para la tecnologa de la organizacin escolar las bases de datos, editores de texto, hojas de clculo, programas grficos, paquetes estadsticos, paquetes de programacin, entre otros. En computacin, el software, en sentido estricto, es todo programa o aplicacin diseado para realizar tareas especficas. Es el soporte lgico del material que permite que la computadora pueda desempear tareas inteligentes, conduciendo a los componentes fsicos y hardware con instrucciones y datos a travs de diferentes tipos de programacin. El software es el conjunto de instrucciones que las computadoras utilizan para manipular datos. Sin l, la computadora sera un conjunto de mecanismos inutilizables. Al cargar los programas en una computadora, la maquina actuar como si recibiera una educacin instantnea; de pronto sabe como pensar y como operar. El software es una coleccin de programas, documentos, procedimientos y rutinas asociadas como la operacin de un sistema de cmputo. Se distingue de los componentes fsicos llamados hardware, pues a los programas de computacin se les llama software. Mediante estos programas el sistema cumple por completo con los objetivos, opera con eficiencia, est documentada de manera adecuada y es sencillo de operar. . El lenguaje de las computadoras Cada computadora procesa instrucciones en un "lenguaje mquina": este lenguaje emplea cdigos numricos en base al 1 y 0 para ejecutar las operaciones ms bsicas en una computadora. Los programadores de antao estaban obligados a escribir cada programa en lenguaje mquina, por lo que trasladar cada instruccin a cdigo binario representaba una tarea tediosa. En la actualidad, la mayora de los programadores utiliza lenguajes de programacin como Java o Visual Basic.NET, lo cuales se encuentran a medio camino entre lo que entienden un humano y lo que se debe suministrar a la mquina. Para poder comunicarnos instrucciones en niveles ms altos de lenguaje se necesita la ayuda de un "traductor". Mientras ms sofisticado es el traductor, ms sencillo resulta el trabajo del programador. El programa traductor ms comn es el compilador. Su misin es la de convertir un programa completo escrito en un lenguaje de alto nivel como (como C) antes de que se ejecute por primera vez. . Aplicaciones: herramientas para los usuarios Las aplicaciones de software permiten a los usuarios controlar sus computadoras sin pensar del mismo modo que los programadores. . Aplicaciones para el usuario Las tiendas de computadoras y software, las de los productos elctricos y las de venta por correo venden cientos de programas: software de auto detencin, de contabilidad, de grficos, gestores de informacin personal, etc. El proceso de compra de cualquier software es similar al de cualquier CD de msica. Pero existen algunas sutiles diferencias que veremos a continuacin. . Documentacin Todo paquete de software debe incluir documentacin impresa con las instrucciones a seguir para su instalacin en el disco duro de la computadora. Algunos tambin disponen de tutoriales y manuales de referencia que explican cmo usarlo. . Actualizacin La mayora de las empresas de software trabajan en la mejora de sus productos, eliminando fallos y aadiendo nuevas caractersticas. Como resultado de ello, es frecuente que aparezcan nuevas versiones de los programa ms populares cada uno o dos aos. . Compatibilidad Los paquetes de software contienen etiquetas con mensajes como Precisa Windows 9x, Me o XP con 128 MB de RAM. Estas especificaciones no deben tomarse a la ligera; sin el hardware y software compatible, muchos programas son inservibles. . Renuncias Segn la letra pequea de las garantas incluidas en muchos paquetes de software, algunas aplicaciones podran ser tcnicamente inservibles aun disponiendo de hardware y software compatible. EULA (Contrato de licencia de usuario final, End User License Agreement): Este programa se distribuye tal como es, sin garanta de ningn tipo . Licencia Cuando se adquiere cualquier paquete de software, realmente no se est comprobando ese software, sino una licencia para usar el programa, generalmente en una sola mquina. Virtualmente, todo software tiene un copyright, lo que significa que no puede duplicarse legalmente para su distribucin a terceras personas. Algunos programas grabados en CD o DVD (lo ms recientes) estn fsicamente protegidas contra copia de modo que no pueden duplicarse de ninguna manera. . Por qu usamos aplicaciones? Podra sonar raro que alguien pagase una cantidad de dinero por un producto que no tiene garanta y que contiene docenas de restricciones legales relacionadas con su uso. Sin embargo, estn construidas alrededor de metforas visuales de herramientas del mundo real, por lo que expanden de alguna forma, las capacidades humanas. . Qu hace un sistema operativo? Toda computadora actual, ya sea una supercomputadora de tiempo compartido o un porttil, depende de un SO (sistema operativo) que mantenga el hardware funcionando de forma eficiente y facilite el proceso de comunicacin con l. Algunas computadoras, incluyendo las de bolsillo, de juegos y de propsito especfico, tienen sus sistemas operativos almacenados permanentemente en ROM (memoria de slo lectura) de modo que estn operativas desde el momento en que se encienden. De esta manera, la computadora proporciona una capa de aislamiento entre usted y los bits y bytes que componen el mundo del software. . Comunicacin con los perifricos El sistema operativo incluye programas que se comunican de forma transparente con los perifricos (monitores, impresoras, unidades de disco). . Administracin de la memoria Cuando varios trabajos se procesan de manera concurrente, el sistema operativo debe controlar el modo en el que se est usando la memoria de la computadora y asegurarse de que ningn trabajo invada el espacio de otro. . Programas y administracin de datos Adems de actuar como guardia de trfico, guardia de seguridad y contable, el sistema operativo tambin es un directorio que se encarga de localizar y acceder a los ficheros y programas solicitados por el usuario o por cualquier otro programa. . Coordinacin de las comunicaciones de red Hasta hace poco, las comunicaciones de red no eran administradas por los sistemas operativos empleados por cualquier usuario. No obstante, los ms modernos se encuentran diseados para fungir como puente entre las redes, desde la oficina a Internet. . Programas de utilidad y controladores de dispositivo Los programas de utilidad sirven como herramientas de mantenimiento del sistema y reparan todo aquello que el propio sistema operativo no es capaz de hacer por s mismo. . La interfaz de usuario: la conexin hombre-mquina Sistemas operativos Los usuarios de las primeras computadoras tenan que gastar tiempo escribiendo en lenguaje mquina. En la actualidad, los usuarios emplean la mayora de su tiempo en el trabajo con aplicaciones ya programadas, como los procesadores de texto, que simulan y aumentan las posibilidades de herramientas reales. . Plataformas de hardware y software Entre los sistemas operativos ms conocidos se puede citar: . Microsoft Windows XP. ste es el producto estrella de Microsoft y fue presentado en 2001. . Windows Server 2003. En secuencia, es el equivalente para servidores de Windows XP y el sucesor de la familia de productos Windows 2000. . Microsoft Windows CE.NET. Esta versin reducida, diseada principalmente para dispositivos conectados e incrustados y para computadoras de bolsillo y telfonos mviles. . Palm OS. Este sistema operativo, desarrollado originalmente para la Palm Pilot, se incluye en la actualidad en muchos dispositivos de bolsillo fabricados por una gran variedad de fabricantes como Palm, Handspring y Sony. Su interfaz de usuario basada en un lpiz es fcil de usar. . Mac OS X (10). Presentado en 2001, es la ltima versin del sistema operativo Mac. . Mac OS 9. ste es el ltimo de una larga lista de sistemas operativos Macintosh que inici con el sistema Mac Original de 1984. OS 9 y sus predecesores solo funcionan en Mac. . Linux, Sun Solaris y otras versiones UNIX. Siempre es posible encontrar una versin de UNIX o Linux en PC, Mac, estaciones de trabajo, supercomputadoras, mainframes y otros dispositivos. Linux es especialmente popular debido a que no tiene costo y est soportado gratuitamente por sus partidarios. . Software del sistema y programacin. Son aquellos que permiten la administracin de la parte fsica o los recursos de la computadora. Interactan entre el usuario y los componentes del hardware del equipo informtico. Dentro de este tipo estn los sistemas operativos y los lenguajes de programacin. . Software de aplicacin, son los programas dedicados a tareas especficas como edicin de textos, imgenes, clculos, etc. Tambin son conocidos como aplicaciones. El software de aplicacin permite a los usuarios llevar a cabo tareas especficas, en cualquier actividad susceptible de ser automatizada o asistida, tambin podemos decir que el software de aplicacin son los programas que nos ayudan en la elaboracin de una determinada tarea, pues est diseado para facilitar al usuario en la realizacin de un determinado tipo de trabajo. . Metodologas de programacin Hace unos cuantos aos se produjeron cambios de gran alcance en la forma en que se desarrollaba el software para los equipos informticos. Las causas fueron las siguientes: . El costo creciente de los desarrollos . La insatisfaccin de los usuarios con la adecuacin y calidad . La complejidad y tamao creciente de los programas . La creciente dependencia de muchas organizaciones de sus sistemas informticos, sin posibilidad de abandonarlos . El intento de lograr computadoras de quinta generacin con caractersticas software muy diferentes Estas y otras presiones dieron lugar a la reorganizacin de los mtodos empleados en el desarrollo de los programas para las computadoras. Lo que se necesitaba eran tcnicas para la elaboracin de productos de software muy largos y complejos, que satisficieran estndares muy estrictos de calidad y prestaciones, de acuerdo con una planificacin, control y presupuestos adecuados. Los mtodos de trabajo que se desarrollaron para responder a estas necesidades constituyen lo que se llama "ingeniera del software". La ingeniera del software es una tarea de equipo: al comenzar un proyecto de desarrollo, se constituyen una serie de equipos con una estructura paralela a la del programa en s. Se establece un calendario para el proyecto y se asignan los costos a cada una de las partes y etapas del proyecto. Cada equipo tiene un responsable, cuya tarea es la de comprobar que la programacin desarrollada por el equipo sea correcta, est estructurada con propiedad y dispone de las interfaces para conectar. Sin embargo no ha mostrado gran eficacia en el tiempo que lleva aplicndose, incluso hay quienes no son partidarios de la ingeniera del software, como por ejemplo Ricardo Galli, creador de la famosa pgina dedicada a agregar contenidos, Meneame. En resumen, la ingeniera del software se ocupa del ciclo de vida completo de un producto de software, su diseo, desarrollo, uso y mantenimiento. El trabajo se hace buscando el mayor grado posible de estandarizacin y los menores costos durante la totalidad del ciclo de vida de los programas. La ingeniera del software implica que un programa bien estructurado satisfaga las siguientes condiciones: El programa ha de tener una estructura general en forma de mdulos, que a su vez estarn formados por procedimientos o segmentos. Debe existir una interfaz claramente definida entre los diversos mdulos. Cada mdulo debe de ser una combinacin sencilla de construcciones elementales de un lenguaje de programacin. Debe existir una fuerte correspondencia entre la estructura de los mdulos y la de los datos sobre los que operan. Cada mdulo debe dejar las estructuras de datos sobre las que opera en un estado consistente con su definicin. Un mdulo no debe tener efectos secundarios. Por lo que respecta a las tcnicas de diseo de programas, el mtodo ms simple, y uno de los ms populares, es el conocido como "refinamiento progresivo". Se fundamenta en el uso de algoritmos que se escriben en un lenguaje intermedio; entre el castellano y un lenguaje de programacin como Pascal. Este lenguaje se denomina pseudocdigo. El proceso se puede describir en trminos de un lenguaje de esta naturaleza: . Establecer todos los pasos del programa en un algoritmo breve de alto nivel. . Expandir cada sentencia del algoritmo en detalle, especificando los pasos necesarios. . Repetir hasta que las tareas hayan sido especificadas con el detalle suficiente como para que pueda generarse el cdigo del programa. Existen otras metodologas ms depuradas, como la conocida como "Descomposicin Funcional". A diferencia de la anterior, en cada etapa se especifican las propiedades esenciales de las estructuras de datos, y cada algoritmo se expresa como una funcin matemtica que transforma esta estructura de datos. Una vez desarrollado un programa, se ha de comprobar su buen funcionamiento. Actualmente, en la mayora de los casos, se prueban con cualquier tipo de datos que hipotticamente puedan presentarse en la realidad. Sin embargo, este proceso nunca establece si un programa es o no correcto, sin importar cuntos conjuntos de datos se usen. Si un programa es de importancia crtica, como ocurre con muchas aplicaciones en los mbitos de la salud, comerciales, industriales o militares, es necesario tomar todas las precauciones posibles para asegurar que estn libres de errores. Otra metodologa moderna es la de los "Mtodos formales". La especificacin formal es un rea de investigacin cuyo propsito es el desarrollo de tcnicas, lenguajes y herramientas (basadas en lgicas clsicas y no clsicas, lgebras o clculos) para alcanzar una de las principales metas de la ingeniera de software: permitir la construccin de sistemas que operen de forma confiable a pesar de su complejidad. Aun cuando la aplicacin de mtodos formales no garantiza la el correcto funcionamiento a priori de un sistema, facilita considerablemente el anlisis de las propiedades del sistema, mostrando posibles inconsistencias o ambigedades que de otra forma pasaran desapercibidas. 1.4. Sistema operativo y administracin de archivos . Sistema operativo Un sistema operativo es el controlador maestro de todas las actividades que tiene lugar dentro de la computadora. Los sistemas operativos se clasifican como software del sistema, no como hardware de aplicacin, porque su principal propsito es ayudar al sistema de la computadora a vigilar su propia operacin para que funcione de manera eficiente. A diferencia del software de aplicacin, un sistema operativo no ayuda directamente a la gente a realizar tareas especficas en una aplicacin, como el procesamiento de texto. Sin embargo, las personas si interactan con el sistema operativo para ciertas tareas operativas y de almacenamiento, como iniciar programas o localizar archivos de datos. . Qu hace un sistema operativo? El software de una computadora es similar a la cadena de mando de un ejrcito. Se emite un comando al software de aplicacin que indica al sistema operativo lo que debe hacer. El sistema operativo le da indicaciones a los controladores del dispositivo y estos se comunican con el hardware que realmente hace el trabajo. El sistema operativo interacta con el software de aplicacin, los controladores de dispositivo y el hardware para administrar los recursos de una computadora. . Cules son los sistemas operativos ms populares? Entre los sistemas operativos ms populares para computadoras se incluyen Microsoft Windows y Mac OS. Microsoft Windows CE y Palm OS son utilizados en la mayor parte de las computadoras, mientras que Linux y Unix son sistemas operativos recurrentes para servidores. Es probable que Microsoft Windows (usualmente denominado Windows) sea el sistema operativo que ms se emplea para computadoras personales. El sistema operativo de Windows despliega mens y controles simulados en pantalla, diseados para ser manipulados con un ratn. Con la llegada al mercado de equipos porttiles de tamao reducido, conocidos como netbooks, tabletas, y telfonos mviles inteligentes (smartphones), han surgido otros sistemas operativos para ambos tipos de equipos. Incluso hay un sistema operativo desarrollado por Google, basado en Linux, denominado Chrome (no confundir con el navegador de internet), que ha dado lugar a un nuevo tipo de computadoras: las conocidas como Chromebooks. Google ha desarrollado una variante de Linux, comercializada bajo el nombre Android, con gran xito en telfonos mviles y tabletas. Nokia e Intel fusionaron sus desarrollos basados en Linux en un nuevo sistema operativo denominado MeeGo, que no lleg a comercializarse. Por lo que respecta a los telfonos Nokia, hasta el ao 2013 utilizaron el sistema operativo libre Symbian; actualmente sus telfonos operan con Windows Phone y una versin personalizada de Android, que solo se instala en equipos de bajo precio para el mercado asitico. Otros sistemas operativos para telfonos mviles son: Firefox OS, Apple iOS (exclusivo de los telfonos iPhone de Apple), China Operating System (COS, desarrollado por la Academia China de Ciencias), Blackberry OS (exclusivo de los telfonos Blackberry), Tizen (desarrollado por Samsung en base a MeeGo y Linux) y Ubuntu Touch (basado en el sistema operativo Ubuntu). . Principales funciones y uso Los sistemas operativos, en su condicin de capa de software que posibilita y simplifica el manejo de la computadora, desempean una serie de funciones bsicas esenciales para la gestin del equipo, entre las ms destacables, podemos resear las siguientes: Proporcionar ms comodidad en el uso de una computadora. Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas). Brindar una interfaz al usuario, ejecutando instrucciones (comandos). Permitir que los cambios al desarrollo del propio S.O. se puedan realizar sin interferir con los servicios que ya se prestaban. Un sistema operativo desempea funciones bsicas en la operacin de un sistema informtico: suministro de interfaz al usuario, administracin de recursos, administracin de archivos, administracin de tareas y servicio de soporte y utilidades. . Principales funciones de los sistemas operativos . Administracin del procesador: Administra la distribucin del procesador entre los distintos programas por medio de un algoritmo de programacin. El tipo de programador depende completamente del sistema operativo, segn el objetivo deseado. . Gestin de la memoria de acceso aleatorio: Se encarga de gestionar el espacio de memoria asignado para cada aplicacin y para cada usuario, si resulta pertinente. Cuando la memoria fsica es insuficiente, el sistema operativo puede crear una zona de memoria en el disco duro, denominada "memoria virtual". La memoria virtual permite ejecutar aplicaciones que requieren una memoria superior a la memoria RAM disponible en el sistema. . Gestin de entradas/salidas: Permite unificar y controlar el acceso de los programas a los recursos fsico a travs de los drivers (tambin conocidos como administradores perifricos o de entrada/salida). . Gestin de ejecucin de aplicaciones: Se encarga de que las aplicaciones se ejecuten sin problemas asignndoles los recursos que stas necesitan para funcionar. . Administracin de autorizaciones: Se encarga de la seguridad en relacin con la ejecucin de programas, garantizando que los recursos sean utilizados slo por programas y usuarios que posean las autorizaciones correspondientes. . Gestin de archivos: Gestiona la lectura y escritura en el sistema de archivos, y las autorizaciones de acceso a archivos de aplicaciones y usuarios. . Gestin de la informacin: Proporciona cierta cantidad de indicadores que pueden utilizarse para diagnosticar el funcionamiento correcto del equipo. . Interfaces del usuario: Permite comunicarse con l, de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos bsicos de interfaces: las que se basan en comandos, las que utilizan mens y las interfaces grficas de usuario. . Administracin de recursos: Sirven para administrar los recursos de hardware y de redes de un sistema informtico, como el CPU, memoria, dispositivos de almacenamiento secundario y perifricos de entrada y de salida. . Administracin de archivos: Controlan la creacin, borrado y acceso de archivos de datos y de programas. Tambin implica mantener el registro de la ubicacin fsica de los archivos en los discos magnticos y en otros dispositivos de almacenamiento secundarios. . Administracin de tareas: Controla que reas tiene acceso al CPU y por cunto tiempo. Las funciones de administracin de tareas pueden distribuir una parte especfica del tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea de mayor prioridad. . Servicio de soporte: Dependern de la implementacin particular con la que estemos trabajando. Entre las ms conocidas se pueden destacar las implementaciones de Unix, desarrolladas por diferentes empresas de software, los sistemas operativos de Apple Inc., como Mac OS X para las computadoras de Apple Inc., los sistemas operativos de Microsoft, y las implementaciones de software libre, como Linux o BSD producidas por empresas, universidades, administraciones pblicas, organizaciones sin fines de lucro y/o comunidades de desarrollo. No todas las utilidades de administracin o servicios forman parte del sistema operativo. Adems de ste, hay otros tipos importantes de software de administracin de sistemas, como los sistemas de administracin de base de datos o los programas de administracin de redes. El soporte de estos productos deber proporcionarlo el fabricante correspondiente (que no tiene por qu ser el mismo que el del sistema operativo). Existen varios tipos de sistemas operativos, definidos segn su capacidad para administrar los recursos de cmputo y simultneamente la informacin. Los sistemas operativos ms utilizados en los PC son DOS, OS/2, y Windows, pero hay otros que tambin se utilizan, como Linux. . MS-DOS El significado de estas letras es Microsoft Disk Operating System. Microsoft es el nombre de la compaa que diseo este sistema operativo, e IBM la compaa que lo hizo estndar al adoptarlo en sus microcomputadoras. Los nombres de los archivos en MS-DOS, para los que se emplean tanto letras como nmeros, se componen de dos partes: el nombre del archivo y la extensin, estando ambos datos separados por un punto. Las diferentes unidades de disco son identificadas por MS-DOS a travs de una letra seguida de dos puntos. Los tipos de extensin ms habituales pueden cargarse directamente a la memoria sin la ayuda del sistema operativo. Los de extensin .EXE precisan que el cargador del DOS los coloque en memoria, lo que significa que el sistema operativo debe estar en memoria. Los del tipo .BAT son los compuestos de comandos que se ejecutan secuencial mente. El sistema operativo tiene varios componentes que son: . Rutinas de control, que funcionan con el programa IBM.DOS, y se encargan de las operaciones de entrada / salida. . Procesador de comandos, tambin llamado COMMAND.COM, que procesa los dos tipos de comandos de que dispone el DOS: los residentes en memoria, o internos, y los no residentes, o externos, que residen en el disco del sistema operativo. . Rutinas de servicios accesibles desde el programa control. Tambin existe la posibilidad de subdividir el disco en subdirectorios que permiten un empleo ms gil de toda la informacin. MS-DOS est lejos de ser el sistema operativo ideal, pues se trata de un sistema monotarea. No obstante, aunque esto se resolviera, seguira presentando problemas de diseo que provocan que el comportamiento de la mquina sea poco fiable. . OS/2 Desarrollado inicialmente por Microsoft Corporation e International Business Machines (IBM) despus de que Intel introdujera al mercado su procesador 80286. La asociacin no dur mucho, pues IBM vea a Windows como una amenaza para el OS/2. IBM contino desarrollando este sistema operativo, y aunque al principio fue muy parecido a MS-DOS, pues tambin tena una lnea de comando, la diferencia radica en el intrprete de comandos, el cual es un programa separado del kernel del sistema operativo y aparece nicamente cuando se hace clic en uno de los iconos "OS/2 prompt" dentro del Workplace Shell. Otra diferencia es se trata de un sistema operativo multitarea. En el OS/2, muchos de los comandos son idnticos a los de su contraparte, pero tiene ms comandos debido a que es ms grande, completo y moderno. El ambiente grfico es el Workplace Shell (WS), y es el equivalente a un administrador del rea de trabajo. . Macintosh OS El sistema operativo constituye la interfaz entre las aplicaciones y el hardware de Macintosh. El administrador de memoria obtiene y libera memoria en forma automtica para las aplicaciones y el sistema operativo. Esta memoria se encuentra normalmente en un rea llamada cmulo. El cdigo de procedimientos de una aplicacin tambin ocupa espacio en el cmulo. Principales componentes del sistema operativo: . El cargador de segmentos carga los programas por ejecutar. Una aplicacin se puede cargar completa, o bien, puede dividirse en segmentos individuales que se pueden cargar de manera dinmica conforme se necesiten. . El administrador de eventos del sistema operativo informa de la ocurrencia de diversos eventos de bajo nivel, como la presin de un botn del mouse o el tecleo. . El administrador de archivos se encarga de la entrada/salida de archivos; el administrador de dispositivos se encarga de la entrada/salida de dispositivos. . Los manejadores de dispositivos son programas con los cuales los diversos tipos de dispositivos pueden presentar interfaces uniformes de entrada/salida a las aplicaciones. . Los programas de utilidad general del sistema operativo ofrecen diversas funciones tiles, como la obtencin de la fecha y la hora, la comparacin de cadenas de caracteres y muchas ms. . UNIX Es un sistema operativo multiusuario que incorpora multitarea. Fue desarrollado originalmente por Ken Thompson y Dennis Ritchie en los laboratorios de AT&T Bell en 1969 para su uso en mini computadoras. El sistema operativo UNIX tiene diversas variantes y se considera potente, ms transportable e independiente de equipos concretos que otros sistemas operativos porque est escrito en lenguaje C. UNIX y sus clones permiten mltiples tareas y mltiples usuarios. Su sistema de archivos proporciona un mtodo sencillo de organizar archivos y permite la proteccin de archivos. Este sistema ofrece una serie de utilidades muy interesantes, como las siguientes: . Inclusin de compiladores e intrpretes de lenguaje . Existencia de programas de interface con el usuario, como ventanas, y mens . Muchas facilidades a la hora de organizacin de ficheros . Inclusin de lenguajes de interrogacin . Facilidades grficas . Programas de edicin de textos . SCO SCO es el proveedor mundial lder en sistemas operativos para servidores Unix, y uno de los principales proveedores de software de integracin de clientes que integra PCs Windows y otros clientes con servidores UNIX de los principales fabricantes. Los servidores de aplicaciones crticas de negocios de SCO ejecutan las operaciones crticas diarias de una gran gama de organizaciones comerciales, financieras, de telecomunicaciones, y gobierno, as como tambin departamentos corporativos, y pequeas y medianas empresas de todo tipo. . Caractersticas . Brinda acceso a impresoras y archivos compartidos desde PCs corriendo Windows 95, Windows NT, Windows 3.1, Windows para trabajo en Grupos, OS/2, y MS-DOS. . SCO TermLite, el emulador de terminal, incluye soporte para SCO ANSI y VT320 sobre TCP/IP o NetBEUI. . Las herramientas del servidor NT permiten la administracin de los recursos compartidos en un servidor utilizando sistema UNIX desde una PC corriendo Windows. . Configuracin automtica de capas de conectividad, incluyendo NetBIOS sobre TCP/IP, y NetBEUI. . Totalmente adherido al estndar emergente denominado CIFS. . Solaris . Caractersticas Portabilidad: El software est conformado por una ABI, aplicacin de interfaces binaria (Application Binary Interface), que se ejecuta con un Shrink-wrapped (Contraccin envuelta). El software en todos los sistemas vendidos tiene la misma arquitectura del microprocesador. Escalabilidad: Las aplicaciones que se usan con ms frecuencia en el sobretiempo y que requieren sistemas ms poderosos para soportarlos. Para operar en un ambiente creciente, el software debe ser capaz de ejecutarse en un rango amplio y debe ser capaz de tomar ventajas del poder adicional que se est procesando. Interoperabilidad: La estandarizacin y una clara interface son criterios necesarios para un ambiente heterogneo, que permita a los usuarios desarrollar estrategias para comunicarse por medio de su red. El sistema operativo de Solaris puede interoperar con sistemas muy populares hoy en el mercado, y aplicaciones que se ejecutan en UNIX se pueden comunicar fcilmente. Compatibilidad: La tecnologa de la computacin contina avanzando rpidamente, pero es necesario permanecer en el mbito competitivo para minimizar sus costos y maximizar sus ingresos. . Microsoft Windows NT Microsoft no solo se ha dedicado a escribir software para PCs de escritorio sino tambin para estaciones de trabajo poderosas, servidores de red y bases de datos. El sistema operativo Windows NT de Microsoft, lanzado al mercado el 24 de Mayo de 1993, es un SO para redes que brinda poder, velocidad y nuevas caractersticas, adems de las caractersticas tradicionales. Es un SO de 32 bits, y que puede trabajar en procesadores 386, 486 y Pentium. Adems de ser multitarea, multilectura y multiprocesador, ofrece una interfaz grfica. Trae todo el software necesario para trabajar en redes, permitiendo ser un cliente de la red o un servidor. . Clasificacin de los Sistemas Operativos de acuerdo a su forma de procesamiento: . Sistemas operativos por lotes Requieren que la informacin est reunida en bloque o "lote" (el programa, los datos, y las instrucciones). Los trabajos son procesados en el orden de admisin, segn el modelo de "primero en llegar, primero en ser atendido". En estos sistemas la memoria se divide en dos zonas. Una de ellas es ocupada por el sistema operativo, y la otra se usa para cargar programas transitorios para su ejecucin. . Sistemas operativos multiprogramacin Son capaces de soportar dos o ms procesos concurrentes mltiples, permitiendo que residan al mismo tiempo en la memoria primaria las instrucciones y los datos procedentes de dos o ms procesos. Estos sistemas implican la operacin de multiproceso para el manejo de la informacin. Se caracterizan por un gran nmero de programas activos simultneamente que compiten por los recursos del sistema. . Sistemas operativos multiusuario Los sistemas operativos multiusuario permiten acceder simultneamente a un sistema de computadoras a travs de dos o ms terminales. Este tipo de sistema operativo es fundamental en el manejo de redes de computadoras actualmente. . Sistemas operativos de tiempo compartido Tratan de proporcionar un reparto equitativo de los recursos comunes para dar la impresin a los usuarios de que poseen una computadora independiente. En estos sistemas, el administrador de memoria proporciona aislamiento y proteccin de los programas. El control de E/S se encarga de proporcionar o retirar la asignacin a los dispositivos de forma que se preserve la integridad del sistema y se proporcione servicio a todos los usuarios. . Sistemas operativos de tiempo real Tienen como objetivo proporcionar tiempos ms rpidos de respuesta, procesar la informacin sin tiempos muertos. En estos sistemas el administrador de memoria es relativamente menos solicitado debido a que muchos procesos residen permanentemente en memoria. El administrador de archivos se encuentra normalmente en grandes sistemas de tiempo real y su objetivo principal es manejar la velocidad de acceso, ms que la utilizacin eficaz del almacenamiento secundario. . Categora de los sistemas operativos . Sistema operativo multitareas Es el modo de funcionamiento disponible en algunos sistemas operativos mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atencin del microprocesador durante una fraccin de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho ms lento que la velocidad de procesamiento de la computadora, las operaciones de multitarea en tiempo compartido parecen ser simultneas. . Sistema operativo monotareas Los sistemas operativos monotareas son ms primitivos y solo pueden manejar un proceso en cada momento o solo puede ejecutar las tareas de una en una. Por ejemplo, cuando la computadora est imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresin. . Sistema operativo monousuario Los sistemas monousuarios son aquellos solo pueden atender a un usuario a la vez debido a las limitaciones creadas por el hardware, los programas o el tipo de aplicacin que se est ejecutando. Este tipo de sistemas son muy simples pues todos los dispositivos de entrada, salida y control dependen de la tarea que se est utilizando. Estn orientados principalmente a los microcomputadores. . Sistema operativo multiusuario Es todo lo contrario a monousuario; en esta categora se encuentran todos los sistemas que cumplen simultneamente las necesidades de dos o ms usuarios, compartiendo los mismos recursos. . Lenguajes de programacin Un lenguaje de programacin es un lenguaje diseado para expresar procesos que pueden ser llevados a cabo por mquinas, tales como las computadoras. Diagrama algoritmosLos lenguajes de programacin constan de: A. Un conjunto finito de smbolos, a partir del cual se define el lxico o vocabulario del lenguaje. B. Un conjunto finito de reglas, la gramtica del lenguaje, para la construccin de las sentencias correctas del lenguaje. (Sintaxis). C. Semntica, que asocia un significado (la accin que debe llevarse a cabo) a cada posible construccin del lenguaje. Al proceso por el cual se escribe, prueba, depura, compila (de ser necesario) y se mantiene el cdigo fuente de un programa informtico se le llama programacin. Por algoritmo se entiende el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema en un nmero finito de pasos. La palabra "algoritmo" deriva del nombre del matemtico rabe Mohamed Ibn Moussa Al Kow Rizmi, quien escribi, entre los aos 800 y 825, su obra Quitab Al Jabr Al Mugabala, donde se recoga el sistema de numeracin hind y el concepto del cero. Fue Fibonacci quien tradujo su obra al latn y la inici con las palabras Algoritmi dicit. El siguiente esquema indica el algoritmo para indicar que un nmero es mayor que otro. La diferencia entre el lenguaje algortmico y el informtico es que el algortmico es el medio por el cual se realiza un anlisis previo del problema a resolver y se encuentra un mtodo que permita resolverlo. El conjunto de operaciones a realizar, as como el orden en el que deben efectuarse, se denomina algoritmo. El lenguaje informtico es aquel por medio del cual dicho algoritmo se codifica a un sistema comprensible por la computadora. Diagrama programacin Una clasificacin habitual de los lenguajes es considerar dos grupos segn la forma de ejecucin en una computadora: intrpretes y compiladores. Esto se describe a continuacin. . Intrpretes Un intrprete hace que un programa fuente escrito en un lenguaje vaya, sentencia a sentencia, traducindose a cdigo objeto y sea ejecutado directamente por la computadora. El intrprete capta una sentencia fuente y la traduce, expandindola en una o varias instrucciones mquina, que ejecuta inmediatamente, no crendose, por tanto, un fichero o programa objeto almacenable en memoria masiva para posteriores ejecuciones. En la prctica, el usuario crea un fichero con el programa fuente. Esto suele realizarse con un editor especfico del propio intrprete del lenguaje. Segn se van almacenando las instrucciones simblicas, estas se analizan y se producen los mensajes de error correspondientes: as el usuario puede proceder inmediatamente a su correccin. Una vez creado el fichero fuente el usuario puede dar la orden de ejecucin (RUN) y el intrprete lo ejecuta lnea a lnea. Siempre la traduccin antecede inmediatamente a la ejecucin, de forma que: Intrpretes Las optimizaciones slo se realizan dentro del contexto de cada sentencia, no contemplndose el programa o sus estructuras en conjunto. Si por ejemplo, en pseudocdigo, la instruccin que debe traducir es: A 2.0 * B + C, al traducirse, antes de ejecutarse, podramos obtener: aux1 conv_a_real(2) aux2 B * aux1 aux3 C + aux2 A aux3 Pero se podran realizar los mismos clculos usando slo dos instrucciones: aux1 B * 2.0 A aux1 + C Si una sentencia forma parte de un bucle, se traduce tantas veces como tenga que ejecutarse el bucle, y no una sola vez como ocurrira en un compilador. . Ventajas de los intrpretes Su principal ventaja es que permiten una depuracin fcil. Muestran una mayor interactividad con el cdigo en tiempo de desarrollo. En algunos lenguajes (Smalltalk, Prolog, LISP) est permitido, y es frecuente, aadir cdigo segn se ejecuta otro cdigo. Esta caracterstica solamente es posible implementarla en un intrprete. Puede ser interrumpido con facilidad. Puede ser rpidamente modificado y ejecutado nuevamente. Un Intrprete necesita menos memoria que un compilador. Facilita la bsqueda de errores. En algunos lenguajes est permitido aadir cdigo segn se ejecuta otro cdigo. CompiladoresMenor consumo de memoria. . Desventajas de los intrpretes Lentitud de ejecucin: al ejecutar a la vez que se traduce no se puede aplicar un alto grado de optimizacin. Cada instruccin debe ser traducida a cdigo mquina tantas veces como sea ejecutada. Durante la ejecucin el intrprete debe residir en memoria ya que no genera cdigo objeto. Tamao del programa que exige aadir el intrprete al programa propiamente dicho. Por estas razones, los lenguajes intrpretes resultan ms pedaggicos para aprender a programar, ya que el alumno puede detectar y corregir ms fcilmente sus errores. Existen lenguajes cuyos traductores se idearon como intrpretes (BASIC, LISP,...) y otros como compiladores (FORTRAN, C, ADA...). No obstante, en la actualidad, para un lenguaje dado pueden existir tanto compiladores como intrpretes. . Compilador Por el contrario, se dice que un lenguaje est compilado cuando el programa fuente se traduce de dicho lenguaje al cdigo mquina correspondiente y el resultado se almacena de manera permanente en un archivo. La compilacin es un proceso complejo que suele requerir una mayor cantidad de tiempo que la propia ejecucin del programa. En cualquiera de las fases de anlisis el compilador puede dar mensajes sobre los errores que detecta en el programa fuente, cancelando en ocasiones la compilacin para que el usuario realice en el fichero las correcciones oportunas. Existen compiladores que permiten al usuario omitir o reducir las fases de optimizacin, disminuyndose as el tiempo global de la compilacin. Un ejemplo tpico de lenguaje de este tipo el C++, ampliamente usado en el desarrollo de programas. El siguiente esquema muestra cmo trabaja un compilador: La traduccin por un compilador (la compilacin) consta de dos etapas fundamentales, que a veces no estn claramente diferenciadas a lo largo del proceso: la etapa de anlisis del programa fuente y la etapa de sntesis del programa objeto; es decir, qu pretende realizar el programa fuente, y cmo realizarlo en el programa objeto. A su vez, cada una de estas etapas conlleva la realizacin de varias fases, en cada una de las cuales se recorre o analiza completamente el programa fuente. Las fases del proceso de compilacin son las siguientes: a) Anlisis lexicogrfico.- Consiste en descomponer el programa fuente en sus elementos. El analizador lxico (tambin denominado escner) asla los smbolos, identifica su tipo y almacena en las tablas de smbolos la informacin del smbolo que pueda ser necesaria durante el proceso de traduccin. La representacin obtenida en esta fase contiene la misma informacin que el programa fuente, pero de forma ms compacta. b) Anlisis sintctico.- La sintaxis de los lenguajes de programacin se especifica mediante un conjunto de reglas de lenguaje. Esta fase deber comprobar si un programa es sintcticamente correcto, es decir, si sus estructuras (expresiones, sentencias o asignaciones) estn construidas de acuerdo con las reglas del lenguaje. c) Anlisis semntico.- La semntica de un lenguaje de programacin define el significado dado a las distintas construcciones sintcticas. En los lenguajes de programacin, el significado est ligado a la estructura sintctica de las sentencias. En el proceso de traduccin, el significado de las sentencias se obtiene de la identificacin sintctica de las construcciones sintcticas y de la informacin almacenada en la tabla de smbolos. d) Generacin de cdigo intermedio.- Si no se han producido errores en algunas de las etapas anteriores, este mdulo realiza la traduccin a un cdigo interno propio del compilador, denominado cdigo intermedio, con el fin de permitir el transporte del lenguaje a otras computadoras. e) Optimizaciones.- En la fase de optimizacin se mejora el cdigo intermedio generado anteriormente, analizando el programa de forma global. Un ejemplo de optimizacin sera encontrar en el cdigo la inicializacin de una constante dentro de un bucle, con lo que esta inicializacin se producira tantas veces como se repitiese el bucle. El optimizador sacara esta inicializacin de la constante fuera del bucle para que slo se realizase una vez. f) Generacin de cdigo objeto.- En esta etapa se genera el cdigo objeto final. En algunos casos, este cdigo es directamente ejecutable, y en otros necesita algunos pasos previos a la ejecucin (ensamblado, encuadernacin y carga). Para un determinado lenguaje de alto nivel, el proceso de anlisis y construccin de cdigo intermedio se generaliza y es durante la generacin del cdigo objeto que se particulariza para cada tipo de microprocesador. . Tipos de compiladores Una sola pasada: examina el cdigo fuente una vez, generando el cdigo o programa objeto. Pasadas mltiples: requieren pasos intermedios para producir un cdigo en otro lenguaje, y una pasada final para producir y optimizar el cdigo producido durante los pasos anteriores. Optimacin: lee un cdigo fuente, lo analiza y descubre errores potenciales sin ejecutar el programa. Compiladores incrementales: generan un cdigo objeto instruccin por instruccin (en vez de hacerlo para todo el programa) cuando el usuario teclea cada orden individual. El otro tipo de compiladores requiere que todos los enunciados o instrucciones se compilen conjuntamente. Ensamblador: el lenguaje fuente es el lenguaje ensamblador y posee una estructura sencilla. Compilador cruzado: se genera cdigo en lenguaje objeto para una mquina diferente de la que se est utilizando para compilar. Es perfectamente normal construir un compilador de Pascal que genere cdigo para MS-DOS y que el compilador funcione en Linux y se haya escrito en C++. Compilador con montador: compila distintos mdulos de forma independiente y es capaz de enlazarlos posteriormente. Autocompilador: compilador que est escrito en el mismo lenguaje que va a compilar. Evidentemente, no se puede ejecutar la primera vez. Sirve para hacer ampliaciones al lenguaje, mejorar el cdigo generado, etc. Metacompilador: es sinnimo de compilador de compiladores y se refiere a un programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje. El desarrollo de los metacompiladores se encuentra con la dificultad de unir la generacin de cdigo con la parte de anlisis. Descompilador: es un programa que acepta como entrada cdigo mquina y lo traduce a un lenguaje de alto nivel, realizando el proceso inverso a la compilacin. Otra modalidad de clasificacin de los lenguajes de programacin es segn su nivel de abstraccin; esto produce dos grandes grupos, lenguajes de alto nivel y lenguajes de bajo nivel. El grupo de bajo nivel, como su nombre indica, incluye los relacionados ntimamente con la arquitectura de la mquina, por lo que generalmente son especficos de un microprocesador (CPU) y no son vlidos para otra diferente. Dentro de estos grupos est el lenguaje mquina, que se utiliza al programar en el mbito de la CPU, usando ceros y unos, lenguaje muy difcil y propenso a errores. El otro ms conocido dentro de esta categora es el Ensamblador, que utiliza nemnicos, por ejemplo ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina); esto evita las secuencias de ceros y unos. Aun as, es bastante complicado y no es recomendable para usuarios sin amplios conocimientos. Un ejemplo de un programa en lenguaje ensamblador para CPU Intel, que muestra en pantalla el texto "Universidad de Murcia", es el siguiente: .model tiny .data message db 'Universidad de Murcia' .code org 100h start: mov ah,9 mov dx,offset message int 21h ret end start Mientras que en un lenguaje de alto nivel, como Pascal, se escribira de forma muy sencilla: program UniMurcia; begin writeln('Universidad de Murcia'); end. Entonces, un lenguaje de bajo nivel est orientado hacia una determinada mquina o clases de computadoras, es decir es especfico de un tipo concreto de CPU. Por su parte, un lenguaje de alto nivel es independiente del microprocesador de la computadora que lo soporta, por lo que un programa escrito en lenguaje C++, por ejemplo, se puede compilar sin modificar para cualquier mquina y en principio funcionar sin ningn problema. Esto implica dos ventajas principales: una, la persona que desarrolla los programas no requiere tener conocimientos especficos acerca de la computadora en que se ejecutar el programa, y segunda, los programas son portables, es decir, el mismo programa, en teora, ha de funcionar en distintos tipos de computadoras. El desarrollo de los lenguajes de alto nivel comenz a mediados de los aos cincuenta con la creacin de lenguajes como el COBOL, Fortran y ALGOL60. Posteriormente surgieron otros, aunque sobreviven muy pocos. Algunos lenguajes de alto nivel, son: JAVA BASIC FORTRAN MODULA 2 Pascal ADA C C ++ LOGO LISP PROLOG Ruby Dart Una tercera forma de clasificar los lenguajes de programacin es segn el paradigma de programacin: declarativo, imperativo, orientado a objetos y funcional. Los imperativos establecen cmo debe ejecutarse una tarea, fraccionndola en procedimientos que especifican cada una de las tareas. Por ejemplo C, Fortran y Pascal. Por el contrario los declarativos establecen estructuras de datos y las relaciones entre ellos que son significativas para ejecutar una tarea determinada, al tiempo que indican cual es el objetivo de dicha tarea. Un lenguaje tpico de este grupo es Prolog. El orientado a objetos usa objetos y sus interacciones para disear aplicaciones y programas de computadora. Est basado en varias tcnicas, incluyendo herencia, modularidad, polimorfismo y encapsulacin; Smalltalk es el lenguaje ms representativo de este tipo. Funcional es un paradigma de programacin declarativo basado en la utilizacin de funciones matemticas; el lenguaje ms representativo es LISP (procesado de listas). Aunque puede seleccionarse la forma pura de estos paradigmas a la hora de programar, en la prctica es habitual que se mezclen, dando lugar a la programacin multiparadigma. . Administracin de archivos Un archivo es una coleccin de registros que se encuentran relacionados entre s, diseados para manejar grandes cantidades de datos. Todos los programas computacionales usan estructuras de datos de alguna clase, y muchos otros usan archivos. Aquellos que disean y desarrollan software para aplicaciones comerciales y tecnolgicas, as como quienes disean y desarrollan sistemas computacionales, es decir, sistemas operativos, compiladores, sistemas de administracin de bases de datos y sistemas de comunicacin entre procesadores, requieren de conocimientos de archivos y estructuras de datos. Las estructuras de datos y la organizacin de archivos son los elementos principales que determinan el rendimiento de los programas. Cualquier aplicacin encargada de la manipulacin de ficheros en dispositivos de almacenamiento se denomina administrador de archivos. Estos programas hacen ms fcil el manejo de los archivos en discos duros, discos flexibles, discos pticos, etc. Las funciones bsicas que permite un administrador de archivos son: copiar, pegar, mover, crear directorios, borrar, renombrar y buscar. En Windows, la aplicacin administradora de archivos es llamada explorador de Windows. . Jerarqua de datos Una base de datos jerrquica almacena la informacin en una estructura jerrquica que enlaza los registros en forma de estructura de rbol (similar a un rbol visto al revs) en donde un nodo-padre de informacin puede tener varios nodos-hijo. Esta relacin jerrquica no es estrictamente obligatoria, de manera que pueden establecerse relaciones entre nodos-hermanos. En este caso, la estructura en forma de rbol se convierte en una estructura en forma de grafo dirigido. Esta variante se denomina base de datos de red. . Tipos de archivos Existen bsicamente dos tipos de archivos: los archivos ASCII y los archivos binarios. El vocablo ASCII es un acrnimo para American Standard Code for Information Interchange. Es un estndar que asigna un valor numrico a cada carcter, con lo que se pueden representar los documentos llamados de texto plano, es decir, los que son legibles por seres humanos. Los archivos binarios son todos los dems. Como ejemplos tenemos: . Archivos binarios De imagen: .jpg, .gif, .tiff, .bmp (Portable bitmap), .wmf (Windows Meta File), .png (Portable Network Graphics), .pcx (Paintbrush), entre muchos otros De video: .mpg, .mov, .avi, .gif Comprimidos o empaquetados: .zip, .Z, .gz, .tar, .lhz Ejecutables o compilados: .exe, .com, .cgi, .o, .a Procesadores de palabras: .doc . Archivos ASCII Archivos fuente: .f, .c, .p Formatos de texto: .tex, .txt, .html Formatos de intercambio: .rtf, .ps, .uu Dentro de los archivos ASCII de uso comn por los programas de bioinformtica estn los siguientes: De secuencias: .seq De secuencias mltiples: .aln, .msf (Multiple Sequence Format, secuencias alineadas), .rsf (Rich Sequence Format, estos archivos pueden incluir una o ms secuencias relacionadas o no). Todos estos archivos se caracterizan por tener ciertos formatos distintivos que hacen posible su reconocimiento por parte de los programas de manipulacin y anlisis de secuencias como el PHYLIP, el GCG, entre muchos otros. . Interfaz de usuario Es el medio con que el usuario se comunica con una mquina, un equipo o una computadora. Comprende todos los puntos de contacto entre el usuario y el equipo, y suelen ser fciles de entender y de accionar. Las interfaces bsicas de usuario son aquellas que incluyen elementos como mens, ventanas, teclado, ratn, beeps y algunos otros sonidos que la computadora hace. En general, son todos los canales mediante los que se permiten la comunicacin entre el ser humano y la computadora. La mejor interaccin humano-mquina se realiza a travs de una interfaz que brinde comodidad y eficiencia. . Tipos de interfaces de usuario Dentro de las interfaces de usuario se puede distinguir los siguientes grupos: A) Una interfaz de hardware: a nivel de los dispositivos utilizados para ingresar, procesar y entregar los datos: teclado, ratn y pantalla. B) Una interfaz de software: destinada a entregar informacin acerca de los procesos y herramientas de control, a travs de lo que el usuario observa habitualmente en la pantalla. C) Una interfaz de Software-Hardware: proporciona un puente entre la mquina y las personas, permitiendo a la maquina entender la instruccin y al hombre, entender el cdigo binario traducido a informacin legible. . El Sistema de archivos visto por el usuario Los sistemas de archivos estructuran la informacin guardada en una unidad de almacenamiento que luego ser representada, ya sea textual o grficamente, utilizando un gestor de archivos. La mayora de los sistemas operativos poseen su propio sistema de archivos. Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamao, a veces llamados sectores, usualmente de 512 bytes de longitud. El software del sistema de archivos es responsable de la organizacin de estos sectores en archivos y directorios, y mantiene un registro de qu sectores pertenecen a qu archivos y cules no han sido utilizados. En la prctica, un sistema de archivos tambin puede ser utilizado para acceder a datos generados dinmicamente, como los recibidos a travs de una conexin de red (sin la intervencin de un dispositivo de almacenamiento). Los sistemas de archivos tradicionales proveen mtodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de mtodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix) . Diseo del sistema de archivos El sistema de archivos es un componente importante de un SO y suele contener: . Mtodos de acceso relacionados con la manera de acceder a los datos almacenados en archivos. . Administracin de archivos, referida a la provisin de mecanismos para que los archivos sean almacenados, referenciados, compartidos y asegurados. . Administracin del almacenamiento auxiliar para la asignacin de espacio a los archivos en los dispositivos de almacenamiento secundario. . Integridad del archivo, para garantizar la integridad de la informacin del archivo. El sistema de archivos est relacionado especialmente con la administracin del espacio de almacenamiento secundario, fundamentalmente con el almacenamiento de disco. Una forma de organizacin de un sistema de archivos puede ser la siguiente: . Se utiliza una raz para indicar en qu parte del disco comienza el directorio raz. . El directorio raz apunta a los directorios de usuarios. . Un directorio de usuario contiene una entrada para cada uno de los archivos del usuario. Cada entrada de archivo apunta al lugar del disco donde est almacenado el archivo referenciado. Los nombres de archivos solo necesitan ser nicos dentro de un directorio de usuario dado. El nombre del sistema para un archivo dado debe ser nico para el sistema de archivos. En sistemas de archivo jerrquicos, el nombre del sistema para un archivo suele estar formado como el nombre de la trayectoria del directorio raz al archivo. . Seguridad en archivos Los sistemas de archivos generalmente contienen informacin muy valiosa para sus usuarios, razn por la que los sistemas de archivos deben protegerla. . El ambiente de seguridad Se entiende por seguridad a los problemas generales relativos a la garanta de que los archivos no sean ledos o modificados por personal no autorizado; esto incluye aspectos tcnicos, de administracin, legales y polticos. Se consideraran mecanismos de proteccin a los mecanismos especficos del sistema operativo utilizados para resguardar la informacin de la computadora. Dos de las facetas de seguridad ms importantes son: La prdida de datos Los intrusos Algunas de las causas ms comunes de la prdida de datos son: I. Actos y hechos diversos, como incendios, inundaciones, terremotos, guerras, revoluciones, roedores, etc. II. Errores de hardware o de software, como fallas en la CPU, discos o cintas ilegibles, errores de telecomunicacin, errores en los programas, etc. III. Errores humanos, como entrada incorrecta de datos, mal montaje de cintas o discos, ejecucin incorrecta de programas, prdida de cintas o discos, etc. La mayora de estas causas se pueden prevenir con la creacin de respaldos (backups) adecuados, los cuales debera almacenarse en un lugar distinto al de los datos originales. Respecto del problema de los intrusos, se los puede clasificar como: a. Pasivos: solo desean leer archivos que no estn autorizados a leer b. Activos: desean hacer cambios no autorizados a los datos Para disear un sistema seguro contra intrusos hay que tener en cuenta el tipo de intrusos contra los que se desea tener proteccin. Hay que ser consciente de que la cantidad de esfuerzo que se pone en la seguridad y la proteccin depende claramente de quin se piensa sea el enemigo. Algunos tipos de intrusos son los siguientes: . Curiosidad casual de usuarios no tcnicos . Conocidos (tcnicamente capacitados) husmeando . Intentos deliberados por hacer dinero . Espionaje comercial o militar Otro aspecto del problema de la seguridad es la primaca: . Proteccin de las personas respecto del mal uso de la informacin en contra de uno mismo . Implica aspectos legales y morales Tambin debe sealarse la posibilidad del ataque del caballo de Troya: . Modificar un programa normal para que haga cosas adversas adems de su funcin usual . Mecanismos de proteccin de archivos Muchos objetos del sistema necesitan proteccin, tales como la CPU, segmentos de memoria, unidades de disco, terminales, impresoras, procesos, archivos, bases de datos, etc. Cada objeto se referencia por un nombre y tiene habilitadas un conjunto de operaciones sobre l. Un dominio es un conjunto de parejas (objeto, derechos). Cada pareja determina: . Un objeto . Un subconjunto de las operaciones que se pueden llevar a cabo en l Un derecho es el permiso para realizar alguna de las operaciones. Es posible que un objeto se encuentre en varios dominios con distintos derechos en cada dominio. Un proceso se ejecuta en alguno de los dominios de proteccin: Existe una coleccin de objetos a los que puede tener acceso Cada objeto tiene cierto conjunto de derechos Los procesos pueden alternar entre los dominios durante la ejecucin. Una llamada al S.O. provoca una alternancia de dominio. En algunos S.O., a los dominios se llaman anillos. Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio es mediante una matriz: . Los renglones son los dominios . Las columnas son los objetos . Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese dominio, como leer, escribir o ejecutar . Implementacin del sistema de archivos El aspecto clave de la implantacin del almacenamiento de archivos es el registro de los bloques asociados a cada archivo. Algunos de los mtodos utilizados son los siguientes: . Asignacin contigua o adyacente Los archivos son asignados a reas contiguas de almacenamiento secundario. Las principales ventajas son: Facilidad de implantacin, ya que solo se precisa el nmero del bloque de inicio para localizar un archivo Rendimiento excelente respecto de la e/s Los principales defectos son: Se debe conocer el tamao mximo del archivo al crearlo Produce una gran fragmentacin de los discos . Asignacin no contigua Son esquemas de almacenamiento ms dinmicos, destacndose los siguientes: Asignacin encadenada orientada hacia el sector: . El disco se considera compuesto de sectores individuales . Los archivos constan de varios sectores que pueden estar dispersos por todo el disco . Los sectores que pertenecen a un archivo comn contienen apuntadores de uno a otro formando una lista encadenada . Una lista de espacio libre contiene entradas para todos los sectores libres del disco . Las ampliaciones o reducciones en el tamao de los archivos se resuelven actualizando la lista de espacio libre y no hay necesidad de condensacin Las principales desventajas son: . Debido a la posible dispersin en el disco, la recuperacin de registros lgicamente contiguos puede significar largas bsquedas. . El mantenimiento de la estructura de listas encadenadas significa una sobrecarga en tiempo de ejecucin. . Los apuntadores de la estructura de lista consumen espacio en disco. Asignacin por bloques . Es ms eficiente y reduce la sobrecarga en ejecucin. . Es una mezcla de los mtodos de asignacin contigua y no contigua. . Se asignan bloques de sectores contiguos en vez de sectores individuales. . El sistema trata de asignar nuevos bloques a un archivo eligiendo bloques libres lo ms prximos posible a los bloques del archivo existentes. Las formas ms comunes de implementar la asignacin por bloques son: . Encadenamiento de bloques . Encadenamiento de bloques de ndice . Transformacin de archivos orientada hacia bloques Encadenamiento de bloques o lista ligada . Las entradas en el directorio de usuarios apuntan al primer bloque de cada archivo. . Cada uno de los bloques de longitud fija que forman un archivo contiene dos partes: . Un bloque de datos. . Un apuntador al bloque siguiente. . Cada bloque contiene varios sectores. . Frecuentemente el tamao de un bloque se corresponde con el de una pista completa del disco. Localizar un registro determinado requiere: . Buscar en la cadena de bloques hasta encontrar el bloque apropiado. . Buscar en el bloque hasta encontrar el registro. . El examen de la cadena desde el principio puede ser lento ya que debe realizarse de bloque en bloque, y pueden estar dispersos por todo el disco. . La insercin y el retiro son inmediatos, dado que se deben modificar los apuntadores del bloque precedente. . Llamadas al sistema Las llamadas al sistema proveen una interfaz entre los procesos y el sistema operativo. Por lo general, estas llamadas se encuentran disponibles como instrucciones en lenguaje ensamblable. En algunos sistemas podemos realizar llamadas al sistema desde programas en lenguajes de alto nivel, en cuyo caso se asemejan a llamadas a funciones o procedimientos. Es el mecanismo usado por una aplicacin para solicitar un servicio al sistema operativo. Las llamadas al sistema comnmente usan una instruccin especial de la CPU que causa que el procesador transfiera el control a un cdigo privilegiado, previamente especificado por el mismo cdigo. Esto permite al cdigo privilegiado especificar donde va a ser conectado, as como el estado del procesador. Cuando una llamada al sistema es invocada, la ejecucin del programa que invoca es interrumpida y sus datos son guardados, normalmente en su PCB, para poder continuar ejecutndose luego. El procesador entonces comienza a ejecutar las instrucciones de cdigo de alto nivel de privilegio, para realizar la tarea requerida. Cuando esta finaliza, se retorna al proceso original, y contina su ejecucin. El retorno al proceso demandante no obligatoriamente es inmediato, depende del tiempo de ejecucin de la llamada al sistema y del algoritmo de planificacin de CPU. . Funciones de la interfaz Control de las funciones manipulables del equipo Encendido y apagado Herramientas de desarrollo de aplicaciones Manipulacin de archivos y directorios Comunicacin con otros sistemas Informacin de estado Configuracin de la propia interfaz y entorno Intercambio de datos entre aplicaciones Control de acceso . Comandos de control Secuencia de comandos de control . Comprobar si alguien est utilizando activamente el producto y, si es as, impedir la reinstalacin, la actualizacin o la eliminacin. . Asegurarse de que el sistema host local es compatible con el software (las secuencias de comandos pueden realizar comprobaciones de compatibilidad ms a fondo que las aplicadas por los atributos name del producto). . Eliminar archivos anticuados o versiones del producto instaladas con anterioridad. . Crear enlaces con los archivos o copias adicionales de los mismos despus de instalarlos. . Cules son las cinco actividades principales de un sistema operativo con respecto a la administracin de archivos? Los sistemas operativos realizan la funcin crucial de s