RSS

lunes, 21 de septiembre de 2009

1.4 ESTRUCTURA DE UN SISTEMA OPERATIVO



1.4 ESTRUCTURA DE UN SISTEMA Operativo
Examinaremos cuatro estructuras distintas que ya han sido probadas, con el fin de tener una idea más extensa de cómo esta estructurado el sistema operativo. Veremos brevemente algunas estructuras de diseños de sistemas operativos.
Estructura modular.
También llamados sistemas monolíticos. Este tipo de organización es con mucho la mas común; bien podría recibir el subtitulo de "el gran embrollo". La estructura consiste en que no existe estructura alguna. El sistema operativo se escribe como una colección de procedimientos, cada uno de los cuales puede llamar a los demás cada vez que así lo requiera. Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados y cada uno de ellos es libre de llamar a cualquier otro, si este ultimo proporciona cierto cálculo útil para el primero. Sin embargo incluso en este tipo de sistemas es posible tener al menos algo de estructura. Los servicios (llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los parámetros en lugares bien definidos, como en los registros o en la pila, para después ejecutar una instrucción especial de trampa de nombre "llamada al núcleo" o "llamada al supervisor".
Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz de línea de comandos con una interfaz gráfica del usuario. Existen muchos "shells" diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versión 5.0 incluyó un Shell llamado DOS SHELL.
Estructura por anillos concéntricos (capas).
El sistema por "capas" consiste en organizar el sistema operativo como una jerarquía de capas, cada una construida sobre la inmediata inferior. El primer sistema construido de esta manera fue el sistema THE (Technische Hogeschool Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus estudiantes.
El sistema tenia 6 capas, como se muestra en la figura 3. La capa 0 trabaja con la asignación del procesador y alterna entre los procesos cuando ocurren las interrupciones o expiran los cronómetros. Sobre la capa 0, el sistema consta de procesos secuénciales, cada uno de los cuales se podría programar sin importar que varios procesos estuvieran ejecutándose en el mismo procesador, la capa 0 proporcionaba la multiprogramación básica de la CPU.
La capa 1 realizaba la administración de la memoria. Asignaba el espacio de memoria principal para los procesos y un recipiente de palabras de 512K se utilizaba para almacenar partes de los procesos (páginas) para las que no existía lugar en la memoria principal. Por encima de la capa 1, los procesos no debían preocuparse si estaban en la memoria o en el recipiente; el software de la capa 1 se encargaba de garantizar que las páginas llegaran a la memoria cuando fueran necesarias.
La capa 2 se encargaba de la comunicación entre cada proceso y la consola del operador. Por encima de esta capa, cada proceso tiene su propia consola de operador.
La capa 3 controla los dispositivos de E/S y guarda en almacenes (buffers) los flujos de información entre ellos. Por encima de la capa 3, cada proceso puede trabajar con dispositivos exactos de E/S con propiedades adecuadas, en vez de dispositivos reales con muchas peculiaridades. La capa 4 es donde estaban los programas del usuario, estos no tenían que preocuparse por el proceso, memoria, consola o control de E/S. el proceso operador del sistema se localizaba en la capa 5
Una generalización mas avanzada del concepto de capas se presento en el sistema MULTICS. En lugar de capas, MULTICS estaba organizado como una serie de anillos concéntricos, siendo los anillos interiores los privilegiados. Cuando un procedimiento de un anillo exterior deseaba llamar a un procedimiento de un anillo interior, debió hacer el equivalente a una llamada al sistema
Mientras que el esquema de capas de THE era en realidad un apoyo al diseño, debido a que todas las partes del sistema estaban ligadas entre si en un solo programa objeto, en MULTICS, el mecanismo de anillos estaba mas presente durante el tiempo de ejecución y era reforzado por el hardware. La ventaja del mecanismo de anillos es su facilidad de extensión para estructurar subsistemas del usuario.
5
El operador
4
Programas del usuario
3
Control de entrada/salida
2
Comunicación operador-proceso
1
Administración de la memoria y del disco
0
Asignación del procesador y multiprogramación

LINEA DEL TIEMPO  GENERAL 
1940 – primeras computadoras
monousuario
manejo de consola
tarjeta perforada
1945 tubos de vacío  y tableros
1950- sistemas en batch :
proceso x lotes
monitor residente
operado distinto al usuario
multiusuario
1955
transitares y sistema de lote
1960- multiprogramación timesharing:
s.o.IBS Y S
1070-  Multiprogramadores, microprocesadores
1980- PC paralelos y sistemas, tiempo real
1990- WWW sistema Mobil:
sistema de múltiples procesadores
PCS poderosas
redes de comunicación (WWW)
sistemas  de tiempo real circuitos
sistemas de tiempo real analiticos
1992- Unix
1993 Windows NT
1995- Windows 95            
1996 – Intel Pro

viernes, 18 de septiembre de 2009

UNIDAD 1:INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS


Introducción a los Sistemas Operativos
Información General
Un Sistema Operativo (SO) es una colección organizada de rutinas o extensiones de software del hardware. Consiste en rutinas de control que hacen funcionar una computadora y proporcionan un entorno para la ejecución de los programas. Existen otros programas que se apoyan en el SO para poder acceder a los recursos que necesitan. Esto se lleva a cabo a través de llamadas sistema operativo. También el SO debe brindar una forma de que el usuario se pueda comunicar con él a través de una interfaz que le brinde una vía de comunicación con el hardware del sistema informático.
El objetivo principal del SO es lograr que el sistema informático es el lograr que el hardware de la computadora se emplee de modo eficiente, y el objetivo secundario se use de manera cómoda.
El SO debe asegurar el correcto funcionamiento del sistema informático. Para lograr esto el hardware debe brindar algún mecanismo apropiado que impida que los usuarios intervengan en el funcionamiento del sistema y así mismo el SO debe poder utilizar este recurso de hardware de modo que esto se cumpla.
El SO debe ofrecer servicios a los programas y sus usuarios para facilitar la tarea de programación.

1.1 DEFINICION OBJETIVOS FUNCION SISTEMA OPERATIVO



1.1 Definicion Objetivos Funcion Sistema Operativo

Definición de Sistema Operativo

El sistema operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etc. En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un policía de tráfico, se asegura de que los programas y usuarios que están funcionando al mismo tiempo no interfieran entre ellos. El sistema operativo también es responsable de la seguridad, asegurándose de que los usuarios no autorizados no tengan acceso al sistema. Clasificación de los Sistemas Operativos
Los sistemas operativos pueden ser clasificados de la siguiente forma:
•Multiusuario: Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo.
•Multiprocesador: soporta el abrir un mismo programa en más de una CPU.
•Multitarea: Permite que varios programas se ejecuten al mismo tiempo.
•Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo.
•Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real.
Cómo funciona un Sistema Operativo
Los sistemas operativos proporcionan una plataforma de software encima de la cual otros programas, llamados aplicaciones, puedan funcionar. Las aplicaciones se programan para que funcionen encima de un sistema operativo particular, por tanto, la elección del sistema operativo determina en gran medida las aplicaciones que puedes utilizar.
Los sistemas operativos más utilizados en los PC son DOS, OS/2, y Windows, pero hay otros que también se utilizan, como por ejemplo Linux.
Cómo se utiliza un Sistema Operativo
Un usuario normalmente interactúa con el sistema operativo a través de un sistema de comandos, por ejemplo, el sistema operativo DOS contiene comandos como copiar y pegar para copiar y pegar archivos respectivamente. Los comandos son aceptados y ejecutados por una parte del sistema operativo llamada procesador de comandos o intérprete de la línea de comandos. Las interfaces gráficas permiten que utilices los comandos señalando y pinchando en objetos que aparecen en la pantalla.
Ejemplos de Sistema Operativo
A continuación detallamos algunos ejemplos de sistemas operativos:
Familia Windows •Windows 95 •Windows 98 •Windows ME •Windows NT •Windows 2000 •Windows 2000 server •Windows XP •Windows Server 2003 •Windows CE •Windows Mobile •Windows XP 64 bits •Windows Vista (Longhorn)
Familia Macintosh •Mac OS 7 •Mac OS 8 •Mac OS 9 •Mac OS X
Familia UNIX •AIX •AMIX •GNU/Linux •GNU / Hurd •HP-UX •Irix •Minix •System V •Solaris •Unix Ware
El objetivo fundamental de los sistemas operativos
Es gestionar y administrar eficientemente los recursos hardware, permitiendo que se ejecuten concurrentemente varios programas, sin que haya conflictos en el acceso de cada uno de ellos a cada uno de los recursos que necesite, y sin que ningún programa monopolice alguno de ellos. Un sistema operativo es un programa (o conjunto de programas) de control que tiene por objeto facilitar el uso de la computadora y conseguir que ésta se utilice eficientemente. Es un programa de control, ya que se encarga de gestionar y asignar los recursos hardware que requieren los programas. Pensemos en una computadora que es utilizada desde diversos terminales por varios usuarios. Los recursos hardware son: el procesador (CPU), la memoria principal, los discos, y otros periféricos. Obviamente, si varios usuarios están utilizando la misma Computadora, debe haber alguien o algo que asigne los recursos y evite los conflictos que puedan surgir cuando dos programas requieran los mismos elementos (la misma unidad de disco, o la impresora, por ejemplo). Esta es una de las funciones del sistema operativo. Además de esta función de asignar los recursos a cada programa, el sistema operativo se encarga de contabilizar de éstos, y de la seguridad (que un usuario no pueda acceder sin autorización a la información de otro, por ejemplo).
Grafico interno de un sistema operativo de la época y en parte en la actualidad
Generación 2º: Se dan los primeros pasos de la multiprogramación es decir varios programas de usuario. El SO reparte tiempos del procesador. Aparece la llamada tecnología DMA usa buffers entre terminales: impresora, etc. ¿Qué es un buffer?: Es una fuente de almacenamiento temporal que reside en el propio dispositivo ya sea de entrada, o de salida. Aparece el termino spooding: viene a ser como lo que gestiona la cola de instrucciones en el buffer.
Mulprogramacion o multiproceso: Es la técnica que permite cargar varios programas o procesos al mismo tiempo de forma simultanea.
Cada programa o proceso ha de usar unos recursos y el SO ha de gestionar esto. Se pueden dar los llamados interbloqueos en la que 2 o mas programas estan a la espera por solicitar un dispositivo o memoria. El SO debe solucionar esto.
Batch: sirve para aprovechar tiempos muertos (noches), etc. En grandes empresas los usan para hacer copias de seguridad.
Tiempo real: Asigna de forma primaria unos tiempos si se pasa de ellos da paso al siguiente.
Seguridad: El SO debe suministrar los medios para la ejecución concurrente de los procesos, sincronizacion entre procesos, comunicación entre procesos. El SO debe suministrar algoritmos de gestion y planificación de procesos que se encarguen de decidir que proceso se ejecutara o cual tomara al procesador y de llevar cuenta de los estados y procesos, sus prioridades y todo la restante información relevante.
Estado de los procesos Activo: Ejecutándose en un instante de tiempo. En un sistema monoprocesador, solo puede haber uno. Preparado: Listos para ejecutarse. Esperando que un procesador quede libre, bloqueado o suspendido, a la espera de que se cumpla una condicion. Muerto: Ha terminado su ejecución o el sistema ha detectado un error fatal y la ha transferido ha estado nonato. Nonato: El programa existe pero todavía no es conocido por el SO.
El estado global del SO en un instante determinado, es el conjunto de recursos y procesos existentes con sus estados correspondientes
Transición entre procesos
El distribuidor: es uin modulo del SO que activa procesos preparados de acuerdo con unos criterios determinados por ejemplo: prioridad. Interrupcion: Son las llamadas del SO para solicitar servicios por ejemplo: una operación.de E/S. Planificador: Modulo del SO que translada procesos de ejecución a preparados, por ejemplo: en sistemas de tiempo compartido porque se les ajusta el tiempo. O llega uno de mayor prioridad. Paso de preparado a bloqueado: Cuando tiene lugar un evento que estuviera esperandopara poder perseguirlo

1.2 HISTORIA Y EVOLUCION DE LOS SISTEMAS OPERATIVOS




1.2 HISTORIA Y EVOLUCION DE LOS SISTEMAS OPERATIVOS




La primera computadora digital real fue diseñada por el matemático ingles Charles Babbage ( 1792 - 1871) . Aunque Babbage gasto la mayor parte de su vida y de su fortuna intentando construir su “ maquina analítica “ , nunca la hizo funcionar adecuadamente porque era un diseño puramente mecánico y la tecnología de su época no podía producir las ruedas, el engranaje, levas y otras partes mecánicas con la alta precisión que el necesitaba. Sin tener que decirlo, la maquina analítica no tuvo un sistema operativo.
La primera generacion (1945 - 1955 ) : Tubos de vacio y tableros enchufablesDespués de los esfuerzos frustrados de Babbage, se progresó poco en la construcción de computadoras digitales hasta la segunda guerra mundial, alrededor de la mitad de la década de 1940, Howard Aiken en Hardvard, Jon Von Neumann en el Instituto de Estudios Avanzados en Princeton, J. Presper Ecker y William Mauchley en la Universidad de Pennsylvania y Konrad Zuse en Alemania, entre otros, todos obtuvieron resultados óptimos en la construcción de maquinas de calculo mediante el uso de tubos de vacío.
En estos primeros días, un grupo singular de personas diseño, construyo, programo, opero y dio mantenimiento a cada maquina. Toda la programación se realizo en lenguaje de maquina absoluto. Los lenguajes de programación se desconocían ( todavía no existía el lenguaje ensamblador ). Los primeros sistemas operativos eran extraños. El modo usual de operación consistía en que el programador firmaba para tener acceso a un bloque de tiempo en la hoja de registro situada en la pared, después bajaba al cuarto de maquinas, insertaba su tablero enchufable en la computadora y pasaba las siguientes horas esperando que ninguno de los 20,000 tubos de vació se fundiera durante la ejecución de su programa.
Al inicio de la década de 1950, la rutina había mejorado un poco con la introducción de la tarjetas perforadas. Ahora era posible escribir en tarjetas y leerlos, en vez de utilizar tableros enchufables; de lo contrario el procedimiento era el mismo.
La segunda generacion (1955 - 1965 ) : Transistores y sistemas de lote
La introducción del transistor a mediados de la década de 1950 cambio la imagen radicalmente.
Estas maquinas se instalaban en cuartos de computadoras especialmente acondicionados con aire, con cuerpo de operadores profesionales para accionarlas. un programador primeramente escribiría el programa en papel ( en FORTRAN o en lenguaje Ensamblador ) y después lo perforaría en tarjetas. Después llevaría la pila de tarjetas al cuarto de introducción al sistema y la entregaría a uno de los operadores el cual iniciaba el proceso en la computadora, este proceso desperdiciaba mucho tiempo.
Dado el alto costo del equipo, no es sorprendente que las personas buscaran rápidamente maneras de reducir el tiempo perdido. La solución que generalmente se adoptaba era el sistema de lote. La idea implícita en este sistema era la de conjuntar un cajón lleno de trabajos en el cuarto de introducción al sistema y después leerlos en una cinta magnética mediante el uso de una computadora ( relativamente ) pequeña y poco costosa, como la IBM 1401.
Después de casi una hora de recolectar un lote de trabajos, la cinta se volvía a enrollar y se llevaba al cuarto de maquinas. Después el operador cargaba un programa especial ( el ancestro del sistema operativo de hoy en día ) , el cual leía el primer trabajo y lo ejecutaba, la salida se escribía en una segunda cinta, en vez de imprimirse. Después de terminar cada trabajo, el sistema operativo leía automáticamente el siguiente trabajo de la cinta, y comenzaba a ejecutarlo.
La estructura de un trabajo de entrada común arrancaba con una tarjeta $JOB , que especifica el tiempo máximo de ejecución en minutos, el numero de cuenta que se cargara y el nombre del programador. Después venia una tarjeta $FORTRAN , que indicaba al sistema operativo que debía cargar el compilador de FORTRAN . Venia seguido de un programa que debía compilarse y después de una tarjeta $LOAD, que ordenaba al sistema operativo cargar el programa objeto recién compilado, después venia la tarjeta $RUN, que indicaba al sistema operativo que debía ejecutar el programa con los datos que le seguían. Por ultimo, la tarjeta $END marcaba el final del trabajo. Los sistemas operativos comunes eran FMS ( el sistema monitor del FORTRAN ) e IBSYS, sistema operativo de IBM de la 7094.
La tercera generacion (1965 - 1980 ) : Circuitos integrados ( CI ) y multiprogramacion
Al inicio de la década de 1960 muchos fabricantes de computadoras tenían dos líneas de trabajo distintas y totalmente incompatibles. Por un lado existían las computadoras científicas de grande escala orientadas a las palabras, como la 7094, que se utilizaban para realizar cálculos numéricos de ciencias e ingeniería. Por el otro lado estaban las computadoras comerciales orientadas a los caracteres, como 1401, que se utilizaban para el ordenamiento de cintas e impresión por parte de bancos y compañías de seguros.
El desarrollo y mantenimiento de dos líneas de productos diferentes era una proposición costosa para los fabricantes. Además, muchos nuevos compradores de computadoras necesitaban una maquina pequeña, pero después se expandían y querían una maquina de mayor tamaño que ejecutara todos sus programas antiguos, pero con mayor velocidad.
IBM intento resolver estos dos problemas de un solo golpe introduciendo en el mercado el Sistema/360. El 360 era una serie de maquinas compatibles con el software que variaban del tamaño de la 1401 a una mucho mas poderosa que la 7094, el 360 estaba diseñado para realizar cálculos tanto científicos como comerciales. Por lo tanto una sola familia de maquinas podía satisfacer las necesidades de todos los clientes.
El sistema 360 fue la primera línea importante de computadoras que utilizo circuitos integrados ( CI ), con lo cual ofreció una mayor ventaja de precio/rendimiento sobre las maquinas de la segunda generación.
La intención era que todo el software, como el sistema operativo, tenían que funcionar en todos los modelos. Tenia que correr en sistemas pequeños, y en sistemas muy grandes. Tenia que funcionar adecuadamente en sistemas con algunos periféricos y en sistemas con muchos periféricos.
No había manera de que IBM escribiera una pieza de software que cumpliera todos esos requisitos conflictivos. El resultado fue un sistema operativo enorme y extraordinariamente complejo. Constaba de millones de líneas de lenguaje ensamblador escritas por miles de programadores, y contenía miles y miles de errores ocultos.
A pesar de tamaño y problemas enormes , OS/360 y los sistemas operativos similares de la tercera generación satisfacían a muchos de sus clientes razonablemente bien, También popularizaron varias técnicas importantes ausentes en los sistemas operativos de la segunda generación. La mas importante de estas fue la multiprogramación. Cuando el trabajo corriente se detenía para esperara a que se completara una operación en cinta u otra operación de E/S, la unidad central de procesamiento ( CPU ) simplemente permanecía ociosa hasta que terminara la operación de E/S . La solución que evoluciono consistía en partir la memoria en varias partes, con trabajo diferente en cada partición. Mientras que un trabajo esperaba a que se completara la E/S, otro trabajo podía estar utilizando la CPU. Si se podían mantener suficientes trabajos en la memoria central al mismo tiempo, la CPU podía mantenerse ocupada casi el 100% del tiempo.
Otra caracteristica de importancia en los sistemas operativos de la tercera generación era la capacidad de leer trabajos de tarjetas contenidas en el disco tan pronto como se llevaban al cuarto de computación. Siempre que se terminaba un trabajo, el sistema operativo podía cargar uno nuevo del disco en la partición no vacía y ejecutarlo, esta técnica se denomina manejo por cola de impresión.
Los sistemas operativos de la tercera generación seguían siendo básicamente sistemas de lote. Con los sistemas operativos de la tercera generación, el tiempo entre la entrega de un trabajo y la devolución de la salida comprendía a menudo varias horas.
El deseo de obtener un tiempo de respuesta corto marco el camino para el tiempo compartido, variante de la multiprogramación, en la cual cada usuario tiene una terminal en línea. En un sistema de tiempo compartido si hay 20 usuarios dentro del sistema y 17 de ellos están pensando o platicando o bien tomando café, la CPU puede distribuirse en turno para los tres trabajos que necesitan servicio.
Aunque el primer sistema de tiempo compartido ( CTSS ) serio fue creado en MIT en una unidad 7094 especialmente modificada, no se volvió popular sino hasta que el hardware de protección necesario se disemino durante la tercera generación.
Después del éxito del sistema CTSS, MIT, Bell laboratories y General electric decidieron embarcarse en el desarrollo de la “ computadora de servicio publico “. conocido como MULTICS ( Multiplexed information and computing service, información multicanalizada y servicio de computación ) . Para resumir una larga historia, MULTICS introdujo muchas ideas originales en la literatura de computación, pero su construcción era mas difícil de lo que nadie había sospechado. MULTICS tuvo enorme influencia sobre otros sistemas subsiguientes.
Otro avance durante la tercera generación fue el crecimiento de las minicomputadoras, comenzando con DEC PDP-1 en 1961. Uno de los científicos que había trabajado en el proyecto MULTICS, Ken Thompson, hallo después una pequeña PDP-7 y empezó a escribir después una versión desguarnecida de MULTICS para un usuario. Este sistema se llamo “UNICS” ( Uniplexed information and computing service, información unicanalizada y servicio de computación ), pero su ortografía cambio mas tarde por UNIX. UNIX se ha desplazado a mas computadoras que ningún otro sistema operativo de la historia y su uso sigue aumentando rápidamente.
La cuarta generacion (1980 - 1990 ) : Computadoras personales
Con la creación de los circuitos integrados LSI ( integración a grande escala ) , chips que contiene miles de transistores en un centímetro cuadrado de silicon, la era de computadora personal vio sus inicios.
Dos sistemas operativos han dominado la escena de la computadora personal: MS-DOS, escrito por Microsoft, Inc., para la IBM PC y otras computadoras que utilizan la CPU Intel 8088 y sus sucesores. y UNIX, que domina en las computadoras personales mayores que hacen uso de CPU Motorola 68000.
Aunque la versión inicial de MS-DOS era relativamente primitiva, versiones subsiguientes han incluido mas y mas características de UNIX, lo que no es totalmente sorprendente dado que Microsoft es un proveedor importante de UNIX, que usa el nombre comercial de XENIX.
Un avance importante que empezó a tomar su sitio a mediados de la década de 1980 es el desarrollo de redes de computadoras personales que corren sistemas operativos en red y sistemas operativos distribuidos. En un sistema operativo en red, los usuarios tienen conocimiento de la existencia de múltiples computadoras y pueden ingresar en maquinas remotas y reproducir archivos de una maquina a la otra. Cada maquina ejecuta su sistema operativo local y tiene un usuario propio ( o usuarios).
Un sistema distribuido, es aquel que se presenta ante sus usuarios como un sistema uniprocesador tradicional, aunque en realidad este compuesto de múltiples procesadores. En un sistema distribuido real, los usuarios no tienen conocimiento de donde se están ejecutando sus programas o de donde están ubicados sus archivos; todo esto se debe manejar en forma automática y eficiente por medio del sistema operativo.
Los sistemas operativos en red no son fundamentalmente diferentes de los sistemas operativos uniprocesadores. Sin duda necesitan un controlador de interfaz en red y algún software de bajo nivel para impulsarlo, así como programas para lograr un ingreso remoto al sistema y un acceso remoto del archivo .
Los sistemas operativos distribuidos reales requieren mas que simplemente agregar un poco de código a un sistema operativo uniprocesador, ya que los sistemas operativos distribuidos y centralizados difieren de manera decisiva.
Historia de Minix
Cuando UNIX era joven ( versión 6 ), el código fuente se encontraba en todas partes, con autorización de AT&T, y se estudiaba frecuentemente, John Lions, llego a escribir un pequeño folleto que describía su operación, línea por línea, este folleto se utilizo como libro de texto en muchos cursos universitarios.
Cuando AT&T entrego la versión 7, empezó a comprender que UNIX era un valioso producto comercial, así que emitió la versión 7 con una licencia que prohibía el estudio del código fuente en cursos con el objeto de evitar poner en peligro su condición como secreto comercial, muchas universidades se quejaron simplemente descartando el estudio de UNIX y enseñando solo teoría.
Por desgracia, el solo enseñar teoría deja al estudiante con una visión desproporcionada de lo que en realidad es un sistema operativo. Para remediar esta situación, decidí escribir un nuevo sistema operativo que seria compatible con UNIX desde el punto de vista del usuario, pero completamente diferente en el interior. El nombre MINIX surge de mini-UNIX porque es lo suficientemente pequeño que hasta alguien que no sea maestro puede entender la forma en que trabaja.
MINIX tiene otra ventaja sobre UNIX, se escribió una década después que UNIX y se ha estructurado en forma mas modular. El sistema de archivo de MINIX , por ejemplo, no es parte del sistema operativo en absoluto, pero corre como un programa de usuario. Otra diferencia es que UNIX se diseño para ser eficiente; MINIX se diseño para ser legible, el código de MINIX, por ejemplo , tiene mas de 3000 comentarios en él. MINIX se ha diseñado para ser compatible con la versión 7 de UNIX. AL igual que UNIX, MINIX se escribe en lenguaje de programación C. La implementacion inicial se hizo en la IBM PC, MINIX no requiere un disco duro para correr, con lo cual se ajusta a los presupuestos de muchos estudiantes.

1.3 SUBSISTEMAS DE UN S.O

1.3 SubsistemaS DE UN S.O
Un subsistema es un sistema que se ejecuta sobre un sistema operativo, este puede ser un shell (intérprete de comandos) del sistema operativo primario o puede ser una máquina virtual.
Gestión de archivos
El navegador Nautilus, además de visualizar los archivos y carpetas, también permite manipularlos. Con el gestor de archivos puede realizarse las tareas más habituales, como copiar, mover, borrar y renombrar tanto archivos como carpetas.
Estas acciones se van a poder llevar a cabo de diferentes maneras, ya sea con el menú contextual, con atajos de teclado, desde la barra de menús o, en algunos casos, arrastrando directamente con el ratón.


LOS DISPOSITIVOS DE ENTRADA/SALIDA:


Son aquellos que permiten la comunicación entre la computadora y el usuario.




DISPOSITIVOS DE ENTRADA:


Son aquellos que sirven para introducir datos a la computadora para su proceso. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria central o interna. Los dispositivos de entrada convierten la información en señales eléctricas que se almacenan en la memoria central.


Los dispositivos de entrada típicos son los teclados, otros son: lápices ópticos, palancas de mando (joystick), CD-ROM, discos compactos (CD), etc. Hoy en día es muy frecuente que el usuario utilice un dispositivo de entrada llamado ratón que mueve un puntero electrónico sobre una pantalla que facilita la interacción usuario-máquina.




DISPOSITIVOS DE SALIDA:


Son los que permiten representar los resultados (salida) del proceso de datos. El dispositivo de salida típico es la pantalla o monitor. Otros dispositivos de salida son: impresoras (imprimen resultados en papel), trazadores gráficos (plotters), bocinas, entre otros...


Gestion de procesos
1) Memoria virtual
Es un pregunta con trampa puesto que no se te indica el SO con el que estas trabajando, si siquiera el Procesador.
La unica forma de utiizar mas instrucciones de las que nos permite un SO es la memoria virtual y la paguinacion con esta.
Digo que es una pregunta con trampa ya que si estas trabajando con un procesador que disponga de flags este seria capaz de trabajar con mas de una instruccion a la vez, pero aun asi te dicen que has introducido mas instruciones de las que son admitidas, asi que la respuesta correcta es utilizacion de la Memoria Virtual y su paginacion.


2)Semaforos
Eso depende mucho de los semaforos y de si se esta trabajando con los mismos datos o no.
Teoria del puente y los dos coches por un puente que solo puede pasar un coche llegan dos coches al mismo tiempo, pueden ocurrir las siquientes cosas,
que los dos utilicen el puente y se niegen su uso mutuamente
que uno use el puente y no termine de pasar nunca y por lo tanto no deje el uso del puente al otro.
Pues con los datos pasa parecido, en este caso supongamos que los datos que estan leyendo y modificando sean del mismo cliente pues puede pasar lo siquiente, esto depende mucho de su nivel de semaforos claro. Pero voy a asumir que se esta relizando operaciones en las cuales no se reliza todo el trabajo hasta que no se ha confirmado todo el proceso.
Y que existen las siguientes tablas cliente, cuenta, movimientos.
como uno de ellos esta modificando la tabla movimimientos y el otro consulta la tabla cuenta, pos no pasaria gran cosa. Ahora supongamos que el que esta comprobando la cuenta este sacando un estracto de la misma, entonces lo que podria pasar es que en este estracto no figurarian los datos que ha introducido el otro operario. Imajinemos que los dos estan introduciendo datos en la misma cuenta del mismo cliente, pos podria pasar una de estas cosas:1 que uno de los dos realice bien la actualizacion y el otro no, es mas el otro se veria obligado a empezar del des el principio en la mayoria de los casos.2 Que los dos se excluyan mutuamente. También tienes que tener en cuenta que existen programas o mejor dicho bases de datos que no se conformar con bloquear un solo registro, sino que bloquean toda la tabla o parte de ella y existen tambien los motores d bases de datos qeu bloquean toda la tabla y las tablas relacionadas con esta (si este fuese el ultimo caso fuera lo que fuera que estubiesen haciendo los dos operarios o solo solo lo conseguiria hacer uno o ninguno de los dos)


