jueves, 24 de noviembre de 2011

PRACTICA 2

Estudia el siguiente codigo y escribe la jerarquia de procesos resultante.
Despues, compila y ejecuta el codigo para comprobarlo (deberas añadir llamadas al sistema getpid, getppid y wait para conseguirlo).

#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#define L1 2
#define L2 3
int main ()
{
int cont1, cont2;
pid_t pid;
for (cont2= 0; cont2< L2; cont2++)
{
for (cont1= 0; cont1< L1; cont1++)
{
pid= fork();
if (pid== 0)
break;
}
if (pid!= 0) break;
}
printf ("Soy el hijo: %d y Mi padre es: %d.\n", getpid(), getppid());
if (pid!= 0)
for (cont1= 0; cont1< L1; cont1++)
printf ("Fin del proceso%d.\n", wait (NULL));
return 0;
}





DIAGRAMA  DE ARBOL

miércoles, 23 de noviembre de 2011

JERARQUIA DE PROCESOS

Dibuja la jerarquía de procesos que resulta de la ejecución del siguiente código. Introduce las llamadas al sistema wait para que una vez generado el árbol de procesos los hijos sean esperados por sus respectivos padres. Ademas,  haz que se informe de los tiempos de ejecución de las aplicaciones  xload y
 kcalc que se generen así como del tiempo total de ejecución. Para calcular el  tiempo transcurrido, puedes utilizar la función´ time() de la librería estándar  time.h. La llamada time(NULL) devuelve los segundos transcurridos desde
 las 00:00:00 del 1/1/1970 hasta el instante de la llamada.

#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main (int argc, char *argv[]) {
int i, j;
pid_t pid, nuevo, nuevo1;
time_t ini, fin;
ini= time(NULL);
for (i= 0; i< 2; i++){
pid= getpid();
for (j= 0; j< i+2; j++){
nuevo= fork();
if(nuevo== 0){
break;
nuevo1= fork();
if(nuevo1== 0)
execlp ("xload", "xload", NULL);
}
}if (pid!= getpid())
execlp ("kcalc", "kcalc", NULL);
}
for (i= 0; i< 2; i++)
for (j= 0; j< i+2; j++){ wait(NULL);
}
printf ("Tiempo total: %ld\n", time(NULL)-ini);
printf("soy el hijo %d y mi padre es %d\n",getpid(),getppid());
sleep(3);
return 0;
}


DIAGRAMA DE JERARQUIA DE PROCESOS

sábado, 1 de octubre de 2011

PRACTICA5

#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
 
#define lectura 0
#define escritura 1
 
 
int aleatorio(void)
{
       int semilla = (int)time(NULL);
       srand(semilla);
}
 
int hijo(int tub1[2], int tub2[2]){
    int ret;
    int mi_num;
 
    int nu_byte;
    char buf[256]={};
 
    ret = fork();
 
        if (ret == 0){
            /*Tratamiento del nieto*/
            //minumero = aleatorio();
            mi_num= 10;
 
            printf("%d\n",mi_num);
            sprintf(buf,"%d",mi_num);
 
            if( write (tub1[escritura],buf, sizeof(buf)) == -1){
                perror("Fallo write nieto");
                exit(EXIT_FAILURE);
            }
 
            nu_byte = read(tub2[lectura],buf,sizeof(buf));
 
            if (nu_byte == -1){
                perror("Fallo read nieto");
                exit(EXIT_FAILURE);
            }
 
 
 
            close(tub1[escritura]);
            close(tub2[lectura]);
 
            printf("Soy hijo1 con PID=%d, mi numero aleatorio es %d y el del otro proceso es %s\n\n",getpid(),mi_num,buf);
 
 
        }
 
        else if (ret > 0){
            /*Tratamiento del padre*/
 
            //minumero = aleatorio();
            mi_num=12;
 
            printf("%d\n",mi_num);
            sprintf(buf,"%d",mi_num);
 
            if( write (tub2[escritura],buf, sizeof(buf)) == -1){
                perror("Fallo write padre");
                exit(EXIT_FAILURE);
            }
 
            nu_byte = read(tub1[lectura],buf,sizeof(buf));
 
            if (nu_byte == -1){
                perror("Fallo read padre");
                exit(EXIT_FAILURE);
            }
 
 
 
 
            close(tub1[lectura]);
            close(tub2[escritura]);
 
            printf("Soy hijo2 con PID=%d, mi numero aleatorio es %d y el del otro proceso es %s\n\n",getpid(),mi_num,buf);
        }
 
        else if (ret == -1){
           
            perror("Fallo en el segundo fork");
            exit(EXIT_FAILURE);           
        }
}
 
