Escolar Documentos
Profissional Documentos
Cultura Documentos
Programa desarrollado
Unidad 4. Diseo de Sistemas Operativos ......................................................................... 3 Presentacin de la unidad........................................................................................................... 3 Propsito ........................................................................................................................................ 3 Competencia especfica .............................................................................................................. 3 4.1. Base del diseo de sistemas operativos ........................................................................... 4 4.1.1. La visin profesional del diseo ...................................................................................... 5 4.1.2. Cuestiones bsicas sobre el diseo ............................................................................... 5 4.1.3. Conceptos generales de una arquitectura..................................................................... 7 4.1.4. Caractersticas diferenciales del diseo ........................................................................ 8 Actividad 1. Diseo de un sistema operativo ........................................................................... 9 4.2. Diseo de interfaces........................................................................................................... 10 4.2.1. Principios sobre el diseo de interfaces ...................................................................... 12 4.2.2. Paradigmas ...................................................................................................................... 13 4.2.3. Llamadas al sistema ....................................................................................................... 14 Actividad 2. Arquitectura del diseo del sistema operativo Linux ....................................... 15 4.3. Implementacin y desempeo .......................................................................................... 15 4.3.1. Estructura del sistema .................................................................................................... 16 4.3.2. Mecanismos en comparacin con polticas................................................................. 18 4.3.3. Estructuras estticas o dinmicas ................................................................................ 19 4.3.4. Implementacin descendente o ascendente............................................................... 19 4.3.5. Principios de optimizacin.............................................................................................. 20 4.3.6. Uso de cachs ................................................................................................................. 21 Actividad 3. Diagrama de flujo para la implementacin de un SO ..................................... 21 Actividad 4. Cmo optimizar Windows .................................................................................... 22 Autoevaluacin ........................................................................................................................... 22 Evidencia de aprendizaje. Diagrama de flujo para disear un sistema operativo ............ 22 Cierre de la unidad ..................................................................................................................... 23 Para saber ms........................................................................................................................... 24 Fuentes de consulta ................................................................................................................... 24
Es importante retomar el concepto de sistema operativo -parte que intereracta para la administracin de recursos del hardware y la ejecucin de programas del usuario, cuyo principal objetivo es que se ejecuten programas de forma eficiente- con base en se, se establecen las tareas de diseo, implementacin y ejecucin de programas bajo la administracin especfica de la memoria y los archivos e informacin que ah se contiene. Lo anterior, lleva a entender que codificar un sistema operativo es una tarea ardua por s misma.
Propsito
El propsito de esta unidad es que tengas los recursos necesarios para lograr un buen diseo de un sistema y, con la ayuda de lenguajes de programacin, puedas implementar lo aprendido en el nacimiento de un sistema.
Competencia especfica
Aplicar la visin bsica sobre el diseo, para la implementacin y desempeo del S.O., mediante el principio de diseo, con el uso de las diferentes caractersticas de la arquitectura que lo conforman.
Con la nueva era de desarrollo de hardware, se incrementa y evolucionan cada vez ms las necesidades de procesamiento del sistema operativo para que pueda gestionar de forma eficiente todos los dispositivos y recursos del equipo de cmputo. Hoy en da el progreso en el desarrollo de los sistemas operativos ha incrementado de forma paralela con las nuevas tecnologas para mejorar los algoritmos que gestionan procesos dentro del sistema operativo.
Las bases principales para el diseo de sistemas operativos, son: Abstraccin.- Define qu hace el sistema operativo, sin tomar en cuenta el cmo lo hace; por ejemplo, para un usuario de un programa procesador de textos, no es necesario que se d cuenta cmo funcionan por dentro el proceso de captura de datos ni de impresin de documentos. Amplitud de funciones y administrador de errores.- Como se mencionaba respecto al constante avance tecnolgico, es conveniente aumentar las posibilidades de multiprocesamiento de los sistemas operativos, para permitir la ejecucin de varias aplicaciones sin que el sistema operativo colapse. Es conveniente que se manejen una serie de funciones que permitan administrar los posibles errores, que el mismo sistema operativo no sea capaz de corregir de forma automtica. Estandarizacin.- Actualmente existe una gran variedad de sistemas operativos y dispositivos de hardware que tienen su funcin especfica, por lo que es necesaria una estandarizacin para tratar de establecer una comunicacin entre las diferentes arquitecturas. 4 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 4
La funcin principal de un sistema operativo, es establecer y definir las abstracciones correctas. La mayora de ellas, como la administracin de procesos, archivos y subprocesos.
Debido a que pueden existir mltiples sesiones al mismo tiempo en una computadora, el sistema operativo debe proporcionar mecanismos para mantenerlos separados y no deber existir interferencia entre unos y otros.
Estos conceptos, se conjugan de forma interactiva ya que entre ellos se ofrece la solucin global para el desarrollo del sistema. Mediante la visin del desarrollo del sistema, se puede aprovechar para crear aplicaciones con funciones especficas para los usuarios basadas en el rendimiento del sistema y aprovechamiento de cada dispositivo conectado al sistema.
Por lo general, cada sistema operativo suele ser distinto uno de otro; por su naturaleza propia del nivel de complejidad y uso, vara de acuerdo al objetivo de cada uno. Por lo general un sistema operativo suele ser un programa extremadamente grande, por lo cual se puede pensar que el diseo suele ser de gran complejidad y difcil de desarrollar.
Los sistemas operativos tienen que enfrentar a usuarios hostiles y que desean intervenir en el funcionamiento del mismo lo cual provoca que el funcionamiento del sistema se vea vulnerable a las malas intenciones de los mismos usuarios. Se debe cuidar no caer en cuestiones como: no tener la idea clara de cmo se va utilizar el sistema y qu es lo que se utilizar de ste. La portabilidad se ha vuelto una necesidad bsica en sistemas operativos modernos, pues suelen disearse a modo que se puedan utilizar en diferentes arquitecturas de hardware, y deban reconocer sin problema la mayora de dispositivos de E/S. La interfaz es la puerta de entrada a un sistema operativo. Por lo general se tiene que, mientras ms completa, sencilla e integra sea la cara de un sistema operativo, este podr ser sencillo de utilizar por el usuario.
Se basa en un diseo de alto nivel, a estructura del sistema, los componentes del sistema sus relaciones y principios de funcionalidad, componentes, conectores, configuracin y restricciones.
Cuando se crean arquitecturas de los sistemas se comprende que: La visin arquitectnica, estilo, principios mecanismos y claves de comunicacin se refiere a la meta-arquitectura. Las vistas arquitectnicas, soportan la documentacin y comunicacin de la arquitectura en trminos de los componentes y sus relaciones, las vistas son tiles para interactuar con los componentes para desempear sus responsabilidades evaluar el impacto. Los patrones arquitectnicos, tales como capas, cliente servidor, mecanismos y puentes, son utilizados para ser tomados como base del diseo. Los principios de diseo arquitectnico claves, abstraccin, separacin de responsabilidades simplicidad y tcnicas de ocultamiento de interfaces, son otros de los conceptos que son utilizados para el diseo.
La arquitectura de software debe ser diferencial sobre el diseo e implementacin de un sistema operativo, ya que la arquitectura es la base del diseo y la implementacin es la puesta en operacin de un sistema operativo desarrollado.
El documentar el proceso de la arquitectura del sistema ayuda bastante al diseo e, igual a todo el ciclo de vida del sistema, para ofrecer el buen funcionamiento del mismo. Otras de las caractersticas del diseo son: las incluidas en servicios disponibles, especializacin de servicios, recursos compartidos, transparencia de localizacin, independencia de hardware, dilogo basado en mensajes, escalabilidad y reusabilidad de componentes.
3. Identifica qu parmetros debes considerar para disear un buen sistema operativo y qu es lo ms importante. 4. Ingresa al foro y genera una nueva entrada.
Los diferentes tipos de interfaces que se tienen consideradas para el desarrollo de un sistema son: Interaccin humano-computadora.- Est relacionado con la prctica del diseo, construccin e implementacin de sistemas de cmputo interactivos centrados en el usuario. Su principal actividad es el desarrollo de nuevos sistemas de interface para los usuarios, lo que implica nuevas tcnicas de graficacin.
Interface basada en texto.- Anteriormente, los desarrollos de sistemas orientados en textos o caracteres, solo tenan la capacidad de desplegar cdigos ASCII en 10
10
Interface grfica de usuario.- Esta interface aprovecha las capacidades de despliegue grfico de la computadora, lo cual permite hacer ms sencillo el manejo del sistema, este tipo de interface utiliza iconos y mens tanto para para realizar comandos, como para abrir archivos o ejecutar alguna accin dentro de la aplicacin. Algunos de los componentes grficos comunes en este tipo de interfaces son, el apuntador, dispositivo apuntador, iconos, mens, ventanas, y escritorio. Cada sistema operativo tiene su propia arquitectura grfica.
Figura 3. Interface grfica 11 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 11
Interface alternativas.- Este tipo de interfaces son poco utilizadas, pero de gran utilidad para pensar en alguna alternativa de seguridad, las interfaces alternativas pueden ser las que se basan en el reconocimiento de voz, la cual soporta un dilogo interactivo entre el usuario y una aplicacin de software. Los dispositivos de interface neuronal, permiten a los usuarios aprovechar las seales elctricas generadas por sus cuerpos para controlar una computadora o dispositivos elctricos conectados entre s.
Interface de usuario.- Su principal objetivo es implementar interfaces que sean eficientes y efectivas al ser utilizadas por el usuario, el inicio de su desarrollo est en el planteamiento de prototipos de interfaces donde se determinan qu eventos ocurrirn y los procesos lgicos a dichos eventos.
Existe una metodologa para la etapa de pruebas conocida como pruebas de usabilidad, que puede validar el diseo de la interface y revelar reas que requieran refinamiento. La finalidad de esta tcnica es poder identificar el uso que le da el usuario en forma directa. Por ejemplo, se pude ensaar a los usuarios a que sepan plasmar la idea de mejoramiento de la interface, un usuario podra expresar qu desea: quiero que en la parte superior de la interface grfica, se pueda tener acceso a mis archivos almacenados. Con este tipo de anlisis se interacta de forma directa con el usuario para que el desarrollador pueda ofrecer un mejoramiento en el diseo de las interfaces.
Con estos principios, al desarrollador le permitir que el uso del sistema pueda ser del agrado de los usuarios.
4.2.2. Paradigmas
Otros de los criterios que se deben considerar para poder establecer el diseo de las interfaces, se tienen algunas propuestas que se tienen para comenzar con el diseo de las interfaces.
Los paradigmas tienen una importancia clave en la programacin, pues por medio de estos se pueden crear planteamientos y bases para poder desarrollar un software. Al revisar los tipos de paradigmas de programacin ms comunes se encuentran: Imperativos.- Este tipo de paradigma es el considerado como el ms comn para el desarrollo de sistemas, basado en sentecias de clculos sencillos e iterativas, asociadas a una direccin de memoria, de forma que al final de la iteracin represente el resultado correcto. Funcional.- Se basan en un tipo de programacin en forma de funciones matemticas. Lgico.- Para este paradigma se tienen definidas reglas lgicas que resuelven problemas planteados por el sistema. Orientado a objetos.- Su finalidad es encapsular estado y operaciones en objetos; poseen clases y herencias, los cuales se pueden comunicar entre ellos. Estructurado.- El cdigo se divide en bloques, estructuras, que pueden o no comunicarse entre ellas, las cuales pueden ser controlados por secuencias, seleccin e interaccin.
Las llamadas al sistema no debern interferir en la potencia del hardware -si el hardware cuenta con un mecanismo bastante eficiente para hacer algo sobre los mecanismo de acceso- y, si una llamada al sistema es rpida los usuarios siempre podrn construir interfaces ms cmodas con base en ella.
Como se mencion con anterioridad, el sistema operativo para ser eficiente, debera de ofrecer el menor nmero de llamadas al sistema, por lo cual debe de cumplir con estos criterios: Se debe contar con un paradigma unificador de datos. Manejo de forma general de llamadas al sistema Procedimientos de biblioteca sencillos y especficos. Determinar la implementacin de las llamadas al sistema sobre conexiones o sin conexiones.
Otra consideracin que va relacionada con la interfaz de llamadas al sistema es su visibilidad; algunos sistemas operativos como Unix reconoce las llamadas adicionales, as la lista de procesos es pblica, en el caso de Windows no ha hecho pblicas la lista de llamadas al sistema. La diferencia entre hacer pblico o no las listas, ayuda a los implementadores en la flexibilidad para cambiar las llamadas al sistema reales.
1. Investiga sobre la arquitectura del sistema operativo Linux, principios del diseo, paradigmas y llamadas al sistema.
2. Con base en la investigacin, realiza elabora un archivo de texto que contenga los temas mencionados pero con enfoque en Linux. 3. Guarda la actividad con el nombre PSO_U4_A2_XXYZ. Sustituye las XX por las dos primeras letras del primer nombre, la Y por la inicial del apellido paterno y la Z por la inicial del apellido materno. 4. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin.
Tratar de realizar optimizaciones complejas en estructura del sistema operativo puede generar errores, para evitar estos errores es conveniente aplicarlos solo si son necesarias. Existen diferentes tcnicas que pueden ser utilizadas para mejorar el desempeo en la estructura del sistema, las cuales se vern a continuacin.
De acuerdo a todo lo que se ha comentado en captulos anteriores, sobre Administracin de procesador, memoria y dispositivos de E/S, as como la administracin de archivos, seguridad y proteccin del sistema operativo, la parte que corresponde a la estructura del sistema operativo, sirve para dar referencia, saber porqu algunos sistemas operativos cuentan con ms elementos que otros, como estn arquitectnicamente construidos y el porqu adicionar o no servicios al sistema.
Es importante tener muy en cuenta la etapa de anlisis del sistema, ya que es aqu donde se tendr lnea para la etapa del desarrollo y para saber lo que se tiene que hacer, cmo hacerlo y cul ser su lmite. La arquitectura de un sistema representa un paso hacia el desarrollo del mismo, una vez que se analizan y definen los requerimientos del usuario. El sistema quedar con todos los mdulos o subsistemas para tener una estructura completa de los datos que se tendrn que procesar.
Hoy en da existen diferentes tipos de sistemas operativos, dentro de los cuales estn los ms comunes: Monotarea.- Solo puede ejecutar una tarea nicamente. Multitarea.- Tiene la capacidad de ejecutar varias tareas. Monousuario.- Permite ser ocupado por un usuario nico durante el tiempo de ejecucin de sus procesos.
Todos esos tipos de sistemas operativos tienen propiamente su estructura funcional, la cual variar dependiendo su tipo. As como para cada tipo de sistema operativo hay diferentes tipos de estructuras, existen diferentes alternativas: Por capas y anillos.- En este tipo de estructura se contemplan seis capas para su formacin: Capa 0, capa que se encarga de la administracin de multiprogramacin bsica del microprocesador Capa 1, en esta capa se encarga de gestionar el espacio en la memoria. Capa 2, para esta capa su principal actividad es comunicar entre cada proceso y la consola del operador. Capa 3, en esta capa la gestin se enfoca sobre los dispositivos de E/S. Capa 4, esta capa se gestionan los programas de los usuarios. Capa 5, es donde se alojan los procesos del operador del sistema.
Arquitectura Maquina virtual.- Esta arquitectura, alternativa de software, se vuelve cada vez ms til para el manejo de servidores y economizador de hardware, de tal forma que el sistema emula la existencia de hardware y el software convierte las peticiones a la maquina virtual en operaciones sobre la mquina fsica. Existen diferentes tipos de virtualizacin: IBM VM, las maquina virtuales se basaban en mono-tarea. Java VM, esta mquina permite la ejecucin de cdigos binarios en distintas plataformas. VMWare, tiene la facultad de poder ejecutar varias mquinas con distintas sesiones,
Los nuevos desarrollos de sistemas operativos, tienen un panorama ms amplio para su desarrollo. Cada uno de sus componentes arquitectnicos forma parte de un ejemplo de base de diseo.
Las polticas pueden ser implementadas dentro del ncleo y las polticas fuera o dentro del mismo ncleo. 18 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 18
La intencin de permitir la mezcla de las estructuras contenidas por arreglos de enteros, de caracteres, miembros de la estructura y de uniones, permite definir un nuevo tipo de datos el cual puede ser utilizado como si fuera un tipo primitivo.
La ortogonalidad, es la capacidad de poder combinar estos distintos tipos de formas independientes; sta se basa en los principios de la sencillez e integridad para el desarrollo de un sistema, por lo que puede ser utilizada para separar los conceptos de procesos y subprocesos, donde un proceso es un contenedor de recursos y un subproceso es una entidad.
El desarrollador deber determinar qu tipo de estructura deber utilizar para la implementacin el desarrollo de su arquitectura, considerando espacios de procesos de usuario o espacio de procesos en ncleos.
Para un buen proceso de la implementacin de un sistema, podra verificarse la existencia de errores. Cuando una llamada al sistema falla, puede ser porque los ficheros no existen dentro del mdulo o bien pertenecen a otro, se deben considerar la mayor parte de las pruebas al inicio del procedimiento para validar la ejecucin de llamadas al sistema.
Al ver que se espera que un sistema sea sencillo y rpido o robusto y lento, deben considerarse las funciones que se desean adicionar a la estructura y validar si es necesario modificarla para su desempeo. Para dar a un sistema: seguridad, integridad y optimizacin -que sean suficientes para un buen desempeo-, es necesario dimensionar la arquitectura del sistema mismo y su optimizacin.
En el desarrollo de un sistema esta tcnica en bastante conocida para mejorar el desempeo y velocidad al acceso de archivo, puede aplicarse en situaciones en las que es probable que se vaya a necesitar el mismo resultado varias veces. Por lo general se utiliza para aquellos dispositivos de E/S que requieran el mismo resultado en varias ocasiones. Existen diferentes tipos de caches entre los que estn: Cache de bloques.- En este tipo de cache es un pequeo segmento de memoria RAM, que se aade algn sitio del disco con la finalidad de almacenar los datos que han sido ledos con anterioridad, teniendo como resultado agilidad al cargar los datos Cache de paginacin.- Este tipo de cache se almacena en memoria RAM, dentro del disco duro.
2. Guarda la actividad con el nombre PSO_U4_A3_XXYZ. Sustituye las XX por las dos primeras letras del primer nombre, la Y por la inicial del apellido paterno y la Z por la inicial del apellido materno. 3. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin.
2. En un archivo de texto reporta tu investigacin y recomendaciones. Guarda la actividad con el nombre PSO_U4_A4_XXYZ. Donde XX es tu apellido(s) y YY nombre(s).
Autoevaluacin
Para reforzar los conocimientos relacionados con los temas que se abordaron en esta tercera unidad del curso, es necesario que resuelvas la actividad integradora. Recuerda que es muy importante leer cuidadosamente los planteamientos indicados y elegir la opcin adecuada para cada uno.
2. Guarda la evidencia con el nombre PSO_U4_EA_XXYZ. Sustituye las XX por las dos primeras letras del primer nombre, la Y por la inicial del apellido paterno y la Z por la inicial del apellido materno. 3. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin.
Autorreflexiones
Adems de enviar tu trabajo de la Evidencia de aprendizaje, es importante que ingreses al foro Preguntas de Autorreflexin y consultes las preguntas que tu Facilitador(a) presente, a partir de ellas, debes elaborar tu Autorreflexin en un archivo de texto llamado PSO_U4_ATR_XXYZ. Posteriormente enva tu archivo mediante la herramienta Autorreflexiones.
Cierre de la unidad
Has concluido la cuarta unidad del curso. A lo largo de sta se vieron conceptos bsicos sobre diseo de sistemas operativos, las bases del diseo, diseo de interfaces y la implementacin y diseo final con temas como la visin profesional del diseo, cuestiones bsicas y conceptos generales, los principios del diseo, paradigmas y llamadas al sistema y por ultimo los subtemas de estructura, sus mecanismos sus estructuras, su implementacin la optimizacin y el manejo de los caches.
Es aconsejable que revises nuevamente la unidad en caso de que los temas que se acaban de mencionar no te sean familiares o no los recuerdes, de no ser este tu caso, ya ests listo para terminar esta materia de Programacin de Sistemas Operativos.
Para saber ms
Si deseas saber acerca de cmo se crea un diagrama de flujo, consulta la siguiente direccin electrnica:
Fuentes de consulta
Candela, S. y Garca, C. (2007) Fundamentos de Sistemas Operativos. Teora y ejercicios resueltos. Espaa: Paraninfo. Ortiz, H. (2005) Sistemas Operativos Modernos. Colombia: Medellin. Tanenbaum, A (2003) Sistemas Operativos Modernos. Mexico: Pearson Educacin. Stallings, W. (2005) Sistemas Operativos Modernos: Aspectos Internos y principios de diseo. Mxico: Pearson, Prentice Hall Silberschatz, A (2006) Fundamentos de Sistemas Operativos.Espaa: Mc. Graw Hill.