You are on page 1of 30

Materia y grupo: Sistemas Operativos TC2008.

1 Fecha: 21 de noviembre de 2013 Nombres: Campus Querétaro Departamento de Sistemas Computacionales y de Información Antonio Osamu Katagiri Tanaka Gabriel Alejandro Reséndiz Mateo “Sistemas Operativos”

Profesor: Eduardo Daniel Juárez P Parcial: Final Matrícula: A01212611 A01201944 Calificación:

Trabajo de Investigación Final “Análisis de Sistemas Operativos”

2

ÍNDICE:
Introducción Guía de instalación y configuración (Solaris 10) Propósito Windows 7 Servicios Interfaz de Usuario Ejecución de Programas Operaciones de entrada y salida Manipulación de archivos Comunicaciones Detección de errores Asignación de recursos Protección y seguridad Proceso de planificación de la CPU Mecanismos de sincronización de procesos Mecanismos de prevención, evasión o detección de interbloqueos Gestión de memoria Solaris10 Servicios Interfaz de Usuario Ejecución de Programas Operaciones de entrada y salida Manipulación de archivos Comunicaciones Detección de errores Asignación de recursos Protección y seguridad Proceso de planificación de la CPU Mecanismos de sincronización de procesos Mecanismos de prevención, evasión o detección de interbloqueos Gestión de memoria Android Servicios Interfaz de Usuario Ejecución de Programas Operaciones de entrada y salida Manipulación de archivos Comunicaciones Detección de errores Asignación de recursos Protección y seguridad Proceso de planificación de la CPU Mecanismos de sincronización de procesos Mecanismos de prevención, evasión o detección de interbloqueos Gestión de memoria Conclusiones Referencias 03 04 15

15 16 17 17 17 18 18 18 18 19 19 19

20 20 20 21 21 21 22 22 22 23 23 23

24 24 24 24 24 25 25 25 26 26 26 26 27 28

3

INTRODUCCIÓN:
A lo largo del semestre hemos aprendido conceptos básicos sobre el funcionamiento de los sistemas operativos, hemos hablado de los diferentes algoritmos que existen para ciertos propósitos como la planificación del CPU, evasión de interbloqueos, gestión de memoria, etc. Ahora es momento de revisar todos los conceptos teóricos vistos en clase e investigar cómo son aplicados en la realidad por los sistemas operativos que actualmente están en el mercado. El propósito de este trabajo es investigar, analizar y comparar 3 diferentes sistemas operativos desde su funcionamiento interno viendo cómo aplican las estructuras y algoritmos vistos en clase. Los 3 sistemas operativos a comparar serán Windows 7 (un sistema operativo que usamos con mucha frecuencia), Solaris 10 (un sistema operativo nuevo para nosotros) y Android (un sistema operativo diseñado principalmente para dispositivos móviles). A continuación daremos una breve introducción a cada uno de los sistemas operativos anteriormente mencionados. Windows 7 es un sistema operativo producido por Microsoft Corporation, fue lanzado oficialmente en octubre de 2009. Pertenece a la familia de sistemas operativos Windows NT, posee un núcleo híbrido siendo la versión NT 6.1. Windows 7 está diseñada para el uso en PC como lo son computadoras de escritorio domésticas o empresariales, computadoras portátiles, tablets y demás dispositivos móviles. Su predecesor es Windows Vista, que es la versión NT 6.0 mientras que el sucesor es Windows 8, que fue lanzado en 2012 y su versión es NT 6.2. Solaris 10 es una versión de Solaris que es un sistema operativo de tipo UNIX. Solaris 10 fue desarrollada por Sun Microsystems y fue publicada el 31 de enero de 2005. Solaris está pensada para ser usada en estaciones de trabajo y servidores principalmente. Solaris 10 tiene el núcleo SunOS siendo la versión SunOS 5.10. Sun Microsystems fue adquirida en 2009 por Oracle Corporation que en noviembre de 2011 lanzó la siguiente versión de Solaris que vendría siendo Solaris 11 cuya versión de núcleo es SunOS 5.11. Android es un sistema operativo diseñado principalmente para dispositivos móviles con pantalla táctil como lo son tablets y smartphones. Android está basado en una versión modificada del núcleo Linux y fue lanzado el 23 de septiembre de 2008. En un principio fue desarrollado por Android Inc., empresa que más tarde fue comprada por Google. Todas las versiones de Android tienen el nombre de un postre en inglés, cada uno empieza con una letra diferente y van en orden alfabético. La versión actual es Android 4.4 KitKat. Después de haber introducido los sistemas operativos, vamos a dar comienzo al análisis y comparación.

4

GUÍA DE INSTALACIÓN Y CONFIGURACIÓN

Instalando Solaris 10
1. Elegir una instalación inicial o una actualización. Es posible llevar a cabo una instalación inicial o, si el sistema está actualmente corriendo con el sistema operativo (SO) Solaris, se puede actualizar el sistema. a. Instalación inicial. Una instalación inicial sobrescribe en el disco del sistema con la nueva versión del SO. Considerar que si el sistema no está corriendo alguna versión de Solaris, es inevitable llevar a cabo una instalación inicial. Si es sistema está corriendo el SO Solaris, es posible elegir una instalación inicial, sin embargo si se requiere conservar alguna modificación es necesario respaldar los cambios antes de la instalación. b. Actualización. Es posible actualizar el SO mediante dos métodos: i. Standard. Conserva tantos parámetros de configuración como sean posibles del actual sistema ii. Solaris Live Upgrade. Se crea una copia del sistema actual que puede ser actualizada mediante el método estándar. Si ocurre algún error, es posible regresar al anterior SO de Solaris con un reboot. Éste método ofrece la posibilidad de mantener el sistema corriendo mientras es actualizado. 2. Elegir el programa de instalación. El SO Solaris proporciona diversos programas para la instalación o la actualización. Elegir el método de instalación que más se ajuste a las necesidades actuales. a. Instalar un sistema desde un CD-ROM o un DVD-ROM con un programa interactivo. (Solaris installation program). Este programa divide las tareas en diferentes paneles, mostrando la información necesaria para elegir alguno de los valores predeterminados. Este método no es eficiente para instalar el SO en múltiples sistemas. (Instrucciones en: Solaris 10: Installation Guide: Basic Installations) b. Istalar un sistema en una red de área local LAN. (Solaris installation program over the network). Este programa permite configurar e instalar el software en un servidor para que éste lo instale en múltiples sistemas. (Instrucciones en: Part II, “Installing Over a Local Area Network,” en Solaris 10 Installation Guide: Network-Based Installations) c. Automatizar la instalación o la actualización de múltiples sistemas basados en cuentas configuradas por el instalador. (Custom JumpStart). Este programa instala eficientemente el SO en múltiples sistemas, sin embargo si solo se poseen pocos sistemas, la creación de un ambiente JumpStart puede tomar demasiado tiempo, en ese caso elegir el método b. (Instrucciones en: Solaris 10 Installation JumpStart and Advanced Installations, Chapter6) d. Consulta de otros métodos de instalación en: Solaris 10 Installation JumpStart and Advanced Installations pp 31. Elige una configuración personalizada o predeterminada. (Solaris interactive installation program). Elegir entre una interfaz gráfica o un “text installer” (interfaz no gráfica). a. GUI. Si se elige utilizar una interfaz gráfica: a) una instalación predeterminada formatea el disco duro e instala un conjunto predeterminado de software, b) una instalación personalizada permite modificar el diseño del disco duro e instalar solo el software deseado.

