Images

Unidad 5: Sistemas de Archivos

5.1 Concepto. 

Un “Archivo” es un conjunto de registros relacionados .  El “Sistema de Archivos” es un componente importante de un S. O. y suele contener :   
  • “Métodos de acceso” relacionados con la manera de acceder a los datos almacenados en archivos.  
  • “Administración de archivos” referida a la provisión de mecanismos para que los archivos sean almacenados, referenciados, compartidos y asegurados.
  • “Administración del almacenamiento auxiliar” para la asignación de espacio a los archivos en los dispositivos de almacenamiento secundario.  
  • “Integridad del archivo” para garantizar la integridad de la información del archivo. 
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.   

5.2 Noción de archivo real y virtual. 

La mayoría de usuarios de computadoras comprenderán con mucha facilidad el término archivo relacionándolo directamente con ejemplos tales como los archivos de texto que se pueden generar con cualquier procesador de texto. Una característica de este tipo de archivos es que a mayor texto que almacena el archivo, mayor es el espacio en disco que consume dicho archivo. Por ejemplo, una línea corta de texto ocupa menos espacio en disco que esa misma línea copiada cien veces. Sin embargo al hablar de “archivos virtuales” las cosas son diferentes, pues este tipo de archivos no consumen espacio en el disco duro, sino que se almacenan en la memoria volátil, es decir aquel tipo de memoria cuya información se pierde al interrumpirse el flujo de corriente eléctrica, esto es, la memoria RAM. 

5.3 Componentes de un sistema de archivos. 

Los componentes del sistema de archivos y de programación permiten interactuar con los recursos del sistema de archivos y de directorio y provocar eventos en intervalos programados. Las instancias del componente File System Watcher permiten inspeccionar cambios en los directorios y archivos y reaccionar cuando se producen. El componente Timer permite configurar programaciones simples de producción de eventos y ejecutar el procesamiento asociado. 

5.4 Organización lógica y física. 
  • Un sistema de archivos garantiza la organización lógica de los datos en los discos duros y proporciona al sistema operativo las rutinas necesarias para que puedan ser accedidos, modificados y eliminados.  
  • Cualquier sistema operativo suele tener soporte para varios sistemas de archivos, aunque sólo sea en modo lectura. Los sistemas de archivos de la familia Microsoft que podemos encontrarnos son: FAT (FAT16 y FAT32) y NTFS (NTFS4, NTFS5). NTFS (New Technology File System) fue diseñado para NT e incorporaba un sistema de seguridad integrado que nos permitía asignar permisos a archivos y directorios a nivel de usuarios y grupos. 
Definiciones relacionadas con un sistema de archivo:  
  • Unidad física: El propio disco duro, sin más.  
  • Unidad lógica: Fragmento que se comporta como una partición y que está dentro de una partición extendida.  
  • Partición: Puede ser el total del tamaño del disco o una parte.  Partición primaria: Partición que el sistema marca como bootable o arrancable.  
  • Partición extendida: partición que no es de inicio y que a su vez puede contener unidades lógicas. Sólo puede haber una por disco.  
  • RAID (matriz redundante de discos independientes): Utilizar varias unidades físicas en una matriz para ofrecer mayor tamaño, tolerancia a fallos y mayor rendimiento. Hay varios niveles, RAID-0, RAID-1, RAID-5, etc. La numeración no indica mejor rendimiento o tolerancia a fallos, tan solo diferencias de métodos. 

En esta parte vamos a usar el término organización de archivos para referirnos a la estructura lógica de los registros determinada por la manera en que se accede a ellos. La organización física del archivo en almacenamiento secundario depende de la estrategia de agrupación y de la estrategia de asignación de archivos. Para seleccionar una organización de archivos hay diversos criterios que son importantes:  
  • Acceso Rápido para recuperar la información   
  • Fácil actualización   
  • Economía de almacenamiento   
  • Mantenimiento simple   
  • Fiabilidad para asegurar la confianza de los datos  
La prioridad relativa de estos criterios va a depender de las aplicaciones que va a usar el archivo. La mayor parte de las estructuras empleadas en los sistemas reales se encuadran en una de estas categorías o puede implementarse como una combinación de estas.

