Principales Procesos MAC OS X

Universidad Tecnológica de Panamá Facultad de Ingeniería en Sistemas Computacionales Lic. En Redes Informática Tema: Ge

Views 116 Downloads 0 File size 577KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Universidad Tecnológica de Panamá Facultad de Ingeniería en Sistemas Computacionales Lic. En Redes Informática

Tema: Gestión de Procesos en Mac Os

Profesora: Lourdes Jaramillo

Integrantes:

Cedulas:

Adan Esquivel Christopher Duncan Daniel Estrivi Jeniffer Leal José Jiménez

Grupo: 11R221

Fecha: 27/09/17

8-869-369 8-906-2369 8-907-939 8-930-1082 8-909-997

Índice

Introducción En los últimos años se puede apreciar cómo, dentro de los tres Sistemas Operativos más utilizados para computadoras personales, hay una especie de batalla por presentar cual ofrece mejores prestaciones. Estos tres sistemas mencionados son Windows 7 de Microsoft, Ubuntu de Linux, y Mac OS X de Apple. Por ende, en este trabajo solo nos centraremos en Mac OS X de Apple. Se define la función del sistema operativo como gestor de recursos en contraste con su papel de interfaz con las aplicaciones. Desde este punto de vista cobra relevancia el rendimiento, como medida de la calidad del diseño, la implementación y la configuración de un sistema operativo. Un aspecto fundamental del diseño del sistema operativo Mac OS X, es su estructura. Las propuestas avanzadas tienen que competir con la inercia y la experiencia acumulada con las estructuras clásicas. Finalmente, es preciso considerar los condicionantes que el entorno comercial impone sobre la difusión y el éxito de un determinado sistema operativo.

Gestión de Procesos ¿Qué es? Utilizando la definición dada en el material de la asignatura Sistemas Operativos se va a explicar qué es un proceso. La definición es la siguiente: “Un proceso es básicamente un entorno formado por todos los recursos necesarios para ejecutar programas. Desde el punto de vista del SO, un proceso es un objeto más que hay que gestionar y al cual hay que dar servicio” Mientras que un proceso sería la ejecución de ese programa, es decir, el programa en acción. Esto indica que los procesos son dinámicos, están en constante cambio debido a estos recursos necesarios, ya que al intentar realizar algún tipo de acción puede ser que tenga que permanecer a la espera de que dicho recurso esté disponible, por ejemplo una petición de lectura del disco duro, y que el brazo lector del disco duro lo esté utilizando otro proceso. ¿Programa vs Proceso? Programa es una aplicación del sistema operativo listo para ser ejecutado, cuando el SO asigna unos recursos este pasa a ser un proceso. Algoritmo de MAC Algoritmo Round Robin es la selección de proceso de forma equitativa, comenzando desde el primero hasta el último de forma justa para todos los procesos para ello usa el quantum es el tiempo de cada proceso cuando a un proceso se le termina el quantum se le coloca al final dela cola del siguiente nivel. Utiliza I/O Ki: El Kit de I/O es un marco de código abierto en el núcleo XNU que ayuda a los desarrolladores de controladores de dispositivos de código para Mac OS X de Apple iOS y sistemas operativos. Creación y destrucción de procesos El estudio del sistema UNIX es debido a que tanto el sistema Linux como el sistema Mac OS X están basados en dicho sistema, por lo que es más razonable hacer la mención a UNIX y no a estos dos sistemas. Las únicas diferencias fundamentales detectadas entre UNIX y Mac OS X se basan en el sistema de ficheros, donde Mac OS X utiliza HFS+ frente al UFS de UNIX y el estándar ext3 de Linux. Respecto al Kernel, ambos sistemas están basados en el Kernel de UNIX, pero actualmente Mac OS X utiliza un híbrido del núcleo de UNIX Mach llamado XNU, mientras que Linux utiliza un núcleo monolítico llamado Linux. UNIX. Los procesos en los sistemas UNIX están identificados por un número que es único (PID), además de que cada proceso el espacio de memoria utilizado, formado por tres segmentos:

el código, los datos y la pila. También contiene la información de control del proceso, que indica la planificación y estado del proceso, la estructuración de datos y la comunicación entre procesos. Otra información importante es el número de identificación de usuario (UID) y el número de identificación del grupo de usuarios al que pertenece el proces (GID). Todo ello pertenece al bloque de control de proceso (PCB). La creación y destrucción de procesos en UNIX se ajusta a la filosofía de la manera más sencilla posible, así las llamadas al sistema tienen el mínimo número de parámetros. Las llamadas correspondientes a la creación, destrucción y bloque o espera de un proceso son respectivamente: fork, exit y wait. La llamada fork crea un nuevo proceso hijo idéntico al proceso padre. Tienen la misma imagen de memoria, el mismo bloque de control de proceso y los mismos archivos abiertos, aunque situados en distintos espacios de memoria. Para poder distinguir a ambos procesos, la llamada fork devuelve distintos valores, el hijo recibe un valor 0 y el padre el PID del hijo. La llamada exit finaliza un proceso. Cuando se produce esta finalización del proceso hijo, se manda al sistema la llamada wait, para que el padre se bloquee a la espera de la finalización del hijo. Si el proceso hijo finalizara antes de que el padre recibiera esta llamada, el proceso hijo se convertiría en un proceso en estado zombie, y hasta que no se ejecute esta llamada wait el proceso no se eliminará. Para evitar la acumulación de procesos UNIX prevé un límite de números de procesos zombie y aquellos procesos hijos que se destruyen más tarde que sus procesos padres, al quedar huérfanos sería el primer proceso del sistema (init) el que se encarga de recoger su estado de finalización. La llamada wait bloquea el proceso que lo ha llamado hasta que uno de sus procesos hijos es destruido, por lo que si el proceso no tiene hijos wait regresa y el valor devuelto es igual al Pid de dicho proceso hijo. En UNIX se puede utilizar un comando para eliminar un proceso que se está ejecutando por la razón que estimemos oportuno; gran consumo de recursos, ya no es necesario, etc. Esta orden es “kill Pid proceso a eliminar”, por lo que para eliminar un proceso primero se debe conocer su Pid.

Principales Procesos MAC OS X Estos procesos permiten iniciar aplicaciones previamente instaladas al arranque del SO, monitorearlas, y ofrecer servicios desde antes del inicio de sesión, durante la sesión, y proveen esquemas para el mejoramiento del rendimiento de MAC OS X:     

Apps de arranque en la sesión del usuario StartupItems Launchd (LaunchAgents y LaunchDaemons) Loginwindows App Nap

 Timer Coalescing  Grand Central Dispatch  XPC Apps de arranque en la sesión del usuario Corresponde a la sección del usuario donde se seleccionan directamente cuales Apps se requieren arranquen al inicio de sesión. Esto se ejecuta individualmente en cada sesión de usuario. StartupItems   

Son “Packs” compuestos generalmente por scripts y archivos de configuración de aplicaciones. Se lanzan justo al final del proceso de arranque, pero antes de cualquier inicio de sesión. Brindan servicios a todos los usuarios del sistema, como por ejemplo, acceso a algún hardware instalado.

Launchd (LaunchAgents y LaunchDaemons) LaunchAgents      

Es el primer proceso lanzado por el SO MAC. Encargado de la creación del resto de procesos que componen el Sistema Operativo. Se identifica su inicio tras mostrar la pantalla de inicio de sesión, o el fondo de pantalla, etc. Proceso relativamente joven, debutó en Mac OS X Tiger como una gran revolución. Característica principal, es lanzar los daemons del sistema bajo demanda, y no todos desde el inicio de la sesión. Agilizando enormemente el proceso de carga. Sustituye al proceso “init”, nombre seguramente familiar para más de uno.

Launchd / Acciones No muere al terminar la carga del sistema, permanece activo y se encarga de lanzar procesos de:     

Cargas de fichero de configuración. Finalizaciones de programas. Se produjo una conexión por red Modificación de un fichero o directorio. Loginwindows: proceso que carga la pantalla de login.



Ejecuta LaunchAgents y de LaunchDaemons. La principal diferencia es que los Daemons se pueden invocar sin necesidad de haber iniciado sesión ningún usuario y los Agents siempre actúan en nombre de uno.

