Sistemas Operativos ITSAV Lerdo
46.9K views | +70 today
Follow
Sistemas Operativos ITSAV Lerdo
Ing. en Sistemas Computaconales
Your new post is loading...
Your new post is loading...
Scooped by Cinthia Carrasco
Scoop.it!

Definicion

Definicion | Sistemas Operativos ITSAV Lerdo | Scoop.it

 

 1.1 Definició1.1 Definición y concepto de sistema operativo

 

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.

more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

6.7 Validacion

6.7 Validacion | Sistemas Operativos ITSAV Lerdo | Scoop.it
Identificar cada usuario que esta trabajando en el sistema (usando los recursos).

• Uso de contrasenas.

• Vulnerabilidad de contrasenas.

o Que sean complejas y dificiles de adivinar.
o Cambiarlas de vez en cuando.
o Peligro de perdida del secreto.
• La contrasena debe guardare cifrada.

Proteccion por Contraseña

Las clases de elementos de autentificacion para establecer la identidad de una persona son:

Algo sobre la persona:

Ej.: huellas digitales, registro de la voz, fotografia, firma, etc.
Algo poseido por la persona:
Ej.: insignias especiales, tarjetas de identificacion, llaves, etc.
Algo conocido por la persona:
Ej.: contrasenas, combinaciones de cerraduras, etc.
El esquema mas comun de autentificacion es la proteccion por contrasena:

El usuario elige una palabra clave , la memoriza, la teclea para ser admitido en el sistema computarizado:

La clave no debe desplegarse en pantalla ni aparecer impresa.
La proteccion por contrasenas tiene ciertas desventajas si no se utilizan criterios adecuados para:

Elegir las contrasenas.

Comunicarlas fehacientemente en caso de que sea necesario.
Destruir las contrasenas luego de que han sido comunicadas.
Modificarlas luego de algun tiempo.
Los usuarios tienden a elegir contrasenas faciles de recordar:

Nombre de un amigo, pariente, perro, gato, etc.

Numero de documento, domicilio, patente del auto, etc.
Estos datos podrian ser conocidos por quien intente una violacion a la seguridad mediante intentos repetidos, por lo tanto debe limitarse la cantidad de intentos fallidos de acierto para el ingreso de la contrasena.

La contrasena no debe ser muy corta para no facilitar la probabilidad de acierto.

Tampoco debe ser muy larga para que no se dificulte su memorizacion, ya que los usuarios la anotarian por miedo a no recordarla y ello incrementaria los riesgos de que trascienda.

Contraseñas de un solo uso

• Al final de cada sesion, se le pide al usuario que cambie la contrasena.

• Si alguien “roba una contrasena”, el verdadero usuario se dara cuenta cuando vaya a identificarse de nuevo, pues el impostor habra cambiado la contrasena, con lo que el fallo de seguridad queda detectado.

Verificación de Amenazas

Es una tecnica segun la cual los usuarios no pueden tener acceso directo a un recurso :

Solo lo tienen las rutinas del S. O. llamadas programas de vigilancia.

El usuario solicita el acceso al S. O.
El S. O. niega o permite el acceso.
El acceso lo hace un programa de vigilancia que luego pasa los resultados al programa del usuario.
Permite:
Detectar los intentos de penetracion en el momento en que se producen.
Advertir en consecuencia.
Amenazas relacionadas con los programas

Los procesos son junto con el kernel , el unico medio de realizar un trabajo util en una computadora. Por tanto, un objetivo comun de los piratas informaticos consiste en escribir un programa que cree una brecha de seguridad. De hecho, las mayorias de las brechas de seguridad no relacionadas con programas tienen por objetivos crear una brecha que si este basada en un programa. Por ejemplo, aunque resulta util iniciar una sesion en un sistema sin autorizacion, normalmente es mucho mas util dejar un demonio de tipo puerta trasera que proporcione informacion o que permita un facil acceso incluso aunque se bloquee la brecha de seguridad original. En esta seccion, vamos a describir algunos metodos comunes mediante los que os programas pueden provocar brechas de seguridad. Hay que resaltar que existe una considerable variacion en lo que respecta a los convenios de denominacion de los agujeros de seguridad, y que en este texto utilizamos los terminos mas comunes o descriptivos.

- CABALLO DE TROYA

Definicion.- Un programa indudablemente util e inocente que contiene codigos escondidos que permiten la modificacion no autorizada y la explotacion o destruccion de la informacion. Los programas caballo de Troya se distribuyen por lo general por Internet. Los juegos, freeware y protectores de pantalla son los medios comunes que utilizan los caballos de Troya.

Se denomina troyano (o caballo de Troya , traduccion mas fiel del ingles Trojan horse aunque no tan utilizada) a un programa malicioso capaz de alojarse en computadoras y permitir el acceso a usuarios externos, a traves de una red local o de Internet, con el fin de recabar informacion o controlar remotamente a la maquina anfitriona.

Un troyano no es de por si, un virus, aun cuando teoricamente pueda ser distribuido y funcionar como tal. La diferencia fundamental entre un troyano y un virus consiste en su finalidad. Para que un programa sea un "troyano" solo tiene que acceder y controlar la maquina anfitriona sin ser advertido, normalmente bajo una apariencia inocua. Al contrario que un virus, que es un huesped destructivo, el troyano no necesariamente provoca danos porque no es su objetivo.

Suele ser un programa pequeno alojado dentro de una aplicacion, una imagen, un archivo de musica u otro elemento de apariencia inocente, que se instala en el sistema al ejecutar el archivo que lo contiene. Una vez instalado parece realizar una funcion util (aunque cierto tipo de troyanos permanecen ocultos y por tal motivo los antivirus o anti troyanos no los eliminan) pero internamente realiza otras tareas de las que el usuario no es consciente, de igual forma que el Caballo de Troya que los griegos regalaron a los troyanos.

Habitualmente se utiliza para espiar, usando la tecnica para instalar un software de acceso remoto que permite monitorizar lo que el usuario legitimo de la computadora hace (en este caso el troyano es un spyware o programa espia) y, por ejemplo, capturar las pulsaciones del teclado con el fin de obtener contrasenas (cuando un troyano hace esto se le cataloga de keylogger) u otra informacion sensible.

La mejor defensa contra los troyanos es no ejecutar nada de lo cual se desconozca el origen y mantener software antivirus actualizado y dotado de buena heuristica; es recomendable tambien instalar algun software anti troyano, de los cuales existen versiones gratis aunque muchas de ellas constituyen a su vez un troyano. Otra solucion bastante eficaz contra los troyanos es tener instalado un firewall.

Otra manera de detectarlos es inspeccionando frecuentemente la lista de procesos activos en memoria en busca de elementos extranos, vigilar accesos a disco innecesarios, etc.

Lo peor de todo es que ultimamente los troyanos estan siendo disenados de tal manera que es imposible poder detectarlos excepto por programas que a su vez contienen otro tipo de troyano, inclusive y aunque no confirmado, existen troyanos dentro de los programas para poder saber cual es el tipo de uso que se les y poder sacar mejores herramientas al mercado llamados tambien "troyanos sociales"

Los troyanos estan actualmente ilegalizados, pero hay muchos crackers que lo utilizan.

PUERTA TRASERA

En la informatica, una puerta trasera (o en ingles backdoor ), es una secuencia especial dentro del codigo de programacion mediante el programador puede acceder o escapar de un programa en caso de emergencia o contingencia en algun problema.

A su vez, estas puertas tambien pueden ser perjudiciales debido a que los crackers al descubrirlas pueden acceder a un sistema en forma ilegal y aprovecharse la falencia.

“Cualquier medio capaz de ampliar el alcance del hombre es lo suficientemente poderoso como para derrocar su mundo. Conseguir que la magia de ese medio trabaje para los fines de uno, antes que en contra de ellos, es alcanzar el conocimiento.” Alan Kay.

“Es extrana la ligereza con que los malvados creen que todo les saldra bien.” Victor Hugo.

A pesar de que no se consideran propiamente como virus, representan un riesgo de seguridad importante, y usualmente son desconocidas la inmensa gama de problemas que estas puedan llegar a producir. Al hablar de estas nos referimos genericamente a una forma "no oficial" de acceso a un sistema o a un programa.

Algunos programadores dejan puertas traseras a proposito, para poder entrar rapidamente en un sistema; en otras ocasiones existen debido a fallos o errores.

Ni que decir tiene que una de las formas tipicas de actuacion de los piratas informaticos es localizar o introducir a los diversos sistemas una puerta trasera y entrar por ella.

El termino es adaptacion directa del ingles backdoor que comunmente significa “puerta de atras”.

Lo usual en estos programas los cuales no se reproducen solos como los virus, sino que nos son enviados con el fin de tener acceso a nuestros equipos muchas veces a traves del correo electronico, por lo que la mayoria de las veces no son faciles de detectar y por si solos no siempre causan danos ni efectos inmediatos por su sola presencia, siendo asi pueden llegar a permanecer activos mucho tiempo sin que nos percatemos de ello.

Generalmente estos se hacen pasar por otros, es decir, se ocultan en otro programa que les sirve de caballo de Troya para que el usuario los instale por error.

Lo peor que puede pasarle cuando esta en el messanger o en el ICQ
no es que contraiga su PC un virus. Lo peor es que alguien instale un backdoor en su PC. Las puertas traseras son faciles de entender.

Como todo en Internet se basa en la arquitectura cliente / servidor, solo se necesita instalar un programa servidor en una maquina para poder controlarla a distancia desde otro equipo, si se cuenta con el cliente adecuado, esta puede bien ser la computadora de un usuario descuidado o poco informado.

Las puertas traseras (backdoors) son programas que permiten acceso practicamente ilimitado a un equipo de forma remota. El problema, para quien quiere usar este ataque, es que debe convencerlo a usted de que instale el servidor.

Por eso, si aparece un desconocido ofreciendole algun programa maravilloso y tentador, no le crea de inmediato. Lo que estan probablemente a punto de darle es un troyano, un servidor que le proporcionara a algun intruso acceso total a su computadora.

Con todo el riesgo que esto implica, hay una forma simple y totalmente segura de evitarlo: no acepte archivos ni mucho menos ejecute programas que le hayan mandado siendo estos sobre todo de procedencia dudosa.

Los programas que se clasifican como “backdoors” o "puertas traseras" son utilerias de administracion remota de una red y permiten controlar las computadoras conectadas a esta.

El hecho que se les clasifique como software malevolo en algunos casos, es que cuando corren, se instalan en el sistema sin necesidad de la intervencion del usuario y una vez instalados en la computadora, no se pueden visualizar estas aplicaciones en la lista de tareas en la mayoria de los casos.

Consecuentemente un backdoor puede supervisar casi todo proceso en las computadoras afectadas, desinstalar programas, descargar virus en la PC remota, borrar informacion y muchas cosas mas.

No es sencillo darle forma a un tema de esta complejidad en pocas lineas. Lo importante finalmente es comprender que si no se toman ciertas medidas minimas, la informacion sensible que se encuentre en cualquier equipo sobre la faz de la tierra, con el simple hecho de que tenga acceso a la red de redes (Internet) es suficiente para que pueda estar expuesto a ataques de diversa indole.

Concluimos esto, recomendando ciertas medidas muy basicas para estar a salvo de las puertas traseras y el delicado riesgo para la seguridad que estas representan. A saber:

1.- Es recomendable asegurarnos de que cada cosa que ejecutamos este bajo nuestro control. Una buena guia para ello es el sentido comun (el menos comun de los sentidos).

2.- Procure no ejecutar programas de los que no sepamos su procedencia, tanto en anexos de correo, ICQ, messanger y descargas de Internet (ya sean via Web o FTP).

3.- La informacion nos protege. Es recomendable enterarse un poco de las noticias de virus y programas daninos relacionados, visitando por lo menos las paginas de las distintas empresas antivirus o suscribiendose a algunos boletines.

4.- Es necesario instalar un antivirus y mantenerlo actualizado. En la
actualidad se protege al usuario no solo contra virus, sino tambien
contra gusanos, programas de puerta trasera, troyanos y algunos programas maliciosos.

5.- Es bueno tener presente que existen virus y troyanos que pueden
aparentar ser amigables (una simple tarjeta de San Valentin), o que provienen de gente que conoces (como es el caso del gusano Sircam). Siendo asi, no confies en ningun programa ni en nada que recibas hasta no revisarlo con el Antivirus.

6.- Mantenga al dia todas las actualizaciones de seguridad de Microsoft, para todas y cada una de las distintas aplicaciones

-BOMBA LOGICA

Este tipo de delito forma parte de los sistemas informaticos que realizan ataques a la parte logica del ordenador.

Se entiendo por bomba logica (en ingles denominado time bombs), aquel software, rutinas o modificaciones de programas que producen modificaciones, borrados de ficheros o alteraciones del sistema en un momento posterior a aquel en el que se introducen por su creador.

Los disparadores de estos programas puede ser varios, desde las fechas de los sistemas, realizar una determinada operacion o que se introduzca un determinado codigo que sera el que determine su activacion.

Son parecidas al Caballo de Troya, aunque lo que se pretende es danar al sistema o datos, aunque se pueden utilizar para ordenar pagos, realizar transferencias de fondos, etc...

Caracteristicas principales:

El tipo de actuacion es retardada.
El creador es consciente en todo momento del posible dano que puede causar y del momento que este se puede producir.
Este ataque esta determinado por una condicion que determina el creador dentro del codigo.
El codigo no se replica.
Los creadores de este tipo de codigos malignos suelen ser personal interno de la empresa, que por discrepancias con la direccion o descontento suelen programarlas para realizar el dano.
VIRUS



Un virus informatico es un programa que se copia automaticamente y que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso o el conocimiento del usuario. Aunque popularmente se incluye al "malware" dentro de los virus, en el sentido estricto de esta ciencia los virus son programas que se replican y ejecutan por si mismos. Los virus, habitualmente, reemplazan archivos ejecutables por otros infectados con el codigo de este. Los virus pueden destruir, de manera intencionada, los datos almacenados en un ordenador, aunque tambien existen otros mas benignos, que solo se caracterizan por ser molestos.

Los virus informaticos tienen, basicamente, la funcion de propagarse, replicandose, pero algunos contienen ademas una carga danina (payload) con distintos objetivos, desde una simple broma hasta realizar danos importantes en los sistemas, o bloquear las redes informaticas generando trafico inutil.

El funcionamiento de un virus informatico es conceptualmente simple. Se ejecuta un programa que esta infectado, en la mayoria de las ocasiones, por desconocimiento del usuario. El codigo del virus queda residente (alojado) en la memoria RAM de la computadora, aun cuando el programa que lo contenia haya terminado de ejecutarse. El virus toma entonces el control de los servicios basicos del sistema operativo, infectando de, manera posterior, archivos ejecutables que sean llamados para su ejecucion. Finalmente se anade el codigo del virus al del programa infectado y se graba en disco, con lo cual el proceso de replicado se completa.

Amenazas del Sistema y de la Red

Las amenazas basadas en programas utilizan tipicamente un fallo en los mecanismos de proteccion de un sistema para atacar a los programas. Por contraste, las amenazas del sistema y de la red implican el abuso de los servicios y de las conexiones de red. En ocasiones, se utiliza un ataque del sistema y de la red para lanzar un ataque de programa, y viceversa.

Las amenazas del sistema y de la red crean una situacion en la que se utilizan inapropiadamente los recursos del sistema operativo y los archivos del usuario. En esta seccion vamos a analizar algunos ejemplos de estas amenazas, incluyendo los gusanos, el escaneo de puertos y los ataques por denegacion de servicio.

Es importante destacar que las mascaradas y los ataques por reproduccion tambien resultan comunes en las redes que interconectan los sistemas. De hecho, estos ataques son mas efectivos y mas dificiles de contrarrestar cuando estan implicados multiples sistemas. Por ejemplo, dentro de una computadora, el sistema operativo puede determinar, usualmente, el emisor y el receptor de un mensaje. Incluso si el emisor adopta el ID de alguna otra persona, puede que exista un registro de dicho cambio de ID. Cuando estan implicados multiples sistemas, especialmente sistemas que son controlados por los atacantes, realizar esa labor de traza resulta mucho mas dificil.

La generalizacion de este concepto es que el compartir secretos (para demostrar la identidad y en forma de claves de cifrado) es una necesidad para la autenticacion del cifrado, y que esa comparticion resulta mas sencilla en aquellos entornos (por ejemplo con un unico sistema operativo) en los que existan metodos seguros de comparticion. Estos metodos incluyen la memoria compartida y los mecanismos de comunicacion interprocesos.

GUSANOS

Un gusano es un virus informatico o programa auto replicante que no altera los archivos sino que reside en la memoria y se duplica a si mismo. Los gusanos utilizan las partes automaticas de un sistema operativo que generalmente son invisibles al usuario. Es algo usual detectar la presencia de gusanos en un sistema cuando, debido a su incontrolada replicacion, los recursos del sistema se consumen hasta el punto de que las tareas ordinarias del mismo son excesivamente lentas o simplemente no pueden ejecutarse.