Directorios  

Generalmente son utilizados por los S. O. para llevar un registro de los archivos.  En muchos sistemas son a su vez también archivos.  

Sistemas Jerárquicos de Directorios
  
El directorio contiene un conjunto de datos por cada archivo referenciado:   
  • Nombre, atributos, 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 árbol de directorios por usuario: el sistema permite que cada usuario tenga tantos directorios como necesite, respetando una jerarquía general.

Discos  

La Unidad de Disco Duro o Disco Rígido ("Hard Disc Drive" o HDD) es llamada simplemente "disco duro" o "disco rígido", aunque en su interior contenga uno o varios discos magnéticos apilados. Un disco duro es un dispositivo de almacenamiento no volátil, que conserva la información aun con la pérdida de energía, que emplea un sistema de grabación magnética digital; es donde en la mayoría de los casos se encuentra almacenado el sistema operativo de la computadora. Dentro de la carcasa hay una serie de platos metálicos apilados girando a gran velocidad. Sobre los platos se sitúan los cabezales encargados de leer o escribir los impulsos magnéticos. Hay distintos estándares para comunicar un disco duro con la computadora; las interfaces más comunes son Integrated Drive Electronics (IDE, también llamado ATA), SCSI generalmente usado en servidores, SATA, este último estandarizado en el año 2004 y FC exclusivo para servidores. SAN (Storage Area Network)  red de área de almacenamiento, es una red concebida para conectar servidores, matrices (arrays) de discos y librerías de soporte. Principalmente, está basada en tecnología fibre channel y más recientemente en iSCSI. Su función es la de conectar de manera rápida, segura y fiable los distintos elementos que la conforman.

Las siguientes son las principales ventajas con respecto del uso de la memoria principal como almacenamiento :   
  • Mucha mayor capacidad de espacio de almacenamiento.   
  • Menor precio por bit.   
  • La información no se pierde al apagar la computadora

5.4.2. Hardware de Discos   
Los discos están organizados en cilindros, pistas y sectores.  
Pistas = Tracks.
Una pista es un anillo circular sobre un lado del disco. Cada pista tiene un número. El diagrama muestra 3 pistas.    

Sectores 
Se llama sector de un disco a una parte en forma de cuña del mismo. Cada sector está numerado.     

Un  sector de pista es el área de intersección entre una pista  Y un sector. (Área amarilla).

Clusters 
Un cluster es un conjunto de sectores de pista, desde 2 a 32 o más, dependiendo del esquema de formateo que se use. El esquema más común para PC determina la cantidad de sectores de pista por cada cluster sobre la base de la capacidad del disco. Un disco rígido de 120 gigabytes tendrá el doble de clusters que un disco rígido de 50 GB.  1 cluster es el mínimo espacio usado para cualquier lectura o escritura. Por esta causa es frecuente que quede mucho espacio perdido (slack space), no usado a continuación del cluster de datos almacenado allí. 

Cilindros 
Un cilindro es un juego de pistas similares en todos los platos Sobre un disco rígido, un cilindro está integrado por todas las pistas del mismo y de todos los discos metálicos que componen al disco rígido. Si se coloca uno encima de otro obtiene un cuerpo que semeja la forma de una lata sin tapa ni fondo - un cilindro. El número típico de sectores por pista varía entre 8 y 32 (o más).  Todos los sectores tienen igual número de bytes.

Tipos de Conexión 
Si hablamos de disco rígido podemos citar a los distintos tipos de conexión que poseen los mismos con la tarjeta madre, es decir pueden ser SATA, IDE o SCSI: IDE: Integrated Device Electronics ("Dispositivo con electrónica integrada") o ATA (Advanced Technology Attachment), controla los dispositivos de almacenamiento masivo de datos, como los discos duros y ATAPI (Advanced Technology Attachment Packet Interface) Hasta hace poco, el estándar principal por su versatilidad y relación calidad/precio.  

