Friday, May 31, 2013

Formas y organizaciones de Almacenamiento

En Linux, la memoria virtual se conoce como “swap” (intercambio), lo que se diferencia con la memoria real por utilizar espacio en el disco duro en vez de módulos de memoria. Generalmente esto se configure en la instalación del sistema operativo sin embargo se puede crear o modificar después como sea necesario.
 Existen dos formas de establecer un espacio de memoria virtual o swap – una partición independiente en el disco duro o un archivo en una partición ya existente.

La primera opción es la más eficiente, sin embargo requiere de una partición adicional. En el caso de que no se ha creado durante la instalación, sería necesario crearla a través del sistema de comandos o utilizando un programa de particionamiento como gparted. Se utilizan los comandos mkswap y swapon con las opciones correspondientes.

La otra opción es más fácil y es parecido a la forma en que se implementa la memoria virtual en otros sistemas operativos como Windows. No tiene la misma eficiencia como la creación de una partición adicional sin embargo tiene la ventaja de ser menos cambiante al sistema, siendo nada más un archivo que se puede crear o eliminar como sea necesario. Se utiliza el comando dd con las opciones correspondientes para crear el archivo y mkswap y swapon para activarlo como archivo de swap.

Thursday, May 30, 2013

Estrategias del sistema operativo


      Cuando hablamos de estrategia nos referimos a lo que hace diferente y mejor nuestro sistema operativo de otros; y es que nos ofrece un gran rendimiento, la  capacidad de ampliación, la confiabilidad, la seguridad y el soporte que exigen sus organizaciones. También es importante mencionar que ofrece los servicios y las herramientas que necesita para alcanzar una mayor eficiencia o en otras palabras La estrategia principal tomada en cuenta por los desarrolladores de Linux es que toda organización ya sea pública o privada puede adaptarlo a sus necesidades creando así una visión de sistema que cumpla con las expectativas que necesita la empresa.

Estrategia de la Administración de Memoria

       Se puede decir q La gestión de la administración de  memoria del núcleo se realiza en base a los marcos de página de la memoria principal. Su función básica es asignar y liberar marcos para los distintos usos. Los fundamentos de la reserva de memoria en Linux son los mecanismos de reservas de páginas ya usados para le gestión de memoria virtual de usuario. Como se utiliza el algoritmo buddy, se puede reservar y liberar unidades de una o más páginas. Debido a que el tamaño mínimo de memoria que se puede reservar es de una página, la reserva de páginas no sería muy adecuada ya que el núcleo requiere pequeños fragmentos que se utilizarán por poco tiempo y que son de distintos tamaños. Es por eso que Linux utiliza un esquema conocido como "asignación de láminas". 

Administración de Almacenamiento


Cuando nos referimos a la administración de almacenamiento de Linux podemos decir que es muy similar a la de Windows ya que toda la información esta almacenada en el disco duro de la PC, la mayoría de las veces se hacen dos particiones una para los archivos del sistema operativo y programas como tal y la otra para los documentos. Además de eso permite el almacenamiento de memorias extraíbles como los pendrives entre otros. Adicional a esto  Linux tiene una particularidad importante que para modificar, crear, eliminar archivos hay que dar permiso a través de comandos e introduciendo la clave de usuario.

Ejemplo: comando básico de modificación de archivos.
Sudo chmod a+w /opt /lampp/htdocs

Características de la Memoria Real

Las Características de la memoria real o física puede ser clasificado como:
  • Existen dos tipos de memorias RAM: SRAM Y DRAM.
  • Capacidad o tamaño de la misma: Es decir que representa el volumen global de información (en bits) que la memoria puede almacenar.
  • Tiempo de acceso: Básicamente eso tiene que ver con el intervalo de tiempo entre la solicitud de lectura/escritura y la disponibilidad de los datos. Este tiempo es muy pequeño, y de el depende la potencia del ordenado. Son típicos tiempos del orden de microsegundos e incluso del orden de 2 a 10 nanosegundos.
  • Tiempo de ciclo: Eso es la representación del intervalo de tiempo mínimo entre dos accesos sucesivos.
  • No volatilidad: Que caracteriza la capacidad de una memoria para almacenar datos cuando no recibe más electricidad.
  • Rendimiento: Eso tiene la responsabilidad para definir el volumen de información intercambiado por unidad de tiempo, expresado en bits por segundo. Bps

Memoria Real


La Memoria Real también conocido como memoria principal, memoria física o  memoria primaria, es un hardware en donde son ejecutados los programas y también los procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. 



Wednesday, May 29, 2013

BIBLIOGRAFÍA de modulo 3