int main (void){
    int ret;
    int ret2;
    int tub1[2];
    int tub2[2];
    int temp;
    int e;
    char buf[256]={};
 
    if (pipe(tub1) == -1){
        perror("Fallo pipe1");
        exit(EXIT_FAILURE);
    }
 
    if (pipe(tub2) == -1){
        perror("Fallo pipe2");
        exit(EXIT_FAILURE);
    }
 
    ret = fork();
 
    if (ret == 0){
       
        hijo(tub1,tub2);
 
    }
 
    else if( ret > 0){
       
 
 
    }
 
    else if (ret == -1){
        perror("Fallo en fork");
        exit(EXIT_FAILURE);
    }
 
    ret = wait (NULL);
 
    while (ret > 0){
        ret = wait(NULL);
    }
 
    if (ret == -1 && errno != ECHILD){
        perror("Fallo en wait");
        exit (EXIT_FAILURE);
    }
 
}

miércoles, 28 de septiembre de 2011

POSIX

¿QUE ES POSIX ?

Se define una interfase portable para aplicaciones basadas en el popular sistema operativo UNIX
del UNIX. Una parte importante del POSIX aborda las necesidades de las aplicaciones de tiempo real. La portabilidad de estas aplicaciones es hoy en día prácticamente imposible
debido a la gran cantidad de sistemas operativos y núcleos de tiempo real existentes.

(Portable Operating System Interface para UNIX). Familia de estándares relacionados especificados por la IEEE para definir APIs para la compatibilidad de software entre los diferentes sistemas operativos Unix. El término "POSIX" fue sugerido por Richard Stallman en respuesta a un requerimiento de la IEEE, que deseaba un nombre memorable.

La familia de estándares POSIX es formalmente designada como IEEE 1003, y el nombre del estándar internacional ISO es ISO/IEC 9945.

Si los diseñadores de programas se adecúan a POSIX, sus aplicaciones podrán ejecutarse en cualquier sistema operativo compatible con POSIX.

Los
sistemas operativos que soportan POSIX son:
* A/UX
* AIX
* BSD/OS
* HP-UX
* INTEGRITY
* Irix
* LynxOS
* Mac OS X
* MINIX
* OpenVMS
* QNX
* RTEMS (POSIX 1003.1-2003 Profile 52)
* Solaris
* OpenSolaris
* UnixWare
* VxWorks
* Windows con kernel NT (usados en Windows NT, 2000, 2003; XP, Vista): sólo en algunas ediciones o con determinadas aplicaciones instaladas.
¿DONDE SE USA?
Se estableció en el POSIX un grupo de trabajo de tiempo real. Este grupo desarrolla estándares para añadir al POSIX básico (o UNIX) los servicios de sistema operativo necesarios para poder desarrollar aplicaciones de tiempo real. Estas aplicaciones se
caracterizan porque el funcionamiento correcto no sólo depende de los resultados del cálculo, sino también del instante en el que se generan estos resultados. Con objeto de garantizar que los cálculos se realizan en los instantes requeridos, es preciso que el sistema de tiempo real tenga un comportamiento temporal predecible, y para ello, es preciso también que los servicios del sistema operativo sean capaces de proporcionar el nivel de servicio requerido con un tiempo de respuesta acotado. El objetivo principal del grupo de trabajo de tiempo real del POSIX es "desarrollar estándares que sean los mínimos cambios y adiciones a los estándares POSIX para soportar la portabilidad de
aplicaciones con requerimientos de tiempo real".

EJEMPLO

#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>

void *thread_function(void *arg) {
  int i;
  for ( i=0; i<20; i++ ) {
    printf("Thread says hi!\n");
    sleep(1);
  }
  return NULL;
}

int main(void) {

  pthread_t mythread;

  if ( pthread_create( &mythread, NULL, thread_function, NULL) ) {
    printf("error creating thread.");
    abort();
  }

  if ( pthread_join ( mythread, NULL ) ) {
    printf("error joining thread.");
    abort();
  }

  exit(0);

}
2. El principal objetivo de este estándar es la portabilidad de las aplicaciones a nivel de código fuente, mediante la unificación de las diferentes versiones

