Download 3 sistemas operativos

Document related concepts

Segmentación de memoria wikipedia , lookup

Gestión de memoria wikipedia , lookup

Memoria virtual wikipedia , lookup

Protección de memoria wikipedia , lookup

Desfragmentación wikipedia , lookup

Transcript
43
Arquitectura y programación de ordenadores
3 SISTEMAS OPERATIVOS
3.1 PROCESOS
El término proceso fue acuñado por primera vez por los diseñadores de Multics (1960),
y se han dado muchas definiciones, entre las que cabe destacar las siguientes:
1. Un programa en ejecución.
2. Entidad que puede ser asignada al procesador y ejecutada por él.
3. Unidad de actividad caracterizada por un sencillo tratamiento de ejecución secuencial, un
estado actual, y asociada a un conjunto de recursos del sistema.
Este concepto surge como consecuencia de los problemas que surgieron del desarrollo de los
propios sistemas operativos, como son la multiprogramación, el tiempo compartido y las
transacciones en tiempo real.
Una de las herramientas principales de las que disponían los programadores de sistemas para
evitar los conflictos anteriores, fue la interrupción. Con interrupción, la actividad de
cualquier trabajo puede suspenderse por un hecho determinado, como la culminación de una
E/S. El procesador debe entonces salvar algún tipo de contexto ( por ejemplo, el contador de
programa y otros registros) y bifurcar a una rutina de tratamiento de la interrupción, que
44
Arquitectura y programación de ordenadores
determina la naturaleza de esta, la procesa y después reanuda la ejecución del proceso de
usuario en el trabajo interrumpido o en algún otro trabajo.
Un sistema operativo capaz de controlar varias aplicaciones simultáneamente, con recursos
compartidos y varios usuarios, puede dar lugar a conflictos, entre los que caben destacar los
siguientes:
Sincronización incorrecta: un diseño incorrecto del mecanismo de generación de señales
puede dar como resultado la pérdida de señales o la recepción de señales duplicadas.
Fallos de exclusión mutua: debe existir algún tipo de mecanismo de exclusión mutua que
permita que sólo una rutina pueda realizar una transacción al mismo tiempo, sobre una
determinada parte de los datos.
Funcionamiento no determinista del programa: el orden en que se organiza la ejecución de
varios programas puede influir en los resultados de un programa en particular, ya que estos
pueden compartir memoria y sus ejecuciones se intercalan el procesador.
Interbloqueos: es posible que dos o más programas están suspendidos a la espera uno del
otro, debido a la aleatoriedad de la asignación y liberación de recursos compartidos.
Para evitar estos problemas necesitamos supervisar y controlar los diferentes programas que
puedan estar ejecutándose en el procesador. El concepto de proceso ofrece esta base, y se
puede considerar esta formado por los siguientes componentes:
Un programa ejecutable.
Los datos asociados necesarios para el programa ( variables, espacio trabajo, buffers, etc...).
El contexto de ejecución del programa o estado del proceso.
45
Arquitectura y programación de ordenadores
Este último elemento es esencial, pues incluye toda la información que el sistema operativo
necesita para administrar el proceso y que el procesador necesita para ejecutarlo
correctamente. El contexto incluye los contenidos de varios registros del procesador, tales
como el contador de programa y los registros de datos. Además, en el contexto se guarda el
estado de un proceso que ha sido temporalmente interrumpido . También incluye información
de utilidad al sistema operativo, como la prioridad del proceso y si el proceso esta esperando
la terminación de un suceso particular de E/S.
A cada proceso se le asigna un bloque de memoria que contiene el programa, los datos y la
información del contexto. Cada proceso también es registrado en una línea de procesos
construida y guardada por el sistema operativo en la memoria principal. Esta lista contiene una
entrada para cada proceso, la cual dispone de un puntero para la posición del bloque de
memoria que contiene al proceso. Esta entrada también puede incluir parte o todo el contexto
de ejecución del proceso. En el propio procesador se guardan valores relativos a los procesos
que están teniendo lugar. Así , el registro índice del proceso contiene el índice, dentro de la
lista de procesos, del proceso que está actualmente controlando al procesador. El contador de
programa apunta a la siguiente instrucción del proceso que se ejecutará. Los registros base y
límite definen la región de memoria ocupada por el proceso. El registro base contiene la
dirección de comienzo de la región de memoria y el registro límite indica el tamaño de la
región (en butes o palabras). Contador de programa y toda la referencias a datos se interpretan
como relativas al registro base y no deben exceder el valor del registro límite. Esto impide las
interferencias entre procesos.
Un proceso puede estar ejecutándose o esperando su ejecución. Todo el estado del proceso en
un instante determinado, está contenido en su contexto. Esta estructura permite el desarrollo
de técnicas potentes, que aseguran la coordinación y la cooperación entre procesos. Se pueden
diseñar e incorporar nuevas características al sistema operativo (por ejemplo , prioridades)
mediante la ampliación del contexto para incluir cualquier nueva información que sea
necesaria para dar soporte al nuevo atributo.
46
Arquitectura y programación de ordenadores
2
3.2 GESTIÓN DE MEMORIA
En un sistema monoprogramado, la memoria principal se divide en dos partes: una para el
sistema operativo ( monitor residente, núcleo) y otra para el programa que se ejecuta en ese
instante. En sistema multiprogramado, la parte de usuario de la memoria debe subdividirse
aún más para hacer sitio a varios procesos. La tarea de subdivisión la lleva a cabo
dinámicamente el sistema operativo y se conoce como gestión de memoria, repartiendo
eficazmente la memoria, para introducir tantos procesos como sea posible.
Se parte de la necesidad de que un programa esté cargado en la memoria principal para poder
ser ejecutado.
Para satisfacer estos requisitos, el sistema operativo debe cumplir las siguientes tareas:.
Aislamiento del proceso: el sistema operativo debe procurar que cada proceso independiente
no interfiera en los datos y la memoria de ningún otro.
Asignación y gestión automáticas: el sistema operativo puede lograr eficiencia asignando
memoria dinámicamente a los trabajos, según la vayan necesitando.
Soporte para programación modular: El programa se ha de construir en módulos de tamaño
variable para optimizar el uso de la memoria.
Protección y control de acceso: el sistema operativo debe permitir que las secciones de
memoria estén accesibles de diferentes maneras para los diversos usuarios, de manera que esto
no amenaza de la integridad de los programas y del mismo sistema.
Almacenamiento a largo plazo: muchos programas de aplicaciones necesitan ser almacenados
en memoria después de apagar el computador.
47
Arquitectura y programación de ordenadores
Requisitos de la gestión de memoria
Al realizar un estudio de los diversos mecanismos asociados con la gestión de memoria, es
conveniente tener en cuenta los requisitos mínimos que se intentan satisfacer, como son la
reubicación, la protección, compartición, organización lógica y organización física.
La reubicación se refiere a la capacidad de traducir las referencias a la memoria encontradas
en el código del programa, a las direcciones físicas reales que reflejen la posición actual del
programa en la memoria principal
Cada proceso debe protegerse contra interferencias no deseadas de otros procesos. Así pues,
el código de un proceso no puede hacer referencia a posiciones de memoria de otros procesos,
confines de lectura o escritura, sin permiso. Normalmente un proceso de usuario no puede
acceder a ninguna parte del sistema operativo, ni programas ni datos.El programa de un
proceso, normalmente, no puede bifurcarse hacia una instrucción de otro proceso. El
procesador debe ser capaz de abortar estas instrucciones el momento de la ejecución. Es el
procesador y no al sistema operativo, el que debe satisfacer las exigencias de protección de la
memoria. Este es debido a que el sistema operativo no puede anticiparse a todas las
referencias a la memoria que hará un programa.
Cualquier mecanismo de protección que se implemente debe tener la flexibilidad de permitir
el acceso de varios procesos a la misma zonal de memoria principal. El sistema de gestión de
memoria debe, permitir accesos controlados a las áreas compartidas de la memoria sin
comprometer la protección básica.
De forma casi invariable la memoria principal de un sistema informático se organiza como un
espacio de direcciones lineal o unidimensional, que consta de una secuencia de bytes o
palabras. La memoria secundaria, físicamente, se organiza de forma similar. Si bien esta
organización refleja fielmente el jaguar de la máquina, no se corresponde con la forma en la
que los programas están construidos habitualmente. La mayoría de los programas se organizan
en módulos, que pueden escribirse o compilarse independientemente, otorgando distinto grado
48
Arquitectura y programación de ordenadores
de protección a cada uno, siendo posible introducir mecanismos por medio de los cuales los
procesos puedan compartir módulos. Este tipo de organización de la memoria es lógica, y la
herramienta más utilizada es la segmentación.
Organización física. La gestión de la memoria en sistema jerárquico, y el flujo información
entre los diferentes niveles debe ser tarea de sistema operativo. Esta tarea es la esencia de la
gestión de memoria.
Partición de la memoria
La tarea principal de sistema de gestión de memoria es cargar los programas en la memoria
principal para su ejecución en el procesador. En casi todos los sistemas mulprogramados
modernos, esta tarea requiere un sofisticado esquema llamado memoria virtual. La memoria
virtual ésta, a su vez, basada en el uso de una de dos técnicas básicas: segmentación o
paginación. Antes de ver estas técnicas de memoria virtual, consideraremos técnicas más
simples que no requieren el uso de memoria virtual. Una de estas técnicas, la partición, se ha
venido usando con distintas variantes en algunos sistemas operativos ahora obsoletos. Las
otras dos técnicas, la paginación simple y la segmentación simple, se usan conjuntamente. No
obstante, el estudio de la memoria virtual resultará más sencillo si se consideran en primer
lugar estas dos técnicas sin tener en cuenta la memoria virtual.
Particiones estáticas
En la mayoría de los esquemas de gestión de memoria, se puede suponer que sistema
operativo ocupa una parte fija de la memoria principal y que el resto de la memoria está
disponible para ser usado por varios procesos. El esquema más sencillo de gestión de la
memoria disponible es dividirla en regiones con límites fijos. Aquí nos encontramos con dos
alternativas. Una posibilidad es emplear particiones de igual tamaño, pero esto plantea dos
dificultades. Un programa puede ser demasiado grande para caber en la partición, en cuyo
caso el programa debe dividirse en módulos, para que sólo una parte de este esté en la
memoria principal en cada instante. El otro inconveniente se debe a que el uso de la memoria
49
Arquitectura y programación de ordenadores
principal es extremadamente ineficiente. Cualquier programa, sin importar lo pequeño que
sea, ocupará una partición completa, produciendo fragmentación interna.
Puedan reducirse, aunque no solventarse, ambos problemas por medio del empleo de
particiones de distintos tamaños.
El uso de la partición estática es casi nulo hoy día. Como ejemplo de un sistema operativo que
empleaba esta técnica, se tiene un antiguo sistema operativo de grandes computadoras de
IBM, el OS/MFT (multiprogramación con un número fijo de tareas)
Con particiones del mismo tamaño la ubicación de un proceso en la memoria es trivial, con
particiones de distintos tamaños, hay dos maneras posibles de asignar los procesos a las
particiones. La forma más simple es asignar cada proceso a la partición más pequeña en la que
quepa. En este caso hace falta una cola de planificación para cada partición, que albergue los
procesos expulsados cuyo destino es dicha partición. La ventaja de este enfoque es que los
procesos están siempre asignados de forma que se minimiza la memoria desaprovechada
dentro de cada partición ( fragmentación interna). Sin embargo esta técnica no es óptima
desde el punto de vista del sistema global, y una solución mejor sería emplear una única con la
para todos los procesos. Cuando se va a cargar un proceso en la memoria principal, se
selecciona de partición más pequeña disponible que pueda albergar al proceso. Si todas las
particiones están ocupadas, se debe tomar una decisión de intercambio. Puede darse
preferencia al intercambio de la partición más pequeña que pueda contener al proceso
entrante. También es posible considerar otros factores, tales como prioridades y preferencia a
descargar procesos bloqueados antes que procesos listos.
Particiones dinámicas
Con la partición dinámica, las particiones son variables en número y longitud. Cuando se
carga un proceso en la memoria principal, se le asigna exactamente tanto memoria, necesita y
no más. Este método comienza bien, pero, finalmente, desemboca en una situación en la que
hay un gran número de huecos pequeños en la memoria. Conforme pasa tiempo, la memoria
50
Arquitectura y programación de ordenadores
comienza a estar más fragmentada y su rendimiento decae. Este fenómeno se denomina
fragmentación externa y se refiere al hecho de que la memoria externa a todas las particiones
se fragmenta cada vez más. Una técnica utilizada para evitar la fragmentación, es la
compactación: de vez en cuando, el sistema operativo desplaza los procesos para estén
contiguos, de forma que toda la memoria libre quede junta en un bloque.
Los tres algoritmos ubicación que se utilizan en este tipo de particiones son el de mejor ajuste
(best-fit), el primer ajuste (first-fit) y siguiente ajuste (next-fit). Todos ellos se limitan a elegir
entre los bloques de memoria libres que son mayores o iguales que el proceso a cargar.
El algoritmo de primer ajuste no sólo es el más sencillo, sino que normalmente es también el
mejor y más rápida. El algoritmo del siguiente ajuste tiende a generar resultados algo peores
que el anterior, pues lleva frecuentemente al asignación de bloques libres al
final de la memoria, y hará falta una compactación más frecuente. Con el algoritmo del mejor
ajuste, a pesar de su nombre, se obtienen los peores resultados, porque este algoritmos buscar
el hueco más pequeño que cumple con los requisitos, garantizando que el fragmento que se
deja es lo más pequeño posible. Aunque cada solicitud de memoria desperdicia siempre la
menor cantidad de memoria, el resultado es que la memoria principal se llena rápidamente de
bloques demasiado pequeños como para satisfacer la solicitudes de asignación de memoria.
Así pues, se debe compactar más frecuentemente que con los otros algoritmos.
Sistema de colegas
Tanto los esquemas de partición estática como dinámica tienen inconvenientes. Los esquemas
de partición estática limitan el número de procesos activos y pueden utilizar el espacio
ineficientemente si hay poca concordancia entre los tamaños de las particiones disponibles y
los tamaños de los procesos. Un esquema de partición dinámica es mucho más complejo de
mantener e incluye la sobrecarga de compactar. Un equilibrio interesante es el sistema de
colegas.
51
Arquitectura y programación de ordenadores
Para empezar, el espacio entero disponible para la asignación se trata como solo bloque de
tamaño 2U, siendo este el máximo espacio disponible en la memoria principal. Si se hace una
solicitud de tamaño s tal que 2U-1 < s <=2U, entonces el bloque entero se asigna. Si no es así, el
bloque se divide en dos colegas de igual tamaño 2U-1. Si 2U-2 <s <2U-1, entonces la solicitud se
asigna a uno de los dos colegas. Si no, uno de los colegas divide por la mitad nuevamente.
Este proceso continúa hasta que el bloque más pequeño sea mayor o igual que s generándose y
asignándose a la solicitud. En cualquier instante, el sistema de colegas mantiene una lista de
huecos (bloques de asignados) para cada tamaño 2i. Un hueco puede eliminarse de la lista
(i+1) dividiéndola en dos mitades para crear dos colegas de tamaño 2i en la lista i. Cuando una
pareja de colegas de la lista i pasa a estar libre, se les elimina de la lista y se unen en un solo
bloque de la lista i+1.
Paginación
Tanto las particiones de tamaño fijo como las de tamaño variable hacen un uso ineficiente de
la memoria: las primeras generan fragmentación interna, mientras las segundas originan
fragmentación externa. Cuando la memoria se encuentra dividida en trozos iguales de tamaño
fijo relativamente pequeños (marcos) y cada proceso está dividido también en pequeños trozos
de tamaño fijo, del mismo tamaño que los de la memoria (páginas), entonces el espacio
desaprovechado en la memoria para cada proceso por fragmentación interna consta sólo de
una fracción de la última página del proceso. Además, no hay fragmentación externa.
De esta forma el sistema operativo mantiene una tabla de páginas para cada proceso. Esta
muestra la posición del marco de cada página del proceso. Dentro del programa, cada
dirección lógica constará de un número de páginas y un desplazamiento dentro de la página.
Con la paginación, el hadware del procesador también realiza la traducción de direcciones
lógicas a físicas. Ahora, el procesador debe saber cómo acceder a la tabla de páginas del
proceso actual. Dada una dirección lógica (número de página, desplazamientos), el procesador
emplea la tabla de páginas para obtener una dirección física (número de marco,
desplazamiento).
52
Arquitectura y programación de ordenadores
Segmentación
Otro modo de subdividir el programa es la segmentación. En este caso, el programa y sus
datos asociados se dividen en un conjunto de segmentos. No es necesario que todos los
segmentos de todos los programas tengan la misma longitud, aunque existe una longitud
máxima de segmento. Como en la paginación, una dirección lógica segmentada consta de dos
partes, en este caso un número de segmento y desplazamiento.
Como consecuencia del empleo de segmentos de distintos tamaños, la segmentación resulta
similar a la partición dinámica. En ausencia de un esquema de superposición o del uso de
memoria virtual, sería necesario cargar en la memoria todos los segmentos de un programa
para su ejecución. La diferencia, en comparación con la partición dinámica, radica en que, con
segmentación, un programa puede ocupar más de una partición y éstas no tienen porqué estas
contiguas. La segmentación elimina la fragmentación interna, pero la partición dinámica, sufre
de fragmentación externa. Sin embargo, debido a que los procesos se dividen en un conjunto
de partes más pequeñas, la fragmentación externa será menor.
Mientras que la paginación es transparente el programador, la segmentación generalmente es
visible y se ofrece como la ventaja para la organización de los programas y datos.
Normalmente el programador o el compilador asigna los programas y los datos a diferentes
segmentos de. Para facilitar la programación modular, el programa o los datos pueden ser
divididos de nuevo en diferentes segmentos. El principal inconveniente de este servicio es que
el programador debe ser consciente de la limitación de tamaño máximo de los segmentos.
Otra consecuencia del tamaño desigual de los segmentos es que no hay una correspondencia
simple entre las direcciones lógicas y las direcciones físicas. De forma análoga a la
paginación, un esquema de segmentación simple hará uso de una tabla de segmentos para cada
proceso y una lista de bloques libres en la memoria principal. Cada entrada de la tabla de
segmentos tendría que contener la dirección de comienzo del segmento correspondiente de la
memoria principal. La entrada de ver a proporcionar también la longitud del segmento para
53
Arquitectura y programación de ordenadores
garantizar que no se usan direcciones no válidas. Cuando un proceso pasa de estado
ejecutando, se carga la dirección de su tabla de segmentos en un registro especial del hardware
de gestión de memoria.
Para resumir, y con segmentación simple un proceso se divide en varios segmentos que no
tienen porque ser el mismo tamaño. Cuando el proceso se introduce en la memoria, se cargan
todos sus segmentos en regiones de memoria libres y se rellena la tabla de segmentos.
Memoria virtual
Comparando la paginación y la segmentación simple por un lado, con la partición estática y
dinámica por el otro, se establecen las bases para un avance de la fundamental en la gestión de
memoria. Las claves de este avance son dos características de la paginación y la
segmentación:
1. Todas las referencias a la memoria dentro de un proceso son direcciones lógicas que se
traducirán dinámicamente al direcciones físicas durante la ejecución. Esto significa que un
proceso puede cargarse y descargarse de la memoria principal de tal forma que ocupe regiones
diferentes en momentos distintos a los largo de su ejecución.
2. un proceso puede dividirse en varias partes (páginas o segmentos) y no es necesario que
estas partes se encuentra en contiguas en la memoria principal durante la ejecución. Esto es
posible por la combinación de la traducción dinámicas direcciones en tiempo de ejecución y el
uso de una tabla de páginas o de segmentos.
Volviendo sobre la avance comentado, si estas dos características están presentes, no será
necesario que todas las páginas o todos los segmentos de un proceso estén en la memoria
durante la ejecución. Si tanto el fragmento (página o segmento) que contiene la siguiente
instrucción a leer como la parte contiene los próximos datos a acceder están en la memoria
principal, la ejecución podrá continuar al menos por un tiempo.
54
Arquitectura y programación de ordenadores
A continuación se verá cómo conseguirlo. Supóngase que se trae un proceso a la memoria en
momento dado. El sistema operativo comienza trayendo sólo unos pocos fragmentos, incluido
el fragmento que contiene el comienzo de programa. Si llamará conjunto residente del proceso
a la parte de un proceso que está realmente en la memoria principal. Cuando el proceso se
ejecuta, todo irá perfectamente mientras todas las referencias a la memoria estén en posiciones
que pertenezca al conjunto residente. A través de la tabla de páginas o de segmentos, el
procesador siempre es capaz de determinar si esto es así. Se procesador encuentra una
dirección lógica que no está en la memoria principal, genera una interrupción que indica un
fallo de acceso a memoria. El sistema operativo pone al proceso interrumpido en estado
bloqueado y toma el control. Para que la red ejecución de este proceso siga más tarde, el
sistema operativo necesita traer a la memoria principal el fragmento de proceso que contiene
la dirección lógica que provocó el fallo de acceso. Para ello el sistema operativo emite una
solicitud de lectura de entrada salida al disco. Después de haber emitido esta solicitud, el
sistema puede expedir otro proceso para que se ejecute mientras se realiza la operación de
E/S. Una vez que el fragmento deseado se ha traído a la memoria principal y se ha emitido la
interrupción de entrada salida, se devuelve el control al sistema operativo, que coloca el
proceso afectado en el estado de listo.
Ahora bien, esto puede llevar a cuestionarse la eficiencia de esta operación en la cual un
proceso se puede estar ejecutando y ser interrumpido sin otra razón que un fallo en la carga de
todos los fragmentos necesarios para el proceso. Pero las implicaciones de esta nueva
estrategia, son sorprendentes:
1. Se pueden mantener más procesos en la memoria principal. Puesto que se van a cargar
sólo algunos fragmentos de un proceso particular, habrá sitio para más procesos. Esto conduce
a una utilización más eficiente del procesador, puesto que es más probable que, por lo menos,
uno de los numerosos procesos esté en estado listo en un instante determinado.
2. Es posible que un proceso sea más grande que toda la memoria principal. Se elimina
así una de las limitaciones más notorias de la programación. Sin el esquema que se ha
55
Arquitectura y programación de ordenadores
expuesto, un programador debe ser consciente de cuanta memoria tiene disponible. Si
programa que está escribiendo es demasiado grande, se debe idear una forma de estructurar el
programa en fragmentos que puedan cargarse de forma separada con algún tipo de estrategia
de superposición. Con una memoria virtual basada en la paginación o segmentación, este
trabajo queda para el sistema operativo y el hardware. En lo que atañe
al programador, trabaja con una memoria enorme, dependiendo del tamaño del
almacenamiento en el disco. El sistema operativo cargará automáticamente en la memoria
principal los fragmentos de un proceso cuando los necesite.
3.3 SEGURIDAD Y PROTECCIÓN DE LA INFORMACIÓN
Las sociedades avanzadas de fin de este siglo son denominadas frecuentemente sociedades de
la información, pues el volumen de datos que es procesado, almacenado y transmitido es
inconmensurablemente mayor que es cualquier época pretérita.
Además, no sólo el volumen, sino la importancia de esta información para el desarrollo
económico y social, no tiene ningún parangón con la que tuvo en el pasado. De hecho, en la
actualidad, las organizaciones consideran que la información es un bien más de su activo y, en
muchos casos, prioritario sobre los restantes. Pero gran parte de esos datos que nosotros, o las
entidades de nuestra sociedad, manejamos, han sido tratados, sea durante su proceso, o
almacenamiento, o transmisión, mediante las llamadas tecnologías de la información,entre las
que ocupa un lugar focal la informática. Consiguientemente, la seguridad de las tecnologías de
información, y por ende las informática, se convierte en un tema de crucial importancia para el
continuo y espectacular progreso de nuestra sociedad, e incluso para su propia supervivencia.
Por otro lado, la eclosión en los últimos años de las redes informáticas y fundamentalmente de
Internet, ha sido el factor fundamental que ha hecho que la Seguridad Informática cobrase una
importancia vital en el uso de sistemas informáticos conectados. Desde el momento en que
nuestro ordenador se conecta a Internet, se abren ante nosotros toda una nueva serie de
posibilidades, sin embargo éstas traen consigo toda una serie de nuevos y en ocasiones
complejos tipos de ataque. Más aun, mientras en un ordenador aislado el posible origen de los
56
Arquitectura y programación de ordenadores
ataques es bastante restringido, al conectarnos a Internet, cualquier usuario de cualquier parte
del mundo puede considerar nuestro sistema un objetivo apetecible.
Existe un acuerdo y conciencia general sobre la importancia de la Seguridad de los Sistemas
de Información (SSI). La SSI está relacionada con la disponibilidad, confidencialidad e
integridad de la información tratada por los ordenadores y las redes de comunicación. Se usan
comúnmente otros términos que en esencia tienen el mismo significado, tales como seguridad
de la información, seguridad de los ordenadores, seguridad de datos o protección de la
información, pero en aras de la consistencia, usaremos el término Seguridad de los Sistemas
de Información en las páginas siguientes. Los objetivos fundamentales del presente tema son
los siguientes: • Introducir el concepto de Sistema de Información, sus principales
componentes y tipos de información manejados. • Definir los conceptos básicos involucrados
en la seguridad informática como son la confidencialidad, integridad y disponibilidad.
Definir cuales son las principales amenazas y vulnerabilidades de un sistema informático, así
como los distintos tipos de medidas que podemos utilizar para prevenirlas. • Definir que se
entiende por política de seguridad, cómo se fija y cuales son sus principales contenidos. •
Introducir algunos principios básicos que subyacen en la aplicación de cualquier política de
seguridad informática.
3.3.1 Conceptos básicos
Entendemos por información el conjunto de datos que sirven para tomar una decisión. En
consecuencia, su necesidad es evidente tanto en la planificación estratégica a largo plazo
como en la fijación de estándares para la planificación a corto. La información también es
necesaria para el estudio de las desviaciones y de los efectos de las acciones correctoras; es un
componente vital para el Control.
En cuanto a su implantación, se puede hablar de: • Subsistema formalizado: Normas,
procedimientos e información de negocio. • Subsistema no formalizado: Flujos de
información que no pasan por el sistema de información
formalizado (rumores, charlas informales, llamadas telefónicas, etc.).
El sistema informático es un subconjunto del subsistema formalizado, con distinto grado de
cobertura. Por otra parte, se puede ver el sistema informático como el conjunto de los recursos
técnicos (máquinas y utensilios), financieros (ingresos, gastos y patrimonio) y humanos
57
Arquitectura y programación de ordenadores
(plantilla de informáticos y personal auxiliar), cuyo objetivo consiste en el almacenamiento,
procesamiento y transmisión de la información de la empresa.
3.3.2. Aspectos clave en la SSI
Debido a la difusión de las tecnologías de la información, la mayoría de las organizaciones
actuales están expuestas a una serie de riesgos derivados de una protección inadecuada o
inapropiada de la información o de sus sistemas de tratamiento. Apuntaremos sólo dos
ejemplos de esta vulnerabilidad creciente. Primero, con la gran expansión del uso de
ordenadores personales se ha magnificado el problema de la SSI, debido sobre todo a la
carencia de controles de seguridad básicos en este tipo de sistemas. En segundo lugar, la
evolución hacia entornos con acceso global y múltiple, con un aumento de la conectividad
entre organizaciones distintas, plantea retos importantes a la gestión de la seguridad.
Los riesgos fundamentales asociados con la incorrecta protección de la información son: •
Revelación a personas no autorizadas • Inexactitud de los datos • Inaccesibilidad de la
información cuando se necesita.
Estos aspectos se relacionan con las tres características que debe cubrir un SI seguro:
confidencialidad, integridad y disponibilidad. Así pues, preservar estas tres características de
la información constituye el objetivo de la seguridad.
Los problemas técnicos, las amenazas ambientales, las condiciones de instalación
desfavorables, los usuarios, la situación política y social, son otros tantos factores susceptibles
de poner en peligro el buen funcionamiento de los SI. Las amenazas a los SI van desde
desastres naturales tales como inundaciones, accidentes o incendios, hasta abusos deliberados
como fraudes, robos, virus, con un origen tanto interno como externo.
Aunque se pueda pensar que el problema de la seguridad de los SI está sobredimensionado,
muchos intereses no son nunca detectados, o se ocultan por los gestores porque muestran
fallos o debilidades de los procedimientos de seguridad, existiendo una natural resistencia en
informar de los mismos a personas ajenas.
58
Arquitectura y programación de ordenadores
3.3.3 Seguridad Informática
No existe una definición estricta de lo que se entiende por seguridad informática, puesto que
ésta abarca múltiples y muy diversas áreas relacionadas con los SI. Áreas que van desde la
protección física del ordenador como componentes hardware, de su entorno, hasta la
protección de la información que contiene o de las redes que lo comunican con el exterior.
Tampoco es único el objetivo de la seguridad. Son muy diversos tipos de amenazas contra los
que debemos protegernos. Desde amenazas físicas, como los cortes eléctricos, hasta errores no
intencionados de los usuarios, pasando por los virus informáticos o el robo, destrucción o
modificación de la información.
No obstante sí hay tres aspectos fundamentales que definen la seguridad informática: la
confidencialidad, la integridad y la disponibilidad. Dependiendo del tipo de sistema
informático con el que tratemos (militar, comercial, bancario, ...), el orden de importancia de
estos tres factores es diferente, e incluso entran en juego otros elementos como la autenticidad
o el no repudio. El enfoque de la política de seguridad y de los mecanismos utilizados para su
implementación está influido por el más importante de los tres aspectos. Estos aspectos
también pueden entenderse como metas u objetivos.
Definición operacional: Un ordenador es seguro si podemos contar con que su hardware y su
software se comporten como se espera de ellos.