Sie sind auf Seite 1von 16

Trabajo de Sistemas Operativos 1

Sistemas Operativos de Escritorio, Móvil,


Servidores
Luis Febre Paucar
Sistemas Informáticos y
Computación
Universidad Técnica Particular
de Loja
Loja – Ecuador
[lafebre@utpl.edu.ec]

II. SISTEMA OPERATIVO DE ESCRITORIO (WINDOWS XP)


Abstracto—El siguiente documento presenta información
recabada sobre los Sistemas Operativos de escritorio, móviles y de A. Definición
servidores, indagando en las características que estos posen en la Microsoft Windows XP (Windows Experience) es una versión
rama de que estos se encuentran, la arquitectura con la que de Microsoft Windows, basado en Windows 2000 y con importantes
cuentan como gestionan los procesos, que planificación es con la mejoras, es un sistema multitarea apropiativo de 32/64 bits para los
que cuentan cada uno de ellos, que algoritmos se aplicaron para microprocesadores. Fue lanzado al mercado el 25 de octubre de 2001.
poder hacer que estos sistemas operativos funcionen en diferentes Dispone de versiones para varios entornos informáticos, incluyendo
ámbitos de la informática. Contiene información concerniente a los PC domésticos o de negocios, además de equipos portátiles,
los interbloqueos que poseen cada uno de estos sistemas y también "netbooks", "tabletas" y "centros multimedia". Sucesor de Windows
la gestión de memoria que manejan, haciendo una vista amplia de 2000 junto con Windows ME [1].
como esta construido todo el sistema operativo de cada uno y
viendo las principales similitudes y diferencias que existen entre
estos Sistemas Operativos.

Palabras clave: Sistemas, algoritmos, planificación, servidores,


características, procesos, gestión.

I. INTRODUCCIÓN
Fig. 1 Logo de Windows XP

E STE documento es un ejemplo de se compone un sistema


operativo que es lo que compone a uno de ellos, como se
desempeñan cada uno de estos en ámbitos diferentes, que
algoritmos usas y como es la planificación de procesos y de memoria B. Características
porque es necesario saber cómo funciona un sistema operativo y el rol Las características con las que cuenta este sistema operativo
importante que estos tienen para facilitar las tareas . Windows XP son las siguientes:

Un Sistema operativo es un programa que administra el hardware de • Ambiente gráfico.


una computadora. También proporciona las bases para los programas • Secuencias más rápidas de inicio y de hibernación.
de aplicación, y actúa como intermediario entre el usuario y el •Capacidad del sistema operativo de desconectar un dispositivo
hardware. Estas tareas, pueden ser llevadas a cabo de varias formas, lo externo, de instalar nuevas aplicaciones y controladores sin necesidad
que permite que algunos sistemas Operativos se diseñen para ser de reiniciar.
prácticos, otros eficientes y otros para ser ambas cosas. • Una nueva interfaz de uso más fácil, incluyendo herramientas para el
desarrollo de temas de escritorio.
Un sistema informático puede dividirse en cuatro componentes: el • Uso de varias cuentas, lo que permite que un usuario guarde el estado
hardware, el sistema Operativo, los programas de aplicación, y los actual y aplicaciones abiertos en su escritorio y permita que otro
usuarios. El Sistema operativo controla y coordina el uso del hardware usuario abra una sesión sin perder esa información.
entre los diversos programas de aplicación por parte de los distintos • ClearType, diseñado para mejorar legibilidad del texto encendido en
usuarios. pantallas de cristal líquido (LCD) y monitores similares.
• Escritorio Remoto, que permite a los usuarios abrir una sesión con
Además, se encontró recabo información sobre cual son los aspectos y una computadora que funciona con Windows XP a través de una red o
características mas importantes entre estos sistemas operativos tanto internet, teniendo acceso a sus usos, archivos, impresoras y
de escritorio, móvil y de servidores porque cada uno manejan de dispositivos.
diferente manera y para quienes están enfocados estos sistemas •Soporte para la mayoría de módems ADSL y conexiones Wireless, así
operativos. como el establecimiento de una red FireWire [7].
Trabajo de Sistemas Operativos 2

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].

Fig. 3 Prioridades en Windows XP

E. Las primitivas de sincronización


