hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
19 de Noviembre de 2008, 03:25:51
Noticias: Privacidad - ¿Necesitas que se depure cierta informacion en nuestro portal?
Para ver este enlace Registrate o Inicia Sesion
> leer aqui

+  Foros pOrtal Hacker
|-+  Temas de Interés
| |-+  Sistemas Operativos (Moderador: WaesWaes)
| | |-+  Comprendiendo un SO ---> construccion
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: 1 2 [3] 4 Ir Abajo Imprimir
Autor Tema: Comprendiendo un SO ---> construccion  (Leído 2638 veces)
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #30 : 02 de Agosto de 2008, 07:46:16 »

Usuarios

Un usuario es una persona autorizada para utilizar un sistema informático. El usuario se autentica mediante su nombre de cuenta y su contraseña.

En realidad, el sistema operativo no asocia el concepto de usuario con el de persona física sino con un nombre de cuenta. Una persona puede tener más de una cuenta y una cuenta puede ser utilizada por más de una persona. Internamente, el sistema operativo asigna a cada usuario (cuenta)un identificador «uid» (user identifier) y un perfil.
El sistema de seguridad de los sistemas operativos está basado en la entidad usuario. Cada usuario tiene asociados unos derechos, que definen las operaciones que le son permitidas.
Existe un usuario privilegiado, denominado súperusuario o root, que no tiene ninguna restricción, es decir, que puede hacer todas las operaciones sin ninguna traba. La figura súperusuario es necesaria para poder administrar el sistema.

Los usuarios se organizan en grupos (p. ej.: en una universidad se puede crear un grupo para los alumnos de cada curso y otro para los profesores). Todo usuario debe pertenecer a un grupo. Los grupos también se emplean en la protección del sistema, puesto que los derechos de un usuario son los suyos propios más los del grupo al que pertenezca. Por ejemplo, UNIX asigna un identificador «gid» (group identtfier) a cada grupo.

Fuente: Sistemas operativos ona vision aplicada, adaptado por mi.
« Última modificación: 05 de Agosto de 2008, 02:24:12 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #31 : 02 de Agosto de 2008, 07:46:33 »

Historia de los SO's

Para intentar comprender los requisitos basicos de un SO y el significado de las caracteristica s principales de un sistema operativo contemporaneo, resulta util considerar como han evolucionado los sistemas operativos a los largo de los años.

¿Porque deben evolucionar en el tiempo los SO?

Actualizacione s del hardware y nuevos tipos de hardware: Las mejoras introducidas en los componentes hardware del computador deben tener soporte en el sistema operativo. Un ejemplo es el aprovechamient o del sistema operativo del hardware de paginacion que acompaña a la memoria de algunos sistemas informaticos.

Nuevos servicios: Como respuesta a nuevas necesidades, el sistema operativo ampliara su oferta de servicios para añadir nuevas medidas y herramientas de control.

Correcciones: El sistema operativo tiene fallos que se descubriran con el curso del tiempo y que es necesario corregir.

La necesidad de hacer cambios en un SO de forma regular introduce ciertos requisitos en el diseño. Una afirmacion obvia es que el sistema debe tener una construccion modular, con interfaces bien definidas entre los modulos y debe estar bien documentado.
« Última modificación: 05 de Agosto de 2008, 01:40:53 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #32 : 02 de Agosto de 2008, 07:46:54 »

Proceso en serie, primera generacion (1945-1955)

En los primeros computadores, de finales de los 40 hasta mediados de los 50, el programa interactuaba directamente con el hardware: no haba sistema operativo. La operacion con estas maquinas se efectuaba desde una consola dotada con indicadores luminosos y conmutadores o a traves de un teclado hexadecimal. Los programas se arrancan cargando el registro contador de programas con la direccion de la primera instruccion. Si se detenia el programa por un error, la condicion de error se indicaba mediante los indicadores luminosos. El programador podia examinar los registros relevantes y la memoria principal para comprobar el resultado de la ejecucion o para determinar la causa del error.

El siguiente paso significativo de la evolucion en el uso de sistemas informaticos vino con la llegada de dispositivos de E/S tales como tarjetas perforadas y cintas de papel y con los traductores de lenguajes. Los programas. codificados ahora en un lenguaje de programacion, se traducen a un forato ejecutable mediante un programa como un compilador o un interprete. Otro programa, llamado cargador, automatiza el proceso de cargar en memoria estos programas en codigo ejecutable. El usuario coloca un programa y sus datos de entrada en un dispositivo de entrada y el cargador transfiere la informacion desde el dispositivo a la memoria. Despues de transferir el control al programa cargado por medios manuales o autom´aticos, comienza la ejecuci´on del mismo. El programa en ejecucion lee sus datos desde el dispositivo de entrada asignado y puede producir ciertos resultados en un dispositivo de salida tal como una impresora o la pantalla.

Estos primeros sistemas presentaban dos problemas principales:

»Planificacion: La mayoria de las instalaciones empleaban un formulario de reserva de tiempo de maquina. Normalmente, un usuario podia reservar bloques de tiempo, multiplos, por ejemplo, de media hora. Si la ejecucion del programa terminaba antes del plazo asignado, el tiempo restante se desperdiciaba. Tambien podia suceder que el programa no terminara dentro del plazo asignado, con lo que el programador no podia saber si el programa habia terminado satisfactoriam ente o no.

»Tiempo de preparacion: Un programa aun siendo sencillo requeria un tiempo de preparacion bastante grande ya que en primer lugar se cargaba un compilador y un programa en lenguaje de alto nivel (programa fuente) en la memoria. A continuacion, se salvaba el programa ya compilado (programa objeto) y, por ultimo, se montaba y cargaba este programa objeto junto con las funciones comunes.

Este modo de trabajo podia denominarse proceso en serie porque refleja el hecho de los que usuarios ten´ıan que acceder al computador en serie.

Fuente: Alqua sistemas operativos
« Última modificación: 03 de Agosto de 2008, 09:09:07 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #33 : 02 de Agosto de 2008, 07:47:21 »

Sistemas sencillos de proceso por lotes, segunda generacion (1955-1965)

Las primeras máquinas eran muy caras y, por tanto, era importante maximizar la utilización de las mismas. El tiempo desperdiciado por la planificación y la preparación era inaceptable.
Para mejorar el uso, se desarrolló el concepto de sistema operativo por lotes (batch). El primer sistema operativo por lotes fue desarrollado a mediados de los 50 por la General Motors para usar en un IBM 701 [WEIZ81]. Este concepto fue refinado posteriormente e implementado en un IBM 704 por una serie de clientes de IBM. A principios de los 60, un conjunto de constructores ya habían desarrollado sistemas operativos por lotes para sus computadores. IBSYS, el sistema operativo de IBM para las computadores 7090/7094, es particularment e notable por su amplia influencia en otros sistemas.