jueves, 22 de septiembre de 2011

NUMERO DEL EJERCICIO A ESCOGER

ESCOJO ES NUMERO 7 DE LOS EJERCICIOS

PRACTICA4

#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<errno.h>


#define NUM_HIJOS 2//
int main(void)
{
int ret,i;

    for(i=1;i<=NUM_HIJOS;i++)
    {
    ret=fork();
    if(ret==0)
    {
printf("Yosoy el hijo %d mi padre es PID: %d,Yo soy PID= %d \n\n",i,getppid(),getpid());

if(i==2){
printf("Soy el hijo 3 mi proceso es= %d ", getpid());}

}
else if(ret>0)
{
ret=wait(NULL);
while(ret>0){
ret=wait(NULL);
}
if (ret==-1 && errno != ECHILD)
{
perror("fallo en wait");
exit(EXIT_FAILURE);
}
exit(EXIT_SUCCESS);
}
else if(ret== -1){
perror("fallo el fork");
exit(EXIT_FAILURE);
}
}
}


PRACTICA 3

#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<errno.h>


#define NUM_HIJOS 3//
int main(void)
{
int ret,i;

    for(i=0;i<NUM_HIJOS;i++)
    {
    ret=fork();
    if(ret==0)
    {
printf("Yosoy el hijo %d mi padre es PID: %d,Yo soy PID= %d",i,getppid(),getpid());
}
else if(ret>0)
{
ret=wait(NULL);
while(ret>0){
ret=wait(NULL);
}
if (ret==-1 && errno != ECHILD)
{
perror("fallo en wait");
exit(EXIT_FAILURE);
}
exit(EXIT_SUCCESS);
}
else if(ret== -1){
perror("fallo el fork");
exit(EXIT_FAILURE);
}
}
}

PROGRAMA DIBUJARARBOL

#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

int main (void) {

/**ATENCIÓN: Declaración de variables del programa a probar. Es sólo un exemplo**/
    int i;
    int n = 4;
    int childpid;

/**El resto de variables son para que la presentación de los resultados por pantalla sea posible**/
 
    int a, p;
    int ret;
    FILE *fpipe;
    char comanda[50]; /*String dónde se guarda el comando a ejecutar por el 1r hijo*/
    char line[256];        
    p = getpid();

    sprintf(comanda,"pstree -n -p %d\n",getpid()); /*Concatenamos el comando pstree con el pid del padre*/

    ret = fork();

    if (ret == 0) { /*Este es el primer hijo del padre*/
        if ( !(fpipe = (FILE*)popen(comanda,"r")) ) {  /* Si el pipe falla*/
            perror("Problemas con el pipe!!!");
            exit(1);
        }
        while ( fgets( line, sizeof line, fpipe))
        {
            printf("%s", line); /*Escribimos por pantalla lo que retorna el hijo. La salida del pstree*/
        }
        pclose(fpipe);

     
    } else {
        /*El primer hijo sólo se crea para hacer un pstree y poder ver por pantalla */
        /*el árbol de procesos generado*/

        /*El código que viene a continuación, lo podéis substituir por lo que se tercie*/
        /*¡¡Las variables han de ir declaradas arriba!!!*/

     
        for (i = 1; i < n; i++) {
            if ((childpid = fork()) == -1) {
                break;
                }
            fprintf(stderr, "Este es el proceso %ld com padre %ld\n", (long)getpid(), (long)getppid());     
                    }
        sleep(1); /*Es sólo para dar tiempo a terminar a todos los hijos*/

    }
exit(0);
}



¿POR QUE APARECE MUCHAS VECES EL MENSAJES?

POR QUE SE CREAN PROCESOS PADRES A TRAVÉS DEL FORK() , LA UTILIZACIÓN DE LOS PIPES QUE PERMITEN LA COMUNICACIÓN CON EL SHELL  Y EL GETPIDD.
¿QUE OBSERVAS?

EL PAPEL IMPORTANTE DE EL FORK(), DE LOS PIPES 

¿POR QUE?

PUES  SON FUNCIONES IMPORTANTES PARA LA CREACIÓN DE LOS PROCESOS Y SU USO .





lunes, 19 de septiembre de 2011

PROGRAMA EN C

#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>