Las estructuras de datos claves del sistema operativo son gestionadas
como objetos, utilizando funcionalidades comunes para la asignación,
para el recuento de las referencias y para la seguridad. Los objetos del
despachador controlan la administración y la sincronización dentro del
sistema. Algunos ejemplos de estos objetos son los sucesos, los objetos
Fig. 2 Diagrama de estados de un proceso son los sucesos, los objetos de exclusión mutua (mútex), los
semáforos, los procesos, los hilos y los temporizadores.
D. Planificación, Algoritmos de Planificación y los hilos El objeto suceso se utiliza para registrar un determinado evento y
Windows XP utiliza el algoritmo de planificación de modo apropiativo sincronizarlo con alguna acción. Los sucesos de notificación se
basado en prioridades. El planificador de Windows XP asegura que encargan de señalizar a todos los hilos que se encuentran en espera,
siempre se ejecute la hebra de prioridad más alta. mientras que los sucesos de sincronización señalizan a un único hilo
en espera. Los objetos mutantes proporcionan una exclusión mutua en
Windows XP utiliza procesos e hilos para estructurar el código modo kernel o en modo usuario, teniendo esa excusión mutua asignada
ejecutable. Los procesos disponen de un espacio de direcciones de una noción de propiedad.
memoria virtual y una serie de informaciones que son utilizadas en el
momento de inicializar cada hilo, como una prioridad base y una Un objeto de semáforo actúa como un contador para controlar el
afinidad para uno o más procesadores. Cada proceso tiene uno o más número de hilos que acceden a un recurso del sistema. El objeto hilo
hilos, cada uno de los cuales es la unidad ejecutable que el kernel del es la entidad que encarga de despachar el despachador del kernel y está
sistema se encarga de despachar. Cada hilo dispone de su propio estado asociada con un objeto proceso, que encapsula un espacio virtual de
de planificación, incluyendo su prioridad real, la afinidad y la direcciones. Los objetos temporizadores se utilizan para controlar el
información de utilización del procesador. tiempo y para planificador una actividad periódica [6].
Trabajo de Sistemas Operativos 3

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]..

La extensión de dirección física (PAE) es la característica de la


arquitectura de 32 bits de Intel que expande la dirección de memoria • Proceso, espacio de trabajo, _Total: este contador es una medida
física (RAM) a 36 bits. La PAE no cambia el tamaño del espacio de de la memoria virtual en uso "activo".
direcciones virtuales (que sigue siendo de 4 GB), sino el volumen de
la RAM real que puede admitir el procesador. Si desea obtener más Este contador muestra la cantidad de memoria RAM requerida
información, haga clic en el número de artículo siguiente para verlo en para que la memoria virtual que se está usando para todos los
Microsoft Knowledge Base: procesos esté en la memoria RAM. Este valor siempre es un
múltiplo de 4096, que es el tamaño de página que se utiliza en
Windows. Cuando la demanda de memoria virtual supera la
La traducción entre la dirección de la memoria virtual de 32 bits que memoria RAM disponible, el sistema operativo ajusta la cantidad
usa el código que se ejecuta en un proceso y la dirección de RAM de de memoria virtual de un proceso asignada a su espacio de trabajo
36 bits es una tarea que se realiza de forma automática y transparente para optimizar el uso de RAM disponible y minimizar la
en el hardware del equipo según las tablas de traducción que mantiene paginación [6]..
el sistema operativo. Cualquier página de memoria virtual (dirección
de 32 bits) puede asociarse con cualquier página de RAM física
(dirección de 36 bits) [6]. • Archivo de paginación, % del archivo de paginación en uso: este
contador es una medida del total utilizado del archivo de
paginación.
Trabajo de Sistemas Operativos 4

Use este contador para determinar si el archivo de paginación


tiene un tamaño adecuado. Si este contador llega a 100, significa
que el archivo de paginación está completo y todo deja de
funcionar. Según la volatilidad de la carga de trabajo,
probablemente sea conveniente que el archivo de paginación sea
lo suficientemente grande como para que no se utilice más del 50
al 75 %. Si se utiliza gran parte del archivo de paginación, es
probable que el rendimiento aumente si se cuenta con más de uno
en los diferentes discos físicos [6].

• Memoria, Páginas: este contador ofrece una de las medidas que


más se malinterpretan.

Si el contador muestra un valor alto, esto no quiere decir


necesariamente que el cuello de botella de rendimiento se deba a
una falta de memoria RAM. El sistema operativo usa el sistema Fig. 5 Memoria Virtual de Paginación Windows XP
de paginación para otros fines aparte del intercambio de páginas
debido a la asignación excesiva de memoria.
III. SISTEMA OPERATIVO MÓVIL (IOS)

• Memoria, Salida de páginas/s: este contador muestra la cantidad A. Definición


de páginas de memoria virtual que se escribieron en el archivo de iOS es el sistema operativo para dispositivos móviles de Apple. Este
paginación por segundo para liberar marcos de página de RAM sistema operativo proporciona un ambiente flexible de propósito
para otros fines. general, a través de un sistema de mano. Los usuarios pueden realizar
muy variadas tareas gracias a la infinidad de aplicaciones que existen
Es el mejor contador para hacer un control si sospechas que la en la tienda de aplicaciones de Apple, pero entre los aspectos más
paginación es el cuello de botella de rendimiento. Aunque el valor básicos que cubre este sistema operativo son navegar en internet,
de Bytes confirmados supere la memoria RAM y el de Salida de escuchar música, escribir notas [4].
páginas/s sea inferior o igual a cero la mayor parte del tiempo no
existe un problema de rendimiento importante derivado de tener
poca memoria RAM [6]..

• Memoria, Bytes confirmados.