3.

5
b. Text installer. Es posible seleccionar los valores predeterminados o editar los valores para seleccionar el software que se quiere instalar. (Más información en: Solaris 10 Installation Guide: Planning for Installation and Upgrade, Chapter 5). 4. Revisar los requerimientos del sistema. Determinar si es sistema cuenta con los requerimientos mínimos para la instalación o la actualización y asignar los espacios de la memoria del sistema de los componentes del SO que se quieren instalar. a. Memoria (Solaris SPARC environment). 256 MB es la capacidad recomendada, 128 MB es la mínima. b. Swap (Solaris SPARC & x86 environment). 512 MB es el tamaño predeterminado. c. Procesador (Solaris SPARC environment). De 200 MHz o más. d. Memoria (x86 Solaris environment): i. Solaris 10 1/06: 512 MB es el tamaño recomendado, 256 MB es el mínimo. ii. Solaris 10 3/05: 256 MB es la capacidad recomendada, 128 MB es la mínima. e. Procesador (x86 Solaris environment). 120 MHz o más. f. Si hay suficiente memoria la GUI se despliega por defecto, de lo contrario, se despliega la interfaz no gráfica (text installer). Es posible cambiar la configuración predeterminada con los comandos nowing o text. i. Solaris SPARC environment: Text-Based – 128-383 MB; GUI – 384 MB o mayor. ii. X86 Solaris environment (Solaris 10 1/06): Text-Based – 256-511 MB; GUI – 512 MB o mayor. iii. X86 Solaris environment (Solaris 10 3/05): Text-Based – 128-383 MB; GUI – 384 MB o mayor. g. Para conocer las recomendaciones de la asignación de memoria y espacio Swap ver: Solaris 10 Installation Guide: Custom JumpStart and Advanced Installations, Chapter 3, pp 35. h. Para conocer la versión actual del SO Solaris que está instalado en el sistema, teclear el comando uname –a. cat /etc/release proporciona información más detallada. Elegir instalar el SO desde un medio local (DVD o CD) o desde la red (descargar e instalar). Elegir el medio de instalación más apropiado para el ambiente actual. http://www.oracle.com/us/downloads/index.html a. Si se elige instalar Solaris 10 desde la red, completar los siguientes pasos: i. Para un ambiente x86, verificar que el sistema soporte PXE (Preboot Execution Environment). ii. Crear un servidor de instalación. iii. Configurar el servidor DHCP (Dynamic Host Configuration Protocol). iv. Establecer el sistema para instalar el SO desde la red. Recolectar información sobre el sistema. Completar la tabla localizada en: Solaris 10 Installation Guide: Planning for Installation and Upgrade, Chapter 5, pp 57. Llevar a cabo la instalación o la actualización. Utilizar el método de instalación elegido para instalar o actualizar el software del SO.

5.

6.

7.

6
a. Suponiendo que se eligió: a) una instalación inicial, b) el programa “Solaris installation program”, c) una interfaz gráfica por defecto (se cuenta con los requerimientos necesarios del sistema - Solaris SPARC environment - GRUB) y una instalación desde un medio local; se puede instalar Solaris 10 de la siguiente manera: Seleccionar el SO que se quiere correr y presionar ENTER para comenzar la configuración de la instalación del Solaris 10.

Esperar …

7
Configurar el teclado y presionar F2 para confirmar.

Esperar …

Configurar la conectividad a la red. Selecciona No, si no se requiere una conectividad. Generalmente se selecciona Yes, con el fin de poder establecer una conectividad con un host.

8
Si se elige utilizar DHCP – Dynamic Host Configuration Protocol, la interfaz de red será configurada automáticamente.

Configurar IPv6, es recomendable habilitar esta opción ya que permite manejar ambos, IPv6 e IPv4 en el sistema.

Presionar F2 para confirmar la configuración relacionadas con la conectividad a la red. Y Esperar un momento.

9
Configurar la seguridad en la pantalla siguiente, si se selecciona No, se utilizará la versión normal de Unix Security. Este tipo de seguridad es suficiente si se planea que el sistema va a ser de uso personal. Presionar F2 para confirmar la configuración relacionadas con la seguridad. Y Esperar un momento.

Selecciona el nombre del servicio que será usado por el sistema, para uso personal se puede seleccionar None.

10
Presionar F2 para confirmar la configuración relacionadas con el nombre del servicio. Y Esperar un momento.

Especifica el dominio de NFSv4 que es compartido por los clientes y servidores. Si no se conoce el dominio, elegir “Use the NFSv4 domain derived by the system” para mayor flexibilidad durante las operaciones del sistema. Presionar F2 para confirmar la configuración relacionadas con el dominio del NFSv4. Y Esperar un momento.

11
Seleccionar el huso horario en la siguiente pantalla.

12
Configurar el reloj.

Presionar F2 para confirmar la configuración relacionadas con la zona horaria y el reloj. Y Esperar un momento.

Seleccionar una contraseña de raíz (root password) en la siguiente pantalla.

13
Esperar …, después de configurar el password, el sistema se reiniciará. (Para modificar “unknown” se debe utilizar el comando NewHostName en la terminal como un superusuario)

