jueves, 28 de enero de 2010

6.4.3 Servidor de Archivos

Tipo de servidor en una red de ordenadores cuya función es permitir el acceso remoto a archivos almacenados en él o directamente accesibles por este. En principio, cualquier ordenador conectado a una red con un software apropiado, puede funcionar como servidor de archivos. Desde el punto de vista del cliente de un servidor de archivos, la localización de los archivos compartidos es transparente. O sea, normalmente no hay diferencias perceptibles si un archivo está almacenado en un servidor de archivos remoto o en el disco de la propia máquina.
Un servidor de archivos proporciona una ubicación central en la red, en la que puede almacenar y compartir los archivos con usuarios de la red. Cuando los usuarios necesiten un archivo importante, como un plan de proyecto, podrán tener acceso al archivo del servidor de archivos en lugar de tener que pasarlo entre distintos equipos. Si los usuarios de la red necesitan tener acceso a los mismos archivos y aplicaciones accesibles a través de la red.

Si tiene toda la información de la empresa almacenada en su servidor de archivos, el respaldo de este es mas simple de realizar

Algunos protocolos comúnmente utilizados en servidores de archivos:

SMB/CIFS (Windows, Samba en Unix)
NFS (Unix)
Un servidor de archivos proporciona una ubicación central en la red, en la que puede almacenar y compartir los archivos con usuarios de la red. Cuando los usuarios necesiten un archivo importante, como un plan de proyecto, podrán tener acceso al archivo del servidor de archivos en lugar de tener que pasarlo entre distintos equipos. Si los usuarios de la red necesitan tener acceso a los mismos archivos y aplicaciones accesibles a través de la red.

6.4.4 Seguridad en Archivos

Una norma básica de seguridad radica en la asignación a cada usuario sólo de los permisos necesarios para poder cubrir las necesidades de su trabajo sin poner en riesgo el trabajo de los demás.

6.4.5 Mecanismos de Proteccion de Archivos

Mecanismos de Protección
Dominios de Protección

Muchos objetos del sistema necesitan protección, tales como la cpu, segmentos de memoria, unidades de disco, terminales, impresoras, procesos, archivos, bases de datos, etc.

Cada objeto se referencia por un nombre y tiene habilitadas un conjunto de operaciones sobre él. Un dominio es un conjunto de parejas (objeto, derechos):

• Cada pareja determina:
• Un objeto.
• Un subconjunto de las operaciones que se pueden llevar a cabo en él.

Un derecho es el permiso para realizar alguna de las operaciones. Es posible que un objeto se encuentre en varios dominios con “distintos” derechos en cada dominio.

Un proceso se ejecuta en alguno de los dominios de protección:
• Existe una colección de objetos a los que puede tener acceso.
• Cada objeto tiene cierto conjunto de derechos.

Los procesos pueden alternar entre los dominios durante la ejecución. Una llamada al S. O. provoca una alternancia de dominio. En algunos S. O. los dominios se llaman anillos.

Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio es mediante una matriz:

• Los renglones son los dominios.
• Las columnas son los objetos.
• Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese dominio, por ej.: leer, escribir, ejecutar.

Listas Para Control de Acceso

Las “matrices de protección” son muy grandes y con muchos lugares vacíos:

• Desperdician espacio de almacenamiento.
• Existen métodos prácticos que almacenan solo los elementos no vacíos por filas o por columnas. La lista de control de acceso (ACL: access control list):
• Asocia a cada objeto una lista ordenada con:
• Todos los dominios que pueden tener acceso al objeto.
• La forma de dicho acceso (ej: lectura ®, grabación (w), ejecución (x)).

Una forma de implementar las ACL consiste en:

• Asignar tres bits (r, w, x) para cada archivo, para:
• El propietario, el grupo del propietario y los demás usuarios.
• Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento:
• Permite prohibir accesos antes permitidos.

6.4.6 Implementacion Sistemas de Archivos.

Implementación

Implantación: estos archivos podrían implantarse como parte de un sistema operativo distribuido, haciendo el papel de una capa de software cuya tarea es administrar la comunicación entre los sistemas operativos y los sistemas de archivos convencionales. Las características propias de un SAD son Ia multiplicidad y autonomía de los clientes y servidores en el sistema.

