miércoles, 24 de septiembre de 2014

Atributos de un Archivo en Windows

Un archivo informático o fichero es un conjunto de bits almacenado en un dispositivo periférico (disco duro, disco flexible, etc.). Un archivo es identificado por un nombre (en Windows nombre más extensión, en GNU Linux sólo nombre) y la descripción de la unidad y carpeta o directorio que lo contiene. Los archivos informáticos se llaman así porque son los equivalentes digitales de los archivos en papel del entorno de oficina tradicional. Los archivos informáticos facilitan una manera de organizar los recursos usados para almacenar permanentemente datos en un sistema informático.

Los posibles atributos de un fichero son:

Sólo lectura: impide que se pueda sobrescribir (modificar) o eliminar un fichero. 

Oculto: impide que se visualice al listar, por lo tanto no se pude copiar ni suprimir, a no ser que se conozca su nombre o que tengamos activa la opción de mostrar archivos ocultos. 

Archivo listo para archivar históricamente: indica si el archivo o carpeta se debe guardar cuando se realice una copia de seguridad.

Permitir al servicio de Index Server: indica que el archivo o carpeta se indexará para realizar una búsqueda rápida de texto en su contenido, propiedades o atributos. 

Comprimir contenido para ahorrar espacio en disco: indica que el archivo o carpeta se comprimirá automáticamente para ahorrar espacio en disco. 

Cifrar contenido para proteger datos: indica que el archivo o carpeta se cifrará para evitar que su contenido pueda ser visto por otro usuario. 

Sistema: indica que el archivo es para uso del sistema operativo, uso interno.

Directorio: indica que es una carpeta.

Normal: un archivo que no tiene otros atributos establecidos. El Sistema Operativo puede optar por almacenar datos de archivos con este atributo en la memoria en lugar de un almacenamiento masivo.

Fuera de línea: este atributo indica que los datos del fichero no están disponibles de inmediato, indica que el archivo ha sido movido a una conexión de datos de almacenamiento. 

Temporal: archivo utilizado para almacenamiento temporal.

Uso del comando attrib en Windows
Línea de Comandos Windows

Sistemas de Archivos

Un sistema de archivos son los métodos y estructuras de datos que un sistema operativo utiliza para seguir la pista de los archivos de un disco o partición; es decir, es la manera en la que se organizan los archivos en el disco.

Sistema operativo
Tipos de sistemas de archivos admitidos
Dos
FAT16
Windows 95
FAT16
Windows 95 OSR2
FAT16, FAT32
Windows 98
FAT16, FAT32
Windows NT4
FAT, NTFS (versión 4)
Windows 2000/XP/Vista/2003/2008/7/8
FAT, FAT16, FAT32, NTFS (Sistema de Archivos en Red, versiones 4 y 5)
Linux
Ext2, Ext3, Ext4
MacOS
HFS (Sistema de Archivos Jerárquico), MFS (Sistemas de Archivos Macintosh)
OS/2
HPFS (Sistema de Archivos de Alto Rendimiento)
SGI IRIX
XFS (sistema de Archivos Extendido)
FreeBSD, OpenBSD
UFS (Sistema de Archivos Unix)
Sun Solaris
UFS (Sistema de Archivos Unix)
IBM AIX
JFS (Sistema Diario de Archivos)


Las operaciones básicas que la mayoría de los sistemas de archivos soportan son:

  • Crear ( create ) : Permite crear un archivo sin datos, con el propósito de indicar que ese nombre ya está usado y se deben crear las estructuras básicas para soportarlo.
  • Borrar ( delete ): Eliminar el archivo y liberar los bloques para su uso posterior.
  • Abrir ( open ): Antes de usar un archivo se debe abrir para que el sistema conozca sus atributos, tales como el dueño, la fecha de modificación, etc. _ Cerrar ( close ): Después de realizar todas las operaciones deseadas, el archivo debe cerrarse para asegurar su integridad y para liberar recursos de su control en la memoria.
  • Leer o Escribir ( read, write ): Añadir información al archivo o leer el caracter o una cadena de caracteres a partir de la posición actual. _ Concatenar ( append ): llamada 'write', en la cual sólo se permite añadir información al archivo.
  • Leer atributos: Permite obtener una estructura con todos los atributos del archivo especificado, tales como permisos de escritura, de borrado, ejecución, etc.
  • Poner atributos: Permite cambiar los atributos de un archivo.

lunes, 22 de septiembre de 2014

Estructura de archivos Linux

http://recursostic.educacion.es/observatorio/web/fr/software/software-general/493-sagrario-peralta