14
Introducir el usuario de raíz (root) e iniciar sesión.

Se presentará es escritorio predeterminado de Solaris

8.

Solucionar los problemas de instalación. Revisar la información necesaria cuando se encuentre con un problema en: Solaris 10 Installation Guide: Custom JumpStart and Advanced Installations, pp 231. Para mayor información se pueden consultar los documentos de Oracle en: http://docs.oracle.com/cd/E19253-01/

9.

15

PROPÓSITO:
El propósito general de cada uno de los tres sistemas operativos varía mucho de los demás. En primer lugar tenemos a Windows 7 cuyo objetivo principal es ser utilizado en computadoras personales, su competencia más fuerte es OS X de Apple. Como ya se mencionó, Windows 7 está desarrollado para ser utilizado en computadoras de escritorio en escuelas, oficinas y hogares además de computadores personales aunque también está adaptado para ser utilizado en dispositivos móviles como las tablets. Por otro lado está Solaris, el propósito de Sun Microsystems al desarrollar Solaris 10 era “entregar un entorno de computación consistente desde servidores de departamentos organizacionales hasta sistemas con servidores masivos en cluster, con más de 100 CPUs, diseñados para computación multiproceso a 64 bits”, de acuerdo con Fernando Bravo, Administrador de Servicios de Intenet en la Universidad de Cauca, Colombia. Por último tenemos a Android, que es un sistema operativo orientado a los dispositivos móviles, su propósito es ser usado principalmente en los dispositivos móviles con pantalla táctil. Compite con iOS de Apple.

WINDOWS 7
SERVICIOS 1. INTERFAZ DEL USUARIO Entre las metas de desarrollo para Windows 7 se dio importancia a mejorar su interfaz para volverla más accesible al usuario e incluir nuevas características que permitan hacer tareas de una manera más fácil y rápida, al mismo tiempo que se realizaban esfuerzos para lograr un sistema más ligero, estable y rápido.  La barra de tareas presenta una mejora significativa, la agrupación de aplicaciones similares con vista previa interactiva (en el caso de Internet Explorer, muestra las diferentes instancias como pestañas que se tengan abiertas), así como un soporte temático. En general, todos los cambios en el diseño tanto en el fondo como en las ventanas lo hacen menos aburrido.  El menú de inicio proporciona una caja de búsqueda tanto de archivos como de programas que hace que rara vez se tenga que ingresar a “todos los programas”. Por otro lado, agrupo lo reciente por aplicación en el menú de inicio. Esta funcionalidad crea un acceso directo a un conjunto de programas más utilizados en el menú de inicio, por ejemplo Google Chrome.

16  Las ventanas de información parecen menos técnicas y más orientadas a un usuario más común. Por ejemplo, en la lista de opciones de energía, sólo se tienen a la mano las dos más utilizadas y las demás opciones se encuentran en otra lista. Además el nuevo centro de mensajes proporciona un mecanismo sencillo para dar a conocer al usuario algunas tareas que se deben atender o problemas a solucionar.  A Diferencia de Windows Vista, en Windows 7 basta con solo dar un clic en la hora y fecha en la parte inferior derecha de la barra de tareas para que se muestre la información adecuada y mejor presentada.  Por otro lado, se introdujeron los Jump Lists, al hacer clic derecho en el ícono de la barra de tareas de algún programa abierto, se puede acceder a una lista con una serie de opciones que permiten controlar la aplicación sin la necesidad de abrir la ventana. Por ejemplo se puede revisar el historial de páginas visitadas de Internet sin tener que abrir la ventana del Explorador. 2. EJECUCIÓN DE PROGRAMAS  El uso del comando “ejecutar” es un método rápido para abrir programas, archivos, directorios y páginas web (al disponer de una conexión a internet). En Windows 7 se pueden ejecutar archivos de tres maneras: a) utilizando el menú de inicio con la vista clásica, b) utilizando a la caja de be búsqueda del menú inicio o c) utilizar el comando Ejecutar. Si se elige la opción c, se puede acceder entrando a inicio > todos los programas > accesorios > ejecutar y en el cuadro “abrir” escribir el nombre del programa, directorio, archivo o sitio web que se desea ejecutar.  Otra opción es crear atajos de teclado para ejecutar programas siguiendo los siguientes pasos: 1) buscar el acceso directo del programa, 2) hacer clic derecho y entrar a propiedades, 3) en propiedades modificar el campo de “Tecla de método abreviado”.

17 3. OPERACIONES DE ENTRADA Y SALIDA  En Windows, las operaciones de E/S se especifican desde las aplicaciones mediante las llamadas al sistema, que trabajan con dispositivos lógicos. Una llamada al sistema de lectura o de escritura especifica los siguientes parámetros: a) La operación a realizar (leer, escribir…), b) El canal sobre el que se realiza la operación, c) La dirección (o posición) en el dispositivo de E/S donde se accede, d) La fuente o destino de la transferencia (dirección de memoria), e) La cantidad de información a transferir (longitud).  Una operación de entrada/salida consta de dos partes. 1) La primera que es independiente del dispositivo, consta del código utilizado por la llamada al sistema y normalmente nos referiremos a ella como una rutina de E/S. 2) La segunda es el código del driver o del manejador del dispositivo que es dependiente del dispositivo. 4. MANIPULACIÓN DE ARCHIVOS  Las bibliotecas son una manera muy sencilla de organizar de forma lógica los accesos a diferentes ubicaciones físicas con alguna relación de interés. Dentro de las bibliotecas, las agrupaciones por fecha o tipo resultan muy útiles para encontrar diferentes archivos.  Las bibliotecas “recently changed” para archivos y “recent places” para directorios, son una alternativa para acceder a los elementos recién utilizados.  En un sistema de archivos de Windows NT (Windows 2000, Windows XP, Windows Server 2003, Windows Vista y Windows 7), se utiliza el NTFS (Sistema de archivos de nueva tecnología). El cual se basa en una estructura conocida como tabla maestra de archivos – MFT, la cual contiene información detallada de los archivos. Este sistema permite el uso de nombres extensos distinguiendo mayúsculas y minúsculas. Se supone que posee un alto rendimiento agracias al uso de un árbol binario para la localización de los archivos  La MFT es una tabla de valores numéricos, donde cada celda describe la asignación de clústers de una partición, es decir es el estado de cada clúster en la partición en la que está ubicada. 5. COMUNICACIONES  Windows permite conectar sucursales, trabajadores remotos, e Internet de forma sencilla y barata. Las avanzadas prestaciones de red de sus servicios también incluyen servicios de Encaminamiento y Acceso Remoto (RAS). Estos servicios, que no requieren ninguna modificación en el software cliente, muestran formas sencillas y baratas de implementar en Redes Virtuales Privadas (VPNs) para compartir información de forma segura en Internet. Los servicios de comunicaciones para Windows