La implantación de un sistema distribuido de archivos incluye aspectos tales como

El uso de los archivos.
La estructura del sistema.
El ocultamiento.
La duplicación o réplica.
El control de la concurrencia

El uso de archivos generalmente se utiliza antes de implantar un sistema de archivo, y primero se realiza un analisis de patrones de uso, para realizar dicho analisis es necesario tomar las siguientes mediciones: Estatica (Representan una toma instantanea del sistema en un momento dado y comprende la distribución de tamaño de archivo) y Dinamica(Registra toda las operaciones que modifican el sistema de archivos)

Estructura del Sistema:

En algunos sistemas se cumple que:

Todas las máquinas ejecutan el mismo software básico.
Una máquina que desee dar servicio de archivos lo puede hacer:
Debe exportar los nombres de los directorios seleccionados, para que otras máquinas los puedan acceder.
En otros sistemas el servidor de archivos y el de directorios son solo programas del usuario, y se puede configurar un sistema para que ejecute o no el software de cliente o servidor en la misma máquina..

Tambien los clientes y servidores podrian ser equipos distintos en hardware y software

En este caso:

El cliente envía un nombre simbólico al servidor de directorios.
El servidor de directorios regresa el nombre en binario (ej.: máquina + nodo_i ) que comprende el servidor de archivos.
Es posible que una jerarquía de directorios se reparta entre varios servidores.
El servidor que recibe un nombre binario que se refiere a otro servidor puede:
Indicar al cliente el servidor que tiene el archivo buscado, para que el cliente lo busque.
Enviar la solicitud al siguiente servidor y no contestar.

6.5 Llamadas al Sistema System Calls

Es la Forma como se traslada la informacion, la recuperacion y el almacenamiento entre los datos de diferentes terminales.

6.6 Tipos de Interfaz

Interfaz de preguntas y respuestas

En los primeros días de las computadoras (antes de pantallas gráficas, el ratón, etc.) era la única forma realista de interfaz. El usuario podía comunicarse con el sistema especifico con ordenes de la forma indicada en la figura. Aunque es una forma concisa, es muy propensa a errores, muy estricta y difícil de aprender.

Interfaz de menú simple

Es una variante de la forma anterior, se presenta al usuario una lista de opciones y la selección se realiza por medio de un número, letra o un código en particular. Ofrece al usuario un contexto global y tiene menos porcentaje de errores que el anterior, pero su uso puede llegar a ser tedioso. Este es el caso de las opciones del ejemplo de la figura, que incluyen subopciones (que a su vez puede incluir otras opciones) dentro de las opciones principales.

interfaz orientada a ventanas

A medida que el hardware se ha hecho mas eficiente y los ingenieros de software han aprendido mas sobre los factores humanos, las técnicas de interfaz evolucionaron, llegando a lo que se conoce como interfaces de la tercera generación. Ofrece al usuario las siguiente ventajas:

Se puede visualizar diferentes tipos de información simultáneamente El esquema de menús desplegables permite realizar muchas tareas interactivas diferentes. Se realizan tareas de control y de dialogo en forma sencilla. La utilización de menús desplegables, botones y técnicas de presentación reducen el manejo del teclado.

6.7 Lenguaje de Comunicacion

Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.

Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo el HTML. (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación sino un conjunto de instrucciones que permiten diseñar el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.

Los procesadores usados en las computadoras entienden únicamente instrucciones en lenguaje de máquina. Todo programa escrito en otro lenguaje puede ser ejecutado de dos maneras:

Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se lo llama interpretar y a los programas que lo hacen se los conoce como intérpretes. Ejemplos de esto son bash, clásico interprete de comandos en estaciones unix que fue escrito para el proyecto GNU o Python, intérprete multipropósito.
Traduciendo el código escrito del programa (lo que se denomina código fuente), a su equivalente en lenguaje máquina. A este proceso se le llama compilar y al programa traductor se le denomina compilador. Ejemplos de esto son: El lenguaje C, que combina en su sintaxis características de medio y bajo nivel y el compilador gcc usado en el proyecto GNU.