3)Herramientas de sistema
test de memoria,
test de discos duros,
test de dma,
test de red (Who is, Whoiam, ping).No puedo darte mucha informacion sobre estas herramientas yo que tu buscaria un libro sobre SO y miraria comprobaciones prebias hastes de lanzar un SO


4)No entiendo muy bien la pregunta puesto que concurrencia significa hacer varias cosas al mismo tiempo y como el coracon y el celebro estan siempre trabajando. Yo creo que cualquier ser humano esta haciendo un monton de cosas al mismo tiempo y la mayoria de veces ni se da cuenta.


5)lipo, fifo, etc mirar las flags del SO, la memoria virtual y la distribucion de la carga del so en tareas mas pequeñas.

1.5 ANALISIS DE LOS SITEMAS OPERATIVOS COMERCIALES


1.5 ANALISIS DE LOS SITEMAS OPERATIVOS COMERCIALES


LINUX:

ANTECEDENTES:Linux fue creado originalmente por Linus Benedict Torvalds en la Universidad de Helsinki en Finlandia.

Este ha sido desarrollado con la ayuda de muchos programadores a través de Internet. Linus originalmente inició el hacking del núcleo como su proyecto favorito, inspirado por su interés en MINIX, un pequeño sistema Unís. El se propuso a crear lo que en sus propias palabras seria un mejor Minix que el Minix.