La idea central que está detrás del esquema sencillo de proceso por lotes es el uso de un elemento de software conocido como monitor. Con el uso de esta clase de sistema operativo, los usuarios ya no tenían acceso directo a la máquina. En su lugar, el usuario debía entregar los trabajos en tarjetas o en cinta al operador del computador, quien agrupaba secuencialment e los trabajos por lotes y ubicaba los lotes enteros en un dispositivo de entrada para su empleo por parte del monitor. Cada programa se construía de modo tal que volviera al monitor al terminar su procesamiento y, en ese momento, el monitor comenzaba a cargar automáticamente el siguiente programa.

Para entender cómo funciona este esquema, se va a ver desde dos puntos de vista: el del monitor y el del procesador. Desde el punto de vista del monitor, él es quien controla la secuencia de sucesos. Para que esto sea posible, gran parte del monitor debe estar siempre en memoria principal y disponible para su ejecución. Esta parte del monitor se conoce como monitor residente. El resto del monitor consta de utilidades y funciones comunes que se cargan como subrutinas en los programas de los usuarios al comienzo de cualquier trabajo que las necesite. El monitor lee los trabajos uno a uno del dispositivo de entrada (normalmente, un lector de tarjetas o una unidad de cinta magnética). A medida que lo lee, el trabajo actual se ubica en la zona del programa de usuario y el control pasa al trabajo. Cuando el trabajo termina, se devuelve el control al monitor, quien lee inmediatamente un nuevo trabajo. Los resultados de cada trabajo se imprimen y entregan al usuario.

Considérese ahora esta secuencia desde el punto de vista del procesador. En un cierto momento, el procesador estará ejecutando instrucciones de la zona de memoria principal que contiene al monitor. Estas instrucciones hacen que el trabajo siguiente sea leído en otra zona de la memoria principal. Una vez que el trabajo se ha leído, el procesador encuentra en el monitor una instrucción de desvío que ordena al procesador continuar la ejecución en el inicio del programa de usuario. El procesador ejecuta entonces las instrucciones del programa de usuario hasta que encuentre una condición de finalización o de error.



Cualquiera de estos dos sucesos provocan que el procesador vaya a por la instrucción siguiente del programa monitor. De este modo, la frase "el control se le pasa al trabajo" quiere decir simplemente que el procesador pasa a leer y ejecutar instrucciones del programa de usuario, mientras que la frase "el control vuelve al monitor" quiere decir que el procesador pasa ahora a leer y ejecutar las instrucciones del programa monitor.

Debe quedar claro que es el monitor el que gestiona el problema de la planificación. Se pone en cola un lote de trabajos y éstos son ejecutados tan rápido como es posible, sin que haya tiempo alguno de desocupación.
¿Qué ocurre con la preparación de los trabajos? El monitor también se encarga de esto. Con cada trabajo, se incluyen instrucciones de una forma primitiva de lenguaje de control de trabajos (JCL, Job Control Lenguaje), que es un tipo especial de lenguaje de programación empleado para dar instrucciones al monitor. La figura siguiente muestra un ejemplo sencillo con entrada de trabajos desde tarjetas. En este ejemplo, el usuario envía un programa escrito en FORTRAN junto a unos datos que se utilizarán en el programa. Además de las tarjetas de FORTRAN y de datos, el paquete incluye instrucciones de control de trabajos, que se denotan mediante un signo dólar ($) al comienzo.

Para ejecutar el trabajo, el monitor lee la tarjeta $FTN y carga el compilador adecuado desde el dispositivo de almacenamiento masivo (generalmente una cinta). El compilador traduce el programa de usuario en código objeto, que se almacena en memoria o en el dispositivo de almacenamiento . Si se carga en memoria, la operación es conocida como "compilar, cargar y arrancar" (compile, load, and go). Si se almacena en cinta, entonces se requiere la tarjeta $LOAD. Esta tarjeta es leída por el monitor, quien retoma el control después de la operación de compilación. El monitor llama al cargador, que carga el programa objeto en memoria en el lugar del compilador y le transfiere el control. De esta manera, un segmento grande de memoria se puede compartir entre diferentes subsistemas, aunque en cada momento sólo uno de ellos tiene que estar presente y ejecutándose.



Durante la ejecución del programa de usuario, cada instrucción de entrada origina la lectura de una tarjeta de datos. La instrucción de entrada en el programa del usuario hace que se invoque una rutina de entrada, que forma parte del sistema operativo. La rutina de entrada se asegura de que el programa de usuario no ha leído accidentalment e una tarjeta JCL. Si esto sucede, se produce un error y el control se transfiere al monitor. Al terminar un trabajo, con o sin éxito, el monitor recorre las tarjetas de entrada hasta encontrar la próxima tarjeta JCL. De este modo, el sistema se protege contra un programa que tenga tarjetas de datos de más o de menos.
Se comprobará que el monitor o el sistema de proceso por lotes es simplemente un programa de computador. Se basa en la capacidad del procesador para traer y ejecutar instrucciones desde varias zonas de la memoria principal y así apoderarse y ceder el control de forma alterna. Para esto serian convenientes algunas otras características del hardware, entre las que se encuentran las siguientes:

• Protección de memoria: Mientras el programa de usuario esté ejecutándose, no debe mo-dificar la zona de memoria en la que está el monitor. Si se hace un intento tal, el hardware del procesador deberá detectar el error y transferir el control al monitor. El monitor abortará entonces el trabajo, imprimirá el mensaje de error y cargará el siguiente trabajo.

• Temporizador: Se utiliza un temporizador para impedir que un sólo trabajo monopolice el sistema. El temporizador se lanza al comenzar cada trabajo. Si expira el tiempo, se producirá una interrupción y el control volverá al monitor.

• Instrucciones Privilegiadas: Ciertas instrucciones son designadas como privilegiadas y pueden ser ejecutadas solo por el monitor. Si el procesador encuentra una instrucción tal, cuando está ejecutando el programa del usuario, se producirá una interrupción de error. Entre las instrucciones privilegiadas se encuentran las instrucciones de E/S, de forma que el monitor retenga el control de todos los dispositivos de E/S. Esto impide, por ejemplo, que un programa de usuario lea accidentalment e instrucciones de control que son del trabajo siguiente. Si un programa de usuario desea realizar una E/S, debe solicitarse al monitor que haga la operación por él. Si el procesador encuentra una instrucción privilegiada cuando está ejecutando un programa de usuario, el hardware del procesador la considera como un error y transfiere el control al monitor.

