Sistemas operativos
David Leonardo Jaimes Contreras
SISTEMAS DE COMUNICACIÓN
Comunicación
Los procesos ejecutándose concurrentemente en un sistema operativo pueden ser independientes o cooperantes. Un proceso es independiente si no afecta o es afectado por otro proceso en el sistema. Cualquier proceso que no comparte data con otro proceso es independiente. Un proceso es cooperante si puede afectar o ser afectado por otros procesos en el sistema.
- Compartición de información: se debe proveer un ambiente que permita el acceso concurrente a la información.
- Speedup: para hacer que una tarea sea mas rápida, se debe separar en subtareas y que se ejecuten paralelamente ( solo se puede si la computadora tiene múltiples cores o múltiples procesadores) .
- Modularidad
- Conveniencia: un usuario puede ejecutar diferentes tareas al mismo tiempo.
Sistemas de memoria compartida
El proceso de comunicación usando memoria compartida requiere que los procesos que se están comunicando establezcan una región de memoria compartida. Otros procesos que quieran comunicarse usando un segmento de memoria compartida ya creado debe adjuntarlo a su espacio de direcciones. La forma y locación de la data esta determina por los procesos y no esta bajo el control del sistema operativo.
Sistemas de Pasos de Mensaje
El paso de mensajes provee un mecanismo que permita a procesos comunicar y sincronizar sus acciones sin la necesidad de compartir el mismo espacio de direcciones. Es particularmente útil en ambientes distribuidos. En este esquema se proveen de al menos dos funciones send y receive. Los mensajes enviados por un procesos puede tener un tamaño fijo o variable.
- Tamaño fijo: la implementación en el sistema es sencillo pero hace la programación mas difícil.
- Tamaño variable: implementación en el sistema complicada pero las tareas de programación son mas simples.
Para que dos procesos se puedan comunicar un canal de comunicación debe existir entre los procesos.
Comunicación directa
Cada proceso que desea comunicarse debe nombrar al receptor o emisor de la comunicación. El canal de comunicación debe tener las siguientes propiedades.
- Un canal es establecido automáticamente entre cada par de procesos que se quieren comunicar.
- Un canal es asociado exactamente a dos procesos.
- Entre cada para de procesos solo existe un canal.
La comunicación directa es simétrica debido a que tanto el emisor como receptor debe nombrar al otro procesos para comunicarse.
Se puede modificar el esquema para que sea direccionamiento asimétrico, donde solo el emisor menciona al receptor.
Comunicación indirecta
Los mensajes son enviados y recibidos desde un buzón. Cada buzo tiene un identificador único. Un proceso puede comunicarse con otro proceso mediante un numero variante de buzones, pero dos procesos pueden comunicarse solo si tienen buzones compartidos. Los buzones tienen un dueño y un usuario en donde el dueño es el receptor y el usuario es el emisor.
Sincronización
- Bloquear el envío: el proceso emisor es bloqueado hasta que el mensaje sea recibido por los receptor o por el buzón
- No bloquear el envío: el emisor envía el mensaje y reanuda su operación.
- Bloqueando la recepción: el receptor se bloquea hasta que un mensaje esté disponible.
- No bloquear la recepción: el receptor recupera un mensaje valido o un null
Buffering
Cuando la comunicación es directa o indirecta los mensajes intercambiados en la comunicación entre procesos se encuentran en una cola temporal. Estas colas pueden ser implementadas de tres maneras:
- Capacidad 0: la cola tiene una capacidad máxima de 0, la conexión o canal no puede tener algún mensaje esperando en ella. En este caso, el emisor debe bloquearse hasta que el receptor reciba el mensaje.
- Capacidad limitada: tienen una capacidad finita de n mensajes. Si la cola no está full cuando un mensaje es enviado, el mensaje es puesto en la cola ( puede ser una copia o un apuntador al mensaje), y el emisor puede continuar su ejecución sin esperar. Si canal está full el emisor se debe bloquear hasta que haya disponibilidad en la cola.
- Capacidad ilimitada: la capacidad de la cola es casi infinita. Cualquier cantidad de mensaje puede esperar en la cola y como consecuencia el emisor nunca se bloquea.
SISTEMAS DE SEGURIDAD
La función principal de un Sistema Operativo (SO) es la de tomar todos los recursos físicos de un sistema de computo y brindarlos de manera virtual, esto es logrado por medio de una abstracción del hardware (HW). En la actualidad no es suficiente con permitir el manejo y uso del HW si no se maneja seguridad y protección .
Es importante en definir claramente las diferencias entre estos dos conceptos
- La seguridad : es la ausencia de un riesgo. Aplicando esta definición a al tema correspondiente, se hace referencia al riesgo de accesos no autorizados, de manipulación de información, manipulación de las configuraciones, entre otros
- La protección : son los diferentes mecanismo utilizados por el SO para cuidar la información, los procesos, los usuarios, etc
Después de tener claro que quiere decir cada tema surgen numerosas ideas en nuestras mentes, ya que la seguridad es algo que manejamos en todos los aspectos de nuestras vidas, y por experiencia se sabe que no depende de un solo actor ( persona, computador , … ) si no que esta fuertemente ligada con todo lo que lo rodea, por esto la seguridad no solo es manejada por el sistema operativo si no que es necesario un refuerzo como otro software que comúnmente denominamos “antivirus”. Un SO como administrador de los recursos cumple funciones muy importantes en la instrumentación de la seguridad pero no engloba todos los aspectos de esta, la cual se fortalece según las necesidades y los usos ( es decir que según la necesidades y enfoques que dan los usuarios a los equipos estos cuentan con diferentes tipos de seguridad ). En la actualidad los conceptos e ideas tenidos sobre la seguridad han ido cambiando mucho, esto por que se entro a un era donde es posible los accesos remotos a los equipos, donde se busca que todo proceso sea mas fácil de realizar ( y sabemos que la seguridad es inversamente proporcional a la facilidad de uso ).
Un sistema de seguridad debe cumplir con unos requisitos:
- Confidencialidad: Acceso solo a usuarios autorizados
- Integridad: Modificación solo por usuarios autorizados
- Disponibilidad: Recursos solamente disponibles para usuario autorizado
La seguridad se clasifica en:
- Externa: protección contra desastres y contra intrusos
- Operacional: básicamente nos determina que acceso se permite a quien
Una de las obligaciones de un sistema seguro es permanecer en constante vigilancia, verificando y validando las posibles amenazas, esto lo hacen con uso de contraseñas, controles de acceso
Se plantea que es mas fácil haces un sistema seguro si esto se ha incorporado desde los inicios del diseño, por que no se puede hablar de un SO seguro si su núcleo no lo es; de igual manera es posible hacer seguridad por hardware donde se obtiene como ventaja la velocidad de operación permitiendo controles mas frecuentes y mejora el performance
Con respecto a los SO mas seguros es difícil listarlos ya que todos tienen sus seguidores y contractares los cuales por instinto suelen defender lo que usan, pero es sin duda alguna lo que responden las encuestas hay una delas distribuciones de Linux denominada openBSD que es conocido como el SO mas seguro a parte de que no deja de ser software libre, de igual manera es situado a a los SO de Windows encima del Mac OSX donde apenas la ultima versión empieza a aplicar completamente algoritmos de seguridad que desde antes eran utilizados por la competencia pero sin duda alguna los sistemas libres ganan la batalla con respecto a la seguridad
Para poder garantizar la seguridad es fundamental proteger nuestro sistema, por eso básicamente los mecanismo articulados para la protección son los que nos llevan a un sistema seguro; existen diferentes formas de realizar la protección tal vez la mas común y mas básica sea definir cuales son los archivos u objetos a proteger para que posteriormente se delimite que usuarios pueden acceder a que información
Como objetivos de la protección esta:
- Controlar el acceso a los recursos
- Utilizabilidad por diferentes usuarios
Generalmente surgen dudas sobre que es lo que debemos proteger o que debo cuidar mas y la respuesta es siempre variable según el tipo de necesidades de cada usuario, pero generalmente los mas afectados son la CPU, la memoria, terminales, procesos, ficheros y las bases de datos
Un sistema de protección deberá tener la flexibilidad suficiente para poder imponer una diversidad de políticas y mecanismos.
La protección se refiere a los mecanismos para controlar el acceso de programas, procesos, o usuarios a los recursos definidos por un sistema de computación. Seguridad es la serie de problemas relativos a asegurar la integridad del sistema y sus datos.
Pero contra que nos debemos proteger:
- Adware
- Backdoor
- Badware alcalinos
- Bomba fork
- Bots
- Bug
- Toryano
- Cookies
- Crackers
- Cryptovirus
Esos entre muchos otros software que desde sus diferentes especialidades atacan nuestro sistema, pero recordamos que no solo se trata de protección de software si no que también se incluye la protección contra los usuarios
La protección es algo que inicia desde el SO y que termina con las practicas que nosotros como usuarios realizamos, por ejemplo los correos que se revisan el antivirus que se instala
La violación más famosa de todos los tiempos ocurrió en 1988 cuando un estudiante lanzó un gusano por la Internet que botó miles de máquinas en cosa de horas. El gusano tomaba el control de una máquina intentando diversos mecanismos. Uno de ellos era un bug en el programa finge Una vez obtenido el control, trataba de descubrir las claves de los usuarios de esa máquina intentando palabras comunes. Si descubría una, entonces tenía acceso a todas las máquinas en que ese usuario tuviera cuenta. El gusano no hacía ninguna acción dañina en sí, pero usaba tantos recursos de las máquinas infectadas que las botaba.
HISTORIA
Historia Del Sistemas Operativo
Los sistemas operativos proveen un conjunto de funciones necesarias y usadas por diversos programas de aplicaciones de una computadora, y los vínculos necesarios para controlar y sincronizar el hardware de la misma. En las primeras computadoras, que no tenían sistema operativo cada programa necesitaba la más detallada especificación del hardware para ejecutarse correctamente y desarrollar tareas estándares, y sus propios drivers para los dispositivos periféricos como impresoras y lectores de tarjetas perforadas. El incremento de la complejidad del hardware y los programas de aplicaciones eventualmente hicieron del sistema operativo una necesidad.
Los Sistemas Operativos, al igual que el Hardware de los computadores, han sufrido una serie de cambios revolucionarios llamados generaciones. En el caso del Hardware, las generaciones han sido marcadas por grandes avances en los componentes utilizados, pasando de válvulas ( primera generación ) a transistores ( segunda generación ), a circuitos integrados ( tercera generación), a circuitos integrados de gran y muy gran escala (cuarta generación). Cada generación Sucesiva de hardware ha ido acompañada de reducciones sustanciales en los costos, tamaño, emisión de calor y consumo de energía, y por incrementos notables en velocidad y capacidad.
Generaciones Del Sistemas Operativo
Generación Cero (década de 1940)
Los primeros sistemas computacionales no poseían sistemas operativos. Los usuarios tenían completo acceso al lenguaje de lamáquinaa. Todas las instrucciones eran codificadas a mano.
Primera Generación (década de 1950)
Los sistemas operativos de los años cincuenta fueron diseñados para hacer más fluida la transición entre trabajos. Antes de que los sistemas fueran diseñados, se perdía un tiempo considerable entre la terminación de un trabajo y el inicio del siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes, donde los trabajos se reunían por grupos o lotes. Cuando el trabajo estaba en ejecución, este tenia control total de la maquina. Al terminar cada trabajo, el
control era devuelto al sistema operativo, el cual limpiaba y leía e iniciaba el trabajo siguiente.
Al inicio de los 50's esto había mejorado un poco con la introducción de tarjetas perforadas (las cuales servían para introducir los programas de lenguajes de máquina), puesto que ya no había necesidad de utilizar los tableros enchufables.
Además el laboratorio de investigación General Motors implementó el primer sistema operativo para la IBM 701. Los sistemas de los 50's generalmente ejecutaban una sola tarea, y la transición entre tareas se suavizaba para lograr la máxima utilización del sistema. Esto se conoce como sistemas de procesamiento por lotes de un sólo flujo, ya que los programas y los datos eran sometidos en grupos o lotes.
La introducción del transistor a mediados de los 50's cambió la imagen radicalmente.
Se crearon máquinas suficientemente confiables las cuales se instalan en lugares especialmente acondicionados, aunque sólo las grandes universidades y las grandes corporaciones o bien las oficinas del gobierno se podían dar el lujo de tenerlas.
Para poder correr un trabajo (programa), tenían que escribirlo en papel (en Fortran o en lenguaje ensamblador) y después se perforará en tarjetas. Enseguida se llevaría la pila de tarjetas al cuarto de introducción al sistema y la entregaría a uno de los operadores. Cuando la computadora terminara el trabajo, un operador se dirigiría a la impresora y desprender la salida y la llevaría al cuarto de salida, para que la recogiera el programador.
Segunda Generación (a mitad de la década de 1960)
La característica de los sistemas operativos fue el desarrollo de los sistemas compartidos con multiprogramación, y los principios del multiprocesamiento. En los sistemas de multiprogramación, varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rápidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la máquina.
La independencia de dispositivos aparece después. Un usuario que desea escribir datos en una cinta en sistemas de la primera generación tenía que hacer referencia específica a una unidad de cinta particular. En la segunda generación, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto número de pistas y cierta densidad.
Tercera Generación (mitad de década 1960 a mitad década de 1970)
Se inicia en 1964, con la introducción de la familia de computadores Sistema/360 de IBM. Los computadores de esta generación fueron diseñados como sistemas para usos generales . Casi siempre eran sistemas grandes, voluminosos, con el propósito de serlo todo para toda la gente. Eran sistemas de modos múltiples, algunos de ellos soportaban simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se había construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho después de lo que el planificador marcaba como fecha de terminación.
Estos sistemas introdujeron mayor complejidad a los ambientes computacionales; una complejidad a la cual, en un principio, no estaban acostumbrados los usuarios.
Cuarta Generación (mitad de década de 1970 en adelante)
Los sistemas de la cuarta generación constituyen el estado actual de la tecnología. Muchos diseñadores y usuarios se sienten aun incómodos, después de sus experiencias con los sistemas operativos de la tercera generación.
Con la ampliación del uso de redes de computadores y del procesamiento en línea los usuarios obtienen acceso a computadores alejados geográficamente a través de varios tipos de terminales.
Los sistemas de seguridad se ha incrementado mucho ahora que la información pasa a través de varios tipos vulnerables de líneas de comunicación. La clave de cifrado está recibiendo mucha atención; han sido necesario codificar los datos personales o de gran intimidad para que; aun si los datos son expuestos, no sean de utilidad a nadie mas que a los receptores adecuados.
El porcentaje de la población que tiene acceso a un computador en la década de los ochenta es mucho mayor que nunca y aumenta rápidamente.
El concepto de máquinas virtuales es utilizado. El usuario ya no se encuentra interesado en los detalles físicos de; sistema de computación que está siendo accedida. En su lugar, el usuario ve un panorama llamado máquina virtual creado por el sistema operativo.
Comentarios
Publicar un comentario