El 5 de octubre de 1991, Linus anunció su primera versión “oficial” de linux, versión 0.02. Desde entonces, muchos programadoras han respondido a su llamado, y han ayudado a construir Linux como el sistema operativo completamente funcional que es hoy.
La ultima versión estable es la versión 2.2, que soporta muchos más periféricos, desde procesadores hasta joysticks, sintonizadores de televisión, CD ROMs no ATAPI y reconoce buena cantidad de tarjetas de sonido. Incluye también soporte para tipos de archivos para Macintosh HFS, Unix UFS y en modo de lectura, HPFS de OS/2 y NTFS, de NT.
Estructura Básica - El Shell
El shell proporciona una interfaz entre el núcleo y el usuario. Se puede describir como un intérprete: interpreta las órdenes que introduce el usuario y las envía al núcleo. La interfaz del shell es muy sencilla. Normalmente consiste en un inductor desde el que se teclea una orden y después se pulsa enter. En cierta forma, se está tecleando una orden en una línea. A menudo, esta línea se conoce como la línea de órdenes.Como una alternativa a la interfaz de la línea de órdenes, Linux proporciona una interfaz gráfica de usuario(GUI) llamada X-Windows, que cuenta con varios administradores de ventanas que puede utilizar. Dos de los administradores de ventanas más populares son el Free Virtual Window Manager (fvwm) y el Open Look Window Manager (olwm).Aunque un administrador de ventanas constituye una interfaz flexible y vistosa, hay que tener presente que tan solo es un añadido al shell. El administrador de ventanas simplemente le pasa al shell las órdenes que recibe, éste las interpreta y las envía de nuevo al núcleo, para ser ejecutadas.A lo largo de los años se han hido desarrollando varios tipos de diferentes de shell. En la actualidad, hay tres shells principales: Bourne, Korn y C-shell. El shell Bourne fue desarrollado en el Laboratorio Bell para el sistemaV. El C-shell fue desarrollado para la versión BSD del Unix. El shell Korn es una mejora y ampliación del shell Bourne. Linux usa versiones mejoradas o de dominio público de estos shells: el shell Bourne Again, el TC-shell y el shell Korn. Una ves que inicie su sistema Linux, se encontrará en el shell Bourne Again; donde se podrá acceder a los demás.
ARCHIVOS QUE MANEJA
/ Raíz del sistema de archivos/dev Contiene ficheros del sistema que representan los dispositivos/etc Contiene archivos de configuración del sistema y los servicios/home Es la carpeta donde se almacenan los archivos de los usuarios/lib Tiene librerías/mnt Es una carpeta para montar otros recursos, como un cdrom por ejemplo/proc Tiene archivos que reciben o envían información al kernel del sistema/usr Aquí se encuentran los programas/usr/bin Programas de uso general/usr/sbin Programas de uso administrativo (solo los puede correr el usuario root)/var Carpeta que contiene entre otras cosas, archivos de log/tmp Carpeta de uso temporal (se borra al reiniciar)

