Está en la página 1de 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

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

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

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

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

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

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

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

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

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

También podría gustarte