• Interrupciones: Los primeros modelos de computadores no tenían esta capacidad. Esta característica aporta al sistema operativo más flexibilidad para ceder y retomar el control de los programas usuarios.
Naturalmente, se puede construir un sistema operativo sin estas características, pero los fabricantes de computadores comprobaron rápidamente que los resultados eran caóticos y, por tanto, incluso los sistemas operativos por lotes más primitivos ya disponían de estas características en el hardware. Por otro lado, hay que decir que el sistema operativo más utilizado del mundo, el PC-DOS/MS-DOS, no dispone de protección de memoria ni de instrucciones privilegiadas de E/S. Sin embargo, como este sistema está destinado a computadores personales de un solo usuario, los problemas que se pueden originar son menos graves.

En un sistema operativo por lotes, el tiempo de máquina se reparte entre la ejecución de programas de usuario y la ejecución del monitor. Así se tienen dos pérdidas: se entrega al monitor cierta cantidad de memoria principal y éste consume cierto tiempo de la máquina. Ambas pérdidas son una forma de sobrecarga. Aún con esta sobrecarga, los sistemas operativos sencillos por lotes mejoran el uso del computador.

Fuente: Staling William, Sistemas operativos
« Última modificación: 07 de Agosto de 2008, 06:21:30 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #34 : 02 de Agosto de 2008, 07:47:46 »

Multiprogramac ion, tercera generacion (1965-1980)

Aún con el secuenciamient o automático de los trabajos ofrecido por un sistema operativo sencillo por lotes, el procesador está desocupado a menudo. El problema es que los dispositivos de E/S son lentos comparados con el procesador.



La figura detalla un cálculo representativo . Los números corresponden a un programa que procesa un archivo de registros y ejecuta, en promedio, 100 instrucciones de máquina por cada registro. En este ejemplo, el computador gasta más del 96% del tiempo esperando a que los dispositivos de E/S terminen de transferir sus datos



La figura ilustra esta situación. El procesador gasta parte del tiempo ejecutando hasta que encuentra una instrucción de E/S. Entonces debe esperar a que concluya la instrucción de E/S antes de continuar.

Esta ineficiencia no es necesaria. Se sabe que hay memoria suficiente para almacenar el sistema operativo (el monitor residente) y un programa de usuario. Supóngase que hay espacio suficiente para el sistema operativo y dos programas usuarios. Ahora, cuando un trabajo necesite esperar una E/S, el procesador puede cambiar al otro trabajo, que probablemente no estará esperando a la E/S



Además, se podría ampliar la memoria para almacenar tres, cuatro o más programas y conmutar entre todos ellos



Este proceso es conocido como multiprogramad or o multitarea. Éste es el punto central de los sistemas operativos modernos.

Para ilustrar el beneficio de la multiprogramac ión, considérese un ejemplo basado en uno de Tumer [TURN86]. Sea un computador con 256K palabras de memoria disponible (no utilizadas por el sistema operativo), un disco, una terminal y una impresora. Tres programas, TRABAJO 1, TRABAJ02 y TRABAJOS, son enviados para su ejecución al mismo tiempo, con los atributos que se enumeran en la siguiente tabla.



Se suponen unos requisitos mínimos de procesador para el TRABAJ02 y el TRABAJOS y un uso continuado del disco y de la impresora por parte del TRABAJOS. En un sistema sencillo por lotes, estos trabajos serían ejecutados en secuencia. Así pues, el TRABAJO 1 termina en 5 minutos. El TRABAJ02 debe esperar a que transcurran esos 5 minutos y terminar 15 minutos después. El TRABAJOS comienza después de los 20 minutos para terminar SO minutos después del momento en que fue lanzado. La utilización media de los recursos, la productividad y los tiempos de respuesta se ilustran en la columna de monoprogramación de la siguiente tabla,



El uso de dispositivos queda ilustrado en la siguiente figura



Es evidente que hay una infrautilización neta de todos los recursos cuando se promedian los tiempos de uso en el período exigido de SO minutos.

Supóngase ahora que los trabajos se ejecutan concurrentemen te en un sistema operativo con monoprogramación. Como hay poca contención de recursos entre los trabajos, cada uno de los tres puede ejecutarse en un tiempo cercano a 1 mínimo mientras coexiste con los otros en el computador (suponiendo que a TRABAJ02 y TRABAJO3 se les adjudica tiempo suficiente de procesador para mantener activas sus operaciones de E/S). El TRABAJO1 requerirá 5 minutos para terminar, pero al finalizar este tiempo, el TRABAJO2 estará terminado en una tercera parte y el TRABAJO3 estará a la mitad. Los tres trabajos habrán terminado dentro de 15 minutos. La mejora es evidente cuando se examina la columna de multiprogramac ión de la tabla anterior, obtenida del histograma que se muestra en la figura siguiente.



Al igual que un sistema sencillo por lotes, un sistema por lotes con multiprogramac ión tiene que depender de ciertas características del hardware del computador. La característica adicional más notable y útil para la multiprogramac ión es que el hardware respalde las interrupciones de E/S y el DMA. Con E/S dirigida por interrupciones y con DMA, el procesador puede enviar una orden de E/S para un trabajo y continuar con la ejecución de otro, mientras la E/S es efectuada por el controlador del dispositivo. Cuando termina la operación de E/S, el procesador es interrumpido y el control pasa a un programa de tratamiento de interrupciones del sistema operativo. El sistema operativo le pasa entonces el control a otro trabajo.
Los sistemas operativos con multiprogramac ión son bastante más sofisticados en comparación con los sistemas de monoprogramación o de un solo programa. Para tener varios trabajos listos para ejecutar, éstos deben mantenerse en la memoria principal, lo que requiere cierto tipo de gestión de memoria. Además, si hay varios trabajos listos para ejecutarse, el procesador debe decidir cuál de ellos va a ejecutar, lo que requiere un algoritmo de planificación.

Fuente: Staling William, Sistemas operativos
« Última modificación: 07 de Agosto de 2008, 06:39:19 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #35 : 02 de Agosto de 2008, 07:48:08 »

Computadoras personales, cuarta generacion (1980-1990)

Con la invención de los circuitos integrados a gran escala (LSI), chips que contienen miles de transistores en un cm2 de silicio, nació la era de la computadora personal. En términos de arquitectura, las computadoras personales no eran muy diferentes de las minicomputador as de la clase PDP- 11, pero en términos de precio sí que eran diferentes. Si bien la minicomputador a hacía posible que un departamento de una compañía o universidad tuviera su propia computadora, el chip microprocesado r permitía que un solo individuo tuviera su propia computadora personal. Las computadoras personales más potentes empleadas por empresas, universidades e instalaciones del gobierno suelen llamarse estaciones de
trabajo, pero en realidad sólo son computadoras personales grandes. Por lo regular estas máquinas están interconectada s mediante una red.

