You are on page 1of 25

Programador de aplicacins informticas

[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.

CLASIFICACIN DEL SOFTWARE SEGN EL SERVICIO PRESTADO


El software se pude clasificar segn su utilidad en tres grandes tipos SOFTWARE DE APLICACIN: El software de aplicacin es aquel que hace que el ordenador coopere con el usuario en la realizacin de tareas tpicamente humanas, tales como gestionar una contabilidad o escribir un texto. o Aplicaciones ofimticas o Software educativo o Software empresarial o Bases de datos o Hojas de clculo o Telecomunicaciones o Programas de esparcimiento y vdeojuegos o etc. SOFTWARE DE DESARROLLO O PROGRAMACIN: Los lenguajes de programacin o software de programacin son herramientas que permiten crear programas y software. Entre ellos tenemos Visual Studio (C#, Visual Basic), Java, C++, etc. o Editores de texto. Los editores de texto son programas que permiten crear y modificar archivos de texto. El programa puede leer el archivo e interpretar los bytes ledos segn el cdigo de caracteres que usa el editor. Es comn utilizar el cdigo ASCII de 8 bits en el que cada carcter es representado por una combinacin de 8 bits, permitiendo utilizar 256 caracteres (28) Arquitectura de Ordenadores

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

CLASIFICACIN DEL SOFTWARE SEGN EL MTODO DE DISTRIBUCIN


Adems de estas categoras basadas en tareas, varios tipos de software se describen basndose en su mtodo de distribucin. Para comprender los trminos utilizados en la comercializacin de software es necesario comprender los siguientes trminos: Licencia: contrato entre el desarrollador de un software sometido a propiedad intelectual y a derechos de autor y el usuario, en el cual se definen con precisin los derechos y deberes de ambas partes. Es el desarrollador, o aqul a quien ste haya cedido los derechos de explotacin, quien elige la licencia segn la cual distribuye el software. Patente: conjunto de derechos exclusivos garantizados por un gobierno o autoridad al inventor de un nuevo producto (material o inmaterial) susceptible de ser explotado industrialmente para el bien del solicitante por un periodo de tiempo limitado . Derecho de autor o copyright: forma de proteccin proporcionada por las leyes vigentes en la mayora de los pases para los autores de obras originales incluyendo obras literarias, dramticas, musicales, artsticas e intelectuales, tanto publicadas como pendientes de publicar. Software con dominio pblico. El SOFTWARE CON DOMINIO PBLICO es software sin copyright. Algunos tipos de copia o versiones modificadas pueden no ser libres si el autor impone restricciones adicionales en la redistribucin del original o de trabajos derivados. Software semi-libre. El SOFTWARE SEMI-LIBRE es un software que tiene copyright pero permite que otros individuos lo usen, lo copien, lo distribuyan y hasta lo modifiquen. Ejemplos de software semi-libre son las primeras versiones de Internet Explorer de Microsoft, o algunas versiones de browsers de Netscape, y StarOffice. Software libre: El SOFTWARE LIBRE proporciona libertar de ejecucin del programa para cualquier propsito y la redistribucin de copias, tambin permite modificar el programa y publicar las modificaciones. No se debe confundir este software con el software gratuito porque la libertar asociada al software libre de copiar, modificar y redistribuir, no significa obligatoriamente gratuidad. Arquitectura de Ordenadores

En funcin del tipo de licencia podemos clasificar el software en:

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.

HISTORIA DE LOS SISTEMAS OPERATIVOS


Durante la 1 generacin de ordenadores no existan los sistemas operativos, la gestin se haca de forma manual. La mquina consista en una CPU, una memoria principal y un dispositivo de entrada (lectora de fichas) y un dispositivo de salida (impresora o grabadora de fichas). Se introduca un trabajo de cada vez, si el trabajo tena algn error Sistemas operativos Arquitectura de Ordenadores

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.

MODOS DE EXPLOTACIN DEL SISTEMA


Los sistemas operativos utilizan distintas tcnicas para distribuir el hardware entre los variados requerimientos que solicitan los programas en ejecucin. A continuacin vernos algunas de estas tcnicas.

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

TRABAJO POR LOTES (BATCH)


En el trabajo por lotes implica que los programas se ejecutan sin necesitar ninguna intervencin del usuario. A menudo se utilizan para la ejecucin de tareas repetitivas que implican un gran volumen de informacin, por ejemplo, el renderizado de los fotogramas de una pelcula. El trabajo por lotes consiste en ir asignando recursos a los programas que lo solicitan y que previamente se encuentran en una cola de trabajo que determina la prioridad. No hay restricciones temporales, no se necesita un tiempo de respuesta rpido. El sistema los que hace es maximizar el uso de los recursos. Trabajan en monoprogramacin.

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.

ESTRUCTURA DE UN SISTEMA OPERATIVO


El SO es el software que comunica al ordenador con el usuario y gestiona todas las operaciones que se producen en el interior de la computadora. Debe encargarse de la gestin del procesador, de la memoria principal, de los ficheros y de las rdenes que el usuario introduzca en el sistema. La estructura de un sistema operativo se puede dividir por capas concntricas. Las superiores contienen a las interiores y de dentro a fuera se aleja del hardware. Describimos las capas de dentro a fuera. Ncleo o Monitor o Kernel. Gestin de procesador. Gestin de memoria principal. Arquitectura de Ordenadores

Sistemas operativos

11

Gestin de entrada/salida. Gestin de ficheros. Sentencias de comandos. Aplicaciones de usuarios.

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).

GESTIN DEL PROCESADOR


Los objetivos de esta capa son: Establecer los criterios por los cuales se regula el uso de la CPU por los distintos procesos. Obtener un alto rendimiento de la CPU.

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

GESTIN DE MEMORIA PRINCIPAL


Esta capa se ocupa de la planificacin de la memoria para optimizar la ejecucin de los procesos. Esta capa es muy importante pues todo proceso necesita de la MP (memoria principal) para ejecutarse y la e/s siempre se realiza a travs de la MP. Los mtodos ms utilizados en la planificacin de la MP son: Particiones estticas. La memoria se divide en un nmero de determinado de particiones de diferente dimensin. A cada programa se le asigna la particin de menor tamao que lo pueda contener. El nmero de particiones es fija. Segmentacin. Consiste en la divisin de la memoria en segmentos del mismo tamao. A cada trabajo se le asigna un segmento pudiendo haber algunos trabajos que necesiten ms de un segmento y otros que ocupando menos de un segmento no aprovechen todo el espacio asignados. Paginacin. Consiste en la divisin de la memoria en pginas de tamao fijo y dimensiones relativamente pequeas (1/2 A 4 KB), que se mantienen en un montn. Los programas se dividen en pginas, y slo residen en la memoria central las pginas que se estn ejecutando cada vez. Este mtodo requiere el uso de memorias secundarias de acceso rpido, al ser frecuentes las transferencias de pginas desde la memorias secundaria a la memoria principal.

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.

GESTIN DE ENTRADA Y SALIDA


Es la capa del sistema operativo que se encarga de gestionar la e/s de/hacia los perifricos. Entre sus funciones estn: Direccionamiento de perifricos Transferencia de la informacin desde/hacia los perifricos. Sincronizacin y coordinacin de la operaciones de e/s

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

lneas de control: controla las operaciones, se llama bus de control.

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.

Planificacin del uso del disco duro


Deben existir algoritmos de planificacin que gestionen la cola de procesos que esperen acceder al disco. Entre ellos destacamos: Planificacin FCFS (First-Come, First Served). El primero que llega es el primero en ser servido. Planificacin SSTF (Shortest-Seek-Time-First). El brazo del disco se sita en la siguiente posicin que minimice el tiempo de bsqueda. Este mtodo es til en sistemas de procesamiento por lotes en los que la capacidad de ejecucin es la ms importante. Planificacin scan. El brazo del disco se mueve de un lado a otro sobre la superficie del disco, sirviendo todas las peticiones que encuentra a su paso.

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

SISTEMAS OPERATIVOS ACTUALES


Los sistemas operativos ms generales son: MS-DOS. El MS-DOS fue el sistema operativo ms extendido hasta la aparicin de Windows. Sistema para un nico usuario desarrollado para microordenadores de 16 bits es monousuario y monotarea. Fue soporte de Windows hasta su versin Windows ME.

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.

CLASIFICACIN DE LOS LENGUAJES


Se pueden clasificar los lenguajes en funcin de mltiples parmetros, a continuacin se vern distintos sistemas de clasificacin

CLASIFICACIN SEGN SU CERCANA AL HARDWARE


Clasificaremos los lenguajes de programacin en funcin de su relacin mquinausuario. Lenguaje Mquina: El programador debe conocer muy bien la mquina y programar utilizando su repertorio de instrucciones. El ordenador ejecuta los programas escritos en estos lenguajes sin necesidad de traduccin. Lenguaje Ensamblador (de bajo nivel): Es un lenguaje nemotcnico, Cada orden en este lenguaje puede generar varias instrucciones en lenguaje mquina. Es necesario el conocimiento de la mquina. Lenguaje de Alto Nivel: El lenguaje utilizado se parece ms al natural. Cada instruccin en lenguaje de alto nivel da lugar a muchas instrucciones mquina. Es necesario por parte del ordenador un proceso de traduccin para que pueda ser interpretado por la mquina. Arquitectura de Ordenadores

Lenguajes de programacin

18

CLASIFICACIN DE LOS LENGUAJES DE PROGRAMACIN SEGN SU PROPSITO


Segn el propsito, es decir, el tipo de problemas a tratar con ellos:

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).