int main(int argc, char *argv[]){
int num;
pid_t pid;
for(num=0;num<3;num++){
pid=fork();
printf("Soy el proceso PID %d, y mi padre tiene %d, de PID \n",getpid(),getppid());
if(pid!=0)
break;
srandom(getpid());
sleep(random() %3);
}
if(pid!=0)
printf("fin del proceso PID %d \n", wait(NULL));
return 0;
}


¿Por que aparecen los mensajes repetidos?

Con fork() es el encargado de crear un nuevo porceso ,se  crea  una cadena de procesos de N, donde N es el parámetro de línea de comandos. Cada proceso crea un proceso hijo, imprime su propio PID y el PID de su padre,la funcion wait()  espera a su hijo a terminar llamando a la espera () función. 

El sramdon interviene inicializando  el generador de números aleatorios mediante el establecimiento de los valores de la tabla de estado sobre la base de la semilla.

Con el   getpid devuelve el identificador de proceso del proceso actual. (Esto es usado normalmente por rutinas que generan nombres únicos de ficheros temporales.) getppid devuelve el identificador de proceso del padre del proceso actual.


¿Que observas?

A la hora de ejecutar el programa desde la consola pude observar  como se crea un proceso padre y un proceso hijo uno cada diferente por cada padre e hijo y al final muestra el fin de los procesos creados.

¿Por que?

Esto se debe a la utilizacion de un ciclo, la funcion fork() y wait() que son parte importante durante la ejecucion de nuestro programa, la funcion getpid que nos muestra el identificador del proceso y el getppid el identificador del proceso padre.

domingo, 18 de septiembre de 2011

CARACTERISTICAS DEL S.O ANDROID Y CHROME

CARACTERÍSTICAS DEL SO ANDROID

Diseño de dispositivo
La plataforma es adaptable a pantallas más grandes, VGA, biblioteca de gráficos 2D, biblioteca de gráficos 3D basada en las especificaciones de la OpenGL ES 2.0 y diseño de teléfonos tradicionales.
Almacenamiento
SQLite, una base de datos liviana, que es usada para propósitos de almacenamiento de datos.
Conectividad
Android soporta las siguientes tecnologías de conectividad: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE y WiMAX.
Mensajería
SMS y MMS son formas de mensajería, incluyendo mensajería de texto y ahora la Android Cloud to Device Messaging Framework (C2DM) es parte del servicio de Push Messaging de Android.
Navegador web
El navegador web incluido en Android está basado en el motor de renderizado de código abierto WebKit, emparejado con el motor JavaScript V8 de Google Chrome. El navegador obtiene una puntuación de 93/100 en el test Acid3.
Soporte de Java
Aunque las aplicaciones son escritas en Java, no hay una Máquina Virtual de Java en la plataforma. El código Java no es ejecutado. El código Java se compila en el ejecutable Dalvik y corre en la Máquina Virtual Dalvik. Dalvik es una máquina virtual especializada, diseñada específicamente para Android y optimizada para dipositivos móviles que funcionan con batería y que tienen memoria y procesador limitados. El soporte para J2ME puede ser agregado mediante aplicaciones de terceros como el J2ME MIDP Runner.67
Soporte multimedia
Android soporta los siguientes formatos multimedia: WebM, H.263, H.264 (en 3GP o MP4), MPEG-4 SP, AMR, AMR-WB (en un contenedor 3GP), AAC, HE-AAC (en contenedores MP4 o 3GP), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF y BMP.66
Soporte para streaming
Streaming RTP/RTSP (3GPP PSS, ISMA), descarga progresiva de HTML (HTML5 <video> tag). Adobe Flash Streaming (RTMP) es soportado mediante el Adobe Flash Player. Se planea el soporte de Microsoft Smooth Streaming con el port de Silverlight a Android. Adobe Flash HTTP Dynamic Streaming estará disponible mediante una actualización de Adobe Flash Player.
Soporte para hardware adicional
Android soporta cámaras de fotos, de vídeo, pantallas táctiles, GPS, acelerómetros, giroscopios, magnetómetros, sensores de proximidad y de presión, termómetro, aceleración 2D y 3D.
Entorno de desarrollo
Incluye un emulador de dispositivos, herramientas para depuración de memoria y análisis del rendimiento del software. El entorno de desarrollo integrado es Eclipse (actualmente 3.4 o 3.5) usando el plugin de Herramientas de Desarrollo de Android.
Market
El Android Market es un catálogo de aplicaciones gratuitas o de pago en el que pueden ser descargadas e instaladas en dispositivos Android sin la necesidad de un PC.
Multi-táctil
Android tiene soporte nativo para pantallas multi-táctiles que inicialmente hicieron su aparición en dispositivos como el HTC Hero. La funcionalidad fue originalmente desactivada a nivel de kernel (posiblemente para evitar infringir patentes de otras compañías). Más tarde, Google publicó una actualización para el Nexus One y el Motorola Droid que activa el soporte para pantallas multi-táctiles de forma nativa.
Bluetooth
El soporte para A2DF y AVRCP fue agregado en la versión 1.5; el envío de archivos (OPP) y la exploración del directorio telefónico fueron agregados en la versión 2.0; y el marcado por voz junto con el envío de contactos entre teléfonos lo fueron en la versión 2.2
Videollamada
Android soporta videollamada através de Google Talk desde su versión HoneyComb.
Multitarea
Multitarea real de aplicaciones está disponible, es decir, las aplicaciones que no estén ejecutándose en primer plano reciben ciclos de reloj, a diferencia de otros sistemas de la competencia en la que la multitarea es congelada
Características basadas en voz
La búsqueda en Google a través de voz está disponible como "Entrada de Búsqueda" desde la versión inicial del sistema.
Tethering
Android soporta tethering, que permite al teléfono ser usado como un punto de acceso alámbrico o inalámbrico (todos los teléfonos desde la versión 2.2, no oficial en teléfonos con versión 1.6 o superiores mediante aplicaciones disponibles en el Android Market, por ejemplo PdaNet). Para permitir a un PC usar la conexión 3G del móvil android se podría requerir la instalación de software adicional.