Libros:
- MILAN MILENKOVIC (1994) Sistemas Operativos - Conceptos y Diseno. 2da Edición
- A. SILBERSCHATZ J. PETERSON (1994) Sistemas Operativos - Conceptos Fundamentales. Tercera Edición

Sitio Web:

Ventajas y Desventajas del uso de la memoria virtual


Ventajas:
-       Permite optimizar uso de memoria
-       Mantiene más procesos en memoria principal 
-       Permite que un proceso sea más grande que toda la memoria principal 
-       Permite multiprogramación muy efectiva 
-  Se encarga el Sistema Operativo donde se evita al usuario la preocupación por programar con superposición

Desventajas:
-       Fallos de direccionamiento
-       Sobrecarga por gestión compleja de memoria
-       SO expide otro proceso para que se ejecute 
-   La memoria virtual puede ser una herramienta poderosa para incrementar la performance del computador. 
-  Usar áreas de entrada/salida más largas: Reduce el tiempo en que las páginas del programa estarán en memoria real.

Monday, May 27, 2013

Direccionamiento de la memoria virtual


Linux utiliza una tabla de página de 3 niveles, cada tabla en particular tiene el tamaño de una página: 


Directorio de páginas: Los procesos activos tienen un directorio de páginas único que tiene el tamaño de página. El directorio de páginas debe recidir en la memoria principal para todo proceso activo.
Directorio intermedio de páginas: Este directorio se expande a múltiples páginas. Cada entrada en la tabla de páginas apunta a una página que contiene una tabla de páginas.
Tabla de páginas: Cada entrada en la tabla hace referencia a una página virtual del proceso.

 

Memoria Virtual.


La memoria es uno de los recursos más valiosos que gestiona el sistema operativo. Uno de los elementos principales que caracterizan un proceso es la memoria que utiliza. Ésta está lógicamente separada de la de cualquier otro proceso del sistema (excepto los threads de un mismo proceso que comparten normalmente la mayor parte de la memoria que tienen asignada). Un proceso no puede acceder, al espacio de memoria asignado a otro proceso, lo cual es imprescindible para la seguridad y estabilidad del sistema. El direccionamiento es una parte importante de la gestión de memoria, puesto que influye mucho en la visión del mismo por parte de un proceso, como en el aprovechamiento del hardware y el rendimiento del sistema. En Linux, además, un proceso tiene dos espacios de memoria: el espacio de memoria del usuario, único para ese proceso, y el espacio de memoria del kernel, idéntico en todos los procesos.

MEMORIA VIRTUAL.

El tamaño combinado del programa, datos y pila puede exceder la cantidad de memoria física disponible. El sistema operativo guarda aquellas partes del programa concurrentemente en uso en memoria central y el resto en disco. Cuando un programa espera que se le cargue en memoria central de disco otra parte del mismo, la CPU se puede asignar a otro proceso.

El sistema operativo gestiona niveles de memoria principal y memoria secundaria: 

• Transferencia de bloques entre ambos niveles (normalmente basada en paginación).
• De memoria secundaria a principal: por demanda.
• De memoria principal a secundaria: por expulsión.

Paginación. 

El espacio virtual de direcciones se divide en unidades llamadas páginas, todas del mismo tamaño. La memoria principal se divide en marcos de páginas (page frames) del mismo tamaño que las páginas virtuales y son compartidas por los distintos procesos del sistema (en cada marco de página se carga una página de un proceso).

No todo el espacio virtual de direcciones está cargado en memoria central. Una copia completa se encuentra en disco y las páginas se traen a memoria central cuando se necesitan. 

Segmentación. 

El espacio de direcciones se divide en segmentos, cada uno de los cuales corresponderá a una rutina (procedimiento, función), un programa o un conjunto de datos (una entidad lógica). Todo aquello que se corresponda con sub-espacio de direcciones independientes.

Cada programa contiene una cierta cantidad de segmentos. Los primeros segmentos se reservan para procedimientos, datos y pila, pertenecientes al programa en ejecución. Los segmentos restantes contienen un archivo por segmento, así que los procesos pueden direccionar todos sus archivos directamente sin tener que abrirlos ni usar primitivas especiales de entrada/salida. Cada archivo puede crecer de forma completamente independiente de los otros, con cada byte direccionado por un par (segmento, desplazamiento).Por otro lado, colocando objetos diferentes en diferentes segmentos, se facilita la compartición de estos objetos entre procesos múltiples.

Segmentación Paginada.

