Beruflich Dokumente
Kultur Dokumente
I. INTRODUCCIÓN
Fig. 1 Logo de Windows XP
C. Gestión de procesos Todo hilo tiene seis posibles estados: preparado, listo, en ejecución, en
En Windows XP, un proceso es una instancia de una aplicación y un espera, en transición y terminado. El estado preparado indica que el
hilo es una unidad de código que puede planificarse a través del hilo se está esperando para ejecución. En cada decisión de
sistema operativo. Por lo tanto, un proceso contiene uno o más hilos. planificación, el hilo se está preparado de mayor prioridad pasa al
Un proceso arranca cuando algún otro proceso llama la función estado de listo, lo indica que será el siguiente hilo que pasará a
CreateProcess(). Esta función carga las bibliotecas de montaje ejecutarse. En un sistema multiprocesador, cada proceso mantiene un
dinámico utilizadas por el proceso y crea un hilo principal. hilo en estado listo. Un hilo estará en ejecución cuando se encuentra
ejecutándose en un procesador.
Además, se pueden crear hilos adicionales a través de la función Este hilo se estará ejecutando hasta que sea desalojado por otro hilo de
CreateThread(). Cada hilo se crea con su propia pila con un tamaño una prioridad mayor, hasta que termine su ejecución, hasta que finalice
predeterminado de un 1MBytes, a menos que especifique lo contrario el tiempo de ejecución que se le ha asignado o hasta que quede
en uno de los argumentos de la función CrateThread(). Dado que bloqueado a la espera de un objeto del despachador, como un suceso
algunas funciones en tiempo de ejecución de C mantienen el estado en que indique la finalización de la operación de E/S que se señalice un
variables estáticas, las aplicaciones multihilo necesitan protegerse objeto del despachador. Un nuevo hilo se encontrará en estado de
frente a los accesos no sincronizados. transición cuando esté esperando la totalidad de recursos necesarios
para su ejecución. Un hilo pasará al estado de terminado cuando se
Los manejadores de instancia haya finalizado su total ejecución.
Cada biblioteca de montaje dinámico o archivo ejecutable cargados en El despachador del kernel usa un esquema de prioridad de 32 niveles
el espacio de direcciones de un proceso se identifica mediante un para determinar el orden en la ejecución de los hilos. Estas prioridades
manejador de instancia. El valor de manejador de instancia es, en la se dividen en dos clases distintas: clase variable y la clase de tiempo
práctica, la dirección virtual en la que se ha cargado el archivo. Una real. La clase variable contiene hilos cuyas prioridades van de 0 a 15,
aplicación puede obtener el manejador de un módulo dentro de su mientras que la de tiempo real contiene los hilos restantes.
espacio de direcciones pasando el nombre módulo a la función Cuando un hilo de prioridad variable finaliza una operación de espera,
GetModuleHandle(). el despachador del kernel aumenta su prioridad. El grado de aumento
depende del dispositivo por el que el hilo se estuviese esperando [6].
Las prioridades en el entorno de la API Win32 están basadas en el
modelo de planificación de Windows XP, pero no pueden
seleccionarse todos los valores de prioridad. Los procesos son típicos
miembro de la clase NORMAL_PRIORITY_CLASS, a menos que el
proceso padre fuera de la clase IDLE_PRIORITY_CLASS u otro se
especificase otra clase en el momento de llamar a la función
CreateProcess(). La clase de prioridad de un proceso se puede
modificar a través de la función SetPriorityClass() [2].
F. Interbloqueos
Windows XP: Para Microsoft el problema de los interbloqueos no es
algo de máxima prioridad por dos motivos: Prevenir o detectar
interbloqueos es muy costoso para el sistema, los algoritmos
necesarios requieren un enorme sacrificio de velocidad y de ciclos de
CPU. Por otra parte, el usuario común de una PC tenía pocas
probabilidades de provocar un interbloqueo, por lo que la frecuencia
en la que se darían sería bastante baja. En base a estas observaciones,
Windows XP ignora la existencia de los interbloqueos, es decir, asume
que nunca ocurrirán. Por lo tanto, cuando ocurre un interbloqueo el
sistema operativo se traba y requiere que se le retire la corriente al
sistema para poder reinicializarse. Cuando el sistema se reinicia
después de un fallo de esta índole se recopila la información del fallo Fig. 4 Cantidad de memoria RAM en diferentes Windows
y se envía a Microsoft [6].
Archivo de paginación
La memoria RAM es un recurso limitado, mientras que, a efectos
G. Gestión de memoria prácticos, la memoria virtual es infinita. Pueden existir varios
En los sistemas operativos como Windows, las aplicaciones y muchos procesos, cada uno con sus 2 GB de espacio de direcciones virtuales
procesos de sistema siempre hacen referencia a la memoria a través de privadas. Cuando la cantidad de memoria que usan todos los procesos
direcciones de memoria virtual. El hardware traduce las direcciones de existentes supera la RAM disponible, el sistema operativo mueve las
memoria virtual automáticamente a direcciones reales (RAM). Solo las páginas (piezas de 4 KB) de uno o más espacios de direcciones
partes principales del kernel del sistema operativo omiten esta virtuales a la unidad de disco del equipo. Esto libera ese marco de
traducción de direcciones y usan directamente las direcciones de RAM para darle otros usos. En los sistemas Windows, estas páginas
memoria virtuales. "paginadas" se almacenan en uno o más archivos (archivos
Pagefile.sys) en la raíz de una partición. Puede haber solo un archivo
La memoria virtual siempre se usa, incluso cuando la memoria de estos en cada partición de disco. La ubicación y el tamaño del
necesaria para todos los procesos en ejecución no supera el volumen archivo de paginación están configurados en Propiedades del sistema.
de RAM que se instala en el sistema.
Supervisión del uso de la memoria RAM y la memoria virtual
El Monitor de rendimiento es la herramienta principal para supervisar
Procesos y espacios de direcciones el rendimiento del sistema e identificar la ubicación del cuello de
A todos los procesos (por ejemplo, los ejecutables de aplicaciones) que botella. Para iniciar el Monitor de rendimiento, haga clic
se ejecutan en versiones de 32 bits de Windows se les asignan en Inicio, Panel de control, Herramientas administrativas.
direcciones de memorias virtuales (un espacio de dirección virtual)
que van de 0 a 4 294 967 295 (2 * 32 - 1 = 4 GB), sin importar la • Memoria, Bytes confirmados: este contador es una medida de la
cantidad real de RAM que se instala en el equipo. demanda de la memoria virtual.
En la configuración predeterminada de Windows, 2 GB de este espacio Aquí se indica la cantidad de bytes asignados por proceso y para
de direcciones virtuales se asignan al uso privado de cada proceso, qué proceso el sistema operativo confirma un marco de página de
mientras que los 2 GB restantes se comparten entre todos los procesos RAM o un espacio de página en el archivo de paginación (o
y el sistema operativo. Generalmente, las aplicaciones (por ejemplo, quizás ambos). Cuando los bytes confirmados superan la
Bloc de notas, Word, Excel y Acrobat Reader) usan solo una fracción memoria RAM disponible, la paginación aumenta, al igual que lo
de los 2 GB de espacio de direcciones privadas. El sistema operativo hace el tamaño del archivo de paginación que se usa. En algún
asigna marcos de página de RAM solo a las páginas de memorias punto, la actividad de paginación empieza a afectar el rendimiento
virtuales que están en uso [6]. de forma considerable [6]..
• Tecnología de video
• Tecnología de audio
Permite que las aplicaciones escriban documentos y datos a una • Servicio de notificaciones Push de Apple
ubicación central en la nube para acceder desde otros dispositivos del
usuario. Permite notificar acerca de alguna nueva información, aunque la
aplicación no esté activamente en ese momento [5].
• Grand Central Dispatch (GCD)
descriptor de bloque en donde se guarda la información que referencia El manejo de Ubuntu Server es muy similar al de cualquier
a la página en memoria de tal manera que se pueda acceder a ella, los otro Sistema Linux, pero con las particularidades de Ubuntu [8].
marcos de página que almacenan la información de cómo se encuentra
la página es decir el estado que tiene esta y además de utilizar la
cantidad de procesos que referencian al marco, esta cantidad es de gran
utilidad para determinar el estado de una página.
C. Gestión de procesos
Fig. 13 Intercambio o Swapping de un proceso
La gestión de procesos comprende la monitorización, detención y
cambio de prioridad de los procesos. Generalmente los procesos son
IV. SISTEMA OPERATIVO SERVIDOR (UBUNTU SERVER) gestionados automáticamente por el kernel del S.O. (son creados,
A. Definición ejecutados y detenidos sin la intervención del usuario). Algunas veces
los procesos se detendrán por razones desconocidas y será necesario
Ubuntu Server es una variante de Ubuntu que sale con cada versión y reiniciar el proceso. Otras veces algún proceso se ejecutará
está dedicada especialmente para su uso en servidores. Ubuntu descontroladamente malgastando los recursos del sistema, entonces
Server es un Sistema Operativo sin entorno lo que quiere decir que será necesaria una intervención manual del administrador para detener
todas las acciones se realizan mediante consola, y normalmente ni si el proceso.
quiera a través de el propio servidor, sino desde una conexión remota.
Trabajo de Sistemas Operativos 9
pgrep
Devuelve el ID del proceso que coincide con la búsqueda.
renice
Fig. 15 Gestión de Procesos Ubuntu Server Este comando cambia el valor “nice” de un proceso en ejecución. El
valor “nice” determina la prioridad del proceso. Un valor de -19 es de
Párametros de un proceso muy alta prioridad, mientras que un valor 19 es de baja prioridad.
PROCESS ID (PID): Cada proceso tiene un número asociado que se
le asigna cuando es creado. Los PIDs son números enteros únicos para xkill
todos los procesos sistema. USER ID & GROUP ID: Cada proceso Si ejecutas este comando desde un terminal en modo gráfico, el cursor
tiene que tener asociado unos privilegios que limiten el acceso al cambiará a un símbolo “X” y con él podrás matar cualquier programa
sistema de ficheros. Estos privilegios quedan determinados por el user
Trabajo de Sistemas Operativos 10
gráfico abierto que tengas en tus escritorios(si no quieres matarlo, haz interactivos, por lotes y de tiempo real. Los procesos TR son
click con el botón derecho) [9]. manejados bien por un algoritmo FIFO o RR. Los demás procesos son
despachados utilizando planificación RR con un sistema de
atop envejecimiento basado en créditos, donde el siguiente proceso a
Monitor de procesos en ASCII en tiempo real donde muestra CPU, ejecutar es aquel que más créditos posea. Los procesos TR son
memoria, capas de red, usuario, prioridad, etc para cada proceso considerados prioritarios sobre cualquier otro proceso en el sistema,
activo. por lo que serán ejecutados antes que los demás. Por otro lado, un
proceso puede estar en alguno de estos estados: en ejecución, en
espera, detenido o zombie (un proceso que, aunque ha finalizado su
D. Planificación, Algoritmos de Planificación ejecución, mantiene su PCB en el sistema) [9].
El sistema utiliza el archivo and y el archivo /etc/and.priorities para
poder determinar las prioridades de los sistemas. Se utiliza nice para
poderlos cambiar y utilizan los siguientes valores de prioridad High,
Medium, Normal, Low, Really Low, respectivamente -19, -10, 0, 10,
19.
Ecuanimidad
El planificador debería repartir la CPU entre todos los procesos de
forma ecuánime. En el nuevo kernel se ha trabajado para garantizar un
reparto imparcial del tiempo de CPU entre los procesos.
Fig. 16 Algoritmo sched_setscheduler
Volumen de producción y eficiencia Descripción
El planificador debería intentar maximizar tanto el volumen de sched_setscheduler establece tanto la política de planificación como
producción (throughput) como la eficiencia (utilización de la CPU). La los parámetros asociados para el proceso identificado por pid. Si pid
forma habitual de incrementar la utilización de la CPU es es igual a cero, se establece el planificador del proceso que hace la
incrementando el nivel de multiprogramación. Pero esto es beneficioso llamada. La interpretación del parámetro p depende de la política
sólo hasta un cierto punto, a partir del cual se vuelve contraproducente. seleccionada. Actualmente se admiten en Linux las tres siguientes
políticas: SCHED_FIFO, SCHED_RR, y SCHED_OTHER; FIFO,
Mínima Sobrecarga SCHED.
Un planificador debería estar en ejecución el menor tiempo posible.
La latencia del planificador debería ser mínima.
Políticas de Planificación
El planificador es la parte del núcleo que decide qué proceso
Hacer cumplir una planificación basada en prioridades ejecutable será ejecutado por la CPU a continuación. El planificador
Planificación basada en prioridades significa que algunos procesos de Linux ofrece tres políticas de planificación diferentes, una para los
tienen precedencia sobre otros. Como mínimo, el planificador debe procesos normales y dos para aplicaciones en tiempo real. Se asigna a
distinguir entre procesos limitados por E/S y procesos limitados por cada proceso un valor de prioridad estática sched_priority y este valor
CPU. Además, debe implementarse algún mecanismo que tenga en sólo puede cambiarse a través de llamadas al sistema.
cuenta la edad de los procesos para evitar que algunos no tengan acceso Conceptualmente, el planificador mantiene una lista de procesos
a la CPU (inanición). ejecutables para cada posible valor sched_priority, y sched_priority
puede tener un valor en el rango de 0 a 99. Para poder determinar qué
Tiempo de turnaround, tiempo de espera proceso se debe ejecutar a continuación, el planificador de Linux busca
El tiempo de turnaround es la suma del tiempo de servicio y el tiempo en la lista no vacía con la prioridad estática más alta y toma el proceso
de espera en la cola de ejecución (ready). El planificador intenta a la cabeza de dicha lista. La política de planificación determina para
reducir ambos. cada proceso, dónde se insertará en la lista de procesos con igual
prioridad estática y cómo se moverse insertará esta lista.
Miscelánea
El planificador intenta también cumplir otros objetivos como la SCHED_OTHER es el planificador de tiempo compartido
predictibilidad. El comportamiento del planificador debería ser universal predeterminado empleado por la mayoría de los procesos;
predecible para un conjunto dado de procesos con prioridades SCHED_FIFO y SCHED_RR han sido pensados para aplicaciones
asignadas. El rendimiento del planificador debe de caer suavemente especiales donde el tiempo es crítico y necesitan un control preciso
al aumentar la carga. sobre la forma en la que se seleccionan para ejecución los procesos
ejecutables. A los procesos planificados con SCHED_OTHER se les
Tiempo de respuesta y variabilidad debe asignar la prioridad estática 0; los procesos planificados bajo
El tiempo de respuesta de un programa debería ser lo menor posible. SCHED_FIFO o SCHED_RR pueden tener una prioridad estática
Además, otro factor importante, que a menudo se olvida, es la en el rango de 1 a 99. Solamente los procesos con privilegio de súper-
variabilidad entre los tiempos de respuesta. usuario pueden obtener una prioridad estática mayor que 0 y por
tanto pueden ser planificados bajo SCHED_FIFO o SCHED_RR. Las
El Process Scheduler (SCHED), es el componente del kernel llamadas al sistema sched_get_priority_min y
encargado de controlar el acceso de los procesos al CPU. El SCHED sched_get_priority_max pueden emplearse para encontrar el rango
es el componente de bajo nivel más importante del sistemas; todos los válido de prioridad para una política de planificación de una
demás (incluyendo los módulos de acceso a disco, controladores de manera transportable en todos los sistemas que cumplan POSIX.1b.
video, etc.), dependen directamente de él. Los procesos en Linux
pueden ser divididos en tres categorías, relacionadas con la prioridad:
Trabajo de Sistemas Operativos 11
VI. REFERENCIAS
[1] Alberto, J. (11 de Marzo de 2011). Capitulo 22 windows XP. Obtenido
de Slideshare: https://es.slideshare.net/jorge357/capitulo-22-windows-
xp
[2] Arce, J. (15 de Marzo de 2015). IOS. Obtenido de Blogspot:
http://iosg1tec.blogspot.com/2015/03/gestion-de-procesos-memoria-
principal-y.html
[3] Erazo, C. S. (14 de Julio de 2014). Sistemas Operativos Gestion de
procesos. Obtenido de Slideshare:
https://es.slideshare.net/csosaerazo/sistemas-operativos-gestion-de-
procesos
[4] Héctor Domínguez, K. P. (29 de Mayo de 2013). SISTEMAS
OPERATIVOS DE DISPOSITIVOS MOVILES. Obtenido de ldc:
https://ldc.usb.ve/~yudith/docencia/ci-
4821/Temas/Exposicion_OS_MovilesKryslerHernan.pdf
[5] Jimenez, J. (1 de Abril de 2016). Sistemas Operativos Moviles, Android
y IOs. Obtenido de Slideshare:
Algunos de los campos más representativos son: https://es.slideshare.net/JesusJimenez123/sistemas-operativos-
• Count: Es un contador de referencia de uso para la página y vale moviles-android-y-ios-60349616
0 si el marco de página esta libre, o el número de procesos a los [6] Rodríguez, L. D. (2007). El gran libro del PC interno: programación de
que ha sido asignada. sistemas, hardware a fondo. Barcelona: Alfaomega.
[7] Saavedra, T. (25 de Mayo de 2018). CARACTERÍSTICAS DE
• Prev, next: Para insertar el descriptor en una lista circular
WINDOWS XP. Obtenido de Scribd: https://definicion.de/windows-xp/
doblemente enlazada. El significado depende del uso de la página [8] Turmero, P. (22 de Agosto de 2016). Planificación de procesos.
en cada momento. Obtenido de Monografias:
• Flags: Array de hasta 32 flags de la forma PG_xyz que indican el http://www.monografias.com/trabajos105/planificacion-
estado del marco de página. procesos/planificacion-procesos.shtml
[9] Ubuntu Facil. (17 de Abril de 2013). Obtenido de Ubuntu:
http://www.ubuntufacil.com/2013/04/ubuntu-server/
[10] Ubuntu Manual. (16 de Abril de 2018). Obtenido de Ubuntu Server:
http://www.ubuntufacil.com/2013/04/ubuntu-server/
Trabajo de Sistemas Operativos 13
Anexos
Trabajo de Sistemas Operativos 14
Capas de iOS
Lluvia de Ideas