SCSI: Small Computer System Interface. Son discos duros de gran capacidad de almacenamiento (desde 5 GB hasta 23 GB). Se presentan bajo tres especificaciones: SCSI Estándar (Standard SCSI), SCSI Rápido (Fast SCSI) y SCSI Ancho-Rápido (Fast-Wide SCSI). Su tiempo medio de acceso puede llegar a 7 mseg y su velocidad de transmisión secuencial de información puede alcanzar teóricamente los 5 Mbps en los discos SCSI Estándares, los 10 Mbps en los discos SCSI Rápidos y los 20 Mbps en los discos SCSI Anchos-Rápidos (SCSI-2). Un controlador SCSI puede manejar hasta 7 discos duros SCSI (o 7 periféricos SCSI). A diferencia de los discos IDE, pueden trabajar asíncronicamente con relación al microprocesador, lo que los vuelve más rápidos.  

SATA (Serial ATA): Nuevo estándar de conexión que utiliza un bus serie para la transmisión de datos. Notablemente más rápido y eficiente que IDE. En la actualidad hay dos versiones, SATA 1 de hasta 1,5 Gigabits por segundo (150 MB/s) y SATA 2 de hasta 3,0 Gb/s (300 MB/s) de velocidad de transferencia.  

Un disco duro suele tener:  
  • Platos en donde se graban los datos,  
  • Cabezal de lectura/escritura,  
  • Motor que hace girar los platos,  
  • Electroimán que mueve el cabezal,  
  • Circuito electrónico de control, que incluye: interfaz con la computadora, memoria caché,  
  • Bolsita desecante (gel de sílice) para evitar la humedad,  
  • Caja, que ha de proteger de la suciedad.   
  • Tornillos, a menudo tipo Torx.  

Un controlador puede realizar búsquedas en una o más unidades al mismo tiempo:   
  • Son las búsquedas traslapadas.   
  • Mientras el controlador y el software esperan el fin de una búsqueda en una unidad, el controlador puede iniciar una búsqueda en otra.  
Muchos controladores pueden:   
  • Leer o escribir en una unidad.   
  • Buscar en otra.  
Los controladores no pueden leer o escribir en dos unidades al mismo tiempo.  La capacidad de búsquedas traslapadas puede reducir considerablemente el tiempo promedio de acceso. 

Estructura lógica  

Dentro del disco se encuentran:  
  • El Master Boot Record (en el sector de arranque), que contiene la tabla de particiones.  
  • Las particiones, necesarias para poder colocar los sistemas de archivos.
5.5 Mecanismos de acceso a los archivos. 

Diseño de un sistema de archivos 
Se consideran aspectos como:   
  • La forma de almacenamiento de archivos y directorios.  
  • La administración del espacio en disco.  
  • La forma de hacerlo de manera eficiente y confiable. 
Se deben tener presentes problemas como la “fragmentación” del espacio en disco:  
  • Ocasiona problemas de desempeño al hacer que los archivos se desperdiguen a través de bloques muy dispersos.  
  • Una técnica para aliviar este problema consiste en realizar periódicamente:
Implantación de Directorios  
La principal función del sistema de directorios es asociar el nombre del archivo con la información necesaria para localizar los datos.  
La posición de almacenamiento de los atributos puede ser en forma directa dentro del dato del directorio. 

Tipos de métodos de acceso:  
Método de Acceso Secuencial: El acceso secuencial significa que un grupo de elementos es accedido en un predeterminado orden secuencial. El acceso secuencial es a veces la única forma de acceder a los datos, por ejemplo en una cinta de casete. También puede ser el método de acceso elegido, para simplemente procesar una secuencia de datos en orden.  
Método de Acceso Secuencial Indexado: Método común de acceso a disco que almacena datos en forma secuencial, al tiempo que mantiene un índice de campos claves para todos los registros en el archivo para acceso directo. El orden secuencial sería el más comúnmente usado para el procesamiento por lotes y la impresión (número de cuenta, nombre, etc.).  
Método de Acceso Indexado: Pendiente la definición.  
Método de Acceso Hashed: Pendiente la definición.  
Otras Definiciones. 
Archivos Secuenciales 