Memoria, Bytes de bloque no paginado.
Memoria, Bytes de bloque paginado.
Memoria, Total de bytes de código del sistema.
Memoria, Total de bytes de controladores del sistema:
La suma de estos contadores indica qué cantidad se está usando
realmente de los 2 GB correspondientes a la parte compartida del
Fig. 6 Logo de iOS
espacio de direcciones virtuales de 4 GB. Usa este dato para
determinar si el sistema está llegando a uno de los límites
arquitectónicos de los que se habló antes. B. Características
La interfaz de usuario de iOS está basada en el concepto de
• Memoria, MBytes disponibles: este contador mide la cantidad de manipulación directa, usando gestos multitáctiles Acelerómetros
RAM disponible para satisfacer demandas de memoria virtual (ya internos para hacer que algunas aplicaciones respondan a sacudir el
sea nuevas asignaciones o a fin de restaurar una página a partir de dispositivo Esta escrito en C, C++ y objective-c.
un archivo de paginación).
Las características con la que cuenta este sistema operativo
Cuando la memoria RAM escasea (por ejemplo, si los bytes iOS son las siguientes:
confirmados superan la memoria RAM instalada), el sistema
operativo intenta mantener disponible una cierta fracción de la • El iOS se deriva de Mac OS X, que a su vez está basado en
memoria RAM instalada para uso inmediato. Para ello, copia
Darwin BSD, y por lo tanto es un sistema Unix.
páginas de memoria virtual que no están en uso activo al archivo
de paginación. Por lo tanto, este contador no llega a cero y no • Todo sistema se encuentra en la partición ‘’/root’’ y ocupa
indica necesariamente si al sistema le falta RAM [6]. menos de 500MB.
• La interfaz de usuario de iOS está orientada a:
▪ Proveer una interfaz amigable.
▪ El tiempo de respuesta, inmediata a las órdenes del
usuario.
▪ Dar soporte de acelerómetros internos.
Trabajo de Sistemas Operativos 5

• Tecnología de video

iOS ofrece varias tecnologías para reproducir contenido de video en


los dispositivos con hardware de video, además de tecnologías para
capturar video e incorporarlo a las aplicaciones.

• Tecnología de audio

Las tecnologías de audio disponibles en iOS están diseñadas para


proporcionar una excelente experiencia de audio para los usuarios.

Fig. 7 Capas de iOS Capa de “Cocos Touch”


La capa de Cocoa Touch táctil es la interfaz de los dispositivos para
Capa del núcleo del sistema operativo (“Core OS”) interactuar con el usuario.
La primera es la capa del núcleo del sistema, la cual contiene las
características de bajo nivel. Esta capa define la infraestructura de la aplicación básica y el soporte
para tecnologías de punta como:
Se encarga de las tareas de bajo nivel como:
• Gestión de memoria virtual • Impresión
• Gestión procesos, hilos y el manejo de la memoria.
• Gestión del sistema de archivos. Permite enviar daros de manera inalámbrica a impresoras cercanas.
• Gestión del acceso a red de bajo nivel.
• Multitarea
• Gestión de procesos que interactúan directo con el hardware.
Todas las aplicaciones que son desarrolladas y ejecutadas en el mismo
sistema no terminan de ejecutarse si se pasa al escritorio o se ejecuta
Capa de servicios principales (“Core services”) otra aplicación, estas aplicaciones pasan a un segundo plano.
Esta capa es la encargada de proveer y contener todos los servicios
básicos y fundamentales del sistema operativo que usan todas las • Protección de datos
aplicaciones [4].
La protección de datos permite a las aplicaciones trabajar con daos de
• Almacenamiento iCloud usuario sensibles, aprovechando la encriptación implícita.

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)

Se utiliza para administrar la ejecución de tareas en aplicaciones.


C. Gestión de procesos
• La biblioteca SQLite El sistema operativo iOS utiliza colas de prioridad que son un sistema
donde los datos tienen un orden de prioridad y se procesan
Biblioteca que permite incrustar una base de datos ligera SQL en dependiendo de ello. Cuando 2 o más procesos tienen la misma
aplicaciones sin ejecutar un proceso separado del servidor remoto de prioridad se ejecutan conforme vayan llegando.
base de datos.
Prioridad de los procesos:
• Soporte XML • Critico
• Alto
La fundación framework proporciona la clase NSXMLParser para
recuperación de elementos en documentos XML. • Medio
• Bajo
Capa de Medios
Conocida también como capa de “medios de comunicaciones”. Es una Tipos de cola:
interfaz basada en una mezcla de lenguaje C y objetive-C que permite • Cola de espera
la ejecución de tareas o gestión de ficheros multimedia. • Cola de muertos
• Cola de listos
La capa de medios es la encargada de proveer los servicios de los
gráficos y multimedia a la capa Cocoa Touch. Sus características son: Cuando un proceso se ejecuta se suspende, el planificador recupera el
control de la CPU y utiliza un algoritmo para seleccionar el siguiente
• Tecnología de gráficos proceso desde una de sus 4 colar de listos, Los pasos son los siguientes:

La alta calidad de los gráficos es una parte importante de las


aplicaciones de iOS.
Trabajo de Sistemas Operativos 6

Fig. 9 Diagrama de Estados de un proceso

D. Planificación, Algoritmos de Planificación