La amplia disponibilidad de la potencia de cómputo, sobre todo la potencia de cómputo altamente interactiva casi siempre acompañada por excelentes gráficos, dio pie al crecimiento de una importante industria productora de software para computadoras personales. Una buena parte de este software era amistoso con el usuario, lo que significa que estaba dirigido a usuarios que no sólo no sabían nada de computación, sino que además no tenían la mínima intención de aprender. Sin duda, esto representaba un
cambio drástico respecto al os/360, cuyo lenguaje de control de trabajos, JCL, era tan arcano que llegaron a escribirse libros enteros sobre él (p. ej., Cadow, 1970).

Dos sistemas operativos dominaron inicialmente el campo de las computadoras personales y las estaciones de trabajo: MS-DOS de Microsoft y UNIX de AT&T. MS-DOS se usaba ampliamente en la IBM PC y otras máquinas basadas en la CPU Intel 8088 y sus sucesoras, la 80286, 80386 y 80486 y más tarde la Pentium y Pentium Pro. Aunque la
versión inicial de MS-DOS era relativamente primitiva, versiones subsecuentes han incluido características más avanzadas, muchas de ellas tomadas de UNIX. El sucesor de Microsoft para MS-DOS, WINDOWS, originalmente se ejecutaba encima de MS-DOS (es decir, era más un shell que un verdadero sistema operativo), pero a partir de 1995 se produjo una versión autosuficiente de WINDOWS, WINDOWS 95®, de modo que ya no se necesita MS-DOS para apoyarlo. Otro sistema operativo de Microsoft es WINDOWS NT, que es compatible con WINDOWS 95 en cierto nivel, pero internamente se reescribió desde cero.

El otro competidor importante es UNIX, que domina en las estaciones de trabajo y otras computadoras del extremo alto, como los servidores de red. UNIX es popular sobre todo en máquinas basadas en chips RISC de alto rendimiento. Estas máquinas por lo regular tienen la potencia de cómputo de una minicomputador a, a pesar de estar dedicadas a un solo usuario, por lo que resulta lógico que estén equipadas con un sistema operativo diseñado originalmente para minicomputador as, a saber, UNIX.

Fuente:Tanenbaum del libro de Minix
« Última modificación: 04 de Agosto de 2008, 12:39:34 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #36 : 02 de Agosto de 2008, 07:48:33 »

Quinta generacion(1990- ?)

Se caracteriza por la evolución de las comunicaciones a la par de la tecnología. La miniaturización de componentes en las máquinas, y su reducción en costo conllevan a sistemas de alta capacidad. Las supercomputado ras de la generación anterior se ven superadas por las nuevas estaciones de trabajo. El uso de redes se hace común, con grandes velocidades y la integración de servicios de video de calidad, voz y otros datos multimedia en tiempo real. Con la expansión de las redes, surge el procesamiento en paralelo a niveles masivos en la cual una cantidad infinita de computadoras cooperan realizando una tarea (Computación distribuida y Clusters o agrupaciones de computadoras). Internet invade el mundo doméstico generando nuevas alternativas en todas las actividades humanas. Y las interfaces y modos de mandos se vuelven tan simples de usar que ya no es nesesario saber computacion para manejar una computadora.

Una tendencia interesante que apareció a mediados de la década de 1980 fue el crecimiento de redes de computadoras personales en las que se ejecutan sistemas operativos de red o sistemas operativos
distribuidos. En un sistema operativo de red los usuarios están conscientes de la existencia de múltiples computadoras y pueden ingresar en máquinas remotas y copiar archivos de una máquina a otra. Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario o usuarios locales.

Los sistemas operativos de red no son fundamentalmen te distintos de aquellos para un solo procesador. Obviamente, estos sistemas necesitan un controlador de la interfaz con la red y software de bajo nivel para operarlo, así como programas para realizar inicios de sesión remotos y acceso a archivos remotos, pero estas adiciones no alteran la estructura esencial del sistema operativo.

Un sistema operativo distribuido, en cambio, presenta el mismo aspecto a los usuarios que un sistema tradicional de un solo procesador, aunque en realidad se compone de múltiples procesadores. Los usuarios no deben enterarse de en dónde se están ejecutando sus programas o almacenando sus archivos; de todo eso debe encargarse el sistema operativo automática y eficientemente .

Los verdaderos sistemas operativos distribuidos requieren más que la adición de un poco más de código a un sistema operativo uniprocesador, porque los sistemas distribuidos y centralizados difieren en
aspectos cruciales. Los sistemas distribuidos, por ejemplo, a menudo permiten a las aplicaciones ejecutarse en varios procesadores al mismo tiempo, por lo que requieren algoritmos de planificación de
más complejos a fin de optimizar el grado de paralelismo.
En muchos casos, los retardos de comunicación dentro de la red implican que éstos (y otros) algoritmos deban ejecutarse con información incompleta, caduca o incluso incorrecta. Esta situación difiere radicalmente un sistema de un solo procesador en el que el sistema operativo tiene toda la información sobré el estado del sistema.

Fuente: El principio es de una pagina que se las debo y por mi, el final es de Tanenbaum en el libro Minix
« Última modificación: 04 de Agosto de 2008, 12:41:30 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #37 : 02 de Agosto de 2008, 08:14:02 »

Anexo: Sistemas de tiempo compartido

Con el uso de la multiprogramac ión, el tratamiento por lotes puede llegar a ser bastante eficiente. Sin embargo, para muchas tareas, es conveniente suministrar un modo en que el usuario interactúe directamente con el computador. De hecho, para algunos trabajos, tales como el proceso de transacciones, este modo interactivo es fundamental.
Hoy en día, los requisitos de un servicio de computación interactiva pueden y suelen llevarse a cabo con el empleo de un computador dedicada. Esta opción no estaba disponible en los años 60, cuando la mayoría de los computadores eran grandes y costosas. En su lugar, se desarrollaron las técnicas de tiempo compartido.
Al igual que la multiprogramac ión permite al procesador manejar varias tareas por lotes al mismo tiempo, la multiprogramac ión puede también utilizarse para manejar varias tareas interactivas. En este último caso, la técnica se conoce como tiempo compartido, porque refleja el hecho de que el tiempo del procesador es compartido entre los diversos usuarios. La técnica básica de un sistema de tiempo compartido es tener a varios usuarios utilizando simultáneamente el sistema mediante terminales, mientras que el sistema operativo intercala la ejecución de cada programa de usuario en ráfagas cortas de cómputo o cuantos (quantum). De esta manera, si hay n usuarios que solicitan servicio a la vez, cada usuario sólo dispondrá, en promedio, de Un de la atención efectiva del computador, sin contar con la sobrecarga del sistema operativo. Sin embargo, dado el tiempo de reacción relativamente lento que tiene el ser humano, el tiempo de respuesta en un sistema correctamente diseñado debería ser comparable al de un computador dedicada.
Tanto la multiprogramac ión por lotes como el tiempo compartido utilizan multiprogramac ión. Las diferencias básicas se enumeran en la tabla siguiente:



Uno de los primeros sistemas de tiempo compartido que se desarrollaron fue el Sistema Compatible de Tiempo Compartido (CTSS, Compatible Time-Sharing System) [CORB62, CORB63], desarrollado en el MIT por un grupo conocido como Proyecto MAC (Machine-Aided Cognition, Multiple-Access Computers)3. El sistema fue desarrollado primero para una IBM 709 en 1961 y luego pasado a una IBM 7094.

Comparado con sistemas posteriores, el CTSS era bastante primitivo y su funcionamiento básico es fácil de explicar. El sistema se ejecutaba en una máquina con una memoria de 32K palabras de 36 bits, con un monitor residente que consumía 5K del total. Cuando había que asignar el control a un usuario interactivo, el programa del usuario y los datos eran cargados en las restantes 27K de la memoria principal. Un reloj del sistema generaba interrupciones a razón de aproximadament e una cada 0,2 segundos (sg).

En cada interrupción de reloj, el sistema operativo se adueñaba del control y le podía asignar el procesador a otro usuario. De esta manera, a intervalos regulares, el usuario en curso era expulsado y se cargaba otro usuario en su lugar. Para conservar el estado del usuario anterior, para su reanudación posterior, los programas del usuario anterior y sus datos eran escritos en el disco antes de leer los programas del nuevo usuario y sus datos. En consecuencia, el espacio de memoria del usuario anterior debía ser restaurado cuando le llegara de nuevo su tumo.

Para minimizar el tráfico en el disco, la memoria del usuario se escribía a disco sólo cuando el nuevo programa a cargar podía sobrescribirla . Este principio se ilustra en la figura 2.9. Su-póngase que hay cuatro usuarios interactivos con los siguientes requisitos de memoria:

• TRABAJO1: 15K
• TRABAJO2: 20K
• TRABAJO3: 5K
• TRABAJO4: I0K

Al principio, el monitor carga el TRABAJOl y le transfiere el control (figura 2.9a). Posteriormente, el monitor decide transferir el control al TRABAJ02. Puesto que el TRABAJ02 requiere más memoria que el TRABAJOl, éste debe sacarse primero, para luego cargar el TRABAJ02 (figura 2.9b). A continuación, se carga el TRABAJO3 para ser ejecutado. Sin embargo, como el TRABAJO3 es más pequeño que el TRABAJ02, entonces una parte del TRABAJ02 puede quedarse en la memoria, lo que reduce el tiempo de escritura en el disco (figura 2.9c).

Más tarde, el monitor decide transferir de nuevo el control al TRABAJOl. Una parte adicional del TRABAJ02 debe sacarse cuando el TRABAJOl se cargue de nuevo a memoria (figura 2.9d). Cuando se cargue el TRABAJ04, parte del TRABAJOl y de la parte remanente del TRABAJO2 se retienen en memoria (figura 2.9e). En este punto, tanto si el TRABAJOl como el TRABAJO2 son activados, sólo se necesita una carga parcial. En este ejemplo es el TRABAJ02 el que se ejecuta a continuación. Esto exige que se saquen el TRABAJ04 y la parte remanente que estaba residente del TRABAJOl, para que se pueda leer la parte que falta del TRABAJ02.

El enfoque del CTSS era muy primitivo, si se compara con los sistemas actuales de tiempo compartido, pero funcionaba. Era extremadamente simple, lo que minimizaba el tamaño del monitor. Como un trabajo siempre se cargaba en las mismas posiciones de memoria, no había necesidad de utilizar técnicas de reubicación durante la carga (que se discutirán más adelante). La técnica de escribir en el disco sólo cuándo era necesario minimizaba la actividad con el disco. Ejecutado sobre una 7094, el CTSS daba soporte a un máximo de 32 usuarios.

El tiempo compartido y la multiprogramac ión plantean una multitud de problemas nuevos para el sistema operativo. Si hay varios trabajos en memoria, entonces deben protegerse de injerencias unos de otros, como, por ejemplo, que uno modifique los datos de otro. Con varios usuarios interactivos, el sistema de archivos debe protegerse de forma que sólo los usuarios autorizados puedan tener acceso a un archivo en particular. La contención de recursos tales como la impresora y los dispositivos de almacenamiento masivo debe estar controlada.



Fuente: Staling William, Sistemas operativos
« Última modificación: 07 de Agosto de 2008, 06:45:20 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #38 : 02 de Agosto de 2008, 08:15:47 »

Logros Obtenidos

Los sistemas operativos están entre los elementos de software más complejos que se han desarrollado. Esto refleja el reto de tratar de conjugar las dificultades y, en algunos casos, objetivos opuestos de comodidad, eficiencia y capacidad de evolución. Algunos proponen que, hasta la fecha, se han obtenido cuatro logros intelectuales significativos en el desarrollo de los sistemas operativos:

• Los procesos
• La seguridad y la protección de la información
• La planificación y la gestión de recursos
• La estructura del sistema

y otros afirman que son cinco porque incluyen:

• La gestión de memoria

Cada logro viene caracterizado por unos principios o abstracciones que se han desarrollado para solucionar las dificultades de los problemas prácticos. En conjunto, estos cinco campos abarcan los puntos clave del diseño e implementación de los sistemas operativos modernos.

A continuacion vamos a ver por arriba los primeros cuatro.

« Última modificación: 07 de Agosto de 2008, 06:46:00 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #39 : 05 de Agosto de 2008, 11:28:13 »

introduccion a
Los Procesos

El concepto de proceso es fundamental en la estructura de los sistemas operativos. Este término fue acuñado por primera vez por los diseñadores de Multics en los años 60. Es un término algo más general que el de trabajo. Se han dado muchas definiciones para el término proceso, entre las que se incluyen las siguientes:

• Un programa en ejecución
• El "espíritu animado" de un programa
• La entidad que puede ser asignada al procesador y ejecutada por él.


Tres líneas principales en el desarrollo de los sistemas informáticos crearon problemas de tiempos y de sincronización que contribuyeron al desarrollo del concepto de proceso:

La operación por lotes con multiprogramac ión, el tiempo compartido y los sistemas de transacciones en tiempo real.

Como se ha visto, la multiprogramac ión fue diseñada para mantener ocupados a la vez tanto procesador como los dispositivos de E/S, incluyendo los dispositivos de almacenamiento, de modo que se alcance la mayor eficiencia posible. La clave de este mecanismo es que, como respuesta a las señales que indiquen que ha terminado una transacción de E/S, el procesador cambia entre los diversos programas que residen en la memoria principal.