5.6 Manejo de espacio en memoria secundaria. 

Administración del Espacio en Disco  
Existen dos estrategias generales para almacenar un archivo de “n” bytes:   
  • Asignar “n” bytes consecutivos de espacio en el disco:  
  • Tiene el problema de que si un archivo crece será muy probable que deba desplazarse en el disco, lo que puede afectar seriamente al rendimiento.  
  • Dividir el archivo en cierto número de bloques (no necesariamente) adyacentes:
  • Generalmente los sistemas de archivos utilizan esta estrategia con bloques de tamaño fijo. 
Tamaño del bloque:  
Dada la forma en que están organizados los bloques, el sector, la pista y el cilindro son los candidatos obvios como unidades de asignación.  
Si se tiene una unidad de asignación grande, como un cilindro, esto significa que cada archivo, inclusive uno pequeño, ocupará todo un cilindro; con esto se desperdicia espacio de almacenamiento en disco.  Si se utiliza una unidad de asignación pequeña, como un sector, implica que cada archivo constará de muchos sectores; con esto su lectura generará muchas operaciones de e / s afectando el desempeño.  Lo anterior indica que la eficiencia en tiempo y espacio tienen un conflicto inherente.

Por qué es Necesaria la Planificación de Discos  
En los sistemas de multiprogramación muchos procesos pueden estar generando peticiones de e / s sobre discos:   
  • La generación de peticiones puede ser mucho más rápida que la atención de las mismas: Se construyen líneas de espera para cada dispositivo. Para reducir el tiempo de búsqueda de registros se ordena la lista de peticiones: esto se denomina planificación de disco. 
La planificación de disco implica:   
  • Un examen cuidadoso de las peticiones pendientes para determinar la forma más eficiente de servirlas.  
  • Un análisis de las relaciones posicionales entre las peticiones en espera.  
  • Un reordenamiento de la cola de peticiones para servirlas minimizando los movimientos mecánicos. 
Los tipos más comunes de planificación son:   
  • Optimización de la búsqueda.  
  • Optimización rotacional (latencia). 
Generalmente los tiempos de búsqueda superan a los de latencia, aunque la diferencia tiende a disminuir. Bajo condiciones de carga ligera (promedio bajo de longitud de la cola), es aceptable el desempeño del método FCFS (primero en llegar, primero en ser servido).
Bajo condiciones de carga media o pesada, es recomendable un algoritmo de planificación de las colas de requerimientos.   

Características Deseables de las Políticas de Planificación de Discos  
Criterios:   
  • Capacidad de ejecución.  
  • Media del tiempo de respuesta.  
  • Varianza de los tiempos de respuesta (predecibilidad). 
Objetivos:  
  • maximizar la capacidad de ejecución  
  • Maximizar el número de peticiones servidas por unidad de tiempo.  
  • Minimizar la media del tiempo de respuesta.  
  • Mejorar el rendimiento global, quizás a costa de las peticiones individuales. 
La planificación suele mejorar la imagen total al tiempo que reduce los niveles de servicio de ciertas peticiones:   
  • Se mide utilizando la varianza de los tiempos de respuesta.  
  • La varianza es un término estadístico que indica hasta qué punto tienden a desviarse del promedio de todos los elementos los elementos individuales.  
  • A menor varianza mayor predecibilidad.  
  • Se desea una política de planificación que minimice la varianza, es decir que maximice la predecibilidad.  
  • No debe haber peticiones que puedan experimentar niveles de servicio erráticos.
  • Justicia

Estrategias de búsqueda en disco (algoritmos de planificación). 
En la mayoría de los discos, el tiempo de búsqueda supera al de retraso rotacional y al de transferencia, debido a ello, la reducción del tiempo promedio de búsqueda puede mejorar en gran medida el rendimiento del sistema.  
En los sistemas multiprogramados son varios los procesos activos en un momento dado, y pueden producirse peticiones simultáneas de acceso a disco. Si mientras se hace un acceso llegan más peticiones, el sistema deberá mantenerlas en una lista de espera. Al terminar la petición que se atendía, el disco estará libre y el sistema determinará el orden de atención de las peticiones pendientes, minimizando el desplazamiento del brazo y el tiempo de servicio. 
   
