Sunteți pe pagina 1din 24

Programacin de sistemas operativos

Programa desarrollado

CARRERA: Ingeniera en Desarrollo de software Cuatrimestre 04

Programa de la asignatura: Programacin de sistemas operativos Unidad 4. Diseo de Sistemas Operativos

Clave: 160920415 / 150920415

1 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 1

Programacin de sistemas operativos


Programa desarrollado
ndice

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

2 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 2

Programacin de sistemas operativos


Programa desarrollado

Unidad 4. Diseo de Sistemas Operativos Presentacin de la unidad


En esta unidad se revisar el diseo de los sistemas operativos; cuyas bases se encuentran en los conocimientos bsicos diseo para formar su arquitectura y la interfaz; as como la estructura de los mecanismos, implementacin, optimizacin y cmo se usa el cache.

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.

3 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 3

Programacin de sistemas operativos


Programa desarrollado

4.1. Base del diseo de sistemas operativos


Hablar de un proyecto basado para el desarrollo de un sistema operativo, es pensar de forma global en el proceso de desarrollo, los detalles de gestin de memoria y dispositivos de E/S, as como tambin en la administracin de archivos, sin dejar de lado la seguridad y proteccin. Como se ve es bastante complejo el desarrollo de un sistema operativo, sin embargo la etapa crtica para la elaboracin del sistema es determinar la arquitectura, establecer un plan de desarrollo y determinar los riesgos del proyecto.

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

Programacin de sistemas operativos


Programa desarrollado

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.

4.1.1. La visin profesional del diseo


Bsicamente los conceptos que se toman en cuenta para estructurar el diseo del sistema operativo se basan en lo siguiente: Conectividad del sistema operativo. Orientacin a objetos. Aplicaciones cliente/servidor. Servicios

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.

4.1.2. Cuestiones bsicas sobre el diseo


Al iniciar el proceso de diseo del sistema operativo, se debe hacer hincapi en determinar la idea conceptual de la arquitectura del sistema, pues es la que comnmente se est utilizando para el desarrollo de nuevos sistemas operativos.

5 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 5

Programacin de sistemas operativos


Programa desarrollado
Algunos de los aspectos bsicos que se deben de tomar en cuenta para el diseo de un sistema operativo son: Transparencia.- Basndose en programas, la transparencia se determina sobre el diseo de interfaces de llamadas al sistema, de modo que no sea visible la existencia de dos o ms procesadores. Se dice que un sistema no es transparente ya que el acceso a los archivos remotos se realizan mediante el establecimiento explicito de una conexin en la red con un servidor remoto, cuando el envo posterior de mensajes a los servicios remotos sea distinto al acceso a los servicios locales. Se tienen diferentes tipos de transparencia, lo cuales se basan los de localizacin, migracin, rplica concurrencia y paralelismo. Flexibilidad.- La flexibilidad es una de las cuestiones bsicas sobre el diseo de un sistema operativo; existen dos aspectos importantes en la estructura de los sistemas: monoltico que se refiere a que la mquina deber ejecutar un ncleo tradicional que proporcione la mayora de los servicios y micronucleo comnmente nombrado microkernel, que deber proporcionar lo menos posible; el grueso de los servicios del sistema operativo se debe obtener a partir de los servidores al nivel de usuario. La mayora de las llamadas al sistema se realizan mediante sealamiento al ncleo. Confiabilidad.- Este punto puede llegar a ser crtico dependiendo de la objetividad del sistema; o, si falla algn proceso, otro adicional al sistema operativo deber encargarse del trabajo. La confiabilidad puede verse disminuida, ya que en muchas ocasiones, se requiere de que ciertos servicios simultneos estn procesando informacin y en funcionamiento, la disponibilidad se puede mejorar mediante un diseo que no requiera dentro de su arquitectura un funcionamiento simultneo de componentes crticos y establecer un punto de redundancia, cuya caracterstica es la duplicidad de componentes claves del sistema operativo. No olvidemos la parte de la seguridad, la cual se basa en la proteccin de recursos y la tolerancia a fallos, donde por lo general se recomienda que las fallas del sistema operativo sean ocultas con una recuperacin de forma transparente para el usuario. Desempeo.- El desempeo juega un papel muy importante, pues genera que cuando se ejecuta una aplicacin sta sea de forma gil con capacidades de poder realizar tares de multiprocesos. 6 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 6

