Logo Studenta

Guia Unidad V

¡Este material tiene más páginas!

Vista previa del material en texto

GESTION DE PROCESOS 
 
Un proceso es simplemente, un programa en ejecución que necesita recursos para 
realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el 
responsable de: 
 Crear y destruir los procesos. 
 Parar y reanudar los procesos. 
 Ofrecer mecanismos para que se comuniquen y sincronicen. 
La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una 
lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos 
comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las 
de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer 
un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y 
permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a 
las tareas más antiguas. 
Hemos de tener en cuenta que en el ordenador se ejecutan los programas, y cada 
programa es divido en procesos que se cargan en memoria y se ejecutan uno tras otro. El 
sistema operativo es el encargado de hacerlo todo, la carga de los procesos en memoria y la 
ejecución de dichos procesos, pues para que se ejecute un programa es necesario que el 
microprocesador ejecute los procesos de ese programa. 
El microprocesador no hace las cosas por sí solo, es el sistema operativo el que 
determina que proceso se debe ejecutar y cuanto tiempo debe estar ejecutándose, a todo esto 
se le denomina gestión de procesos. 
 
Estados de un proceso 
Los estados por los que transita un proceso son: 
 Nuevo: El proceso está siendo creado 
 En Ejecución: Se están ejecutando las instrucciones. 
 En espera: El proceso está esperando a que se produzca un suceso 
 Preparado: El proceso está a la espera de que se le asigne a un procesador 
 Terminado: Ha finalizado su ejecución 
En el estado en ejecución solo puede haber un proceso, sin embargo, varios pueden 
estar listos o bloqueados. 
Los procesos no pueden pasar por ellos mismos de listos a ejecución, es el S.O. el 
http://es.wikipedia.org/wiki/Proceso_(inform%C3%A1tica)
http://es.wikipedia.org/wiki/Tiempo_de_CPU
 
que decide cuando se pasa de listo a ejecutado. 
 
Bloque De Control De Procesos 
Cada proceso se encuentra representado en el S.O. mediante una estructura 
denominada “Bloque de Control de Procesos” o “PCB”, que contiene toda la información que 
se necesita saber sobre el proceso entre otras cosas debe guardar el estado actual del proceso. 
Un PCB contiene muchos elementos de información asociados con un proceso específico, 
entre los que se incluyen: 
 Estado del proceso: El estado puede ser nuevo, en ejecución, en espera, etc. 
 Contador de programas: Contiene la dirección de la siguiente instrucción a 
ejecutar por el proceso. 
 Registro de CPU: Varían en cuanto a número y tipo, dependiendo de la 
arquitectura de la computadora. Incluye acumuladores, registro de índices, punteros de pila y 
registros de propósito general. 
 Información de planificación CPU: Incluye prioridad del proceso, apuntadores a 
colas de planificación, etc. (Información del algoritmo de planificación). 
 Información de gestión de memoria: Incluye información acerca del valor de los 
registros base y limites, las tablas de paginación o tablas de segmentos, dependiendo del 
mecanismo de gestión de memoria. 
 Información contable: Contiene información acerca de la cantidad de CPU y 
tiempos empleados, los límites de tiempo asignados, el número de trabajo o de proceso. 
 Información del estado de E/S: Esta información incluye, solicitudes pendientes 
de E/S, dispositivos de E/S asignados al proceso, etc. 
 
 
 
GESTION DE USUARIOS Y GRUPOS 
 