FCFS  (First come first served) 
El criterio más simple, sirve las peticiones según su hora de llegada, de programación sencilla y sin sobrecarga, pero su eficiencia es relativa: 

SSTF (Shortest seek time first)  
  • Se atiende primero la petición más cercana a la última servida, la que quede más cerca.  
  • Reduce a la mitad el número de movimientos del brazo en comparación con FCFS.
  • No respeta el orden de llegada de las peticiones a la cola.   
  • Tiende a favorecer a las pistas del centro del disco.
Algoritmo del elevador o exploración (scan) 
Es la solución a la postergación de SSTF  
  • Se mantiene el movimiento del brazo en la misma dirección, hasta que no tiene más solicitudes pendientes en esa dirección; entonces cambia de dirección.  
5.7 Modelo jerárquico. 

Jerarquía de datos 
Son niveles de abstracción de cómo organizamos los datos: 
  • Bit: elemento de información que permite almacenar 0 o 1. 
  • Byte: 8 bits. Representan números en binario (de 0 a 28 - 1) y caracteres de texto usando códigos (ASCII), es decir, convenios para representar datos alfanuméricos con 8 bits. Campo: secuencia de datos iguales. 
  • Registro: compuesto por campos (no necesariamente todos iguales). 
  • Fichero o archivo: permite guardar conjuntos de registros. 
  • Bases de datos: conjunto de registros a los que se puede acceder usando ciertas claves. 
5.8 Mecanismos de recuperación en caso de falla. 

Confiabilidad del Sistema de Archivos  
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 les elimina de la “lista de bloques libres”. 
Manejo de Errores en Discos 
Algunos de los errores más comunes en discos son:   
  • Error de programación: Ej.: Solicitar un sector no existente.  
  • Error temporal en la suma de verificación: Ej.: Provocado por polvo en la cabeza.
  • Error permanente en la suma de verificación: Ej.: Un bloque del disco dañado físicamente.  
  • Error de búsqueda: Ej.: El brazo se envía al cilindro 6 pero va al 7.  
  • Error del controlador: Ej.: El controlador no acepta los comandos. 
Images

Unidad 6: Protección y Seguridad

6.1. Concepto y Objetivos de Protección  

Los procesos en un sistema operativo deben protegerse de las actividades realizadas por otros procesos. Para proporcionar dicha protección, podemos utilizar diversos mecanismos para garantizar que sólo los procesos que hayan obtenido la adecuada autorización del sistema operativo puedan operar sobre los archivos, los segmentos de memoria, sobre la CPU y sobre otros recursos del sistema.  
El concepto de protección hace referencia a un mecanismo para controlar el acceso de los programas, de los procesos o de los usuarios a los recursos definidos por el sistema informático. Este mecanismo debe proporcionar un medio de especificar los controles que hay que imponer, junto con un modo de imponerlos. Podemos distinguir entre los conceptos de protección y seguridad; este último es una medida de la confianza en que se puedan preservar la integridad de un sistema de sus datos.

Objetivos de la protección.   

A medida que los sistemas informáticos se han hecho más sofisticados y a medida que su rango de aplicaciones se ha ido incrementando, también ha crecido la necesidad de proteger la integridad de esos sistemas. La protección se concebía originalmente como algo asociado a los sistemas operativos multiprogramados, de modo que a los usuarios que no fueran de confianza pudieran compartir de manera segura un espacio lógico de nombres común, como por ejemplo un directorio de archivos, o compartir un espacio físico de nombres común, como por ejemplo la memoria. Los conceptos modernos de protección han evolucionado para incrementar la fiabilidad de cualquier sistema complejo que haga uso de recursos compartidos. 

6.2. Funciones del Sistema de Protección.    

Dado que los sistemas de computo se han venido haciendo cada vez más sofisticados en sus aplicaciones, la necesidad de proteger su integridad, también ha crecido. Los aspectos principales de protección en un Sistema Operativo son: 
  • Protección de los procesos del sistema contra los procesos de usuario. 
  • Protección de los procesos de usuario contra los de otros procesos de usuario.
  • Protección de Memoria. 
  • Protección de los dispositivos. 