Programacin de sistemas operativos


Programa desarrollado
Escalabilidad.- La nueva era de tecnologas indica que se tiene que ir mejorando en cuestiones bsicas de administracin de dispositivos de E/S, para que se est al da con los requerimientos del sistema operativo que deber tener la capacidad de mejorar su procesos y gestin de recursos.

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.

4.1.3. Conceptos generales de una arquitectura


La arquitectura de un sistema, es la estructura que lo conforma de acuerdo a sus componentes de software, propiedades extremamente visibles y la relacin entres ellos; es un conjunto de conceptos y decisiones de diseo relativos a la estructura del sistema operativo, que deben hacerse antes de la ingeniera, con el fin de asegurar la satisfaccin del usuario. Esta concebida dentro un nivel de diseo y su importancia est en ofrecer la

7 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 7

Programacin de sistemas operativos


Programa desarrollado
comunicacin entre las personas involucradas, la documentacin, restricciones de implementacin, cualidades del sistema.

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.

4.1.4. Caractersticas diferenciales del diseo


La arquitectura de un sistema, es reconocida como un ingrediente esencial para el diseo de un sistema. Con la arquitectura definida se puede establecer el diseo y desarrollo de los sistemas, por lo general se tiene que la mayora de los sistemas operativos establecen un punto de partida los requerimientos que deben de cumplir para el desarrollo del sistema.

8 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 8

Programacin de sistemas operativos


Programa desarrollado
El diseo de la arquitectura de un sistema, tiene que estar relacionado con la estructura general y las formas en que la estructura lleva a la satisfaccin de las propiedades clave del sistema. El diseo de la arquitectura satisface 2 etapas bsicas: Un nivel de abstraccin del diseo, donde los desarrolladores del sistema pueden establecer el comportamiento global del mismo, en el que se toma en cuenta el funcionamiento, rendimiento, confiabilidad, etc. As una excelente arquitectura, hace al diseo una parte fcil de establecer. Sirve como memoria para el sistema en lo que va evolucionando en tiempo de desarrollo; el diseo se usa en el proceso de mejorar el sistema, estableciendo los aspectos del sistema.

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.

Actividad 1. Diseo de un sistema operativo


Esta actividad tiene como finalidad que reflexiones cmo debe ser el diseo de un sistema operativo. 1. Retoma la lectura de los temas anteriores.

2. Busca definiciones de un sistema operativo (como Windows o Linux).

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.

9 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 9

Programacin de sistemas operativos


Programa desarrollado

4.2. Diseo de interfaces


La administracin de los recursos de hardware es el objetivo principal del diseo, pero para ello, no se puede dejar de lado el como los usuarios interactan con la computadora y, a travs de sta manejan un sistema y todas sus aplicaciones -pudiendo ser este proceso fascinante, pues mucho del trabajo se puede plasmar en la presentacin de cmo est planteado el sistema para su manejo-.

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.

Figura 1. Dispositivos de interface

Interface basada en texto.- Anteriormente, los desarrollos de sistemas orientados en textos o caracteres, solo tenan la capacidad de desplegar cdigos ASCII en 10

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software

10

Programacin de sistemas operativos


Programa desarrollado
pantalla; en contraste a los orientados a grficos, la interface de texto consisten en un conjunto de comandos que el usuario debe memorizar y con los cuales se dan instrucciones al sistema para el manejo de los recursos.

Figura 2. Interface de usuario de MS-DOS

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

Programacin de sistemas operativos


Programa desarrollado

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.

4.2.1. Principios sobre el diseo de interfaces


Durante la etapa del diseo de interfaces, se deben de considerar diferentes principios relevantes para el diseo de los diferentes tipos de interfaces, como son: Sencillez.- Para evitar que los usuario tengan complicaciones con las interfaces al momento de estar utilizando el sistema, estas deben basarse en el principio de la sencillez, para hacerlas ms fcil de entender e implementar. Integridad.- Con la finalidad de poder permitir utilizar todas las funciones del sistema, se debe basar su diseo en el principio de la integridad par que permita el uso completo. 12 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 12