CARACTERÍSTICAS DEL SO CHROME

Interfaz de usuario
Chrome OS está diseñado de una forma minimalista, debido a que su principal herramienta es el navegador web Google Chrome. De esta forma, la compañía planea mover gran parte de la interfaz de usuario desde un entorno de escritorio hacia Internet. De hecho, Google se refiere a su proyecto Chrome OS como una extensión natural del navegador Chrome. En otras declaraciones para una audiencia de desarrolladores, Google enfatiza que la web es la plataforma, destacando que las aplicaciones basadas en web funcionarán en Chrome y viceversa.
Las principales características de la interfaz de usuario son:
  • Paneles: Los paneles son pequeñas ventanas inferiores que se utilizan para diferentes tareas, tales como la descarga de archivos, navegador de archivos, mensajería instantánea en Gtalk, tomar notas, o notificadores de eventos como Google Calendar, Gmail, y actualizaciones del sistema. Los paneles también permiten ser minimizados para ocultarse, y también se pueden utilizar mientras se navega en diferentes sitios al permanecer estáticos.
  • Indicadores: Los indicadores se encuentran en la parte superior derecha, e indican procesos como la hora, batería, conexión y selector Wi-fi, y conexión 3G.
  •  Pestañas: Las pestañas son lo más utilizado en el sistema, se utilizan para abrir las aplicaciones y sitios, y permiten abrir opciones del sistema. Las pestañas también se pueden "fijar" y disminuir su tamaño para quedar ancladas en la parte superior izquierda.16
  • Lanzadores: Los lanzadores aparecen en la página principal, y son iconos grandes que se utilizan para abrir aplicaciones web, también ver los sitios más visitados, y ver los marcadores en una barra superior.