6.3. Implantación de Matrices de Acceso.  

¿Qué es el Dominio de Protección?  
Un sistema computacional esta compuesto por procesos y objetos, los Objetos involucran Hardware y Software, cada objeto tiene un nombre único que lo diferencia y cada objeto puede ser accesado solamente mediante operaciones bien definidas. 
Ejemplo: 
  • El CPU se utiliza solamente para ejecución. 
  • Los segmentos de memoria se pueden leer y escribir. 
  • Un archivo puede ser leído, escrito, ejecutado y borrado. 

6.4. Protección Basada en el Lenguaje. 

La protección que se ofrece en los sistemas de computación existentes casi siempre se ha logrado con la ayuda del núcleo de un sistema operativo, que actúa como agente de seguridad que inspecciona y valida cada intento por acceder a un recurso protegido. Puesto que la validación de todos los accesos puede dar pie a un gasto extra considerable, debemos apoyarla con hardware para reducir el costo de cada validación o bien debemos aceptar que el diseñador del sistema podría inclinarse por sacrificar los objetivos de la protección. Es difícil satisfacer todos estos objetivos si los mecanismos de soporte con que se cuenta restringen la flexibilidad para implementar diversas políticas de protección. 

A medida que ha aumentado la complejidad de los sistemas operativos, sobre todo al trata de ofrecer interfaces de más alto nivel con el usuario, lo objetivos de la protección se han vuelto mucho más refinados. En esta refinación observamos que los diseñadores de los diseñadores de los sistemas de protección se han apoyado mucho en ideas que se originaron en los lenguajes de programación y especialmente en los conceptos de tipos de datos abstractos y objetos. Los sistemas de protección ahora se ocupan no sólo de la identidad de un recurso al cual se intenta acceder, sino también de la naturaleza funcional de ese acceso. En los sistemas de protección más nuevos, el interés en la función que se invocará se extiende más allá de un conjunto de funciones definidas por el sistema, como los métodos de acceso a archivos estándar, para incluir funciones que también podrían ser definidas por el usuario.  
Las políticas para el uso de recursos también podrían variar, dependiendo de la aplicación, y podrían cambiar con el tiempo. Por estas razones, la protección ya no puede considerarse como un asunto que sólo concierne al diseñador de un sistema operativo; también debe estar disponible como herramienta que el diseñador de aplicaciones pueda usar para proteger los recursos de un subsistema de aplicación contra intervenciones o errores.  
Aquí es donde los lenguajes de programación entran en escena. Especificar el control de acceso deseado a un recurso compartido en un sistema es hacer una declaración acerca del recurso. Este tipo de declaración se puede integrar en un lenguaje mediante una extensión de su mecanismo de tipificación. Si se declara la protección junto con la tipificación de los datos, el diseñado de cada subsistema puede especificar sus necesidades de protección así debería darse directamente durante la redacción del programa, y en el lenguaje en el que el programa mismo se expresa. Este enfoque tiene varias ventajas importantes:  
Las necesidades de protección se declaran de forma sencilla en vez de programarse como una secuencia de llamadas a procedimientos de un sistema operativo. Las necesidades de protección pueden expresarse independientemente de los recursos que ofrezca un sistema operativo en particular. El diseñador de un subsistema no tiene que proporcionar los mecanismos para hacer cumplir la protección. 

6.5. Concepto de Seguridad.   