WINDOWS

ANTECEDENTES: En 1985 Microsoft publicó la primera versión de Windows, una interfaz gráfica de usuario (GUI) para su propio sistema operativo (MS-DOS) que había sido incluido en el IBM PC y ordenadores compatibles desde 1981.Creado por Bill Gates.

ESTRUCTURA: Windows NT es un sistema operativo que ayuda a organizar la forma de trabajar a diario con la PC. Las letras NT significan Nueva Tecnología. Fue diseñado para uso de compañías grandes, por lo tanto realiza muy bien algunas tareas tales como la protección por contraseñas. Windows actúa como su ejecutivo personal, personal de archivo, mensajeros, guardias de seguridad, asistentes administrativos y mantenimiento de tiempo completo. Lo que Windows NT no hace bien son los juegos y la multimedia, ya que no ha sido creado para tales usos.

TIPOS DE ARCHIVOS QUE MANEJA:
Doc – fichero de proceso Word. Lo abre Wordpad o Word.
Txt – Fichero de texto. Lo abre Notepad o un editor de texto como Word.
Pdf – Para lectura de documentos. Lo abre software de Adobe.
Jpg – Para gráficos y fotos. Lo abre el navegador o programas de gráficos.
Gif – Para gráficos y fotos. Lo abre el navegador o programas de gráficos.
Bmp – Gráficos. Abierto por Saint o programas gráficos.
Exe – Fichero ejecutable. Para ejecutar programas.
Dll – Librería de enlaces dinámica. Usado por software para diferentes funciones.
Avi – Clip de video. Lo abre Windows Media Player y otros programas multimedia.
Wav – Archivo de sonido. Lo abre Windows Media Player y otros programas multimedia.
MP3 – archivo de sonido. Lo abren varios programas de música.
Html – Para páginas Web. Los abren los navegadores.