Un gusano, al igual que un virus, esta disenado para copiarse de un equipo a otro, pero lo hace automaticamente. En primer lugar, toma el control de las caracteristicas del equipo que permiten transferir archivos o informacion. Una vez que un gusano este en su sistema, puede viajar solo. El gran peligro de los gusanos es su habilidad para replicarse en grandes numeros. Por ejemplo, un gusano podria enviar copias de si mismo a todos los usuarios de su libreta de direcciones de correo electronico, lo que provoca un efecto domino de intenso trafico de red que puede hacer mas lentas las redes empresariales e Internet en su totalidad.

Cuando se lanzan nuevos gusanos, se propagan muy rapidamente. Bloquean las redes y posiblemente provocan esperas largas (a todos los usuarios) para ver las paginas Web en Internet.

Gusano Subclase de virus. Por lo general, los gusanos se propagan sin la intervencion del usuario y distribuye copias completas (posiblemente modificadas) de si mismo por las redes. Un gusano puede consumir memoria o ancho de banda de red, lo que puede provocar que un equipo se bloquee.

Debido a que los gusanos no tienen que viajar mediante un programa o archivo "host", tambien pueden crear un tunel en el sistema y permitir que otro usuario tome el control del equipo de forma remota. Entre los ejemplos recientes de gusanos se incluyen: Sasser y Blaster.

-ESCANEO DE PUERTOS

El escaneo de puertos es una de las mas populares tecnicas utilizadas para descubrir y mapear servicios que estan escuchando en un puerto determinado. Usando este metodo un atacante puede crear una lista de las potenciales debilidades y vulnerabilidades en un puerto para dirigirse a la explotacion del mismo y comprometer el host remoto Una de las primeras etapas en la penetracion / auditoria de un host remoto es primeramente componer una lista de los puertos abiertos utilizando una o mas de las tecnicas descritas abajo. Una ves establecida, los resultados ayudaran al atacante a identificar los servicios que estan corriendo en ese puerto utilizando una lista de puertos que cumplen con el RFC (la funcion /etc/services in UNIX, getservbyport() automaticamente hace esto) permitiendo comprometer el host remoto en la etapa de descubrimiento inicial. Las tecnicas de escaneo de puertos se dividen en tres tipos especificos y diferenciados: *.escaneo abierto *.escaneo medio abierto *.escaneo oculto Cada una de esas tecnicas permite un ataque para localizar puertos abiertos y cerrados en un servidor pero saber hacer el escaneo correcto en un ambiente dado depende de la topologia de la red, IDS, caracteristicas de logging del servidor remoto. Aunque un escaneo abierto deja bitacoras grandes y es facilmente detectable produce los mejores resultados en los puertos abiertos y cerrados. Alternativamente, utilizar un escaneo oculto permite evitar ciertos IDS y pasar las reglas del firewall pero el mecanismo de escaneo como packet flags utilizados para detectar estos puertos puede dejar muchos paquetes caidos sobre la red dando resultados positivos siendo estos falsos. Mas adelante se discutira esto en la seccion de escaneo FIN de este documento. Enfocandonos mas directamente en cada una de las tecnicas anteriores, estos metodos se pueden categorizar en tipos individuales de escaneo. Veamos un modelo basico de escaneo incluyendo un barrido de ping.


-DENEGACION DE SERVICIO

En seguridad informatica, un ataque de denegacion de servicio , tambien llamado ataque DoS (de las siglas en ingles Denial of Service ), es un ataque a un sistema de ordenadores o red que causa que un servicio o recurso sea inaccesible a los usuarios legitimos. Normalmente provoca la perdida de la conectividad de la red por el consumo del ancho de banda de la red de la victima o sobrecarga de los recursos computacionales del sistema de la victima.

Se genera mediante la saturacion de los puertos con flujo de informacion, haciendo que el servidor se sobrecargue y no pueda seguir prestando servicios, por eso se le dice "denegacion", pues hace que el servidor no de abasto a la cantidad de usuarios. Esta tecnica es usada por los llamados crackers para dejar fuera de servicio a servidores objetivo.

El llamado DDoS (siglas en ingles de Distributed Denial of Service , denegacion de servicio distribuida) es una ampliacion del ataque DoS, se efectua con la instalacion de varios agentes remotos en muchas computadoras que pueden estar localizadas en diferentes puntos. El invasor consigue coordinar esos agentes para asi, de forma masiva, amplificar el volumen del flood o saturacion de informacion, pudiendo darse casos de un ataque de cientos o millares de computadoras dirigido a una maquina o red objetivo. Esta tecnica se ha revelado como una de las mas eficaces y sencillas a la hora de colapsar servidores, la tecnologia distribuida ha ido sofisticandose hasta el punto de otorgar poder de causar danos serios a personas con escaso conocimiento tecnico.

En ocasiones, esta herramienta ha sido utilizada como un notable metodo para comprobar la capacidad de trafico que un ordenador puede soportar sin volverse inestable y perjudicar los servicios que desempena. Un administrador de redes puede asi conocer la capacidad real de cada maquina.

Metodos de ataque

Un ataque de "Denegacion de servicio" previene el uso legitimo de los usuarios al usar un servicio de red. El ataque se puede dar de muchas formas, como por ejemplo:

Inundacion SYN (SYN Floods)

La inundacion SYN envia un flujo de paquetes TCP/SYN, muchas veces con la direccion de origen falsificada. Cada unos de los paquetes recibidos es tratado por el destino como una peticion de conexion, causando que el servidor intente establecer una conexion al responder con un paquete TCP/SYN-ACK y esperando el paquete de respuesta TCP/ACK (Parte del proceso de establecimiento de conexion TCP de 3 vias).

Sin embargo, debido a que la direccion de origen es falsa o la direccion IP real no ha solicitado la conexion, nunca llega la respuesta. Estas conexiones a medias consumen recursos en el servidor y limitan el numero de conexiones que se pueden hacer, reduciendo la disponibilidad del servidor para responder peticiones legitimas de conexion.

Ataque LAND (LAND attack)

Un ataque LAND se realiza al enviar un paquete TCP/SYN falsificado con la direccion del servidor objetivo como si fuera la direccion origen y la direccion destino a la vez. Esto causa que el servidor se responda a si mismo continuamente y al final falle.

Inundacion ICMP (ICMP floods)

Es una tecnica DoS que pretender agota el ancho de banda de la victima. Consiste en enviar de forma continuada un numero elevado de paquetes ICMP echo request (ping) de tamano considerable a la victima, de forma que esta ha de responder con paquetes ICMP echo reply (pong) lo que supone una sobrecarga tanto en la red como en el sistema de la victima. Dependiendo de la relacion entre capacidad de procesamiento de la victima y atacante, el grado de sobrecarga varia, es decir, si un atacante tiene una capacidad mucho mayor, la victima no puede manejar el trafico generado.

Modelos de ataques

Existe una variante denominada smurf que amplifica considerablemente los efectos de un ataque ICMP. En el smurf el atacante dirige paquetes ICMP echo request a una direccion IP de broadcast10.

Existen tres partes en un ataque smurf: El atacante, el intermediario y la victima (comprobaremos que el intermediario tambien puede ser victima).

Cuando el atacante genera el paquete ICMP echo request, este es dirigido a una direccion IP de broadcast, pero la direccion origen del paquete IP la cambia por la direccion de la victima (IP spoofing), de manera que todas las maquinas intermediarias (maquinas pertenecientes a la red donde se envio el paquete) responden con ICMP echo reply a la victima. Como se dijo anteriormente, los intermediarios tambien sufren los mismos problemas que las propias victimas.

Inundacion UDP (UDP floods)

Basicamente este ataque consiste en generar grandes cantidades de paquetes UDP contra la victima elegida. Debido a la naturaleza sin conexion del protocolo UDP, este tipo de ataques suele venir acompanado de IP spoofing6.

Es usual dirigir este ataque contra maquinas que ejecutan el servicio echo8 de forma que se generan mensajes echo de un elevado tamano.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

6.5 Concepto de Seguridad

6.5 Concepto de Seguridad | Sistemas Operativos ITSAV Lerdo | Scoop.it
Los terminos seguridad y proteccion se utilizan en forma indistinta. Sin embargo, es util hacer una distincion entre los problemas generales relativos a la garantia de que los archivos no sea leidos o modificados por personal no autorizado, lo que incluye aspectos tecnicos, de administracion, legales y politicos, por un lado y los sistemas especificos del sistema operativo utilizados para proporcionar la seguridad, por el otro. Para evitar la confusion, utilizaremos el termino seguridad para referirnos al problema general y el termino mecanismo de proteccion para referirnos a los mecanismos especificos del sistema operativo utilizado para resguardar la informacion de la computadora. Sin embargo, la frontera entre ellos no esta bien definida. Primero nos fijaremos en la seguridad; mas adelante analizaremos la proteccion.

La seguridad tiene muchas facetas. Dos de las mas importantes son la perdida de datos y los intrusos. Algunas de las causas mas comunes de la perdida de datos son:

• Actos divinos: Incendios, inundaciones, terremotos, guerras, revoluciones o ratas que roen las cintas o discos flexibles.

• errores de Hardware o Software: Mal funcionamiento de la CPU, discos o cintas ilegibles, errores de telecomunicacion o errores en el programa.

• Errores Humanos: Entrada incorrecta de datos, mal montaje de las cintas o el disco, ejecucion incorrecta del programa, perdida de cintas o discos.

La mayoria de estas causas se pueden enfrentar con el mantenimiento de los respaldos adecuados; de preferencia, en un lugar alejado de los datos originales.

Un problema mas interesante es que hacer con los intrusos. Estos tienen dos variedades. Los intrusos pasivos solo desean leer archivos que no estan autorizados a leer. Los intrusos activos son mas crueles: Desean hacer cambios no autorizados a los datos. Si se desea disenar un sistema seguro contra los intrusos, es importante tener en cuenta el tipo de intruso con el que se desea tener proteccion. Algunas de las categorias comunes son:

• Curiosidad casual de usuarios no tecnicos. Muchas personas tienen en sus escritorios terminales para sistemas con tiempo compartido y, por la naturaleza humana, algunos de ellos leeran el correo electronico de los demas u otros archivos, si no existen barreras en frente de ellos. Por ejemplo la mayoria de los sistema UNIS tienen pre definido que todos los archivos se pueden leer de manera publica.

• Conocidos husmeando. Algunos estudiantes, programadores de sistemas, operadores y demas personal tecnico consideran como un reto personal romper la seguridad del sistema de computo local. A menudo son muy calificados y estan dispuestos a invertir una cantidad sustancial de su tiempo en este esfuerzo.

• Un intento deliberado de hacer dinero. Algunos programadores en banco han intentado penetrar un sistema bancario con el fin de robarle al banco. Los esquemas han variado desde cambiar el software para truncar y no redondear el interes, para quedarse con una pequena fraccion de dinero, hasta sacar dinero de las cuentas que no se han utilizado en anos o el "correo negro" .

• Espionaje comercias o militar. El espionaje indica un intento serio y fundamentado por parte de un competidor u otro pais para robar programas, secretos comerciales, patentes, tecnologia, diseno de circuitos, planes de comercializacion, etc. A menudo, este intento implica la cobertura de cables o el levantamiento de antenas hacia la computadora con el fin de recoger su radiacion electromagnetica.

Debe quedar claro que el intento por mantener la KGB lejos de los secretos militares es un poco distinto del intento por evitar que los estudiantes inserten un mensaje gracioso en el sistema. La cantidad de esfuerzo que alguien pone en la seguridad y la proteccion depende claramente de quien se piensa sea el enemigo.

Otro aspecto del problema de la seguridad es la privacia: la proteccion de las personas respecto del mal uso de la informacion en contra de uno mismo. Esto implica en forma casi inmediata muchos aspectos morales y legales.

Para proteger un sistema, debemos optar las necesarias medidas de seguridad en cuatro niveles distintos:

Fisico. El nodo o nodos que contengan los sistemas informaticos deben dotarse de medidas de seguridad fisicas frente a posibles intrusiones armadas o subrepticias por parte de potenciales intrusos. Hay que dotar de seguridad tanto a las habitaciones donde las maquinas residan como a los terminales o estaciones de trabajo que tengan acceso a dichas maquinas.
Humano. La autorizacion de los usuarios debe llevarse a cabo con cuidado, para garantizar que solo los usuarios apropiados tengan acceso al sistema. Sin embargo, incluso los usuarios autorizados pueden verse “motivados” para permitir que otros usen su acceso (por ejemplo, a cambio de un soborno). Tambien pueden ser enganados para permitir el acceso de otros, mediante tecnicas de ingenieria social . Uno de los tipos de ataque basado en las tecnicas de ingenieria social es el denominado phishing ; con este tipo de ataque, un correo electronico o pagina web de aspecto autentico llevan a engano a un usuario para que introduzca informacion confidencial. Otra tecnica comunmente utilizada es el analisis de desperdicios , un termino autorizado a la computadora (por ejemplo, examinando el contenido de las papeleras, localizando listines de telefonos encontrando notas con contrasenas). Estos problemas de seguridad son cuestiones relacionadas con la gestion y con el personal, mas que problemas relativos a los sistemas operativos.
Sistema operativo. El sistema debe autoprotegerse frente a los diversos fallos de seguridad accidentales o premeditados. Un problema que este fuera de control puede llegar a constituir un ataque accidental de denegacion de servicio. Asimismo, una cierta consulta a un servicio podria conducir a la revelacion de contrasenas o un desbordamiento de la pila podria permitir que se iniciara un proceso no autorizado. La lista de posibles fallos es casi infinita.
Red. Son muchos los datos en los modernos sistemas informaticos que viajen a traves de lineas arrendadas privadas, de lineas compartidas como Internet, de conexiones inalambricas o de lineas de acceso telefonico. La interceptacion de estos datos podria ser tan danina como el acceso a un computador, y la interrupcion en la comunicacion podria constituir un ataque remoto de denegacion de servicio, disminuyendo la capacidad de uso del sistema y la confianza en el mismo por parte de los usuarios.
Si queremos poder garantizar la seguridad del sistema operativo, es necesario garantizar la seguridad en los primeros dos niveles. Cualquier debilidad en uno de los niveles altos de seguridad (fisico o humano) podria puentear las medidas de seguridad que son estrictamente de bajo nivel (del nivel del sistema operativo). Asi, la frase que afirma que una cadena es tan fuerte como el mas debil de sus eslabones es especialmente cierta cuando hablamos de seguridad de los sistemas. Para poder mantener la seguridad, debemos contemplar todos estos aspectos.

Ademas, el sistema debe proporcionar mecanismos de proteccion para permitir la implementacion de las caracteristicas de seguridad. Sin la capacidad de autorizar a los usuarios y procesos, de controlar su acceso y de registrar sus actividades, seria imposible que un sistema operativo implementara medidas de seguridad o se ejecutara de forma segura. Para soportar un esquema global de proteccion hacen falta mecanismos de proteccion hardware. Por ejemplo, un sistema donde la memoria no este protegida no puede nunca estar seguro.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

6.3 Implementacion de matrices de acceso

6.3 Implementacion de matrices de acceso | Sistemas Operativos ITSAV Lerdo | Scoop.it
Los derechos de acceso definen que acceso tienen varios sujetos sobre varios objetos.

Los sujetos acceden a los objetos.

Los objetos son entidades que contienen informacion.

Los objetos pueden ser:

Concretos:
Ej.: discos, cintas, procesadores, almacenamiento, etc.
Abstractos:
Ej.: estructuras de datos, de procesos, etc.
Los objetos estan protegidos contra los sujetos.

Las autorizaciones a un sistema se conceden a los sujetos.

Los sujetos pueden ser varios tipos de entidades:

Ej.: usuarios, procesos, programas, otras entidades, etc.
Los derechos de acceso mas comunes son:

Acceso de lectura.
Acceso de escritura.
Acceso de ejecucion.
Una forma de implementacion es mediante una matriz de control de acceso con:

Filas para los sujetos.
Columnas para los objetos.
Celdas de la matriz para los derechos de acceso que un usuario tiene a un objeto.
Una matriz de control de acceso debe ser muy celosamente protegida por el S. O.

Dominios de protección

Un sistema de computos contiene muchos objetos que necesitan proteccion. Estos objetos pueden ser el hardware, la CPU, los segmentos de memoria, terminales, unidades de disco o impresoras; o bien ser del software, como los proceso, archivos, bases de datos o semaforos.

Cada objeto tiene un unico nombre mediante el cual se la hace referencia y un conjunto de operaciones que se pueden realizar en el. READ y WRITE son operaciones adecuadas para un archivo; UP y DOWN tiene sentido en un semaforo.