La gestión de usuarios y grupos ha ido evolucionando en los distintos sistemas 
operativos, siendo inexistente en los primeros y actualmente una parte importante de todos 
ellos. 
Los primeros sistemas operativos no disponían de la tecnología multiusuario, y por 
tanto el tipo de usuario no estaba definido. Así, cualquier que se conectara a la máquina o la 
usara tenía acceso sin restricciones a toda ella. Esto era una gran desventaja, ya que tanto un 
usuario inexperto como alguien con malas intenciones podían borrar cualquier archivo de 
vital importancia para el sistema o usarlo para cualquier propósito sin necesidad de 
autentificarse. Más tarde los monousuario se fueron quedando obsoletos y surgieron los 
primeros sistemas multiusuario. 
Estos permiten proveer de servicios a varios usuarios con los mismos recursos 
compartidos. Prácticamente todos los sistemas operativos de la actualidad son multiusuario, y 
podemos clasificarlos según estén basados en Unix (aquí nos centraremos en las 
distribuciones linux), basados en Windows NT y otros, como los SO para móviles o MAC 
OS. 
La tecnología multiusuario permite distribuir los recursos a los diferentes usuarios, 
agrupándolos y dando permisos a cada uno de ellos. De esta forma, aprovechamos los 
recursos de nuestro ordenador, minimizamos riesgos de eliminar archivos vitales del sistema 
sin darnos cuenta, disponemos de más privacidad, pudiendo incluso cifrar nuestros 
directorios personales, manteniendo los documentos de cada usuario separados y mejor 
organizado, y cada usuario puede personalizar el sistema a su medida añadiendo los 
programas que considere necesarios, y adaptando en general la máquina a sus necesidades. 
Además, el hecho de tener usuarios con contraseñas permite saber quién está usando la 
máquina en cada momento y dejar un registro de las acciones llevadas a cabo por dicho 
usuario. 
 
Tipos de usuario 
 
Principalmente se pueden distinguir dos tipos de usuarios: 
 El administrador es el usuario que tiene privilegios ilimitados. Está pensado para 
llevar a cabo tareas de mantenimiento o administrativas que conllevan modificar archivos 
fundamentales del sistema, no debe usarse como usuario por defecto, ya que sería un gran 
https://belenus.unirioja.es/~jodiazde/Trabajo%20Web/mono.html
https://belenus.unirioja.es/~jodiazde/Trabajo%20Web/unix.html
https://belenus.unirioja.es/~jodiazde/Trabajo%20Web/win.html
 
riesgo. 
 Los usuarios limitados son los que se deben elegir para un uso general del 
ordenador. Dependiendo de los distintos sistemas operativos y de la utilidad que se le quiera 
dar, pertenecerá a varios grupos, de los cuales dependerán los permisos que tenga el usuario. 
 
Grupos 
 
Los grupos varían bastante en función del sistema operativo que estemos usando. Los 
grupos nos permiten manejar varios usuarios al mismo tiempo, de forma que cuando 
asignamos determinados permisos u otras opciones a un grupo, estos se establecen para todos 
los usuarios pertenecientes a dicho grupo, haciendo la tarea de administración de usuarios 
mucho más efectiva. 
En general cabe destacar el grupo administradores, o admin. Los usuarios 
pertenecientes a estos grupos, a pesar de no ser ellos mismos administradores pueden "tomar 
prestados" privilegios de administrador durante cortos periodos de tiempo para realizar tareas 
concretas. De este modo conseguimos mantener la seguridad de nuestro sistema sin la tediosa 
tarea de cambiar al usuario Administrador cada vez que queramos realizar tareas 
administrativas. 
 
Sistemas Monousuarios 
 
Un sistema monousuario, es aquel en el que el tipo de usuario no está definido, y por 
tanto sólo existe un usuario con todos los privilegios. Normalmente son sistemas operativos 
antiguos monotarea, o sistemas operativos que incorporan un modo monousuario para tareas 
administrativas, o como modo a prueba de fallos. Evidentemente en este tipo de sistemas 
operativos, no existe gestión de usuarios ni de grupos, ya que no existen los mismos. Los 
principales sistemas monousuarios o con modo monousuario son: 
 
Versiones de Windows 
Las primeras versiones de Windows (1.0, 2.0, 3.1, 3.11) funcionabansobre un 
entorno MS-DOS. Todos ellos eran sistemas monotarea, por tanto monousuario. Más 
tarde, sobre 1995, aparecen los primeros sistemas operativos parcialmente independientes de 
MS-DOS que ya eran multitarea. Estos son Windows 95, y más tarde (1998) Windows 98, 
sin embargo no son sistemas operativos multiusuario. En Windows 98 ya se pueden gestionar 
unos usuarios pero con muy pocas opciones, con una seguridad prácticamente nula, sin 
 