Pareciera mentira pero podríamos decir que el Unix nació a causa de un juego el “Space Travel” desarrollado por Ken Thompson . Este juego corría bajo MULTICS pero los resultados eran insatisfactorios.




Transcurría el año 1969 y Thompson encontró una computadora chica donde correrlo, la PDP-7 al cual proveía un buen manejo de gráficos.


Una vez transportado el programa necesitó mejorar el ambiente (environment) de desarrollo y fue así como creó junto con Dennis Ritchie, un nuevo sistema operativo (S.O) para esa máquina; donde incluyeron un sistema de archivos, un subsistema de procesos y un pequeño conjunto de utilitarios. A este nuevo sistema se le dio el nombre de Unix.


En 1971 este sistema fue portado a una PDP-11 (ocupaba 16 K para el sistema, 8 K para programas de usuario y 512 K en disco), que eran más avanzados que el obsoleto PDP-7. Estos sistemas fueron los dominantes en el mundo de los minicomputadores en la década de los 70.
ESTRUCTURA: estructura de Unix se amolda a un típico modelo de capas, de forma que cada capa únicamente puede comunicarse con las capas que se hallan en los niveles inmediatamente inferior y superior.


El núcleo (kernel) del sistema interactúa directamente con el hardware y proporciona una serie de servicios comunes a los programas de las capas superiores, de forma que las peculiaridades del hardware permanecen ocultas. Como los programas son independientes del hardware, es fácil mover programas entre sistemas Unix que se ejecutan en hardware diferente.