La seguridad está definida en el diccionario como el conjunto de medidas tomadas para protegerse contra robos, ataques, crímenes y espionajes o sabotajes. La seguridad implica la cualidad o estado de estar seguro, es decir, la evitación de exposiciones a situaciones de peligro y la actuación para quedar a cubierto frente a contingencias adversas.   El uso creciente y la confianza en los computadores en todo el mundo ha hecho surgir una preocupación legítima con respecto a la seguridad informática. El uso de los computadores ha extendido en ambientes comerciales, gubernamentales, militares e incluso en los hogares. Grandes cantidades de datos vitales sensibles se están confiando y almacenado cada vez más en computadores. Entre ellos se incluyen registros sobre individuos, negocios y diferentes registros públicos y secretos gubernamentales y militares. Grandes transacciones monetarias tienen lugar diariamente en forma de transferencia electrónicas de fondos. Más recientemente, informaciones tales como notificaciones de propiedad intelectual y datos comerciales estratégicos son también almacenados, procesados y diseminados mediante computadores. Entre ellos se incluyen diseños de ventas, contratos legales y muchos otros.  
La seguridad, no solo requiere un sistema de protección apropiado, sino también considerar el entorno externo en el que el sistema opera. La protección interna no es útil si la consola del operador está al alcance de personal no autorizado, o si los archivos se pueden sacar simplemente del sistema de computación y llevarse a un sistema sin protección. Estos problemas de seguridad son esencialmente de administración, no problemas del sistema operativo.  
La información almacenada en el sistema, así como los recursos físicos del sistema de computación, tienen que protegerse contra acceso no autorizado, destrucción o alteración mal intencionada, y la introducción accidental de inconsistencia. 

6.6. Clasificaciones de La Seguridad.  

Clasificación de seguridad.  
Es decir que la clasificación de los sistemas de computación según sus requerimientos de la seguridad ha sido ampliamente discutida de la seguridad del sistema.  
En esta clasificación especifica, hay cuatro niveles de seguridad: a, b, c y d… a continuación, se describen estos niveles de seguridad y las características de cada uno.  

Nivel D es el Sistemas con protección mínima o nula no pasan las pruebas de seguridad mínima. MS-DOS y Windows 3. 1 son sistemas de nivel d. Puesto que están pensados para un sistema mono proceso y mono usuario, no proporcionan ningún tipo de control de acceso ni de separación de recursos. 
Nivel C a la Capacidad discrecional para proteger recursos, La aplicación de los mecanismos de protección depende del usuario, o usuarios, que tienen privilegios sobre los mismos. Entonces esto significa que un objeto puede estar disponible para lectura, escritura o cualquier otra operación. Y entonces casi todos los sistemas operativos comerciales de propósito general, como Unix, Linux o Windows NT se clasifican en este nivel.es decir dos son: Control de acceso por dominios. Control de acceso individualizado. Nivel B es el Control de acceso obligatorio en este nivel, los controles de acceso no son discrecionales de los usuarios o los dueños de los recursos, que deben existir obligatoriamente. 
Esto significa que todo objeto controlado debe tener protección sea del tipo que sea. Es decir que son tres y son: Etiqueta de seguridad obligatoria. Protección estructurada. Y el dominio de seguridad. 

Nivel A es el Sistemas de seguridad certificados para acceder a este nivel, la política de seguridad y los mecanismos de protección del sistema deben ser verificados y certificados por un organismo autorizado para ello.es decir dos tipos: Diseño verificado. Desarrollo controlado.

6.7. Validación y Amenazas al Sistema.   

Amenazas a la seguridad en el acceso al sistema: Intrusos. Programas malignos.  

Intrusos:  
Piratas o hackers: individuos que acceden al sistema sin autorización. 
Los sistemas presentan agujeros por donde los hackers consiguen colarse. 
Técnicas de intrusión:  
  • Averiguar contraseñas (más del 80% de las contraseñas son simples). 
  • Probar exhaustivamente. 
  • Descifrar archivo de contraseñas. 
  • Intervenir líneas. 
  • Usar caballos de Troya.  
  • Técnicas de prevención de intrusos: 