gestión de permisos ni opción de personalizar la máquina en función de cada usuario. 
La tecnología multiusuario aparece en los sistemas operativos Windows con la llegada de 
los basados en Windows NT. Estos ya permiten gestionar recursos, permisos, personalizar el 
ordenador, etc. Se analizan más profundamente en su sección. 
 
Versiones de MAC 
Al igual que con los sistemas windows, las primeras versiones eran monotarea y no 
disponían de usuarios diferenciados (Sistema 1, Sistema 2, Sistema 3, Sistema 4, Sistema 6). 
Sistema 7 (1990) ya incluía alguna diferenciación de usuarios y permitía iniciar algo parecido 
a sesiones muy primitivas. MAC OS 9.0 ya implementó la tecnología multiusuario 
propiamente dicha, y a partir de ahí fue evolucionando. En sistemas MAC además hay un 
modo monousuario distinto del modo seguro ya que el sistema inicia directamente una 
consola sin iniciar los componentes del núcleo MAC. 
 
Versiones Linux 
Las distribuciones Linux, al estar basadas en Unix, son todas multiusuario. Sin 
embargo los sistemas operativos basados en Unix, proveen de funcionalidades en modo 
monousuario a través del sistema SystemV y los runlevels. 
 
Windows 
 
Concepto de usuario 
Los sistemas Windows NT son sistemas operativos que administran sesiones. Esto 
significa que cuando se inicia un sistema, es necesario registrarse con un nombre de usuario y 
una contraseña. En Windows NT se dispone de una cuenta de Administrador de forma 
predeterminada, que no se puede borrar, y de otra cuenta Invitado. Es posible (y se 
recomienda) modificar los permisos de los usuarios (qué acciones pueden realizar) y también 
agregar usuarios mediante el Administrador de usuarios. 
El administrador de usuarios es la herramienta por defecto que incorpora Windows 
NT para dicha tarea. Se encuentra en el Menú Inicio (Programas/Herramientas de 
administración). Desde esta herramienta podemos crear nuevos usuarios, cada uno con los 
campos Usuario, Nombre completo, Descripción y Contraseña, y algunas opciones como 
Forzar al usuario a cambiar la contraseña, o activar o desactivar usuario. Podemos distinguir 
tres tipos de cuentas en Windows NT: 
 Administrador: Se utiliza para administrar la configuración global de equipos y 
https://belenus.unirioja.es/~jodiazde/Trabajo%20Web/win.html
https://belenus.unirioja.es/~jodiazde/Trabajo%20Web/win.html
 
dominios. Tiene permisos para verlo, ejecutarlo, instalarlo y borrarlo todo. 
 Invitado: Permite que, en ocasiones, los usuarios inicien sesión y tengan acceso al 
equipo local. Esta opción está desactivada de forma predeterminada. 
 Cuentas creadas por usted, que pueden ser cuentas limitadas, o cuentas con 
permiso de administrador. Sus permisos dependerán de los grupos a los que pertenezcan. 
No se aconseja trabajar desde Administrador continuamente, ya que al no tener 
ninguna restricción sobre el sistema operativo, si un virus entra en tu máquina por la red, o te 
descargas un archivo infectado y lo ejecutas, tiene control total sobre el sistema pues se 
ejecuta con los permisos de tu cuenta. El programa malicioso se podrá poner como 
autoarrancable cada vez que inicies el sistema operativo, e incluso tendrá privilegios para 
ocultar su presencia a antivirus y cortafuegos. 
Por tanto, debemos crear una cuenta y configurar en función de nuestras necesidades, 
y usar la cuenta de Administración sólo para tareas administrativas. Por tanto, conviene tener 
claro los distintos grupos de nuestro sistema y qué permisos y privilegios tendrán los usuarios 
pertenecientes a cada grupo. 
 
Grupos 
Windows NT también permite que la administración de usuario mediante grupo. Esto 
significa que puede definir grupos de usuarios con el mismo tipo de permisos, organizándolos 
en categorías. 
Un grupo es un conjunto de cuentas de usuario. Un usuario que se agrega a un grupo 
obtiene todos los permisos y derechos de ese grupo. Los grupos de usuarios hacen más 
sencilla la administración, ya que es posible otorgar permisos a varios usuarios a la vez. Hay 
dos tipos diferentes de grupos: 
 Grupos locales: Otorga a los usuarios permisos para que accedan a un recurso de 