Programacin de sistemas operativos


Programa desarrollado
Eficiencia.- Para los usuarios, las llamadas al sistema deben ser de forma transparente, para ello la implementacin de los mecanismos debe ser de forma eficiente, para el desarrollador debe ser intuitivo para poder tener una eficiencia del sistema.

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.

13 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 13

Programacin de sistemas operativos


Programa desarrollado
Guiada por eventos.- La estructura de este paradigma y su ejecucin de programas van determinados por los sucesos que ocurran en el sistema o que ellos mismos provoquen.

4.2.3. Llamadas al sistema


Durante el desarrollo de las interfaces, las llamadas al sistema deben cumplir con el menor nmero de llamadas, es importante contar con un paradigma de datos unificador el cual ser de mucha utilidad durante el proceso de diseo.

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.

14 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 14

Programacin de sistemas operativos


Programa desarrollado
La cantidad y tipo de llamadas al sistema, va en relacin al sistema operativo y varan de uno a otro. Existen, por lo general: las llamadasal sistema para la ejecucin de ficheros que contienen programas y para pedir ms memoria dinmica para un programa.

Actividad 2. Arquitectura del diseo del sistema operativo Linux


Esta actividad tiene como propsito que distingas cmo est estructurada la arquitectura del sistema operativo Linux.

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.

4.3. Implementacin y desempeo


Para la implementacin de las aplicaciones en general es conveniente formar en tres apartados: Integracin de todos los componentes. Objetos distribuidos. Servicios.

15 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 15

Programacin de sistemas operativos


Programa desarrollado
En estructuras similares de datos para sistemas operativos, existe la posibilidad que uno sea ms rpido que otro, pero tambin, puede ser que el sistema ms rpido puede ser menos confiable que el sistema ms lento.

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.

4.3.1. Estructura del sistema

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.

16 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 16

Programacin de sistemas operativos


Programa desarrollado
Multiusuario.- Permite ser ocupado por dos o ms usuarios durante el tiempo de ejecucin de sus procesos. Monoproceso.- Solo puede gestionar un solo procesador Multiproceso.- Permite gestionar dos o ms procesadores para gestionar la carga entre ellos. Cliente-Servidor.- Distribuye las tareas entre diferentes llamadas al sistema.

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,

17 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 17

Programacin de sistemas operativos


Programa desarrollado
Citrix, al igual que vmware puede ejecutar varias mquinas con distintas sesiones, y con sus caractersticas propias del software que permite el manejo de dispositivos entre sus maquinas. Arquitectura kernel monoltico.- Esta arquitectura se define por la existencia de una coleccin de procedimientos y, de forma independiente, cada procedimiento podr invocar a cualquiera de los otros, cada vez que requiere hacerlo, por medio su interface determinante a travs de parmetros y resultados. Arquitectura microkernel y multihilado.- Este tipo de arquitectura, se basa en obtener la mayor funcionalidad del kernel, se limita para que se pueda ejecutar en modo privilegiado y que permita las modificaciones y extensiones de forma simple y sencilla. Arquitectura orientada a objetos.- Para este tipo de arquitecturas los recursos que provee el sistema operativo es por medio grafico u objetos. Arquitectura cliente-servidor.- En esta arquitectura el modelo principal de trabajo, se encarga en dividir los procesos independientes que operan entre ellos, lo cual es de utilidad para intercambiar informacin, recursos, procesos y servicios.

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.

4.3.2. Mecanismos en comparacin con polticas


Los mecanismos son parte de la estructura del sistema operativo, as como las polticas de los procesos de cada usuario; donde existirn estructuras, arreglos de datos y uniones. La separacin de estos conceptos ayuda a la coherencia y estructura del sistema; como lo dice Tanenbaum (2003: 871), Otro principio que ayuda a la coherencia arquitectnica, adems de que evita que las cosas crezcan demasiado y las mantiene bien estructuradas, es el de separar el mecanismo y las polticas.

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

Programacin de sistemas operativos


Programa desarrollado

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.

4.3.3. Estructuras estticas o dinmicas