En UNIX, al ser un sistema de tiempo compartido y tiempo real, utiliza
un planificador a corto plazo, por lo que su algoritmo de planificación
Fig. 8 Pasos del Algoritmo Gestión Procesos
tiene como prioridad del proporcionar un eficaz tiempo de respuesta a
procesos interactivos, que lo convierte en un sistema de tiempo
iOS deriva del sistema operativo UNIX. Al hablar de procesos, se
compartido. El algoritmo que usa este sistema es el de Round-Robin
lo puede definir como un trabajo en ejecución en un sistema de tiempo
con colas múltiples en donde cada una de estas colas tiene asignado un
compartido. El mismo que necesita ciertos recursos tales como: tiempo
nivel de prioridad, este nivel de prioridad es alto cuando sus valores
de CPU, memoria, archivos y dispositivos E/S. Estos recursos se le
más bajo y cuando el valor es alto el nivel de prioridad disminuye, una
proporcionan en el momento de crear el proceso o se le asignan
cola representa una lista enlazada de los procesos aptos para ejecutarse
mientras se está ejecutando. Cuando el proceso termina, el sistema
en donde estos comparten el mismo nivel de prioridad. A los procesos
operativo reclama todos los recursos utilizables.
que se van a ejecutar se les asigna un tiempo de CPU denominado
quantum. Un proceso se ejecuta hasta que consume su quantum de
Estados de un proceso tiempo o se bloquea voluntariamente, a duración del quantum suele ser
Incluye nueve estados por los que recorre un proceso, tales como:
de 100 milisegundos. El algoritmo de planificación de procesos que
usa este sistema es el siguiente:
• Created (Creado): El proceso está recién creado y no está listo
para ejecutar.
• Ready (Listo para ejecutar en memoria): El proceso no se • Las prioridades de los procesos que están listos para ser
está ejecutando, pero está listo para ejecutar tan pronto como ejecutados y asignados entre las diferentes colas son
el núcleo lo planifique. calculadas constantemente en periodos de 1.
• Ready Swapped (Listo para ejecutar en swap): El proceso • Cada décima de segundo, el planificador selecciona el
está listo para ejecutar. Pero se debe cargar en memoria proceso de mayor prioridad y este es asignado a la CPU.
principal antes de que se planifique su ejecución.
• Si un proceso consume su quantum de tiempo es colocado
• Sleep (Dormido en memoria): Incapaz de ejecutar hasta que se
produzca un suceso; el proceso está en memoria principal. al final de su cola de prioridad.
• Sleep Swapped (Dormido en el área de swap): El proceso • Si un proceso pasa al estado de dormido durante su
está esperando un evento y ha sido cambiado a un quantum de tiempo, el planificador selecciona
almacenamiento secundario (un estado de bloqueo). inmediatamente otro proceso y le asigna la CPU.
• Kernel running (Ejecución en modo Kernel ): Eventos que • Si un proceso acaba una llamada al sistema durante su
sólo el kernel puede controlar. quantum de tiempo y un proceso de mayor prioridad está
• User Runing (Ejecución en modo usuario): Ejecutándose en listo para ser ejecutado, al proceso de menor prioridad sale
modo usuario. de la CPU y se le asigna el espacio al de mayor prioridad.
• Zombie: El proceso ya no existe pero deja un registro para que • Cada vez que se produce una interrupción del reloj del
lo recoja el proceso padre. sistema (tick de reloj), el contador del uso de CPU del
• Preempted (expulsado o apropiado): El proceso retorna del proceso se incrementa.
modo kernel al modo usuario, pero el kernel se apropia del
proceso y hace un cambio de contexto, pasando otro proceso a
ejecutarse en modo usuario [5].
Trabajo de Sistemas Operativos 7

▪ SIGTERM.- Terminación "elegante", en general termina


enviándose un KILLL a sí mismo
▪ SIGSTOP.- El kernel pasa el proceso a stopped
▪ SIGzCONT
▪ SIGUSR.- Definidas por el usuario o más bien por quien
programó el proceso.
• Sockets: es un punto por el cual se pueden crear y destruir de
forma dinámica.

Fig. 10 Esquema de prioridades en Unix

E. Comunicación entre procesos