red. También sirven para conceder a los usuarios privilegios para abrir tareas de sistema 
(como cambiar la hora, hacer copias de seguridad, recuperar archivos, etc.). Existen grupos 
locales preconfigurados. 
 Grupos globales: Se usan para organizar las cuentas de usuario de dominio. 
También se usan en redes de varios dominios, cuando los usuarios de un dominio necesitan 
tener acceso a recursos de otro dominio. 
 Grupos de Seguridad: Los grupos pueden tener descriptores de seguridad 
asociados con ellos. 
 
 Grupos de distribución: Los grupos se utilizan para las listas de 
distribución de correo electrónico. No pueden tener descriptores de seguridad asociados. 
Aquí nos centraremos en los primeros, ya que son los que intervienen a la hora de gestionar 
nuestra propia máquina, y no entraremos en la gestión de cuentas en dominios. Cuando se 
inicia Windows NT por primera vez, se crean seis grupos de forma predeterminada: 
 Administradores 
 Operadores de copia 
 Duplicadores 
 Usuarios Avanzados 
 Usuarios 
 Invitados 
 
 
El grupo más importante es Administradores. A este grupo pertenecen los usuarios 
que creamos con privilegios. Hay que diferenciar a los usuarios pertenecientes a este grupo 
del usuario Administrador. El usuario Administrador tiene capacidad para hacer cualquier 
cosa, mientras que los usuarios que pertenecen a este grupo pueden ejecutar programas con 
permisos de administrador, esto es, tomar permisos de administrador sólo para tareas 
determinadas. 
El resto de grupos no son demasiado importantes, y basta con saber que podemos 
agrupar a los usuarios en ellos (o en nuevos grupos que creemos) y de esta forma gestionar 
los permisos de los grupos directamente, en vez de tener que gestionar los permisos de cada 
usuario. 
Por defecto, todos los usuarios (excepto algunos especiales utilizados por servicios o 
 
aplicaciones concretas) pertenecen al grupo Usuarios. 
 
Gestión de usuarios y grupos desde la consola de comandos 
Podemos gestionar los usuarios y grupos en Windows NT desde la consola de 
comandos. Esto se hace desde el comando net accounts, y net group respectivamente. Como 
la ayuda con net account /? y net group /? no es muy extensa, estos son los comandos más 
usados: 
 NET ACCOUNTS: Muestra los distintos comandos que se pueden usar 
 NET ACCOUNTS /DOMAIN: Ver la contraseña de inicio de sesión y los 
requisitos para el dominio de la red. 
 NET ACCOUNTS /FORCELOGOFF:minutes /DOMAIN: Establece el numero de 
minutos que un usuario tiene antes de ser forzado a salir de su cuenta desde que su cuenta 
caduca. 
 NET ACCOUNTS /FORCELOGOFF:NO /DOMAIN: Evita la salida de sesion 
forzada cuando uan cuenta caduca. 
 NET ACCOUNTS /MINPWLEN:C /DOMAIN: Establece el numero de caracteres 
mínimo de una contraseña. Los valores que puede tomar son 0-14, por defecto 6. 
 NET ACCOUNTS /MAXPWAGE:dd /DOMAIN: Establece el número de dias 
durante los cuales una contraseña es válida. El rango es 1-49710; the default is 90 days. 
 NET ACCOUNTS /MAXPWAGE:UNLIMITED /DOMAIN: Establace que las 
contraseñas nunca expiran. 
 NET ACCOUNTS /MINPWAGE:dd /DOMAIN: Establece un minimo de dias que 
deben pasar antes de que un usuario pueda cambiar su contraseña. (por defecto = 0) 
 NET ACCOUNTS /UNIQUEPW:x /DOMAIN:Requiere que las nuevas 
contraseñas sean diferentes de 'x' numero de contraseñas anteriores. El rango de 'x' es de 1 a 
24. 
 NET ACCOUNTS /SYNC /DOMAIN: Sincroniza la base de datos de cuentas de 
usuario (PDC and BDC). 
 NET USER [/DOMAIN]: Ver detalles de cuentas de usuario. 
 NET USER username {password | *} /ADD [opciones] [/DOMAIN]: Añade una 