Para el desarrollo de la arquitectura de un sistema operativo, por lo general suele utilizarse dos tipos de estructuras: Dinmicas. Este tipo de estructuras se distingue por ser ms flexibles y permiten adaptarse a todos los recursos disponibles, pero tiene como desventaja de que requieren de un gestor de memoria dentro del sistema operativo. Estticas. En este tipo de estructuras, se caracterizan por ser de ms fcil comprensin, su programacin es ms simple y su uso es ms rpido.

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.

4.3.4. Implementacin descendente o ascendente


Para la implementacin de un sistema, existen diferentes tipos de tcnicas que son de gran utilidad para llevar a cabo el proceso de implementacin, entre las que estn: Ocultacin del hardware.- Esta tcnica permite ocultar las interrupciones, convirtindolas en operaciones de sincronizacin entre hilos. El ocultar la 19 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 19

Programacin de sistemas operativos


Programa desarrollado
arquitectura del hardware, permite facilitar la transportabilidad del sistema operativo. La fuente del sistema operativo debe ser nica y una compilacin condicional. Indireccin.- Para esta tcnica deber existir cierta flexibilidad por parte del sistema operativo, ya que si por algn motivo el usuario da la entrada de algn proceso por medio del teclado, al pulsar la tecla puede obtener un valor que no corresponde con lo deseado, para solucionarlo debe existir la posibilidad de utilizar configuraciones distintas de teclados. Reentrabilidad.- En esta tcnica se permite la ejecucin de forma simultnea de algn fragmento de cdigo, la ejecucin se puede dar dentro de un multiprocesador o en un monprocesador -en este, pueden darse interrupciones cuando se ejecuten las mismas porciones del cdigo al anterior.

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.

4.3.5. Principios de optimizacin


Siempre que se tiene el sistema en proceso de implementacin, se tiene en mente la comparacin al pensarse: qu es ms conveniente, un sistema operativo rpido, confiable o lento. La optimizacin compleja es comn que genere errores de diseo, por lo cual es conveniente optimizar solo lo necesario dentro de la arquitectura del 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.

20 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 20

Programacin de sistemas operativos


Programa desarrollado
4.3.6. Uso de cachs
La cache es un medio de utilidad de almacenamiento temporal, su funcin es habilitar el acceso a datos que han sido recientemente consultados esto permite hacer ms gil el proceso de lectura.

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.

Actividad 3. Diagrama de flujo para la implementacin de un SO


En esta actividad realizars un diagrama de flujo de cmo se debe realizar un sistema operativo. 1. En un archivo de texto realiza un diagrama de flujo considerando la implementacin y el desempeo de un SO.

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.

21 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 21

Programacin de sistemas operativos


Programa desarrollado

Actividad 4. Cmo optimizar Windows


El propsito de esta actividad es que realices una investigacin en Internet y busques comentarios y opiniones de personas que tienen experiencia en el uso del sistema operativo Windows. 1. Investiga acerca de cmo se podra optimizar Windows (qu se recomienda para que funcione mejor, con menos o ms ventanas, ms memoria, etc.)

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).

3. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin.

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.

Evidencia de aprendizaje. Diagrama de flujo para disear un sistema operativo


Como parte de la evaluacin de esta unidad, debes llevar a cabo una actividad cuyo propsito es conceptuar el proceso de diseo de un sistema operativo.

22 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 22

Programacin de sistemas operativos


Programa desarrollado
1. En un archivo de realiza un diagrama de flujo de cmo al disear un sistema operativo afectan todos los temas y subtemas de esta unidad en el orden y forma que consideres deben irse resolviendo para realizar un buen diseo de un sistema operativo.

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.

23 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 23

Programacin de sistemas operativos


Programa desarrollado

Para saber ms
Si deseas saber acerca de cmo se crea un diagrama de flujo, consulta la siguiente direccin electrnica:

Cmo crear un diagrama de flujo http://www.educarchile.cl/UserFiles/P0029/File/Objetos_Didacticos/ELO_12_ELE/ Recursos_para_la_Actividad/Como_crear_un_Diagrama_de_Flujo.pdf

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.

24 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 24

S-ar putea să vă placă și