Unix debe establecer ciertos mecanismos de comunicación entre
procesos (IPC):
• Cola de mensajes: es una manera de comunicación que permite
enviar mensajes de un proceso a otro. Cada proceso tiene asociada Fig. 11 Comunicación mediante Sockets
una cola de mensajes, que funciona como buzón. Las operaciones
que realizan son:
▪ Msgctl.- Control F. Interbloqueos
▪ msgget.- Crear / acceder En la mayoría de Sistemas Operativos, en nuestro caso UNIX, solo se
▪ msgrcv.- Recibir mensajes ignora el problema justificando que la mayoría de los usuarios
▪ msgsnd.- Enviar mensajes preferirían un bloqueo activo ocasional (o incluso un interbloqueo) en
• Memoria compartida: es un modo de compartir datos en un vez de una regla que restrinja a todos los usuarios a un solo proceso,
fragmento de memoria al que varios procesos pueden acceder. un solo archivo abierto, y sólo una cosa de todo. El método que se
Dentro de UNIX, el uso de memoria compartida es la forma más utiliza para manejar el problema de bloqueos mutuos en UNIX es:
rápida de comunicación, siendo un bloque de memoria virtual que
El algoritmo del avestruz
es compartido por varios procesos, los mismos que pueden
Este método ignora el problema y pretender que los bloqueos mutuos
escribir o leer sobre la memoria compartida. Las operaciones
nunca ocurren en el sistema. El método del avestruz es muy sencillo,
fundamentales que UNIX define son: consiste en agachar la cabeza y no hacer nada por el problema. Para
▪ Shmat.- Vincula la memoria al proceso omitir el interbloqueo se deben tener en cuenta los siguientes factores:
▪ Shmctl.- Realiza el control
▪ Shmdt.- Separa memoria al proceso • Número de veces que ocurre el interbloqueo.
▪ shmget.- Crear / iniciar / accede • Gravedad de ocurrencia del interbloqueo.
• Semáforos: es una herramienta de concurrencia que permite • Coste de las consecuencias.
sincronizar varios procesos. Un semáforo debe contar de un valor • Coste, en caso de hacer algo.
de semáforo, un identificador del último proceso que realizo
operaciones sobre el semáforo, un numero de procesos que
esperan que el semáforo sea mayor que su valor actual y un
numero de procesos que esperan que el valor del semáforo sea G. Gestión de memoria
cero. Además, UNIX define tres operaciones básicas: Gestión de memoria principal
▪ semget.- Crea o toma control de un semáforo iOS utiliza paginación, método en donde la memoria principal obtiene
▪ semctl.- Realiza operaciones de lectura y escritura del información de la memoria secundaria, fragmentado los datos o
estado del semáforo, así como también la destrucción del aplicaciones en bloques llamados páginas, y así utilizar la menor
semáforo. cantidad de memoria principal.
▪ semop.- Realiza operaciones de incremente o decremento Gestión de almacenamiento secundario
con bloqueos.
La memoria secundaria se utiliza en los dispositivos para almacenar
• Señales: es un mecanismo para comunicar a un proceso que cierto
los datos que no se pueden guardar en memoria principal debido a que
evento a ocurrido y por lo tanto debe ser atendido. Un manejador esta última mencionada es volátil, por lo que la información se borra
de la señal es una subrutina encargada de atender la recepción de una vez no haya corriente eléctrica.
una señal por parte de un proceso. Cuando un proceso define un
manejador se indica que se ha capturado la señal. Las posibles
La gestión de memoria que se tenga en Unix esto talmente dependiente
señales son:
del hardware del dispositivo, en este sistema la gestión de memoria se
▪ SIGHUP.- Usualmente para releer configuración lleva a través de la paginación por demanda junto con swapping de
▪ SIGKILL.- El kernel destruye el proceso procesos. La paginación hace uso de las tablas de páginas, un
Trabajo de Sistemas Operativos 8

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.

Fig. 14 Logo Ubuntu Server

Según la documentación oficial de la comunidad de Ubuntu, debido a


que este sistema operativo da prioridad al modo kernel, no es muy
recomendable instalar una interfaz gráfica para este sistema. Gnome,
E, cualquier compatible con X11, pero cualquier interfaz demasiado
gráfica es poco recomendable.

Fig. 12 Transición de estados y envejecimiento de una pagina


B. Características
• Soporte de larga duración (LTS o Long Term Support) durante 5
El sistema se encarga de definir aquellos marcos que se encuentras
años
libres, estos marcos son los que no han sido asignados a ningún proceso
lo cual permite que puedan albergar cualquier proceso. En el sistema • Incluye a Essex, la última versión de OpenStack, una plataforma
pueden ocurrir ocasiones en donde, la demanda de procesos es para crear servicios en la nube.
alta, entonces el paginador no es capaz de asignar marcos libres a una • MAAS (Metal As Service) una utilidad para configurar el
velocidad eficiente, en estos casos interviene el swapping que es el hardware donde va a desplegarse cualquier servicio que necesite
encargado de transportar un proceso de la memoria principal a la configuración y escalabilidad de forma dinámica
memoria secundaria, cuando la memoria principal está disponible • AWESOME (Any Web Service Over Me) un API o interfaz de
entonces los procesos pasan de la memoria secundaria a la principal programación que facilita el despliegue y administración de
para ser ejecutados. Para producir un intercambio se toman en cuenta servicios tanto en nubes de Amazon como de OpenStack
diferentes aspectos sobre el estado del proceso, en donde se considera
• Soporte de Java con OpenJDK 7 (muy cercano al JDK 7 oficial
su prioridad, el tamaño que tiene el programa y la cantidad de tiempos
que estos llevan albergados en memoria. de Oracle)
• Apache ActiveMQ 5.5, el servidor más popular de código abierto
de mensajería y patrones de integración
• Juju, una herramienta para facilitar la orquestación de servicios
en la nube
• Servidor de integración continua Jenkins 1.424.6
• Servidor de aplicaciones Apache Tomcat 7.0.26
• Los lenguajes de programación Groovy, Clojure y Scala
soportados sobre el OpenJDK
• La virtualización incluye Xen, KVM y LXC
• El mínimo requerimiento de memoria es de 128 MB
• La imagen de 32 bits puede llegar a un máximo de 16 GB de
memoria y utilizar un procesador de hasta 8 núcleos
• Está disponible sobre arquitectura Intel x86 (32 bits), Intel
AMD64 (64 bits) y también para procesadores ARM (existen 4
imágenes para ARM) [8].

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