CLASIFICACIN DE LOS LENGUAJES DE PROGRAMACIN SEGN LA FORMA DE ABORDAR LA TAREA


Segn el mtodo utilizado por sus instrucciones para reclamar una tarea:

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).

CLASIFICACIN DE LOS LENGUAJES DE PROGRAMACIN SEGN SU PROCESO DE EJECUCIN

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

CLASIFICACIN DE LOS LENGUAJES DE PROGRAMACIN SEGN SU PARADIGMA


El paradigma de programacin es el estilo de programacin empleado. Algunos lenguajes soportan varios paradigmas, y otros slo uno. Se puede decir que histricamente han ido apareciendo para facilitar la tarea de programar segn el tipo de problema a abordar, o para facilitar el mantenimiento del software, o por otra cuestin similar, por lo que todos corresponden a lenguajes de alto nivel (o nivel medio), estando los lenguajes ensambladores atados a la arquitectura de su procesador correspondiente. Los principales son:

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.

CLASIFICACIN DE LOS LENGUAJES DE PROGRAMACIN SEGN SU LUGAR DE EJECUCIN


En sistemas distribuidos, segn dnde se ejecute:

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.

PASOS PARA LA EJECUCIN DE UN PROGRAMA DE ALTO NIVEL


La compilacin es el proceso de traduccin de programas fuente a programas objeto. El programa objeto obtenido de la compilacin ha sido traducido normalmente al cdigo comn del lenguaje de mquina. Para conseguir el programa mquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje mquina directamente ejecutable. Existen diversas fases de compilacin o tambin llamadas etapas de la compilacin que se ilustrarn en la siguiente imagen:

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

You might also like