Gestion De Archivos En Linux
Enviado por fzambrano • 4 de Diciembre de 2011 • 2.326 Palabras (10 Páginas) • 883 Visitas
Introducción:
Linux, como se sabe, es un sistema operativo multitarea y multiusuario. Esto quiere decir que múltiples procesos pueden operar simultáneamente sin interferirse unos con los otros. Cada proceso tiene la "ilusión" que es el único proceso en el sistema y que tiene acceso exclusivo a todos los servicios del sistema operativo. Programas y procesos son entidades distintas. En un sistema operativo multitarea, múltiples instancias de un programa pueden ejecutarse simultáneamente. Cada instancia es un proceso separado. Por ejemplo, si cinco usuarios desde equipos diferentes, ejecutan el mismo programa al mismo tiempo, habría cinco instancias del mismo programa, es decir, cinco procesos distintos.
Cada proceso que se inicia es referenciado con un número de identificación único conocido como Process ID PID, que es siempre un entero positivo. Prácticamente todo lo que se está ejecutando en el sistema en cualquier momento es un proceso, incluyendo el Shell, el ambiente gráfico que puede tener múltiples procesos, etc. La excepción a lo anterior es el kernel en si, el cual es un conjunto de rutinas que residen en memoria y a los cuales los procesos a través de llamadas al sistema pueden tener acceso.
La necesidad de herramientas de software que permitan una optima administración de sistemas operativos GNU/LINUX , a impulsado la aparición de software orientado hacia la recopilación de información que rodea a las funciones básicas dentro de un sistema operativo GNU/LINUX , sin embargo este sistema operativo dispone de pocas herramientas graficas que permitan al usuario final
entender la información que rodea a cada proceso existente tales como nombre del proceso, tiempo de ejecución entre otros aspectos
Objetivo:
Conocer, implementar y desarrollar atreves del lenguaje c# las distintas funcionalidades de un sistema operativo GNU/LINUX y su capacidad para administrar procesos.
Documentación de las clases implementadas:
En las siguientes 19 clases correspondiente a (DatosProcesos “es donde se almacenan los datos con los métodos set y get”, Escritura “es donde”,Estados “es donde se almacenan los datos obtenidos por los métodos set y get que se obtiene el nombre del proceso y el estado”, Ficheros_Usuarios “es donde los datos de los ficheros nombre y listado del fichero”, GrupoProcesos “en esta clase se implementa el nombre del grupo y el PID del proceso”, Hilos “en esta clase”, HTML” en esta clase es donde se implementa la exportación de los datos que se generan del Shell script a un archivo en formato html”, InfProcesos “ en esta clase es para la información más detallada de los procesos”, Lectura “en esta clase”, LeerProceso “en esta clase”, Listar “en esta clase es donde lista la información obtenida atreves de los Shell ya sea en los trevieew y en los combobox”, PDF “en esta clase es donde se implementa la exportación de los datos que se generan del Shell script a un archivo en formato pdf”, Permisosnum “ en esta clase se obtiene los permiso en letras y luego se convierten a numero como se pide en la guía del laboratorio”, PListaCola “en esta clase”, Procesos “ en esta clase se implementa para obtener la información de los procesos nombre, PDI , memoria”, ProcesosGrupos “ en esta clase se implementa para obtener la información de los procesos por grupos nombre, memoria, PDI”, ShellScript “en esta clase se invocan todos los archivos Shell script y realiza su previa ejecución para luego obtener la información llamado por medio de cada uno de ellos”, Usuarios “ en esta clase se implementa para tener de los datos de todos los usuarios del sistema”, UsuariosProcesos “en esta clase se implementa para tener de los datos obtenidos todos los procesos por usuario del sistema”). Implementamos los distintos atributos de cada una:
Clase DatosProcesos.
using System;
using System.IO;
public class DatosProcesos
{
private string ConsumoCPU;
private string PID;
private string NombreProceso;
private string TiempoEjecucion;
private string TTY;
private string PorMemoria;
private string EstadoProceso;
private string Prioridad;………….
.
.
.
en esta clase declaramos las variables que se van a implementar dentro de la información de los procesos obtener sus datos .
Clase Escritura.
using System;
using System.IO;
public class Escritura
{
private string FNombre;
protected StreamWriter Escritor;
protected StreamReader Lector;
public Escritura()
{
FNombre="";
Escritor=null;
}
public string Nombre{
set{
FNombre=value;
}
get{
return FNombre;
}
}
public bool Abrir(){
if(File.Exists(FNombre)){
try{
Lector=File.OpenText(FNombre);
return true;
}catch{
return false;
}
}else{
try{
Escritor=File.CreateText(FNombre);
return true;
}catch{
return false;
}
}
}
public void GuardarLinea(string Linea){
Escritor.WriteLine(Linea);
}
public void Cerrar(){
Escritor.Flush();
Escritor.Close();
}
public virtual void GuardarProceso(object obj){
}
En esta Clase se implementa para poder escribir dentro del archivo en este caso el archivo se llama proceso.txt
Clase EscrituraProc.
using System;
using System.IO;
public class EscrituraProc: Escritura
{
public EscrituraProc(): base()
{
}
public override void GuardarProceso(object obj){
Console.WriteLine("1");
InfProceso proc;
if(obj is InfProceso){
Console.WriteLine("2");
proc=obj as InfProceso;
GuardarLinea(""+proc.Pid+";"+proc.Estado+";"+proc.prioridad+";"+proc.Nombre+";"+proc.Rinicio+";"+proc.Rfinal);
Console.WriteLine("guardado correctamente");
}
}
}
En esta clase se implementa heredando de la clase Escritura para tener permiso de escribir en
...