Loginwindows / Durante la carga Coordina el proceso de Logging In y la sesión de usuario, llamando a otros servicios de usuario, según se necesite. Una vez autenticado el usuario, LoginWindow procede a cargar el entorno del usuario, tales como: -Carga el entorno del Usuario según las preferencias, variables de entorno, permisos de acceso a los archivos o dispositivos, etc -Lanza el Dock (parecido al Escritorio de Windows), el Finder (es una aplicación de sistema que actúa como interface primaria para la interacción con el sistema de archivos) y el SystemUIServer.

Después de la carga Si los procesos Finder y Dock son terminados “mueren” por algún motivo desconocido, LoginWindow automáticamente los lanza de nuevo.

De la misma manera si el proceso LoginWindow muere, el proceso Init, lo restaura. Una vez que la sesión de usuario está funcionando, LoginWindow, monitorea dicha sesión y las aplicaciones de usuario de la siguientes maneras: Maneja la parte de LogOut, reinicio y terminación de procesos. Maneja el Force Quit Windows, que monitorea las aplicaciones activas y responde a los pedidos de los usuario de “matar procesos” o reiniciar el Finder Muestra cuadros de dialogo de alerta cuando recibe notificaciones de aplicaciones ocultas (aplicaciones sin interfaz de usuario). Escribe cualquier error Standard en un archivo Log que después será usado por la aplicación Console. App Nap Permite darle toda o la mayoría de recursos a la aplicación que tenemos en primer plano.

Es decir, las aplicaciones que quedan ocultas tras la ventana de la aplicación principal, los procesos bajan de prioridad pasando a segundo plano. Limitar también la prioridad en el acceso al disco y a la red ¡Tan pronto como se utilice de nuevo la aplicación “oculta!, al instante cambiará de nuevo y funcionará a toda velocidad. Es tan transparente que pensaremos que había estado funcionando de esa manera todo el tiempo. App Nap funciona de la misma manera con las pestañas de Safari, por lo que sólo la pestaña visible está funcionando a plena velocidad. Nap App, inclusive reduce el consumo de energía de la CPU hasta en un 23 por ciento Ejemplo A continuación se presentan el funcionamiento de App Nap con 10 aplicaciones abiertas, con sólo 2 en primer plano de la pantalla (Safari y Monitor de actividad). 8 aplicaciones que “no se ven” dejan de consumir recursos, siempre y cuando no se trate de una aplicación que esté, por ejemplo, reproduciendo música o vídeo.

Timer Coalescing Tecnología está destinada a los equipos portátiles de Apple. En todas las Mac existen una serie de tareas que se realizan en segundo plano y que consumen recursos de forma habitual, pero cada una a su tiempo. Time Coalescing juntar todos esos procesos, los alinea y hacer que todos a la vez realicen las tareas que requieren, evitando así un consumo de energía en una batería de una portátil, reduciendo hasta un 72 por ciento el consumo de la CPU.

Grand Central Dispatch Tecnología desarrollada para optimizar el soporte de las aplicaciones para procesadores de varios núcleos. Permite a los desarrolladores crear aplicaciones que utilicen toda la potencia de los sistemas multinúcleo. Con GCD, el SO es quien gestiona los hilos de ejecución, no las aplicaciones. Las Apps distribuyen su trabajo automáticamente en todos los núcleos disponibles, lo que significa un rendimiento extraordinario.

XPC Realiza una combinación de uso de launchd, GCD, y sandboxing (sistema de seguridad que trabaja con aislamiento de ambientes) para proporcionar un mecanismo para factorizar una aplicación en una familia de procesos y coordinarlos adecuadamente. Mejora los tiempos de lanzamiento, evitando bloqueos y mejorando la seguridad al permitir que cada proceso se enfoque en una tarea específica.