18  Servicios de Conexión a Internet - ICS. Reducen significativamente los costes de comunicación a largas distancias y mejoran la experiencia del usuario final. Complementan los servicios básicos de red de Windows y pueden ser usados para reducir o eliminar los costes actuales, ofreciendo un acceso a Internet barato y personalizado a los usuarios finales. Los ICS están compuesta por:  El Gestor de Conexión ofrece una interface de usuario personalizable para conectar y acceder a Internet, eliminando la necesidad de que los usuarios gestionen su configuración de acceso, incluidos los números de acceso y VPN (virtual private network).  Kit de Administración del Gestor de Conexión que permite configurar clientes del Gestor de Conexión. La pre-configuración mejora la experiencia del usuario, especialmente la del “nuevo usuario”. 6. DETECCIÓN DE ERRORES  La técnica de detección de errores de Windows se basa en recorrer el sistema de ficheros desde la información de éstos y desde la información de los bloques libres, anotando en cada caso el número de veces que se checa cada bloque. El sistema de ficheros será consistente si cada bloque ocupado se accede una sola vez desde los directorios, y si todos los bloques no ocupados aparecen registrados como libres. Las situaciones de inconsistencia se reflejan cuando: a) existen bloques que no se reclaman ni como libres ni como ocupados, b) existen bloques que se reclaman simultáneamente como libres y ocupados, y c) los bloques se reclaman más de una vez como ocupados. El último caso es el más grave, ya que no es posible tomar automáticamente una decisión acerca de a qué fichero corresponde el bloque. 7. ASIGNACIÓN DE RECURSOS  El Administrador de recursos del sistema de Windows ofrece: a) Administrar los recursos del sistema (procesador y memoria) con parámetros preconfigurados, o crear parámetros personalizados que asignen recursos por procesos, por usuarios o por grupos de aplicaciones de Internet Information Services (IIS). b) Seleccionar automáticamente directivas de recursos basadas en propiedades de servidor y eventos (eventos de clúster), o bien en modificaciones de la memoria física instalada o del número de procesadores. Y c) Crear un grupo de equipos para facilitar la organización de los servidores que se desea administrar. Con la facilidad de exportar o modificar fácilmente las configuraciones. 8. PROTECCIÓN Y SEGURIDAD  Es sistema operativo de Windows proporciona diversas opciones para la protección de información, por ejemplo: a) permite proteger los datos contra robos y pérdidas accidentales, mediante el cifrado de unidad BitLocker para contribuir a mantener seguros los datos (documentos, passwords, etc.). PROCESO DE PLANIFICACIÓN DE LA CPU  El kernel de Windows NT cuenta con una capa de abstracción de hardware (Hardware Adbstraction Layer - HAL), la cual es la única responsable por las comunicaciones directas con el procesador. El resto del kernel está diseñado para

19 trabajar en conjunto con la interfaz de la capa de abstracción de harware. En Windows (como en otros sistemas operativos), la unidad mínima de ejecución es un hilo (thread) no es el proceso en sí. Un thread puede estar en alguno de los siguientes estados: a) listo, b) standby (en espera), c) en ejecución, d) en transición (creación de un nuevo thread) y e) terminado. Windows NT utiliza una planificación basada en 32 niveles de colas con múltiples de prioridades. Las 32 colas están clasificadas en dos clases: 1) Real Time - RT (16-31) y 2) clase variable (0-15), donde las colas se recorren de mayor a menor ejecutando los hilos asociados, la prioridad “cero” está reservada para el sistema operativo. Cada cola es manejada por medio de un algoritmo de Round-Robin, sin embargo si un thread de mayor prioridad llega a la cola, éste es asignado al CPU. La prioridad del thread fluctúa dinámicamente durante la ejecución en rango, incrementándose cuando el thread se bloquea y decrementándose cuando el thread es expulsado por terminación. MECANISMOS DE SINCRONIZACIÓN DE PROCESOS En el caso de Windows, este tiene un kernel multi-hebra que proporciona soporte para aplicaciones en tiempo real y de múltiples procesadores. Cuando el kernel accede a un recurso global en un sistema monoprocesador, enmarcan de forma temporal a las interrupciones. Windows proporciona objetos despachadores, con el fin de que los threads se sincronicen empleando diferentes mecanismos, ya sea utilizando mútex, semáforos, sucesos y temporizadores. MECANISMOS DE PREVENCIÓN / EVASIÓN / DETECCIÓN DE INTERBLOQUEOS___  Como en Windows y en cualquier otro sistema operativo, este problema se ignora siguiendo el algoritmo del “avestruz”. Todo se reduce en evaluar el coste asociado al introducir un conjunto de técnicas anti-deadblocks (tiempo, implementación y pérdida de rendimiento), frente al coste de convivir con los interbloqueos. La decisión de optar esta “solución” se basa en:  Que la frecuencia con que se producen interbloqueos en el sistema sea pequeña en comparación con la de otros errores  Que un interbloqueo no tenga consecuencias demasiado graves sobre la instalación y/o los usuarios.  Que el coste de utilizar otras políticas resulte muy elevado en términos de pérdida de eficiencia.  Que las soluciones adoptadas introduzcan restricciones insoportables para los usuarios. GESTIÓN DE MEMORIA  En materia de administración de memoria, los procesos de Windows manejan espacios de direcciones de 32 bits con un tamaño de página de 4 kbytes, con la opción de poder configurar los valores predeterminados. Utiliza memoria virtual con paginación de dos niveles con mecanismos de protección.  En cuanto a la gestión de memoria virtual, las capacidades las proporciona un módulo del núcleo conocido como el VM (virtual memory) manager siguiendo las