cuenta de usuario. 
 NET USER [username [password | *] [opciones]] [/DOMAIN]: Modifica una 
cuenta de usuario. 
 
 NET USER username [/DELETE] [/DOMAIN]: Borra una cuenta de usuario 
 NET USER administrator /random: Genera una contraseña aleatoria 
 NET GROUP groupname /ADD [/COMMENT:"text"] [/DOMAIN]: Añade un 
grupo. 
 NET GROUP [groupname [/COMMENT:"text"]] [/DOMAIN]: Edita un grupo. 
 NET GROUP groupname /DELETE [/DOMAIN]: Borra un grupo 
 NET GROUP groupname username [...] /ADD [/DOMAIN]: Añade un usuario a 
un grupo. 
 NET GROUP groupname username [...] /DELETE [/DOMAIN]: Borra a un 
usuario de un grupo. 
 
Linux 
 
Linux es un sistema multiusuario, y por tanto, en él se pueden diferenciar y 
administrar distintos usuarios y grupos. 
 
Usuarios 
El archivo /etc/passwd contiene toda la información relacionada con el usuario 
(registro, contraseña, etc.). Este archivo posee un formato especial que permite marcar a cada 
usuario y cada una de sus líneas tiene el siguiente formato: 
nombre_de_cuenta : contraseña : numero_de_usuario : numero_de_grupo : comentario : 
directorio : programa_de_inicio 
Se especifican siete campos separados por el carácter ":": 
 
 El nombre de cuenta del usuario 
 La contraseña del usuario (codificada, por supuesto) 
 El número entero que identifica al usuario para el sistema operativo (UID = ID del 
usuario, identificación del usuario) 
 
 El número entero que identifica al grupo del usuario (GID = ID del grupo, 
identificación del grupo) 
 El comentario en el que se puede encontrar la información sobre el usuario o 
simplemente su nombre real 
 El directorio de conexión, que es el directorio que se abre cuando se conecta al 
sistema 
 El comando es el que se ejecuta después de la conexión al sistema (con frecuencia 
éste es el intérprete de comandos) 
Es importante saber que las contraseñas ubicadas en este archivo están codificadas. 
Por lo tanto, es inútil editar y reemplazar el campo password al introducir directamente la 
contraseña. Esto sólo provocaría el bloqueo de la cuenta. 
 
Añadiendo usuarios 
Usaremos el comando: useradd [opciones] nombre de usuario 
Opciones: (se muestran las más importantes, para ver todas basta con hacer man 
useradd) 
 c comentario → Para poner un comentario sobre el usuario 
 d directorio → Especificamos la trayectoria absoluta del directorio de conexión 
HOME. En este directorio se copiarán los ficheros del usuario como el .profile 
 m → Si el directorio de conexión no existe lo crea, siempre que exista el directorio 
padre de este. 
 g grupo → El grupo de usuarios al que se conecta el usuario. Debe existir 
previamente. 
 G grupo1,grupo2,.. → Otros grupos a los que se añadirá el usuario. 
 s shell → Trayectoria absoluta del shell de conexión. Para el shell Korm hay que 
poner la ruta /bin/ksh y para el shell bourne /bin/sh. 
 
Modificando usuarios 
Basta con usar el comando: usermod [opciones] nombre de usuario 
 
Grupos 
El archivo /etc/group contiene una lista de los usuarios que pertenecen a los 
diferentes grupos. De hecho, cada vez que un gran número de usuarios puede tener acceso al 
sistema, frecuentemente se los ubica en grupos diferentes, cada uno de los cuales posee sus 
 
propios derechos de acceso a los archivos y directorios. 
Tiene diferentes campos separados por ":": 
nombre_de_grupo : campo_especial : numero_de_grupo: miembro1, miembro2 
Con frecuencia, el campo especial está vacío. El número de grupo corresponde al 
número del vínculo entre los archivos /etc/group y los archivos /etc/passwd. 
 
Añadiendo grupos 
Para añadir un grupo, el administrador puede cambiar el archivo /etc/group con un 
editor de texto. También puede usar el comando addgroup o groupadd (no siempre 
presentes). En el primer caso, sólo tendrá que añadir las líneas relacionadas con los grupos. 
Por ejemplo, la línea: 
admin : : 56 : ccm 
 