Como su propio nombre indica, la segmentación paginada intenta aunar lo mejor de los dos esquemas. La segmentación proporciona soporte directo a las regiones del proceso y la paginación permite un mejor aprovechamiento de la memoria y una base para construir un esquema de memoria virtual. Con esta técnica, un segmento está formado por un conjunto de páginas, y por tanto, no tiene que estar contiguo en memoria.

Paginación por Demanda.

Segmentación pura no es adecuada para memoria virtual ⇒ Tamaño de segmentos variable. 

Paginación y segmentación paginada sí son para memoria virtual ⇒ (1) Bloque transferido → Página (2) Memoria virtual + Paginación → Paginación por demanda.

Estrategia de implementación: Uso del bit de validez, donde la página no residente se marca como no válida.

Acceso a una página (Excepción de falta de página de la MMU al kernel del sistema operativo si la página no está en la MMU): el kernel del sistema operativo trae la página correspondiente de memoria secundaria ⇒ el kernel del sistema operativo debe diferenciar entre página no residente y página inválida. 

Prepaginación ⇒ Traer páginas por anticipado (no por demanda): En caso de falta de página se traen además otras páginas que se consideran que necesitará el proceso → Beneficiosa dependiendo de si hay acierto en la predicción. 

Tratamiento de falta de página (peor de los casos, falta de página puede implicar dos operaciones de E/S al disco) ⇒ Tratamiento de la excepción provocado por la MMU (dirección de fallo disponible en registro).

Algoritmos de Reemplazo de Página.

Objetivo de los algoritmos de reemplazo: Minimizar la tasa de fallos de página. Cada algoritmo tiene versión local y global: local ⇒ criterio se aplica a las páginas residentes del proceso, y global ⇒ criterio se aplica a todas las páginas residentes. Algoritmos conocidos: Óptimo, FIFO (First In First Out), Clock (Reloj o segunda oportunidad) = FIFO + uso del bit de referencia; y LRU (Least Recently Used). Además estos algoritmos se utilizan en técnicas de buffering de páginas.

LRU ⇒ Criterio: reemplaza la página residente menos usada recientemente. Está basado en el principio de proximidad temporal de referencias: si es probable que se vuelve a referenciar las páginas accedidas recientemente, entonces la página que se debe reemplazar es la que no se ha referenciado desde hace más tiempo. Sutileza en su versión global: menos recientemente usada en el tiempo lógico de cada proceso (no tiempo real).Difícil implementación estricta (hay aproximaciones) ⇒ Precisaría una MMU específica. Posible implementación con hardware específico: en entrada de TP hay un contador, en cada acceso a memoria MMU copia contador del sistema a entrada referenciada; y el reemplazo sería para la página con contador más bajo.

Buffering de páginas. Mantiene una lista de marcos de página libres.
(1) Si falta de página ⇒ siempre usa marco de página libre (no reemplazo);
(2) Si número de marcos libres < umbral ⇒ “demonio de paginación” aplica repetidamente el algoritmo de reemplazo: páginas no modificadas pasan a lista de marcos de páginas libres y páginas modificadas pasan a lista de marcos de páginas modificados (cuando se escriban a disco pasan a lista de libres y pueden escribirse en tandas (mejor rendimiento));
(3) Si se referencia una página mientras está en estas listas ⇒ falta de página: dicha página la recupera directamente de la lista (no E/ S).

Puede darse el caso de que haya páginas marcadas como “no reemplazables” ⇒ se aplica a páginas del propio sistema operativo, también se aplica mientras se hace DMA sobre una página. Algunos sistemas operativos ofrecen a aplicaciones un servicio para fijar en memoria una o más páginas, pudiendo afectar positivamente al rendimiento del sistema.

Políticas de Asignación de Marcos de Página. 

Estrategia de asignación fija ⇒ Número de marcos asignados al proceso (conjunto residente) es constante.
Puede depender de características del proceso (tamaño, prioridad, etc.). No se adapta a las diferentes necesidades de memoria de un proceso a lo largo de su ejecución. Comportamiento del procesos es relativamente predecible. Sólo tiene sentido usar reemplazo local. La arquitectura de la máquina impone un número mínimo de marcos de página que debe asignarse a un proceso (por ejemplo, la instrucción “move” requiere un mínimo de 3 marcos de página).

Estrategia de asignación dinámica ⇒ Número de marcos varía dependiendo de comportamiento del proceso (y posiblemente de los otros procesos en el sistema). Asignación dinámica + reemplazo local → el proceso va aumentando o disminuyendo su conjunto residente dependiendo de su comportamiento (distintas fases de ejecución del programa) y tiene un comportamiento relativamente predecible. Asignación dinámica + reemplazo global → los procesos se quitan las páginas entre ellos, teniendo un comportamiento difícilmente predecible.