Es evidente que se necesita una via para prohibir el acceso de los procesos a los objetos a los que no tiene permitido dicho acceso. Ademas, este mecanismo debe posibilitar la restriccion de los procesos a un subconjunto de operaciones legales en caso necesario. Por ejemplo, puede permitirse que el proceso A lea el archivo F, pero no escriba en el.

Para tener una forma de analizar los distintos mecanismos de proteccion, es conveniente presentar el concepto de dominio. Un dominio es un conjunto de parejas (objeto, derechos). Cada pareja determina un objeto y cierto subconjunto de las operaciones que se pueden llevar a cabo en el. Un derecho es, en este contexto, el permiso para realizar alguna de las operaciones.

Una pregunta importante es la forma en que el sistema lleva un registro de los objetos que pertenecen a un dominio dado. Al menos una teoria, uno puede imaginar una enorme matriz, en la que los renglones son los dominio y las columnas son los objetos. Cada cuadro contiene los derechos correspondientes al objeto en ese dominio. Con esta matriz y el numero de dominio activo, el sistema puede determinar si se permite el acceso de cierta forma a un objeto dado desde un domino especifico.

Un dominio es un conjunto de parejas (objeto, derechos):

Cada pareja determina:
Un objeto.
Un subconjunto de las operaciones que se pueden llevar a cabo en el.
Un derecho es el permiso para realizar alguna de las operaciones.
Es posible que un objeto se encuentre en varios dominios con “distintos” derechos en cada dominio.

Un proceso se ejecuta en alguno de los dominios de proteccion:

Existe una coleccion de objetos a los que puede tener acceso.
Cada objeto tiene cierto conjunto de derechos.
Los procesos pueden alternar entre los dominios durante la ejecucion.
Una llamada al S. O. provoca una alternancia de dominio.

En algunos S. O. los dominios se llaman anillos .

Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio es mediante una matriz :

Los renglones son los dominios.
Las columnas son los objetos.
Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese dominio, por ej.: leer, escribir, ejecutar.

Matriz de acceso

El modelo de proteccion del sistema se puede ver en forma abstracta como una matriz, la matriz de acceso.

Una matriz de acceso es una representacion abstracta del concepto de dominio de proteccion.

Este modelo fue propuesto por Lampson [4] como una descripcion generalizada de mecanismos de proteccion en sistemas operativos. Es el modelo mas utilizado, del que existen numerosas variaciones, especialmente en su implementacion.

Los elementos basicos del modelo son los siguientes:


• Sujeto: Una entidad capaz de acceder a los objetos. En general, el concepto de sujeto es equiparable con el de proceso. Cualquier usuario o aplicacion consigue acceder en realidad a un objeto por medio de un proceso que representa al usuario o a la aplicacion.

• Objeto: Cualquier cosa cuyo acceso debe controlarse. Como ejemplo se incluyen los archivos, partes de archivos, programas y segmentos de memoria.

• Derecho de acceso: la manera en que un sujeto accede a un objeto. Como ejemplo estan Leer, Escribir y Ejecutar.

El modelo considera un conjunto de recursos, denominados objetos, cuyo acceso debe ser controlado y un conjunto de sujetos que acceden a dichos objetos. Existe tambien un conjunto de permisos de acceso que especifica los diferentes permisos que los sujetos pueden tener sobre los objetos (normalmente lectura, escritura, etc., aunque pueden ser diferentes, en general, dependiendo de las operaciones que puedan realizarse con el objeto).

Se trata de especificar para cada pareja (sujeto, objeto), los permisos de acceso que el sujeto tiene sobre el objeto. Esto se representa mediante una matriz de acceso M que enfrenta todos los sujetos con todos los objetos. En cada celda M[i, j] se indican los permisos de acceso concretos que tiene el sujeto i sobre el objeto j.

El mecanismo de proteccion es la matriz, junto con todos los elementos que se han de anadir para que se cumplan de manera efectiva todas las restricciones de acceso a los objetos.


• La politica consiste en decidir como rellenar las distintas celdas de la matriz.

• La MA permite implementar operaciones de cambio de domino.

• El objeto sobre el que trabajamos es el Dominio → aparecen tantas columnas como dominios haya en el sistema.

• La operacion es la conmutacion de un dominio a otro.

• Tambien la MA es un objeto que se puede modificar. De este modo podemos definir tres operaciones:

• Copiar derechos de acceso de una celda a otra dentro de la misma columna. Consiste en pasar el derecho de acceso a un objeto de un Dominio que lo tiene, a otro donde originalmente no lo tenia. Se senala con un asterisco (*).

• Copia ilimitada con propagacion del propio derecho de copia.

• Copia limitada sin propagacion.

• Movimiento de derecho.

• Dueno. Un proceso ejecutandose en un dominio que tiene derecho de “dueno” sobre un objeto, puede repartir cualquier derecho de acceso sobre cualquier dominio para dicho objeto.

• Control . Opera solo sobre dominios. Ejercer el control sobre un dominio implica que se puede quitar cualquier derecho sobre una fila de dominio.

• La MA tambien ha de ser protegida.

Implementacion de la Matriz de Acceso

Tabla Global

Sencilla. Se almacena una lista de ternas {...}.

Como el numero de objetos y dominios es posiblemente muy grande, se deberia guardar en memoria virtual → lento. Ver.

Lista de acceso para objetos(ACL)

Se expresa la MA por columnas {, ...}. Se descartan las entradas vacias.

Se puede crear una lista de permisos por defecto para hacer mas facil su uso.

Dado que cada vez que se va a usar un objeto hay que comprobar si hay o no permiso para hacerlo, es logico poner la ACL alli donde esten descritos los atributos del objeto.

Asocia a cada objeto una lista ordenada con:
Todos los dominios que pueden tener acceso al objeto.
La forma de dicho acceso (ej: lectura (r), grabacion (w), ejecucion (x)).
Una forma de implementar las ACL consiste en:
Asignar tres bits (r, w, x) para cada archivo, para:
El propietario, el grupo del propietario y los demas usuarios.
Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento:
Permite prohibir accesos antes permitidos.


Lista de Capacidades

Se expresa la MA por filas. Cada dominio tiene una lista de la forma {, ...}

Para identificar el objeto se usa o bien su nombre logico, o un puntero a el (la estructura de datos que le describe); a esta direccion se la llama capacidad .

Solo se podra realizar la operacion M sobre el objeto O si se dispone de la capacidad (puntero) al objeto. Ver figura 6.3.6

Mecanismo de Cerradura-Llave

Cada objeto tiene una lista de patrones llamados cerradura .

Cada dominio tiene una lista de patrones llamados claves .

Un proceso que se ejecuta en un dominio solo tendra acceso a un objeto si el dominio contiene una llave que coincida con una de las cerraduras.

Comparacion

La tabla global es una matriz dispersa, es ineficiente para su almacenamiento.

ACL → Cuando se accede a un objeto es facil determinar si hay o no permiso para usarlo.

Capacidades → Las ACL estan distribuidas, es dificil saber cuales son los derechos de acceso para un proceso, cosa que si se puede hacer con la lista de capacidades.

Los sistemas reales suelen usar una mezcla de todos.

Ej. UNIX: Se abre un fichero, se verifica en la ACL si tiene permiso o no. Si lo tiene, se consigue un descriptor de fichero, es decir una capacidad que sera lo que se use a partir de entonces.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

6.1 Concepto y objetivo de proteccion

6.1 Concepto y objetivo de proteccion | Sistemas Operativos ITSAV Lerdo | Scoop.it

La proteccion es un mecanismo control de acceso de los programas, procesos o usuarios al sistema o recursos.

Hay importantes razones para proveer proteccion. La mas obvia es la necesidad de prevenirse de violaciones intencionales de acceso por un usuario. Otras de importancia son, la necesidad de asegurar que cada componente de un programa, use solo los recursos del sistema de acuerdo con las politicas fijadas para el uso de esos recursos.

Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un usuario incompetente. Los sistemas orientados a la proteccion proveen maneras de distinguir entre uso autorizado y desautorizado.

Objetivos

• Inicialmente proteccion del SO frente a usuarios poco confiables.

• Proteccion: control para que cada componente activo de un proceso solo pueda acceder a los recursos especificados, y solo en forma congruente con la politica establecida.

• La mejora de la proteccion implica tambien una mejora de la seguridad.

• Las politicas de uso se establecen:

• Por el hardware.

• Por el administrador / SO.

• Por el usuario propietario del recurso.

• Principio de separacion entre mecanismo y politica:

• Mecanismo → con que elementos (hardware y/o software) se realiza la proteccion.

• Politica → es el conjunto de decisiones que se toman para especificar como se usan esos elementos de proteccion.

• La politica puede variar

• dependiendo de la aplicacion,

• a lo largo del tiempo.

• La proteccion no solo es cuestion del administrador, sino tambien del usuario.

• El sistema de proteccion debe:

• distinguir entre usos autorizados y no-autorizados.

• especificar el tipo de control de acceso impuesto.

• proveer medios para el aseguramiento de la proteccion.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

5.7 Modelo jeraquico

5.7 Modelo jeraquico | Sistemas Operativos ITSAV Lerdo | Scoop.it
El directorio contiene un conjunto de datos por cada archivo referenciado.

Una posibilidad es que el directorio contenga por cada archivo referenciado:

El nombre.
Sus atributos.
Las direcciones en disco donde se almacenan los datos.
Otra posibilidad es que cada entrada del directorio contenga:
El nombre del archivo.
Un apuntador a otra estructura de datos donde se encuentran los atributos y las ,direcciones en disco.

Al abrir un archivo el S. O.:

Busca en su directorio el nombre del archivo.

Extrae los atributos y direcciones en disco.

Graba esta información en una tabla de memoria real.

Todas las referencias subsecuentes al archivo utilizarán la información de la memoria principal.

El número y organización de directorios varía de sistema en sistema:
Directorio único: el sistema tiene un solo directorio con todos los archivos de todos los usuarios.

Un directorio por usuario: el sistema habilita un solo directorio por cada usuario.

Un árbol de directorios por usuario: el sistema permite que cada usuario tenga tantos directorios como necesite, respetando una jerarquía general.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

5.5 Mecanismos de acceso a los archivos

5.5 Mecanismos de acceso a los archivos | Sistemas Operativos ITSAV Lerdo | Scoop.it
Existen varios mecanismos para acceder los archivos: Directorios, descriptores de archivos, mecanismos de control de acceso y procedimientos para abrir y cerrar archivos.

Descriptores de archivos.

El descriptor de archivos o bloque de control de archivos es un bloque de control que contiene información que el sistema necesita para administrar un archivo.

Es una estructura muy dependiente del sistema.

Puede incluir la siguiente información:

Nombre simbólico del archivo.
Localización del archivo en el almacenamiento secundario.
Organización del archivo (método de organización y acceso).
Tipo de dispositivo.
Datos de control de acceso.
Tipo (archivo de datos, programa objeto, programa fuente, etc.).
Disposición (permanente contra temporal).
Fecha y tiempo de creación.
Fecha de destrucción.
Fecha de la última modificación.
Suma de las actividades de acceso (número de lecturas, por ejemplo).
Los descriptores de archivos suelen mantenerse en el almacenamiento secundario; se pasan al almacenamiento primario al abrir el archivo.

El descriptor de archivos es controlado por el sistema de archivos ; el usuario puede no hacer referencia directa a él.

A cada uno de los archivos se le asigna un descriptor el cual contendrá toda la información que necesitará el sistema de archivos para ejecutar con él los comandos que se le soliciten. El descriptor se mantendrá en memoria principal desde que el archivo es abierto hasta que sea cerrado, y debe tener al menos la siguiente información, identificación del archivo, lugar de almacenamiento, información del modo de acceso.

Identificación del archivo. Consiste de dos partes que es el nombre simbólico que es el que le da el usuario y un identificador interno que es asignado por el sistema operativo (número). Lugar de almacenamiento así como el tamaño del archivo. Modo de acceso. Se debe indicar en forma explícita quien puede accesar el archivo y conque derecho.

Mecanismo de control de acceso.

Control de un sistema de información especializado en detectar los intectos de acceso, permitiendo el paso de las entidades autorizadas, y denegando el paso a todas las demás. Involucra medios técnicos y procedimientos operativos.

Mecanismo que en función de la identificación ya autenticada permite acceder a datos o recursos.

Los Directorios son utilizados por el sistema operativo para llevar un registro de los archivos que incluye el nombre, los atributos y las direcciones en disco donde se almacenan los datos del archivo referenciado.

Open (abrir): antes de utilizar un archivo, un proceso debe abrirlo. La finalidad es permitir que el sistema traslade los atributos y la lista de direcciones en disco a la memoria principal para un rápido acceso en llamadas posteriores.

Close (cerrar): cuando concluyen los accesos, los atributos y direcciones del disco ya no son necesarios, por lo que el archivo debe cerrarse y liberar la tabla de espacio interno.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

5.3 Componentes de un sistema de archivos

5.3 Componentes de un sistema de archivos | Sistemas Operativos ITSAV Lerdo | Scoop.it
Lo conforman todas aquellas rutinas encargadas de administrar todos los aspectos relacionados con el manejo de Archivos.
En UNIX se define un File System como un sistema de software dedicado a la creación, destrucción, organización y lectura, escritura y control de acceso de los archivos, funcionalmente los componentes de un sistema de archivos son lenguajes de comandos, interpretador de comandos, manejador del almacenamiento secundario, sistema de entrada y salida y mecanismos de respaldo y recuperación.
En general, un Sistema de Archivos está compuesto por: Métodos De Acceso, Administración De Archivos, Administración De Almacenamiento Secundario, Mecanismos De Integridad.
Métodos De Acceso. Se ocupan de la manera en que se tendrá acceso a la información almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc.
Administración De Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, así como para hacer referencia a ellos.
Administración De Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en los dispositivos de almacenamiento secundario. En la siguiente figura se muestra un ejemplo de la administración de espacio en un disco duro.

Mecanismos De Integridad. Se ocupan de garantizar que no se corrompa la información de un archivo, de tal manera que solo la información que deba estar en el, se encuentre ahí.
Mecanismos de Organización Lógica. Contiene las diferentes rutinas y comandos a través de los cuales el usuario podrá estructurar sus archivos virtuales.
Directorio de Identificadores. Convierte los identificadores simbólicos de los archivos en identificadores internos, los cuales apuntarán a su descriptor o a una estructura que permite encontrar el archivo.
Sistemas Teóricos de Archivos. Su objetivo es el de activar y desactivar a través de las rutinas de abrir y cerrar archivos y verifica el modo de acceso.
Mecanismos de Organización Física. Traslada las direcciones lógicas en direcciones físicas correspondientes a las estructuras de memoria secundaria y los buffers en memoria principal necesarios para la transferencia de datos.
Mecanismos de E/S. Por cada petición de acceso al archivo real, este mecanismo genera la secuencia de operaciones elementales de entrada y salida que se necesita.
SCHEDULING E/S. En este nivel es donde se tiene el número de peticiones pendientes así como de las que se están realizando y lleva el control y asignación de tiempo de CPU a las diferentes peticiones de E/S.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

5.1 Concepto de Sistema de archivos

5.1 Concepto de Sistema de archivos | Sistemas Operativos ITSAV Lerdo | Scoop.it
Son los algoritmos y estructuras lógicas utilizadas para poder acceder a la información que tenemos en el disco. Cada uno de los sistemas operativos crea estas estructuras y logaritmos de diferente manera independientemente del hardware.
El desempeño de nuestro disco duro, la confiabilidad, seguridad, capacidad de expansión y la compatibilidad, estará en función de estas estructuras lógicas.

Debido a su importancia, es necesario que un sistema operativo tenga la capacidad de leer, escribir, acceder y mantener la integridad de un sistema de archivos. Un sistema de archivos provee al usuario con una abstracción que le permitirá crear con facilidad colecciones de datos llamados archivos. Estas colecciones deberán tener los siguientes requisitos o propiedades:

Existencia a largo tiempo: Los archivos deberán ser almacenados sobre una unidad de almacenamiento y deberán permanecer allí aun cuando el usuario apague el ordenador.
Deberán tener la capacidad de ser compartidos: Los archivos tendrán nombres que los identifique y deberán poseer permisos de acceso los cuales permitirán el compartimiento controlado entre procesos.
Deberán poseer una estructura definida: Dependiendo del tipo de sistema de archivos, un archivo deberá poseer una estructura definida y conveniente; permitiendo que los archivos puedan ser organizados en orden jerárquico o en cualquier otro orden para reflejar su relación con otros archivos.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

4.3 Estructura de datos para manejo de dispositivos