Una segunda línea de desarrollo fue la de los sistemas de tiempo compartido de propósito general. La justificación de tales sistemas es que los usuarios del computador son más productivos si pueden interactuar directamente con el computador desde algún tipo de terminal. En este caso, el objetivo clave del diseño es que el sistema sea sensible a las necesidades del usuario individual y que, además, por razones de coste, pueda dar soporte simultáneo a muchos usuarios. Estos objetivos son compatibles debido al tiempo de reacción relativamente lento que tienen los usuarios. Por ejemplo, si un usuario típico necesita, en promedio, 2 segundos de tiempo de procesamiento por minuto, entonces cerca de 30 usuarios deberían ser capaces de compartir el mismo sistema sin interferencias notables. Por supuesto, debe tenerse en cuenta la sobrecarga que impone el propio sistema operativo.

Otra línea importante de desarrollo la han constituido los sistemas de proceso de transacciones en tiempo real. En este caso, un cierto número de usuarios hacen consultas o actualizacione s sobre una base de datos. Un ejemplo clásico es un sistema de reservas de unas líneas aéreas. La diferencia clave entre un sistema de proceso de transacciones y un sistema de tiempo compartido es que el primero está limitado a una o pocas aplicaciones, mientras que los usuarios de un sistema de tiempo compartido pueden dedicarse al desarrollo de un programa, a la ejecución de trabajos y al uso de diferentes aplicaciones. En ambos casos, el tiempo de respuesta del sistema es primordial.

La herramienta principal disponible para los programadores de sistemas en el desarrollo de los primeros sistemas interactivos multiusuario y de multiprogramac ión fue la interrupción. La actividad de cualquier trabajo podía suspenderse por el acontecimiento de un suceso determinado, como la culminación de una E/S. El procesador debía entonces salvar algún tipo de contexto (por ejemplo, el contador de programa y otros registros) y desviarse hacia una rutina de tratamiento de la interrupción, que determinaba la naturaleza de la interrupción, la procesaba y luego reanudaba el proceso del usuario en el trabajo interrumpido o en algún otro trabajo.
El diseño del software del sistema para coordinar estas diversas actividades resultó extraordinaria mente difícil. Con muchos trabajos en progreso al mismo tiempo, donde cada uno involucraba numerosos pasos que dar de una manera secuencial, resultaba imposible de analizar todas las combinaciones posibles de secuencias de sucesos. En ausencia de un medio sistemático de coordinación y cooperación entre las actividades, los programadores recurrían a métodos
Para ver este enlace Registrate o Inicia Sesion
ad hoc
basados en su comprensión del entorno que el sistema operativo tenía que controlar. Estos esfuerzos estaban expuestos a errores sutiles de programación cuyos efectos podría ser que sólo se manifestasen si se producían ciertas secuencias de acciones relativamente raras.

Estos errores eran muy difíciles de diagnosticar, porque era necesario poder distinguirlos de los errores del software de aplicación y de los del hardware. Aún cuando se detectase el error, resultaba muy difícil determinar las causas, porque las condiciones precisas bajo las que aparecían los errores resultaban muy difíciles de reproducir. En líneas generales, había cuatro causas principales de error:

• Sincronización incorrecta: Es frecuente el caso en el que una rutina debe ser suspendida a la espera de un suceso en cualquier lugar del sistema. Por ejemplo, un programa inicia una lectura de E/S y debe esperar hasta que los datos estén disponibles en un buffer antes de continuar. En tales casos se requiere alguna señal proveniente de alguna otra rutina. Un diseño incorrecto del mecanismo de señalización puede dar como resultado la pérdida de señales o la recepción de señales duplicadas.

• Fallos de exclusión mutua: Es habitual el caso en que más de un usuario o programa intentan a la vez hacer uso de un recurso compartido. Por ejemplo, en un sistema de reservas de líneas aéreas, dos usuarios pueden intentar leer de la base de datos y, si hay un asiento disponible, actualizar la base de datos para hacer una reserva. Si no se controlan estos accesos, puede producirse un error. Debe existir algún tipo de mecanismo de exclusión mutua que permita que sólo una rutina a la vez pueda realizar una transacción sobre una determinada parte de los datos. Verificar la corrección de la implementación de dicha exclusión mutua bajo todas las secuencias posibles de sucesos es difícil.

• Funcionamiento no determinista del programa: Los resultados de un programa en particular deben depender normalmente sólo de la entrada del programa y no de las actividades de otros programas en un sistema compartido. Pero cuando los programas comparten memoria y sus ejecuciones son intercaladas por el procesador, entonces pueden interferir con otros, sobreescribien do zonas comunes de memoria de forma incierta. Así pues, el orden en que se organiza la ejecución de varios programas puede influir en los resultados de un programa en particular.

• Interbloqueos: Es posible que dos o más programas estén suspendidos a la espera uno del otro. Por ejemplo, dos programas pueden requerir dos dispositivos de E/S para llevar a cabo cierta operación (por ejemplo, copiar de disco a cinta). Uno de los programas ha tomado el control de uno de los dispositivos y el otro programa tiene el control del otro dispositivo. Cada uno está esperando que el otro libere el recurso deseado. Dicho interbloqueo puede depender del ritmo imprevisto de la asignación y la liberación de recursos.

(ya veremos todo mas profundo despues de que termine la introduccion sobre todo lo de interbloqueos)

Lo que se necesita para enfrentarse a estos problemas es una forma sistemática de supervisar y controlar los distintos programas que pueden estar ejecutándose en el procesador. El concepto de proceso pone las bases. Se puede considerar que un proceso está formado por las tres componentes siguientes:

• Un programa ejecutable
• Los datos asociados necesarios para el programa (variables, espacio de trabajo, buffers, etc.)
• El contexto de ejecución del programa


Este último elemento es esencial. El contexto de ejecución incluye toda la información que el sistema operativo necesita para administrar el proceso y que el procesador necesita para ejecutar correctamente el proceso. Así pues, el contexto incluye los contenidos de varios registros del procesador, tales como el contador de programa y los registros de datos. También incluye información de utilidad para el sistema operativo, tal como la prioridad del proceso y si el proceso está esperando la terminación de un suceso particular de E/S.

La figura siguiente (2.10) indica una forma en la que pueden implementarse los procesos. Hay dos procesos, A y B, en secciones de la memoria principal.
A cada proceso se le debe asignar un bloque de memoria que contiene los programas, los datos y la información del contexto. Cada proceso es registrado en una lista de procesos construida y guardada por el sistema operativo. La lista de procesos contiene una entrada para cada proceso, la cual dispone de un puntero a la posición del bloque de memoria que contiene al proceso. Esta entrada también puede incluir parte o todo el contexto de ejecución del proceso. El resto del contexto de ejecución del proceso es almacenado en el mismo proceso. El registro de índice del proceso contiene el índice, dentro de la lista de procesos, del proceso que está actualmente controlando al procesador. El contador de programa apunta a la próxima instrucción del proceso que se ejecutará. Los registros de base y de límite definen la región de memoria ocupada por el proceso. El contador de programa y todas las referencias a datos se interpretan como relativas al registro de base y no deben exceder el valor del registro de límite. Esto impide las interferencias entre procesos.