Creación y destrucción de procesos Los sistemas operativos que son objeto de estudio tienen diferentes formas en la gestión de procesos, por lo que en este apartado haremos una distinción entre el sistema UNIX y el sistema Windows. El por qué se hace el estudio del sistema UNIX es debido a que tanto el sistema Linux como el sistema Mac OS X están basados en dicho sistema, por lo que es más razonable hacer la mención a UNIX y no a estos dos sistemas. Las únicas diferencias fundamentales detectadas entre UNIX y Mac OS X se basan en el sistema de ficheros, donde Mac OS X utiliza HFS+ frente al UFS de UNIX y el estándar ext3 de Linux. Respecto al Kernel, ambos sistemas están basados en el Kernel de UNIX, pero actualmente Mac OS X utiliza un híbrido del núcleo de UNIX Mach llamado XNU, mientras que Linux utiliza un núcleo monolítico llamado Linux. TFC: Arquitectura de Computadores y Sistemas Operativos UNIX. Los procesos en los sistemas UNIX están identificados por un número que es único (PID), además de que cada proceso el espacio de memoria utilizado, formado por tres segmentos: el código, los datos y la pila. También contiene la información de control del proceso, que indica la planificación y estado del proceso, la estructuración de datos y la comunicación entre procesos. Otra información importante es el número de identificación de usuario (UID) y el número de identificación del grupo de usuarios al que pertenece el proceso (GID). Todo ello pertenece al bloque de control de proceso (PCB). La creación y destrucción de procesos en UNIX se ajusta a la filosofía de la manera más sencilla posible, así las llamadas al sistema tienen el mínimo número de parámetros. Las llamadas correspondientes a la creación, destrucción y bloque o espera de un proceso son respectivamente: fork, exit y wait. La llamada fork crea un nuevo proceso hijo idéntico al proceso padre. Tienen la misma imagen de memoria, el mismo bloque de control de proceso y los mismos archivos abiertos, aunque situados en distintos espacios de memoria. Para poder distinguir a ambos procesos, la llamada fork devuelve distintos valores, el hijo recibe un valor 0 y el padre el PID del hijo.

La llamada exit finaliza un proceso. Cuando se produce esta finalización del proceso hijo, se manda al sistema la llamada wait, para que el padre se bloquee a la espera de la finalización del hijo. Si el proceso hijo finalizara antes de que el padre recibiera esta llamada, el proceso hijo se convertiría en un proceso en estado zombie, y hasta que no se ejecute esta llamada wait el proceso no se eliminará. Para evitar la acumulación de procesos UNIX prevé un límite de números de procesos zombie y aquellos procesos hijos que se destruyen más tarde que sus procesos padres, al quedar huérfanos sería el primer proceso del sistema (init) el que se encarga de recoger su estado de finalización. La llamada wait bloquea el proceso que lo ha llamado hasta que uno de sus procesos hijos es destruido, por lo que si el proceso no tiene hijos wait regresa y el valor devuelto es igual al Pid de dicho proceso hijo. En UNIX se puede utilizar un comando para eliminar un proceso que se está ejecutando por la razón que estimemos oportuno; gran consumo de recursos ya no es necesario, etc. Esta orden es “kill Pid proceso a eliminar”, por lo que para eliminar un proceso primero se debe conocer su Pid.

Comparaciones entre MAC OS X y Otros SO  El caso de Mac OS X es parecido al de Windows, utilizando varias colas de procesos cada una con un nivel de prioridad. Un hilo puede pasar de una cola a otra dependiendo de los requerimientos. Estos niveles se pueden manejar mediante llamadas al sistema. Los niveles son: normal, alta, Kernel y tiempo real.  El por qué se hace el estudio del sistema UNIX es debido a que tanto el sistema Linux como el sistema Mac OS X están basados en dicho sistema, por lo que es más razonable hacer la mención a UNIX y no a estos dos sistemas. Las únicas diferencias fundamentales detectadas entre UNIX y Mac OS X se basan en el sistema de ficheros, donde Mac OS X utiliza HFS+ frente al UFS de UNIX y el estándar ext3 de Linux. 

Conclusión Cada Proceso que realiza nuestro sistema operativo es semejante a los procesos que se lleva en la vida cotidiana de un ser humano.

Cada Proceso necesita una serie de recursos, y cada proceso es secuencial para ser atendido, ocupa un espacio de memoria que contiene el programa ejecutable, sus datos, su pila, conjunto de registros asociados al proceso.

Cada OS tiene una jerarquía para los procesos, tal es el caso de UNIX que tiene una estructura establecida de atender procesos.

Cuando dos o más procesos se encuentran en un estado de estancamiento se le denomina BLOQUEOS IRRE- VERSIBLES.

Los estados de un proceso son: LISTO, EJECUCION Y BLOQUEADO y como sub estados podemos mencionar, inicio, espera y fin.

Infografía