KERNEL: es el núcleo del sistema, realiza funciones directamente relacionadas con el hardware. No se relaciona con el usuario. Permanece oculto. Está formada por dos partes importantes:


Administración de procesos: asigna y administra los recursos de la computadora, controla la ejecución de los procesos, planifica el tiempo de los procesos que corren a la vez y determina los privilegios de cada uno.
Administración de dispositivos: supervisa la transferencia de datos entre la memoria principal y los periféricos (discos, cintas, impresoras, terminales, etc.)


La ejecución de un proceso en UNIX se divide en dos niveles: nivel usuario y nivel kernel. Cuando se produce una llamada al sistema se pasa del modo usuario al modo kernel. Éste analiza la llamada, la ejecuta y devuelve el control a modo usuario. Esta diferenciación de modo se produce porque los procesos en modo usuario pueden acceder a sus instrucciones y datos, pero no a instrucciones y datos del kernel o de otros usuarios; mientras que el modo kernel puede acceder a todos los datos e instrucciones del sistema. Hay instrucciones privilegiadas a las que sólo se puede acceder en modo kernel, el cual reside permanentemente en memoria.


TIPOS DE ARCHIVOS QUE MANEJA: pwd
Muestra por pantalla el nombre de camino completo del directorio actual


cd [directorio]
Cambia el directorio de trabajo. Si no especifica ningún parámetro, establece como directorio de trabajo el directorio de conexión (directorio home) del usuario.