Velocidad
Uno de los puntos que más destaca Google es la velocidad del sistema, con un tiempo de arranque de 8 segundos y un tiempo apagado bastante pequeño, además de la rapidez que abre sus aplicaciones web.17
Sincronización
Todos los documentos, aplicaciones, extensiones, y configuraciones, son respaldados en línea bajo el concepto de computación en nube. Así que si el usuario pierde su máquina, puede obtener otra o acceder desde otra máquina, y obtener exactamente los mismos datos que mantenía anteriormente.
Siempre conectado
Chrome OS solamente se podrá obtener por medio de la compra directa de un notebook, y cada notebook cuenta con conexión 3G siempre en línea. La promesa de Google es que Chrome OS siempre esté conectado, no importa donde. Además, en las versiones de desarrollo de Chromium OS, ya se están probando las conexiones 4G (LTE) con otros dispositivos.
Aplicaciones Web
Chrome OS no utiliza el típico sistema de aplicaciones, las aplicaciones se utilizan dentro del navegador web Google Chrome, y pueden ser utilizadas en línea o ser instaladas para poder utilizarse sin la necesidad de una conexión a Internet. El principal medio para obtener estas aplicaciones web es la tienda en línea Chrome Web Store, la cual permite adquirir aplicaciones, extensiones y temas para el navegador Google Chrome en un solo lugar. La tienda también permite comprar aplicaciones, y que los desarrolladores publiquen sus aplicaciones basadas en lenguaje web actual.
Seguridad
También contará con una arquitectura de seguridad actualizada. Google enfatiza el hecho de que Chrome no sufrirá de virus o programas maliciosos. Debido a que muchos sistemas operativos actuales fueron diseñados en épocas en las que Internet no era predominante, Chrome se diseña teniendo muy en cuenta esto, por ende eliminando riesgos de seguridad comunes arraigados.
Los puntos más importantes con respecto a la seguridad de Chrome OS son:
  • Actualizaciones automáticas: Las aplicaciones webs instaladas, extensiones, temas, el navegador, y el sistema operativo se mantendrá al día con actualizaciones automáticas.
  • Aislamiento de procesos: Aislar procesos que puedan comprometer la seguridad del sistema, tales como Flash Player, extensiones o aplicaciones instaladas.
  • Verificación de arranque: Monitorea si el sistema ha sido manipulado por entes externos antes de que el sistema parta, y vuelve a una versión de respaldo si esto ha sucedido.
  • Cifrado de datos: Todos los datos descargados en el disco son cifrados.
  • Modo visita: Parecido a la cuenta de «invitado» presente en sistemas operativos Windows y GNU/Linux, y al modo Safari en Mac OS X Lion. En este modo el usuario puede pasar la máquina a conocidos para que utilicen una cuenta de visita sin que sus datos se vean comprometidos.
Multitáctil
Los primeros gestos multitactiles se vieron en el Chrome Notebook (Cr-48), pero con funcionamientos básicos, como scroll de página con dos dedos. Pero Google dará soporte multitáctil completo de hasta cuatro dedos en versiones estables.
Reproductor multimedia
Todo el contenido multimedia descargado, como música o videos, se podrán reproducir gracias al reproductor multmedia integrado de Chrome OS.
Impresión
Para solucionar el problema de compatibilidad de controladores de hardware de las diferentes impresoras disponibles en el mercado, Google lanza Google Cloud Print (aún en Beta). La cual permite imprimir documentos desde cualquier dispositivo y aplicación, solamente es necesario conectar la impresora a Google Cloud Print y también conectarse mediante Chrome OS para mandar la orden de impresión.

jueves, 8 de septiembre de 2011

ANTECEDENTES HISTORICOS DE LOS SISTEMAS OPERATIVOS