4.3 Estructura de datos para manejo de dispositivos | Sistemas Operativos ITSAV Lerdo | Scoop.it
¿Qué es una estructura?
Los sistemas operativos actuales son grandes y complejos, estos deben poseer una ingeniería correcta para su fácil actualización y para que puedan cumplir su función correctamente. La estructura es generalmente modular, cada modulo cumple una función determinada e interactúa con los demás módulos.
Estructura simple
El sistema MS-DOS es, sin duda, el mejor sistema operativo para microcomputadoras. Sin embargo, sus interfaces y niveles de funcionalidad no están bien definidos. Los programas de aplicación pueden acceder a operaciones básicas de entrada / salida para escribir directamente en pantalla o discos. Este libre acceso, hace que el sistema sea vulnerable, ya que un programa de aplicación puede eliminar por completo un disco rígido por alguna falla. Además este sistema, también esta limitado al hardware sobre el que corre.
Otra estructura simple es la utilizada por la versión original de UNIX, esta consiste de dos partes separadas, el kernel y los programas de sistemas . El kernel fue posteriormente separado en manejadores (drivers) de dispositivos y una serie de interfaces. El kernel provee el sistema de archivos, la programación de CPU, el administrador de memoria y otras funciones del sistema operativo que responden a las llamadas del sistema enunciadas anteriormente.
Estructura por capas (layers)
Las nuevas versiones de UNIX se diseñaron para hardware mas avanzado. Para dar mayor soporte al hardware, los sistemas operativos se dividieron en pequeñas partes. Ahora los sistemas operativos tienen mayor control sobre el hardware y las aplicaciones que se ejecutan sobre este.
La modularizacion de un sistema se puede presentar de varias formas, la mas utilizada es la de capas, la cual consiste en dividir al sistema operativo en un numero de capas. La capa de menor nivel es el hardware y la de mayor nivel es la interfaz con el usuario.
La principal ventaja es que cada capa cumple con una serie de funciones y servicios que brinda a las otras capas, esto permite una mejor organización del sistema operativo y una depuración mas fácil de este.
Cada capa se implementa solo utilizando las operaciones provistas por la capa de nivel inferior. Una capa no necesita saber como se implementan estas funciones, solo necesita saber que operaciones puede realizar.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

4.1 Dispositivos y manejadores de dispositivos

4.1 Dispositivos y manejadores de dispositivos | Sistemas Operativos ITSAV Lerdo | Scoop.it
Dispositivos de entrada/salida:

Se pueden clasificar en dos grandes categorías:

1. Dispositivos de bloque
2. Dispositivos de carácter

Las principales características de los dispositivos de bloque son:

- La información se almacena en bloques de tamaño fijo.
- Cada bloque tiene su propia dirección.
- Los tamaños más comunes de los bloques van desde los 128 bytes hasta los 1.024 bytes.
- Se puede leer o escribir en un bloque de forma independiente de los demás, en cualquier momento.
- Un ejemplo típico de dispositivos de bloque son los discos.
Las principales características de los dispositivos de carácter son:
-La información se transfiere como un flujo de caracteres, sin sujetarse a una estructura de bloques.
- No se pueden utilizar direcciones.
- No tienen una operación de busqueda.
- Unos ejemplos típicos de dispositivos de carácter son las impresoras de línea, terminales, interfaces de una red, ratones, etc.
Manejadores de Dispositivos

Todo el código que depende de los dispositivos aparece en los manejadores de dispositivos.

Cada controlador posee uno o más registros de dispositivos:

Se utilizan para darle los comandos.
Los manejadores de dispositivos proveen estos comandos y verifican su ejecución adecuada.
La labor de un manejador de dispositivos es la de:

Aceptar las solicitudes abstractas que le hace el software independiente del dispositivo.
Verificar la ejecución de dichas solicitudes.
Si al recibir una solicitud el manejador esta ocupado con otra solicitud, agregara la nueva solicitud a una cola de solicitudes pendientes.
La solicitud de e / s, por ej. para un disco, se debe traducir de términos abstractos a términos concretos:

El manejador de disco debe:

Estimar el lugar donde se encuentra en realidad el bloque solicitado.
Verificar si el motor de la unidad funciona.
Verificar si el brazo esta colocado en el cilindro adecuado, etc.
Resumiendo: debe decidir cuales son las operaciones necesarias del controlador y su orden.
Envía los comandos al controlador al escribir en los registros de dispositivo del mismo.
Frecuentemente el manejador del dispositivo se bloquea hasta que el controlador realiza cierto trabajo; una interrupción lo libera de este bloqueo.
Al finalizar la operación debe verificar los errores.
Si todo esta o.k. transferirá los datos al software independiente del dispositivo.
Regresa información de estado sobre los errores a quien lo llamo.
Inicia otra solicitud pendiente o queda en espera.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

3.3 Organización de memoria virtual

3.3 Organización de memoria virtual | Sistemas Operativos ITSAV Lerdo | Scoop.it
La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.
Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la informacion contenida en ella es de mas rapido acceso.


Solo la memoria cache es mas rapida que la principal, pero su costo es a su vez mayor.
Cuando no existe memoria virtual no hay diferenciacion entre el espacio de direcciones y la memoria real; el espacio de direcciones que puede ser usado en los programas tiene identico tamano al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamano de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual sera mayor que el de la memoria real).

La organización y administración de la “memoria principal”, “memoria primaria” o “memoria real” de un sistema ha sido y es uno de los factores mas importantes en el diseño de los S. O. (Ver la figura 3.2.1)
Los términos “memoria” y “almacenamiento” se consideran equivalentes.
Los programas y datos deben estar en el almacenamiento principal para:

Poderlos ejecutar.
Referenciarlos directamente



3.2.1 Administracion de almacenamiento

¿Cómo se maneja la administración de almacenamiento?

Para que un sistema informatico sea comodo para los usuarios, el sistema operativo proporciona una ista logica y uniforme del sistema de almacenamiento de la informacion.. El sistema operativo abstrae las propiedades fisicas de los dispositivos de almacenamiento y define una unidad de almacenamiento logico, el archivo.
El sistema operativo asigna los archivos a los soportes fisicos y accede a dichos archivos a traves de los dispositivos de almacenamiento.

Almacenamiento del sistema de archivos
La gestion de archivos es uno de los componentes mas visibles de un sistema operativo. Las computadores pueden almacenar la informacion en diferentes tipos de medios fisicos.Los discos magneticos, discos opticos y cintas magneticas son habituales. .

Cada uno de estos medios tiene sus propias caracteristicas y organizacion fisica.Cada medio se controla mediante un dispositivo, tal como una unidad de disco o una cinta, que tambien tiene sus propias caracteristicas distintivas

Estas propiedades incluyen la velocidad de acceso, la capacidad, la velocidad de transferencia de datos y el metodo de acceso (secuencial o aleatorio).

Un archivo es una coleccion de informacion relacionada definida por su creador. Comunmente, los archivos representan programas(tanto en formato fuente como en objeto) y datos. Los archivos de datos pueden ser numericos, alfabeticos, alfanumericos o binarios. Los archivos pueden tener un formato libre(como, por ejemplo, los archivos de texto) o un formato rigido, como por ejemplo una serie de campos fijos.


3.2.2 Jerarquia

Los programas y datos tienen que estar en la memoria principal para poder ejecutarseo ser referenciados.
Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario.
El almacenamiento principal es mas costoso y menor que el secundario pero de acceso mas rápido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles.
Un nivel adicional es el “cache” o memoria de alta velocidad, que posee las siguientes características:

Es más rápida y costosa que la memoria principal.
Impone al sistema un nivel mas de traspaso:
Los programas son traspasados de la memoria principal al cache antes de su ejecución.
Los programas en la memoria cache ejecutan mucho mas rápido que en la memoria principal.
Al utilizar memoria cache se espera que:
La sobrecarga que supone el traspaso de programas de un nivel de memoria a otro sea mucho menor que la mejora en el rendimiento obtenida por la posibilidad de una ejecución mucho mas rápida en la cache.


3.2.3 Estrategias de Administracion de Memoria

Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento principal.
Se dividen en las siguientes categorías:

Estrategias de búsqueda:
Estrategias de búsqueda por demanda.
Estrategias de busqueda anticipada.
Estrategias de colocación.
Estrategias de reposición.
Las “estrategias de busqueda” están relacionadas con el hecho de cuando obtener el siguiente fragmento de programa o de datos para su inserción en la memoria principal.
En la “busqueda por demanda” el siguiente fragmento de programa o de datos se carga al almacenamiento principal cuando algún programa en ejecución lo referencia.
Se considera que la “busqueda anticipada” puede producir un mejor rendimiento del sistema.
Las “estrategias de colocación” están relacionadas con la determinación del lugar de la memoria donde se colocara (cargara) un programa nuevo.
Las “estrategias de reposición” están relacionadas con la determinación de que fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.


3.2.4 Asignacion continua V.S No continua

Qué es la administración contigua y no contigua?

En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento.
Asignación contigua de almacenamiento de un solo usuario
Se consideran S. O. que ya poseen desarrollado el

“sistema de control de entrada / salida”: IOCS: input / output control system

El tamaño de los programas esta limitado por la cantidad de memoria principal, pero se puede superar este limite con técnicas de “recubrimientos”, con las siguientes características.

Si una sección particular del programa ya no es necesaria, se carga otra sección desde el almacenamiento secundario ocupando las áreas de memoria liberadas por la sección que ya no se necesita.
La administración manual por programa del recubrimiento es complicada y dificulta el desarrollo y el mantenimiento.

En la “asignación no contigua” un programa se divide en varios bloques o “segmentos” que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es mas compleja pero mas eficiente que la asignación continua.


3.2.5 Multiprogramacion de particion fija, Particion Variable de intercambio de almacenamiento


Multiprogramación de Partición Fija.
Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que:

Cuando ocurre una petición de e / s la cpu normalmente no puede continuar el proceso hasta que concluya la operación de e / s requerida.
Los periféricos de e / s frenan la ejecución de los procesos ya que comparativamente la cpu es varios ordenes de magnitud mas rápida que los dispositivos de e / s.

Los sistemas de “multiprogramación” permiten que varios procesos usuarios compitan al mismo tiempo por los recursos del sistema:

Un trabajo en espera de e / s cederá la cpu a otro trabajo que este listo para efectuar cómputos.
Existe paralelismo entre el procesamiento y la e / s.
Se incrementa la utilización de la cpu y la capacidad global de ejecución del sistema.
Es necesario que varios trabajos residan a la vez en la memoria principal.
Multiprogramación de Partición Fija: Traducción y Carga Absolutas.
Las “particiones” del almacenamiento principal:

Son de tamaño fijo.
Alojan un proceso cada una.
La cpu se cambia rápidamente entre los procesos creando la ilusión de simultaneidad.
Los trabajos se traducían con ensambladores y compiladores absolutos para ser ejecutados solo dentro de una partición especifica.


El S. O. resulta de implementación relativamente sencilla pero no se optimiza la utilización de la memoria.
Multiprogramación de Partición Fija: Traducción y Carga Relocalizables. Los compiladores, ensambladores y cargadores de relocalizacion

Se usan para producir programas relocalizables que puedan ser ejecutados en cualquier partición disponible de tamaño suficiente para aceptarlos.
Son más complejos que los absolutos.
Mejoran la utilización del almacenamiento.
Confieren más flexibilidad en el armado de la carga de procesos.

Protección en los Sistemas de Multiprogramación

Si se utiliza asignación contigua de memoria la protección suele implementarse con varios “registros de limites” .
Los extremos superior e inferior de una partición pueden ser:

Delineados con dos registros.
Indicados el limite inferior o superior y el tamaño de la partición o región.

Fragmentación en la Multiprogramación de Partición Fija.
La “fragmentación de almacenamiento” ocurre en todos los sistemas independientemente de su organización de memoria.
En los S. O. de multiprogramación de partición fija la fragmentación se produce cuando:

Los trabajos del usuario no llenan completamente sus particiones designadas.
Una partición permanece sin usar porque es demasiado pequeña para alojar un trabajo que esta en espera.
Multiprogramación de Partición Variable.
Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio disponible de memoria.
No hay limites fijos de memoria, es decir que la partición de un trabajo es su propio tamaño.
Se consideran “esquemas de asignación contigua”, dado que un programa debe ocupar posiciones adyacentes de almacenamiento.
Los procesos que terminan dejan disponibles espacios de memoria principal llamados “agujeros”:

Pueden ser usados por otros trabajos que cuando finalizan dejan otros “agujeros” menores.
En sucesivos pasos los “agujeros” son cada vez mas numerosos pero mas pequeños, por lo que se genera un desperdicio de memoria principal.
Combinación de agujeros (áreas libres).
Consiste en fusionar agujeros adyacentes para formar uno sencillo más grande.
Se puede hacer cuando un trabajo termina y el almacenamiento que libera tiene limites con otros agujeros.
Multiprogramación con Intercambio de Almacenamiento
En el esquema de “intercambio” los programas del usuario no requieren permanecer en la memoria principal hasta su terminación.
;Una variante consiste en que un trabajo se ejecuta hasta que ya no puede continuar:

Cede el almacenamiento y la cpu al siguiente trabajo.
La totalidad del almacenamiento se dedica a un trabajo durante un breve periodo de tiempo.
Los trabajos son “intercambiados”, dándose que un trabajo puede ser intercambiado varias veces antes de llegar a su terminación.
Es un esquema razonable y eficiente para un numero relativamente reducido de procesos de usuarios.
Los sistemas de intercambio fueron los predecesores de los sistemas de paginación.
El rendimiento de los sistemas de intercambio mejora al reducir el tiempo de intercambio:

Manteniendo al mismo tiempo varias “imágenes de usuario o imágenes de memoria” en la memoria principal.
Retirando una imagen de usuario de la memoria principal solo cuando es necesario su almacenamiento para una nueva imagen.
Incrementando la cantidad de memoria principal disponible en el sistema.
Las imágenes de usuario (imágenes de memoria) retiradas del almacenamiento principal se graban en el almacenamiento secundario (discos).
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

2.6 Tecnicas de Adminstracion de Planificacion

2.6 Tecnicas de Adminstracion de Planificacion | Sistemas Operativos ITSAV Lerdo | Scoop.it
Las disciplinas de planificación pueden ser:

• Expropiativas
• No expropiativas

Se denomina planificador al software del sistema operativo encargado de asignar los recursos de un sistema entre los procesos que los solicitan. Siempre que haya tomar una decisión, el planificador debe decidir cuál de los procesos que compiten por la posesión de un determinado recursos lo recibirá.

Los algoritmos (técnicas) tienen distintas propiedades según los criterios en los que se basen para su construcción, lo cual se refleja en qué tipo de procesos se puede ver favorecido frente a otro en la disputa del procesador. Antes de realizar la elección de un algoritmo se debe considerar las propiedades de estos frente al criterio de diseño elegido. Algunos de estos son:

a) Eficacia: Se expresa como un porcentaje del tiempo medio de utilización. Aunque puede parecer lógico intentar mantener este parámetro próximo al 100%, con un valor tan elevado otros aspectos importante de medida del comportamiento del sistema pueden verse deteriorados, como por ejemplo el tiempo medio de espera.

b) Rendimiento: Es una medida del numero de procesos completados por unidad de tiempo. Por ejemplo 10 procesos por segundo.

c) Tiempo de retorno o regreso: Es el intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que completa por el sistema.

d) Tiempo de espera: Es el tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar una medida mas adecuada de la eficiencia del sistema, ya que se elimina de la media el tiempo que tarda en ejecutarse el mismo.

e) Tiempo de respuesta a un evento: Se denomina así el intervalo de tiempo que transcurre desde que se señala un evento hasta que se ejecuta la primera instrucción de la rutina de servicio de dicho evento. El criterio de selección de un algoritmo se suele basar en la maximización o minimización de una función de los parámetros anteriores.

2.6.1. FIFO

Mecanismo de scheduling en el cual los procesos se ordenan en una fila, en la cual se ejecutan cada uno de los procesos hasta su finalización secuencialmente. Es tremendamente ineficiente.

Cuando se tiene que elegir a qué proceso asignar la CPU se escoge al que llevara más tiempo listo. El proceso se mantiene en la CPU hasta que se bloquea voluntariamente.

Para implementar el algoritmo sólo se necesita mantener una cola con los procesos listos ordenada por tiempo de llegada. Cuando un proceso pasa de bloqueado a listo se sitúa el último de la cola.

2.6.2 SJF

Al igual que en el algoritmo FIFO las ráfagas se ejecutan sin interrupción, por tanto, sólo es útil para entornos batch. Su característica es que cuando se activa el planificador, éste elige la ráfaga de menor duración. Es decir, introduce una noción de prioridad entre ráfagas.

Hay que recordar que en los entornos batch se pueden hacer estimaciones del tiempo de ejecución de los procesos. La ventaja que presenta este algoritmo sobre el algoritmo FIFO es que minimiza el tiempo de finalización promedio, como puede verse en el siguiente ejemplo:

Supongamos que en un momento dado existen tres ráfagas listos R1, R2 y R3, sus tiempos de ejecución respectivos son 24, 3 y 3 ms. El proceso al que pertenece la ráfaga R1 es la que lleva más tiempo ejecutable, seguido del proceso al que pertenece R2 y del de R3.

• FIFO F = (24 + 27 + 30) / 3 = 27 ms.
• SJF F = (3 + 6 + 30) / 3 = 13 ms.


2.6.3 RR

Cada proceso tiene asignado un intervalo de tiempo de ejecución, llamado cuantum o cuanto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum también se alterna el uso de la CPU.

El round robin es muy fácil de implementar. Todo lo que necesita el planificador es mantener una lista de los procesos listos.


2.6.4 Queves Multi-level

Un algoritmo de planificación multinivel particiona la cola de listos en colas separadas. Se asignan en forma permanente los trabajos a una cola, generalmente, basándose en alguna propiedad del mismo (requerimientos de memoria, tipo de trabajo), teniendo cada cola su propio algoritmo. Por ejemplo, la cola interactiva podría planificarse usando RR y la batch FIFO.

Ningún trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor prioridad no están vacías. Si algún trabajo entra en una cola de mayor prioridad, el trabajo de otras colas es interrumpido.

2.6.5 Multi-Level Feedback Queves
En colas multinivel realimentadas los trabajos pueden moverse dentro de distintas colas. La idea es separar procesos con distintos tipos de interrupciones de la CPU. Si un trabajo consume mucho tiempo de CPU, será movido a una cola con menor prioridad.

En forma similar, si un proceso espera demasiado tiempo en una cola de baja prioridad, lo moveremos a una cola de mayor prioridad.

En general un planificador de este tipo esta definido por los siguientes parámetros:

1. El número de colas.

2. El tipo de algoritmo de planificación de cada cola.

3. Un método de determinación de cuando mover un trabajo a una cola de mayor prioridad.

4. Un método de determinación de cuando mover un trabajo a una cola de menor prioridad.

5. Un método de determinación de a qué cola se enviará un trabajo cuando necesita servicio.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

6.7 Cifrado

6.7 Cifrado | Sistemas Operativos ITSAV Lerdo | Scoop.it
Cifrado

La gran desventaja de las llaves secretas es que requieren un canal seguro para ser distribuidas - Si una contrasena es enviada por un canal inseguro puede ser interceptada, y no habria manera de lograr que quien la intercepte descifre con ella los mensajes enviados, o evitar que modifique o envie mensajes falsificando su identidad. No siempre disponemos de un canal seguro. Lo que es mas, estrictamente hablando, los canales seguros simplemente no existen. Sea como sea que la informacion sea transmitida, siempre podra ser escuchada por un tercero. Si hace falta tener un canal seguro para intercambiar las contrasenas, la utilidad de las contrasenas se vuelve nula.

La primera respuesta a estos problemas viene de Diffie y Hellman [ 5 ], siendo una de las implementaciones mas comunes la RSA (por las siglas de sus autores, Rivest, Shamir y Adelman). Ellos proponen un sistema en el cual haya dos funciones: E para cifrar y D para descifrar un mensaje en claro P, tal que D (E (P)) = P. [ 4 ]

Las funciones E y D se traducen en un par unico de llaves para llevar a cabo una comunicacion encriptada: Una llave publica y una llave privada. La llave publica es distribuida a cuantas personas esten interesadas en ella, mientras que la llave privada se guarda celosamente. Cuando una persona quiere enviarme un mensaje cifrado, lo cifra utilizando mi llave publica, y solo yo podre descifrarlo utilizando mi llave privada. Estas funciones, ademas, tienen la caracteristica que si bien calcularlas en el sentido correcto es relativamente sencillo, pero intentar aplicarlas en el sentido inverso (encontrar una funcion inversa a E que nos permita encontrar P) es tan dificil que se vuelve altamente impractico.

Otra importante caracteristica de los algoritmos derivados del trabajo de Diffie y Hellman es que las funciones aplicadas son simetricas: Se puede aplicar tanto D (E (P)) = P como E (D (P)) = P.

Una fuerte desventaja de las llaves asimetricas es su complejidad matematica. Ademas de ser mucho mas complejas las funciones necesarias para realizar este tipo de cifrado, esto se refleja desde el tamano de la llave: Las mas cortas empleadas hoy en dia son de 512 bits, y no se consideran seguras de menos de 1024. No es poco comun, por otra parte, encontrar llaves de hasta 2048 bits.

Sistemas de cifrado simetrico.

Los sistemas de cifrado simetrico son aquellos que utilizan la misma clave para cifrar y descifrar un documento. El principal problema de seguridad reside en el intercambio de claves entre el emisor y el receptor ya que ambos deben usar la misma clave. Por lo tanto se tiene que buscar tambien un canal de comunicacion que sea seguro para el intercambio de la clave. Es importante que dicha clave sea muy dificil de adivinar ya que hoy en dia los ordenadores pueden adivinar claves muy rapidamente. Por ejemplo el algoritmo de cifrado DES usa una clave de 56 bits, lo que significa que hay 72 mil billones de claves posibles. Actualmente ya existen ordenadores especializados que son capaces de probar todas ellas en cuestion de horas. Hoy por hoy se estan utilizando ya claves de 128 bits que aumentan el "espectro" de claves posibles (2 elevado a 128) de forma que aunque se uniesen todos los ordenadores existentes en estos momentos no lo conseguirian en miles de millones de anos.

Sistemas de cifrado asimetrico.

Tambien son llamados sistemas de cifrado de clave publica. Este sistema de cifrado usa dos claves diferentes. Una es la clave publica y se puede enviar a cualquier persona y otra que se llama clave privada, que debe guardarse para que nadie tenga acceso a ella. Para enviar un mensaje, el remitente usa la clave publica del destinatario para cifrar el mensaje. Una vez que lo ha cifrado, solamente con la clave privada del destinatario se puede descifrar, ni siquiera el que ha cifrado el mensaje puede volver a descifrarlo. Por ello, se puede dar a conocer perfectamente la clave publica para que todo aquel que se quiera comunicar con el destinatario lo pueda hacer.

Un sistema de cifrado de clave publica basado en la factorizacion de numeros primos se basa en que la clave publica contiene un numero compuesto de dos numeros primos muy grandes. Para cifrar un mensaje, el algoritmo de cifrado usa ese compuesto para cifrar el mensaje. Para descifrar el mensaje, el algoritmo de descifrado requiere conocer los factores primos, y la clave privada tiene uno de esos factores, con lo que puede facilmente descifrar el mensaje.

Es facil, con los ordenadores de hoy en dia, multiplicar dos numeros grandes para conseguir un numero compuesto, pero es muy dificil la operacion inversa, Dado ese numero compuesto, factorizarlo para conocer cada uno de los dos numeros. Mientras que 128 bits se considera suficiente en las claves de cifrado simetrico, y dado que la tecnologia de hoy en dia se encuentra muy avanzada, se recomienda en este caso que la clave publica tenga un minimo de 1024 bits. Para un ataque de fuerza bruta, por ejemplo, sobre una clave publica de 512 bits, se debe factorizar un numero compuesto de hasta 155 cifras decimales.

Autenticacion

Autenticacion ( Griego : αυθεντικ?? = verdadero o genuino, de ' los authentes' = el autor) es el acto de establecimiento o confirmacion de algo (o alguien) como autentico, es decir que reclama hecho por o sobre la cosa son verdadero. La autenticacion de un objeto puede significar (pensar) la confirmacion de su procedencia, mientras que la autenticacion de una persona a menudo consiste en verificar su identidad. La autenticacion depende de uno o varios factores de autenticacion.

En terminos de seguridad de redes de datos, se puede considerar uno de los tres pasos fundamentales (AAA). Cada uno de ellos es, de forma ordenada:

Autenticacion En la seguridad de ordenador, la autenticacion es el proceso de intento de verificar la identidad digital del remitente de una comunicacion como una peticion para conectarse. El remitente siendo autenticado puede ser una persona que usa un ordenador, un ordenador por si mismo o un programa del ordenador. En un web de confianza, "autenticacion" es un modo de asegurar que los usuarios son quien ellos dicen que ellos son - que el usuario que intenta realizar funciones en un sistema es de hecho el usuario que tiene la autorizacion para hacer asi.

Mecanismo general de autenticacion

La mayor parte de los sistemas informaticos y redes mantienen de uno u otro modo una relacion de identidades personales (usuarios) asociadas normalmente con un perfil de seguridad, roles y permisos. La autenticacion de usuarios permite a estos sistemas asumir con una seguridad razonable que quien se esta conectando es quien dice ser para que luego las acciones que se ejecuten en el sistema puedan ser referidas luego a esa identidad y aplicar los mecanismos de autorizacion y/o auditoria oportunos.

El primer elemento necesario (y suficiente estrictamente hablando) por tanto para la autenticacion es la existencia de identidades biunivocamente identificadas con un identificador unico (valga la redundancia). Los identificadores de usuarios pueden tener muchas formas siendo la mas comun una sucesion de caracteres conocida comunmente como login .

El proceso general de autenticacion consta de los siguientes pasos:

El usuario solicita acceso a un sistema.
El sistema solicita al usuario que se autentique.
El usuario aporta las credenciales que le identifican y permiten verificar la autenticidad de la identificacion.
El sistema valida segun sus reglas si las credenciales aportadas son suficientes para dar acceso al usuario o no.
Distribucion de claves
Lo ideal seria que pudieramos distribuir nuestra clave entregandosela en persona a nuestros corresponsales. Sin embargo, en la practica las claves se distribuyen a menudo por correo electronico o algun otro medio de comunicacion electronica. La distribucion por correo electronico es una buena practica solo cuando tengamos unos pocos corresponsales, e incluso si tuvieramos muchos corresponsales, podriamos usar un medio alternativo como puede ser publicar nuestra clave publica en nuestra pagina en Internet. Sin embargo, esto es inutil si las personas que necesitan nuestra clave publica no saben donde encontrar nuestra pagina.

Para solventar este problema existen los servidores de claves publicas, que recolectan y distribuyen las claves publicas. Cuando un servidor recibe una clave publica, bien la anade a la base de datos o bien la fusiona con una copia de la clave. Cuando alguien requiere al servidor una clave publica, este la busca en la base de datos, y si la encuentra, la envia a quien se la haya solicitado.

Los servidores de claves tambien son utiles cuando hay muchas personas que firman las claves de otras con frecuencia. Sin un servidor de claves, cuando Arranca firma la clave de Javier, deberia enviar a esta una copia de la clave firmada por el, de manera que Javier pudiera anadir la clave firmada a su anillo de claves asi como distribuirla a todos sus corresponsales. Mediante este proceso Javier y Arancha sirven a la totalidad de la comunidad construyendo lazos en forma de anillos de confianza, o lo que es lo mismo, mejorando la seguridad de PGP. De todos modos esto es una molestia si se firman las claves con frecuencia.

El uso de un servidor de claves facilita este proceso. Despues de firmar la clave de Javier, Arancha puede enviar la copia firmada por el al servidor de claves. El servidor de claves anade la firma de Arancha a la copia que ya posee de Javier. Las personas que esten interesadas en actualizar su copia de la clave de Javier, consultan al servidor por propia iniciativa para obtener la clave actualizada. Javier no necesita distribuir la clave, y puede obtener las firmas en su clave requiriendolas al servidor.

Se pueden enviar una o mas claves usando la opcion de la linea de ordenes --send-keys . Esta opcion toma uno o mas especificadores de claves, y envia las claves especificadas al servidor de claves. El servidor al que se envian las claves es especifica con la opcion de la linea de ordenes --keyserver . Paralelamente, la opcion --recv-keys se usa para obtener claves desde un servidor de claves, pero la opcion --recv-keys requiere el uso de un identificador de claves para poder especificar la clave deseada. En el siguiente ejemplo Javier envia su clave publica al servidor de claves certserver.pgp.com , y a continuacion actualiza su copia de la clave de Arancha desde el mismo servidor.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

6.6 Clasificaciones de la seguridad

6.6 Clasificaciones de la seguridad | Sistemas Operativos ITSAV Lerdo | Scoop.it
La seguridad interna esta relacionada a los controles incorporados al hardware y al Sistema Operativo para asegurar los recursos del sistema.

Seguridad Externa

La seguridad externa consiste en:

Seguridad fisica.
Seguridad operacional.
La seguridad fisica incluye:
Proteccion contra desastres(como inundaciones, incendios, etc.).
Proteccion contra intrusos.
En la seguridad fisica son importantes los mecanismos de deteccion , algunos ejemplos son:
Detectores de humo.
Sensores de calor.
Detectores de movimiento.
La proteccion contra desastres puede ser costosa y frecuentemente no se analiza en detalle; depende en gran medida de las consecuencias de la perdida.
La seguridad fisica trata especialmente de impedir la entrada de intrusos:

Se utilizan sistemas de identificacion fisica:
Tarjetas de identificacion.
Sistemas de huellas digitales.
Identificacion por medio de la voz.
Seguridad Operacional

Consiste en las diferentes politicas y procedimientos implementados por la administracion de la instalacion computacional.

La autorizacion determina que acceso se permite y a quien.

La clasificacion divide el problema en subproblemas:

Los datos del sistema y los usuarios se dividen en clases:
A las clases se conceden diferentes derechos de acceso.
Un aspecto critico es la seleccion y asignacion de personal:

La pregunta es si se puede confiar en la gente.
El tratamiento que generalmente se da al problema es la division de responsabilidades:
Se otorgan distintos conjuntos de responsabilidades.
No es necesario que se conozca la totalidad del sistema para cumplir con esas responsabilidades.
Para poder comprometer al sistema puede ser necesaria la cooperacion entre muchas personas:
Se reduce la probabilidad de violar la seguridad.
Debe instrumentarse un gran numero de verificaciones y balances en el sistema para ayudar a la deteccion de brechas en la seguridad.
El personal debe estar al tanto de que el sistema dispone de controles, pero:
Debe desconocer cuales son esos controles:
Se reduce la probabilidad de poder evitarlos.
Debe producirse un efecto disuasivo respecto de posibles intentos de violar la seguridad.
Para disenar medidas efectivas de seguridad se debe primero:

Enumerar y comprender las amenazas potenciales.
Definir que grado de seguridad se desea (y cuanto se esta dispuesto a gastar en seguridad).
Analizar las contramedidas disponibles.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

6.4 Proteccion basada en el lenguaje

6.4 Proteccion basada en el lenguaje | Sistemas Operativos ITSAV Lerdo | Scoop.it
Accedo al Sistema de Archivos

Cuando se declaren los distintos tipos de datos, tambien se especificara la proteccion
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

6.2 Funciones del sistema de proteccion

6.2 Funciones del sistema de proteccion | Sistemas Operativos ITSAV Lerdo | Scoop.it
Control de acceso que hace referencia a las caracteristicas de seguridad que controlan quien puede obtener acceso a los recursos de un sistema operativo. Las aplicaciones llaman a las funciones de control de acceso para establecer quien puede obtener acceso a los recursos especificos o controlar el acceso a los recursos proporcionados por la aplicacion.

Un sistema de proteccion debera tener la flexibilidad suficiente para poder imponer una diversidad de politicas y mecanismos.

Existen varios mecanismos que pueden usarse para asegurar los archivos, segmentos de memoria, CPU, y otros recursos administrados por el Sistema Operativo.

Por ejemplo, el direccionamiento de memoria asegura que unos procesos puedan ejecutarse solo dentro de sus propios espacios de direccion. El timer asegura que los procesos no obtengan el control de la CPU en forma indefinida.

La proteccion se refiere a los mecanismos para controlar el acceso de programas, procesos, o usuarios a los recursos definidos por un sistema de computacion. Seguridad es la serie de problemas relativos a asegurar la integridad del sistema y sus datos.

Hay importantes razones para proveer proteccion. La mas obvia es la necesidad de prevenirse de violaciones intencionales de acceso por un usuario. Otras de importancia son, la necesidad de asegurar que cada componente de un programa, use solo los recursos del sistema de acuerdo con las politicas fijadas para el uso de esos recursos.

Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un usuario incompetente. Los sistemas orientados a la proteccion proveen maneras de distinguir entre uso autorizado y desautorizado.

Mecanismos y Politicas

El sistema de proteccion tiene la funcion de proveer un mecanismo para el fortalecimiento de las politicas que gobiernan el uso de recursos. Tales politicas se pueden establecer de varias maneras, algunas en el diseno del sistema y otras son formuladas por el administrador del sistema. Otras pueden ser definidas por los usuarios individuales para proteger sus propios archivos y programas.

Las politicas son diversas, dependen de la aplicacion y pueden estar sujetas a cambios a lo largo del tiempo.
Un principio importante es la separacion de politicas de los mecanismos. ‘Los mecanismos determinan como algo se hara. Las politicas deciden que se hara'.