ls [-aAcCdfFgilLqrRstu1] [fichero(s)]
Muestra el contenido de un directorio. Algunas de las opciones más comunes son:


· F: Si el fichero es ejecutable o un directorio muestra un asterisco( *) o una barra ( /) detrás del nombre, respectivamente.
· R: Listado recursivo. Lista ficheros y subdirectorios.
· a: Lista todas las entradas. Normalmente, los ficheros que empiezan por punto ( .) no se muestran.
· l: Listado en formato largo. Muestra el modo, número de enlaces, propietario, tamaño en bytes y tiempo de última modificación de cada fichero.


mkdir [-p] directorio
Crea un directorio. La opción -p permite que los directorios padres que falten sean creados.


rmdir directorio
Borra un directorio, siempre y cuando esté vacío.



Ordenes para el manejo de ficheros

cat [-benstuv] [fichero(s)]

Lee cada fichero especificado como parámetro y muestra sus contenidos por pantalla. Si no se introduce ningún fichero como parámetro, lee de la entrada estándar.



cp [-ip] fichero1 fichero2
cp -rR [-ip] directorio1 directorio2
cp [-iprR] fichero(s) directorio
Copia el contenido de fichero1 en fichero2. El segundo modo permite copiar recursivamente directorio1, junto con sus ficheros y subdirectorios, a directorio2. Si éste último no existe, se crea. Si existe, se realiza una copia de directorio1 dentro de directorio2 (será un subdirectorio). Con el tercer modo, cada fichero se copia en el directorio indicado. Las opciones - r y - R indican comportamiento recursivo.


rm [-fir] fichero(s)
Borra ficheros y directorios. La opción -r indica comportamiento recursivo y se emplea para borrar directorios.


mv [-fi] fichero1 fichero2
mv [-fi] directorio1 directorio2
mv [-fi] fichero(s) directorio
Mueve ficheros y directorios dentro del sistema de ficheros. Equivale a renombrar un fichero o directorio.


ln [-fs] fichero [enlace]
ln [-fs] camino directorio
Crea una nombre adicional, llamado enlace, a un fichero. Un fichero puede tener varios enlaces.


find lista_de_directorios expresion_de_busqueda
Busca ficheros recursivamente a partir de los directorios señalados en lista_de_caminos, buscando aquellos ficheros que safisfacen una expresión_de_búsqueda. No se siguen los enlaces simbólicos hacia otros ficheros o directorios.
La expresión de búsqueda consta de una o más expresiones primarias, cada una de las cuales describe una propiedad de un fichero, aunque algunas indican una acción a tomar. Las expresiones primarias se pueden combinar mediante los operadores lógicos ! (NOT), -a (AND, que se asume por defecto) y –o (OR).






jueves, 10 de septiembre de 2009

LINEA DEL TIEMPO DE LOS SISTEMAS OPERATIVOS !!!




EVOLUCION DE LOS SISTEMAS OPERATIVOS




EVOLUCION DE LOS SISTEMAS OPERATIVOS


Los Sistemas Operativos, al igual que el Hardware de los computadores, han sufrido una serie de cambios revolucionarios llamados generaciones. En el caso del Hardware, las generaciones han sido marcadas por grandes avances en los componentes utilizados, pasando de válvulas ( primera generación ) a transistores ( segunda generación ), a circuitos integrados ( tercera generación), a circuitos integrados de gran y muy gran escala (cuarta generación). Cada generación Sucesiva de hardware ha ido acompañada de reducciones substanciales en los costos, tamaño, emisión de calor y consumo de energía, y por incrementos notables en velocidad y capacidad.

GENERACION CERO (DECADA DE 1940)


Generación Cero (década de 1940)
Los primeros sistemas computacionales no poseían sistemas operativos. Los usuarios tenían completo acceso al lenguajede la maquina. Todas las instrucciones eran codificadas a mano.

PRIMERA GENERACION (DECADA 1950)