Operaciones sobre las Regiones de un Proceso.

Como ya sabemos, el espacio de direccionamiento de un proceso se compone de varias regiones de memoria y cada región de memoria se caracteriza por varios atributos:

(1) sus direcciones de inicio y fin;
(2) los derechos de acceso que tiene asociados;
(3) el objeto asociado (por ejemplo, un archivo ejecutable que contiene el código ejecutado por el proceso).

Las regiones de memoria contenidas en el espacio de direccionamiento de un proceso pueden determinarse mostrando el contenido del archivo maps, situado en el directorio de cada proceso en el sistema de archivos /proc. Las operaciones que el kernel del sistema operativo puede realizar sobre las regiones de memoria de un proceso son las siguientes:

(1) Creación de región ⇒ Al crear mapa inicial o por solicitud posterior;
(2) Liberación de región ⇒ Al terminar el proceso o por solicitud posterior;
(3) Cambio de tamaño de región ⇒ Del heap o de la pila (stack);
(4) Duplicado de región ⇒ Operación requerida por el servicio fork.
 


CONFIGURACIÓN DEL SISTEMA


La configuración del sistema se trata de modificar las diferentes opciones al gusto del usuario y también para optimizar el rendimiento de los diferentes elementos del sistema como son:
      
       SISTEMA DE USUARIO:
Linux es un sistema multiusuario, por lo tanto, la tarea de añadir, modificar, eliminar y en general administrar usuarios es muy importante, y además es un elemento de seguridad que se debe estar bien administrado.
Los usuarios en Unix/Linux se identifican por un número único de usuario, User ID, UID y pertenecen a un grupo principal de usuario, identificado también por un número único de grupo, Group ID, GID. El usuario puede pertenecer a más grupos además del principal.
Existen generalmente 3 tipos de usuarios en Linux:
Usuario root - también llamado superusuario o administrador, es la única cuenta con privilegios sobre todo el sistema, acceso total a todos los archivos y directorios con independencia de propietarios y permisos.
Usuarios especialestambién se llaman cuentas del sistema y cuentas de “no inicio de sesión” (nologin). Algunos ejemplos son bin, daemon, adm, lp, sync, shutdown, mail, operator, squid y apache.
Usuarios normales – son las que se utilizan para usuarios individuales. Cada usuario dispone de un directorio de trabajo, ubicado generalmente en /home y puede personalizar su entorno de trabajo.
Useradd o adduser es el comando que permite añadir nuevos usuarios al sistema desde la línea de comandos. Sus opciones más comunes o importantes son las siguientes:
·         -c añade un comentario al momento de crear al usuario, campo 5 de /etc/passwd
·         -d directorio de trabajo o home del usuario, campo 6 de /etc/passwd
·         -e fecha de expiración de la cuenta, formato AAAA-MM-DD, campo 8 de /etc/shadow
·         -g número de grupo principal del usuario (GID), campo 4 de /etc/passwd
·         -G otros grupos a los que puede pertenecer el usuario, separados por comas.
·         -r crea una cuenta del sistema o especial, su UID será menor al definido en /etc/login.defs en la variable UID_MIN, además no se crea el directorio de inicio.
·         -s shell por defecto del usuario cuando ingrese al sistema. Si no se especifica, bash, es el que queda establecido.
·         -u UID del usuario, si no se indica esta opción, automáticamente se establece el siguiente número disponible a partir del último usuario creado.
Modificar usuario
Para modificar usuarios, es necesario utilizar el siguiente comando en la Terminal de UBUNTU:
--> usermod: este comando tiene las siguientes opciones:
­ c: añade o modifica el comentario del usuario.
­ d: modifica el directorio de trabajo o home del usuario.
­ e: modifica o define la fecha de expiración de la cuenta, debe ser en formato AAAA-MM-DD
­ g: grupo principal del usuario
­ G: modifica los otros grupos a los cuales puede pertenecer el usuario
­ l: modifica el login o nombre de usuario
­ L: bloquea la cuenta de usuario
­ s: cambia el Shell predeterminado para el usuario
­ u: cambia el Identificador del usuario
­ U: desbloquea un usuario que previamente había sido bloqueado con la opción -L

Cambiar contraseñas
Para asignar o cambiar contraseñas, es necesario utilizar el comando passwd.