20 siguientes características: a) paginación bajo demanda en cluster, b) a partir de un fallo de página no sólo se carga la página que ha producido el fallo sino también un conjunto de páginas adyacentes.  En la asignación de páginas locales se aplica la política FIFO entre el working-set (páginas cargadas del proceso) para quitar las páginas ya cargadas. El tamaño del working-set se ajusta dinámicamente mediante las políticas del VM manager considerando el comportamiento, los recursos y las necesidades globales de memoria del proceso.

SOLARIS 10
SERVICIOS 9. INTERFAZ DEL USUARIO  Tras la instalación de Solaris con la interfaz gráfica de usuario o GUI, el entorno de escritorio presenta al usuario varias funciones inmediatamente reconocibles. El diseño de la estructura es similar a otros sistemas operativos comunes, como Windows de Microsoft o series de Apple OS. Los diseñadores de Solaris construyen el entorno de escritorio con el lenguaje de programación Java (Java Desktop System) y Solaris cuenta con navegadores de Internet, reproductores multimedia y una suite de oficina. 10. OPERACIONES DE ENTRADA Y SALIDA  Manejadores y controladores – Programa de más bajo nivel que se encarga de los detalles que son dependientes del dispositivo o elemento electrónico (tarjeta de circuitos impresos) de la unidad de E/S. Una vez que el controlador acepta la orden del canal de E/S, genera una interrupción y comienza a trabajar en ello. Simultáneamente, el sistema operativo rectifica que la operación vaya siendo realizada correctamente.  Bus (Canales de E/S) – Registros que forman parte del espacio normal de direcciones de la memoria, en donde las operaciones de entrada y salida escriben órdenes y parámetros.  El software de E/S es independiente del dispositivo el cual debe contar con una uniformidad en los nombres de manejo de errores, además presenta al programador las transferencias síncronas (síncronas – bloquean al programa; asíncronas – no bloquean al programa pero se lleva a cabo una gestión de los dispositivos compartidos)  Solaris cuenta con una gestión de las operaciones de E/S por capas, es decir en el SO la capa superior corresponde a los programas de usuario (ya que están fuera del sistema operativo) y desde esta capa se accede a la capa inferior (correspondiente al SO) mediante la interfaz de llamadas al sistema. La interfaz de una capa debe estar bien definida para que el programador logre prevenir las posibles consecuencias al modificar la capa. En la siguiente figura se ilustra una gestión de dispositivos de entrada y salida por capas.

21

11. MANIPULACIÓN DE ARCHIVOS  El sistema de administración de archivos de Solaris, permite a los administradores crear, copiar, depurar, reparar y modificar archivos mediante la creación y eliminación de cadenas de archivos al nombrar tuberías (pipes ‘|’) y manejar volúmenes. 12. COMUNICACIONES  Solaris ofrece un mecanismo de comunicación entre procesos (IPC) mediante llamadas a procedimiento remoto (RPC), en los que se llama a un método de una actividad o componente de otra aplicación, pero se ejecutar de forma remota (en otro proceso), y el resultado devuelto es regresado al proceso que inició la llamada. Esto implica: 1) descomponer la llamada de método a un nivel que el SO pueda entender, 2) transmitir desde el proceso local los datos en el espacio de direcciones del proceso remoto y 3) volver a montar y representar la llamada desde el proceso remoto, luego los valores de retorno son enviados al proceso local. 13. DETECCIÓN DE ERRORES  En el caso de Solaris, éste posee herramientas muy eficaces en la pre-detección de errores, análisis del hardware del sistema y en la recuperación de datos. Parte de las estrategias utilizadas por Solaris involucra el bloqueo de algunas partes de la memoria para evitar usarlas con el fin de no perder los datos guardados.  Por otro lado, Sun ha insertado en el núcleo del SO un sistema conocido como “Tecnología preventiva de auto recuperación (Predictive Self -Healing - PSH)”, que permite reducir los riesgos y aumenta la disponibilidad del equipo. Además PSH toma las medidas

22 necesarias (diagnosticar, aislar o recuperar las fallas existentes tanto en los dispositivos de E/S como en espacios de la memoria) para reducir los daños por futuros peligros que puedan causar problemas en el sistema, es decir reduce los tiempos de caída y por ende tiempo de recursos.  Además Solaris proporciona una llamada al sistema sync, que se llama generalmente cuando se cancela la señal de apagado (shutdown) para vaciar los buffers y evitar inconsistencias. 14. ASIGNACIÓN DE RECURSOS  El administrador de recursos de Solaris tiende a mejorar las funciones de asignación, supervisión y control de los recursos del sistema. Entre sus funciones destaca en “programador de reparto justo (fair share scheduler - FSS)” y las agrupaciones de recursos para la partición de los recursos del sistema. 15. PROTECCIÓN Y SEGURIDAD  Solaris cuenta con el accesorio ASET (Automated Security Enhancement Tool) que incrementa la seguridad permitiendo a los administradores de sistemas revisar los archivos del sistema incluyendo sus permisos, pertenencias y el contenido del mismo. Por otro lado, ASET alerta a los usuarios acerca de problemas de seguridad potencial y proporciona las soluciones más apropiadas.  Existe una versión mejorada que además incluye el intercambio de claves de internet – IKE , un Shell seguro y un protocolo ligero de acceso a directorios – LDAP. IKE permite a los administradores gestionar un gran número de redes redes seguras. El Shell de Solaris permite a los usuarios acceder de forma segura a una red insegura a través de un sistema remoto. LDAP proporciona los mecanismos de cifrado SSL (TLS) y CRAMMD5 (cifrado avanzado) con un tamaño máximo de 128 bits que está disponible de forma predeterminada en algunas funciones. PROCESO DE PLANIFICACIÓN DE LA CPU Solaris utiliza una cola de varias prioridades, donde la prioridad más alta es asignada primero (la asignación de hilos por parte del kernel puede conocerse con el comando ps -etcL), que van de 0 a 169. Del 0 al 59 están reservados para los threads de tiempo compartido, el sistema de hilos en las prioridades 60 a 99. Del 100 al 159 para los hilos de tiempo real y el resto para las interrupciones de baja prioridad.  A diferencia de Linux, cuando un proceso se no se termina en su tiempo asignado, su prioridad cambia y regresa a la cola de espera. En Solaris, el Process Scheduler SCHED es el componente del kernel encargado de controlar el acceso de los procesos al CPU. El SHED divide los procesos en dos categorías: interactivos y de tiempo real. Los procesos de tiempo real – RT son considerados prioritarios sobre cualquier otro proceso en el sistema y son manejados por un algoritmo FIFO. Los procesos interactivos son despachados utilizando la planificación de Round-Robin