Primera Generación (década 1950)
Tubos de vacío y tableros enchufables(Finales de la década de los 50's)En esta década aparecen los sistemas de procesamiento por lotes, donde los trabajos se reunían por grupos o lotes. Cuando se ejecutaba alguna tarea, ésta tenía control total de la máquina. Al terminar cada tarea, el control era devuelto al sistema operativo, el cual limpiaba, leía e iniciaba la siguiente tarea. Aparece el concepto de nombres de archivo del sistema para lograr independencia de información. Los laboratorios de investigación de General Motors poseen el crédito de haber sido los primeros en poner en operación un sistema operativo para su IBM 701.Después de los esfuerzos frustrados de Babbage, se progresó poco en la construcción de computadoras digitales hasta la segunda guerra mundial, alrededor de la mitad de la década de 1940, Howard Aiken en Harvard, Jon Von Neumann en el Instituto de Estudios Avanzados en Princeton, J. Presper Ecker y William Mauchley en la Universidad de Pensilvania y Konrad Zuse en Alemania, entre otros, todos obtuvieron resultados óptimos en la construcción de maquinas de calculo mediante el uso de tubos de vacío. En estos primeros días, un grupo singular de personas diseño, construyo, programo, opero y dio mantenimiento a cada maquina. Toda la programación se realizo en lenguaje de maquina absoluto. Los lenguajes de programación se desconocían ( todavía no existía el lenguaje ensamblador ). Los primeros sistemas operativos eran extraños. El modo usual de operación consistía en que el programador firmaba para tener acceso a un bloque de tiempo en la hoja de registro situada en la pared, después bajaba al cuarto de maquinas, insertaba su tablero enchufable en la computadora y pasaba las siguientes horas esperando que ninguno de los 20,000 tubos de vació se fundiera durante la ejecución de su programa. Al inicio de la década de 1950, la rutina había mejorado un poco con la introducción de la tarjetas perforadas. Ahora era posible escribir en tarjetas y leerlos, en vez de utilizar tableros enchufables; de lo contrario el procedimiento era el mismo.Además el laboratorio de investigación General Motors implementó el primer sistema operativo para la IBM 701. Los sistemas de los 50's generalmente ejecutaban una sola tarea, y la transición entre tareas se suavizaba para lograr la máxima utilización del sistema. Esto se conoce como sistemas de procesamiento por lotes de un sólo flujo, ya que los programas y los datos eran sometidos en grupos o lotes.
La introducción del transistor a mediados de los 50's cambió la imagen radicalmente.
Se crearon máquinas suficientemente confiables las cuales se instalaban en lugares especialmente acondicionados, aunque sólo las grandes universidades y las grandes corporaciones o bien las oficinas del gobiernose podían dar el lujo de tenerlas.
Para poder correr un trabajo (programa), tenían que escribirlo en papel (en Fortran o en lenguaje ensamblador) y después se perforaría en tarjetas. Enseguida se llevaría la pila de tarjetas al cuarto de introducción al sistema y la entregaría a uno de los operadores. Cuando la computadora terminara el trabajo, un operador se dirigiría a la impresora y desprendería la salida y la llevaría al cuarto de salida, para que la recogiera el programador.

SEGUNDA GENERACION (A MITAD DE LA DECADA DE 1960)


Segunda Generacion (a mitad de la década de 1960)
La característica de los sistemas operativos fue el desarrollo de los sistemas compartidos con multiprogramación, y los principios del multiprocesamiento. En los sistemas de multiprogramación, varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rápidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la maquina.La independencia de dispositivos aparece después. Un usuario que desea escribir datos en una cinta en sistemas de la primera generación tenia que hacer referencia especifica a una unidad de cinta particular. En la segunda generación, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto número de pistas y cierta densidad.Se desarrollo sistemas compartidos, en la que los usuarios podían acoplarse directamente con la computadora través de terminales. Surgieron sistemas de tiempo real, en que los computadores fueron utilizados en el control de procesos industriales. Los sistemas de tiempo real se caracterizan por proveer una respuesta inmediata.

TERCERA GENERACION (1960-1970)


Tercera Generacion (mitad de década 1960 a mitad década de 1970)
Se inicia en 1964, con la introducción de la familia de computadores Sistema/360 de IBM. Los computadores de esta generación fueron diseñados como sistemas para usos generales . Casi siempre eran sistemas grandes, voluminosos, con el propósito de serlo todo para toda la gente. Eran sistemas de modos múltiples, algunos de ellos soportaban simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se había construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho después de lo que el planificador marcaba como fecha de terminación. Estos sistemas introdujeron mayor complejidad a los ambientes computacionales; una complejidad a la cual, en un principio, no estaban acostumbrados los usuarios.

CUARTA GENERACION (MITAD DE DECADA 1970 EN ADELANTE)


Cuarta Generacion (mitad de década de 1970 en adelante)
Los sistemas de la cuarta generación constituyen el estado actual de la tecnología. Muchos diseñadores y usuarios se sienten aun incómodos, después de sus experiencias con los sistemas operativos de la tercera generación.
Con la ampliación del uso de redes de computadores y del procesamiento en línea los usuarios obtienen acceso a computadores alejados geográficamente a través de varios tipos de terminales.
Los sistemas de seguridad se ha incrementado mucho ahora que la información pasa a través de varios tipos vulnerables de líneas de comunicación. La clave de cifrado esta recibiendo mucha atención; han sido necesario codificar los datos personales o de gran intimidad para que; aun si los datos son expuestos, no sean de utilidad a nadie mas que a los receptores adecuados.
El porcentaje de la población que tiene acceso a un computador en la década de los ochenta es mucho mayor que nunca y aumenta rápidamente.
El concepto de maquinas virtuales es utilizado. El usuario ya no se encuentra interesado en los detalles físicos de; sistema de computación que esta siendo accedida. En su lugar, el usuario ve un panorama llamado maquina virtual creado por el sistema operativo.
Los sistemas de bases de datos han adquirido gran importancia. Nuestro mundo es una sociedad orientada hacia la información, y el trabajo de las bases de datos es hacer que esta información sea conveniente accesible de una manera controlada para aquellos que tienen derechos de acceso.

miércoles, 9 de septiembre de 2009

linea del tiempo