Agregando un usuario a un grupo 
Para agregar un usuario a un grupo, sólo debe editar el archivo /etc/group y agregar el 
nombre al final de la línea separando los nombres de los miembros con una coma. 
 
Eliminando grupos 
Para eliminar un grupo, sólo debe editar el archivo /etc/group y eliminar la línea 
correspondiente. Tenga en cuenta: /etc/passwd, Si ese grupo tenía usuarios, no olvide cambiar 
los números (GID) del grupo eliminado. También es importante buscar los archivos y 
directorios de este grupo para cambiarlos (de lo contrario, los archivos y directorios pueden 
volverse inaccesibles). 
 
 
 
 
GESTIÓN DE LA MEMORIA 
 
 
La memoria es uno de los principales recursos de la computadora, la cual debe de 
administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas de 
cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones 
actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de 
memoria en los sistemas multitarea y/o multiusuario. 
La parte del sistema operativo que administra la memoria se llama administrador de 
memoria y su labor consiste en llevar un registro de las partes de memoria que se estén 
utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando 
éstos la necesiten y liberándola cuando terminen, así como administrar el intercambio entre la 
memoria principal y el disco en los casos en los que la memoria principal no le pueda dar 
capacidad a todos los procesos que tienen necesidad de ella. 
Los sistemas de administración de memoria se pueden clasificar en dos tipos: los que 
desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución y los 
que no. 
El propósito principal de una computadora es el de ejecutar programas, estos 
programas, junto con la información que accesan deben de estar en la memoria principal (al 
menos parcialmente) durante la ejecución. 
Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener varios 
procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de 
administración tanto del procesador como de la memoria. La selección de uno de ellos 
depende principalmente del diseño del hardware para el sistema. A continuación se 
observarán los puntos correspondientes a la administración de la memoria. 
 
 Aspectos Generales 
 
 Memoria real: 
La memoria real o principal es en donde son ejecutados los programas y procesos de 
una computadora y es el espacio real que existe en memoria para que se ejecuten los 
procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el 
acceso a la información contenida en ella es de más rápido acceso. Sólo la memoria cache es 
más rápida que la principal, pero su costo es a su vez mayor. 
 
Memoria virtual: 
El término memoria virtual se asocia a dos conceptos que normalmente aparecen 
 
unidos: El uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la 
ilusión de tener más memoria RAM de la que realmente hay en el sistema. Esta ilusión existe 
tanto a nivel del sistema, es decir, teniendo en ejecución más aplicaciones de las que 
realmente caben en la memoria principal, sin que por ello cada aplicación individual pueda 
usar más memoria de la que realmente hay o incluso de forma más general, ofreciendo a cada 
aplicación más memoria de la que existe físicamente en la maquina. 
Ofrecer a las aplicaciones la ilusión de que están solas en el sistema, y que por lo tanto, 
pueden usar el espacio de direcciones completo.Esta técnica facilita enormemente la 
generación de código, puesto que el compilador no tiene por qué preocuparse sobre dónde 
residirá la aplicación cuando se ejecute. 
 
Espacio de direcciones: 
Los espacios de direcciones involucrados en el manejo de la memoria son de tres 
tipos: 
 Direcciones físicas: Son aquellas que referencian alguna posición en la memoria 
física. 
 Direcciones lógicas: Son las direcciones utilizadas por los procesos. Sufren una 
serie de transformaciones, realizadas por el procesador (la MMU), antes de convertirse en 
direcciones físicas. 
 Direcciones lineales: Direcciones lineales se obtienen a partir de direcciones 
lógicas tras haber aplicado una transformación dependiente de la arquitectura. 
Los programas de usuario siempre tratan con direcciones virtuales, nunca ven las direcciones 
físicas reales. 
 
Unidad de manejo de memoria: 
La unidad de manejo de memoria (MMU) es parte del procesador. Sus funciones son: 
 Convertir las direcciones lógicas emitidas por los procesos en direcciones físicas. 
 Comprobar que la conversión se puede realizar. La dirección lógica podría no tener 
