miércoles, 4 de septiembre de 2013

99 Conclusiones Generales por Temas


Tema 1 Conceptos e Historia de los Sistemas Operativos

Los sistemas Operativos se sitúan desde dos puntos de vista que son administradores de recursos y maquinas extendidas. Desde el punto de vista que correspondiente  al administrador de recursos, la funcionalidad del sistema operativo es administrar las distintas partes del sistema en forma eficiente y eficaz. En el mismo sentido desde el punto de vista de la maquina extendida, la función del sistema operativo es proveer a los usuarios abstracciones que sean más convenientes de usar que la maquina actual, estas abstracciones incluyen los procesos, espacios de direcciones y archivos.

Los sistemas operativos tienen una larguísima historia desde que empezaron a reemplazar al operador, hasta los sistemas modernos de multiprogramación. Entre los puntos más importante se puede mencionar a los primeros sistemas de procesamientos por lotes, los sistemas de multiprogramación y los sistemas de computadora personales.

Los sistemas operativos interactúan de cerca con el hardware, es recomendable tener cierto conocimiento del hardware de computación para poder comprenderlos y es por ellos un breve detalle de cómo están compuestas las computadoras. Las computadoras están compuestas por procesadores, memorias, la administración de E/S, el sistema de archivos y la seguridad.

¿Sabes cuál es el corazón del sistema operativo? Pues el corazón del sistema operativo es el conjunto de llamadas al sistema que pueden manejar. Dicha llamadas indican lo que verdaderamente hace el sistema operativo. En  UNIX, hay cuatro grupos de llamadas al sistema. El primer grupo de llamada se relaciona con la creación y terminación de procesos, el segundo es para leer y escribir archivo, el tercer grupo de llamada es para administrar directorios y por último el cuarto grupo de llamada contiene una miscelánea de llamadas.

Los sistemas operativos se pueden estructurar en varias formas, las más comunes son:

Un sistema monolítico, una jerarquía de capas, microkernel, cliente-servidor, máquina virtual o exokernel.
 
 Tema 2 Administración de Memoria

En este capítulo examinamos la administración de memoria. Vimos que los sistemas más simples no realizan intercambios ni paginaciones, una vez que se carga un programa en la memoria, permanece ahí hasta que termina. Hay sistemas operativos que solo permiten un proceso a la vez en la memoria, mientras que otros soportan multiprogramación.

El siguiente paso es el intercambio, cuando se utiliza esta técnica, el sistema puede manipular más procesos de los que puede admitir en la memoria. Los procesos para los cuales no haya espacio se intercambian hacia el disco. Se puede llevar el registro del espacio libre en la memoria y en el disco con un mapa de bits o una lista de huecos.

Con frecuencias las computadoras modernas tienen cierta forma de memoria virtual. En su forma más simple, el espacio de direcciones de cada proceso se divide en bloque de tamaño uniforme llamados páginas que pueden colocarse en cualquier marco de página disponible en la memoria. Hay infinidades de algoritmos de reemplazo de páginas; dos de los mejores son el de envejecimiento y WSClock
El algoritmo de envejecimiento consiste en lo siguientes:
Este algoritmo es un descendiente del algoritmo "No usada frecuentemente", con algunas modificaciones necesarias para tener en cuenta en qué momento fue usada frecuentemente una página, y no solamente cuántas veces fue referenciada.

En vez de sólo incrementar el contador de la página cuando es referenciada, primero se desplaza a la derecha (se divide por 2) y después sí se suma 1. Por ejemplo, si los bits de referencia de una página fueron 1, 0, 0, 1, 1 y 0 en los últimos 6 ticks del reloj, el contador se verá así: 10000000, 01000000, 00100000, 10010000, 11001000, 01100100.

De esta forma, cuando se necesite eliminar una página de memoria, se eliminará la que tenga el número más pequeño en su contador.

Este algoritmo provee una buena aproximación al desempeño del algoritmo óptimo, por un módico precio.

Para modelar los sistemas de paginación hay que abstraer la cadena de referencia de página de programa y utilizar la misma cadena de referencia con distintos algoritmos. Estos modelos pueden utilizarse para hacer algunas predicciones acerca del comportamiento de la paginación.