La separacion es importante para la flexibilidad del sistema.

Dentro de las funciones del sistema de proteccion del sistema operativo encontramos:


• Controlar el acceso a los recursos

• Asegurarse que todos los accesos a los recursos del sistema estan controlados
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

5.8 Mecanismo de recuperacion en caso de falla

5.8 Mecanismo de recuperacion en caso de falla | Sistemas Operativos ITSAV Lerdo | Scoop.it
Recuperación

Los archivos y directorios se mantienen tanto en memoria principal como en disco, y debe tener. Se cuidado para que los fallos del sistema no provoquen una pérdida de datos o una incoherencia en los mismos.

Comprobación de coherencia.

Como hemos explicado en la Sección 11.3, parte de la información de directorios se almacena en la memoria principal (o en caché) para acelerar el acceso. La información de directorios en11a memoria principal está, generalmente, más actualizada que la correspondiente información en el disco, porque la información de directorios almacenada en caché no se escribe necesariamente en el disco nada más producirse la actualización.

Considere, entonces, el posible ejemplo de un fallo de la computadora. El contenido de la caché y de los búferes, así como de las operaciones de E/S que se estuvieran realizando en ese momento, pueden perderse, y con él se perderán los cambios realizados en los directorios correspondientes a los archivos abiertos. Dicho suceso puede dejar el sistema de archivos en un estado incoherente. El estado real de algunos archivos no será el que se describe en la estructura de directorios.

Con frecuencia, suele ejecutarse un programa especial durante el reinicio para comprobar las posibles incoherencias del disco y corregidas.

El comprobador de coherencia (un programa del sistema tal como fsck en UNIX o chkdsk en MS-DOS), compara los datos de la estructura de directorios con los bloques de datos del disco y trata de corregir todas las incoherencias que detecte. Los algoritmos de asignación y de gestión del espacio libre dictan los tipos de problemas que el comprobador puede tratar de detectar y dictan también el grado de éxito que el comprobador puede tener en esta tarea. Por ejemplo, si se utiliza un sistema de asignación enlazada y existe un enlace entre cada bloque y el siguiente, puede reconstruirse el archivo completo a partir de los bloques de datos y volver a crear la estructura de directorios. Por el contrario, la pérdida de una entrada de directorio en un sistema de asignación indexada puede ser desastrosa, porque los bloques de datos no tienen ningún conocimiento acerca de los demás bloques de datos del archivo. Por esta razón, UNIX almacena en caché las entradas de directorio para las lecturas, pero todas las escrituras de datos que provoquen algún cambio en la asignación de espacio o en algún otro tipo de metadato se realizan síncronamente, antes de escribir los correspondientes bloques de datos. Por supuesto, también pueden aparecer problemas si se interrumpe una escritura síncrona debido a un fallo catastrófico.

La perdida de la información es uno de los factores que se le debe de dar mayor importancia, por la sencilla razón de que al perder información se puede perder lo que no nos podemos imaginar en cuanto a la misma y ocasionar perdidas hasta hablar de una gran cantidad de dinero. Para solucionar este o estos problemas todo sistema operativo cuenta con al menos una herramienta de software que nos permite recuperar información perdida hasta cierta medida, esto obedece de acuerdo al daño causado o los daños. Si el sistema no cuenta con la herramienta necesaria, deberá adquirirse el software apropiado de algún fabricante especializado en el ramo, por ejemplo Norton.

Es necesario proteger la información alojada en el sistema de archivos, efectuando los resguardos correspondientes.

De esta manera se evitan las consecuencias generalmente catastróficas de la pérdida de los sistemas de archivos.

Las pérdidas se pueden deber a problemas de hardware, software, hechos externos, etc.

Manejo de un bloque defectuoso:

Se utilizan soluciones por hardware y por software.

La solución en hardware:

Consiste en dedicar un sector del disco a la lista de bloques defectuosos.
Al inicializar el controlador por primera vez:
Lee la “lista de bloques defectuosos”.
Elige un bloque (o pista) de reserva para reemplazar los defectuosos.
Registra la asociación en la lista de bloques defectuosos.
En lo sucesivo, las solicitudes del bloque defectuoso utilizarán el de repuesto.
La solución en software:

Requiere que el usuario o el sistema de archivos construyan un archivo con todos los bloques defectuosos.
Se los elimina de la “lista de bloques libres”.
Se crea un “archivo de bloques defectuosos”:
Esta constituido por los bloques defectuosos.
No debe ser leído ni escrito.
No se debe intentar obtener copias de respaldo de este archivo.
Respaldos (copias de seguridad o de back-up):

Es muy importante respaldar los archivos con frecuencia.

Los discos magnéticos fallan en ocasiones y es necesario tener cuidado para garantizar que los datos perdidos debido a esos fallos no se pierdan para siempre. Con este fin, pueden utilizarse programas del sistema para realizar una copia de seguridad de los datos del disco en otro dispositivo de almacenamiento, como por ejemplo un disquete, una cinta magnética, un disco óptico incluso otro disco duro. La recuperación de la pérdida de un archivo individual o de un disco completo puede ser entonces, simplemente, una cuestión de restaurar los datos a partir de la copia de seguridad.

Los respaldos pueden consistir en efectuar copias completas del contenido de los discos (flexibles o rígidos).

Una estrategia de respaldo consiste en dividir los discos en áreas de datos y áreas de respaldo , utilizándolas de a pares:

Se desperdicia la mitad del almacenamiento de datos en disco para respaldo.
Cada noche (o en el momento que se establezca), la parte de datos de la unidad 0 se copia a la parte de respaldo de la unidad 1 y viceversa.
Otra estrategia es el vaciado por incrementos o respaldo incremental :

Se obtiene una copia de respaldo periódicamente (por ej.: una vez por mes o por semana), llamada copia total.
Se obtiene una copia diaria solo de aquellos archivos modificados desde la última copia total; en estrategias mejoradas, se copian solo aquellos archivos modificados desde la última vez que dichos archivos fueron copiados.
Se debe mantener en el disco información de control como una “lista de los tiempos de copiado” de cada archivo, la que debe ser actualizada cada vez que se obtienen copias de los archivos y cada vez que los archivos son modificados.
Puede requerir una gran cantidad de cintas de respaldo dedicadas a los respaldos diarios entre respaldos completos.
Para minimizar la cantidad de datos que haya que copiar, podemos utilizar la información contenida en la entrada de directorio de cada archivo. Por ejemplo, si el programa de copia de seguridad sabe cuándo se realizó la última copia de seguridad de un archivo y la fecha de última modificación del archivo contenida en el directorio indica que el archivo no ha cambiado desde esa fecha, no será necesario volver a copiar el archivo. Así un plan típico de copia de seguridad podría ser el siguiente:

• Día 1. Copiar en el soporte de copia de seguridad todos los archivos del disco. Esto se denomina copia de seguridad completa.

• Día 2. Copiar en otro soporte físico todos los archivos que se hayan modificado desde el día 1. Esta es una copia de seguridad incremental.

• Día 3. Copiar en otro soporte físico todos los archivos que se hayan modificado desde el día 2.

• Día N. Copiar en otro soporte físico todos los archivos que se hayan modificado desde el día N - 1. Después, volver al día 1.

Podemos escribir las copias de seguridad correspondientes al nuevo ciclo sobre el conjunto anterior de soportes físicos o en un nuevo conjunto de soportes de copia de seguridad. De esta forma, podemos restaurar un disco completo comenzando la restauración con la copia de seguridad completa y continuando con cada una de las copias de seguridad incrementales. Por supuesto, cuanto mayor sea el valor de N, más cintas o discos habrá que leer para efectuar una restauración completa. Una ventaja adicional de este ciclo de copia de seguridad es que podemos restaurar cualquier archivo que haya sido borrado accidentalmente durante ese ciclo, extrayendo el archivo borrado de la copia de seguridad del día anterior. La longitud del ciclo será un compromiso entre la cantidad de soportes físicos de copia de seguridad requeridos y el número de días pasados a partir de los cuales podamos realizar una restauración. Para reducir el número de cintas que haya que leer para efectuar una restauración, una opción consiste en realizar una copia de seguridad completa y luego copiar cada día todos los archivos que hayan cambiado desde la última copia de seguridad completa. De esta forma, puede realizarse la restauración utilizando sólo la copia de seguridad incremental más reciente y la copia de seguridad completa, no necesitándose ninguna otra copia de seguridad incremental. El compromiso inherente a este sistema es que el número de archivos modificado se incrementa a diario, por lo que cada copia de seguridad incremental sucesiva contiene más archivos y requiere más espacio en el soporte de copia de seguridad.

Consistencia del sistema de archivos:

Muchos sistemas de archivos leen bloques, los modifican y escriben en ellos después.

Si el sistema falla antes de escribir en los bloques modificados, el sistema de archivos puede quedar en un “estado inconsistente”.

La inconsistencia es particularmente crítica si alguno de los bloques afectados son:

Bloques de nodos-i.
Bloques de directorios.
Bloques de la lista de bloques libres.
La mayoría de los sistemas dispone de un programa utilitario que verifica la consistencia del sistema de archivos:

Se pueden ejecutar al arrancar el sistema o a pedido.
Pueden actuar sobre todos o algunos de los discos.
Pueden efectuar verificaciones a nivel de bloques y a nivel de archivos.
La consistencia del sistema de archivos no asegura la consistencia interna de cada archivo, respecto de su contenido.
Generalmente pueden verificar también el sistema de directorios y / o de bibliotecas.
Generalmente los utilitarios utilizan dos tablas:

Tabla de bloques en uso.
Tabla de bloques libres.
Cada bloque debe estar referenciado en una de ellas.
Si un bloque no aparece en ninguna de las tablas se trata de una falla llamada bloque faltante:

No produce daños pero desperdicia espacio en disco.
Se soluciona añadiendo el bloque a la tabla de bloques libres.
También podría detectarse la situación de falla debida a un bloque referenciado dos veces en la tabla de bloques libres:

Esta falla no se produce en los sistemas de archivos basados en mapas de bits, sí en los basados en tablas o listas.
La solución consiste en depurar la tabla de bloques libres.
Una falla muy grave es que el mismo bloque de datos aparezca referenciado dos o más veces en la tabla de bloques en uso:

Como parte del mismo o de distintos archivos.
Si uno de los archivos se borra, el bloque aparecería en la tabla de bloques libres y también en la de bloques en uso.
Una solución es que el verificador del sistema de archivos:
Asigne un bloque libre.
Copie en el bloque libre el contenido del bloque conflictivo.
Actualice las tablas afectando el bloque copia a alguno de los archivos.
Agregue el bloque conflictivo a la tabla de bloques libres.
Informe al usuario para que verifique el daño detectado y la solución dada.
Otro error posible es que un bloque esté en la tabla de bloques en uso y en la tabla de bloques libres:

Se soluciona eliminándolo de la tabla de bloques libres.
Las verificaciones de directorios incluyen controles como:

Número de directorios que apuntan a un nodo-i con los contadores de enlaces almacenados en los propios nodos-i; en un sistema consistente de archivos deben coincidir.
Una posible falla es que el contador de enlaces sea mayor que el número de entradas del directorio:

Aunque se eliminaran todos los archivos de los directorios el contador sería distinto de cero y no se podría eliminar el nodo-i.
No se trata de un error serio pero produce desperdicio de espacio en disco con archivos que no se encuentran en ningún directorio.
Se soluciona haciendo que el contador de enlaces en el nodo-i tome el valor correcto; si el valor correcto es 0, el archivo debe eliminarse.
Otro tipo de error es potencialmente catastrófico:

Si dos entradas de un directorio se enlazan a un archivo, pero el nodo-i indica que solo existe un enlace, entonces, al eliminar cualquiera de estas entradas de directorio, el contador del nodo-i tomará el valor 0.
Debido al valor 0 el sistema de archivos lo señala como no utilizado y libera todos sus bloques.
Uno de los directorios apunta hacia un nodo-i no utilizado, cuyos bloques se podrían asignar entonces a otros archivos.
La solución es forzar que el contador de enlaces del nodo-i sea igual al número de entradas del directorio.
También se pueden hacer verificaciones heurísticas , por ej.:

Cada nodo-i tiene un modo, pero algunos modos son válidos aunque extraños:
Ej.: Se prohibe el acceso al propietario y todo su grupo, pero se permite a los extraños leer, escribir y ejecutar el archivo.
La verificación debería detectar e informar de estas situaciones.
Se debería informar como sospechosos aquellos directorios con excesivas entradas, por ej., más de mil.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

5.6 Manejo de espacio en memoria secundaria

5.6 Manejo de espacio en memoria secundaria | Sistemas Operativos ITSAV Lerdo | Scoop.it
A diferencia de la Memoria Principal la Memoria Secundaria , auxiliar, masiva, externa no es tan veloz pero tiene gran capacidad para almacenar información en dispositivos tales como discos, cintas magnéticas, discos ópticos. Frecuentemente los datos y programas se graban en la Memoria Secundaria , de esta forma, cuando se ejecuta varias veces un programa o se utilicen repetidamente unos datos, no es necesario darlos de nuevo a través del dispositivo de entrada.


En la Memoria Secundaria un archivo consta de un conjunto de bloques (correspondiente a la cantidad de información que se transfiere físicamente en cada operación de acceso (lectura o escritura).

El Sistema Operativo o Sistema de Gestión de Archivos es el encargado de la asignación de bloques a archivos, de lo que surgen dos cuestiones, en primer lugar, debe asignarle el espacio de Memoria Secundaria a los archivos y, en segundo lugar, es necesario guardar constancia del espacio disponible para asignar.

El sistema de archivos se ocupa primordialmente de administrar el espacio de almacenamiento secundario, sobre todo el espacio en disco. El manejo del espacio libre en disco se lleva a cabo de la siguiente manera:

· Vector de bits

· Lista ligada (lista libre)

· Por conteo (agrupación)

Vector de bits. El espacio libre en disco es frecuentemente implementado como un mapa de bits, donde cada block es representado por un bit y si el bloc es libre el bit es cero de lo contrario está asignado.11000111

Lista ligada. Una lista ligada de todos los blocks libres. Otra implantación se consigue guardando la dirección del primer block libre y el número de los blocks libres contiguos que le siguen. Cada entrada de la lista de espacio libre consiste de una dirección de disco y un contador (por conteo).

Por agrupación. Se almacena la dirección en n blocks libres en el primer block libre y el último contiene la dirección de otro block que contiene la dirección de otros blocks libres.

Para manejar los espacios en disco existen los siguientes métodos:

? Contiguos

? Ligados

? Indexados

? Contiguos. Esta asignación requiere que cada archivo ocupe un conjunto de direcciones contiguas en el disco, su asignación es definida por la dirección del primer bloc y la longitud del archivo.

Cuando se crea un archivo se le asigna un único conjunto contiguo de bloques, esta es un estrategia de asignación previa que emplea secciones de tamaño variable. La tabla de asignación de archivos necesita solo una entrada por cada archivo y que muestre el bloque de comienzo y la longitud del archivo. La asignación contigua es la mejor para un archivo secuencial.

La asignación contigua presenta algunos problemas, como la fragmentación externa. Lo que hace difícil encontrar bloques contiguos de espacio de tamaño suficiente., lo que lleva a ejecutar un algoritmo de compactación para libera el espacio adicional en el disco.

? Asignación ligada o encadenada. Cada archivo es una lista ligada de blocks y el directorio contiene un apuntador al primer bloc y al último.

La asignación se hace con bloques individuales, cada bloque contendrá un puntero al siguiente bloque de la cadena. La tabla de asignación de archivos necesita una sola entrada por cada archivo que muestre el bloque de comienzo y la longitud del mismo, cualquier bloque puede añadirse a la cadena. No hay que preocuparse por la fragmentación externa porque solo se necesita un bloque cada vez.

Una consecuencia del encadenamiento es que no hay cabida para el principio de cercanía, si es necesario traer varios bloques de un archivo al mismo tiempo, se necesita una serie de accesos a partes diferentes del disco por lo que se debe ejecutar un algoritmo de compactación para liberar el espacio adicional en el disco.

? Asignación Indexada. Cada archivo tiene su propio bloc de índice el cual es un arreglo de direcciones de bloc.

En esta asignación la tabla de asignación de archivos contiene un índice separado de un nivel para cada archivo: el índice posee una entrada para cada sección asignada al archivo. Normalmente, los índices no están almacenados físicamente como parte de la tabla de asignación de archivos. Mas exactamente el índice de archivo se guardara en un bloque aparte y la entrada del archivo en la entrada de asignación apuntara a dicho bloque.

La asignación puede hacerse por bloques de tamaño fijo, O en secciones de tamaño variable. La asignación por bloques elimina la fragmentación externa, mientras que la asignación por secciones de tamaño variable mejora la cercanía. En cualquier caso, los archivos pueden concentrarse en zonas cercanas de cuando en cuando. La concentración reduce el tamaño del índice en el caso de secciones de tamaño variable, pero no en el caso de asignación por bloques.

La asignación indexada soporta tanto el acceso secuencial como el acceso directo a los archivos y por ello se ha convertido en la forma más popular de asignación de archivos.

En un sistema de cómputo, los elementos que se declaran para almacenamiento son los Fyle System. Cuándo existe una solicitud de almacenamiento o manejo de bloc libres en un file system surge una interrogante ¿cómo atenderlas? esto se lleva a cabo mediante una planificación de discos y para esto existen las siguientes políticas de planificación.

a) FCFS