¿QUE ES UN SISTEMA OPERATIVO?

Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la gestión de los procesos básicos de un sistema informático, y permite la normal ejecución del resto de las operaciones.[

 
40’s

Finales de los 40: aparición de la primera generación de computadoras.

Solo había un pequeño número de computadoras.

Todo se hacía en lenguaje de maquina

No existían los sistemas operativos.

50’s

Empiezan a aparecer los sistemas operativos

        Monitor residente: funcionamiento simple

        Procesamiento por lotes: agrupar los trabajos en lotes, para que se ejecutaran de forma continua para no perder tiempo en la transición

        Almacenamiento temporal: disminuir el tiempo de carga de los programas, haciendo que la carga de un programa y la ejecución de la siguiente tarea fueran simultáneas. Para ello se utilizaban dos técnicas:

         Buffering

         Spooling

60’s

Se produjeron varios cambios con la aparición del circuito cerrado para seguir incrementando el potencial de los ordenadores

A mediados de los 60 aparece Multics (sistema operativo multiusuario) aunque luego fracasó

A finales de esta década empezó a desarrollarse UNIX

Técnicas

                    Multiprogramación: la memoria alberga mas de un programa. La CPU ejecuta las instrucciones de un programa, y si este está realizando una operación de E/S, entonces pasa a ejecutar otro programa.

                    Multiprocesador: permite trabajar con maquinas con más de un procesador.

         Tiempo compartido: sistema que hace buen uso de la electrónica disponible, pero carece de interactividad.

         Tiempo real: sistema que se usa en entornos que deben aceptar y procesar un gran número de sucesos en tiempos breves.

70’s

Llamada la década de los sistemas de propósito general

Se desarrollan tecnologías que se siguen utilizando hoy en día

Los sistemas que ya existían eran grandes, caros y ocasionaban un gran consumo de recursos

Los nuevos sistemas incorporan una amplia capa de software entre el usuario y el ordenador, para que el usuario no necesite conocer ningún detalle del circuito

Sistemas operativos desarrollados

  • MULTICS (Multiplexed Information and Computing Service): Originalmente era un proyecto cooperativo liderado por Fernando Corbató del MIT, con General Electric y los laboratorios Bell, que comenzó en los 60, pero los laboratorios Bell abandonaron en 1969 para comenzar a crear el sistema UNIX. Se desarrolló inicialmente para el mainframe GE-645, un sistema de 36 bits; después fue soportado por la serie de máquinas Honeywell 6180.

Fue uno de los primeros. Además, los traducía a instrucciones de alto nivel destinadas a BDOS.

  • BDOS (Basic Disk Operating System): Traductor de las instrucciones en llamadas a la BIOS.

El hecho de que, años después, IBM eligiera para sus PC a MS-DOS supuso su mayor fracaso, por lo que acabó desapareciendo.Desde los años 70 han cambiado los sistemas ya que la ciencia ha desarrollado nuevos conocimientos



MVS



CP/M


MULTICS




80’s

Creación de los circuitos LSI

Surgieron los menús y las interfaces gráficas, y aunque eso ralentizaba las aplicaciones, era más practico y simple para los usuarios.


Apple Macintosh

Lanzamiento en 1984. Al estar diseñado para funcionar a través de GUI (Graphic User Interface) y no con la línea de comandos como d costumbre mucha gente no se lo tomo en serio.

MSDOS

El MS-DOS( Microsoft Disk Operating System) sistema que surge a partir de una serie de modificaciones del sistema operativo QDOS, el cual compró Windows en 1981. Al llegar a la versión 7.1, el MS-DOS pasó a estar integrado en el sistema operativo de Windows

Microsoft Windows

A mediados de los años 80 se crea este sistema operativo, pero no es hasta la salida de (Windows 95) que se le puede considerar un sistema operativo, solo era una interfaz gráfica del (MS-DOS)en el cual se disponía de unos diskettes para correr los programas. Hoy en día es el sistema operativo más difundido en el ámbito doméstico aunque también hay versiones para servidores como Windows NT. (Microsoft) ha diseñado también algunas versiones para superordenadores, pero sin mucho éxito. Años después se hizo el (Windows 98) que era el más eficaz de esa época Después se crearía el sistema operativo de (Windows ME) (Windows Millenium Edition) aproximadamente entre el año 1999 y el año 2000. Un año después se crearía el sistema operativo de (Windows 2000) en ese mismo año. Después le seguiría el sistema operativo más utilizado en la actualidad, (Windows XP) y otros sistemas operativos de esta familia especializados en las empresas. Ahora el más reciente es (Windows 7) (Windows Seven) que salio al mercado el 22 de octubre del 2009, dejando atrás al (Windows Vista), que tuvo innumerables criticas durante el poco tiempo que duró en el mercado.


90’S

GNU/ LINUX

Este sistema es una versión mejorada de Unix, basado en el estándar POSIX , un sistema que en principio trabajaba en modo comandos. Hoy en día dispone de Ventanas, gracias a un servidor gráfico y a gestores de ventanas como KDE, GNOME entre muchos. Recientemente GNU/Linux dispone de un aplicativo que convierte las ventanas en un entorno 3D como por ejemplo Beryl o Compiz. Lo que permite utilizar linux de una forma visual atractiva. Existen muchas distribuciones actuales de Gnu/Linux (Debian, Fedora, Ubuntu, Slackware, etc) donde todas ellas tienen en común que ocupan el mismo núcleo Linux. Dentro de las cualidades de Gnu/Linux se puede caracterizar el hecho de que la navegacion a través de la web es sin riegos de ser afectada por virus, esto debido al sistema de permisos implementado, el cual no deja correr ninguna aplicación sin los permisos necesarios, permisos que son otorgados por el usuario. A todo esto se suma que los virus que vienen en dispositivos desmontables tampoco afectan al sistema, debido al mismo sistema de permisos.






SISTEMAS EN NUESTRA ACTUALIDAD