Para que los sistemas de paginación funcionen bien, no basta con elegir un algoritmo; hay que poner interés en cuestiones como determinar el conjunto de trabajo, la política de asignación de memoria y el tamaño de agina.


La segmentación ayuda las ayuda a manejar las estructuras de datos que pueden cambiar de tamaño durante la ejecución y simplifica la vinculación y la compartición, además facilita la provisión de distintos segmentos.

Tema 3 Sistemas de Archivos

Visualizado desde fuera un sistema de archivo es una colección de archivos y directorios, mas las operaciones que se realizan con ellos, los archivos se pueden leer y escribir, los directorios se pueden crear y destruir, los archivos se pueden mover de directorio, es decir, de un directorio a otro. La mayor parte de los sistemas modernos soportan un sistema de directorios jerárquico en el cual los directorios pueden tener subdirectorios y estos pueden tener subdirectorios en forma infinita.

Ahora bien visto desde adentro un sistema de archivo tiene una apariencia diferente. Los diseñadores del sistema de archivos se tienen que preocupar acerca de la forma en que se asigna el almacenamiento y como el sistema lleva registro de que bloque va con cual archivo. Las posibilidades incluyen archivos contiguos, listas enlazadas, tablas de asignación de archivos y nodos. Los distintos sistemas tienen diferentes estructuras de directorios. Los atributos pueden ir en los directorios o en alguna otra parte. El espacio en el disco se puede administrar mediante el uso de listas de bloques libres o mapas de bits. La confiabilidad del sistema aumenta al realizar vaciados incrementales y tener un programa que pueda reparar sistemas de archivos enfermos. El rendimiento de los sistemas de archivos es importante y se puede mejorar de diferentes formas, incluyendo el uso de caches, la lectura adelantada y la colocación cuidadosa de los bloques de un archivo cerca unos de otros. Los sistemas de archivos estructurados por registro también mejoran el rendimiento, al realizar escrituras en unidades grandes.


Tema 4 Dispositivos de E/S

Con regularidad las operaciones de entrada /salida son tema ignorado pero no dejan de ser importante. Una fracción considerable de cualquier sistema operativo está relacionado con las operaciones de E/S. Estas operaciones se pueden llevar a cabo en tres formas que son las siguientes:

·         E/S programadas, en la CPU principal recibe o envía cada byte.

·         E/S controladas por interrupciones en la CPU inicia una transferencia de E/S para un carácter o palabra y se pone a hacer algo más hasta que llega una interrupción indicando que se completó la E/S.

·         El DMA, en el que un chip separado administra la transparencia completa de un bloque de datos y recibe una interrupción solo cuando se ha transformado todo el bloque completo.

La E/S pueden ser estructuradas en cuatro niveles: los procedimientos de  servicio de interrupciones, los controladores de dispositivos,, el software de E/S independiente del dispositivo y las bibliotecas de E/S y el uso de colas que se ejecutan en espacio de usuario. Los controladores de dispositivos se encargan de los detalles de operación de los dispositivos y proporcionan interfaces uniformes para el resto del sistema operativo. El software de E/S independiente del dispositivo realiza cosas como el uso de búfer y el reporte de errores.

Los discos en una variedad de tipos, incluyendo discos magnéticos, RAIDs y varios tipos de discos ópticos.

Los relojes se utilizan para llevar la cuenta real de la hora y limitan el tiempo que se pueden ejecutar los procesos, manejan temporizadores guardianes y realizan la contabilidad.

Los clientes delgados tienen algunas ventajas en comparación con las PCs estándar, siendo las más notables su simplicidad y menor necesidad de mantenimiento por parte de los usuarios. Los experimentos con cliente delgado THINC han demostrado que con cinco primitiva simples es posible construir un cliente con un buen rendimiento, hasta para el video.

La administración de la energía es una cuestión importante para las computadoras notebook, ya que los tiempos de vida de las baterías son limitadas. El sistema operativo puede emplear varias técnicas para reducir el consumo de energía. Los programas también pueden ayudar al sacrificar cierta calidad por tiempos de vida más largos para las baterías

Tema 5 Protección y Seguridad

