Académique Documents
Professionnel Documents
Culture Documents
[ARQUITECTURA DE ORDENADORES]
Software
1.
SOFTWARE DE UN ORDENADOR
INTRODUCCIN
El trmino software fue utilizado y relacionado con la informtica por primera vez por John W. Tukey en 1957. En las ciencias de la computacin y la ingeniera del software, el software es toda la informacin procesada por los sistemas informticos: programas y datos. Sin el software el ordenador sera un conjunto de medios sin utilizar. Al cargar los programas en un ordenador, la mquina actuar como si recibiera una educacin instantnea; de pronto "sabe" cmo pensar y cmo operar. El hardware por s solo no puede hacer nada, pues es necesario que exista el software para indicarle las instrucciones a realizar. El software se puede clasificar segn distintos parmetros y puntos de vista. En este tema veremos la clasificacin segn la utilidad del software o servicio prestado y segn el tipo de licencia que posee o mtodo de distribucin en el mercado.
Software de un ordenador
o Compiladores. Se denomina compilador al software que tiene como funcin traducir un lenguaje de programacin escrito en cdigo fuente a otro lenguaje que pueda ser interpretado y ejecutado por el sistema operativo. Este proceso de traduccin se conoce como compilacin. El compilador permite traducir cdigo fuente de un programa escrito en un lenguaje de alto nivel a otro de nivel inferior y que comprende directamente el ordenador denominado cdigo objeto que da lugar al cdigo ejecutable. De esta manera el programador puede disear un programa en un lenguaje mucho ms cercano al utilizado por el ser humano, para luego compilarlo a un lenguaje que comprende directamente el ordenador.
o Intrpretes. Un interprete es un software capaz de analizar y ejecutar otros programas. Los intrpretes se diferencian de los compiladores en que mientras estos traducen un programa creado por un programador (cdigo fuente) a un cdigo objeto, los intrpretes realizan la traduccin mientras el fichero est ejecutndose y normalmente no crean un fichero objeto. o Enlazadores. Los programas enlazadores o linkers renen los ficheros con el cdigo objeto necesarios para ejecutar un programa junto con las libreras aadidas que puedan necesitar y crea un fichero ejecutable o una biblioteca. En el caso de los programas enlazados dinmicamente, el enlace entre el programa ejecutable y las bibliotecas se realiza en tiempo de carga o ejecucin del programa. o Depuradores. Un depurador (debugger) es un programa que permite depurar o identificar los errores de los programas antes de ser compilados o interpretados para que su ejecucin sea correcta. o Entornos de desarrollo integrado. Tambin denominados IDE (Integrated Development Environment) son programas que renen todas las herramientas necesarias para crear un programa informtico. Un IDE es un entorno de programacin que ha sido empaquetado como un Software de un ordenador Arquitectura de Ordenadores
programa de aplicacin, es decir, consiste en un editor de cdigo, un compilador, un depurador y un constructor de interfaz grfica (GUI). Es posible que un mismo IDE pueda funcionar con varios lenguajes de programacin. Este es el caso de Visual Studio, que permite programas en C# y Visual Basic. SOFTWARE DE SISTEMA: Est formado por todos aquellos programas cuya finalidad es servir al desarrollo o al funcionamiento de otros programas. Estos programas se caracterizan por estar muy prximos al hardware y tienen como objetivo desvincular al usuario y al programador de los detalles de internos de funcionamiento del ordenador. El software del sistema le aporta al usuario herramientas que incluye, entre otras: o Sistema operativo: es el software imprescindible del ordenador, sin el no podra funcionar ningn equipo informtico, tiene la mxima responsabilidad en el buen funcionamiento del hardware y software del ordenador. Todos los otros tipos de software necesitan de un sistema operativo para poder ejecutarse. o Utilidades: ejecutan tareas relacionadas con el mantenimiento del rendimiento del ordenador. Algunos estn incluidos con el software del sistema operativo: compresores, antivirus, programas de copias de seguridad, etc. o Controladores de dispositivos: Tambin llamados dirvers, son programas que permiten al S.O. interactuar con un perifrico haciendo una abstraccin del hardware y proporcionando una interfaz para usarlo. Se puede decir que hacen la funcin de manuales que le indican al sistema operativo como debe controlar y comunicarse con un dispositivo en particular. o Herramientas de diagnstico: Una herramienta de diagnstico es un software que permite monitorear y en algunos casos controlar la funcionalidad del hardware como: ordenadores, servidores y perifricos segn el tipo y sus funciones. El software permite monitorizar la temperatura, el rendimiento, la transferencia de datos, etc. o Herramientas de correccin y optimizacin: Sin herramientas que permiten corregir errores u optimizar el funcionamiento de algn elemento hardware, por ejemplo, las utilidades para desfragmentar discos. o Servidores: software que provee de servicios a otros usuarios u ordenadores, por ejemplo, servidores de red, servidores web, servidores ftp, etc. Los sistemas que utilizan los servicios de un servidor se denominan clientes. El modelo cliente-servidor no implica necesariamente tener dos ordenadores ya que un proceso cliente puede solicitar algo como una impresin a un proceso de servidor en un mismo ordenador, por ello, un equipo puede ser a la vez cliente y servidor.
El grfico que se muestra a continuacin muestra la cercana al hardware de los distintos tipos de software analizados:
Software de un ordenador
Arquitectura de Ordenadores
Software de un ordenador
Software con copyleft: El SOFTWARE CON COPYLEFT es un software libre cuyos trminos de distribucin no permiten a los redistribuidores agregar ninguna restriccin adicional cuando lo redistribuyen o modifican, o sea, la versin modificada debe ser tambin libre. Freeware. El trmino FREEWARE no posee una definicin ampliamente aceptada, pero es utilizada para programas que permiten la redistribucin pero no la modificacin, y que incluyen su cdigo fuente. Shareware. SHAREWARE es el software disponible con el permiso para que sea redistribuido, pero su utilizacin implica el pago. Generalmente, el cdigo fuente no se encuentra disponible, y por lo tanto es imposible realizar modificaciones. Software Propietario. El SOFTWARE PROPIETARIO es aquel cuya copia, redistribucin o modificacin estn, en alguna medida, prohibidos por su propietario. Para usar, copiar o redistribuir, se debe solicitar permiso al propietario o pagar. Software Comercial. El SOFTWARE COMERCIAL es el software desarrollado por una empresa con el objetivo de lucrar con su utilizacin. Ntese que "comercial" y "propietario" no son lo mismo. La mayor parte del software comercial es propietario, pero existe software libre que es comercial, y existe software no-libre que no es comercial. Open source software (software de cdigo abierto, tambin llamado de fuentes abiertas). CDIGO ABIERTO es el trmino con el que se conoce al software distribuido y desarrollado libremente. El cdigo abierto tiene un punto de vista ms orientado a los beneficios prcticos de compartir el cdigo que a las cuestiones morales y/o filosficas las cuales destacan en el llamado software libre. Actualmente una serie de administraciones pblicas han mostrado su apoyo al Software libre, migrando total o parcialmente su servidores y sistemas de escritorio. (por ejemplo Espaa, Brasil o Alemania).
En Espaa distintas administraciones han desarrollado sus propias distribuciones Open Source no slo para uso administrativo sino tambin acadmico. As tenemos LinEx en Extremadura, Augustux en Aragn, GuadaLinex en Andaluca, LliureX en La Comunidad Valenciana, Molinux en Castilla-La Mancha, MAX en La Comunidad de Madrid, Linkat en Catalua, Trisquel en Galicia, LinuxGlobal en Cantabria, EHUX en el Pas Vasco, mEDUXa en la comunidad Canaria, Bardinux en la Provincia de Santa Cruz de Tenerife en Canarias como proyecto de la ULL, Silu en la Provincia de Las Palmas en Canarias como proyecto de la ULPGC y Melinux en la Ciudad Autnoma de Melilla. Algunas de estas distribuciones estn basadas en Debian, otras en Ubuntu y otras en OpenSuSE. As como diversas distribuciones mantenidas por universidades pblicas.
Software de un ordenador
Arquitectura de Ordenadores
Software de un ordenador
Arquitectura de Ordenadores
2.
DEFINICIN
SISTEMAS OPERATIVOS
La evolucin continua de los ordenadores supuso, ya desde las primeras generaciones de los mismos, un aumento de la complejidad en la lgica de su funcionamiento. Con el fin de conseguir un uso ms racional y un mejor aprovechamiento de la capacidad de los ordenadores, se desarrollaron una serie de programas, intermediarios entre hombre y mquina, que constituyen el software funcional o sistema operativo (SO) del ordenador. Existen distintas definiciones de SO, aqu presentamos la de Auerbach EDO Reports: Un sistema operativo es una coleccin ordenada de programas y procedimientos que acompaan al ordenador y que, normalmente, realizan todas o algunas de las siguientes funciones: Planificacin, carga, iniciacin y supervisin de la ejecucin de programas. Gestin de memoria interna, de las unidades de e/s y de otros dispositivos. Inicio y control de todas las operaciones de e/s Coordinacin de las comunicaciones entre el operador/usuario y sistema. Mantenimiento de un registro de estado con las operaciones, y situacin del sistema. Control de las operaciones en los trabajos por lotes (batch), de multiprogramacin, tiempo compartido (time sharing) y multiproceso.
Resumiendo, un sistema operativo es un conjunto de programas que gestionan los recursos del sistema, optimizan su uso y resuelven conflictos. Generalmente, se entiende por sistema operativo, al conjunto de dos grupos de programas: los programas de control y los programas de proceso. Los programas de control son aquellos que, de forma transparente para el operador/usuario, facilitan, automatizan y mejoran el rendimiento de la explotacin de los ordenadores, tales como los que se encargan de encadenar los trabajos y programas, asignacin de recursos, etc. Los progamas de proceso son aquellos que facilitan el trabajo de los usuarios, tales como ejecucin de un programa, manejo de ficheros, compiladores, editores, etc.
haba que perforar las fichas de nuevo e introducirlas otra vez en el ordenador, este proceso se repeta hasta que no hubiese ningn error. La CPU se ocupaba de controlar las entradas y salidas, mientras se produca una operacin de este tipo no poda ocuparse de otras cosas. En la 2 generacin, se trabaja en batch por lotes. Aparecen los primeros sistemas operativos. Este sistema introduce por primera vez el uso de cinta magntica y los miniordenadores, lo que permite que un mini pase las fichas a una cinta magntica y los ordenadores tomen los datos y programas de la cinta, y de aqu, otro mini saca los resultados en impresora o fichas. Solo ejecuta un programa de cada vez monoprogramacin. Se consigue optimizar un poco la CPU ya que mientras la CPU est leyendo una cinta el mini puede estar pasando los datos a otra. En la 3 generacin se generaliza el uso de los sistemas operativos y aumentan las prestaciones de stos. Entre las funciones ms innovadoras de los sistemas operativos estn: la multiprogramacin, entrada de trabajos en tiempo compartido y multiproceso. Estos mecanismos de reparto de los trabajos fueron posible por la aparicin de los canales. Los canales son coprocesadores 1 que tiene la capacidad de ejecutar operaciones de e/s, gracias a este mecanismo el procesador puede seguir ejecutando instrucciones mientras el canal se ocupa de las operaciones de e/s. Desde la 4 generacin a la actualidad se le ha dado ms importancia a la productividad del usuario que al rendimiento de la mquina. Adquiere ms importancia toda la funcionalidad relacionada con la conexin a red, tanto locales (LAN) como de largo alcance (WAN). En concreto, la disminucin del coste del hardware hace que se difunda el proceso distribuido, en contra, de la tendencia centralizadora anterior. La difusin de las ordenadores personales ha trado una humanizacin en los sistemas informticos. Aparecen los sistemas amistosos o ergonmicos, en los que se evita que el usuario tenga que aprenderse complejos lenguajes de control, sustituyndose stos por los sistemas con interfaz grfica, en los que la seleccin puede incluso hacerse mediante un manejador de cursor.
MONOPROGRAMACION
Los sistemas de monoprogramacin atienden un trabajo de cada vez. Cuando el programa entra en proceso se apodera de la CPU y de los dispositivos de entrada y salida hasta que termina. La monoprogramacin es el modo de trabajo en el que solamente un programa utiliza el procesador, siendo adems el nico existente en la
Un coprocesador es un microprocesador de un ordenador utilizado como suplemento de las funciones del procesador principal (la CPU)
1
Sistemas operativos
Arquitectura de Ordenadores
memoria principal, de tal forma que hasta que ste no termine su trabajo no ceder el control al siguiente programa que ser cargado en memoria, sustituyendo al anterior.
MULTIPROGRAMACIN
La multiprogramacin es el tratamiento simultneo por un sistema informtico de ms de un programa. Realmente, la multiprogracin es una distribucin del tiempo de la unidad central de proceso y la memoria entre varios usuarios conectados por terminales a un mismo computador, de esta operacin se ocupa el elemento del kernel del sistema operativo denominado dispatcher. La ejecucin de los programas puede no ser totalmente simultnea sino que el procesador divide su tiempo de ejecucin entre varios programas, no teniendo que finalizar la ejecucin de un programa para comenzar otro. La comparticin de la CPU por varios programas se produce de la siguiente manera: cuando se produce una interrupcin por una operacin de e/s en el programa que est en ejecucin, el sistema operativo almacena el trabajo en curso mientras el dispositivo de e/s no est disponible, entonces toma otro trabajo de la cola (donde estn esperando los programas) y se inicia su ejecucin en la CPU. El programa que estaba realizando la e/s se sita en la cola de espera de la CPU para ejecutarse cuando le corresponda. Ejemplo: Esto se ilustra en la figura siguiente, en ella P1, P2 y P3 representan programas que residen en la memoria principal. Los rectngulos representan si el recurso est siendo utilizado, salvo para P1, P2 y P3 que representan si el programa ocupa la CPU. Al principio se est ejecutando P1, cuando inicia una operacin de E/S con la impresora se cede la CPU a P2. P2 se ejecuta hasta que comienza una operacin con el scanner, entonces se cede la CPU a P3, ste se ejecuta hasta que utiliza la impresora, momento en el cual se reanuda P1. Obsrvese que en este ejemplo la CPU siempre est activa. No obstante, podra suceder que todos los programas que residen en la memoria inicien una operacin de E/S y en un momento dado todos estn esperando la finalizacin de su operacin, esto conllevara la no utilizacin de la CPU hasta que acabe la operacin de E/S de cualquiera de los programas.
Sistemas operativos
Arquitectura de Ordenadores
TIEMPO COMPARTIDO
El sistema de tiempo compartido (time sharing) divide el tiempo de la CPU (quantum) y la memoria en rodajas para cada usuario, de forma que cada uno de ellos recibe la impresin de disponer en exclusiva del ordenador, y establece con l una relacin de tipo conversacional (operacin y respuesta inmediata). En este sistema cada usuario dispone de un tiempo determinado de utilizacin de la CPU y la memoria, transcurrido ste, el sistema operativo pasa el control al programa de otro usuario, y al terminar con el ltimo de ellos, vuelve a tomar el programa del primero en el punto exacto donde lo dej, y as, sucesivamente. En condiciones normales, y dada la rapidez de la CPU, todo transcurre como si cada usuario fuese el nico interactuando con el computador.
MULTIPROCESO
Se define como multiproceso el tratamiento de los datos por ms de una CPU compartiendo memoria principal. Cada CPY puede dedicarse a ejecutar procesos independientes. Normalmente, los computadores estn interconectados por medio de canales de datos, que permiten a un computador leer/escribir en la memoria del otro, tambin puede darse el caso de que slo exista una memoria principal para todos los terminales. Puede utilizarse con multiprogramacin.
SISTEMAS DISTRIBUIDOS
La principal diferencia entre los sistemas de multiprocesadores y distribuidos, es que estos ltimos no comparten memoria. Cada procesador tiene su propia memoria local. Los procesadores se comunican entre si a travs de varias lneas de comunicacin, tales como lneas telefnicas o buses de alta velocidad. Dicho de otra forma, se trata de redes de computadores donde los procesadores pueden variar en tamao y funcin.
Sistemas operativos
Arquitectura de Ordenadores
10
TIEMPO REAL
El proceso en tiempo real, como su nombre indica, es un modo de explotacin en el que la respuesta se obtiene al momento. No es necesario esperar ms que lo que el procesador tarde en cargar la informacin, procesarla e imprimirla. En la actualidad la mayora de los ordenadores trabajan en tiempo real debido a que el hardware que los compone est fsicamente integrado en el mismo espacio y conectado directamente a la unidad central de proceso. De esta forma, la carga de informacin procesada se visualizar o imprimir dentro del mismo sistema informtico, ya que, los perifricos de salida tambin estn conectados a la CPU.
MEMORIA VIRTUAL
Este tipo de sistema asume las responsabilidades de la gestin de la MP. Pudiendo simular que el sistema tiene ms memoria de la que realmente dispone, bien utilizando memoria secundaria como memoria interna o bien gestionando la forma en que los datos y programas se almacenan en la memoria de tan manera que se pueda ejecutar un programa que no cabe fsicamente en la memoria, cargando ste por pginas o segmentos.
Sistemas operativos
11
Cada capa contiene un conjunto de funciones definidas para un objetivo comn. Una vez diseadas todas las capas se deben ensamblar los programas que forman los distintos niveles. Los denominados programas de control comprende las cinco primeras capas y las dos ltimas a los programas de proceso.
NCLEO
Se denomina tambin monitor o kernel. Es la parte del SO ms relacionado con el hardware del ordenador, cuyo objetivo es dar un entorno adecuado para la gestin de procesos. Es la primera capa del sistema operativo. Sus funciones son: Manejo de interrupciones. Planificacin y asignacin de recursos a los procesos. Mecanismo bsico de la comunicacin entre procesos. Comunicacin con los perifricos. Proteccin de memoria frente al uso de la misma por parte de distintos programas (multiprogramacin).
Planificacin de la CPU
Si un sistema est trabajando en monoprogamacin, la CPU ejecuta un trabajo detrs de otro con sus clculos y operaciones de e/s. Todo lo hace la CPU. Pero, si un sistema est trabajando en multiprogramacin, los perodos de e/s no los ejecuta la CPU sino los canales de e/s. Cuando se produce una operacin de e/s en un programa, toma el control de sta el canal, liberando al procesador de este trabajo, el cual pasa a ejecutar otro programa de la cola.
Sistemas operativos
Arquitectura de Ordenadores
12
Tanto la paginacin como la segmentacin utilizan memoria virtual, que consiste en el uso de memorias secundarias para contener el programa que se est ejecutando y, aunque ste no quepa en la memoria principal en su totalidad, se tomar de la memorias secundaria las pginas o segmentos que se necesiten ejecutar en un determinado momento hacia la memoria principal. De esta manera se pueden ejecutar trabajos que no caben en su totalidad en la MP y de esta manera la MP parece ms grande de lo que es.
Direccionamiento de perifricos
Los perifricos se direccionan a travs del bus de e/s. El bus va de la CPU hacia la e/s. El bus de e/s contiene: lneas de direccin: direcciona el perifrico de e/s a utilizar se llama bus de direcciones, lneas de datos: por ellas se envan los datos, se llama bus de datos y Arquitectura de Ordenadores
Sistemas operativos
13
Los datos a transferir desde/hacia la MP hacia/desde los perifricos se hace por medio de buffers que son reas de la memoria que sirven de almacenamiento intermedio entre la unidad de e/s y la MP. El tamao de cada buffer depende del perifrico que lo utiliza. As, un buffer de salida a impresora tendr, normalmente, la dimensin necesaria para almacenar una lnea; un buffer asignado a un monitor requerir un mnimo de memoria suficiente para almacenar una pgina de pantalla.
GESTIN DE FICHEROS
Esta capa comprende la gestin de ficheros, el soporte de entrada/salida y el sistema de gestin de datos. Para explicar el funcionamiento de esta capa tomaremos como ejemplo la gestin de ficheros en un disco magntico.
Sistema de ficheros
El sistema de ficheros es la parte del sistema operativo que se encarga de la administracin de archivos de almacenamiento secundario. El sistema de ficheros debe permitir: Crear directorios, cambiar de directorio... Crear, modificar y borrar archivos. Los usuarios deben poder compartir archivos. Proporciona accesos controlados a los archivos. Referenciar los fichero con nombres simblicos. Debe proporcionar al usuario una visin lgica de sus datos, no una visin fsica.
Un sistema de archivos se suele organizar en directorios y subdirectorios. Cada directorio o subdirectorio contiene la informacin bsica de los archivos y subdirectorios que hay en l (nombre, tipo de fichero, situacin, tamao, fecha y hora de creacin, etc.) En sistemas de archivos de estructura jerrquica, el nombre del sistema Sistemas operativos Arquitectura de Ordenadores
14
para un archivo suele estar formado como el nombre de todos los directorios por los que hay que pasar para llegar a l. Eliminar un fichero significa borrar su entrada en el directorio, es decir, no se borra el fichero fsicamente, sino que se elimina la capacidad de acceder a l. El espacio que ocupa el fichero borrado en el disco es considerado como vaco quedando libre para poder escribir sobre l. Antes de que esto ocurra es posible recuperar la informacin de un fichero borrado. Los sistemas de ficheros ms utilizados en la actualidad son: FAT (File Allocation Table): Son los sistemas de fichero utilizados en DOS y primeras versiones Windows. La caracterstica principal (a la que deben su nombre), es que el estado de cada unidad de informacin del dispositivo, est reflejado en una tabla. Esta tabla es muy importante porque es el ndice del contenido del disco. Cualquier error aqu puede convertir la unidad en inutilizable, razn por la que est duplicada. Ambas copias ocupan lugares consecutivos en los primeros sectores del disco. Actualmente se utilizan el sistema FAT 32 evolucionados que permiten administrar unidades lgicas de mayor tamao (2 TB) y optimiza mejor el espacio del disco. NTFS (New Technology File System) : Se utilice por primera vez en el sistema operative Windows NT. Este sistema permite la compresin y la restriccin de acceso de ficheros uno a uno y entre otras mejoras otras mejoras. La estructura central de este sistema es la MFT (Master File Table), de la que se guardan varias copias de su parte ms critica a fin de protegerla contra posibles corrupciones.
SENTENCIAS DE COMANDOS
Son rutinas que ejecutan operaciones que el usuario puede necesitar realizar en el sistema. Entre las operaciones que pueden ejecutar estn: Manipulacin de directorios (crear, borrar...). Manipulacin de ficheros (leer, escribir, borrar...). Manipulacin de dispositivo (rebobinar una cinta, obtencin de estado de dispositivo...). Conocer la ocupacin de recursos. Cancelar procesos y ponerlos en marcha. Etc.
APLICACIONES DE USUARIO
Son programas que pueden incluirse en el sistema operativo o no. Realizan funciones que el usuario puede necesitar en un determinado momento. A este grupo pertenecen los compiladores, intrpretes, ensambladores, editores...
Sistemas operativos
Arquitectura de Ordenadores
15
UNIX. UNIX es sistema operativo pensado para tecnologas de 16 o 32 bits, muy utilizado en servidores. 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.. Se utiliza mucho como servidor de Internet.
Windows 98, NT, XP, Vista. Los sistemas operativos de Microsoft son los de ms alta distribucin en la actualidad. La interfaz se basa en una interfaz grfica en la que los elementos con los que interacta el usuario o se presentan los resultados se basa en la utilizacin de elementos grficos como iconos, mens, botones, barras de desplazamiento, etc. Tras la primera versin (Windows 3.1) han ido apareciendo versiones mejoradas (95, 98, ME, XP, Vista, etc.). La ms reciente versin de Microsoft Windows es el Windows 7.
Mac OS. Sistema operativo de los ordenadores Apple Macintosh. Muy similar en cuanto apariencia a Windows. Utilizado principalmente por diseadores Arquitectura de Ordenadores
Sistemas operativos
16
grficos. Macintosh desde sus inicios, no acept la estandarizacin de PCIBM, y comenz a desarrollar sus propio harware, sistemas operativos y aplicaciones de manera independiente a las PCs). Por ello no era posible ejecutar programas para Mac en PC, a menos que se utilizara un programa emulador para ello. Actualmente Macintosh se esta integrando al estndar PC para mayor compatibilidad.
Linux. Es un sistema operativo basado en UNIX pero de software libre, todo su cdigo fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los trminos de la licencia pblica general de GNU (General Public License) y otras licencias libres. Numerosas administraciones han apostado por el uso de este sistema operativo dada su adaptabilidad y la ausencia de costos iniciales. Actualmente existen una gran gama de versiones: Linspire, Debian, Knoppix, Red Hat, SuSe, Slackware, Mandrake, Ubuntu, todos ellos de tipo grfico.
Android. Android es un sistema operativo basado en Linux y orientado a dispositivos mviles, como telfono inteligente y tablets. Fue desarrollado inicialmente por Android Inc, una firma comprada por Google en el 2005.. Google liber la mayora del cdigo de Android bajo la licencia Apache, una licencia libre y de cdigo abierto. La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java.
iOS. Es el sistema operativo de IPhone (Apple) que se utiliza los equipos mviles iPhone y iPod. Es un derivado de Mac OS. Arquitectura de Ordenadores
Sistemas operativos
17
3.
LENGUAJES DE PROGRAMACIN
INTRODUCCIN
Cuando se plantea la resolucin de un problema y se requiere el uso del ordenador es necesario, en primer lugar, definir los pasos necesarios para resolverlo, si el nmero de pasos es finito decimos que se ha construido un algoritmo. Para que un algoritmo pueda ser ejecutado por el ordenador, debemos escribirlo de tal manera que la mquina pueda comprenderlo, para ello debe estar ordenado en una unidad denominada PROGRAMA y escrito en un LENGUAJE que el ordenador pueda reconocer. Para que el ordenador pueda ejecutar las rdenes o instrucciones de un programa, ste debe estar almacenado en la MP, entonces la CPU lee el programa instruccin por instruccin y ejecuta cada una de ellas. Cuando un programa se est ejecutando se denomina PROCESO.
Lenguajes de programacin
18
Lenguajes de propsito general: Aptos para todo tipo de tareas: Ejemplo: C, Java, C#, Visual Basic, etc. Lenguajes de propsito especfico: Hechos para un objetivo muy concreto. Por ejemplo, SQL (para acceder a bases de datos). Lenguajes de programacin de sistemas: Diseados para realizar sistemas operativos o drivers. Por ejemplo, C. Lenguajes de script: Para realizar tareas varias de control y auxiliares. Se subdividen en varias clases. Por ejemplo, JavaScript (programacin web).
Lenguajes imperativos: Indican cmo hay que hacer la tarea, es decir, expresan los pasos a realizar. Ejemplo: C. Lenguajes declarativos: Indican qu hay que hacer. Ejemplos: Lisp, Prolog. Otros ejemplos de lenguajes declarativos, pero que no son lenguajes de programacin, son HTML (para describir pginas web) o SQL (para consultar bases de datos).
Lenguajes compilados: Un programa traductor traduce el cdigo del programa (cdigo fuente) en cdigo mquina (cdigo objeto). Otro programa, el enlazador, unir los ficheros de cdigo objeto del programa principal con los de las libreras para producir el programa ejecutable. Ejemplo: C, Pascal, etc. Lenguajes interpretados: Un programa (intrprete), ejecuta las instrucciones del programa de manera directa. Ejemplo: Lisp, Basic, etc. Lenguajes mixtos: Tambin los hay mixtos, como Java, que primero pasan por una fase de compilacin en la que el cdigo fuente se transforma en bytecode, y este bytecode puede ser ejecutado luego (interpretado) en ordenadores con distintas arquitecturas (procesadores) que tengan todos instalados la misma mquina virtual Java. Un mecanismo equivalente utiliza .NET donde el cdigo de sus lenguajes (C# o Visual Basic) se traduce a un mismo lenguaje denominado MSIL (Microsoft Intermedial Language), este lenguaje es el que ejecuta la Common Runtime Languaje (CRL) que es el motor de ejecucin comn.
Lenguajes de programacin
Arquitectura de Ordenadores
19
Lenguajes de programacin procedural: Divide el problema en partes ms pequeas, que sern realizadas por subprogramas (subrutinas, funciones, procedimientos), que se llaman unas a otras para ser ejecutadas. Ejemplos: C, Pascal. Lenguajes de programacin orientada a objetos: Crean un sistema de clases y objetos siguiendo el ejemplo del mundo real, en el que unos objetos realizan acciones y se comunican con otros objetos. Ejemplos: C++, Java, C#, Visual Basic. Lenguajes de programacin funcional: La tarea se realiza evaluando funciones, (como en Matemticas), de manera recursiva. Ejemplo: Lisp. Lenguajes de programacin lgica: La tarea a realizar se expresa empleando lgica formal matemtica. Expresa qu computar. Ejemplo: Prolog.
Lenguajes de servidor: Se ejecutan en el servidor. Ejemplo: PHP, ASP ASP.NET, Java son lenguajes utilizados en servidores Web. Lenguajes de cliente: Se ejecutan en el cliente. Ejemplo: JavaScript en navegadores web.
EVOLUCIN HISTRICA
Con el paso del tiempo, se va incrementando el nivel de abstraccin, pero en la prctica, los de una generacin no terminan de sustituir a los de la anterior: Lenguajes de primera generacin: Cdigo mquina. Lenguajes de segunda generacin: Lenguajes ensamblador. Lenguajes de tercera generacin: La mayora de los lenguajes modernos, diseados para facilitar la programacin a los humanos. Ejemplos: C, Java.
Lenguajes de programacin
Arquitectura de Ordenadores
20
Lenguajes de cuarta generacin: Diseados con un propsito concreto, o sea, para abordar un tipo concreto de problemas. Ejemplos: NATURAL, Mathematica. Lenguajes de quinta generacin: La intencin es que el programador establezca el qu problema ha de ser resuelto y las condiciones a reunir, y la mquina lo resuelve. Se usan en inteligencia artificial. Ejemplo: Prolog.
Lenguajes de programacin
Arquitectura de Ordenadores
21
El proceso de creacin de un programa ejecutable de un programa escrito en un lenguaje de programacin y mediante un compilador tiene los siguientes pasos: 1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo similar a una mquina de escribir electrnica) y guardarlo en un dispositivo de almacenamiento (por ejemplo, un disco). 3. Compilar el programa con el compilador. 4. Verificar y corregir errores de compilacin, mientras existan errores no se puede pasar a la siguiente fase. 5. Obtencin del programa objeto. 6. El enlazador (linker) obtiene el programa ejecutable. Si ya tenemos un programa ejecutable codificado en lenguaje mquina para poderlo ejecutar hay que introducirlo en la memoria. El usuario slo tienen que activar el fichero ejecutable (con el ratn o el teclado) y el sistema entonces ejecuta las siguientes operaciones: 1. Una utilidad del S.O. llamada cargador colocar el programa, y sus datos de entrada, en memoria principal, preparndolo para su ejecucin. 2. El S.O. le pasa el control a la C.P.U. para que comience la ejecucin del programa, realizando la Unidad de Control los siguientes pasos (fases): o Captacin de la instruccin: Lee de la Memoria Principal la instruccin a ejecutar. o Ejecucin de la instruccin: Interpreta la instruccin leda y enva seales de control a las unidades que deban intervenir en su ejecucin. Tras dicha ejecucin se establece cul ser la siguiente instruccin a ejecutar.
Lenguajes de programacin
Arquitectura de Ordenadores
22
4.
1.
NDICE
SOFTWARE DE UN ORDENADOR ..................................................................... 1 INTRODUCCIN ........................................................................................................ 1 CLASIFICACIN DEL SOFTWARE SEGN EL SERVICIO PRESTADO ........... 1 CLASIFICACIN DEL SOFTWARE SEGN EL MTODO DE DISTRIBUCIN4
2.
SISTEMAS OPERATIVOS ..................................................................................... 7 DEFINICIN ............................................................................................................... 7 HISTORIA DE LOS SISTEMAS OPERATIVOS ...................................................... 7 MODOS DE EXPLOTACIN DEL SISTEMA ......................................................... 8 MONOPROGRAMACION...................................................................................... 8 MULTIPROGRAMACIN ..................................................................................... 9 TIEMPO COMPARTIDO ...................................................................................... 10 MULTIPROCESO ................................................................................................. 10 SISTEMAS DISTRIBUIDOS ................................................................................ 10 TRABAJO POR LOTES (BATCH) ....................................................................... 11 TIEMPO REAL ...................................................................................................... 11 MEMORIA VIRTUAL .......................................................................................... 11 ESTRUCTURA DE UN SISTEMA OPERATIVO ................................................... 11 NCLEO ................................................................................................................ 12 GESTIN DEL PROCESADOR ........................................................................... 12 GESTIN DE MEMORIA PRINCIPAL ............................................................... 13 GESTIN DE ENTRADA Y SALIDA ................................................................. 13 GESTIN DE FICHEROS .................................................................................... 14 SENTENCIAS DE COMANDOS ......................................................................... 15 APLICACIONES DE USUARIO .......................................................................... 15 SISTEMAS OPERATIVOS ACTUALES ................................................................. 16
3.
LENGUAJES DE PROGRAMACIN .................................................................. 18 INTRODUCCIN ...................................................................................................... 18 CLASIFICACIN DE LOS LENGUAJES ............................................................... 18 CLASIFICACIN SEGN SU CERCANA AL HARDWARE ......................... 18
23
CLASIFICACIN DE LOS LENGUAJES DE PROGRAMACIN SEGN SU PROPSITO .......................................................................................................... 19 CLASIFICACIN DE LOS LENGUAJES DE PROGRAMACIN SEGN LA FORMA DE ABORDAR LA TAREA .................................................................. 19 CLASIFICACIN DE LOS LENGUAJES DE PROGRAMACIN SEGN SU PROCESO DE EJECUCIN ................................................................................. 19 CLASIFICACIN DE LOS LENGUAJES DE PROGRAMACIN SEGN SU PARADIGMA ........................................................................................................ 20 CLASIFICACIN DE LOS LENGUAJES DE PROGRAMACIN SEGN SU LUGAR DE EJECUCIN ..................................................................................... 20 EVOLUCIN HISTRICA ...................................................................................... 20 PASOS PARA LA EJECUCIN DE UN PROGRAMA DE ALTO NIVEL ........... 21
24