ID y group ID del usuario que creo el proceso. PARENT PROCESS:


Los procesos en Linux pueden ser divididos en tres categorías: Todo proceso es creado por otro proceso, el proceso padre (parent
interactivos, tiempo real o por lotes. Los procesos de tiempo real son process). El primer proceso iniciado por el kernel cuando el sistema
manejados bien por un algoritmo FIFO o turno rotatorio (Round- arranca es el programa init. Este proceso tiene el PID 1 y es el padre
Robin), ya que al ser procesos considerados como prioritarios deben de todos los procesos del sistema. PARENT PROCESS ID: El PID del
de ser ejecutados antes que los demás. Los demás procesos son proceso que inicio el proceso hijo. ENVIROMENT: Cada proceso
manejados utilizando una planificación Round-Robin con un sistema mantiene una lista de variables y sus correspondientes valores. El
de envejecimiento utilizado en la planificación de prioridades conjunto de estas variables recibe el nombre de process enviroment.
mencionada. Normalmente el entorno de un proceso hijo se hereda del proceso padre
a menos de que se indique de otra forma. CURRENT WORKING
Los procesos en los sistemas UNIX están identificados por un número DIRECTORY: Cada proceso tiene asociado un directorio por defecto,
que es único (PID), además de que cada proceso el espacio de memoria donde el proceso leerá/escribirá archivos, a menos que se le
utilizado, formado por tres segmentos: el código, los datos y la pila. especifique explícitamente lo contrario. NICE NUMBER: Permite al
También contiene la información de control del proceso, que indica la usuario modificar la prioridad de ejecución de un proceso [9].
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). Comandos fundamentales
Todo ello pertenece al bloque de control de proceso (PCB). La top
creación y destrucción de procesos en UNIX se ajusta a la filosofía de El comando top es un clásico para mostrar los recursos usados por tu
la manera más sencilla posible, así las llamadas al sistema tienen el sistema y así poder ver cuál de ellos consume más.
mínimo número de parámetros. Las llamadas correspondientes a la
creación, destrucción y bloque o espera de un proceso son htop
respectivamente: fork, exit y wait. La llamada fork crea un nuevo Es un “top” mejorado, no suele venir instalado en las distribuciones
proceso hijo idéntico al proceso padre. Tienen la misma imagen de Linux. Sobre todo es más fácil de interpretar que su hermano top y
memoria, el mismo bloque de control de proceso y los mismos además puedes realizar operaciones como parar un proceso usando las
archivos abiertos, aunque situados en distintos espacios de memoria. teclas (la imágen que encabeza este post es una captura de htop).
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 ps
llamada exit finaliza un proceso. Cuando se produce esta finalización El comando más usado (y universal) para manipular procesos en
del proceso hijo, se manda al sistema la llamada wait, para que el padre Linux. Muestra todos los procesos y además puedes realizar
se bloquee a la espera de la finalización del hijo. Si el proceso hijo operaciones con ellos. Recuerda que puedes enlazarlos con otros
finalizara antes de que el padre recibiera esta llamada, el proceso hijo comandos (por ejemplo con “grep” para buscar un proceso específico)
se convertiría en un proceso en estado zombie, y hasta que no se usando las famosas pipes o tuberías.
ejecute esta llamada wait el proceso no se eliminará. Para evitar la pstree
acumulación de procesos UNIX prevé un límite de números de
Este comando muestra la jerarquía de los procesos mediante una
procesos zombie y aquellos procesos hijos que se destruyen más tarde
estructura de árbol. Si se especifica el PID de un proceso, el árbol
que sus procesos padres, al quedar huérfanos sería el primer proceso
empezará desde ese proceso, de lo contrario el árbol empezará por el
del sistema (init) el que se encarga de recoger su estado de finalización.
proceso init (PID=1) y mostrará todos los procesos del sistema. Si se
La llamada wait bloquea el proceso que lo ha llamado hasta que uno
especifica un usuario valido se mostrará la jerarquía de todos los
de sus procesos hijos es destruido, por lo que si el proceso no tiene
procesos del usuario.
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
kill
Comando para matar o parar un proceso, funciona dando su ID. El
consumo de recursos, ya no es necesario, etc. Esta orden es “kill Pid
comando kill permite enviar un mensaje arbitrario a un proceso, o
proceso a eliminar”, por lo que para eliminar un proceso primero se
varios, con un PID igual a pids. El parámetro sigspec es el valor entero
debe conocer su Pid [8].
de la señal o el nombre de la señal que enviaremos al proceso.

pgrep
Devuelve el ID del proceso que coincide con la búsqueda.

pkill & killall