A menudo, las computadoras poseen datos valiosos y confidenciales, incluyendo declaraciones fiscales, números de tarjetas de créditos, planes de negocios, secretos comerciales entre otro muchos más, esto es solo por citar algunos. Los propietario de estas computadoras se preocupan mucho porque sean privadas y nadie pueda alterarlas, motivos por el cual requieren un sistema operativo que proporcione buena seguridad. Una forma de mantener la información secreta en cifrarla y administrar las claves con mucho cuidado. En ocasiones es necesario demostrar la autenticidad de la información digital, en algunos casos se pueden utilizar hasta criptográficos, firmas digitales y certificados firmado por una autoridad de certificación confiable.

Los derechos de acceso a la información se pueden modelar como una gran matriz, en donde las filas son los dominios (usuario) y las columnas los objetos (archivos).

En cualquier sistema seguro, los usuarios se pueden autentificar. Par ello se pueden utilizar algo que el usuario conozca, algo que el usuario tenga o algo que el usuario sea (biométrica). Se puede utilizar la identificación de los factores, como la exploración del iris y una contraseña, para mejorar la seguridad.

Los internos (los empleados de una empresa) pueden vencer la seguridad del sistema en una variedad de formas. Entre ellas se incluyen las bombas lógicas que se activan en cierta factura, las puertas de trampa para permitir al interno un acceso no autorizado en un momento posterior y la suplantación de nombres al inicio de sesión.

Se pueden explotar muchos tipos de errores en el código para tomar el control de los programas y sistemas. Estos errores incluyen desbordamientos de búfer, ataques mediante cadenas de formato, ataques por desbordamientos de enteros, ataques por inyección de código y ataques por escala de privilegios.

El internet está llena de malware, incluyendo caballos de troya (conocido comúnmente como troyano), virus, gusanos, spayware y rootkits. Cada uno de estos tipos de malware son amenaza a la confidencialidad de los datos y su integridad o peor aún, un ataque de malware tiene la capacidad de tomar el control de una maquina y convertirla en un zombie que envié spam o utilice para lanzar otros ataques.

Por suerte hay diferente forma en las que los sistemas se pueden defender por su cuenta. La mejor estrategia es la defensa  en profundidad, mediante el uso de diferentes técnicas. Algunas de ellas incluyen firewalls, exploradores de virus, firmas de código, encarcelamiento, sistemas de detección de intrusos y encapsulamiento de código móvil.


Tema 6 Administración de Procesos y del Procesador

Los sistemas operativos proporcionan un modelo conceptual que consiste en procesos secuenciales ejecutándose en paralelo. Los procesos se pueden crear y terminar de forma dinámica. Cada proceso tiene su propio espacio de direcciones.

Para algunas aplicaciones es muy provechosa tener varios hilos de control dentro de un solo proceso. Estos hilos se planifican de manera independiente y cada uno tiene su propia pila, pero todos los hilos en un proceso comparten un espacio de direcciones comunes. Los hilos se pueden implementar en espacio de usuario o en el kernel.

Los procesos se pueden comunicar entre sí mediante el uso de las primitivas de comunicación entre procesos, como semáforo, monitores, o mensajes. Estas primitivas se usan para asegurar que no haya dos procesos en sus regiones criticas al mismo tiempo, es una situación que produce un caos. Un proceso puede entrar en ejecución, listo para ejecutarse o bloqueado, pudiendo cambiar de estado cuando este u otro proceso ejecute una de las primitivas de comunicación entre procesos. La comunicación entre hilo es similar.

Las primitivas de comunicación entre procesos se pueden utilizar para resolver problemas como el productor-consumidor, los filósofos comelones y el de los lectores y escritores. Aun con estas primitivas hay que tener cuenta para evitar errores e interbloqueos.

Se han estudiado muchos algoritmos de planificación del trabajo más corto primeramente para sistemas de procesamiento por lotes, como la planificación del trabajo más corto primero. Otros son comunes tanto en los sistemas de procesamiento por lotes como en los sistemas interactivos. Estos algoritmos incluyen el de planificación en turno circular, por prioridad, colas de multiniveles, planificación garantizada por lotería y planificación por partes equitativas. Algunos sistemas hacen clara separación entre el mecanismo de planificación y la política de planificación, lo cual permite a los usuarios tener control del algoritmo de planificación.

No hay comentarios:

Publicar un comentario