una dirección física asociada. Por ejemplo, la página correspondiente a una dirección se 
puede haber trasladado a una zona de almacenamiento secundario temporalmente. 
 Comprobar que el proceso que intenta acceder a una cierta dirección de memoria 
tiene permisos para ello. 
La MMU se inicializa para cada proceso del sistema. Esto permite que cada proceso 
pueda usar el rango completo de direcciones lógicas (memoria virtual), ya que las 
 
conversiones de estas direcciones serán distintas para cada proceso. 
En todos los procesos se configura la MMU para que la zona del núcleo solo se pueda 
acceder en modo privilegiado del procesador. La configuración correspondiente al espacio de 
memoria del núcleo es idéntica en todos los procesos. 
 
Intercambio 
 
El objetivo del intercambio es dar cabida a la ejecución de más aplicaciones de las 
que pueden residir simultáneamente en la memoria del sistema: 
Consiste en trasladar el código y los datos de un proceso completo de memoria al sistema de 
almacenamiento secundario, para cargar otro previamente almacenado, no permite a un 
proceso utilizar más memoria RAM de la que realmente existe en el sistema. Esta técnica 
puede ser ineficiente ya que se tiene que hacer el intercambio completo del proceso, aunque 
éste solo vaya a ejecutar una pequeña porción del código. 
Durante el intercambio un proceso puede ser sacado temporalmente de memoria y 
llevado a un lugar especial del disco y posteriormente vuelto a memoria y continuada su 
ejecución. 
El lugar de almacenamiento temporal suele ser un espacio suficientemente grande 
como para acomodar copias de las imágenes de memoria de todos los usuarios. 
 
Asignación contigua: 
La memoria principal normalmente se divide en dos particiones: 
Sistema operativo residente, normalmente en la parte baja de memoria con los vectores de 
interrupción. Procesos de usuario en la parte alta. 
 
Asignación de partición simple: 
Puede utilizarse un esquema de registro de relocalización y límite para proteger un 
proceso de usuario de otro y de cambios del código y datos del sistema operativo. 
El registro de relocalización contiene la dirección física más pequeña; el registro limite 
contiene el rango de las direcciones lógicas. Cada dirección lógica debe ser menor al registro 
limite. 
 
Asignación de particiones múltiples: 
Bloques de distintos tamaños están distribuidos en memoria, cuando llega un proceso 
se le asigna un hueco suficientemente grande para acomodarle. El sistema operativo debe 
 
tener información sobre: 
 Particiones asignadas 
  Particiones libres (huecos) 
  Asignación de partición dinámica 
El proceso de compactación es una instancia particular del problema de asignación de 
memoria dinámica, el cual es el cómo satisfacer una necesidad de tamaño n con una lista de 
huecos libres. Existen muchas soluciones para el problema. El conjunto de huecos es 
analizado para determinar cuál hueco es el más indicado para asignarse. Las estrategias más 
comunes para asignar algún hueco de la tabla son: 
 Primer ajuste: Consiste en asignar el primer hueco con capacidad suficiente. La 
búsqueda puede iniciar ya sea al inicio o al final del conjunto de huecos o en donde terminó 
la última búsqueda. La búsqueda termina al encontrar un hueco lo suficientemente grande. 
 Mejor ajuste: Busca asignar el espacio más pequeño de los espacios con 
capacidad suficiente. La búsqueda se debe de realizar en toda la tabla, a menos que la tabla 
esté ordenada por tamaño. Esta estrategia produce el menor desperdicio de memoria posible. 
 Peor ajuste: Asigna el hueco más grande. Una vez más, se debe de buscar en toda 
la tabla de huecos a menos que esté organizada por tamaño. Esta estrategia produce los 
huecos de sobra más grandes, los cuales pudieran ser de más uso si llegan procesos de 
tamaño mediano que quepan en ellos. 
Se ha demostrado mediante simulacros que tanto el primer y el mejor ajuste son 
mejores que el peor ajuste en cuanto a minimizar el tiempo del almacenamiento. Ni el primer 
ajuste o el mejor ajuste es claramente el mejor en términos de uso de espacio, pero por lo 
general el primer ajuste es más rápido.

Continuar navegando