b) SSTF

c) SCAN

d) SCAN de n-pasos

e) C-SCAN

f) Esquema Eschenbach
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

5.4 Organizacion de Archivos

5.4 Organizacion de Archivos | Sistemas Operativos ITSAV Lerdo | Scoop.it
Se refiere a las diferentes maneras en las que puede ser organizada la información de los archivos, así como las diferentes maneras en que ésta puede ser accesada. Dado que hay 2 niveles de visión de los archivos (físico y lógico), se puede hablar también de 2 aspectos de organización de archivos: Organización de archivos lógicos y de archivos físicos.

El sistema de archivos está relacionado especialmente con la administración del espacio de almacenamiento secundario, fundamentalmente con el almacenamiento de disco.

Una forma de organización de un sistema de archivos puede ser la siguiente:

Se utiliza una “raíz ” para indicar en qué parte del disco comienza el “directorio raíz ” .
El “directorio raíz ” apunta a los “directorios de usuarios”.
Un “directorio de usuario” contiene una entrada para cada uno de los archivos del usuario.
Cada entrada de archivo apunta al lugar del disco donde está almacenado el archivo referenciado.

Los nombres de archivos solo necesitan ser únicos dentro de un directorio de usuario dado.

El nombre del sistema para un archivo dado debe ser único para el sistema de archivos.

En sistemas de archivo “jerárquicos” el nombre del sistema para un archivo suele estar formado como el “nombre de la trayectoria” del directorio raíz al archivo.

Organización lógica.

La mayoría de las computadoras organizan los archivos en jerarquías llamadas carpetas, directorios o catálogos . (El concepto es el mismo independientemente de la terminología usada.) Cada carpeta puede contener un número arbitrario de archivos, y también puede contener otras carpetas. Las otras carpetas pueden contener todavía más archivos y carpetas, y así sucesivamente, construyéndose un estructura en árbol en la que una «carpeta raíz» (el nombre varía de una computadora a otra) puede contener cualquier número de niveles de otras carpetas y archivos. A las carpetas se les puede dar nombre exactamente igual que a los archivos (excepto para la carpeta raíz, que a menudo no tiene nombre). El uso de carpetas hace más fácil organizar los archivos de una manera lógica.

La mayor parte de las estructuras de organizaciones alternativas de archivos se encuentran dentro de estas cinco categorías:

Pilas

Es la forma más fácil de organizar un archivo. Los datos se recogen en el orden en que llegan.

Su objetivo es simplemente acumular una masa de datos y guardarla.

Los registros pueden tener campos diferentes o similares en un orden distinto. Cada campo debe ser autodescriptivo, incluyendo tanto un campo de nombre como el valor. La longitud de cada campo debe indicarse implícitamente con delimitadores, explícitamente incluidos como un subcampo más.

El acceso a los registros se hace por búsquedas exhaustiva y son fáciles de actualizar. Si se quiere encontrar un registro que contiene un campo particular y un valor determinado, es necesario examinar cada registro de la pila hasta encontrar el registro deseado. Si se quieren encontrar todos los registros que contienen un campo particular o que tienen un valor determinado para ese campo, debe buscarse el archivo entero.

Se aplica cuando los datos se recogen o almacenan antes de procesarlos o cuando no son fáciles de organizar. Esta clase de archivo aprovecha bien el espacio cuando los datos almacenados varían en tamaño y estructura. Fuera de estos usos limitados, este tipo de archivos no se adapta a la mayoría de las aplicaciones.

Archivos secuenciales

Es la forma más común de estructura de archivos.

Se emplea un formato fijo para los registros, son de la misma longitud y constan del mismo número de campos de tamaño fijo con un orden determinado.

Se necesita almacenar los valores de cada campo; el nombre del campo y la longitud de cada uno son atributos de la estructura del archivo. Cada registro tiene un campo clave que lo identifica (generalmente es el primero de cada registro). Los registros se almacenan en secuencia por la clave.

Se utilizan normalmente en aplicaciones de procesos por lotes, ya que es la única organización de archivos que se puede guardar tanto en cintas como en discos.

Para las aplicaciones interactivas que incluyen peticiones o actualizaciones de registros individuales, los archivos secuenciales no son óptimos. El acceso requiere una búsqueda secuencial de correspondencias con la clave. Si el archivo entero o gran parte de él pueden traerse a la memoria principal de una sola vez, se podrán aplicar técnicas de búsquedas más eficientes. Al acceder un registro de un archivo secuencial grande, se produce un procesamiento extra y un retardo considerable.

La organización física del archivo en una cinta o disco se corresponde exactamente con la organización lógica del archivo, por lo tanto el procedimiento habitual es ubicar los nuevos registros en un archivo de pila separado, es llamado archivo de registro o archivo de transacciones .

Una alternativa es organizar físicamente el archivo secuencial como una lista enlazada, en cada bloque físico se almacena uno o más registros y cada bloque del disco contiene un puntero al bloque siguiente. La inserción de un nuevo registro implica la manipulación de puntero, pero no requiere que el nuevo registro ocupe una posición particular del bloque físico.

Archivos secuenciales indexados

Los registros se organizan en una secuencia basada en un campo clave presentando dos características, un índice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento. El índice proporciona una capacidad de búsqueda para llagar rápidamente al registro deseado y el archivo de desbordamiento es similar al archivo de registros usado en un archivo secuencial, pero está integrado de forma que los archivos de desbordamiento se ubiquen siguiendo un puntero desde su registro predecesor.

La estructura más simple tiene como índice un archivo secuencial simple, cada registro del archivo índice tiene dos campos, un campo clave igual al del archivo principal y un puntero al archivo principal. Para encontrar un campo especifico se busca en el índice hasta encontrar el valor mayor de la clave que es iguale o precede al valor deseado de la clave, la búsqueda continua en el archivo principal a partir de la posición que indique el puntero.

Cada registro del archivo principal tiene un campo adicional que es un puntero al archivo de desbordamiento. Cuando se inserta un nuevo registro al archivo, también se añade al archivo de desbordamiento. El registro del archivo principal que precede inmediatamente al nuevo registro según la secuencia lógica se actualiza con un puntero del registro nuevo en el archivo de desbordamiento, si el registro inmediatamente anterior está también en el archivo de desbordamiento se actualizará el puntero en el registro.

Para procesar secuencialmente un archivo completo los registros del archivo principal se procesarán en secuencia hasta encontrar un puntero al archivo de desbordamiento, el acceso continua en el archivo de desbordamiento hasta que encuentra un puntero nulo, entonces renueva el acceso donde se abandonó en el archivo principal.

Archivos indexados

A los registros se accede solo a través de sus índices. No hay resticción en la ubicación de los registros, al menos un índice contiene un puntero a cada registro y pueden emplearse registros de longitud variable.

Se suelen utilizar dos tipos de índices, uno exhaustivo que contiene una entrada para cada registro del archivo principal y se organiza como un archivo secuencial para facilitar la búsqueda, el otro índice es parcial que contiene entrada a los registros donde esté el campo de interés.

Con registro de longitud variable, algunos registros no contendrán todos los campos y cuando se añade un registro al archivo principal, todos los archivos de índices deben actualizarse.

Archivos directos o de dispersión

Explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida.

Se requiere un campo clave en cada registro.

Los archivos directos son muy usados donde se necesita un acceso muy rápido, donde se usan registros de longitud fija y donde siempre se accede a los registros de una vez.

Organización física.

Los datos son arreglados por su adyacencia física, es decir, de acuerdo con el dispositivo de almacenamiento secundario. Los registros son de tamaño fijo o de tamaño variable y pueden organizarse de varias formas para constituir archivos físicos.

Cinta magnética.

En este dispositivo el archivo físico esta formado por un conjunto de registros físicos, y los bloques están organizados en forma consecutiva, ya que se asigna en igual forma.

Además tales registros puede contener etiquetas que permitan un mayor control sobre los datos almacenados, y son las siguientes:

- Etiqueta de volumen.- Contiene información que permite identificar la cinta, el nombre del propietario y cualquier información general requerida.

- Etiqueta de archivo.- Se utilizan por pares para indicar el inicio y fin del archivo, contiene información acerca del nombre del archivo, fecha de creación.

- Etiqueta de usuario.- Sirven para guardar información adicional de importancia para el usuario; no son procesados por el sistema operativo.

Discos Magnéticos.

El archivo físico en un disco es una colección de registros físicos de igual tamaño, los cuales pueden estar organizados en forma consecutiva, ligada o con una tabla de mapeo.

En la organización contigua, el archivo utiliza registros físicos contiguos, siguiendo la secuencia normal de direcciones.

La organización encadenada consiste un conjunto de bloques, cada uno de los cuales tiene un campo destinado para indicar la dirección del siguiente registro, o sea, para lo que se ha llamado enlace o liga.

Otra forma de organización es la tabla de mapeo que consiste en una tabla de apuntadores a los registros físicos que forman el archivo.

La organización física de un archivo en el almacenamiento secundario depende de la estrategia de agrupación y de la estrategia de asignación de archivos.

Para elegir una organización de archivos se deben tener en cuenta ciertos criterios:

Si un archivo va a procesar solamente por lotes, accediendo cada vez a todos los registros, entonces el acceso rápido para la recuperación de un único registro es una preocupación mínima. Un archivo almacenado en CD-ROM nunca será actualizado, por lo que la facilidad de actualización no se considera. Para la economía de almacenamiento , debería existir una mínima redundancia de los datos, ésta redundancia es el medio fundamental para incrementar la velocidad de acceso a los datos.

Este tipo de organización muestra a su vez, 2 aspectos importantes: Métodos De Asignación De Espacio Libre y Asignación De Espacio De Almacenamiento Del Archivo.

METODOS DE ASIGNACION DE ESPACIO LIBRE

Un método de asignación de espacio libre determina la manera en que un Sistema Operativo controla los lugares del disco que no están siendo ocupados.
Para el control del espacio libre se puede utilizar como base alguno de los métodos teóricos: Vector de Bits, Lista Ligada, Por Agrupacion y por Contador.

VECTOR DE BITS

Se tiene un arreglo de bits, el número de bits que tiene, representa cada sector del disco, o sea que si los sectores 10 y 11 están ocupados su representacion será:


LISTA LIGADA

Existe una cabeceraen la que se tiene la direccion del primer sector vacio, ese sector a su vez, tiene un apuntador al siguiente bloque, y así sucesivamente hasta que se encuentre una marca indicando que ya no hay espacio libre, tal y como se muestra en la siguiente figura.


POR AGRUPACION

Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo de apuntadores a varios espacios vacios, al final de cada bloque se tiene un apuntador a otro grupo de apuntadores, observe la figura.


POR CONTADOR

Aqui, por cada conjunto de bloques contiguos que estén vacios, se tiene por cada apuntador, un número de inicio y el tamaño del grupo de sectores vacios.

MÉTODOS DE ASIGNACIÓN DE ESPACIO EN DISCO.

Un método de asignación de espacio en disco determina la manera en que un Sistema Operativo controla los lugares del disco ocupados por cada archivo de datos. Se debe controlar básicamente la identificación del archivo, sector de inicio y sector final.

Para el control del espacio ocupado en disco se puede utilizar como base alguno de los métodos teóricos: Asignación Contigua, Asignación Ligada, Asignación Indexada.
ASIGNACIÓN CONTIGUA.

Este método consiste en asignar el espacio en disco de tal manera que las direcciones de todos los bloques correspondientes a un archivo definen un orden lineal. Por ejemplo:

DESVENTAJAS

- La cabeza de lectura no se mueve demasiado en la lectura de un archivo.

- Produce fragmentación externa.

ASIGNACIÓN LIGADA

En este método, cada archivo es una lista ligada de bloques de disco. En el directorio hay un apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de los bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista. Por ejemplo:

DESVENTAJAS

- No produce fragmentación externa.

La cabeza de lectura se puede mover demasiado en la lectura de un archivo.
- Si una liga se pierde, se perderá el archivo completo.
Es ineficiente para la implementación de archivos directos.
Se necesita un campo extra para el apuntador.
ASIGNACIÓN INDEXADA

Como ya se vio, la asignación ligada resuelve problemas de fragmentación externa, sin embargo, laasignación ligada no soporta eficientemente el acceso directo a los archivos. La asignación indexada resuelve este problema poniendo todos los apuntadores en una sola localidad: El bloque índice .

Cada archivo tiene su bloque índice, El cual es un arreglo de direcciones de bloques de disco.

La i-ésima entrada en el bloque índice apunta al i-ésimo bloque que conforma el archivo. En el directorio se controla la dirección del bloque índice de cada archivo, por ejemplo:

DESVENTAJAS

No produce fragmentación externa.
Eficiente para la implementación de archivos directos.


Existe desperdicio cuando hay archivos muy chicos.
Desbordamiento de bloque índice. (Solución: creación de un esquema ligado; el ultimo bloque índice apunta a otro índice) .
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

5.2 Archivos reales y virtuales

5.2 Archivos reales y virtuales | Sistemas Operativos ITSAV Lerdo | Scoop.it
Un archivo virtual, es un archivo de uso temporal que es utilizado por los procesos del sistema mientras se están ejecutando dichos procesos. Estos archivos se crean durante la ejecución de un sistema y los utiliza para el almacenamiento de información, intercambio y organización mientras se ejecuta el sistema, su tamaño es muy variable y terminan al detener la ejecución del sistema, muchos de ellos son borrados, por ejemplo, los archivos *.tmp.

Se le conoce como archivo virtual, aquel que contiene los datos generados por el usuario.


Archivo Real: Es un objeto que contiene programas, datos o cualquier otro elemento.
Un archivo se muestra de manera real, en la información del espacio que ocupa en un disco duro o sistema de almacenamiento, en otras palabras su tamaño en bytes.




more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

4.4 Operaciones de entrada/salida

4.4 Operaciones de entrada/salida | Sistemas Operativos ITSAV Lerdo | Scoop.it
Funciones que realizan

Vamos a señalar las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida:

- Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S.
- Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido).
- Sincronización y coordinación de las operaciones.
Esta ultima función es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU (por ejemplo, suelen tener relojes diferentes).
Se define una transferencia elemental de información como la transmisión de una sola unidad de información (normalmente un byte) entre el procesador y el periférico o viceversa. Para efectuar una transferencia elemental de información son precisas las siguientes funciones:

- Establecimiento de una comunicación física entre el procesador y el periférico para la transmisión de la unidad de información.
- Control de los periféricos, en que se incluyen operaciones como prueba y modificación del estado del periférico. Para realizar estas funciones la CPU gestionara las líneas de control necesarias.
Definiremos una operación de E/S como el conjunto de acciones necesarias para la transferencia de un conjunto de datos (es decir, una transferencia completa de datos). Para la realización de una operación de E/S se deben efectuar las siguientes funciones:

- Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación.
- Sincronización de velocidad entre la CPU y el periférico.
- Detección de errores (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de redundancia cíclica, etc.)
- Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones de E/S que utilizan el área de datos del programa.
- Conversión de códigos , conversión serie/paralelo, etc.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

4.2 Funciones de los manejadores de dispositivos

4.2 Funciones de los manejadores de dispositivos | Sistemas Operativos ITSAV Lerdo | Scoop.it
Funciones de los manejadores de dispositivos

Funciones generalmente realizadas por el software independiente del dispositivo:

Interfaz uniforme para los manejadores de dispositivos.
Nombres de los dispositivos.
Protección del dispositivo.
Proporcionar un tamaño de bloque independiente del dispositivo.
Uso de buffer.
Asignación de espacio en los dispositivos por bloques.
Asignación y liberación de los dispositivos de uso exclusivo.
Informe de errores.
Las funciones básicas del software independiente del dispositivo son:

Efectuar las funciones de e / s comunes a todos los dispositivos.
Proporcionar una interfaz uniforme del software a nivel usuario.
El software independiente del dispositivo asocia los nombres simbólicos de los dispositivos con el nombre adecuado.
Un nombre de dispositivo determina de manera única el nodo-i de un archivo especial:

Este nodo-i contiene el número principal del dispositivo, que se utiliza para localizar el manejador apropiado.
El nodo-i contiene también el número secundario de dispositivo, que se transfiere como parámetro al manejador para determinar la unidad por leer o escribir.
El software independiente del dispositivo debe:

Ocultar a los niveles superiores los diferentes tamaños de sector de los distintos discos.
Proporcionar un tamaño uniforme de los bloques, por ej.: considerar varios sectores físicos como un solo bloque lógico.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

3.4 Administración de memoria virtual

3.4 Administración de memoria virtual | Sistemas Operativos ITSAV Lerdo | Scoop.it
La clave del concepto de memoria (almacenamiento) virtual esta en la disociación:

De las direcciones a las que hace referencia un programa.
De las direcciones disponibles en la memoria real (almacenamiento primario).
Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.

3.4.1 Estrategias de Administracion

Estrategias de Obtención

Determinan cuando se debe de transferir una pagina o un segmento de almacenamiento secundario al primario. Las estrategias de obtencion por demanda esperan a que un proceso en ejecucion haga referencia a una pagina o un segmento antes de traer la pagina o el segmento de almacenamiento primario. Los esquemas de obtencion anticipada intentan determinar por adelantado a cuales paginas o segmentos hara referencia un proceso.

Estrategias de Colocación

Determinan en que lugar del almacenamiento primario se debe colocar una pagina o un segmento entrante. Una pagina entrante se puede colocar en cualquier marco de pagina disponible.

Estrategias de Reemplazo

Sirven para decidir cual pagina o segmento se debe desplazar para dar espacio a una pagina o segmento entrante cuando esta completamente ocupado el almacenamiento primario.

3.4.2 Tecnicas de reemplazo de pagina

Las rutinas de administracion de almacenamiento del Sistema operativo deben decidir que pagina del almacenamiento primario se debe desplazar para dejar espacio a una pagina entrante .
Principio de Optimalidad
Para obtener un rendimiento optimo, la pagina que se debe reemplazar es aquella que tardara mas tiempo en ser utilizada. Esta estrategia optima de reemplazo se denomina OPT o MIN.
Reemplazo de Páginas aleatorio
Es una tecnica sencilla. Todas las paginas que se encuentran en el almacenamiento principal tienen la misma probabilidad de ser elegidas para el reemplazo. Esta estrategia podria seleccionar cualquier pagina para ser reemplazada, incluyendo la siguiente pagina la que se hara referencia. Las decisiones de reemplazo aleatorio se de paginas se pueden tomar rapidamente y con un numero significativo de marcos de pagina. Es un esquema que casi no se utiliza por su enfoque aleatorio de acertar o errar.
Reemplazo de páginas de primeras entradas-primeras salidas (PEPS)
Cada pagina se registra en el instante que entro en el almacenamiento primario. Cuando se necesita reemplazar una pagina, se escoge la que ha permanecido en el almacenamiento durante el mayor tiempo.
Anomalias PEPS
Belady, Nelson y Shelder descubrieron que al utilizar el reemplazo de paginas PEPS, ciertos patrones de referencia a pagina originan mas fallas de paginas cuando aumenta el numero de marcos de pagina asignados a un proceso. Este fenomeno se denomina Anomalia PEPS o anomalia Belady. La columna de la izquierda indica el patron de referencias a paginas de un proceso. La primera tabla muestra como dicho patron a referencia de paginas hace que las paginas se carguen a memoria y se reemplacen en secuencia PEPS cuando se asignan tres marcos de paginas a proceso.
La segunda tabla muestra como se comporta este proceso en las mismas circunstancias, pero con cuatro marcos de paginas asignados, a la izquierda de cada tabla se indica si la nueva referencia a una pagina ocasiona o no una falla de pagina. Cuando el proceso se ejecuta en cuatro paginas, experimenta una falla de pagina mas que cuando se ejecuta con tres.
Reemplazo de páginas de la menos reciente utilizada
Se selecciona para su reemplazo, a aquella pagina que no se ha sido utilizada durante mayor tiempo. La estrategia se basa en que la heuristica de localidad segun en el cual el pasado reciente es un buen indicador del futuro cercano, de modo que LRU exige que se marque cada pagina con el instante en que .se hace referencia a ella. Por el trabajo adicional que requiere no se usa a menudo en los sistemas actuales; lo que se hace es utilizar estrategias que ese aproximen a la LRU y que no ocasionen grandes costos.
Reemplazo de paginas de la menos frecuentemente utilizada (LFU)
La pagina por remplazar es aquella que ha sido utilizada menos frecuentemente o a la que se ha hecho referencia con menos frecuencia.
Al parecer estos esquemas de reemplazo de paginas corren cierto riesgo de tomar decisiones equivocadas. Esto sucede por el simple hecho de que no se puede predecir con precision el futuro.
Modificaciones de PEPS; reemplazo de paginas por reloj y reemplazo de paginas con segunda oportunidad
La estrategia PEPS puede decidir reemplazar una pagina muy utilizada que ha permanecido en memoria durante mucho tiempo. Esta posibilidad se puede evitar reemplazando solo aquellas paginas cuyos bits de referencia valgan O.
La variante de PEPS denominada "con segunde oportunidad" examina el bit de referencia de la pagina mas antigua; si este bit vale O, se selecciona de inmediato la pagina para ser reemplazada. Si el bit de referencia vale 1, se le asigna el valor O y la pagina se pasa al final de la lista y se considera en esencia como una pagina nueva; gradualmente dicha pagina se desplaza hacia el principio de la lista, donde sera seleccionada para reemplazo solo si su bit de referencia sigue valiendo O. En esencia, esto da a la pagina una segunda oportunidad de permanecer en el almacenamiento principal si su bit de referencia cambia a 1 antes de que la pagina llegue al principio de la lista. La variacion 'z' del reloj" del algoritmo de la segunda oportunidad dispone las paginas en una lista circular, en lugar de en una lista lineal.
Un apuntador a la lista se desplaza alrededor de la lista circular en la misma forma que gira la manecilla de un reloj. Cuando el bit de referencia de una pagina toma el valor O, el apuntador se mueve al siguiente elemento de la lista (simulando el movirl1iento de esta pagina al final de la lista PEPS).

3.4.3 Paginacion por demanda

Paginación bajo demanda

Considere como podria cargarse un programa ejecutable desde el disco a la memoria. Una opcion consiste encargar el programa completo en memoria fisica en el momento de ejecutar el programa. Sin embargo, esta tecnica presenta el problema de que puede que no necesitemos inicialmente todo el programa en la memoria.
Las paginas de un proceso deben cargarse por demanda. No se debe transferir ninguna pagina al almacenamiento secundario al primado hasta que un proceso en ejecucion haga explicitamente referencia a ella. Hay varias razones por las cuales es atractiva esta estrategia. Los resultados de la teoria de la computabilidad, especifica mente el problema de la detencion (Mi67) (He77), indican que no se puede predecir con precision la trayectoria de ejecucion que seguira un programa. Asi pues, cualquier intento de cargar paginas con anticipacion a su uso puede hacer que se carguen las paginas equivocadas.

La paginacion por demanda garantiza que las unicas paginas que se transfieren al almacenamiento principal son aquellas que requieren los procesos. El trabajo extra requerido para decidir cuales paginas se deben transferir al almacenamiento principal es minimo. Las estrategias de obtencion anticipada de paginas G pueden requerir mucho tiempo de ejecucion adicional.

3.4.4 Paginacion anticipada

¿Qué es la paginación anticipada?

En la paginacion anticipada, el sistema operativo intenta predecir las paginas que necesitara un proceso y entonces carga dichas cuando hay espacio disponible.

Mientras el proceso se ejecuta con sus paginas actuales, el sistema carga las demas paginas que estaran disponibles cuando las requiera el proceso.

El S. O. intenta predecir las paginas que un proceso va a necesitar y a continuacion precarga estas paginas cuando hay espacio disponible Mientras el proceso ejecuta sus paginas actuales, el sistema carga paginas nuevas que estaran disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecucion de un proceso se puede reducir.

3.4.5 Liberacion de pagina

¿Qué es la paginación anticipada?

En la paginacion anticipada, el sistema operativo intenta predecir las paginas que necesitara un proceso y entonces carga dichas cuando hay espacio disponible.

Mientras el proceso se ejecuta con sus paginas actuales, el sistema carga las demas paginas que estaran disponibles cuando las requiera el proceso.

El S. O. intenta predecir las paginas que un proceso va a necesitar y a continuacion precarga estas paginas cuando hay espacio disponible Mientras el proceso ejecuta sus paginas actuales, el sistema carga paginas nuevas que estaran disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecucion de un proceso se puede reducir.

3.4.6 Tamaño de la pagina

Generalmente el almacenamiento real se divide en marcos o celdas de pagina de tamano fijo.

Los interrogantes tienen que ver con el tamano de las paginas, si todas las paginas tendran igual tamano, si en caso de utilizar paginas de diferente tamano las paginas mayores deben ser o no multiplos enteros de las menores, etc.

Algunas consideraciones para determinar el tamano de pagina son las siguientes:

Cuanto mas pequeno sea el tamano de una pagina, mas paginas y marcos de paginas habra y mayores seran las tablas de pagina.
El desperdicio de almacenamiento debido al tamano excesivo de las tablas de pagina se llama “fragmentacion de tablas”.
Esto indica la necesidad de paginas mas grandes.
Con paginas grandes, grandes cantidades de informacion que nunca llegaria a ser referenciada, se paginaran hacia el almacenamiento primario
Esto indica la necesidad de paginas mas pequenas.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

3.1 Política y Filosofía

3.1 Política y Filosofía | Sistemas Operativos ITSAV Lerdo | Scoop.it
Filosofía
La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamano. Cada localidad de almacenamiento tiene asignada una direccion que la identifica.

Una de las funciones basicas que debe implementar un SO es la Administracion de la Memoria para tener un control sobre los lugares donde estan almacenados los datos y procesos que actualmente se estan utilizando.

Sea cual sea es esquema de organizacion del almacenamiento que se adopte para un sistema especifico es necesario decidir que estrategias se deben utilizar para obtener un rendimiento optimo.



Políticas
FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un proceso llega al procesador sale hasta que termine. La politica FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una politica de prioridades y hay procesos con la misma prioridad, a estos se les podria aplicar FIFO. (Ver figura (1))

Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una cantidad limitada de tiempo (CUANTUM) en el procesador, si no termina en ese lapso se manda al final de la lista de procesos listos.

SJF (Shortest job first - Prioridad del trabajo mas corto): Se ejecuta primero el proceso en espera que tiene el menor tiempo estimado. SJF favorece a los procesos cortos, ya que los largos podrian llegar a rezagarse mucho tiempo e incluso nunca ejecutarse.

SRT (Sortest remaining time scheduling ? Tiempo restante mas corto. En SJF una vez que un proceso comienza su ejecucion continua hasta terminar. En SRT, un proceso en ejecucion puede ser desposeido por uno nuevo de menor tiempo de ejecucion.

HRN: (highest response ratio next ? Prioridad de la tasa de respuesta mas alta): Politica no apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para asi no caer en un favoritismo excesivo por los procesos cortos, lo logra usando una formula basada en el tiempo de espera y el tiempo de servicio, con lo cual la prioridad de cada trabajo no solo esta en funcion del tiempo de servicio sino tambien del tiempo que ha esperado para ser atendido.
more...
No comment yet.
Rescooped by Cinthia Carrasco from Sistemas Operativos ITSAV Lerdo
Scoop.it!

2.5 Niveles, Objetivos y Criterios de Planificacion

2.5 Niveles, Objetivos y Criterios de Planificacion | Sistemas Operativos ITSAV Lerdo | Scoop.it
En epocas pasadas de los sistemas de procesamiento por lotes, con una entrada en forma de imagenes de tarjetas en una cinta magnetica, el algoritmo de planificacion era sencillo: solo habia que ejecutar el siguiente trabajo en la cinta.

En los sistemas de multiusuario de tiempo compartido, que se combinaban con un fondo de trabajos procesados en lote, el algoritmo era mas complejo. En forma invariable, existian varios usuarios en espera de servicio y podian existir tambien otros trabajos para ser procesados en lote. Incluso en los sistemas puros de tiempo compartido existen con frecuencia los trabajos colaterales, como el sistema de correo electronico, que a menudo se ejecuta todo el tiempo para enviar o recibir correo o noticias.

Cuando mas de un proceso es ejecutable, el Sistema Operativo debe decidir cual de ellos debera ejecutarse primero. Hay que tener una planificacion de los procesos que quieren ejecutarse en el sistema.La planificacion es una funcion primordial del Sistema Operativo. La mayoria de los recursos, si no es que todos, se planifican antes de que se utilicen. La asignacion de procesadores fisicos a los procesos hace posible que estos realicen su trabajo, y tal asignacion es un problema complejo manejado por el Sistema Operativo.
Concepto de Planificacion
La planificacion hace referencia a un conjunto de politicas y mecanismos incorporados al sistema operativo que gobiernan el orden en que se ejecutan los trabajos que deben ser cumplimentados por el sistema informatico.
Objetivo de la Planificacion
El objetivo principal de la planificacion es optimizar el rendimiento del sistema y proporcionar un buen servicio a todos los procesos que se encuentren en el. En general, la planificacion trata de cubrir los siguientes objetivos:

Justicia. La planificacion debe ser lo mas justa posible con todos los procesos, sin favorecer a unos y perjudicar a otros.
Maxima capacidad de ejecucion. Debe dar un servicio eficiente para que todos los trabajos se realicen lo mas rapidamente posible. Esto se puede lograr disminuyendo el numero de cambios de proceso.
Maximo numero de usuarios interactivos. En los sistemas de tiempo compartido se tratara de que puedan estar trabajando el mayor numero de usuarios al mismo tiempo.
Predecibilidad. La planificacion debe realizarse de tal forma que en todo momento pueda saberse como sera su ejecucion.
Minimizacion de la sobrecarga. La computadora debe tener poca sobrecarga ya que esta afecta directamente al rendimiento final del sistema: a menor sobrecarga mayor velocidad de proceso.
Equilibrio en el uso de recursos. Para obtener un mayor rendimiento en el uso de los recursos y que estos esten ocupados equitativamente el mayor tiempo posible.
Seguridad de las prioridades. Si un proceso tiene mayor prioridad que otro, este debe ejecutarse mas rapidamente.
Evitar la postergacion indefinida. Esto se logra aumentando la prioridad de un proceso mientras espere por un recurso. La prioridad llegara a ser tan alta que al proceso le sera asignado el recurso que pidio.
Criterios de planificacion
Para realizar los objetivos de la planificacion, un mecanismo de planificacion debe considerar lo siguiente:

La limitacion de un proceso a las operaciones de Entrada / Salida: cuando un proceso consigue la cpu, ?la utiliza solo brevemente antes de generar una peticion de Entrada / Salida?
La limitacion de un proceso a la cpu: cuando un proceso obtiene la cpu, ?tiende a usarla hasta que expira su tiempo?
Si un proceso es por lote (batch) o interactivo: los usuarios interactivos deben recibir inmediato servicio para garantizar buenos tiempos de respuesta.
?Que urgencia tiene una respuesta rapida?: por ejemplo, un proceso de tiempo real de un sistema de control que supervise una refineria de combustible requiere una respuesta rapida, mas rapida que la respuesta requerida por un proceso en lotes (batch) que debera entregarse al dia siguiente.
La prioridad de un proceso: a mayor prioridad mejor tratamiento.
Frecuentemente un proceso genera fallos (carencias) de pagina:
Probablemente los procesos que generan pocos fallos de pagina hayan acumulado sus “conjuntos de trabajo” en el almacenamiento principal.
Los procesos que experimentan gran cantidad de fallos de pagina aun no han establecido sus conjuntos de trabajo.
Un criterio indica favorecer a los procesos que han establecido sus conjuntos de trabajo.
Otro criterio indica favorecer a los procesos con una tasa alta de fallos de pagina ya que rapidamente generaran una peticion de Entrada / Salida.
Frecuentemente un proceso ha sido apropiado por otro de mas alta prioridad, lo cual significa lo siguiente:
A menudo los procesos apropiados deben recibir un tratamiento menos favorable.
Cada vez que el Sistema Operativo asume la sobrecarga para hacer ejecutar este proceso, el corto tiempo de ejecucion antes de la apropiacion no justifica la sobrecarga de hacer ejecutar al proceso en primer lugar.
Cuanto tiempo de ejecucion real ha recibido el proceso?: un criterio considera que debe ser favorecido un proceso que ha recibido muy poco tiempo de cpu.
Cuanto tiempo adicional va a necesitar el proceso para terminar?: los tiempos promedio de espera pueden reducirse priorizando los procesos que requieren de un tiempo de ejecucion minimo para su terminacion, pero pocas veces es posible conocer la cantidad de tiempo adicional que cada proceso necesita para terminar.
more...
No comment yet.