Establecer una buena estrategia de elección de contraseñas:  
  • Contraseñas generadas por ordenador (difícil memorización). 
  • Inspección activa (proceso periódico de averiguación). 
  • Inspección proactiva (decidir si es buena en su creación 
  • Técnicas de detección de intrusos:  

Investigar actividades inusuales:  
  • Detección de anomalías estadísticas. 
  • Uso de registros de auditoría que recogen información del comportamiento de cada usuario. 
Detección basada en reglas. 
  • Conjunto de reglas empleadas para decidir si una actividad es inusual.  
Tipos de amenazas: Amenazas pasivas: 
  • Revelación del contenido del mensaje. 
  • Amenazas activas
  • Alteración del flujo de mensajes. 
  • Privación del servicio:  Impide el uso normal de los servicios de comunicaciones.   

Clasificación de programas malignos:  

  • Programas malignos que necesitan anfitrión: Forman parte de un programa.
  • Trampillas: Punto de entrada secreto a un programa. 
  • Se usan para depuración y prueba. 
  • Pueden usarse para acceso no autorizado.  
  • Bomba lógica: Se ejecutan cuando se cumplen ciertas condiciones.  

Programas malignos que no necesitan anfitrión: 
  • Gusanos: Programas independientes. 
  • Se reproducen a través de la red. 
  • Bacterias: No dañan explícitamente. Su único objetivo es reproducirse. 
  • Se reproducen exponencialmente agotando la capacidad del procesador.  
  • Virus: Código incrustado en un programa. 
  • Se reproducen e insertan en otros programas. Pueden causar daños. 

6.8. Cifrado.  

Concepto de Cifrado.  
El cifrado es un método que permite aumentar la seguridad de un mensaje o de un archivo mediante la codificación del contenido, de manera que sólo pueda leerlo la persona que cuente con la clave de cifrado adecuada para descodificarlo. Por ejemplo, si realiza una compra a través de Internet, la información de la transacción (como su dirección, número de teléfono y número de tarjeta de crédito) suele cifrarse a fin de mantenerla a salvo. Use el cifrado cuando desee un alto nivel de protección de la información. 

Métodos y Técnicas de Cifrado:  

Cifrado de sustitución 
El cifrado de sustitución consiste en reemplazar una o más entidades (generalmente letras) de un mensaje por una o más entidades diferentes. 

Existen varios tipos de criptosistemas de sustitución: 
  • La sustitución monoalfabética consiste en reemplazar cada una de las letras del mensaje por otra letra del alfabeto. 
  • La sustitución polialfabética consiste en utilizar una serie de cifrados monoalfabéticos que son re-utilizados periódicamente. 
  • La sustitución homófona hace posible que cada una de las letras del mensaje del texto plano se corresponda con un posible grupo de caracteres distintos. 
  • La sustitución poligráfica consiste en reemplazar un grupo de caracteres en un mensaje por otro grupo de caracteres. 
Cifrado César 
Este código de cifrado es uno de los más antiguos ya que su uso se remonta a Julio César. El principio de cifrado se basa en la adición de un valor constante a todos los caracteres de un mensaje o, más precisamente, a su código ASCII. Cifrado ROT 13 

El caso específico del cifrado César donde la clave de cifrado es N (la 13º letra del alfabeto) se denomina ROT 13? (se eligió el número 13, la mitad de 26, para que sea posible cifrar y descifrar fácilmente mensajes textuales). 

  • Cifrado de Transposición El método de cifrado por transposición consiste en reordenar datos para cifrarlos a fin de hacerlos ininteligibles. Esto puede significar, por ejemplo, reordenar los datos geométricamente para hacerlos visualmente inutilizables. 
  • El Cifrado Simétrico. El cifrado simétrico (también conocido como cifrado de clave privada o cifrado de clave secreta) consiste en utilizar la misma clave para el cifrado y el descifrado. 
  • El cifrado consiste en aplicar una operación (un algoritmo) a los datos que se desea cifrar utilizando la clave privada para hacerlos ininteligibles. El algoritmo más simple (como un OR exclusivo) puede lograr que un sistema prácticamente a prueba de falsificaciones (asumiendo que la seguridad absoluta no existe). 
  • El cifrado asimétrico (también conocido como cifrado con clave pública). En un criptosistema asimétrico (o criptosistema de clave pública), las claves se dan en pares: Una clave pública para el cifrado. Una clave secreta para el descifrado. En un sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria que sólo ellos conocen (ésta es la clave privada). A partir de esta clave, automáticamente se deduce un algoritmo (la clave pública). Los usuarios intercambian esta clave pública mediante un canal no seguro.