Introducción Este trabajo de investigación tiene como caso de estudio el Sistema Operativo Mac OS, se ha realizado con el propósito de cumplir con los requerimientos de la asignatura Programación de Sistemas (312) de la Universidad Nacional Abierta, en él se expone una idea general sobre el sistema operativo Mac OS, sistema operativo propietario del fabricante de ordenadores Apple Inc. Se expondrá la evolución de este sistema operativo desde su nacimiento (década de los ochenta) hasta hoy dÃ-a, viendo las mejoras aplicadas y las razones que las motivaron, operaciones del núcleo, administración de memoria, eficiencia de entrada y salida de datos, gestión de archivos, además del control y distribución de trabajos. La información contenida hace referencia especial a la versión Mac OS X Server, dadas las innovaciones que presentó Macintosh con su lanzamiento en 1999 y que vino a ser la base de las versiones siguientes hasta Mac OS X 10.6 Snow Leopard en 2009. Espero que los contenidos que se presentan a continuación cumplan con las exigencias de la asignatura, de no ser asÃ-, agradezco al asesor hacerme llegar las sugerencias, aclaratorias o correcciones necesarias, a fin de aclarar los conocimientos adquiridos en este tema. Tabla de Contenido 1 2 3 4 5 6 Introducción .. Objetivo Nº 6: Sistema Operativo Mac OS, evolución histórica y caracterÃ-sticas de dicho Sistema ... Objetivo Nº 7: Procedimientos que conforman el núcleo del Sistema Operativo Mac OS Objetivo Nº 8 : Los objetivos del sistema de gestión de memoria, esquemas de memoria en asignación contigua, técnica de Intercambio y memoria virtual (paginación, segmentación, polÃ-ticas: por demanda, de reemplazo y de asignación), del sistema operativo Mac OS .. Objetivo Nº 9: Técnicas de cache, buffer y cola de caracteres, que hacen eficiente al sistema de Entrada y Salida del sistema operativo Mac OS ... Objetivo Nº 10: Sistemas de archivos: gestión de archivos y la estructura fÃ-sica de los mismos, estructura de control, y asignación de archivos del sistema operativo Mac OS . Objetivo Nº 11: Los mecanismos de control y distribución de trabajo involucrados en el sistema operativo Mac OS .... Pág. I 2 12 14 20 22 26 Objetivo Nº 6 Analice el Sistema Operativo Mac OS y describa la evolución histórica, los objetivos, el propósito, sus funciones y caracterÃ-sticas de dicho Sistema. Sistema Operativo MAC OS Mac OS, por sus siglas en ingles Macintosh Operating Systems, sistema operativo propietario del fabricante de ordenadores Apple Inc, para su lÃ-nea de computadoras Macintosh. La fecha de su nacimiento data en 1984, surge con una alternativa de interfaz de usuario más amigable que la que ofrecÃ-a el sistema operativo competidor en la época, MS−DOS. 1 Es conocido por haber sido el primer sistema dirigido a un gran público y que contaba con una interfaz gráfica compuesta por la interacción del mouse con ventanas, iconos y menúes. El equipo de desarrollo del Mac OS original incluÃ-a a Bill Atkinson, Jef Raskin y Andy Hertzfeld. Evolución Histórica La historia del sistema operativo Mac Os (Macintosh Operating System) comienza en 1984, con los primeros equipos fabricados por la empresa Apple Computers Inc, llamados Macintosh, en los cuales venÃ-a instalado lo que se dio en llamar el software del sistema, ya desde un principio con una interfaz de usuario mucho más amigable que la que ofrecÃ-a el sistema operativo competidor en la época, MS−DOS. La empresa decidió más tarde crear nuevos productos más actualizados para que los clientes pagasen por ellos, lanzando asÃnuevas versiones de lo que más tarde se llamara Mac OS. Las 7 primeras versiones fueron comercializadas con el nombre de System Software. A partir de estas, incluyendo los últimos lanzamientos de la versión 7, se pasó a llamar Mac OS. Desde entonces, se suceden una serie de modificaciones del sistema operativo, hasta llegar a la versión Mac OS X construido sobre sólidos cimientos UNIX, usa una interfaz gráfica desarrollada por Apple llamada Aqua, que se inspira libremente en la interfaz de Mac OS Classic. El gestor de ventanas X11, caracterÃ-stico en la familia de sistemas Unix, y Java se usan sólo para compatibilidad con software no nativo de Mac. Apple decidió reemplazar el sistema operativo Mac OS 9 con uno nuevo basado en NeXTSTEP, porque Classic carecÃ-a de caracterÃ-sticas requeridas en un sistema operativo contemporáneo, este sistema tiene a su vez un subsistema llamado Darwin (bajo APSL, una licencia open source) que proporciona a Mac OS X prestaciones modernas, como la memoria protegida, la multitarea por desalojo o expulsiva, la gestión avanzada de memoria y el multiproceso simétrico, por lo que vino a convertirse en un sistema innovador, sumamente seguro, compatible y fácil de usar. Mac OS X incorpora diferentes tecnologÃ-as: Quartz Extreme, Core Image, []Core Audio, Core Video, OpenGL y QuickTime entre otras. Luego de Mac OS X sigue la evolucion de los Mac's hasta el más reciente lanzamiento: Mac OS X 10.6 Snow Leopard en agosto de 2009. Entre las versiones o evoluciones del Sistema operativo Mac Os, se encuentran: 1984: Sistema 1 El Sistema 1 tenÃ-a escritorio, ventanas, iconos, mouse, menús y scrollbars. El basurero Trash funcionaba como un tobogán de basura, todo desaparecÃ-a luego de reiniciar el ordenador, no se podÃ-a trabajar en dos aplicaciones al mismo tiempo, solo en una, ya que la memoria virtual no existÃ-a. En el Sistema 1 era imposible crear un folder dentro de otro folder, de hecho todos los archivos eran guardados en la misma dirección del disco, se creaba una nota en la tabla de archivos para que cada archivo estuviera en su respectivo folder y asÃ- el Finder podrÃ-a parecer como que el archivo estaba en su folder. Luego el Sistema 1.1 agregó la caja de avisos de diálogo, también el comando para limpiar tu Mac y algunos implementos para la velocidad. 1985: Sistema 2 El Sistema 2 fue notable en mejoras. Incrementó la velocidad del Finder haciéndolo un veinte por ciento más rápido, los comandos de regresar y cerrar se eliminaros. Fueron agregadas más opciones como: crear nuevos folders, apagar, la impresora de escritorio y los Ã-tems eran listados de forma vertical con un 2 pequeño icono. Los discos o unidades podÃ-an ser arrastrados al icono de basura y podÃ-an ser extraÃ-dos. 1986: Sistema 3 En el Sistema 3 el Finder fue mejorado y más rápido, el orden de los archivos HFS (Hierarchical File System) fue reemplazado por el nuevo sistema de Macintosh MFS (Macintosh File System) de los Sistemas 1 y 2. Los folders eran reales y se podÃ-an crear folders dentro de folders. Los iconos con Zoom fueron agregados en la parte inferior derecha en la ventana dentro del Dashboard, haciendo clic sobre estos se podÃ-a cambiar el tamaño para ajustar los contenidos del folder si era posible. Haciendo clic nuevamente se podÃ-a hacer que la ventana regresara a su tamaño normal. El icono del basurero sobresalÃ-a cuando algo era puesto sobre este y las lÃ-neas punteadas en dirección contraria. • El Sistema 3.2, se corrigieron treinta errores, la calculadora fue actualizada asÃ- que el teclado numérico en pantalla se parecÃ-a al teclado numérico en el teclado. • El Sistema 3.3, fue agregado por AppleShare el antiguo compartidor de archivos de Macintosh. 1987: Sistema 4 El Sistema 4 fue introducido como Macintosh SE y Macintosh II. A este sistema se le agregó múltiple soporte al monitor. • El Sistema 4.1, soportaba discos de 32+ MB, se le implemento el Finder múltiple, los usuarios podÃ-an cambiar entre el Finder, que solo soportaba un programa y el Finder múltiple que soportaba múltiples programas al mismo tiempo. Ahora el Finder mostraba cuanta memoria utilizaba cada programa, también se le agregó un Panel de control configurable. • El Sistema 4.3, fue un sistema actualizado, se le arreglaron algunos errores y controladores de impresora. 1988: Sistema 6 En el Sistema 6 se agregaron colores, aun asÃ- el Finder no tenÃ-a color, aunque las máquinas ya eran capaces. A la opción de Borrar Disco se le agrego un botón para poder cancelar esta acción, también fue agregada la opción de mostrar el número de versión del archivo. Fue asÃ- también agregada una notificación en el monitor permitiendo a los programas notificar a lo usuario por medio de la barra de menú si ellos necesitaban conectarlo. • El Sistema 6.0.1−6.0.8, simplemente se agregados algunos soportes para los nuevos modelos que ellos iban lanzando. 1990: Sistema 7 El Sistema 7 fue el gran cambio de software para esta época, se eliminó el Finder y el Finder múltiple. El Sistema 7 ya sólo tenÃ-a el Finder múltiple permitiendo hacer muchas tareas simultáneamente. La memoria también tuvo un gran cambio a 32b, esto permitió a las Macs usar mas de 8 MB de Ram, en 3 el sistema operativo, esto fue también implementado en el Sistema 7. El Networking por Apple Talk y compartir archivos por AppleShare fue agregado al sistema operativo, como opción adicional. El software QuickTime multimedia también fue trabajado en este sistema, pero estaba disponible como un software extra. El Sistema 7 agregó muchas caracterÃ-sticas que iban a ser construidas en el nuevo sistema Mac OS X. Un menú fue agregado en la parte inferior derecha del Dashboard, que mostraba la lista de los programas que estaban siendo utilizados en ese momento y permitÃ-a a los usuarios cambiarse entre ellos. Luego de la aplicación de menú fue agregado el menú de Ayuda, el basurero fue cambiado a un verdadero folder permitiendo eliminar los archivos hasta que se seleccionaba la opción de Vaciar el basurero. Fue implementada la opción de arrastrar que permitÃ-a llevar un texto de un programa a otro sin necesidad de copiar y pegar. En el Sistema 7 el buscador finalmente tomo una ventaja en los objetos con color, haciendo que los elementos en la interfaz se vieran como en 3D. • El Sistema 7.0.1p Performa, fue lanzado junto con el Sistema 7.0.1's, arreglando algunas caracterÃ-sticas especiales para usuarios principiantes de este Sistema. • El Sistema 7.1, se le implemento un folder de Fuentes asÃ- que podÃ-an ser fácilmente agregados o removidos, luego estos fueron agregados y utilizados por el mismo Sistema. • El Sistema 7.1.1, también conocido como Sistema 7 Pro, Incorporando AppleScript, QuickTime, y PowerTalk, estos estaban disponibles como extras del sistema. • El Sistema 7.1.2, fue creado para soportar Chips de microprocesadores. • El Sistema 7.5, integraba todas las caracterÃ-sticas del Performa, también agregaba mucha más información de la GuÃ-a de ayuda del sistema de Apple (Apple Guide help system). Finalmente en la pantalla de arranque existió una pequeña barra. A pesar de que Mac habÃ-a trabajado durante once años llegando hasta el Sistema 7.5, esto mostraba claramente de que Mac necesitaba completamente una nueva creación del Sistema Operativo. Mac OS 7.6, fue el primer sistema operativo lanzado con una estrategia de Apple para luego ser actualizado como el actual Mac OS cada 6 meses, hasta que Rhapsody/Mac OS X fuera finalizado. Fueron corregidos algunos errores vÃ-a Mac Os 7.6.1 1997: Mac OS 8 Mac OS 8 incluyó otra renovación al Finder que podÃ-a hacer más cosas al mismo tiempo, dando la opción de controlar múltiples aplicaciones al mismo tiempo con un mejor desempeño de las computadoras con procesador. La apariencia del Finder fue renovada para que tuviera un mejor aspecto 3D, también podÃ-a ser personalizada. El Web Sharing permitÃ-a a los usuarios hospedar páginas en sus computadoras. • Mac OS 8.1, fue mas notable para el HFS+ (Esta improvisada versión del Sistema de archivos jerárquica que fue introducido en el Sistema 3) liberaba gran cantidad de espacio (Cientos de Megabytes) en el disco duro despejaba mas de 1 GB. Mac OS 8.1. También fue la ultima versión que soportaba Macs de 68K, todas las versiones anteriores eran solo para PowerPC. • Mac OS 8.5, introdujo Sherlock un avanzado programa de búsqueda que trabaja en el disco local, servicios de redes y la Internet. • Mac OS 8.6, agregó una opción de contenido a Sherlock aumentando su forma de administración y un agregado soporte de USB y FireWire. 4 1999: Mac OS 9 La opción de tener varios usuarios en una Mac fue agregada en esta versión, permitÃ-a a los usuarios ingresar y tener sus propias configuraciones. Apple talk sobre TCP/IP fue también implementado. Software Update permitÃ-a a los usuarios tener las actualizaciones de softwares fuera de Internet, y podÃ-a informar a los usuarios de las nuevas actualizaciones cuando ellos salÃ-an. • Mac OS 9.0.2 y 9.0.3, llegaron con sus modelos especÃ-ficos, Mac OS 9.0.4 unificó todo nuevamente y es la única versión del Classic Mac OS compatible con el Entorno Classic del Mac OS X Public Beta. • Mac OS 9.1, agregó estabilidad y la ventana de menú. Esto es lo mÃ-nimo del Classic en Mac OS X 10.0 y 10.1. • Mac OS 9.2, estaba disponible como pre−instalación del sistema iniciando con Quicksilver Power Mac G4s lanzado en el verano del 2001. 1999: Mac OS X Esta basado fuertemente en las PowerPC−port de OpenStep. Por eso Mac OS X hereda la memoria y procesador de Mach's y el driver del dispositivo de la interfaz, BSD's POSIX − UNIX Protocolo del programa que soporta y trabaja en interfaz de redes, también algunos elementos de la interfaz de NeXT's. Mac OS X, hoy en dÃ-a este sistema operativo esta virtualmente en todas las Mac's, y fue trabajado por una década para poder obtener el éxito que tiene ahora. 2001: Mac OS X 10.0 Cheetah Mac OS X 10.0 fue lanzada el 24 de marzo del 2001, este incorporaba muchas caracterÃ-sticas que fueron agregadas por las personas que colaboraron en Mac OS X Public Beta. Mac OS X 10.0 también contenÃ-a todas caracterÃ-sticas de un sistema operativo moderno, protegÃ-a la memoria, y asÃ- los programas no podÃ-an utilizar la información de otros programas, de esta forma el procesador no se bloqueaba, los drivers de los dispositivos podÃ-an ser cargados o descargados si eran necesario. Mac OS X también agrego Cocoa, derivado de NeXT's un muy sofisticado y desarrollado ambiente OpenSTEP. ExistÃ-an algunos asuntos pendientes, como el original Mac OS. Los usuarios de Mac OS X iniciaron a crear una gran queja sobre nombre que tenia este sistema operativo Cheetah que era muy salvaje e inapropiado. El ambiente Classic en 10.0, también era mejor que el Public Beta, aun tenia una extraña compatibilidad de problemas y conducta caprichosa. Los interfaz de Mac OS X se veÃ-a muy parecida a la interfaz de Mac OS y los usuarios creÃ-an que tenÃ-an las mismas caracterÃ-sticas sin embargo no fue asÃ- y tuvieron que aprender nuevos hábitos y dejar los viejos. 2001: Mac OS X 10.1 Puma Mac OS 10.1 fue lanzado luego de un año del 10.0, e incorporaba mejor desempeño especialmente en Macs G3. Las versiones 10.1.1, 10.1.2, 10.1.3, 10.1.4, y 10.1.5 todas tenÃ-an mejora en los errores, y actualizaciones en sus componentes. La mayorÃ-a de open source como utilidades de UNIX fueron incluidas en las Mac OS X y drivers adicionales para poder soportar mas dispositivos. 5 2002: Mac OS X 10.2 Jaguar El 25 de agosto de 2002 fue lanzada esta versión y Apple prosiguió con la andadura de su sistema operativo con el lanzamiento de Mac OS X v10.2 Jaguar) y que contaba con un nuevo incremento en su rendimiento, un nuevo y depurado look y más de 150 mejoras, entre estas estaba el mayor soporte para redes de Microsoft Windows, Quartz Extreme para la composición de gráficos sea procesada directamente por la tarjeta de video y un filtro contra spam. Apple Address Book para almacenar la información de contactos, también agregaba el sistema de red Rendezvous. iChat que consistÃ-a en un programa de chateo con soporte de AOL Instant Messenger, incluÃ-a asÃ- un renovado Finder con búsquedas integradas en cada ventana. 2003: Mac OS X 10.3 Panther Mac OS X v10.3 Panther se lanzó el 24 de octubre de 2003. Además de tener un rendimiento mucho mayor, incorporó la mayor actualización en la interfaz de usuario, y muchas mejoras que Jaguar el año anterior. Esta versión ya no era compatible en los antiguos modelos G3. Algunas de las mejoras de esta versión es que el Finder fue actualizado e incorpora una interfaz metálica y búsqueda rápida. Exposé permitÃ-a una nueva forma de manipular ventanas, también incorporo el Cambio Rápido de Usuarios, que permite tener sesiones con diferentes usuarios abiertas al mismo tiempo y pasar de una a otra rápidamente. Ahora esta nueva versión incluÃ-a soporte integrado de fax. FileVault era un Sistema de cifrado en tiempo real del directorio privado de cada usuario. Incrementaba velocidad en todo el sistema con un mayor soporte para los G5. 2005: Mac OS X 10.4 Tiger Mac OS X v10.4 Tiger fue lanzado el 29 de abril de 2005 y fue la versión disponible más reciente, contenÃ-a más de 200 nuevas mejoras, pero como sucedió con el lanzamiento de Panther, algunas máquinas antiguas no podÃ-an soportarlo, en particular, cualquier equipo Apple que no contara con conexión FireWire no podÃ-a ser soportado en Tiger. Esta versión incluya nuevas caracterÃ-sticas como Spotlight un sistema de búsqueda basado en contenidos y metadatos, asÃ- también Dashboard se encontraban widgets, unas miniaplicaciones que permiten realizar tareas comunes y ofrecen acceso instantáneo a la información. QuickTime 7 era la nueva versión que incluÃ-a soporte para H.264 y un interfaz completamente rediseñada. Safari como una nueva versión del navegador por defecto del sistema incorpora soporte para RSS, mayor velocidad y seguridad, etc.Esta versión tenÃ-a soporte de memoria de 64 bits para los nuevos 6 G5, usando el sistema LP64. 2006: Mac OS X 10.5 Leopard Mac OS X v10.5 Leopard es lanzada hoy 26 de Octubre de 2007. Esta versión es compatible con las PowerPC y con la nueva tecnologÃ-a Intel. Entre las caracterÃ-sticas de la nueva versión encontramos: • Time Machine: da la posibilidad de poder volver en el tiempo a una versión especifica de los contenidos de una carpeta, del disco duro completo, de un sólo archivo, de un rollo de fotos en iPhoto, etc. • Mail 3: es la tercera versión de este programa de correo electrónico de Apple ahora incluye Notas y To−Dos asÃ- como variados Templates para enviar email HTML. • iChat: da la posibilidad de chatear con tabs o de tener iconos animados, ahora también se tiene muchas funciones adicionales para los vÃ-deochats. Desde presentar vÃ-deos, compartir el escritorio, etc. • El Dashboard: trae una herramienta llamada Dashcode para crear Widgets fácilmente. Adicionalmente Safari tiene un botón Webclip que permite tomar cualquier fragmento de una página que se esté viendo y convertirla en un Widget. Accesibilidad, se crearon mejoras en las funciones de accesibilidad para que todos puedan usar un Mac. • El Finder: ahora con CoverFlow similar al de iTunes, tiene una función denominada QuickLook la cual permite abrir varios archivos a la vez con diferentes extensiones y no hay necesidad de abrir el programa, incluso los usuarios podrán hacer búsquedas en otras Mac conectadas en red. • El Dock: parece una bandeja de vidrio que recibe reflejos, cuenta con un stacks que permite apilar una serie de elementos y cuando se hace clic sobre él se despliegan en un abanico de opciones. La mayor de ellas siendo un gran avance en las funciones de texto−a−voz con una nueva voz sintetizada llamada Alex, que incluso puede hablar claramente a altas velocidades. Además, trae soporte para pantallas Braille. 2009: Mac OS X 10.6 Snow Leopard UPDATE: La más reciente versión del sistema operativo de Mac, apodado Snow Leopard, fue lanzado el 28 de agosto de 2009 y es más rápido que sus predecesores, además de tener varias nuevas caracterÃ-sticas interesantes: • Nuevo exposé integrado en el Dock. • Es posible utilizar el touchpad para insertar caracteres chinos. • La zona horaria se ajusta automáticamente. • Ofrece soporte para conectarse a los servidores Microsoft Exchange 2007. • Menor consumo de espacio en disco duro y soporte (teórico) para un máximo de 16TB (Terabytes) de RAM. También hay que destacar las siguientes innovaciones: • Grand Central es una tecnologÃ-a de programación que permite utilizar los procesadores multinúcleo y optimizar el rendimiento. • Quicktime X tendrá soporte optimizado para códecs actuales. • OpenCL (Open Computing Language) permitirá programar aplicaciones que utilicen la unidad de procesamiento gráfico para usos no gráficos. • Xcode: el núcleo de las herramientas para desarrolladores. El núcleo de las herramientas para desarrolladores incluida con Mac OS X es la aplicación Xcode, que 7 brinda una interfaz de usuario elegante y poderosa para crear y administrar proyectos de desarrollo de software en Mac OS X. Utiliza Xcode para organizar y editar tus archivos de origen, ver documentación, crear tu producto, depurar tu código y optimizar el desempeño de tus productos. Xcode en Snow Leopard también te ayuda a programar para Grand Central Dispatch, OpenCL y otras nuevas tecnologÃ-as. Xcode es un entorno de desarrollo altamente integrado y personalizable, con funcionalidades que te permiten crear un entorno de trabajo sencillo y eficiente. Objetivo Nº 7 Diseñe un esquema que represente los procedimientos que conforman el núcleo del Sistema Operativo Mac OS. Núcleo del Sistema Operativo Mac OS El núcleo (Darwin) de Mac OS X (xnu) está basado en los núcleos de los sistemas operativos Mach y FreeBSD, pero también incluye parte de MkLinux, NetBSD, OpenBSD y otras tecnologÃ-as de Mach. Mac OS X Admite las llamadas del sistema de Mach y BSD Como el núcleo de OS X está basado tanto en Mach cómo en FreeBSD, xnu contiene dos tablas de llamadas del sistema, de Mach y BSD y admite los API de los sistemas BSD y Mach. Esquema de procedimientos del núcleo de Mac OS X El kernel de Mac OS X por parte de Mach 3.0, un sistema originalmente basado en una estructura de microkernel. Sin embargo, el uso que se hace de este sistema en Mac OS X no es como microkernel, sino que ha sido adaptado a las necesidades de Mac OS X. En este caso concreto, Mach esta enlazado con el resto de componentes del sistema, de forma que todo ello pertenece a un único espacio de direcciones. Este diseño está motivado por razones de eficiencia, ya que una llamada directa entre módulo directamente enlazados es mas rápida que una llamada a procedimiento remoto (RPC) o el envÃ-o de un mensaje. En cualquier caso, el kernel de Mac OS X sigue manteniendo un alto grado de modularidad ofreciendo mas flexibilidad y sencillez que un kernel puramente monolÃ-tico. 8 Dentro del kernel, por tanto, lo que aporta Mach es: • Una API que ofrece canales de comunicación para aplicaciones de usuario. • Soporte para paralelismo, hilos y multiprocesamiento simétrico. • Una plataforma flexible de planificación de procesos, incluyendo su uso para tiempo real. • Un juego completo de primitivas de comunicación entre procesos, como mensajes, llamadas a procedimientos remotos, sincronización y notificación. Estructura general del sistema basado en el sistema operativo Mac OS X. ♦ Un sistema de gestión de memoria. ♦ Gran posibilidad de extensión y portabilidad. ♦ Seguridad y gestión de recursos basada en la abstracción de recursos. POSIX/BSD Provee al Sistema Operativo de la personalidad propia del sistema Macintosh. Manejo de las API encargadas del sistema de ficheros: • Diseño mejorado del VFS • Soporta múltiples formatos de ficheros (HFS, USF, HFS Plus). • Permite compartir ficheros NFS, y da servicio a los serviciosde Telnet, FTP, esto es algo común en todos los sistemas UNIX. Manejo de las API encargadas del sistema de redes. • Darwin incorpora la pila (stack) de protocolos para redes de BSD, la que es usada por gran cantidad de equipos que trabajan con el protocolo TCP/IP. • Todo convenientemente actualizado para la nueva versión de protocolo IP, conocida por Ipv6. • Soporte de AppleTalk. Objetivo Nº 8 Analice y fundamente los objetivos del sistema de gestión de memoria, esquemas de memoria en asignación contigua, técnica de Intercambio y memoria virtual (paginación, segmentación, polÃ-ticas: por demanda, de reemplazo y de asignación), del sistema operativo Mac OS. La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, asÃ- como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella. Los sistemas de administración de memoria se pueden clasificar en dos tipos: los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución y los que no. Los requerimientos para un correcto manejo de memoria son: • transparencia: la asignación que hace el Sistema Operativo de la memoria a cada proceso debe ser transparente para el usuario. 9 • protección: se debe asegurar que no haya una sobre −escritura de memoria. • segmentos múltiples: los segmentos de un proceso deben aparecer lógicamente contiguos. • código compartido: se debe mantener una sola imagen de cada proceso. Mac OS X gestiona la memoria según las necesidades de los programas que se tengan abiertos, pudiendo utilizar casi toda la disponible si hace falta. El sistema deja siempre algo para los programas abiertos pero asigna sobre la marcha la necesaria al programa que esté trabajando. Si se abre la terminal y tecleas "top" se pueden ver todos los procesos en marcha y la memoria RAM y uso del procesador que tiene cada uno. • Objetivos del sistema de gestión de memoria: La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayorÃ-a de los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario. • Esquemas de memoria en asignación contigua: un esquema simple de gestión de memoria consiste en asignar a cada proceso una zona contigua de memoria para que en ella resida su mapa de memoria, (donde cada región es una zona contigua que se caracteriza por la dirección dentro del mapa del proceso don de comienza y por su tamaño, además, tendrá asociadas una serie de propiedades y caracterÃ-sticas), de los esquemas de asignación contigua Mac OS aplica un sistema de asignación dinámica donde cada aplicación pide memoria al sistema según la va necesitando y la libera cuando no la necesita, lo que optimiza su aprovechamiento, en un Mac OS se asignará una única dirección de memoria por cada proceso que se este ejecutando. Esquema de Asignación Contigua Descripción La memoria principal se divide en un conjunto de particiones estáticas, Partición durante la generación del sistema un proceso se puede Estática cargar en una partición de este tipo. Las particiones se crean dinámicamente, de forma Partición que cada proceso se cargue dinámica en una partición de su mismo tamaño ventajas desventajas Empleo ineficiente de la memoria, debido a la Sencilla de implementar, poca sobre carga del sistema fragmentación interna. operativo El numero de procesos. Uso eficiente del procesador No hay fragmentación debido a la compactación interna, uso mas eficiente de para contrarrestar la la memoria principal fragmentación externa. • Tecnica de intercambio: esta tecnica se basa en usar un disco o parte de un disco (dispositivo de swap) como respaldo de la memoria principal cuando no caben en memoria todos los procesos activos (ejemplo: puede ser debido a que se ha creado uno nuevo), se elige un proceso residente y se copia en swap su imagen en memoria. El criterio de seleccion puede tener en cuenta aspectos tales como la prioridad del proceso, el tamaño de su mapa de memoria, el tiempo que lleva ejecutando y principalmente, su estado. Mediante la Administración de memoria con Intercambio en Mac Os X, existe traslado entre memoria y disco, durante tiempo de ejecución de un proceso, no necesariamente deben permanecer en memoria y la cantidad de procesos son superiores a la capacidad de cpu y memoria, esto, dado que tiene como prioridad dar cabida a la ejecución de mas aplicaciones de las que pueden residir simultáneamente en la memoria del sistema. 10 • Memoria virtual: la tecnica de memoria virtual se ocupa de la transferenca de informacion entre la memoria principal y la secundadaria. La memoria secundaria esta normalmente soportada en un disco (o particion).la memoria vietual se implementa sobre un esquema de paginacion, a este dispositivo se le denomina dispositivo de paginacion. La memoria virtual permite a Mac OS X usar "virtualmente" más memoria además de la RAM que tenga utilizando espacio en el disco duro para complementar la RAM. No obstante, los discos duros son mucho más lentos que la RAM, por lo que Mac OS X distribuye la información automáticamente entre el espacio en disco y la RAM para obtener el mejor rendimiento posible. • Paginacion: como su nombre lo indica, la unidad basica de este tipo de esquema es la pagina. Consiste en que el sistema operativo divide la memoria en unidades de tamaño fijo (generalmente potencia de 2, por ejemplo de 1 Kb ), llamados marcos. Los procesos son divididos en páginas de igual tamaño que los marcos. Al proceso de intercambiar páginas, segmentos o programas completos entre memoria principal y disco se le conoce como `intercambio' o `swapping'. `sobrecarga' (overhead), por páginas muy pequeñas. Fragmentación al interior de una página. La página corresponde con una zona de memoria contigua de un determinado tamaño. Por motivo de eficiencia en la traduccion este tamaño debe ser potencia de 2 (un tamaño de pagina de 4 KB es un valor bastante tipico). El mapa de memoria de cada proceso se considera dividido en páginas a su vez, la memoria principal del sistema se considera dividida en zonas del mismo tamaño que se denominan marcos de páginas. Un marco de página contendra en un determinado instante una página de memoria de un proceso. La estructura de datos que relaciona cada página con el marco donde está almacenada es la tabla de páginas. Mac OS X se encarga de definir la correspondencia entre páginas y marcos ediante la tabla de páginas, y el hardware es el encargado de aplicarla. En Mac OS X hay lo que se conoce como las "Entradas y salidas de paginación" que se refiere a la cantidad de información que se mueve entre la RAM y el disco duro. Este número representa la cantidad de datos acumulados que Mac OS X ha movido entre la RAM y el espacio en disco. Las salidas de paginación se producen cuando el Mac tiene que escribir información de la RAM en el disco duro (porque la RAM ya está llena). Añadir más RAM puede reducir las salidas de paginación. La gestión de memoria/archivo de paginación es mucho más eficiente en Mac OS X dado resulta un sistema operativo más liviano que otros. − Hiperpaginacion: un proceso esta hiperpaginado si emplea mas tiempo paginando, es decir., produciendo fallos de pagina y cargando las páginas en memoria; que ejecutandose propiamente tal. − Tabla de páginas Soporte hardware a las tablas de páginas: Registros dedicados: Gran velocidad para traducción de direcciones. Muy caro, útil solamente cuando las tablas son pequeñas. 11 Memoria principal: La tabla de páginas se almacena en memoria RBTP: Registro Base de la Tabla de Páginas almacena un puntero a la tabla de páginas del proceso en ejecución. Para acceder a una dirección necesita 2 accesos a memoria: Acceso a entra da en tabla de páginas. Acceso a dirección deseada. Mucho más lento el proceso de traducción. Registros asociativos (TLB: translation lookaside buffer): Para que un sistema de paginación sea aplicable a la práctica, es necesario que la mayorÃ-a de los accesos a memoria, accedan a la posición solicitada. Pequeña memoria asociativa interna a la MMU, mantiene información de las últimas páginas accedidas (tipo Cache). Con identificador de proceso (más número de página) y sin identificador de proceso (Solo número de página). Ejemplo: Dirección relativa 1502 en binario 0000010111011110 0 000101 1 000110 2 011001 Esquema de Traducción de dirección lógica a fÃ-sica en paginación del ejemplo planteado • Segmentación: con la paginación, la unidad de gestión de memoria (MMU) no sabe nada sobre las distintas regiones de los procesos. Solo entiende de páginas. En esta etapa de gestión de memoria los Datos y programas se dividen en segmentos (no es necesario que todos sean del mismo tamaño) y Espacios de direcciones independientes, crecimiento independiente. La segmentación es una técnica hardware que intenta dar soporte directo a las regiones. Para ello, considera el mapa de memoria de un proceso compuesto de múltiples segmentos. Mac Os X mantiene una tabla de segmentos por cada proceso y en cada cambio de proceso va informando a la MMU de que tabla debe usar. Esquema de segmentación Esquema de traducción de direcciones usando segmentación • Politicas Por demanda: las transferencias desde la memoria secundaria hacia la principal se realiza normalmente bajo demanda, el sistema operativo se encarga de transferirla la página desde la memoria secundaria si la pagina que requiere un proceso no esta en memoria principal, es decir, si se produce un 12 fallo de página. • PolÃ-ticas por reemplazo: el objetivo básico de cualquier algoritmo de reemplazo es minimizar la tasa de fallos de página, intentando además que la sobrecarga asociada a la ejecución del algoritmo sea tolerable y que no se requiera una MMU con caracterÃ-sticas especificas. Algunas de las estrategias para seleccionar la pagina que lleva mas tiempo en memoria es : FIFO (first in first out), se le asigna a cada página un contador. LFU (least frequently used), mantiene los contadores de acuerdo. al número de referencias. MFU (most frequently used) LRU (least recently used), menos recientemente usada. Algoritmo Optimo. Algoritmo de reemplazo de segunda oportunidad. • PolÃ-ticas de asignación: es un sistema con multiprogramación existen varios procesos activos simultáneamente que comparten la memoria del sistema. existen do tipos de estrategias de asignación: asignación fija o asignación dinámica. − Asignación fija: se asigna a cada proceso un numero fijo de marcos de pagina. − Asignación dinámica: el numero de marcos asignados a un proceso varia según las necesidades que tenga el proceso ( y posiblemente el resto de procesos del sistema) en diferentes instantes de tiempo. Objetivo Nº 9 Analice y describa las técnicas de: cache de buffer y cola de caracteres, que hacen eficiente al sistema de Entrada y Salida del sistema operativo Mac OS. El corazón de una computadora lo constituye la UPC. Esta unidad se encarga de procesar los datos y las instrucciones para conseguir el fin deseado por una aplicación. Ahora bien, esta unidad no servirÃ-a de nada sin otros dispositivos que almacenaran los datos y que permitieran interactuar con los usuarios y los programadores de las computadoras. Los primeros son básicamente dispositivos de almacenamiento secundario (discos) y terciarios (cintas y sistemas de archivo). Los segundos son los llamados dispositivos periféricos de interfaz de usuario, porque generalmente están fuera de la computadora y se conectan a ella mediante cables y son los teclados, ratones y cámaras entre otros. − Componentes de un sistema de E/S: • dispositivos : o por bloques (alto rendimiento) o por caracteres. • control adores • controlador de DMA • buses • puertos de E/S • saludo − Hay 3 maneras fundamentales para interactuar con un dispositivo de E/S: E/S programada : La CPU envÃ-a las ordenes al controlador una por una, y está ocupada con esta E/S hasta 13 que termina. Este mecanismo es tedioso e impide a la CPU ocuparse del procesamiento. Al ser la E/S mucho más lenta que esta, se gastan muchos ciclos sin hacer nada, esperando respuesta. interrupciones : Es mucho más flexible y mejora mucho el rendimiento. La CPU envÃ-a la orden al controlador, y sigue ejecutando su trabajo. Cuando el controlador ya tiene respuesta genera una interrupción, que obliga a la CPU a detener su trabajo, salvar la posición por la que iba su ejecución, atender la interrupción de acuerdo al código que se le pase, y continuar con el trabajo que estaba haciendo. Es más eficiente pero sigue generando algo de sobrecarga. no enmascarable : no se pueden desactivar. enmascarable : son menos crÃ-ticas que las anteriores. Permiten su desactivación. o acceso directo a memoria (DMA): es el mejor de todos. La CPU escribe las ordenes de E/S en el controlador de DMA, y luego se desentiende del problema. Este controlador se encarga de comunicarse con el controlador de dispositivo indicado y comienza a hacer la transferencia memoria <<< >>> dispositivo. Cuando se termina, el controlador de DMA interrumpa a la CPU para informarle que los datos ya se transmitieron o ya están disponibles en memoria principal. Nos damos cuenta que esta técnica es óptima en aprovechamiento de recursos, ya que no obliga a la CPU a esperar innecesariamente. • Niveles de software de E/S Aplicaciones de usuario >>> Rutinas del sistema operativo >>> Drivers (controladores de software) >>> Manejadores de interrupciones >>> Controladores de dispositivos >>> Dispositivos Cache Buffer: El buffer−caché mantiene copias de bloques de disco individuales. Las entradas del caché están identificadas por el dispositivo y número de bloque. Cada buffer se refiere a cualquier bloque en el disco y consiste de una cabecera y un área de memoria igual al tamaño del bloque del dispositivo. Para minimizar la sobrecarga, los buffer se mantienen en una de varias listas enlazadas: sin usar (unused), libres (free), no modificadas (clean), modificadas (dirty), bloqueadas (locked), etc. Técnica de Buffer y caché Ya sabemos que la E/S es lenta. Para amortiguar esto Mac OS X usa un almacenamiento de soporte, que son los buffer y la cache, que evita al procesador solicitar byte por byte, y en vez de ello se leen muchos datos con una sola solicitud . Los buffers se usan tanto para lectura y escritura de disco, para impresora, monitor, para placa de red, etc. SU misión es agilizar la transferencia emitiendo una sola petición e interrupción para un conjunto de datos. Los tipos de buffers son: · buffer sencillo · buffer doble · circular La función de la caché en Mac OS X es similar a la de los buffers, pero está implementada con circuitos de muy alta velocidad y tienen algunas ventajas tecnológicas como la búsqueda por asociación (que busca en muchas entradas al mismo tiempo). Lo que la resulta ser muy útil para mejorar el rendimiento es poner partes del sistema de archivos en la caché, y cualesquier otros datos que usemos con frecuencia en una Mac. 14 Técnica de cola de caracteres Los dispositivos de caracteres como los terminales, impresoras, tarjeta de red, modems, etc., no almacenan información en bloques de tamaño fijo. Gestionan flujos de caracteres de forma lineal y sin ningún tipo de estructura de bloques. Un teclado es un buen ejemplo de estos dispositivos. Esta conectado a una UART (Universal Asynchronous Receiver/Transmiter) que recibe un carácter del teclado cada vez que se pulsa una tecla. No es posible leer un bloque de teclas de un solo golpe o buscar dentro del dispositivo por ninguna unidad. Un terminal por lÃ-nea serie también es un dispositivo de caracteres. Su controlador se limita a enviar al periférico el flujo de caracteres que debe presentar en la pantalla y as escribir del mismo los caracteres tecleados por el usuario. Objetivo Nº 10 Analice y describa los esquemas para la implantación de los sistemas de archivos: gestión de archivos y la estructura fÃ-sica de los mismos, estructura de control, y asignación de archivos del sistema operativo Mac OS. La mayorÃ-a de los sistemas operativos tienen sistemas de archivos. Se usan para almacenar datos de manera segura. Están compuestos por particiones, archivos y directorios, y opcionalmente también de archivos de enlace (accesos directos en Windows). Los sistemas de archivos se deben montar, aunque esto lo hace automáticamente el sistema operativo al iniciar la sesión. Algunos SO de red permiten montar los sistemas de archivos de otras computadoras en directorios comunes. Entre las estructuras que puede tener tenemos: estructura arbórea, grafo acÃ-clico y grafo general. La estructura arbórea es la más sencilla de implementar. Internamente el disco está dividido en bloques fÃ-sicos (por ej: 512 bytes) y bloques lógicos o clusters (por ej: 4KB). Es bueno que los clusters sean múltiplo del tamaño de los bloques fÃ-sicos, por razones de eficiencia. En la estructura de un sistema de archivos tenemos que considerar que, al igual que con la memoria principal, siempre se produce algo de fragmentación, que puede ser interna (dentro de cada cluster o bloque) o externa (entre archivos). Cada nodo de la estructura se llama archivo o directorio, y tiene un nombre lógico que está directamente relacionado con una posición fÃ-sica dentro del disco. Es responsabilidad de este sistema recuperar los datos dado un nombre de archivo y su ruta de acceso. Esto lo hace usando tablas o punteros. Sistema de archivos en Mac OS X: Mac OS X es actualmente capaz de arrancar y usar como partición primaria un volumen formateado según diferentes sistemas de archivo, como HFS+, UFS, ISO, NFS o UDF. Además de estos, con Mac OS X se puede montar y trabajar con volúmenes en otros formatos, como UFS, FAT, SMB o AFP. Se proporciona un sistema llamado VFS (Virtual File System), que permite crear extensiones del kernel para soportar nuevos sistemas de ficheros, por lo que en realidad cualquier sistema de archivo puede ser manejado con el kernel de Mac OS X. A continuación se analizara el sistema nativo creado especialmente para Mac OS X, HFS Plus. Hierarchical File System Plus (HFS Plus) Es un sistema de archivos desarrollado por Apple Inc. para el sistema operativo Mac OS X. Tiene como objeto sustituir al HFS original y pasar a ser el sistema de archivos primario para este sistema operativo. Durante su fase de desarrollo, fue conocido con el nombre de Sequoia. 15 Los objetivos basicos que se buscaron en el diseno de HFS Plus fueron: • Uso eficiente del disco; • Utilizacion de nombres internacionales, utilizando el juego de caracteres Unicode; • Posibilidad de nombres largos, de hasta 255 caracteres UTF−16; • Posibilidad de almacenar datos extra junto con cada fichero (metadata) de una forma flexible y est´andar. • Manejo de discos grandes, pudiendo direccionar 232 bloques en cada volumen (en comparacion con 216 en HFS); • Posibilidad de arranque en sistemas no basados en Mac OS. El explorador de archivos es una pieza esencial ya que nos permite acceder a cualquier parte del disco duro a través del sistema de archivos comúnmente estructurado de carpetas. El sistema operativo Mac OS X ejecuta una aplicación llamada Finder que es la responsable de la gestión total de los archivos de usuario y genera un uso más eficiente del sistema de ficheros , discos, red y el lanzamiento de otras aplicaciones. En Mac os x el Finder incorpora un cuadro de búsqueda rápida localizado en la esquina superior derecha, una barra de ruta o dirección y una barra lateral desde donde se puede acceder rápidamente a lugares comunes del equipo. Bloques de Arranque Reservado(1024 bytes) Cabecera de Volumen Ficheros de Reserva Ficheros de desborde de extensión Fichero de Catalogo Fichero de Atributos Fichero de Arranque Cabecera alternativa del volumen Ultimo sector Reservado (512 bytes) Data de archivos O Espacio libre La figura muestra la estructura de un archivo HFS Plus. Se ve que existen ciertas partes reservadas que contienen meta información sobre el sistema de archivos, dejando libre el resto de bloques para la información en sÃ-. Las principales partes de un sistema de archivos HFS+ se describen a continuación en el mismo orden en que aparecen en la figura 16 Bloques de arranque: Ocupan los sectores 0 y 1, y son parte fundamental para el arranque del sistema. Cabecera del volumen: Guarda en el sector 2 ciertos datos generales sobre el volumen, como el numero de bloques que contiene, la fecha de creación o la localización del resto de partes del volumen. Fichero de reservas: Lleva el control de los bloques libres y asignados. Esta parte tiene un tamaño variable, y no tiene por que estar almacenada de forma contigua en el disco. El control se lleva a través de un mapa de bits de bloques. Fichero de desborde de extensión: Contiene información sobre los bloques que tiene cada fichero en el volumen. Un fichero solo aparecerá en esta sección si ocupa más de 8 bloques, ya que en el fichero de reservas se pueden direccionar hasta 8 bloques de cada fichero. El resto de bloques de cada fichero se debe direccionar en esta sección. Los bloques erróneos también se guardan en esta sección. Fichero de catálogo: Contiene información sobre los ficheros y directorios que contiene el volumen completo. Fichero de atributos: Contiene información sobre los atributos (por ejemplo, permisos de lectura y escritura) de cada elemento del sistema de archivos. Estos elementos pueden ser tanto ficheros como directorios. Fichero de arranque: Similar a los bloques de arranque, pero diseñado especialmente para aquellos sistemas operativos que no ofrezcan soporte nativo para HFS+. Cabecera alternativa del volumen: Almacena en el penúltimo sector del disco la misma información que la cabecera del volumen. Esta sección esta diseñada para que sea utilizada por las utilidades de disco de Apple Inc. Ultimo sector: Está reservado para uso de la empresa Apple Inc., que lo utiliza durante el proceso de fabricación del ordenador. Estructura de Archivos en mac os x HFS+ se utiliza en el último MAC OS X sin lÃ-mite en el tamaño de archivo. La organización de archivos suele ser por asignación jerárquica. En forma de árbol invertido. Un disco duro puede estar dividido en particiones. Como mÃ-nimo debe tener una partición y esta deberá estar activa. Particiones: −Primaria. Puede haber un máximo de cuatro particiones primarias en cada disco duro. o Cada una de ellas pueden contener sistema operativo propio. o Ha de haber una partición primaria activa que será la que contenga el sistema operativo que arranque en ese momento el ordenador − Extendida. Es un tipo de partición que permite tener indefinidas unidades lógicas. Se creó para saltarse el lÃ-mite de las cuatro particiones primarias. − Lógica. Partición que sólo puede existir en las particiones extendida. No pueden contener un sistema operativo si lo contienen se debe instalar un gestor de arranque para que el ordenador cargue ese sistema operativo. Sólo habrá una partición extendida. Dentro de ella podrá haber indefinidas particiones lógicas. En Mac OS X casi todos los ficheros que contienen código ejecutable, como las aplicaciones, bibliotecas y módulos del núcleo se realizan en forma de ficheros en formato macho. El formato macho no es un 17 programa desarrollado originalmente por Apple. Fue desarrollado por Open Source Foundation para su sistema operativo OSF/1 y luego adaptado por Apple para la arquitectura x86 en el marco del proyecto OpenStep. El formato de ficheros macho y la especificación ABI (Application Binary Interface) describen la manera en que el núcleo debe cargar y lanzar el fichero ejecutable en Mac Os. A grandes rasgos, macho se puede dividir en tres partes: tÃ-tulo, instrucciones de carga y segmentos, que pueden constar de varias secciones. El tÃ-tulo y las instrucciones de carga describe las principales caracterÃ-sticas del fichero, mientras que el segmento de datos contiene un conjunto de bytes a los cuales se remiten las instrucciones de carga. TÃ-tulo. Los primeros cuatro bytes del tÃ-tulo determinan el asÃ- llamado magic number, que identifica el fichero como de 32 o 64 bytes. Además, permiten al procesador determinar el orden de los bytes. El tÃ-tulo define la arquitectura para la cual se ha compilado el fichero. Esto permite al núcleo garantizar el lanzamiento de los ficheros sólo en aquella plataforma para la que fueron compilados. A veces, el fichero binario puede contener código para más de una arquitectura. Este formato se conoce como Universal Binaries. En este caso el fichero empieza por un tÃ-tulo fat. Instrucciones de carga. El campo de instrucciones de carga contiene una lista de instrucciones que comunican al núcleo de qué manera debe cargar los diferentes segmentos del fichero. Estas instrucciones describen cómo cada segmento está alineado en la memoria, qué derechos de acceso tiene y dónde está ubicado en la memoria. Segmentos y secciones. El fichero ejecutable macho suele tener 5 segmentos: __PAGEZERO. Ubicado en la dirección virtual cero, no tiene ninguna protección. Este segmento no tiene ningún campo en el fichero en el disco. __TEXT. Contiene datos con acceso sólo de lectura y ejecución. __DATA. Contiene datos con acceso de escritura. Esta sección está marcada como copy−on−write. __OBJC. Contiene datos usados por el medio de ejecución Ojective−C. __LINKEDIT. Contiene datos que se usan para establecer relaciones dinámicas. Los segmento __TEXT y __DATA contienen cero o más secciones. Cada sección contiene un determinado tipo de datos, por ejemplo: el código usado, las constantes, lÃ-neas de texto, etc. AsÃ-, el código ejecutable y no ejecutable se guardan en un segmento separado. Objetivo Nº 11 Analice y describa los mecanismos de control y distribución de trabajo involucrados en el sistema operativo Mac OS. El control y la distribución de trabajos en el sistema se hacen en base a la información proporcionada por el usuario a través de una interface de comunicación entre el usuario y el sistema operativo. Esta información es necesaria, para que el usuario pueda expresar al sistema lo que desea hacer, indicando los requerimientos de recursos, de tal forma que el sistema puedas optimizar su rendimiento, claro esta que la comunicación entre el usuario y el sistema no es unidireccional, sino, que debe existir una interfaz complementaria para que el sistema pueda comunicarse con el usuario. 18 El Mac OS es un sistema operativo multiusuario y multitarea con una capacidad para administrar simultáneamente información de 32 bits, se considera de multitarea preventivo dado que cuenta con un programador (también llamado planificador) el cual, según los criterios de prioridad, asigna el tiempo de los equipos entre varios procesos que lo solicitan. La planificación del procesador consiste en mantener una serie de estructuras de información que permiten identificar las caracterÃ-sticas de cada trabajo, asÃ- como los recursos que tiene asignados. Un trabajo puede estar en varios estados (procesamiento, listo para ejecutar y en espera). Mach 3.0 permite el uso de varios procesadores trabajando en paralelo, su trabajo es dotar al procesador y la memoria de la capacidad de abstracción del resto de los componentes del equipo. Se encargará de gestionar los tiempos de trabajo del procesador, asÃ- como de facilitar la protección de memoria entre las distintas aplicaciones que se estén ejecutando en un momento dentro del ordenador. Todo ello sin olvidar la gestión de todos los mecanismos de entrada y salida de que dispongamos para una tarea en ejecución. Distribución de trabajos Tareas e hilos Mac Os X define el concepto de hilo tal y como lo hace POSIX, siguiendo este mismo estándar para su manejo. Un hilo es, por tanto, es un punto de control de la ejecución de un proceso, que tiene acceso a todos los recursos del proceso y que se puede ejecutar en paralelo (si la maquina lo soporta) con otros hilos (estén o no dentro del mismo proceso). Un proceso (o tarea, como se le denomina en Mach) se define como un conjunto de recursos. Estos recursos, como veremos posteriormente, pueden ser referenciados a través de los puertos, con la excepción del espacio de direccionamiento. Una tarea debe contener uno o más hilos. En Mach, una tarea no tiene capacidad de ejecución, sino que son los hilos que contiene los que realmente se ejecutan basándose en los recursos de la tarea. Una tarea es, por tanto, una entidad bastante pesada, ya que contiene todos los recursos que los hilos contenidos van a necesitar. Por contra, un hilo es una entidad sumamente ligera, ya que sólo contiene cierta cantidad de información relativa al estado de la ejecución, delegando en la tarea todos los aspectos relativos a los recursos. Planificación La planificación en el kernel de Mac OS X esta basada en cuatro listas de ejecución, cada una de ellas con diferente prioridad. Un hilo puede migrar de un nivel de prioridad a otro en función de sus requerimientos, dependiendo de la polÃ-tica en concreto que se utilice en el sistema. En general, es posible manejar estas prioridades mediante los procedimientos definidos en el estándar de llamadas POSIX. Los procesos parecen efectuarse simultáneamente Las cuatro listas de ejecución que maneja el planificador de Mac OS X, son: Prioridad Aplicación normal Aplicaciones normales Alta cuya prioridad se ha aumentado Modo kernel Internos al kernel con mayor prioridad que el nivel de usuario (ej.: E/S). Tiempo real Hilos con una fracción definida de ciclos de ejecución 19 Puertos En Mach, un puerto (port) es el punto de acceso a un recurso, entendiendo este como un servicio prestado a una aplicación o hilo. Cada objeto o recurso puede tener varios tipos de puerto, entre ellos el puerto de nombre (name port) y el puerto de control (control port ). Un hilo que haga una referencia a un puerto de nombre sólo podrá ver ciertas caracterÃ-sticas del recurso y obtener ciertos servicios no privilegiados. Sin embargo, un hilo que pueda referenciar el puerto de control será capaz de manipular completamente este recurso. Asociado con los puertos existe el concepto de derechos de puertos (port rights). Cada hilo posee unos derechos de puertos que le dan acceso a un número limitado de recursos y a un nivel de manipulación sobre estos. Estos derechos de puertos se pueden traspasar de unos hilos a otros, siempre y cuando se tengan los permisos adecuados para ello. El sistema de seguridad de Mach se basa precisamente en el manejo de los derechos de puertos. Comunicación entre procesos Al igual que en cualquier sistema operativo moderno, en Mach se definen algunos métodos de comunicación entre los diferentes procesos que se ejecutan en el sistema. Los canales de comunicación entre procesos están regidos por puertos, que tienen unos derechos asociados. Los canales de comunicación que están definidos en el kernel de Mac OS X son: • Colas de mensajes • Semáforos • Notificaciones • Cerrojos • Llamadas a procedimientos remotos La forma de utilizar estos métodos de comunicación viene definida por una API (Application Programmer Interface), librerÃ-a de funciones que ofrecen servicios de creación, control, manejo y destrucción de los elementos IPC comentados. • Colas de mensajes Las colas de mensajes eran, originalmente, el único canal de comunicación Ã-nter proceso definido en el kernel Mach. Las colas están definidas de forma que sólo un proceso tiene privilegios sobre el puerto de lectura, mientras que varios procesos pueden tener privilegios sobre el puerto de escritura en la cola. Como en otros sistemas operativos, la comunicación entre procesos se lleva a cabo mediante escrituras en la cola y posteriores lecturas por parte de otro proceso. Cada mensaje puede contener información de diferentes tipos: • Datos de aplicación generados por el proceso escritor; • Una copia de la información en un rango determinado de memoria; • Derechos sobre puertos; • Atributos especÃ-ficos del kernel, como la identificación del emisor. Es destacable que, si bien sólo una tarea (forma en que se denominan los procesos en Mach) tiene acceso de lectura a una cola de mensajes, cualquier hilo de ejecución dentro de ella puede estar intentando leer un mensaje. En ese caso, la implementación hace que sólo un hilo puede leer un determinado hilo. 20 • Semáforos En Mach, los semáforos tienen tres posibles operaciones: • Wait: Hace que el proceso espere en el semáforo hasta que el contador sea mayor que cero. Esta operación se suele hacer cuando se va a entrar, por ejemplo, en una sección crÃ-tica. • Post: Incrementa el contador del programa, haciendo que se desbloquee algún proceso que estuviese bloqueado en el semáforo. • Post all: Hace que se desbloqueen todos los procesos que estaban bloqueados en el semáforo. Evidentemente, si el semáforo es binario, no existe diferencia práctica entre la llamada a post y la llamada a post all. • Notificaciones Los objetos de notificación son similares a los semáforos en el sentido de que soportan las operaciones post y wait. La diferencia estriba en que las notificaciones contienen además un campo de estado. El campo es de longitud y formato fijos, definidos en la creación del objeto. En cada operación post se actualiza el contenido del campo de estado. En cada objeto sólo existe un campo de estado, por lo que éste se sobrescribe en cada operación post. Las notificaciones constituyen una forma algo más avanzada de comunicación que los semáforos, porque permiten el paso de datos adicionales en el campo de estado. • Cerrojos Un cerrojo es un objeto que proporciona acceso exclusivo a una región crÃ-tica, es decir, es esencialmente un semáforo binario. Durante la sección crÃ-tica o transacción −definida como un bloque de operaciones que se deben ejecutar de forma atómica, el hilo o tarea cierra el cerrojo. Al salir de la transacción, el cerrojo es abierto de nuevo. • Llamadas a procedimientos remotos En Mach existen objetos −llamados objetos RPC (Remote Procedure Calls)− diseñados para hacer posible y optimizar las llamadas a procedimientos remotos. En el momento de creación de un objeto RPC, se definen los formatos para los argumentos. Cuando se hace la llamada (operación send sobre el objeto RPC), se crea un mensaje en el formato ya definido y se pone en la cola del objeto. Este mensaje se pasa al servidor. Cuando el servidor retorna de la transacción, entonces la respuesta se le envÃ-a al emisor que hizo la llamada. El kernel Mach trata de optimizar el proceso haciendo que el servidor se ejecute utilizando los recursos del cliente. Esta técnica se denomina migración de hilo. Mecanismos de control El Mac OS controla los diferentes procesos de la computadora por medio de la interpretación de el lenguaje de comandos que le permiten al usuario comunicarse, además, de las herramientas adecuadas para que pueda realizar sus tareas informáticas y le evita asumir los complicados procesos necesarios para llevar a cabo dichas tareas. En las plataformas de derivados de Unix, el intérprete Tcl/Tk a menudo se instala de manera predeterminada. Si este no es el caso, normalmente es necesario instalar los paquetes correspondientes a la distribución o sino utilizar el código fuente de Tcl (lenguaje de herramientas de comando) y compilarlo 21 para luego proceder con su instalación. Por otra parte, la ejecución de un código Tcl se realiza escribiendo en el intérprete de comandos o consola: tclsh archivo.tcl BibliografÃ-a CARRETERO Jesús (2001). Sistemas Operativos. Una visión aplicada Editorial Mc Graw Hill. MILENKOVIC Milan (1994). Sistemas Operativos. Conceptos y Diseño Editorial Mc Graw Hill. UNA (1996). Programación de Sistemas. Publicaciones UNA. Referencias http://es.kioskea.net/contents/systemes/sysintro.php3 http://es.wikipedia.org/wiki/Mac_OS_X http://es.wikipedia.org/wiki/Núcleo_(informática) www.apple.com › Principal › Soporte técnico http://www.macuarium.com/macuarium/actual/especiales/2000_01_21_expediente1.shtml http://www.viruslist.com/sp/analysis?pubid=207270926 http://worldlingo.com/ma/enwiki/es/XNU/3 http://www.inf.udec.cl/~apuente/archivos/Presentaci%F3n%20Trabajo%202.pdf http://www.angelfire.com/mac2/grupomac/pagina6.htm http://es.wikipedia.org/wiki/Tcl 3 Esquema representativo de particiones dinámicas de memoria en Mac os x Tabla de páginas del Proceso Nº página de 6 bits bits Desplazamiento de 10 bits s Dirección fÃ-sica de 16 bits 22