Estos comandos pueden matar procesos dando el nombre del mismo.
Esta orden es ligeramente diferente a la orden kill por dos motivos; en
primer lugar utiliza el nombre de proceso en lugar del pid, y además le
envía la señal a todos los procesos que tengan el mismo nombre.

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.

El planificador de Linux intenta conseguir varios objetivos

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

Toda la planificación es apropiativa: si un proceso con una prioridad E. Sincronización de procesos


estática más alta está listo para ejecutarse, el proceso actual será Al ser un sistema multiusuario de tiempo compartido es necesario ser
apropiado y devuelto a su lista de espera. La política de planificación notificado de varios eventos, como cuando un dato es liberado y está
solamente determina la clasificación en la lista de procesos disponible, cuando un archivo cambió y cuáles señales han sido
ejecutables con igual prioridad estática. lanzadas por los procesos. Para esperar por un solo evento es sencillo,
únicamente se necesita la llamada read(). Existen muchos mecanismos
SCHED_FIFO: Planificación FIFO para esperar por cualquier evento, o sólo para probar si algo interesante
SCHED_FIFO sólo puede emplearse con prioridades estáticas ocurre en el sistema. Algunos de estos mecanismos son
mayores que 0, lo que significa que cuando un proceso SCHED_FIFO O_NONBLOCK, O_NOACCESS y select(). O_NONBLOCK impide
se convierte en ejecutable, siempre prevalecerá inmediatamente que otro proceso pueda hacer un wait(), la segunda opción restringe el
sobre cualquier otro proceso normal SCHED_OTHER ejecutándose. acceso a un recurso si este no tiene permisos de lectura y escritura. Los
SCHED_FIFO es un simple algoritmo de planificación sin rodajas métodos de select son más que nada para controlar el tiempo que tienen
de tiempo. Para procesos planificados bajo la política SCHED_FIFO, los procesos para utilizar sus recursos [10].
se aplican las siguientes reglas: Un proceso SCHED_FIFO que ha
sido apropiado por otro proceso de mayor prioridad permanecerá en la
cabeza de la lista para su prioridad y reanudará su ejecución tan F. Interbloqueos
pronto como todos los procesos de prioridad más alta se bloqueen La implementación de un algoritmo de prevención, evasión o
de nuevo. Cuando un proceso SCHED_FIFO llegue a ser ejecutable, detección de interbloqueos depende del programador. De forma pura
se insertará al final de la lista para su prioridad. Una llamada a el sistema operativo no cuenta con tales mecanismos, pero estos sí se
sched_setscheduler o a sched_setparam pondrá el proceso pueden implementar, a diferencia de XP o de iOS [8].
SCHED_FIFO (o SCHED_RR) identificado por pide al comienzo de
la lista si era ejecutable. Como consecuencia, puede apropiarse del
proceso actualmente en curso si tiene la misma prioridad. (POSIX
1003.1 especifica que el proceso debería ir al final de la lista.) Un G. Gestión de memoria
proceso que llame a sched_yield será colocado al final de la lista. La memoria principal se maneja de manera similar a Windows, pero
Ningún otro suceso moverá un proceso planificado bajo la política no del todo igual. Las similitudes radican en que también se utilizan
SCHED_FIFO en la lista de espera de procesos ejecutables con igual tablas de direccionamiento para poder acceder a las celdas de
prioridad estática. Un proceso SCHED_FIFO se ejecuta hasta que es memorias, los procesos indican y se les asignan celdas de la memoria
bloqueado por una petición de E/S, hasta que sea apropiado por un cuando no están siendo utilizados por completo, o bien, cuando están
proceso de más alta prioridad, o hasta que llame a sched_yield [10]. siendo utilizados al momento.

SCHED_RR: Planificación circular (Round Robin). Gestión de memoria virtual