Eliminar usuarios
Para eliminar usuarios de UBUNTU, es necesario utilizar el siguiente comando:
--> userdel: Este comando elimina una cuenta de usuario totalmente, además tiene las siguientes opciones:
­ r: Elimina la cuenta totalmente, incluyendo el directorio de trabajo (y todos los archivos que contenga).
­ f: Elimina la cuenta totalmente, el directorio de trabajo y lo hace sin importar si está trabajando actualmente en el sistema (esta opción no es recomendada, ya que desestabiliza el sistema).


       IMPRESORA:
Una vez conectada la impresora y encendida, seguramente Ubuntu la detecte y la instale automáticamente, sin tener que hacer nosotros nada. Si no es así, debemos escoger el icono de "Nuevo" en el menú de gestión de impresoras:
Sistema -> Administración -> Impresoras -> Nuevo
Aparecerá una lista con las siguientes opciones (por este orden):
1.    La impresora conectada al ordenador detectada ("impresora local").
2.    Las impresoras compartidas por otros ordenadores detectadas ("impresoras de red").
3.    Configuraciones para instalar una impresora no detectada: LPT, USB, Samba, IPP, Jetdirect.
Una vez escogida la impresora que queremos instalar, seleccionamos el modelo y el controlador. Puede ser que Ubuntu haga esto automáticamente por nosotros.

       REDES:
       La configuración de la red se puede hacer durante la instalación o después a través de una opción en el menú de administración o utilizando el terminal y los comandos correspondientes.

       SISTEMA DE ARCHIVOS:
            Debido a que la capacidad de los discos es muy grande los archivos se clasifican en contenedores denominados carpetas o directorios.Las carpetas pueden contener archivos o subcarpetas, las subcarpetas son carpetas que se encuentran dentro de otra. Asi, todas las carpetas se encuentran dentro de otra excepto la carpeta root que se representa por el símbolo / (GNOME y Nautilus la denominan sistema de archivos). Las carpetas, por lo tanto, estan organizadas con una estructura de árbol.
Las particiones de las unidades se montan sobre una carpeta, por lo que el acceso a la información por parte del usuario es independiente de la unidad donde ésta se encuentre.
Los archivos contienen documentos de texto, sonidos, imágenes, videos, programas, diapositivas, entre otros Todos los archivos se están vinculados al menos a una carpeta que los contiene y tienen un único nombre que los identifica dentro de la carpeta, no pudiendo haber dos archivos con el mismo nombre dentro de la misma carpeta.

CONFIGURACIÓN DE RED


No es obligatorio configurar la red dentro de la instalación, se puede posponer la configuración y emplear la utilidades de configuración del sistema para realizar la configuración de la red. Si la información está disponible se configura automáticamente  o también se puede hacer por el administrador de la red, que sea el responsable de dar la información. Los datos necesarios para la configuración de la red son las siguientes:

·    El nombre para el equipo lo que se conoce como el hostname o nombre de host, el equipo se identificara mediante el nombre en internet, no utilizar el término localhost ya que la computadora reserva este nombre para un uso especial. El nombre de host debe ser un término analfabeto sencillo, puede incluir números pero admite signos de puntuación como puntos o  barras.

·         Su nombre de dominio.

·         La dirección de protocolo de internet (IP) asignada a la maquina se asigna una dirección (IP)a cada uno de los host en internet  esta dirección consta de una serie de cuatro números separados por puntos que identifica inequívocamente un lugar individual dentro de la internet permitiendo así que información de otros lugares lleguen al equipo

·         La dirección (IP) de la red, esta dirección suele ser similar a la dirección (IP) pero incluye al menos un cero al final.

·         La máscara de red suele ser 255.255.255.0 para la dirección (IP) de clase C, no obstante si se forma parte de una red grande, debe consultarse al administrador de red.

·         La dirección broadcast de la red, si estuviese disponible. Normalmente la dirección del broadcast el igual a la dirección del (IP) mas el numero 255 al final.

·         Si se dispone de una pasarela, se necesita la dirección (IP) de la pasarela (encaminador de la  red).

·         La dirección IP de cualquier servidor de nombres que utilice la red.

·         El dominio NIS y la dirección IP si la red utiliza un servidor NIS.
En el caso de Ubuntu se ubica la opción de configuración de red en el menú de Sistema -Administración - Red.
Este modulo permite:
  • Conectarse a una red local o internet a través de una tarjeta de red estándar o mediante una tarjeta de red inalámbrica o wireless (wifi). Debe de disponer de los datos de conexión previamente mencionados.
  • Crear distintos perfiles de configuración para equipos portátiles que se conecten habitualmente desde distintas conexiones.
  • Conectar su equipo a internet por cable telefónico mediante un modem externo o interno estándar, configurando los datos de la conexión (usuario, contraseña, teléfono de acceso, etc.).