En la figura 2.10, el registro de índice del proceso indica que el proceso B está ejecutándose. El proceso A estaba ejecutándose con anterioridad, pero ha sido interrumpido temporalmente. El contenido de todos los registros en el momento de la interrupción de A fue registrado en su contexto de ejecución. Más tarde, el procesador podrá llevar a cabo un cambio de contexto y reanudar la ejecución del proceso A. Cuando el contador de programa se cargue con un valor que apunte a la zona de programa de A, el proceso A reanudará automáticamente su ejecución.
De esta manera, el proceso es tratado como una estructura de datos. Un proceso puede estar ejecutándose o esperando su ejecución. El "estado" entero del proceso está contenido en su contexto. Esta estructura permite el desarrollo de técnicas potentes que aseguran la coordinación y la cooperación entre procesos. Se pueden diseñar e incorporar nuevas características al sistema operativo (por ejemplo, prioridades) mediante la ampliación del contexto para incluir cualquier nueva información que sea necesaria para dar soporte al nuevo atributo. A lo largo de este libro se verán varios ejemplos en los que se emplea esta estructura de proceso para resolver los problemas planteados por la multiprogramac ión y la compartición de recursos.



Los usuarios necesitan un entorno informático que dé soporte a la programación modular y la utilización flexible de los datos. Los administradore s de sistemas necesitan un control eficiente y ordenado de la asignación del almacenamiento . Para satisfacer estos requisitos, el sistema operativo tiene cinco responsabilida des principales en la gestión del almacenamiento, que son:

• Aislamiento del proceso: El sistema operativo debe procurar que cada proceso independiente no interfiera con los datos y la memoria de ningún otro.

• Asignación y gestión automáticas: A los programas se les debe asignar memoria dinámicamente en la jerarquía de memoria, según la vayan necesitando. Este proceso debe ser transparente para el programador. De este modo, el programador se libera de todo lo con-cerniente a las limitaciones de memoria y el sistema operativo puede lograr eficiencia asignando memoria a los trabajos según la vayan necesitando.

• Soporte para la programación modular: Los programadores deben ser capaces de definir módulos de programa y de crear, destruir y alterar el tamaño de los módulos dinámicamente.

• Protección y control de acceso: Compartir la memoria en algún nivel de la jerarquía de memoria origina la posibilidad de que un programa pueda direccionar el espacio de memoria de otro programa. Algunas veces, esto es conveniente, sobre todo cuando se necesita compartición en una aplicación en particular. En otros casos, esto amenaza la integridad de los programas y del mismo sistema operativo. El sistema operativo debe permitir que las secciones de memoria estén accesibles de varias maneras para los diversos usuarios.

• Almacenamiento a largo plaza: Muchos usuarios y aplicaciones necesitan medios para almacenar información por largos periodos de tiempo.

Normalmente, los sistemas operativos satisfacen estos requisitos mediante la memoria virtual y los servicios del sistema de archivos. La memoria virtual es un servicio que permite a los programas direccionar la memoria desde un punto de vista lógico, sin depender del tamaño de la memoria principal física disponible.

Cuando se está ejecutando, solo una parte del programa y de los datos pueden estar realmente en memoria principal. Las partes restantes del programa y de los datos se mantienen en bloques en el disco. Se verá en capítulos posteriores cómo esta separación de la memoria en vistas lógicas y físicas ofrece al sistema operativo una potente herramienta para lograr sus objetivos.

El sistema de archivos da cuenta del almacenamiento a largo plazo, almacenándose la información en unos objetos con nombre denominados archivos. El archivo es un concepto práctico para el programador y es una unidad útil de control de acceso y de protección en el sistema operativo.

La figura siguiente (2.11) ofrece un esquema general de un sistema de almacenamiento administrado por un sistema operativo. El hardware del procesador, junto con el sistema operativo, dotan al usuario de un “procesador virtual” que tiene acceso a la memoria virtual. Este almacén puede ser un espacio lineal de direcciones de memoria o una colección de segmentos, que son bloques de direcciones contiguas con longitud variable.

En cualquier caso, las instrucciones del lenguaje de programación pueden hacer referencia a los programas y las posiciones de los datos en la memoria virtual. El aislamiento de los procesos se puede lograr dándole a cada proceso una única memoria virtual que no se solape con otra. La compartición entre los procesos se puede lograr solapando secciones de dos espacios de memoria virtual. Los archivos se mantienen en un almacén permanente. Los archivos o una parte de los mismos pueden copiarse en la memoria virtual para su manipulación por parte de los programas.

El punto de vista que el diseñador tiene del almacenamiento también se ve en la figura 2.11. El almacenamiento consta de una memoria principal directamente direccionable (mediante instrucciones de la máquina) y una memoria auxiliar de velocidad inferior a la que se accede indirectamente, cargando los bloques en la memoria principal. Se coloca un hardware de traducción de direcciones (mapper) entre el procesador y la memoria. Los programas hacen referencia a las posiciones utilizando direcciones virtuales, que son traducidas a direcciones reales de la memoria principal.

Si se hace una referencia a una dirección virtual que no está en la memoria real, entonces una parte del contenido de la memoria real se expulsa hacia la memoría auxiliar, intercambiándose con el bloque de memoria deseado. Durante esta actividad, debe suspenderse el proceso que generó la referencia a la dirección. Es tarea del diseñador construir un mecanismo de traducción de direcciones que genere poca sobrecarga y una política de asignación del almacenamiento que minimice el tráfico entre los niveles de memoria.



Fuente: William Stalling, Sitemas operativos
« Última modificación: 31 de Agosto de 2008, 03:42:33 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #40 : 05 de Agosto de 2008, 11:38:50 »

Seguridad y protección de la información

El crecimiento de la utilización de los sistemas de tiempo compartido y, más recientemente, las redes de computadores, ha traído consigo un aumento de las preocupaciones por la protección de la información.

Una publicación de la Oficina Nacional de Estándares identifica algunas de las amenazas a las que es necesario atender en el campo de la seguridad:

1. Intentos organizados y deliberados de obtener información económica y mercantil de las organizaciones competitivas del sector privado.

2. Intentos organizados y deliberados de obtener información económica de las oficinas del gobierno.

3. Adquisición inadvertida de información económica o mercantil.

4. Adquisición inadvertida de información sobre las personas.

5. Fraude intencional a través del acceso ilegal a bancos de datos en computadores, con én-fasis, en orden decreciente de importancia, en la adquisición de datos financieros, económicos, de aplicación de leyes y personales

6. Intromisión del gobierno en los derechos individuales.

7. Atropello de los derechos individuales por la comunidad.