SCHED_RR es una mejora simple de SCHED_FIFO. Todo lo Ubuntu utiliza un sistema de paginación para la gestión de la memoria
descrito arriba para SCHED_FIFO se aplica también a virtual. El tamaño de las páginas depende de la arquitectura de cada
SCHED_RR, excepto que a cada proceso sólo se le permite ejecutarse computadora, pero el tamaño más común es de 4096. La relación entre
durante un cuanto de tiempo máximo. Si un proceso SCHED_RR direcciones físicas y direcciones virtuales se da mediante tablas de
ha estado ejecutándose durante un periodo de tiempo igual o mayor página y cuando una dirección virtual no corresponde a una dirección
que el cuanto de tiempo, será puesto al final de la lista para su física y fallo de página ocurre y el sistema operativo puede apropiarse
prioridad. Un proceso SCHED_RR que ha sido apropiado por un de la acción. La mayoría de las arquitecturas limita mucho el control
proceso de más alta prioridad y subsecuentemente reanuda su del programador sobre el tamaño de las páginas. Muchas de las rutinas
ejecución como un proceso en ejecución, completará la porción no utilizadas para la asignación de recursos pueden provocar
expirada de su cuanto de tiempo de asignación en rueda. La cantidad interbloqueos, para ellos se les asignan banderas que indican que
del cuanto de tiempo puede ser obtenida con comportamiento les está permitido [10].
sched_rr_get_interval [10].
En lo que respecta a memoria virtual, el direccionamiento de memoria
SCHED_OTHER: Planificación predeterminada de Linux virtual de Linux hace uso de una estructura de tabla de páginas con tres
niveles, formada por los siguientes tipos de tablas:
en t.c.
SCHED_OTHER solamente puede emplearse con la prioridad
estática 0. SCHED_OTHER es el planificador estándar de Linux en • Directorio de páginas: un proceso activo tiene un solo directorio
tiempo compartido, pensado para todos los procesos que no requieren de páginas que es el tamaño de una página. Cada entrada en el
mecanismos especiales de prioridad estática en tiempo real. El directorio de páginas apunta a una página del directorio
proceso a ejecutarse se escoge de la lista de prioridad estática 0 basado intermedio de páginas. Para un proceso activo, el directorio y
en una prioridad dinámica que se determina solamente dentro de esta páginas tiene que estar en memoria principal.
lista. La prioridad dinámica se basa en el nivel de `nice' (puesto por la • Directorio intermedio de páginas: este directorio puede ocupar
llamada nice o setpriority) e incrementado para cada cuanto de varias páginas y cada entrada de este directorio apunta a una
tiempo para el que el proceso está listo para la ejecución, pero página de la tabla de páginas.
denegado para ella por el planificador. Esto asegura un buen • Tabla de páginas: esta tabla de páginas también puede ocupar
progreso entre todos los procesos SCHED_OTHER.
varias páginas, y cada entrada de tabla de página hace referencia
a una tabla virtual del proceso.
Tiempo de respuesta
Un proceso de alta prioridad bloqueado esperando E/S tiene un cierto Para utilizar esa estructura de la tabla de páginas a tres niveles, una
tiempo de respuesta antes de que sea planificado otra vez. El escritor dirección virtual en Linux se ve un conjunto de cuatro campos. El
del controlador del dispositivo puede reducir grandemente este campo más a la izquierda se utiliza como índice en el directorio de
tiempo de respuesta empleando un manejador de interrupción de páginas. El siguiente campo sirve como índice en el directorio
"interrupción lenta" [10]. intermedio de páginas. El tercer campo sirve como índice en la tabla
de páginas. Y el cuarto y el último campo, indica el desplazamiento
Trabajo de Sistemas Operativos 12

dentro de la página seleccionada de la memoria. La estructura de tabla


de página en Linux es independiente de la plataforma y fue diseñada
para ajustarse al procesador.

Para la asignación de páginas y aumentar la eficiencia de cargar y


descargar páginas a y desde la memoria principal, Linux define un
mecanismo para tratar bloques de páginas continuos correspondientes
a bloques de marcos de paginas continuos. Para este propósito se
utiliza el Buddy System. El kernel mantiene una lista de grupos de
marcos de página continuos de tamaño fijo, un grupo puede estar
formado por 1, 2, 3, 8, 16 o 32 marcos de páginas. Como la página se
asigna y liberan en la memoria principal, los grupos se dividen y se
intercalan utilizando el algoritmo de los colegas (buddy algorithm) [9]. Fig. 17 Perfil de memoria

Los fundamentos de asignación de memoria al kernel de Linux es el


mecanismo de asignación de páginas utilizando para la gestión de V. CONCLUSIONES
memoria virtual de usuario. Como en el esquema de memoria virtual
se utiliza un algoritmo de colegas (buddy algorithm) para asignar y
Como resultado después de haber investigado como se componen los
liberar la memoria del kernel en unidades de uno o más páginas. Puesto
sistemas operativos para su correcto funcionamiento en las diferentes
que la mínima cantidad de memoria que se puede asignar de esta forma
etapas se puede mostrar que la arquitectura en la que un sistema
es una página, el gestor de páginas solamente podría ser ineficiente si
operativo está compuesto es laborioso llegar hasta el punto de lograr
el kernel requiere pequeños trozos de memoria a corto plazo y en
que todos los componentes funcionen con una gran fluidez y que estén
tamaños irregulares [9]
integrados para formar sistemas que ayuden a facilitar las operaciones
y necesidades además el sistema operativo se constituyen como el
Gestión de Marcos de página
mediador del usuario y la computadora en la entrada, procesamiento,
El kernel debe mantener el estado actual de cada marco de página debe
almacenamiento, y salida de información, gracias a que maneja un
mantener información adicional a la que puede guardarse en el
interfaz gráfico con un sin número de programas, los cuales desarrollan
descriptor de las tablas de página. Se almacena información de cada
una tarea específica de acuerdo a la solicitud del usuario.
página en un array (men_map) de descriptores de marco de página,
definidos por la estructura struct page en
<Linux/mm.h>
Por ultimo, cabe destacar que los Sistemas Operativos desde sus
orígenes hasta la actualidad han sido objeto de grandes modificaciones,
con el propósito de mejorar la calidad de vida del hombre y facilitar su
trabajo.

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

Pasos del Algoritmo Gestión Procesos


Trabajo de Sistemas Operativos 15

Diagrama de Estados de un proceso


Trabajo de Sistemas Operativos 16

Lluvia de Ideas

Das könnte Ihnen auch gefallen