23 MECANISMOS DE SINCRONIZACIÓN DE PROCESOS Solaris proporciona mútex adaptativos, varibles de condición, semáforos, bloqueos (cerrojos lector-escritor) y colas de bloqueo para controlar el acceso a las secciones críticas de los procesos. El mútex adaptativo protege el acceso a todos los elementos de las secciones críticas, en un sistema multiprocesador éste se inicia como un semáforo estándar, implementando un cerrojo de bucle sin fin. Este SO utiliza este mecanismo para proteger los datos a los que se accede mediante segmentos de código secreto.  Los bloqueos lector-escritor de Solaris, son utilizados para proteger aquellos datos a los que se accede frecuentemente pero que solo se utilizan en modo “solo de lectura”, por otro lado las colas de bloqueos, que ordenan la lista de hilos en espera de adquirir un mútex adaptativo o un cerrojo, son estructuras que contiene los threads que están a la espera de un cerrojo MECANISMOS DE PREVENCIÓN / EVASIÓN / DETECCIÓN DE INTERBLOQUEOS  Solaris proporciona la herramienta Crash Analysis Tool – CAT, que es parte del entorno del sistema y ayuda a analizar los archivos centrales del sistema y la salida del conflicto que se presentó. CAT genera archivos de salida en los cuales se describen las causas y los factores que provocaron el error.  Sin embargo se utiliza el algoritmo del “avestruz”. GESTIÓN DE MEMORIA  Las primeras versiones sólo utilizaban particiones variables sin ningún esquema de memoria virtual (máquinas PDP-11), sin embargo en las implementaciones actuales utilizan una memoria virtual paginada.  Solaris es un SO diseñado para ser instalado en una gran variedad de computadoras, ya que la gestión de memoria es muy dependiente del hardware disponible. Las nuevas versiones de Solaris proporcionan una memoria virtual con paginación sobre demanda combinado con el intercambio de procesos. Para cada entrada de la tabla de páginas se considera la dirección física del marco de página, los bits de protección, el bit de validez, de referencia, de página modificada y un contador de antigüedad (solamente el bit de validez y la dirección física deben estar soportados por el hardware), el resto de la información puede simularse en el software.  Además de la tabla de páginas, se cuenta con una lista de marcos de página que guarda la información del estado de la página (asignada, libre, cargando, etc.), el número de procesos que referencian al marco y el dispositivo que contiene una copia de la ágina y el número de bloque.  El Working-Set (conjunto de páginas asignadas a un proceso); el sistema operativo define en número mínimo de marcos libres, si en un momento determinado el límite es rebasado, el SO entra y envejece las páginas (contador de antigüedad) y si la edad alcanza un valor determinado, la página se libera.  Escritura de páginas en disco por grupos; si el paginador decide liberar una página y la página se ha modificado, el paginador pone la página en una lista de páginas a escribir, cuando el número de páginas llega a un número determinado, todas las páginas se escriben físicamente en el disco.

24  Swapping; cuando se presenta mucha demanda de memoria, y el paginador no es capaz de conseguir marcos libres a la velocidad necesaria, y además no se puede mantener el número mínimo de marcos libres, el SO saca un proceso de memoria (el criterio se basa fundamentalmente en el estado del proceso y su prioridad).

ANDROID
SERVICIOS 16. INTERFAZ DEL USUARIO  Poco intuitivo, la interfaz es adaptable a pantallas de mayor resolución como: VGA, biblioteca de gráficos 2D, gráficos 3D basados en las especificaciones de la OpenGL ES 2.0 y diseño de teléfonos tradicionales.  La multitarea real está disponible, es decir las aplicaciones que no están ejecutándose en primer plano, también reciben ciclos de reloj. 17. EJECUCIÓN DE PROGRAMAS  La ejecución de programas de Android es muy similar a la de muchos sistemas Linux, con la única diferencia de que en Android, cada proceso de cada aplicación se ejecuta en una máquina virtual, lo que le agrega seguridad al sistema. 18. OPERACIONES DE ENTRADA Y SALIDA  Utiliza una gestión de dispositivos de entrada y salida por capas muy similar a Solaris; ver el caso de Solaris. 19. MANIPULACIÓN DE ARCHIVOS  El sistema de administración de archivos de Android, permite a los administradores crear, copiar, depurar, reparar y modificar archivos de una manera muy similar a otros SO mediante el empleo de directorios. 20. COMUNICACIONES  Android ofrece un mecanismo de comunicación entre procesos (IPC) mediante llamadas a procedimiento remoto (RPC), en los que se llama a un método de una actividad o componente de otra aplicación, pero se ejecutar de forma remota (en otro proceso), y el resultado devuelto es regresado al proceso que inició la llamada. Esto implica: 1) descomponer la llamada de método a un nivel que el SO pueda entender, 2) transmitir desde el proceso local los datos en el espacio de direcciones del proceso remoto y 3) volver a montar y representar la llamada desde el proceso remoto, luego los valores de retorno son enviados al proceso local.  Android proporciona todo el software necesario para realizar estas operaciones de IPC, para que se pueda centrarse en la definición e implementación de la interfaz de programación de RPC. Para que una aplicación pueda participar en la comunicación entre procesos debe unirse a un servicio utilizando bindService().

