Comparacion SO

download Comparacion SO

of 71

Transcript of Comparacion SO

  • 7/22/2019 Comparacion SO

    1/71

    Comparacion Linux, Macos Y Windows

    TFC: ARQUITECTURA DE COMPUTADORESY SISTEMAS OPERATIVOS

    MEMORIAGESTIN DE PROCESOS EN LOS SISTEMAS OPERATIVOS

    ALUMNO: Francisco Javier Serrano CastaoCONSULTOR: Francesc Guim Bernat

  • 7/22/2019 Comparacion SO

    2/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    ResumenEn los ltimos aos se puede apreciar cmo, dentro de los tres Sistemas Operativos msutilizados para computadoras personales, hay una especie de batalla por presentar cual ofrece

    mejores prestaciones. Estos tres sistemas mencionados son Windows 7 deMicrosoft [8], Ubuntu de Linux [6] y Mac OS X de Apple [7]. Por ello en este Trabajo Fin deCarrera (TFC) se realizar una comparacin de los tres sistemas operativos mencionadosrespecto al rendimiento que ofrecen sobre el servidor web Apache instalado en cada uno deellos. Antes de realizar dichas pruebas, se describirn cmo cada uno de los sistemasoperativos maneja la gestin de procesos, gestin de memoria, etc. Se realizar unadescripcin de cada uno de ellos respecto sobre cmo realizan dichas funciones. Con ello sepretende tener una base sobre la cual fundamentar posteriormente los resultados obtenidos delas pruebas con los procesos que genere el servidor web Apache [11]. Cabe mencionar que lainstalacin de los sistemas operativos ser llevada a cabo a travs de mquinas virtuales,utilizando para ello como software de creacin y gestin de las mismas VMware [13]. Seutilizar dicho software por la experiencia y robustez para albergar a los tres sistemasoperativos a evaluar. Se ha elegido este tipo de instalacin debido al creciente auge de lainstalacin de equipos virtuales, por lo que se podr comprobar tambin el rendimiento de cadauno de los sistemas instalados en dichas mquinas virtuales. La realizacin de la prctica seutilizar en concreto los siguientes Sistemas Operativos: Windows 7 Profesional, Ubuntu 10.10y Mac OS X 10.6. En cada uno de los sistemas se configurar el servidor Web Apache, al quese le realizarn una serie de test con los que se podr comprobar las diferencias derendimiento de unos sistemas a otros.

    2

  • 7/22/2019 Comparacion SO

    3/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    ndice General 1- Introduccin 1.1 Objetivos del TFC 1.2 Enfoque del TFC 1.3 Planificacin delTFC 1.3.1 Recursos de software y hardware 1.3.2 Tareas y coste del proyecto 2- SistemasOperativos 2.1 Qu es un Sistema Operativo? 2.2 Clases de Sistemas Operativos 2.3

    Mquina Virtual 3- Gestin de Procesos 3.1 Definicin 3.2 Estados de un proceso 3.3Planificacin de un proceso 3.4 Creacin y destruccin de procesos 4- Gestin de Memoria 4.1Memoria principal 4.2 Memoria virtual 4.2.1 Traduccin de pgina virtual a fsica 4.2.2Paginacin 4.2.3 Segmentacin 4.3 Gestin de Memoria en UNIX 4.4 Gestin de Memoria enWindows3

  • 7/22/2019 Comparacion SO

    4/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    5- Implementacin 5.1 Hypervisor 5.1.1 5.1.2 5.1.3 Concepto de Hypervisor Instalacin delHypervisor Creacin y configuracin de mquinas

    virtuales 5.1.4 Instalacin del Sistema Operativo5.2 Sistemas Operativos 5.2.1 5.2.2 Configuracin Servidor Web apache 5.2.2.1 5.2.2.2 5.3Benchmarking 5.3.1 5.3.2 Descripcin y tipos Instalacin y configuracin Conceptos Instalaciny configuracin

    6- Evaluacin de los Sistemas Operativos 6.1 Test inicial 6.2 Cambios de configuracin 6.3Test final 7- Anlisis de resultados 8- Conclusiones 9- Bibliografa y enlaces

    4

  • 7/22/2019 Comparacion SO

    5/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    1. Introduccin1.1. Objetivos del TFCEl objetivo principal del trabajo es la de realizar un estudio comparativo de los diferentes

    Sistemas Operativos a estudiar respecto al rendimiento que ofrecen respecto a un mismoproblema. En este caso se trata de los sistemas; Windows 7 Profesional, Ubuntu 10.10 y MacOS X 10.6. El problema a tratar ser ver la respuesta del servidor web apache ante unbenchmarking [24], es decir, utilizar una aplicacin que mediante tcnicas de fuerza puedamedir el rendimiento de ciertas aplicaciones o hardware, en este caso de la aplicacin Apache,y compararlo entre los tres sistemas operativos mencionados. Las aplicaciones que seutilizarn para realizar el benchmarking son: JMeter [25] y ab [26].

    1.2. Enfoque del TFCEste proyecto se inicia con una fase terica en la que se realizar una breve descripcin dedistintos aspectos de dicho trabajo, entre los cuales nos encontramos la definicin de sistemaoperativo y las clases de sistemas que vamos a tratar en el trabajo. Adems se habla de qu esuna mquina virtual, ya que en este trabajo los sistemas a utilizar sern instalados sobremquinas virtuales. Otros aspectos a destacar, son los relativos a la gestin de procesos ygestin de memoria por parte de los sistemas a tratar. Se explicarn en qu consiste estagestin y cmo realiza la misma cada uno de los sistemas operativos, por lo que se puede irrealizando una primera comparacin de los sistemas respecto al tratamiento que cada unorealiza en su funcionamiento o procesamiento de tareas. En una segunda fase ms prctica, serealizar la instalacin de un Hypervisor o monitor de mquina virtual, en este caso delHypervisor VMware, en una mquina para posteriormente crear las mquinas virtuales dondese instalarn cada uno de los sistemas operativos a analizar. En estos sistemas operativostendremos que instalar el servidor web apache, que ser el proceso que medir el rendimientode los mismos. Este servidor ser objeto de distintas configuraciones para ver los cambios derendimiento producidos en el mismo.5

  • 7/22/2019 Comparacion SO

    6/71

    TFC: Arquitectura de Computadores y Sistemas OperativosPara medir el rendimiento del servidor web Apache se utilizarn herramientas de benchmarking[24]. Estas herramientas sern instaladas y configuradas en un equipo distinto al utilizadoanteriormente para realizar las mediciones de rendimiento de los mismos. En una ltima fase,se analizarn los resultados obtenidos en los test, y se realizarn las conclusiones pertinentes.

    1.3. Planificacin del TFC 1.3.1 Recursos de hardware y softwareEn este apartado se detallan los recursos necesarios para llevar a cabo el trabajo. Respecto alhardware, necesitamos lo siguiente: Dos PCs con un equipamiento similar al siguiente:procesador Core 2 Duo o similar, 4 GB memoria RAM, 160 GB de HD (Disco duro), tarjeta dered mnimo a 100 MB/s. El coste de dichos equipos rondan los 450 Conexin entre los dosPC, ya sea mediante un cable cruzado conectado directamente sobre las tarjera de red de losdos equipos, es la manera ms econmica, o bien a travs de un conmutador o switch.Respecto al software necesario: El PC que realizar el test tendr instalado Windows 7Profesional, con un coste de 278 . El PC con las mquinas virtuales tendr instalado unHypervisor sobre Windows 7 Profesional (coste 278 ), se va a util izar VMware WorkStation 7[16], debido a su potencial, compatibilidad con los sistemas operativos a analizar. Coste 153.Los sistemas operativos que se analizarn; Windows 7 Profesional, Ubuntu 10.10 y Mac OS X10.6. Excepto Ubuntu los otros dos sistemas son propietarios, con un coste aproximado de 278

    en el caso de Windows y 29 en el caso de MAC OS X 10.6. Servidor web Apache [11], queser el proceso a analizar en cada uno de los sistemas, es una aplicacin gratuita.

    6

  • 7/22/2019 Comparacion SO

    7/71

    TFC: Arquitectura de Computadores y Sistemas OperativosLas herramientas de Benchmarking; JMeter [25] y ab [26]. Todas las elegidas son gratuitas yrelacionadas con Apache.

    1.3.2 Tareas y coste del proyecto

    En este apartado se va a exponer las tareas en las que consta el proyecto, as como el costeen tiempo empleado en cada una. Se ha estimado que el coste por hora de trabajo es de 50 /h, en el cual se ha incluido las licencias, consumo elctrico y coste de la persona/h. En elmismo no se ha contemplado el coste de hardware de los equipos, ya que este puede variarsegn modelos. Creacin del plan de trabajo (total 10 horas). Esta fase considerada como unade las ms importantes del mismo, ya que una vez elaborada correctamente nos servir comogua para el resto del trabajo. En la misma se realiza una bsqueda superficial de informacinpara tener claro el contenido que va a tener dicho trabajo. A esta fase corresponde todo elapartado Introduccin del proyecto. Documentacin (Total 5 horas). En esta fase se realiza labsqueda de documentacin necesaria para el proyecto, la cual quedar reflejada en elapartado de bibliografa y enlaces. Comparacin terica de los Sistemas Operativos (Total 20horas). En esta fase se har mencin a todos los aspectos tcnico-tericos que expliquen ques un sistema operativo, y como cada uno de ellos gestionan los procesos, memoria, archivosde sistema, etc. Instalacin y configuracin del PC con Hypervisor. (Total 6 horas). Esta tareaconsta de la instalacin del equipo donde se instalarn las mquinas virtuales. Una vez seinstala el sistema operativo Windows 7 Profesional, se instalar el Hypervisor VMwareWorkStation 7, tras el cual se crearn 3 mquinas virtuales en cada una de las cuales seinstalar uno de los sistemas a evaluar. Configuracin de Apache y testeo de los sistemas(Total 30 horas). Esta fase consta de la instalacin de la aplicacin Apache en cada una de lasmquinas virtuales y la configuracin de las mismas para poder ser evaluadas desde otroequipo. Antes de comenzar a realizar las pruebas se ha de configurar el equipo con lasherramientas de benchmarking. A lo largo de

    7TFC: Arquitectura de Computadores y Sistemas Operativosesta fase se realizarn distintas pruebas, ya que se harn cambios en la configuracin delservidor web apache para ver como repercuten dichos cambios en el rendimiento del mismo.Estudio y anlisis de las pruebas (Total 10 horas). Una vez obtenidos los resultados de los testrealizados en cada uno de los sistemas, se compararn y se analizarn, concretando quin hatenido mejores resultados y en qu condiciones. Elaboracin de la memoria (Total 10 horas).Se recopilarn todos los datos y documentos realizados hasta la fecha, revisando la escritura ypresentacin de los mismos, de manera que quede maquetada para su entrega. Creacin de lapresentacin (Total 10 horas). Se realizar el documento de presentacin del TFC, donde se

    plasmarn las ideas ms importantes del trabajo. Revisin y entrega. Durante la ltimasemana, antes de la entrega del TFC, se realizar una ltima revisin en busca de fallos omejoras en el mismo, y se proceder a su entrega final.

    8

  • 7/22/2019 Comparacion SO

    8/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    Diagrama de GANTT

    9

  • 7/22/2019 Comparacion SO

    9/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    2. Sistemas Operativos2.1. Qu es un Sistema Operativo?Un sistema operativo se puede definir como la capa de software que equipa a las

    computadoras, cuya labor es la de administrar y gestionar todo el hardware que interacta en lamisma y proporcionar una interfaz sencilla a los programas para comunicarse con dichohardware, entendido ste como los procesadores, memoria, discos duros, teclado, pantalla,impresoras, interfaz de red y todo tipo de dispositivo de E/S. Se puede decir por tanto que elsistema operativo se encuentra entre el hardware y las aplicaciones de usuario (navegadoresweb, programas de ofimtica, etc.) proporcionado as a los programadores de dichasaplicaciones un conjunto de instrucciones conocidas como llamadas al sistema, para trabajarcon ms comodidad, de lo contrario los programadores tendran que realizar dichas tareas enun lenguaje de programacin que se comunicara directamente con los dispositivos, siendo steconocido como lenguaje de mquina, lo que complicara enormemente la labor de estos.Respecto a la gestin del hardware que realiza el sistema operativo, consiste en administrar losrecursos de una computadora cuando dos o ms programas que se ejecutan simultneamenterequieren usar el mismo recurso (tiempo de CPU, memoria, etc.), por lo que ser el sistemaoperativo el encargado de ordenar y compartir dichos elementos en dos formas: en el tiempo yen el espacio. Cuando un recurso se multiplexa (comparte) en el tiempo, diferentes programaso usuarios se turnan en su uso, un ejemplo de ello es la cola de impresin que genera elsistema operativo indicando quien imprime primero y quien a continuacin. El otro tipo demultiplexacin es en el espacio, en este caso lo que ocurre es que el sistema reparte el recursoentre los usuarios y programas. Un ejemplo tpico es el uso de la memoria principal, donde,dependiendo del tamao de la misma, pueden residir distintos programas a la vez a la esperadel uso de la CPU.

    10

  • 7/22/2019 Comparacion SO

    10/71

    TFC: Arquitectura de Computadores y Sistemas Operativos 2.2. Clases de SistemasOperativosEn este punto se realizar una mencin por los distintos tipos de Sistemas Operativos,dependiendo del nmero de aplicaciones que ejecutan, del nmero de usuarios queinteractan, del nmero de procesadores que manejan o dependiendo de la estructura. A

    continuacin se enumeran los sistemas mencionados: Segn la utilizacin de los recursos. Siun sistema operativo se ejecuta en una computadora con un solo procesador se clasifican ensistemas monoprogramados y multiprogramados. Sin embargo si tiene varios procesadores sehabla de sistemas multiprocesamiento. Sistema monoprogramado. Slo se permite la ejecucinde un programa en el sistema, por lo que el programa se carga en memoria y permanece enella hasta su finalizacin. Sistema multiprogramado o multitarea. Estos sistemas puedenejecutar simultnea varias tareas y de varios usuario. El sistema operativo mantiene variostrabajos en la memoria, y mientras uno est a la espera de realizar alguna tarea, por ejemplo laterminacin de una operacin de entrada/salida (E/S), ya sea el presionar una tecla u otratarea, el sistema operativo selecciona otro trabajo para que la CPU lo ejecute y esta ltima noquede vaca de trabajo mientras estos esperan su ejecucin. Hoy en da todos los sistemasoperativos son multitarea. Sistema multiprocesador. Estos sistemas son aquellos que puedenmanejar varios procesadores, con lo que se alcanza un mayor rendimiento ya que al tener msprocesadores podemos realizar ms tareas al mismo tiempo, aunque hay que decir que esteaumento no es proporcional al aumento del nmero de procesadores. A este tipo de sistematambin se le llama computadoras paralelas o multicomputadoras, ya que cada procesadortiene una copia del sistema operativo, y stas se comunican entre s para el manejo de lastareas, repartindose las mismas entre los procesadores, es decir, una tarea es ejecutada enproporcin por todos los procesadores. Segn la interactividad. En este caso se habla de lossistemas dependiendo del tipo de trabajo y los servicios que se presta a los usuarios se hablade sistemas de procesos por lotes, sistemas de tiempo compartido y sistemas de tiempo real.

    11

  • 7/22/2019 Comparacion SO

    11/71

    TFC: Arquitectura de Computadores y Sistemas OperativosSistemas de procesamiento por lotes (Batch). En este tipo de sistemas no existe intervencindel usuario durante la ejecucin de los trabajos. Cada trabajo consiste en una relacin depasos secuenciales, que al juntarse forman un lote. Estos procesamientos son largos y notienen lmite de tiempo en su ejecucin. Sistemas de tiempo compartido. En este tipo de

    sistemas los procesos se ejecutan de manera simultnea mientras la CPU conmuta entre ellos,de manera que el usuario es ajeno a la misma. En estos sistemas los usuarios s puedeninteractuar con los programas durante su ejecucin. Sistemas de tiempo real. Se caracterizanporque maximizan el tiempo en el que se manda la informacin, por ello se utilizan paraprocesos delicados, como por ejemplo la ejecucin por parte del brazo de un robot en unaplanta de ensamblaje de vehculos. Dicho robot debe obtener la informacin de ejecucindentro de unos mrgenes estrictos de tiempo, ni antes ni despus. Segn el nmero deusuarios. En este caso se habla de los sistemas dependiendo del tipo de trabajo y los serviciosque se presta a los usuarios se habla de

    sistemas de procesos por lotes, sistemas de tiempo compartido y sistemas de tiempo real.Sistema operativo de computadora personal. Se puede tambin denominar sistemamonousuario. Atiende al nmero de usuarios que utilizan dicho sistema al mismo tiempo. En elcaso de los monousuario hasta que la persona que est utilizando el equipo no termina, ste nopuede ser utilizado por otra. El sistema operativo de computadora personal tiende a sermonousuario, ya que es un sistema enfocado a maximizar la comodidad del usuario y aresponder con rapidez a las necesidades de ste. Como ejemplo actual de este sistemapodemos mencionar a Windows 7, que excepto en algunas versiones mediante la herramientade terminal server se puede convertir en multiusuario, la mayora es monousuario. Sistemaoperativo servidor o multiusuario. Al contrario que el anterior, en este sistema concurren msde un usuario de forma simultnea desde diferentes ubicaciones. Por ejemplo el caso de losservidores web, los cuales sirven las pginas alojadas en los mismos a travs de internet atodo aquel que las visite. Entre los sistemas operativos de servidor encontramos a UNIX,Windows Server y Linux.12

  • 7/22/2019 Comparacion SO

    12/71

    TFC: Arquitectura de Computadores y Sistemas Operativos Segn el nmero de computadoras. Dependiendo del nmero de computadoras que formen

    parte del sistema, se puede hablar de sistemas centralizados o sistemas distribuidos. Sistemascentralizados. Este tipo de sistemas es aquel que utiliza los recursos de una sola computadora,como es la memoria, CPU, discos, perifricos. Este tipo de sistema planteaba un problema, y

    es que cuando se interconectaban ordenadores a uno principal, cuando este ltimo requera uncambio de hardware para aumentar su capacidad, ello era ms costoso que aadir nuevoscomputadores. Sistemas distribuidos. Como lo define Tanenbaum [3], Un sistema distribuidoes una coleccin de computadoras independientes que aparecen ante los usuarios del sistemacomo una nica computadora. En este tipo de sistemas se utiliza al mismo tiempo los recursosde los distintos equipos, ya bien sea el hardware o el software de los mismos, por lo que lascomputadoras se comunican entre s a travs de distintos medios de comunicacin, comopueden ser lneas de alta velocidad o lneas telefnicas. Este tipo de sistemas puede abarcardesde unas pocas computadoras hasta miles o millones de ellas, enlazadas a travs deinternet. Estos recursos que son compartidos son manejados por un gestor de recursos, que esun software que se encarga de controlar dichos recursos. Segn la estructura del sistemaoperativo. En este caso se encuentra los distintos sistemas dependiendo del diseo interno delos mismos. Entre ellos encontramos los sistemas monolticos, los sistemas en capas, lasmquinas virtuales y el sistema cliente-servidor. Sistemas monolticos. Son sistemas pequeos,sencillos y limitados. No tienen una estructura definida, sino que todos sus componentes seencuentran agrupados en un nico programa. Cada conjunto de procedimientos puede invocara cualquiera de los otros procedimientos. Un ejemplo de este tipo de sistemas es el sistemaMS-Dos. Sistema por capas. El sistema se organiza como una jerarqua de capas, donde cadacapa ofrece una interfaz a la capa superior, y slo utiliza los servicios que ofrece la capainferior. Cada capa tiene funciones especficas, as cada capa se encarga de una parte delsistema operativo.

    13

  • 7/22/2019 Comparacion SO

    13/71

    TFC: Arquitectura de Computadores y Sistemas OperativosSistema de mquina virtual. Este sistema ser tratado de una manera ms amplia en elsiguiente punto 2.3. Sistema cliente-servidor. El sistema consiste en un conjunto de mdulosautnomos, los cuales ponen a disposicin de los dems una serie de servicios ocompetencias. Es decir, cada uno de los mdulos actan como servidores que atienden las

    peticiones de otros mdulos que actuaran como clientes. Este tipo de sistema es muyapropiado para los sistemas distribuidos.

    2.3. Mquina VirtualEste TFC, como ya se ha descrito, versa sobre las diferencias de gestin entre sistemasoperativos, pero estos van a ser instalados en mquinas virtuales creadas al efecto, por lo quecabe hacer una resea del funcionamiento de dichas mquinas virtuales. El concepto demquina virtual surge con el sistema VM/3701 de IBM, en el que se separa las dos funcionesque proporciona un sistema de tiempo compartido o multiusuario, como son lamultiprogramacin y la abstraccin del hardware. El corazn del sistema de creacin de lasmquinas virtuales es conocido como monitor de mquina virtual, y se ejecuta sobre elhardware proporcionando varias mquinas virtuales a la siguiente capa de software. Se puededecir que estas mquinas virtuales son copias exactas del hardware desnudo donde seincluyen los recursos principales de una computadora, como es el kernel, dispositivos E/S,interrupciones, memoria principal, etc. A continuacin se muestra la estructura de dichosistema2 .

    Figura 1 Estructura del VM/370

    Cada mquina virtual puede ejecutar cualquier sistema operativo debido a la circunstanciacomentada de que cada una es una copia exacta del hardware. En el caso de la figura anteriorse puede apreciar como distintos sistemas operativos

    1

    Se puede encontrar ms informacin detallada en la web de IBM http://www.vm.ibm.com/Esta figura ha sido extrada del libro Tanenbaum Andrew S.: Sistemas Operativos Modernos.Ed. Prentice Hall

    2

    14

  • 7/22/2019 Comparacion SO

    14/71

    TFC: Arquitectura de Computadores y Sistemas Operativosmonousuarios (CMS, Sistema Monitor de Conversaciones), cuando realizan una llamada alsistema por medio de algn programa, sta salta al sistema operativo de la propia mquinavirtual, no a la VM/370 como hubiera ocurrido en una mquina real, entendiendo que esta serala capa de software por encima de la capa de hardware de la computadora. A continuacin el

    CMS emite las instrucciones de E/S necesarias para ejecutar la llamada, el sistema VM/370recoge estas instrucciones y las ejecuta como parte de su simulacin de hardware real. Estaidea de la virtualizacin tambin se encuentra en la ejecucin de programas, en lo que seconoce como mquinas virtuales de proceso o mquinas virtuales de aplicacin. Fue SunMicrosystem [21] quin al inventar el lenguaje de programacin Java, tambin invent lamquina virtual java (JVM) [22]. Consiste en que al ejecutarse una aplicacin en este lenguaje,las instrucciones no son ejecutadas por el procesador ni por el hardware de la mquina, sinoque son ejecutadas por un software, en este caso por la JVM que es una mquina virtual, quelas interpreta, y lleva a cabo una accin sobre el hardware a partir de estas. Esta caractersticade ser portable es fundamental, ya que se puede ejecutar en cualquier mquina que tenga unintrprete de JVM sin necesidad de cambio del cdigo, aun ejecutndose en distintos sistemasoperativos, e incluso acceder va internet a aplicaciones remotas y ejecutarse. Otra mquinavirtual de proceso muy utilizada es la proporcionada por el entorno .Net de Microsoft [23], querecibe el nombre de Common Language Runtime. Respecto a las mquinas virtuales desistema podemos decir que hay dos tipos o clases que son las ms comunes; las que seejecutan directamente sobre el hardware o las que se ejecutan sobre un sistema operativo. Ladiferencia entre una u otra es que en la primera no tenemos un sistema operativo entre lasmquinas virtuales y el hardware, en cambio en las segundas, las mquinas virtuales se sitanen un nivel superior al del sistema operativo que alberga el monitor de mquinas virtuales(VMM). Vemos dichas diferencias en las siguientes figuras3 2 y 3.

    3

    La fuente de los grficos es del TechNet Magazine:http://64.4.11.252/eses/magazine/2008.10.hyperv.aspx

    15

  • 7/22/2019 Comparacion SO

    15/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    Figura 2 Monitor sin Sistema Operativo

    Figura 3 Monitor con Sistema Operativo

    Dentro de los distintos VMM o Hypervisor los ms usuales son: VMware en las versiones ESXi[15] y Workstation [16], XEN de Citrix [17], Virtual Box de Sun [18], Virtual PC 2007 de Microsoft[19], Hyper V de Microsoft [20]. Estas mquinas virtuales se utilizan hoy en da para diferentesentornos, los ms utilizados son los entornos de desarrollo o pruebas, pero tambin se estnutilizando cada vez ms para entornos en produccin, as se puede encontrar por internet comomuchos ISP ofrecen sus servicios de hosting mediante servidores virtuales. Tambin se utilizala virtualizacin para consolidar servidores en una sola mquina con suficientes recursos paraello, as tendremos las mquinas aglutinadas en una misma computadora, a las cuales sepodr hacer una copia de seguridad del sistema completo, ya que este se compone de un solofichero. Este ltimo punto junto con la posibilidad que nos ofrecen las mquinas virtuales de sertraspasadas de un host a otro con el mismo tipo de VMM, nos ofrecen un entorno en el que laprdida de un servicio gestionado por una mquina virtual puede ser mnimo, al poderserestaurar dichas mquinas virtuales de una manera fcil entre los distintos hosts. Otro de losbeneficios que proporcionan las mquinas virtuales y por lo que son elegidas es el ahorro deenerga. No consume lo mismo una mquina fsica con 10 mquinas virtuales que 10 mquinasfsicas. Otro tipo de virtualizacin es la llamada virtualizacin a nivel de sistema operativo. Estatcnica consiste en dividir una computadora fsica en varias con compartimentosindependientes en los cuales se puede instalar un sistema operativo diferente. As el sistemaoperativo de la mquina virtual comparte el mismo kernel que el sistema usado paraimplementar dichas mquinas virtuales. Las aplicaciones de un sistema operativo que correnen una mquina virtual, lo ven como un sistema autnomo. Dentro de esta categora nosencontramos distintos ejemplos: Virtuozzo [28], Linux-VServer [29], Solaris containers [30],OpenVZ [31] y FreeBSD Jails [32]. Podemos decir por tanto que la virtualizacin es cada vezms utilizada y ms extendida en una amplia variedad de mbitos, desde un usuario que quiereprobar distintos sistemas 16

  • 7/22/2019 Comparacion SO

    16/71

    TFC: Arquitectura de Computadores y Sistemas Operativosoperativos hasta llegar a algo muy de moda como es el cloud computing (computacin en lanube), cuyos servidores estn cada vez ms virtualizados. Debido a este inters por lavirtualizacin de servidores, se ha decidido utilizar mquinas virtuales para ver no slo elrendimiento de los sistemas operativos ante un problema dado, sino tambin como estos

    responden siendo instalados en mquinas virtuales.3. Gestin de procesos3.1. DefinicinUtilizando la definicin dada en el material de la asignatura Sistemas Operativos se va aexplicar qu es un proceso. La definicin es la siguiente: Un proceso es bsicamente un

    entorno formado por todos los recursos necesarios para ejecutar programas. Desde el punto devista del SO, un proceso es un objeto ms que hay que gestionar y al cual hay que darservicio4. Podemos decir que un programa es una entidad pasiva, en tanto en cuanto es un conjunto deinstrucciones de cdigo mquina y datos almacenados en un ejecutable. Mientras que unproceso sera la ejecucin de ese programa, es decir, el programa en accin. Esto indica quelos procesos son dinmicos, estn en constante cambio debido a estos recursos necesarios, yaque al intentar realizar algn tipo de accin puede ser que tenga que permanecer a la esperade que dicho recurso est disponible, por ejemplo una peticin de lectura del disco duro, y queel brazo lector del disco duro lo est utilizando otro proceso. Al igual que las instrucciones deprograma, los procesos incluyen los contadores de programa que indican la direccin de lasiguiente instruccin que se ejecutar de ese procesos y los registros de CPU, as como laspilas que contienen datos temporales, como son los parmetros de subrutina, las direccionesde retorno y variables locales. Los procesos tambin contienen una seccin de datos convariables globales y memoria dinmica. Todo ello permite gestionar de una manera ms eficazlos procesos en los sistemas operativos multiprocesos, ya que cada proceso es independiente,por lo que el bloqueo de uno no debe de hacer que otro proceso en el sistema se bloquee. Enestos sistemas operativos multiproceso se intenta maximizar la utilizacin de la CPU, por lo quelos procesos se ejecutan simultneamente en la CPU y slo quedan a la espera de ejecucin sirequieren de algn recurso del sistema que est ocupado en ese momento, en cuanto obtienedicho recurso podr ejecutarse de nuevo. Todo este proceso de gestin lo realiza el sistemaoperativo, por lo que es el que decide si un proceso es ms prioritario que4

    Definicin dada en el punto 1 del mdulo 6 (La gestin de procesos) dentro de la asignaturaSistemas Operativos.

    17

  • 7/22/2019 Comparacion SO

    17/71

    TFC: Arquitectura de Computadores y Sistemas Operativosotros. Es el programador el que decide esta prioridad, por ejemplo en el caso de Linux se utilizaun nmero en la programacin de estrategias para garantizar la equidad de los procesos. Cadaproceso se representa en el sistema operativo con un bloque de control de proceso (PCB,Process Control Block). En este PCB se guardan una serie de elementos de informacin de los

    mismos. Estos elementos son: el identificador del proceso, el estado del proceso, registros deCPU (acumuladores, punteros de la pila, registros ndice y registros generales), informacin deplanificacin de CPU (prioridad de proceso, punteros a colas de planificacin, etc.), informacinde gestin de memoria, informacin de contabilidad (tiempo de uso de CPU, nmeros deprocesos, etc.), informacin de estado de dispositivos E/S (lista de archivos abiertos, etc.).

    3.2. Estados de un procesoEn un sistema multiprogramado o multitarea donde existen muchos procesos y un procesador,puede ocurrir que en un momento dado slo se ejecute un proceso o varios y los dems estnesperando a ser procesado o esperen la finalizacin de una operacin de E/S. Los pasos porlos que puede pasar un proceso se pueden representar con un diagrama de estado como el dela figura5 4. As se puede apreciar que a medida que un proceso se ejecuta va cambiando deestado dependiendo de las preferencias que cada uno tengan asignadas, por lo que ser elprocesador el que se encargue de ejecutar unos u otros.

    Figura 4 Diagrama de Estados de un proceso

    Cmo se aprecia en la imagen 4 los estados por los que puede pasar un proceso son lossiguientes:

    5

    Diagrama obtenido del material de la asignatura Sistemas Operativos (mdulo 6. Gestin deprocesos)

    18

  • 7/22/2019 Comparacion SO

    18/71

    TFC: Arquitectura de Computadores y Sistemas OperativosNuevo. En los sistemas operativos hay varias razones por las que se crea un proceso. Entrestas se pueden destacar; la inicializacin del sistema, cuando se arranca el sistema segeneran una serie de procesos ya bien sean para interactuar con el usuario o procesos ensegundo plano con una funcin especfica, como por ejemplo el aceptar la solicitud de una

    pgina web que est en dicha mquina; ejecucin de una llamada al sistema por parte de otroproceso, un proceso puede requerir la descarga de ficheros, por lo que sern otros procesoslos que se encarguen de ubicar el archivo o archivos en la ubicacin especfica; por medio de laaccin de un usuario, por ejemplo al hacer doble clic en un icono; mediante el inicio de untrabajo por lotes. Una vez el proceso ha sido creado queda a la espera de ser admitido, por loque si es as pasara a estado preparado o en caso contrario terminara dicho proceso.Preparado (ready o listo). Un proceso en este estado est esperando a que se le asigne unprocesador. Como se puede apreciar en la figura 4, un proceso en este estado puede, o bienfinalizar, lo que ocurrira por la accin de otro proceso o por algn acontecimiento externo, obien el proceso pasa al estado ejecucin, ya que el gestor de procesos le asigna una CPU paraser ejecutado. Ejecucin (run). El proceso en este estado est en la CPU ejecutandoinstrucciones. Puede ocurrir tres situaciones; que el proceso ejecute todas las instruccioneshasta su ltima lnea de cdigo y finaliza; pasa a estado bloqueado (wait) por que espera unaaccin externa como la entrada de informacin por teclado; o bien el proceso pasa a estadopreparado debido a que ha agotado su tiempo de ejecucin, por lo que cede su tiempo deejecucin. Bloqueado (wait, en espera). El proceso est esperando a que se produzca unevento externo, como una seal de E/S, y pasara a estado ejecucin. Al igual que el estadopreparado, el proceso puede finalizar debido a un acontecimiento externo. El sistema operativoutiliza varias colas para gestionar los estados, cada cola puede tener una poltica diferente. As,podemos encontrar una cola para los estados preparados y una cola para los estados enespera. El planificador del procesador al examinar estas colas asigna el procesador al procesoms conveniente.

    19

  • 7/22/2019 Comparacion SO

    19/71

    TFC: Arquitectura de Computadores y Sistemas Operativos 3.3. Planificacin de un procesoEl sistema operativo es el encargado de decidir qu procesos entran en la CPU cuando staqueda libre, y en qu momento sale de la CPU el proceso que est en ejecucin. Todo ello selleva a cabo a travs de una poltica de planificacin de procesos. Se pueden definir mltiplespolticas de planificacin de procesos: por orden de llegada, primero la tarea ms breve, por

    orden de prioridad, etc. En definitiva, lo que una poltica de planificacin debe conseguir es quelos procesos obtengan adecuadamente sus turnos de ejecucin por lo que son tratados de lamisma forma, que no se produzca sobrecarga, es decir, el planificador debe responderrpidamente ante cargas de trabajo ligera y responder de la misma forma ante cargas detrabajo similares. Y obtener un buen rendimiento, por lo se debe lograr finalizar el mayornmero de procesos y maximizar el tiempo de respuesta. No existe una poltica de planificacinptima para todas las computadoras, sino que depende de las caractersticas de los procesos.

    As se puede ver cmo una poltica obtiene unos resultados excelentes en un sistema, sinembargo en otro sistema el rendimiento es mucho menor. Ello se debe a las caractersticas delos procesos, donde cada uno puede tener una cantidad de operaciones de E/S enorme cmoes el caso de las bases de datos, otros usan mayormente la CPU, otros realizan una mayorlectura de datos frente a otros, hay procesos que requieren una prioridad mxima en los turnosde ejecucin, es el caso de los procesos de tiempo real, y hay procesos que requieren mstiempo de ejecucin que otros, por lo que habr que valorar si terminar primero los cortos o no.Existen diferentes planificadores en el sistema. Primero nos encontramos el planificador a largoplazo, el cual es el encargado de controlar el grado de multiprogramacin en el sistema,intentando conseguir una mezcla adecuada de trabajos en CPU y E/S. Es por tanto elencargado de suministrar los procesos a la cola de planificacin a corto plazo. Existe tambinun planificador a medio plazo. Es el encargado de suspender y posteriormente restaurarprocesos de poco inters, realizando el intercambio de los mismos entre la memoria principal yel disco o memoria secundaria. Dicho proceso es conocido como swapping, y se ejecutacuando hay escasez de recursos.

    20

  • 7/22/2019 Comparacion SO

    20/71

    TFC: Arquitectura de Computadores y Sistemas OperativosEl planificador a corto a plazo es el encargado de asignar y desasignar la CPU. Su trabajo escoger un proceso de la cola de procesos preparados y asignarle una CPU. Hay dos tipos deplanificadores a corto plazo; no expulsivas, el proceso abandona la CPU cuando termina o a laespera de un suceso externo; y expulsivas, el proceso que se est ejecutando puede pasar a

    estado listo enviado por parte del sistema operativo, es el caso de los sistemas de tiempocompartido y tiempo real, como UNIX, Windows NT/XP o superior, MAC OS X. Las polticas deplanificacin de procesos ms comunes son las siguientes: Primero en llegar, primero en salir(FCFS). El primero proceso que llega a la cola de preparados ser el primero en ser planificadoy pasado a la CPU. Es no expulsiva, por lo que no es adecuada para los sistemas de tiempocompartido, por lo que provocan una especie de convoy con los procesos de E/S. Primero elproceso ms corto (SJF). Cuando el proceso que est en la CPU cesa su ejecucin se elige dela cola de procesos preparados aquel cuya rfaga de CPU sea menor, es decir, que su tiempode ejecucin sea menor. Es del tipo no expulsiva, aunque existe una versin expulsiva (SRTF)que cuando llega un proceso ms pequeo que el que se est ejecutando a la cola depreparados, ste es bloqueado y pasa a estado preparado mientras se ejecuta el nuevoproceso. Prioridades. Cada proceso tiene asignada una prioridad ya sea por medio del sistemaoperativo o por el usuario. Los procesos se dividen en distintas colas dependiendo de laprioridad, por lo que el planificador elegir primero los procesos de la primera cola medianteFIFO, y cuando quede vaca elegir los de la segunda cola. Esta poltica puede ser expulsiva ono. Esto puede provocar que haya procesos que se queden sin ejecutar debido a estaprioridad, la solucin pasara por aumentar la prioridad progresivamente a los procesos enespera. Turno rotatorio (Round-Robin). Adecuado para los sistemas de tiempo compartido.Consiste en generar peridicamente una interrupcin de reloj, donde cada proceso dispone deun cuanto de tiempo mximo (quantum), por lo que cuando termina este tiempo, el proceso enejecucin pasa a preparado y pasa a ejecutarse el siguiente proceso en la cola de preparadossegn FIFO. Retroalimentacin. Otro tipo de planificacin es trabajar con diferentes colas depreparados cada una con una poltica diferente. As si un proceso que ha pasado del estadoejecucin al estado preparado, primero estaba en la cola 1 y ahora

    21

  • 7/22/2019 Comparacion SO

    21/71

    TFC: Arquitectura de Computadores y Sistemas Operativospasa a la cola 2, y as sucesivamente hasta llegar a la ltima cola hasta que termina. Losprocesos en Linux pueden ser divididos en tres categoras: interactivos, tiempo real o por lotes.Los procesos de tiempo real son manejados bien por un algoritmo FIFO o turno rotatorio(Round-Robin), ya que al ser procesos considerados como prioritarios deben de ser ejecutados

    antes que los dems. Los dems procesos son manejados utilizando una planificacin Round-Robin con un sistema de envejecimiento utilizado en la planificacin de prioridades mencionadaMientras en Windows, la planificacin de procesos se basa en la utilizacin de colas mltiplesde prioridades. Posee 23 niveles de colas clasificadas de la 31-16 en clase de tiempo real y lasdems en clase variable. Cada cola es manejada mediante Round-Robin, pero si llega unproceso con mayor prioridad, se le es asignado el procesador. El caso de Mac OS X esparecido al de Windows, utilizando varias colas de procesos cada una con un nivel de prioridad.Un hilo puede pasar de una cola a otra dependiendo de los requerimientos. Estos niveles sepueden manejar mediante llamadas al sistema. Los niveles son: normal, alta, Kernel y tiemporeal.

    3.4. Creacin y destruccin de procesosLos sistemas operativos que son objeto de estudio tienen diferentes formas en la gestin deprocesos, por lo que en este apartado haremos una distincin entre el sistema UNIX y elsistema Windows. El por qu se hace el estudio del sistema UNIX es debido a que tanto elsistema Linux como el sistema Mac OS X estn basados en dicho sistema, por lo que es msrazonable hacer la mencin a UNIX y no a estos dos sistemas. Las nicas diferenciasfundamentales detectadas entre UNIX y Mac OS X se basan en el sistema de ficheros, dondeMac OS X utiliza HFS+ frente al UFS de UNIX y el estndar ext3 de Linux. Respecto al Kernel,ambos sistemas estn basados en el Kernel de UNIX, pero actualmente Mac OS X utiliza unhbrido del ncleo de UNIX Mach llamado XNU, mientras que Linux utiliza un ncleo monolticollamado Linux.

    22

  • 7/22/2019 Comparacion SO

    22/71

    TFC: Arquitectura de Computadores y Sistemas OperativosUNIX. Los procesos en los sistemas UNIX estn identificados por un nmero que es nico(PID), adems de que cada proceso el espacio de memoria utilizado, formado por tressegmentos: el cdigo, los datos y la pila. Tambin contiene la informacin de control delproceso, que indica la planificacin y estado del proceso, la estructuracin de datos y la

    comunicacin entre procesos. Otra informacin importante es el nmero de identificacin deusuario (UID) y el nmero de identificacin del grupo de usuarios al que pertenece el proceso(GID). Todo ello pertenece al bloque de control de proceso (PCB). La creacin y destruccin deprocesos en UNIX se ajusta a la filosofa de la manera ms sencilla posible, as las llamadas alsistema tienen el mnimo nmero de parmetros. Las llamadas correspondientes a la creacin,destruccin y bloque o espera de un proceso son respectivamente: fork, exit y wait. La llamadafork crea un nuevo proceso hijo idntico al proceso padre. Tienen la misma imagen dememoria, el mismo bloque de control de proceso y los mismos archivos abiertos, aunquesituados en distintos espacios de memoria. Para poder distinguir a ambos procesos, la llamadafork devuelve distintos valores, el hijo recibe un valor 0 y el padre el PID del hijo. La llamadaexit finaliza un proceso. Cuando se produce esta finalizacin del proceso hijo, se manda alsistema la llamada wait, para que el padre se bloquee a la espera de la finalizacin del hijo. Siel proceso hijo finalizara antes de que el padre recibiera esta llamada, el proceso hijo seconvertira en un proceso en estado zombie, y hasta que no se ejecute esta llamada wait elproceso no se eliminar. Para evitar la acumulacin de procesos UNIX prev un lmite denmeros de procesos zombie y aquellos procesos hijos que se destruyen ms tarde que susprocesos padres, al quedar hurfanos sera el primer proceso del sistema (init) el que seencarga de recoger su estado de finalizacin. La llamada wait bloquea el proceso que lo hallamado hasta que uno de sus procesos hijos es destruido, por lo que si el proceso no tienehijos wait regresa y el valor devuelto es igual al Pid de dicho proceso hijo. En UNIX se puedeutilizar un comando para eliminar un proceso que se est ejecutando por la razn queestimemos oportuno; gran consumo de recursos, ya no es necesario, etc. Esta orden es kill Pidproceso a eliminar, por lo que para eliminar un proceso primero se debe conocer su Pid. 23

  • 7/22/2019 Comparacion SO

    23/71

    TFC: Arquitectura de Computadores y Sistemas OperativosWindows. Un programa en Windows es controlado por eventos. As el programa principalespera la llegada de un evento como puede ser al presionar una tecla, y posteriormente invocaun procedimiento para procesar dicho evento, actualizacin de pantalla, del programa, etc.Windows tambin tiene llamadas al sistema al igual que UNIX, de hecho el nmero de llamadas

    es extremadamente grande. En Windows encontramos que por cada llamada al sistema existeun procedimiento de biblioteca que los invoca. Por ello Windows ha creado un conjunto deprocedimientos, llamado API Win32 [5], que se ha de utilizar para solicitar servicios al sistemaoperativo. La creacin de procesos en Windows se genera mediante la llamada CreateProcess,que tanto crea el proceso como carga el programa en el nuevo proceso. Esta llamada tiene 10parmetros: el programa a ejecutar, atributos de seguridad, bits de control de archivos abiertos,prioridad, especificacin de la ventana a crear y un apuntador a la estructura a la que alinvocador se le devuelve informacin del proceso recin creado. CreateProcess tiene 100funciones ms para administrar y sincronizar procesos. Al igual que en UNIX, en Windows secrea un nuevo proceso hijo a partir del padre, el cual tiene su propio espacio de direccionescomo en UNIX, pero mientras en UNIX el espacio de direcciones del hijo era una copia delpadre, en Windows el espacio de direcciones del hijo es completamente diferente al del padredesde el principio. La llamada en Windows relativa a la destruccin de un proceso esExitProcess, y al igual que ocurra con UNIX cuando se especifica la llamadaWaitForSingleObject junto con un parmetro que especifica un proceso, quien lo invoca esperahasta que se produce la finalizacin del proceso. En Windows encontramos multitud dellamadas al sistema igual que en UNIX (Figura 25), aunque hay algunas en UNIX que no sepueden utilizar en Windows, como es el manejo de enlaces, manejo de montaje de unidades,etc. Si en UNIX utilizamos la orden kill Pid para eliminar un proceso, en Windows existe lafuncin TerminateProcess.

    24

  • 7/22/2019 Comparacion SO

    24/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    UNIXFork Waitpid Execve Exit Open Close Read Write Lseek Stat Mkdir Rmdir Link Mount unmountChdir Kill Time

    WIN32CreateProcess WaitForSingleObject (ninguna) ExitProcess CreateFile CloseHandle ReadFileWriteFile SetFilePointer GetFileAttributesEx CreateDirectory RemoveDirectory (ninguna)(ninguna) (ninguna) SetCurrentDirectory TerminateProcess GetLocalTime

    DescripcinCrea un proceso nuevo Puede esperar a que un proceso termine CreateProcess= fork +execve Termina la ejecucin Crea un archivo o abre uno existente Cierra un archivo Lee datosde un archivo Escribe datos en un archivo Mueve el apuntador de archivo Obtiene diversosatributos de archivo Crea un directorio nuevo Elimina un directorio vaco Win32 no manejaenlaces Win32 no maneja montajes Win32 no maneja montajes Cambio el directorio de trabajoactual Elimina un proceso Obtiene la hora actual

    Figura 5. Llamadas de la API Win32 que corresponden con llamadas de Unix

    4. Gestin de memoriaLa gestin de memoria se encarga de asignar la memoria fsica del sistema a los programas,stos se expanden hasta llenar la memoria con que se cuenta. Todas las computadoras tienenuna jerarqua de memoria, con una pequea cantidad de memoria cach, una cantidad muchomayor de memoria principal (RAM) y decenas o centenas de gigabyte de almacenamiento endisco. El administrador de memoria es el encargado de administrar la jerarqua de memoria. Esel encargado de saber qu partes de la memoria estn en uso o no, asignar y liberar lamemoria principal a los procesos que la requieren, y administrar los intercambios entre lamemoria principal y el disco. Se puede decir que los objetivos principales de un sistema degestin de memoria pasan por ofrecer a cada proceso un espacio lgico propio proporcionandouna proteccin entre los procesos, permitir que los procesos compartan la memoria. Adems sedebe maximizar el rendimiento del sistema y proporcionar a los procesos mapas de memoriagrandes. En un sistema de multiprogramacin cada programa debe contener dentro del cdigoreferencias al espacio de memoria a utilizar, ya que el mismo no siempre ser el mismo, portanto el sistema tendr que realizar una reubicacin de las direcciones

    25

    TFC: Arquitectura de Computadores y Sistemas Operativosde memoria a las que hacen referencia las instrucciones de los programas para que secorrespondan con las direcciones de memoria principal asignadas al mismo. Esto se logra atravs de la unidad de manejo de memoria (MMU), que como se ha comentado se encarga deconvertir las direcciones lgicas (memoria virtual) emitidas por los procesos en direccionesfsicas. Adems se encarga de que la conversin se realiza con xito y que el proceso queintenta acceder a las direcciones de memoria correspondientes tiene permiso para ello. Encaso de fallo se enva una excepcin que ser tratada por el kernel. ste ltimo est siempre

  • 7/22/2019 Comparacion SO

    25/71

    en la memoria principal, ya que si estuviera en la memoria secundaria nadie podra llevarlo a lamemoria principal en caso de fallo de acceso a memoria. Dentro de la MMU existe unapequea memoria asociativa denominada TLB (Translation Lookaside Buffer), que mantiene lainformacin de las ltimas pginas accedidas. Se puede decir que se trata de una memoria tipocach. Con ello se evita que el procesador est siempre leyendo la tabla de pginas

    directamente, con el consecuente decremento de rendimiento. El funcionamiento del TLBconsiste en verificar si la direccin requerida se encuentra en el mismo, si es asautomticamente la MMU traducir la direccin lgica en su respectiva direccin fsica para serutilizada. En cambio, si la direccin no est presente en el TLB se produce un fallo de pgina,por lo que se proceder a buscar en la tabla de direccin mediante un proceso llamado pagewalk. Este proceso es costoso, ya que requiere de la lectura de mltiples ubicaciones dememoria. Una vez determinada la direccin fsica a travs del page walk, el mapeo de ladireccin virtual a la fsica es ingresado en el TLB para su posterior uso.

    4.1. Memoria principalLa memoria principal constituye el dispositivo de almacenamiento primario de loscomputadores. De carcter voltil, en ella se ubican los datos que precisan los programas parasu ejecucin. Esta memoria es de mayor costo que la memoria secundaria, pero el acceso a suinformacin es mucho mayor.

    26

  • 7/22/2019 Comparacion SO

    26/71

    TFC: Arquitectura de Computadores y Sistemas OperativosLa memoria principal se comunica con la CPU mediante el bus de direcciones, y es el ancho deeste bus el que determina la capacidad del microporcesador para el direccionamiento dedirecciones de memoria. Se puede decir de manera coloquial que la memoria principal estformada como un conjunto de casillas, cada una con una direccin que las identifica, donde se

    almacenan los datos y las instrucciones correspondientes a los programas. Cada casilla estenumerada con lo que se denomina direccin de memoria.

    4.2. Memoria virtualEl tamao del programa, datos y pila puede exceder la cantidad de memoria fsica disponible,por lo que el sistema guarda en la memoria secundaria aquellas partes del programa que noestn en ejecucin o que no tienen espacio para ser cargadas en la memoria principal. Lamemoria virtual utiliza estos dos niveles de jerarqua de memoria: principal y secundaria o derespaldo que suele ser el disco. Con ello podemos obtener una cantidad de memoria mayorque la memoria fsica disponible, y por tanto ejecutar procesos con una memoria lgica mayorque la memoria fsica disponible. Hay que resaltar que el uso de la memoria virtual no acelerala ejecucin de un programa, sino que puede incluso que la ralentice debido a la sobrecargaasociada a las transferencias entre la memoria principal y la secundaria. Esto hace que estatcnica no sea apropiada para sistemas de tiempo real. Sobre la memoria de respaldo seestablece un mapa uniforme de memoria virtual, y son a estas direcciones del mapa a las quese refiere el procesador en la ejecucin del programa, pero los accesos reales se realizansobre la memoria principal. La memoria virtual requiere por tanto de una gestin automtica dela jerarqua de memoria formada por la memoria principal y el disco. El sistema operativogestiona la transferencia de bloques desde la memoria principal a la memoria secundaria quesirve de respaldo a la memoria virtual. Las direcciones generadas por las instruccionesmquina estn referidas al espacio virtual. En este sentido se habla de que el procesadorgenera direcciones virtuales. El mapa virtual asociado a un programa en ejecucin estsoportado fsicamente por una zona del disco denominada de intercambio o swap, y por unazona de la memoria principal.27

  • 7/22/2019 Comparacion SO

    27/71

    TFC: Arquitectura de Computadores y Sistemas OperativosLa memoria virtual se implementa sobre un esquema de paginacin. A este dispositivo se ledenomina dispositivo de paginacin. Se denominan pginas virtuales a las pginas de espaciovirtual, pginas de intercambio a las pginas residentes en el disco y marcos de pgina a losespacios en los que se divide la memoria principal. Cada marco de pgina es capaz de

    albergar una pgina virtual cualquiera. Se puede decir que la unidad de hardware denominadaMMU, traduce el nmero de pgina virtual en el correspondiente nmero de marco de pgina.Cuando las pginas de memoria de un programa necesarias para su ejecucin no seencuentren en memoria principal, la MMU producir la respectiva excepcin. Los fallos depgina son atendidos por el sistema operativo que se encarga de realizar la adecuadamigracin de pginas, para traer la pgina requerida por el programa a un marco de pgina. Sedenomina paginacin por demanda al proceso de migracin necesario para atender los fallosde pgina. En el siguiente punto se profundizar ms en este proceso de paginacin. Tambincabe resear que el tamao del espacio virtual suele ser muy grande, y dado que losprogramas requieren en general mucho menos espacio, una de las funciones que realizar elsistema operativo es la asignacin de espacio virtual a los programas en ejecucin. Elprograma no podr utilizar todo el espacio virtual sino que se tiene que restringir a la zona ozonas que le asigne el sistema operativo. Estas zonas se denominan segmentos, y a dichoproceso segmentacin que se profundizar ms adelante.

    4.2.1. Traduccin de pgina virtual a fsicaLa memoria fsica de un ordenador es una secuencia de bytes donde cada bytes tiene unadireccin que es la posicin que ocupa en la propia memoria. Las direcciones de memoria queutiliza un programa no son directamente las direcciones fsicas, sino que son direccioneslgicas que son traducidas o mapeadas en direcciones fsicas. Para realizar la traduccin esnecesaria la utilizacin de hardware con ayuda del sistema operativo. Respecto a estehardware hablamos del gestor de memoria (MMU) junto con el bfer de traduccin anticipadade instrucciones (TLB).

    28

  • 7/22/2019 Comparacion SO

    28/71

    TFC: Arquitectura de Computadores y Sistemas OperativosEl gestor de memoria ser el encargado de traducir las direcciones virtuales a direcciones dememoria principal, de tal forma que cada una corresponda con su respectivo marco de pgina.

    4.2.2. Paginacin

    La paginacin surge como intento de paliar los problemas de asignacin de memoria contigua,sofisticando el hardware de gestin de memoria (MMU) del procesador y aumentandoconsiderablemente la cantidad de informacin de traduccin que se almacena por cadaproceso. La MMU usa dos tablas de pginas. Una tabla de pginas de usuario para traducir lasdirecciones lgicas del espacio de usuario y una tabla de pginas del sistema para lasdirecciones lgicas del espacio del sistema. La paginacin no proporciona un aprovechamientoptimo de la memoria como lo hara un esquema que permitiese que cada palabra del mapa dememoria de un proceso pudiera corresponder con cualquier direccin de memoria, pero estoimplicara una enorme cantidad de informacin de traduccin. En la paginacin cada pgina delmapa de un proceso puede corresponder con cualquier marco de memoria. Esto reducedrsticamente el tamao de la tabla de traduccin. Cada entrada de la tabla de pginas,adems del nmero de marco que corresponde con esa pgina, contiene informacin adicionalcomo la proteccin de la informacin y la indicacin de pgina vlida mediante un bit deconfirmacin. Un aspecto importante en el rendimiento de un sistema de paginacin es eltamao de la pgina. Un tamao pequeo reduce la fragmentacin y permite ajustarse mejor alconjunto de trabajo del proceso. Sin embargo, un tamao grande implica tablas ms pequeasy un mejor rendimiento en los accesos a disco.

    4.2.3. SegmentacinEl sistema operativo debe guardar para cada proceso una tabla de regiones que especifiquenqu pginas pertenecen a cada regin. Esto implica que hay que rellenar las entradas de laspginas pertenecientes a la regin con las

    29

  • 7/22/2019 Comparacion SO

    29/71

    TFC: Arquitectura de Computadores y Sistemas Operativosmismas caractersticas y que para compartir la regin, las entradas correspondientes de dosprocesos deben apuntar al mismo marco. La segmentacin es una tcnica que intenta darsoporte a las regiones. Para ello, considera el mapa de memoria de un proceso compuesto demltiples segmentos. Cada regin se almacenar en un segmento que tendr un tamao

    variable. Dado que cada segmento se almacena en memoria de forma contigua, este esquemapresenta fragmentacin externa, por lo que hace disminuir el rendimiento de dicho sistema.

    4.3. Gestin de Memoria en UNIX Al igual que en el apartado de procesos se realiz una comparacin de la forma en que los dossistemas operativos; UNIX y Windows, realizan dicha tarea, en este punto se realizar unasreseas de cmo el sistema UNIX realiza la gestin de memoria, y en el punto 4.4 se realizarsobre el sistema Windows. Slo se realizar este estudio de estos dos sistemas, porque cmoya se ha comentado, los sistemas que van a ser objeto de estudio, Linux y Mac OS X, estndiseados a partir de UNIX, de ah que se elija dicho sistema. El otro sistema a estudiar serWindows 7, de ah que sea tambin objeto de estudio. En el sistema operativo UNIX, la gestinde memoria ha variado de las versiones antiguas a las actuales. Antes, UNIX se basaba sloen el intercambio (swapping) donde se empleaban particiones variables sin ningn tipo deesquema de memoria virtual. Las versiones actuales se basan en la memoria virtual paginada,utilizando para ello la paginacin combinado con el intercambio. Las direcciones lgicasgeneradas por un programa se dividen en un nmero de pginas con el mismo tamao. Estetamao vara dependiendo de la versin, utilizndose en versiones anteriores tamaos de 512bits o 1024 bits. Hoy en da, con las CPUs actuales el tamao de pgina en los equipos a 32bits es de 4 KB, por lo que el espacio de direcciones es de 2 elevado a 32 bits (4 GB).Respecto a la paginacin, ya se ha tratado en el punto 4.2.1., UNIX utiliza las tablas depginas, el descriptor del bloque donde se almacena la informacin para acceder a la pginaen memoria secundaria y los marcos de pgina que guarda

    30

  • 7/22/2019 Comparacion SO

    30/71

    TFC: Arquitectura de Computadores y Sistemas Operativosinformacin acerca del estado de la pgina, el nmero de procesos que referencia al marco y eldispositivo que contiene la copia de la pgina. Los marcos no asignables a un proceso sonmarcos libres asignables a cualquier proceso. El sistema define el nmero mnimo de marcoslibres, que comprueba peridicamente. Si en un instante no se alcanza dicho lmite, un proceso

    paginador envejece las pginas. Toda referencia a una pgina pone a cero la edad de lapgina. Si la pgina pasa una edad, la pgina pasa a estado libre. La pgina de un marco librepuede ser rescatada en una referencia si el marco no hubiera sido asignado antes. Ensituaciones donde hay mucha demanda por parte de los procesos, puede ocurrir que elpaginador no sea capaz de conseguir marcos libres a la velocidad necesaria. Entonces escuando se produce el swapping, mediante el cual se saca algn proceso de la memoriaprincipal y se pasa a la memoria secundaria (swap out). En cambio cuando existe espacio en lamemoria principal, se intercambian los procesos a memoria copiando desde el rea deintercambio (swap in). Los criterios de eleccin se basan en el estado del proceso, su prioridad,el tamao del programa y el tiempo que lleva en memoria. Para soportar swapping se requiereun espacio de intercambio en almacenamiento secundario, normalmente en un disco. Se puedeutilizar un dispositivo especfico, una particin del disco o incluso compartir la misma particindel sistema de ficheros. En los sistemas UNIX se suele utilizar una particin del disco para ello.En los sistemas UNIX se puede observar como en memoria se carga todo lo que se pueda. Esdecir, se utiliza la memoria como cach de datos. Esto se utiliza para optimizar el sistema yhacerlo ms rpido. En memoria se carga todos los datos a los que tenga que acceder la CPU,por lo que si sta tiene los datos en memoria en vez de en el disco, la rapidez de acceso a losmismos ser mayor, por lo que el rendimiento aumenta. Ello hace que se optimice la mayorcantidad de memoria principal disponible, ya que el uso de la misma es del 100%. En cuanto,un proceso requiera de memoria se utilizar los mecanismos de swapping ya descritosliberando la memoria utilizada para cach. Ello no ocurre en el sistema Windows donde comose ver en el siguiente punto no utiliza el total de la memoria para cach de datos de la CPU.En UNIX las pginas pueden estar en diferentes estados. El valor de este estado se refleja enel campo flags de la pgina. A continuacin se describen los estados que puede estar unapgina:

    31

  • 7/22/2019 Comparacion SO

    31/71

    TFC: Arquitectura de Computadores y Sistemas OperativosCONSTANTE (FLAGS) PG_locked PG_error PG_referenced PG_uptodate PG_dirty PG_lruPG_active PG_slab PG_owner_priv_1 PG_arch_1 PG_reserved PG_private PG_writebackPG_compound PG_swapcache PG_mappedtodisk PG_reclaim PG_buddy VALOR 0SIGNIFICADO La pgina est bloqueada en memoria Se ha producido un error en la carga de

    la pgina en memoria La pgina ha sido accedida El contenido de la pgina est actualizadoIndica si el contenido de la pgina se ha modificado La pgina est en la lista de pginasactivas e inactivas La pgina est en la lista de pginas activas El marco de pgina estincluido en un slab

    12

    3 4 5 6 7 8 9 10 11 12 14 15 16 17 19

    La pgina est reservada para un uso futuro, no es posible acceder a ella. Contiene datosprivados Se indica que la pagina usa el mtodo writeback Indica si la pgina esta intercambiadaIndica si la pgina est intercambiada Pgina marcada para escribirse a disco Pgina libre enlistas buddy

    Figura 6. Estados de las pginas de memoria en UNIX

    4.4. Gestin de Memoria en WindowsLos procesos dentro de Windows utilizan un espacio de direcciones de 32 bits que permitehabilitar un espacio de direcciones de hasta 4 gigabytes de direcciones, o 8 terabytes en elcaso de los sistemas de 64 bits. Cuando todos los procesos que se ejecutan en el sistemarequieren de ms memoria que la disponible, Windows utiliza la alternancia entre la memoriavirtual (determinado por un archivo de paginacin) y la memoria fsica, que al igual que enUNIX recibe el nombre de swapping. Este intercambio se realiza no de bytes a bytes, sino depgina a pgina, que en Windows son bloques de 4 KB donde se almacenan los datos de losprocesos. De ah que toda la memoria est paginada, tanto la fsica como la virtual. La fsica enforma de marcos de pgina y la virtual en forma de pginas. Adems, Windows dispone detablas de pginas que son las que apuntan a las propias pginas, y los punteros de estastablas se almacenan a su vez en un directorio de pginas. Cada proceso dispone slo de undirectorio.

    32

  • 7/22/2019 Comparacion SO

    32/71

    TFC: Arquitectura de Computadores y Sistemas OperativosEl espacio de direcciones para un proceso es el conjunto de direcciones de memoria virtual quepuede utilizar. El espacio de direcciones para cada proceso es privado y no se puede accederpor otros procedimientos, a menos que se comparta. Una direccin virtual no representa laubicacin fsica real de un objeto en la memoria, sino que el sistema mantiene una tabla de

    pginas para cada proceso. El sistema traduce la direccin virtual a una direccin fsicamediante diferentes algoritmos, lo que hace que no se pueda acceder a las posiciones de otrosprocesos porque no es posible hacer referencia a dichas posiciones. A diferencia de los otrossistemas, las pginas pueden estar en tres estados; libre, donde no puede ser accedida porningn proceso pero s reservada o encargada; reservada, es un espacio de direccin virtualfijada para usos futuros; encargada, aquella que ha sido asignada a un espacio fsico, ya seaen memoria fsica o virtual.

    5. Implementacin A lo largo de los siguientes apartados se realizar una descripcin de los pasos seguidos en lainstalacin y configuracin de los equipos para realizar los respectivos test. De esta forma,tendremos una idea de los pasos necesarios para poder abordar el problema del anlisis de losdistintos sistemas. Se detallarn los problemas encontrados en la instalacin de dichossistemas, de su posterior instalacin dentro de un Hypervisor y de la instalacin y configuracinde Apache como servidor Web. Adems se har una breve explicacin de los puntos relativos alos programas de benchmarking utilizados, es decir, cmo se realizarn los test, quconfiguracin de dichos programas ser necesaria para dicha accin, etc. En definitiva, semencionarn todos los pasos necesarios para implantar el pequeo laboratorio de test.

    5.1. Hypervisor 5.1.1. Concepto de HypervisorLa virtualizacin es una tecnologa compuesta por una capa de software permitiendo lainstalacin y utilizacin de varios sistemas operativos sobre la misma mquina fsica. Esta capade software es el Hypervisor o Monitor de Mquina Virtual (Virtual Machine Monitor, VMM).33

  • 7/22/2019 Comparacion SO

    33/71

    TFC: Arquitectura de Computadores y Sistemas OperativosEl VMM crea una capa de abstraccin entre el hardware de la computadora central, o fsica(host), y el sistema o sistemas operativos de las mquinas virtuales. De manera que presentaun hardware compatible con los sistemas operativos que se vayan a instalar. La mquina virtuales un sistema operativo que corre como si estuviera instalado en una plataforma de hardware

    autnoma. La VMM maneja y gestiona los cuatro recursos principales de la computadora: CPU,Memoria, Almacenamiento y Red. La VMM puede distribuir dinmicamente dichos recursosentre las distintas mquinas virtuales. Hay varios tipos de virtualizacin como ya se hacomentado. Tipo I. Denominada virtualizacin nativa o bare metal (metal desnudo). Consiste enla instalacin del software Hypervisor sobre el hardware de la mquina fsica. Tipo II.Denominada hosted, donde el software Hypervisor se instala sobre el sistema operativo quecontenga el host.

    5.1.2. Instalacin del HypervisorComo se ha comentado en la introduccin de este trabajo, en concreto en el punto 1.3Planificacin del proyecto, el software de virtualizacin que vamos a utilizar es VMWareWorkStation 7. En un principio la opcin elegida era VMWare Server 2, debido a que este tipode virtualizacin era del tipo I, y se podran ver mejores resultados. Pero debido a laincompatibilidad del hardware de la mquina que se est utilizando no ha sido posible instalardicho software. La instalacin de VMWare WorkStation 7 se ha realizado sobre el sistemaoperativo Windows 7 Profesional 64 bits. La instalacin ha sido estndar por lo que no harequerido de ninguna configuracin especial.

    5.1.3. Creacin y configuracin de mquinas virtualesPara la creacin de las mquinas virtuales se han utilizados los mismos parmetros para cadauno de los tres sistemas a instalar. Para que cada uno tenga el mismo hardware. Dichohardware se compone de los siguientes parmetros:

    34

  • 7/22/2019 Comparacion SO

    34/71

    TFC: Arquitectura de Computadores y Sistemas OperativosLa primera opcin que aparece es la especificacin del nmero de procesadores. Se ha elegidoutilizar un procesador con 2 cores por procesador, por lo que en total tendr dos procesadores.Como ilustra la siguiente imagen.

    Figura 7. Nmero de procesadores-

    Memoria. El tamao de la memoria ser el mismo para todos. En este caso se va aproporcionar 2 GB de memoria RAM a cada equipo. Aunque el equipo fsico slo dispone de 4GB, se tendr que iniciar cada equipo de forma individual para proceder a su anlisis. Nuncatendremos iniciados los tres equipos a la vez. A continuacin se muestra la imagen con laopcin de memoria elegida (Figura 8).

    Figura 8. Tamao de memoria elegida para las mquinas virtuales 35

  • 7/22/2019 Comparacion SO

    35/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    -

    La siguiente opcin a elegir en la creacin de la mquina virtual es la conexin de red. En estecaso la opcin ha de ser Use bridged networking (Figura 9). De este modo cada mquinapodr tener su propia direccin ip.

    Figura 9. Modo de conexin de red

    -

    Seleccionamos el controlador SCSI por defecto por ser ms compatibles que otros. Al utilizardistintos sistemas operativos tan dispares, si se quiere tener las mquinas lo ms parecidaposible se tiene que optar por los componentes estndar en detrimento de componentes quepuedan dar mayor rendimiento.

    Figura 10. Modo de conexin de red

    36

  • 7/22/2019 Comparacion SO

    36/71

    TFC: Arquitectura de Computadores y Sistemas OperativosOtra de las opciones a configurar ser la capacidad del disco que ser de 20 GB. Adems seconfigura que dicho sistema sea guardado en un fichero lo que permite mayor seguridad a lahora de hacer copias de seguridad.

    Figura 11. Capacidad del discoSe puede ver en la siguiente imagen (Figura 12) las tres mquinas virtuales creadas, y comoest ejecutndose la mquina virtual con el sistema operativo Mac OS X 10.6.4

    Figura 12. Mquinas Virtuales en VMware 37

  • 7/22/2019 Comparacion SO

    37/71

    TFC: Arquitectura de Computadores y Sistemas Operativos 5.1.4. Instalacin de los SistemasOperativosLa instalacin de los sistemas operativos se lleva a cabo igual que en una computadora normal.En este caso VMWare permite elegir como origen de la instalacin una imagen iso del sistemaoperativo, por lo que no sera necesario tener acumulados los CD o DVD de instalacin de

    dichos sistemas. Respecto a la instalacin de los sistemas operativos, se realizar unainstalacin estndar en cada uno de ellos, configurando slo los aspectos de zona horaria,usuario y dems campos estndar solicitados. No se instalar ningn software que no sea losnecesarios para la instalacin de Wordpress, que ser la aplicacin web que proporcionar laspginas que sern testeadas por los benchmarking. Dicho requerimiento consta del servidorweb Apache, del entorno de programacin PHP y del gestor de base de datos Mysql. Acontinuacin se muestra una imagen con el comienzo de la instalacin de uno de los sistemasoperativos. En concreto se trata de la instalacin del sistema operativo Ubuntu, el cual se hainstalado desde una imagen iso descargada desde la pgina oficial de dicho sistema [6].

    Figura 13. Instalacin de Ubuntu en mquina virtual

    38

  • 7/22/2019 Comparacion SO

    38/71

    TFC: Arquitectura de Computadores y Sistemas OperativosDentro de los problemas encontrados en la instalacin de los sistemas, cabe mencionar lautilizacin de la EFI (Extensible Firmware Interface) a la hora de instalar Mac OS X. Estainterface es necesaria para el arranque del sistema Mac OS X y hace las funciones de la BIOSde las computadoras personales (PC). No se han encontrado ningn tipo de problema de otra

    ndole, como por ejemplo en la creacin de particiones. Al dejar todo por defecto no se haencontrado ninguna diferencia entre dichos sistemas operativos.

    5.2. Sistemas Operativos 5.2.1. ConfiguracinLa configuracin de los sistemas operativos se va a basar simplemente en la configuracin deuna ip diferente en cada uno de los sistemas, para diferenciar claramente el acceso a cada unode ellos. De esta manera los sistemas tendrn las siguientes direcciones de red. Respecto a laconfiguracin que haya que realizar para poder instalar las aplicaciones Apache, PHP y Mysql,se realizarn en el punto 5.2.2 y sus apartados.

    - Sistema Ubuntu. Tendr como direccin de red la siguiente:192.168.1.210 Mscara de subred 255.255.255.0 Puerta de enlace 192.168.1.100 192.168.1.13Servidores DNS 192.168.1.11 Direccin IP

    - Sistema Windows. Tendr la siguiente direccin de red:192.168.1.211 Mscara de subred 255.255.255.0 Puerta de enlace 192.168.1.100 192.168.1.13Servidores DNS 192.168.1.11 Direccin IP

    39

    TFC: Arquitectura de Computadores y Sistemas Operativos - Sistema Mac OS X. tendr comodireccin de red:192.168.1.212 Mscara de subred 255.255.255.0 Puerta de enlace 192.168.1.100 192.168.1.13

    Servidores DNS 192.168.1.11 Direccin IP5.2.2. Servidor Web Apache 5.2.2.1. Concepto

    Apache es un software cdigo abierto que pone a disposicin de todo aquel que quiera utilizarlocomo servidor web. Este software es fruto de la colaboracin de un grupo de voluntarios entodo el mundo que planean y desarrollan las mejoras necesarias para conseguir unaimplementacin de cdigo robusto. Apache es un servidor modular, por lo que se irnaadiendo aquellos mdulos que sean necesarios. Tambin es multiplataforma, ya que sepuede instalar en sistemas tan diversos como UNIX, Windows, Mac, etc. como se podrcomprobar a lo largo de este trabajo. Apache presenta entre otras caractersticas mensajes deerror altamente configurables, bases de datos de autenticacin, etc. pero la falta de una interfaz

    grfica que ayude a su configuracin hace que reciba ciertas crticas. A pesar de todo es elservidor HTTP ms utilizado en los sitios web de todo el mundo con un 66.62 % [33].

    5.2.2.2. Instalacin y configuracinDependiendo del sistema operativo la instalacin ser de manera diferente. Por lo que veremoscada sistema por separado. Tambin se comentarn los pasos a seguir para la instalacin delas herramientas del entorno PHP y el gestor de bases de datos Mysql para cada uno de lossistemas. Respecto a la configuracin de apache en los distintos sistemas ser muy similar en

  • 7/22/2019 Comparacion SO

    39/71

    el comienzo, ya que todas las instalaciones se hacen por defecto y suelen tener la mismaconfiguracin. Slo cabe mencionar que se realizar el cambio de ubicacin del DocumentRooto directorio principal donde40

  • 7/22/2019 Comparacion SO

    40/71

    TFC: Arquitectura de Computadores y Sistemas Operativosresidirn las pginas web que servir el servidor. Tambin habr que indicar a Apache queutilice como pgina ndice index.php. Y por ltimo se aadirn aquellas lneas necesarias paraque apache sepa que el entorno PHP est disponible. A continuacin se realizar unadescripcin de los pasos realizados para la instalacin y puesta en marcha de apache. Ubuntu.

    Para la instalacin de las aplicaciones se ha utilizado el gestor de paquetes Synaptics.Mediante dicho gestor se han ido buscando los mdulos necesarios. En concreto se habuscado apache2, php5 y Mysql. A la hora de instalar estos paquetes, el propio gestor informade los mdulos que tambin sern instalados por ser necesarios. Otra forma de instalar estasaplicaciones habra sido a travs de un terminal, y con la orden aptitude install paquete,donde paquete sera en nom bre del paquete a instalar, o mediante la orden apt -get installpaquete. No existe diferencia entre uno u otra a la hora de realizar la instalacin del softwareque queramos. La diferencia la encontramos en el modo de gestionar los paquetes, ya seabuscndolos, borrndolos, actualizndolos, etc. Mientras apt tiene diferentes herramientas consus respectivos argumentos para realizar dichas tareas, mientras aptitude slo utiliza unaherramienta, el propio aptitude, con diferentes argumentos para realizar las mismas tareas queapt. Tambin cabe mencionar que aptitude ha manejado siempre mejor la eliminacin depaquetes junto con sus dependencias hurfanas. Algo que apt ha mejorado en las versionesrecientes con apt -get autoremove. Respecto a los cambios de configuracin en las distintasaplicaciones, no se ha realizado ninguno al respecto. Se ha dejado la configuracin tal cual, yaque para que funcione la aplicacin Wordpress no es necesario realizar ningn cambio. En lasiguiente imagen se puede ver que se ha logrado correctamente la instalacin de Wordpress enUbuntu para su posterior testeo.

    41

  • 7/22/2019 Comparacion SO

    41/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    Figura 14. Instalacin correcta de Wordpress en Ubuntu.

    -

    Windows 7. En la instalacin de los programas en Windows, se ha realizado la instalacin decada uno de ellos por separado, realizando primero la descarga de los mismos desde suspginas oficiales. Una vez han sido instalados, hay que realizar unos cambios en laconfiguracin de Apache para que el mismo tenga conocimiento de que el entorno de PHP estdisponible. Para ello hay que cargar el mdulo de PHP. LoadModule php5_moduleC:/Servidor/PHP/php5apache2.dll, y posteriormente se aaden unas lneas de cdigo necesarias para que Apache pueda interpretarlas extensiones de PHP.

    Se puede observar como se ha logrado la correcta instalacin de Wordpress en dicho sistemaoperativo.

    42

  • 7/22/2019 Comparacion SO

    42/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    Figura 15. Instalacin correcta de Wordpress en Windows.

    -

    Mac OS X. En este sistema operativo ha sido muy sencilla la puesta en marcha del servidorweb Apache junto con PHP, y la instalacin de Mysql. Este sistema ya viene con la instalacinde Apache y PHP en el mismo, as lo nico que hay que realizar es la activacin de ambasherramientas. En el caso de Apache se encuentra dentro de las herramientas desistema>sharing>Web Sharing. En el caso de PHP slo hay que asegurarse que Apacheconozca que PHP est instalado. Para ello se aaden varias lneas de cdigo dentro del ficherode configuracin de Apache (httpd.conf), y con ello ya tenemos php funcionando. Estas lneasson: AddType application/x-httpd-php .php AddType application/x-httpd-php-source .php5 Enel caso de Mysql lo nico que tenemos que hacer es descargarnos el paquete .dmg desde laweb de Mysql [27]. Una vez descargado la instalamos y simplemente tenemos que iniciar elservicio de Mysql. Una vez creada la base de datos para Wordpress, ya podemos realizar lainstalacin de ste para su posterior utilizacin (Figura 16).

    43

  • 7/22/2019 Comparacion SO

    43/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    Figura 16. Instalacin correcta de Wordpress en Mac OS X.

    5.3. Benchmarking 5.3.1. Descripcin y tipos

    El benchmarking es una forma de determinar qu tan bien funciona un producto o empresarespecto a otras. El benchmarking utiliza la evaluacin continua y sistemtica de los productos,servicios, procesos, etc. para obtener una representacin de entre los analizados de culesforman una referencia o modelo a seguir. Este proceso de benchmarking es utilizado por lasempresas para ver su competitividad respecto a otras del mismo sector. En nuestro caso loutilizaremos para ver la competitividad de los tres sistemas operativos respecto a un mismoproblema como es el de servir pginas web mediante el servidor web Apache. Lasherramientas a utilizar son las ya mencionadas; JMeter [25] y ab [26]. Ambas herramientasestn creadas para testear el rendimiento de Apache, sobre todo ab, la cual est integradadentro de la instalacin del propio Apache, por lo que no es necesaria su instalacin, de ahque slo es posible utilizarla desde la propia mquina donde est instalado el servidor Apache.En cambio JMeter,44

  • 7/22/2019 Comparacion SO

    44/71

    TFC: Arquitectura de Computadores y Sistemas Operativosaunque en un principio fue diseada para testear aplicaciones web, actualmente puede testearotras funciones como bases de datos, servidores de correo, servidores LDPA, etc. JMeter adiferencia de ab, s puede ser ejecutada desde un equipo distinto al que tiene instalado laaplicacin web, pero evidentemente tienen que estar en la misma red, o el equipo a testear ser

    visible desde JMeter.5.3.2. Instalacin y configuracinCmo ya se ha comentado la aplicacin ab no requiere de ninguna instalacin, ya que formaparte de Apache. Respecto a los parmetros que se utilizarn sern como los siguientes: ab c 100 n 20 http://localhost/ Con estos parmetros le indicamos a la aplicacin que realice untest de 100 solicitudes (-c 100) con 20 peticiones concurrentes (-n 20) al servidor localhost. Encada uno de los test se especificar el nmero de peticiones y solicitudes concurrentes.Respecto a los datos que se van a obtener con este benchmark, nos centraremosprincipalmente en los valores Request per second (pginas servidas por segundo) y Time perRequest (tiempo por respuesta). Con ello se podr realizar un seguimiento de cmo cada unode los sistemas es capaz de ejecutar ms procesos y poder servir cuanto antes las pginassolicitadas. En la siguiente imagen (Figura 17) tenemos un ejemplo de una captura de un testrealizado con ab, en el cual se puede apreciar cmo se han completado 500 peticiones con 50usuarios concurrentes. En dicho test se ha obtenido una media de 3,79 pginas por segundo,con un tiempo medio de 13 segundos por peticin.

    45

  • 7/22/2019 Comparacion SO

    45/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    Figura 17. Captura test apache

    En cuanto a JMeter, no requiere una instalacin como tal, ya que se trata de una aplicacin

    diseada en Java 100%, por lo que puede ser ejecutada en cualquier plataforma que tengainstalada la mquina virtual java 1.5 o superior. Una vez descargada lo nico que tenemoshacer es ejecutar el archivo bin>jmeter.bat (en el caso de Windows) y se mostrar la ventanade la aplicacin. A partir de ah habr que realizar los distintos cambios y configuraciones quecreamos oportunos para realizar el test. Sin querer hacer un tutorial de JMeter, se realizar unabreve explicacin de los pasos a seguir en la configuracin del mismo para llevar a cabo el test.Con JMeter podemos hacer que grabe todas las peticiones que hagamos desde un navegadorweb hacia el servidor web, por lo que nos ahorramos la comunicacin entre el cliente web y laaplicacin. Para llevar a cabo dicho trabajo tendremos que realizar una serie deconfiguraciones tanto en la herramienta JMeter como en el navegador donde reside dichaherramienta.46

  • 7/22/2019 Comparacion SO

    46/71

    TFC: Arquitectura de Computadores y Sistemas OperativosRespecto a la secuencia que JMeter va a grabar y llevar a cabo contra la aplicacin web, sersiempre la misma respecto a los distintos sistemas operativos. Esta secuencia ser lasiguiente:

    - Acceder a la pgina principal de Wordpress en dicho servidor - Ingresar con usuario ycontrasea a la aplicacin web - Crear una nueva entrada dentro Wordpress - Publicar dichaentrada - Ver la entrada nueva - Salir de WordpressEsta secuencia se puede ver en la Figura 20 Una vez que ya sabemos la secuencia que se vaa realizar, pasamos a describir la configuracin necesaria en JMeter para que lleve a cabo lagrabacin de esta secuencia. Para ello cuando iniciamos JMeter se nos presenta una interfazcon dos partes (figura 18); en la izquierda aparecer el Plan de Pruebas junto con el Banco deTrabajo, y en la parte de la derecha todas las configuraciones posibles de los anterioresdependiendo de cul elegimos.

    Figura 18. Interfaz de JMeter

    Lo primero que haremos ser crear un nuevo Grupo de Hilos dentro del Plan de Pruebas, paraello nos situamos sobre el mismo, y en la opcin Editar>Aadir>Threads(Users)>Grupo deHilos. Una vez creado podemos cambiar dicho nombre y configurar las propiedades, que comose puede ver comprende los siguientes parmetros (Figura 19):

    47

  • 7/22/2019 Comparacion SO

    47/71

    TFC: Arquitectura de Computadores y Sistemas OperativosNmero de hilos. Es el nmero de usuarios que JMeter va a simular. En nuestro casoutilizaremos el valor 10 y 40, por lo que simular 10 o 40 usuarios accediendo a la web yrealizando las mismas acciones ya descritas. Periodo de subida. Es el tiempo en segundos quese quiere que transcurra entre cada grupo de hilos. Utilizaremos el valor 10. Contador del

    bucle. Es el nmero de ciclos que se van a repetir. En este caso realizaremos 1 ciclo. Tenemosla opcin de Sin fin, que realizara el test indefinidamente.

    Figura 19. Parmetros del Grupo de Hilos

    Si ya tenemos creado el Grupo de Hilos, procedemos a crear dentro del Banco de Pruebas unelemento NoDePrueba, concretamente Servidor Proxy HTTP. Con ello estamos configurandoJMeter como servidor Proxy, as lo nico que tenemos que hacer es indicarle al navegador webque utilice un servidor proxy en sus conexiones y le indicamos el puerto configurado en elmismo que por defecto ser el 8080. Una vez configurado el servidor proxy pulsamos en elbotn Arrancar, y ya tenemos funcionando el servidor proxy. A partir de este momento y unavez configurado el navegador web correspondiente, todas las pginas consultadas por dichonavegador quedarn grabadas en el plan de trabajo (Figura 20).

    48

  • 7/22/2019 Comparacion SO

    48/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    Figura 20. Captura de la secuencia de las pginas visitadas

    Con JMeter se puede seleccionar una serie de herramientas que analizan y evalan el test

    realizado, obteniendo de esta manera grficas o tablas de resultado que ayudan a la hora deestudiar el rendimiento del sistema. Hay diferentes Listener, como se denomina en JMeter,con los que obtener los datos del rendimiento del equipo a evaluar. Algunos de ellos sonvlidos para conocer el rendimiento de la CPU de un equipo u otras medidas que no sernllevadas a cabo en este trabajo. Las dos herramientas o monitores que se utilizarn son:Graph Results (Grfico de resultados Figura 21) y Summary Report (informe de sntesis Figura 22). En el primero se obtiene varios grficos con la evolucin de la prueba. Estosgrficos indican

    49

    TFC: Arquitectura de Computadores y Sistemas Operativosparmetros como el nmero real de peticiones por minuto que el servidor maneja realmente, loque nos permite probar con parmetros que aumenten el nmero de usuarios concurrentes y/odisminuyan los retrasos hasta alcanzar el mayor rendimiento.

    Figura 21. Grfico de resultado de JMeter

    Respecto al informe, se obtiene una tabla con los datos referidos a cada una de las muestras(cada uno de los hilos que forman el test). De cada una de ellas se puede observar el nmerode veces que se accede a esa muestra, el tiempo medio transcurrido, el rendimiento referido alas pginas por segundo que el servidor ha servido, etc. Adems se obtienen los totales dedichos parmetros, as tendremos una idea clara del rendimiento actual del servidor.

    Figura 22. Tabla del informe de sntesis de JMeter

    50

  • 7/22/2019 Comparacion SO

    49/71

    TFC: Arquitectura de Computadores y Sistemas Operativos

    6. Evaluacin de los Sistemas OperativosTras la instalacin y configuracin de los sistemas operativos, as como de la herramienta

    Apache y dems software necesario para hacer funcionar Wordpress (como php y mysql), se

    ha llevado a cabo una serie de pruebas de estrs a cada uno de los sistemas para comprobarsu rendimiento. Para la realizacin de las pruebas se han utilizado las herramientas debenchmarking ya mencionadas (ab y JMeter). Los resultados de las mismas sern expuestosen los siguientes apartados, realizando un anlisis de aquellos aspectos que se considerenms relevantes. Cabe decir que el resultado que se obtenga y sea plasmado en susrespectivas tablas, ser la media resultante de la realizacin de 5 pruebas del mismo tipo y conel mismo software, es decir, en cada una de las pruebas realizadas se ejecutarn 5 pruebasiguales, y la media de las mismas ser el resultado que se plasmar en los siguientesapartados. Las pruebas a realizar en el test inicial consistirn en dos partes. Por un ladorealizaremos una prueba con la herramienta ab a la pgina principal de Wordpress, en concretoa la pgina index.php. De esta forma se podr ver el cambio que se produce en cuanto a servirla pgina de forma dinmica, o servir dicha pgina estticamente debido a la cach en disco.Por otro lado, con la herramienta JMeter se podr realizar un test ms completo, ya que seseguir la secuencia descrita en el apartado 5.3.2. (Figura 20). Como se aprecia en dichasecuencia, se va a proceder a testear tanto pginas estticas (fundamentalmente .css, .js)como pginas dinmicas. En este caso, hay algunas pginas dinmicas que no pueden sercacheadas, por lo que el resultado obtenido ser bastante realista en cuanto al rendimientoaportado una vez realizado los cambios de configuracin en Apache. Respecto a los cambios arealizar, se realizarn primero los cambios pertinentes en el servidor web Apache, y una vezobtenido dichos resultados, se realizarn tambin cambios en la configuracin de memoriafsica y procesador para constatar el rendimiento que los mismos producen en los sistemas.

    51

  • 7/22/2019 Comparacion SO

    50/71

    TFC: Arquitectura de Computadores y Sistemas Operativos 6.1. Test inicialCon estos test se podr tener una primera aproximacin del rendimiento que ofrecen lossistemas operativos en su tarea de servir pginas web. Se han llevado a cabo dos test condiferentes valores. En el primero se ha utilizado 10 usuarios concurrentes realizando cada unode ellos una peticin de 100 pginas. Mientras que en el segundo test se ha realizado una

    muestra con 50 usuarios conc