Mac OS X

Anuncio
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
Descargar