25 21. DETECCIÓN DE ERRORES  La técnica de detección de errores de Windows se basa en recorrer el sistema de ficheros desde la información de éstos y desde la información de los bloques libres, anotando en cada caso el número de veces que se checa cada bloque. El sistema de ficheros será consistente si cada bloque ocupado se accede una sola vez desde los directorios, y si todos los bloques no ocupados aparecen registrados como libres. Las situaciones de inconsistencia se reflejan cuando: a) existen bloques que no se reclaman ni como libres ni como ocupados, b) existen bloques que se reclaman simultáneamente como libres y ocupados, y c) los bloques se reclaman más de una vez como ocupados. El último caso es el más grave, ya que no es posible tomar automáticamente una decisión acerca de a qué fichero corresponde el bloque. 22. ASIGNACIÓN DE RECURSOS  En Android, cada aplicación abierta es considerada un usuario diferente, por lo que a cada solicitud se le asigna un único ID de usuario. Este único ID es utilizado para controlar los permisos de los archivos de una aplicación para que sólo las aplicaciones seleccionadas puedan acceder a los archivos específicos de cada aplicación. Por otro lado, cada proceso posee una máquina virtual – VM, por lo que el código de una aplicación se ejecuta de forma aislada de otras aplicaciones.  Android inicia el proceso cuando cualquiera de los componentes de la aplicación que se ejecuta y cierra el proceso cuando ya no se necesita o cuando el sistema debe recuperar memoria para otras aplicaciones. De esta manera el sistema operativo implementa el principio de privilegios mínimos, cada aplicación sólo tien acceso a los componentes que necesita para hacer su trabajo, por lo que se genera un entorno muy seguro, en el que una aplicación no puede acceder a partes del SO para el cual no se le da permiso 23. PROTECCIÓN Y SEGURIDAD  Según un estudio de Symantec “Susceptible al walware” de 2013, demuestra que en comparación con iOS, Android es un sistema menis vulnerable. El estudio en cuestión habla de 13 vulnerabilidades graves para Android, frente a 387 vulnerabilidades para iOS. Además se habla de los ataque en ambas plataformas, en el caso de Android se queda con 113 ataques nuevos en 2012 a diferencia de iOS que sólo tuvo un ataque nuevo. Aun así Google y Apple se empeñan cada vez más en hacer sus sistemas operativos más seguros, incorporando más seguridad. Algunas de las mejoras disponibles en Android 4.4 son:  Android sandbox reinforced with SELinux. SELinux es un sistema de control de acceso obligatorio (mandatory Access control - MAC) en el kernel de Linux que proporciona protección adicional contra vulnerabilidades en contra de la seguridad.  Per User VNP. En dispositivos multiusuario, un VNP es asignado a cada usuario, permitiendo a cada uno trazar su ruta en la red sin afectar a los demás usuarios.  ECDSA Provider support in AndroidKeyStore. Android utiliza los algoritmos de ECDSA y DSA para el almacenamiento de contraseñas.

26 PROCESO DE PLANIFICACIÓN DE LA CPU Android, como un fruto de Linux, utiliza el algoritmo planificador conocido como el “Completely Fair Scheduler - CFS” que fue desarrollado con el fin de maximizar el uso de la CPU con las diferentes tareas que se lanzan en un sistema Linux, basándose en el “Fair Queuing”. MECANISMOS DE SINCRONIZACIÓN DE PROCESOS En Android, los procesos se sincronizan de la siguiente manera: a) sólo un proceso puede sincronizarse en modo kernel, b) si el proceso actual está activo en modo kernel, el SO no provoca interrupciones, c) un proceso que se ejecuta en modo kernel puede provocar un cambio en su propio estado, suspendiendo su ejecución (sleep) y esta suspensión voluntaria se debe generalmente a la espera de un evento. El SO proporciona varios mecanismos que permiten a los procesos sincronizarse en modo kernel mediante bottom-halves, temporizadores, colas de espera y de tareas, y semáforos.  Las bottom-halves – BHs se refieren a un mecanismo de sincronización que deja al último los aspectos menos urgentes de rutinas de servicio de las interrupciones. En muchos casos no es conveniente atender a la interrupción en su totalidad.  Los temporizadores en Linux se gestionan en una lista circular doblemente enlazada con el objetivo de poder colocar a los procesos en espera durante un tiempo determinado, los temporizadores a despachar en un futuro próximo se colocan al inicio de la lista.  Colas de espera y de tareas. En las últimas versiones de Android, se crearon unas colas de tareas que permitieran colocar tantas funciones como se quisiera para luego procesarlas todas una tras otra en orden “Last In First Out - LIFO” (en realidad son pilas de funciones), utilizadas para posponer la ejecución de una función específica del kernel. Las colas de espera es una lista circular simplemente enlazada de descriptores de procesos esperan la respuesta de algún recurso o evento. Cada descriptor contiene la dirección y un puntero al siguiente elemento de la cola, utilizadas para suspender la ejecución de un proceso hasta que se produzca una cierta condición. MECANISMOS DE PREVENCIÓN / EVASIÓN / DETECCIÓN DE INTERBLOQUEOS___  Se utiliza el algoritmo del “avestruz”; ver el caso de Windows 7. GESTIÓN DE MEMORIA Debido a que Android es un SO diseñado para dispositivos móviles, en algunos casos la cantidad de memoria es muy limitada, sin embargo Android soporta dispositivos con 512 MB de memoria principal (RAM) gracias a sus políticas con respecto a la gestión de memoria.  Una petición directa se da a cabo cuando un proceso o el kernel intenta asignar una página de la memoria y además el kernel tiene en uso toda la memoria disponible, esto forza al kernel a bloquear la asignación mientras éste libera una página, para evitar las peticiones directas, el kernel de Android llama a la instrucción kswapd (background reclaim) que es un thread que trata de liberar las páginas más “viejas” para que cuando un nuevo thread intente asignarse a una página, lo logre satisfactoriamente.

27  Por otro lado, zRAM (zwap RAM) es una estrategia que incrementa la cantidad de memoria en el sistema mediante la compresión de las páginas de memoria y colocándolas en una memoria zwap dinámica.