http://www.ubuntu-es.org/node/101673#.VCC0GpR5Py0

lunes, 8 de septiembre de 2014

Planificación - Interbloqueos - Inanición


Planificación

Cuando una computadora se multiprograma, con frecuencia tiene varios procesos o hilos que compiten por la CPU al mismo tiempo. Esta situación ocurre cada vez que dos o más de estos procesos se encuentran al mismo tiempo en el estado listo. 
Si sólo hay una CPU disponible, hay que decidir cuál proceso se va a ejecutar a continuación. 
La parte del sistema operativo que realiza esa decisión se conoce como planificador de procesos y el algoritmo que utiliza se conoce como algoritmo de planificación.

Interbloqueos

Los sistemas computacionales están llenos de recursos que pueden ser utilizados por sólo un proceso a la vez. Algunos ejemplos comunes son las impresoras, las unidades de cinta y las ranuras en los tableros internos del sistema. Cuando dos procesos escriben de manera simultánea en la impresora se producen incoherencias. Si dos procesos utilizan la misma entrada en la tabla del sistema de archivos invariablemente se corrompe el sistema de archivos. En consecuencia, todos los sistemas operativos tienen la habilidad de otorgar (en forma temporal) a un proceso el acceso exclusivo a ciertos recursos.

Hay situaciones donde varios procesos están bloqueados y permanecerán así para siempre. A esta situación se le conoce como interbloqueo
Los interbloqueos también pueden ocurrir entre máquinas. 
Las situaciones más complicadas pueden ocasionar interbloqueos que involucren a tres, cuatro o más dispositivos y usuarios.

El interbloqueo se puede definir formalmente de la siguiente manera: 

Un conjunto de procesos, se encuentra en un interbloqueo,  si cada proceso en el conjunto está esperando un evento que solo puede ser ocasionado por otro proceso en el conjunto.

Inanición

Una situación en la que todos los programas continúan ejecutándose de forma indefinida, pero no progresan, se conoce cono inanición (starvation).

Un problema muy relacionado con el interbloqueo es la inanición. 
En un sistema dinámico, las peticiones de recursos ocurren todo el tiempo. 
Se necesita cierta política para decidiacercdquiéobtienqué recurso y cuándo
Estpolíticaaunquparecrazonablepuede ocasionar que ciertos procesos nunca reciban atención, aun cuando no estén en interbloqueo.

Como ejemplo, considere la asignación de la impresora. 
Imagine que el sistema utiliza cierto algoritmo para asegurar que la asignación de la impresora no produzca un interbloqueo?
Ahora suponga que varios procesos la quieren al mismo tiempo. ¿Quién debe obtenerla?

Un posible algoritmo de asignación es otorgar la impresora al proceso con el archivo más pequeño a imprimir (suponiendo que esta información esté disponible).

Este método maximiza el numero de clientes satisfechos y parece razonable.
Ahora considere lo que ocurre en un sistema ocupado, cuando un proceso tiene que imprimir un archivo enorme. 
Cada vez que la impresora esté libre, el sistema buscará y elegirá el proceso con el archivo más pequeño.

Si hay un flujo constante de procesos con archivos cortos, el proceso con el archivo enorme nunca recibirá la impresora, simplemente se pospondrá de manera indefinida, aun cuando no esté bloqueado.


Linanicióspuedevitamedianteusdunpolíticdasignaciódrecursodetipo “primero en llegar, primero en ser atendido”. 
Con este método, el proceso que espere s tiempo se el que se atienda primero. 
A su debido tiempo, cualquier proceso dado se convertirá en el más antiguo y, por ende, obtendrá el recurso que necesita.

lunes, 1 de septiembre de 2014

Comunicación entre Procesos

Un proceso no es más que una instancia de un programa en ejecución, incluyendo los valores actuales del contador de programa, los registros y las variables

Creación de un proceso
Hay cuatro eventos principales que provocan la creación de procesos:
1. El arranque del sistema.
2. La ejecución, desde un proceso, de una llamada al sistema para creación de procesos.
3. Una petición de usuario para crear un proceso.
4. El inicio de un trabajo por lotes.

Terminación de procesos
Una vez que se crea un proceso, empieza a ejecutarse y realiza el trabajo al que está destinado. Sin embargo, nada dura para siempre, ni siquiera los procesos. Tarde o temprano el nuevo proceso terminará, por lo general debido a una de las siguientes condiciones:
1. Salida normal (voluntaria).
2. Salida por error (voluntaria).
3. Error fatal (involuntaria).
4. Eliminado por otro proceso (involuntaria).