Estos son ejemplos de amenazas específicas que una organización o un individuo puede sentir la necesidad de contrarrestar. La naturaleza de las amenazas que conciernen a una organización pueden variar enormemente de un conjunto de circunstancias a otro.

Sin embargo, pueden construirse algunas herramientas de propósito general dentro de los computadores y de los sistemas operativos para dar soporte a varios mecanismos de protección y seguridad. En general, interesan los problemas de control de acceso a los sistemas informáticos y a la información almacenada en ellos. Se han identificado cuatro clases de políticas generales de protección, en orden creciente de dificultad:

• No compartición: En este caso, los procesos están completamente aislados uno del otro y cada proceso tiene control exclusivo sobre los recursos que le fueron asignados estática o dinámicamente. Con esta política, los procesos suelen compartir los programas o archivos de datos haciendo copias y pasándolas a su propia memoria virtual.

• Compartiendo los originales de los programas o archivos de datos: Con el uso de código reentrante, una única copia física de un programa puede aparecer en varios espacios de memoria virtual como archivos de sólo lectura. Se requieren mecanismos especiales de bloqueo para compartir archivos de datos en los que se puede escribir e impedir que usuarios simultáneos interfieran unos con otros.

• Subsistemas confinados o sin memoria: En este caso, los procesos se agrupan en subsistemas para cumplir una política de protección en particular. Por ejemplo, un proceso "cliente" llama a un proceso "servidor" para llevar a cabo cierta tarea con los datos. El servidor se protegerá de que el cliente descubra el algoritmo con el cual lleva a cabo su trabajo y el cliente se protegerá de que el servidor retenga alguna información sobre el trabajo que está llevando a cabo.

• Diseminación controlada de la información: En algunos sistemas se definen clases de seguridad para cumplir una determinada política de diseminación de la información. A los usuarios y a las aplicaciones se les dan credenciales de seguridad de un cierto nivel, mientras que a los datos y a otros recursos (por ejemplo, los dispositivos de E/S) se les dota de clasificacione s de seguridad. La política de seguridad hace cumplir las restricciones relativas a qué usuarios tienen acceso a qué clasificacione s. Este modelo es útil no sólo en contextos militares, sino también en aplicaciones comerciales.

Gran parte del trabajo que se ha realizado en la seguridad y protección de los sistemas operativos puede agruparse, en grandes líneas, en las tres categorías siguientes.

• Control de acceso: Tiene que ver con la regulación del acceso del usuario al sistema completo, a los subsistemas y a los datos, así como a regular el acceso de los procesos a los recursos y objetos del sistema.

• Control del flujo de información: Regula el flujo de datos dentro del sistema y su distribución a los usuarios.

• Certificación: Es relativa a la demostración de que el acceso y los mecanismos de control del flujo se llevan a cabo de acuerdo a las especificacion es y a que estas cumplen las políticas de protección y seguridad deseadas.

Fuente: Stalling William, Sistemas operativos
« Última modificación: 02 de ſeptiembre de 2008, 03:23:39 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW
« Respuesta #41 : 05 de Agosto de 2008, 11:39:24 »

Planificación y gestión de recursos

Una tarea clave del sistema operativo es administrar los recursos que tiene disponibles (espacio de memoria, dispositivos de E/S, procesadores) y planificar su utilización por parte de los diferentes procesos en activo.

Cualquier política de asignación de recursos y de planificación debe tener en cuenta los tres factores siguientes:

• Equidad: Normalmente, sería conveniente que a todos los procesos que compiten por el uso de un determinado recurso les sea otorgado un acceso al recurso que sea aproximadament e igualitario y equitativo. Esto es especialmente así para los trabajos de una misma clase, es decir, trabajos con demandas similares, que son cargados con la misma tasa.

• Sensibilidades diferenciales: Por otro lado, el sistema operativo puede tener que discriminar entre las diferentes clases de trabajos con diferentes requisitos de servicio. El sistema operativo debe intentar tomar decisiones de asignación y planificación que satisfagan la totalidad de los requisitos. El sistema operativo debe contemplar estas decisiones dinámicamente. Por ejemplo, si un proceso está esperando por el uso de un dispositivo de E/S, el sistema operativo puede querer planificar la ejecución de dicho proceso tan pronto como sea posible y así tener disponible al dispositivo para las demandas de otros procesos.

• Eficiencia: Dentro de las restricciones de equidad y eficiencia, el sistema operativo debe intentar maximizar la productividad, minimizar el tiempo de respuesta y, en el caso de tiempo compartido, alojar a tantos usuarios como sea posible.

La tarea de planificación y gestión de recursos es básicamente un problema de investigación operativa, así que se pueden aplicar los resultados matemáticos de esta disciplina. Además, la medición de la actividad del sistema es importante para poder controlar el rendimiento y poder hacer ajustes.

La figura que esta al final muestra los elementos principales del sistema operativo que están involucrados en la planificación de procesos y en la asignación de recursos para un entorno de multiprogramac ión. El sistema operativo mantiene una serie de colas, cada una de las cuales no es más que una lista de procesos esperando a algún recurso. La cola a corto plazo está formada por procesos que están en memoria principal (o que, por lo menos, una parte mínima básica está en memoria principal) y están listos para ejecutar. Alguno de estos procesos podría ser el siguiente en usar el procesador.

Depende del planificador a corto plazo o distribuidor (dispatcher) el escoger a uno. Una estrategia habitual es asignar por turnos una cierta cantidad de tiempo a cada proceso de la cola; esta técnica es conocida como turno rotatorio o round-robin. También se pueden utilizar niveles de prioridad.
La cola a largo plazo es una lista de nuevos trabajos que esperan para usar el sistema.

El sistema operativo añade los trabajos al sistema transfiriendo un proceso desde la cola a largo plazo hacia la cola a corto plazo. En ese momento, al proceso que se trae se le debe asignar una parte de la memoria principal. De este modo, el sistema operativo debe estar seguro de que no sobrecarga la memoria o el tiempo de procesamiento por admitir demasiados procesos en el sistema.

Hay una cola de E/S para cada dispositivo de E/S. Más de un proceso pueden solicitar el uso de un mismo dispositivo de E/S. Todos los procesos esperando por el uso de un determinado dispositivo están alineados en la cola de dicho dispositivo. Una vez más, es el sistema operativo el que debe determinar a qué proceso se le debe asignar un dispositivo de E/S cuando esté disponible.

« Última modificación: 14 de Octubre de 2008, 05:07:48 por WaesWaes » En línea


Para ver este enlace Registrate o Inicia Sesion

Java Lover
Estudiando
Para ver este enlace Registrate o Inicia Sesion
Sistemas Operativos

OpenSolaris 2008.05 + Ubuntu 8.04 + Windows XP Pro SP3
Illdan
WaesWaes
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1,797


Consumiras poder hasta que él te consuma


Ver Perfil WWW