CONCLUSIONES
A lo largo de la elaboración de este trabajo de investigación nos dedicamos a analizar los tres sistemas operativos seleccionados desde cómo están programados, qué algoritmos usan para ciertas tareas, cómo administran los recursos y procesos, etc. Cabe destacar que los temas aprendidos en clase quedaron más claros con este trabajo debido a que aprendimos cómo los conceptos teóricos se implementan en la realidad. No solo reforzamos lo aprendido en clase, aprendimos más conceptos relacionados a la estructura y programación de un sistema operativo y además vimos cómo ha ido evolucionando cada uno, como ´Windows NT 3.1 pasó a ser Windows 8, Solaris 2.0 a Solaris 11 y Android 1.0 Apple Pie a Android 4.4 Kitkat, todo esto refleja como los programadores cada vez buscan mejorar el sistema operativo para hacerlo más eficiente y fácil de manejar por el usuario. Todo esto nos genera expectativas de que esperar en las siguientes versiones de estos sistemas operativos. Algunas de las conclusiones a las que llegamos y podemos resaltar son las siguientes:  En la actualidad hay una gran variedad de sistemas operativos, sin mencionar que desde hace más de 30 años éstos han sufrido cambios por parte de los programadores, y siguen evolucionando.  Es evidente que el sistema operativo más utilizado hoy en día es el correspondiente a Microsoft-Windows.  El diálogo entre el usuario y la máquina suele realizarse a través de una interfaz de línea de comandos o de una interfaz gráfica de usuario. Las interfaces de línea de comandos exigen que se introduzcan instrucciones breves mediante un teclado. Las GUI emplean ventanas para organizar archivos y aplicaciones con iconos y menús que presentan listas de instrucciones.  El uso de las GUI es más sencillo de utilizar que el de las interfaces de línea de comandos. Sin embargo, la introducción de instrucciones con una GUI es más lenta, por lo que las GUI suelen tener la opción de emplear un sistema equivalente al de línea de instrucciones como alternativa rápida para los usuarios más hábiles en materia de sistemas computacionales.  Los tres sistemas operativos analizados anteriormente no compiten directamente entre sí en el mercado, esto se debe a que cada uno tiene un propósito y un enfoque en el mercado diferente. Windows está enfocado en las computadoras personales, Solaris en las estaciones de trabajo y servidores mientras que Android en los dispositivos móviles con pantalla táctil.

28

Referencias
Watters, Paul. (2003). Solaris 9: manual de referencia. México, McGraw-Hill Watters, Paul. (2002). Manual de administración de Solaris. México, McGraw-Hill Universidad Politécnica de Valencia (2011), Android: Programación de aplicaiones móviles. Recuperado el 12 de noviembre de 2013 de la página http://www.androidcurso.com/index.php/tutoriales-android/32-unidad-2-diseno-dela-interfaz-de-usuario-vistas-y-layouts/222-tipos-de-recursos-y-recursos-delsistema Galli, R. (2011, diciembre 7). Android, iOS, tiempos de respuestas y por qué nada es gratis en sistemas informáticos. Recuperado el 12 de noviembre de 2013 de la página http://gallir.wordpress.com/2011/12/07/android-ios-tiempos-de-respuestasy-por-que-nada-es-gratis-en-sistemas-informaticos/ Princeton University (2011). Enterprise Servers and Storage. Recuperado el 12 de noviembre de 2013 de la página http://www.princeton.edu/~unix/Solaris/troubleshoot/schedule.html Bravo, D. (2004, noviembre). Solaris Operating Environment. Recuperado el 14 de

noviembre

de

2013

de

la

página

http://artemisa.unicauca.edu.co/~dabravo/solaris_vs_linux.html Ferreiro Fernández, M. (2010). WINDOWS 7. UN SISTEMA OPERATIVO A SU ALCANCE. Ideaspropias Editorial, Vigo, 2010. 208 páginas. Windows 7. Revisando la nueva interfaz de usuario. (2009, Noviembre 22). Recuperado el 14 de noviembre de 2013 de la página http://asereware.blogspot.mx/2009/09/windows-7-revisando-la-nueva-interfaz.html Oscar (2008, noviembre 28). 7 novedades en la interface de Windows 7. Recuperado el 14 de noviembre de 2013 de la página http://www.madboxpc.com/la-nueva-interface-de-windows-7/ Microsoft (2013). Iniciar un programa con el comando Ejecutar. Recuperado el 14 de noviembre de 2013 de la página http://windows.microsoft.com/es-xl/windows-vista/start-a-program-by-using-the-runcommand

29 Microsoft (2013). Windows 7: administración y operaciones. Recuperado el 15 de noviembre de 2013 de la página http://technet.microsoft.com/es-es/library/dd443490(v=ws.10).aspx Microsoft (2013). Windows 7. Recuperado el 16 de noviembre de 2013 de la página http://technet.microsoft.com/en-US/windows/dd361745 Microsoft (2013). Task Manager. Recuperado el 16 de noviembre de 2013 de la página http://technet.microsoft.com/en-us/library/cc938567.aspx Seguridad en el Protocolo SSL-TLS. (2011, Noviembre 8). Recuperado el 16 de noviembre de 2013 de la página http://www.expresionbinaria.com/seguridad-en-el-protocolo-ssl-tls/ Desfragmentador de disco de Windows. (2013). Recuperado el 16 de noviembre de 2013 de la página http://es.wikipedia.org/wiki/Desfragmentador_de_disco_de_Windows García Marcelli, M. (2011, mayo 23). Sistema de Archivos. Recuperado el 17 de noviembre de 2013 de la página http://es.slideshare.net/garciamarcelli/sistemas-de-archivos-14185226 Sistemas Operativos. Entrada y Salida. (2012, Diciembre). Recuperado el 17 de noviembre de 2013 de la página http://www.dc.fi.udc.es/~so-grado/SOEntradaSalida.pdf Bedoya, O. Sistemas Operativos. Recuperado el 17 de noviembre de 2013 de la página http://eisc.univalle.edu.co/~oscarbed/SO/clasePlanificacionApropiativa.pdf Buchart, C. (2011). Planificación de Procesos en Linux. Recuperado el 18 de noviembre

de

2013

de

la

página

http://alfa.facyt.uc.edu.ve/computacion/pensum/cs0377/practicas/1/1_planificacion _procesos.pdf Android (2013). Running Android with low RAM. Recuperado el 18 de noviembre de 2013 de la página http://source.android.com/devices/low-ram.html#carveouts Universidad Particular Técnica de Loja (2009, abril 13). Planificación de procesos en Windows, Linux, Mac, Solaris y AIX. Recuperado el 18 de noviembre de 2013 de la página http://blogs.utpl.edu.ec/sistemasoperativos/2009/04/13/planificacion-deprocesos-en-windows-linux-mac-solaris-y-aix/

30

Gestión de memoria en UNIX y SOLARIS. (2013). Recuperado el 18 de noviembre de 2013 de la página http://sistemasoperativosm317.wikispaces.com/Gestión+de+memoria+en+UNIX+y +SOLARIS López Vázquez, Y. (2012, diciembre 13). Sistema Operativo Solaris. Recuperado el 18 de noviembre de 2013 de la página http://www.slideshare.net/MONSE100/sistema-operativo-solaris-15628229