Estados de un proceso
En ejecución (en realidad está usando la CPU en ese instante).
Listo (ejecutable; se detuvo temporalmente para dejar que se ejecute otro proceso).
Bloqueado (no puede ejecutarse sino hasta que ocurra cierto evento externo).

Hilos
En los sistemas operativos tradicionales, cada proceso tiene un espacio de direcciones y un solo hilo de control. De hecho, ésa es casi la definición de un proceso. Sin embargo, con frecuencia hay situaciones en las que es conveniente tener varios hilos de control en el mismo espacio de direcciones. Tener un tipo de proceso dentro de otro proceso, es lo que comúnmente llamamos hilos.

Dormir y despertar

Una de las más simples primitivas de comunicación entre procesos son sleep (dormir) y wakeup (despertar). Sleep es una llamada al sistema que hace que el proceso que llama se bloquee o desactive, es decir, que se suspenda hasta que otro proceso lo despierte. La llamada wakeup tiene un parámetro, el proceso que se va a despertar o activar. De manera alternativa, tanto sleep como wakeup tienen un parámetro, una dirección de memoria que se utiliza para asociar las llamadas a sleep con las llamadas a wakeup.

Semáforos

E. W. Dijkstra (1965) sugirió el uso de una variable entera para contar el número de señales de despertar, guardadas para un uso futuro. En su propuesta introdujo un nuevo tipo de variable, al cual él le llamó semáforo. Un semáforo podría tener el valor 0, indicando que no se guardaron señales de despertar o algún valor positivo si estuvieran pendientes una o más señales de despertar.

Propuso que se tuvieran dos operaciones, down up (generalizaciones de sleep wakeup, respectivamente). La operación down en un semáforo comprueba si el valor es mayor que 0. De ser así, disminuye el valor (es decir, utiliza una señal de despertar almacenada) y sólo continúa. Si el valor es 0, el proceso se pone a dormir sin completar la operación down por el momento.

Mutexes

Cuando no se necesita la habilidad del semáforo de contar, algunas veces se utiliza una versión simplificada, llamada mutex. Los mutexes son buenos sólo para administrar la exclusión mutua para cierto recurso compartido o pieza de código. Se implementan con facilidad y eficiencia, lo cual hace que sean especialmente útiles en paquetes de hilos que se implementan en su totalidad en espacio de usuario.

Un mutex es una variable que puede estar en uno de dos estados: abierto (desbloqueado) o cerrado (bloqueado). En consecuencia, se requiere sólo 1 bit para representarla, pero en la práctica se utiliza con frecuencia un entero, en donde 0 indica que está abierto y todos los demás valores indican que está cerrado. Se utilizan dos procedimientos con los mutexes. Cuando un hilo (o proceso) necesita acceso a una región crítica, llama a mutex_lock. Si el mutex está actualmente abierto (lo que significa que la región crítica está disponible), la llamada tiene éxito y entonces el hilo llamador puede entrar a la región crítica.

Por otro lado, si el mutex ya se encuentra cerrado, el hilo que hizo la llamada se bloquea hasta que el hilo que está en la región crítica termine y llame a mutex_unlock. Si se bloquean varios hilos por el mutex, se selecciona uno de ellos al azar y se permite que adquiera el mutex.

Monitores

Para facilitar la escritura de programas correctos, Brinch Hansen (1973) y Hoare (1974) propusieron una primitiva de sincronización de mayor nivel, conocida como monitor, que es una colección de procedimientos, variables y estructuras de datos que se agrupan en un tipo especial de módulo o paquete. Los procesos pueden llamar a los procedimientos en un monitor cada vez que lo desean, pero no pueden acceder de manera directa a las estructuras de datos internas del monitor desde procedimientos declarados fuera de éste. Los monitores tienen una importante propiedad que los hace útiles para lograr la exclusión mutua: sólo puede haber un proceso activo en un monitor en cualquier instante.

Pasaje (transmisión) de mensajes

Este método de comunicación entre procesos utiliza dos primitivas (send receive) que, al igual que los semáforos y a diferencia de los monitores, son llamadas al sistema en vez de construcciones del lenguaje.

Barreras

Este mecanismo de sincronización está destinado a los grupos de procesos, en vez de las situaciones de tipo productor-consumidor de dos procesos. Algunas aplicaciones se dividen en fases y tienen la regla de que ningún proceso puede continuar a la siguiente fase sino hasta que todos los procesos estén listos para hacerlo. Para lograr este comportamiento, se coloca una barrera al final de cada fase. Cuando un proceso llega a la barrera, se bloquea hasta que todos los procesos han llegado a ella.





Emisora de Radio