Está en la página 1de 110

Programacin de sistemas operativos

Programa desarrollado


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



Carrera:
Desarrollo de Software


Cuarto cuatrimestre


Programa de la asignatura:
Programacin de Sistemas Operativos


Clave:
160920415 / 150920415





Programacin de sistemas operativos
Programa desarrollado


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

I. INFORMACIN GENERAL DE LA ASIGNATURA ............................................. 7
a. Ficha de identificacin ............................................................................................................. 7
b. Descripcin ............................................................................................................................... 7
c. Fundamentacin terica de la asignatura ............................................................................ 8
d. Propsito ................................................................................................................................... 9
e. Competencia(s) a desarrollar ................................................................................................. 9
f. Temario ..................................................................................................................................... 10
g. Metodologa de trabajo ......................................................................................................... 11
h. Evaluacin ............................................................................................................................... 12
i. Fuentes de consulta ................................................................................................................ 13
II. DESARROLLO DE CONTENIDOS POR UNIDAD ........................................... 14
UNIDAD 1. ADMINISTRACIN DE PROCESADOR, MEMORIA Y
DISPOSITIVOS E/S .............................................................................................. 14
Propsito ...................................................................................................................................... 15
Competencia especfica ............................................................................................................ 15
Presentacin de la unidad ......................................................................................................... 15
Actividad 1. Presentacin .......................................................................................................... 16
1.1. Procesador ........................................................................................................................... 16
1.1.1. Definicin y conceptos .................................................................................................... 18
1.1.2. Procesos e hilos .............................................................................................................. 19
1.1.3. Multiprocesamiento ......................................................................................................... 24
1.1.4. Paralelismo ....................................................................................................................... 24
Actividad 2. Administracin del Procesador ........................................................................... 25
1.2. Memoria ............................................................................................................................... 26
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 3
1.2.1. Administracin de la memoria ....................................................................................... 26
1.2.2. Jerarqua de la memoria ................................................................................................ 28
1.2.3. Multiprogramacin con particiones fijas y variables ................................................... 28
1.2.4. Memoria real .................................................................................................................... 30
1.2.5. Memoria virtual ................................................................................................................ 32
Actividad 3. Mapa conceptual del manejo de la memoria .................................................... 33
1.3. Entrada / Salida ................................................................................................................... 34
1.3.1. Principios de hardware y software de I / O .................................................................. 35
1.3.2. Dispositivos y manejadores de dispositivos ................................................................ 36
1.3.3. Mecanismos y funciones de manejadores de dispositivos ....................................... 38
1.3.4. Estructura de datos en el manejo de dispositivos ...................................................... 41
1.3.5. Operaciones de E / S ...................................................................................................... 43
Actividad 4. Dispositivos de Entrada y Salida ........................................................................ 45
Autoevaluacin ........................................................................................................................... 46
Evidencia de aprendizaje. Administracin del procesador, memoria y los dispositivos de
entrada y salida ........................................................................................................................... 46
Cierre de la unidad ..................................................................................................................... 47
Para saber ms ........................................................................................................................... 47
Fuentes de consulta ................................................................................................................... 48
UNIDAD 2. ADMINISTRADOR DE SISTEMAS DE ARCHIVOS .......................... 49
Presentacin de la unidad ......................................................................................................... 49
Propsito ...................................................................................................................................... 49
Competencia especfica ............................................................................................................ 50
2.1. Sistemas de Archivos ......................................................................................................... 50
2.1.1. Concepto ........................................................................................................................... 52
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 4
2.1.2. Jerarqua de datos .......................................................................................................... 53
Actividad 1. Sistema de archivo ............................................................................................... 56
2.2. Tipo de Archivos ................................................................................................................. 56
2.2.1. Real ................................................................................................................................... 58
2.2.2. Virtual ................................................................................................................................ 58
2.2.3. Componentes ................................................................................................................... 59
Actividad 2. Tipos de archivos ms comunes en sistema operativo .................................. 60
2.3. Organizacin del sistema de archivos, lgica y fsica ................................................... 61
2.3.1. Operaciones con archivos .............................................................................................. 63
2.3.2. Implementacin de archivos .......................................................................................... 64
Actividad 3. Mapa conceptual de la organizacin del sistema de archivos ...................... 67
Autoevaluacin ........................................................................................................................... 68
Evidencia de aprendizaje. Manejo de archivos en Linux (deban, fedora, Ubuntu) y
Windows....................................................................................................................................... 68
Cierre de la unidad ..................................................................................................................... 69
Para saber ms ........................................................................................................................... 69
Fuentes de consulta ................................................................................................................... 69
UNIDAD 3. SEGURIDAD Y PROTECCIN .......................................................... 71
Presentacin de la unidad ......................................................................................................... 71
Propsito ...................................................................................................................................... 71
Competencia especfica ............................................................................................................ 71
3.1. Entorno de Seguridad ........................................................................................................ 72
Actividad 1. Seguridad y proteccin dentro del diseo de un sistema operativo ............. 77
3.1.1. Clasificaciones de la seguridad ..................................................................................... 77
3.1.2. Verificacin de autenticidad de usuarios ..................................................................... 78
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 5
3.1.3. Validacin y amenazas al sistema ................................................................................ 79
Actividad 2 Tabla de elementos que afectan la seguridad de un sistema ........................ 80
3.2. Concepto y objetivos de proteccin ................................................................................. 81
3.2.1. Mecanismos de proteccin ............................................................................................ 82
3.2.2. Funciones del sistema de proteccin ........................................................................... 83
3.2.3. Implementacin de matrices de acceso....................................................................... 84
Actividad 3. Cuadro sinptico de los mecanismos de proteccin ....................................... 85
Autoevaluacin ........................................................................................................................... 85
Evidencia de aprendizaje. Diagrama de flujo del sistema operativo .................................. 86
Cierre de la unidad ..................................................................................................................... 86
Para saber ms ........................................................................................................................... 87
Fuentes de consulta ................................................................................................................... 87
UNIDAD 4. DISEO DE SISTEMAS OPERATIVOS ............................................ 88
Presentacin de la unidad ......................................................................................................... 88
Propsito ...................................................................................................................................... 88
Competencia especfica ............................................................................................................ 88
4.1. Base del diseo de sistemas operativos ......................................................................... 89
4.1.1. La visin profesional del diseo .................................................................................... 90
4.1.2. Cuestiones bsicas sobre el diseo ............................................................................. 91
4.1.3. Conceptos generales de una arquitectura .................................................................. 93
4.1.4. Caractersticas diferenciales del diseo ...................................................................... 94
Actividad 1. Diseo de un sistema operativo ......................................................................... 95
4.2. Diseo de interfaces ........................................................................................................... 95
4.2.1. Principios sobre el diseo de interfaces ...................................................................... 98
4.2.2. Paradigmas ...................................................................................................................... 98
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 6
4.2.3. Llamadas al sistema ....................................................................................................... 99
Actividad 2. Arquitectura del diseo del sistema operativo Linux ..................................... 100
4.3. Implementacin y desempeo ........................................................................................ 101
4.3.1. Estructura del sistema .................................................................................................. 101
4.3.2. Mecanismos en comparacin con polticas............................................................... 104
4.3.3. Estructuras estticas o dinmicas .............................................................................. 104
4.3.4. Implementacin descendente o ascendente............................................................. 105
4.3.5. Principios de optimizacin............................................................................................ 106
4.3.6. Uso de cachs ............................................................................................................... 106
Actividad 3. Diagrama de flujo para la implementacin de un SO ................................... 107
Actividad 4. Cmo optimizar Windows .................................................................................. 107
Autoevaluacin ......................................................................................................................... 108
Evidencia de aprendizaje. Diagrama de flujo para disear un sistema operativo .......... 108
Cierre de la unidad ................................................................................................................... 109
Para saber ms ......................................................................................................................... 109
Fuentes de consulta ................................................................................................................. 110

Programacin de sistemas operativos
Programa desarrollado


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

I. Informacin general de la asignatura

a. Ficha de identificacin

Nombre de la Ingeniera: Desarrollo de software
Nombre del curso o
asignatura
Programacin de Sistemas Operativos
Clave de asignatura: 160920415 / 150920415
Seriacin:
No aplica
Cuatrimestre: Cuarto
Horas contempladas: 72

b. Descripcin

Para que una computadora pueda hacer funcionar alguna aplicacin o programa, debe
realizar varias actividades, que a veces no nos imaginamos, estas operaciones estn
dadas con la forma en que se comunican el procesador, la memoria y los dispositivos.

Bien sabemos que una computadora en la actualidad contiene uno o mas procesadores,
memoria RAM y memoria de almacenamiento tales como discos duros, adems de
ranuras de expansin en las que se colocan tarjetas como tarjetas de video, red, cada uno
de los cuales funcionan de manera transparente a nuestros ojos es decir no nos
preocupamos por el manejo fsico simplemente los usamos ejemplo al guardar un archivo
en el disco duro no tenemos que manipular como se mueve el lector y cuantos y cual
espacio fsico va a utilizar y el como se guarda ah, para poder controlar esto tendramos
que ser expertos en electrnica y muchas ms cosas.

La asignatura de Programacin de sistemas operativos es continuidad de la materia
Sistemas Operativos y primordial para quienes estn estudiando una licenciatura en la
que se diseen programas; por lo mismo, los conocimientos y habilidades que desarrollen
en este curso sern indispensables para la mayora de las asignaturas subsecuentes del
plan de estudios, tal es el caso de Bases de datos, Programacin orientada a objetos,
Programacin web, Estructura de datos, entre otras.

Los estudiantes que cursen esta asignatura podrn deducir la manera en que el sistema
operativo lleva a cabo todos sus controles, para esto se ha desglosado el contenido de la
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 8
materia en 4 unidades que abordan lo siguiente: la primera unidad habla sobre la
administracin del procesador de la memoria y de los dispositivos de entrada y salida, la
segunda unidad trata sobre la manipulacin que se tiene en el sistema de archivos, la
tercera aborda cmo los conocimientos de seguridad indispensables y se abarcarn
tcnicas de proteccin de acceso al sistema y en la cuarta la bases el diseo de interfaces
la implementacin y el desempeo que implica el diseo de sistemas operativos

c. Fundamentacin terica de la asignatura

La asignatura de Programacin de Sistemas Operativos, tiene como finalidad principal el
mostrar cmo se programa un sistema operativo, distinguiendo cmo administra el
procesador, la memoria y los dispositivos de entrada y salida que conocemos tales como
teclado, monitor, mouse, etc. As, al identificar cmo el sistema operativo interacta con
estos elementos mencionados, determinars los procesos que se siguen en cada uno de
ellos.

Otra parte importante de esta asignatura es que identifiques qu procesos sigue el
sistema de archivos, cmo es manejado y organizado por el sistema operativo, sin dejar
de tomar en cuenta la parte de seguridad y proteccin utilizando las funciones tcnicas en
cuanto a polticas y mecanismos, de stas.

Aplicando las caractersticas que conforman la parte fsica de una mquina, el manejo de
archivos, su seguridad y proteccin, As se podr disear y entender como es la
implementacin y el desempeo del Sistema Operativo.

Desde el inicio en la primera unidad, el estudiante interactuar con las herramientas del
aula virtual, como lo son foros, bases de datos. Posteriormente, se llevarn a cabo
trabajos, as como tambin se realizarn actividades de investigacin que complementen
los contenidos, lo que permita ejercitar y presentar sus evidencias de aprendizaje de los
temas vistos en cada unidad.

El enfoque terico metodolgico en el cual se sustenta la asignatura es un enfoque mixto,
donde se considerarn los siguientes aspectos:
Criterio cuantitativo: nmero de aportaciones: mnimo 2/tema a discutir.
Criterio cualitativo a travs de escalas:
o Excelente: 100
o Bien: 80
o Regular: 60
o Insuficiente: 50

Programacin de sistemas operativos
Programa desarrollado


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

d. Propsito

Si bien recordamos un sistema operativo controla y coordina el hardware con el software,
siendo la interfaz de comunicacin entre el hardware y el usuario, hasta ahora slo
participbamos como usuarios del mismo, sin preocuparnos por cmo funciona
realmente.

Exigimos que sea rpido, que tenga rendimiento y buena gestin de recursos, es decir
que este optimizando el uso del hardware, queremos que el sistema sea fcil de usar,
pero rara vez nos preguntamos cmo funciona o cmo controla cada uno de estos
accesos.

El propsito inicial de esta materia es identificar como el sistema operativo internamente
controla y coordina al procesador, a la memoria, los dispositivos de entrada y salida;
adems cmo maneja los archivos para un buen control, desde luego sin dejar de tomar
en cuenta los niveles de seguridad y proteccin que exigimos como usuarios, para lo
ms valioso que manejamos que es la informacin, de manera que visualizamos el SO
(Sistema Operativo) como el que controla y asigna los recursos.

Teniendo en cuenta todos estos conceptos, se realza el propsito final de esta materia,
que es identificar el diseo de un sistema operativo, desde su base, su interfaz y su
implementacin.


e. Competencia(s) a desarrollar

Competencia general:
Emplear las distintas partes que conforman un sistema operativo para la administracin
eficaz de los recursos utilizando las diferentes herramientas del diseo.


Competencias especficas:
Describir la administracin del procesador, memoria y dispositivos de entrada y
salida para reconocer las caractersticas que los distingue como interactan con el
sistema operativo mediante las transiciones entre ellos.
Identificar el proceso que siguen los archivos para la administracin y buen manejo
de los mismos con el anlisis mediante la lgica que sigue el sistema.
Utilizar las funciones y tcnicas para validar las amenazas de un sistema como
polticas y mecanismos mediante la diferenciacin de seguridad y proteccin.
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 10
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.


f. Temario

Unidad 1. Administracin de Procesador, memoria dispositivos E/S

1.1. Procesador
1.1.1. Definicin y conceptos
1.1.2. Procesos e hilos
1.1.3. Multiprocesamiento
1.1.4. Paralelismo
1.2. Memoria
1.2.1. Administracin de la memoria
1.2.2. Jerarqua de la memoria
1.2.3. Multiprogramacin con particiones fijas y variables
1.2.4. Memoria real
1.2.5. Memoria virtual
1.3. Entrada/Salida
1.3.1. Principios de hardware y software de I/O
1.3.2. Dispositivos y manejadores de dispositivos
1.3.3. Mecanismos y funciones de manejadores de dispositivos
1.3.4. Estructura de datos en el Manejo de dispositivos
1.3.5. Operaciones de E/S

Unidad 2. Administrador de Sistemas de Archivos

2.1 . Sistemas de Archivos
2.1.1 Concepto
2.1.2 Jerarqua de datos
2.2 . Tipo de Archivos
2.2.1 Real
2.2.2 Virtual
2.2.3 Componentes
2.3 . Organizacin del sistema de archivos, lgica y fsica
2.3.1 Operaciones con archivos
2.3.2 Jerarqua de Datos

Unidad 3. Seguridad y Proteccin

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 11
3.1 Entorno de Seguridad
3.1.1 Clasificaciones de la seguridad
3.1.2 Verificacin de autenticidad de usuarios
3.1.3 Validacin y amenazas al sistema
3.2 Concepto y objetivos de proteccin
3.2.1 Mecanismos de proteccin
3.2.2 Funciones del sistema de proteccin
3.2.3 Implementacin de matrices de acceso

Unidad 4. Diseo de Sistemas Operativos

4.1. Base del diseo de sistemas operativos
4.1.1. La visin profesional del diseo
4.1.2. Cuestiones bsicas sobre el diseo
4.1.3. Conceptos Generales de una arquitectura
4.1.4. Caractersticas diferenciales del diseo
4.2. Diseo de interfaces
4.2.1. Principios sobre el diseo de interfaces
4.2.2. Paradigmas
4.2.3. Llamadas al sistema
4.3. Implementacin y desempeo
4.3.1. Estructura del sistema
4.3.2. Mecanismos en comparacin con polticas
4.3.3. Estructuras estticas o dinmicas
4.3.4. Implementacin descendente o ascendente
4.3.5. Principios de optimizacin
4.3.6. Uso de cachs


g. Metodologa de trabajo

El Aprendizaje Basado en la Resolucin de Problemas como metodologa de aprendizaje
aplicada a la asignatura permitir que se presenten situaciones diversas para que se lleve
a cabo la aplicacin de diagramas de flujo y procedimientos, as mismo rutinas que
permitan ejercitar y poner en prctica conocimientos y procedimientos que promuevan el
reforzamiento de lo aprendido o la resolucin de dudas; as como el aprendizaje
significativo, al comprobar los elementos tericos.

Al aplicar este tipo de metodologa en la asignatura, tambin se toman en cuenta:
El uso de las siguientes herramientas tecnolgicas: a) un foro general al inicio de la
asignatura cuyo propsito es favorecer la comunicacin y el conocimiento entre los
estudiantes, b) foros que sirven como base para participar en temas propuestos y
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 12
obtener un mayor conocimiento acerca de los temas de cada unidad y c) bases de
datos para trabajar tablas descriptivas y comparativas sobre diversos temas de la
asignatura.
La realizacin de actividades formativas, entre las que destacan: tareas en las que
se analiza el tema y se selecciona un ejemplo u otras en las que dado un ejemplo
especfico se pide entregar documentacin segn sea solicitado, tambin
investigaciones y disear diagramas como parte final para la aplicacin del
conocimiento adquirido.
La construccin del portafolio de evidencias (e-portafolio) elaboracin de cuadro
sinptico para evidenciar el conocimiento adquirido, un documento referenciando la
unidad 2 y diagramas de flujo para las siguientes unidades que reflejan los temas
abordados en cada una de las unidades que integran la asignatura.
La realizacin de actividades de auto-evaluacin que den cuenta del grado de
aprendizaje adquirido y refuercen los conocimientos.


h. Evaluacin

En el marco del Programa ESAD, la evaluacin se conceptualiza como un proceso
participativo, sistemtico y ordenado que inicia desde el momento en que el estudiante
ingresa al aula virtual. Por lo que se le considera desde un enfoque integral y continuo.

Por lo anterior, para aprobar la asignatura, se espera la participacin responsable y activa
del estudiante as como una comunicacin estrecha con su facilitador para que pueda
evaluar objetivamente su desempeo. Para lo cual es necesaria la recoleccin de
evidencias que permitan apreciar el proceso de aprendizaje de contenidos: declarativos,
procedimentales y actitudinales.

En este contexto la evaluacin es parte del proceso de aprendizaje, en el que la
retroalimentacin permanente es fundamental para promover el aprendizaje significativo y
reconocer el esfuerzo. Es requisito indispensable la entrega oportuna de cada una de las
tareas, actividades y evidencias as como la participacin en foros y dems actividades
programadas en cada una de las unidades, y conforme a las indicaciones dadas. La
calificacin se asignar de acuerdo con la rbrica establecida para cada actividad, por lo
que es importante que el estudiante la revise antes realizarla.

A continuacin presentamos el esquema general de evaluacin.

ESQUEMA DE EVALUACIN
Evaluacin
continua
Interacciones individuales y
colaborativas
10%
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 13
Tareas 30%
E-portafolio. 50%
Evidencias 40%
Autorreflexiones 10%
Examen 10%
CALIFICACIN
FINAL
100%

Cabe sealar que para aprobar la asignatura, se debe de obtener la calificacin mnima
indicada por ESAD.


i. Fuentes de consulta

Bibliografa bsica
Stallings, W. (2007) Sistemas Operativos. Mxico: Pearson Prentice Hall.
Stallings, W. (2007) Sistemas Operativos: aspectos internos y principios de diseo.
Pearson Prentice Hall.
Tanenbaum, A. (2003) Sistemas Operativos Modernos. Mxico: Pearson Prentice
Hall.
Tanenbaum, A. (2009) Sistemas Operativos: diseo e implementacin. Mxico:
Pearson Prentice Hall.

Bibliografa complementaria
Morera, J. y Prez, J. (2002) Conceptos de Sistemas Operativos. Madrid: Comillas.
Programacin de sistemas operativos
Programa desarrollado


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

II. Desarrollo de contenidos por unidad

Unidad 1. Administracin de Procesador, memoria y dispositivos E/S

El procesador esta formado por planificadores en los cuales se decide que se va a
ejecutar primero y que se ejecuta despus, adems de a que le va a dar respuesta de
manera inmediata y que puede esperar, todo esto con la finalidad de optimizar varios
puntos tales como: velocidad en respuesta, certeza, excelencia en respuesta, etc.,
entendiendo as a los planificadores como las partes lgicas del procesador que analizan
los datos recibidos y toman decisiones de respuesta en cuanto velocidad y prioridad.


Existen diferentes tipos de planificadores en un procesador los cuales se enlistan a
continuacin:

Planificador a largo plazo: En este, el procesador decide el orden de ejecucin
con una adecuada organizacin de los recursos para que el trabajo se ejecute de
forma ordenada y eficiente segn el modo de procesamiento.

Planificador a medio plazo: Este planificador es responsable de cargar y
descargar trabajos desde el disco a la memoria y de la memoria al disco
considerando el grado de sobrecarga del sistema.


Planificador a corto plazo: Es quien decide cundo, cmo y por cunto tiempo
recibe el procesador un proceso que est preparado para ejecutar.

As consideraremos como primer componente para que un sistema operativo funcione es
el procesador.

El segundo componente es la memoria, la principal necesidad para cualquier sistema
operativo es el que la memoria sea rpida para que al ejecutar una instruccin el CPU o
procesador, no se vea afectado por la memoria de bajo rendimiento.

Dentro de un sistema operativo, la memoria no es el nico recurso que debe
administrarse, los dispositivos de Entrada/Salida tambin interactan con el sistema
operativo y por lo regular constan de dos partes: una tarjeta controladora y el dispositivo
en s, la tarjeta controladora es un chip o un conjunto de chips montados en una tarjeta
insertable, que controla fsicamente al dispositivo. Dicha controladora acepta comandos
del sistema operativo y los ejecuta.
Programacin de sistemas operativos
Programa desarrollado


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

Considerando entonces que el tercer componente son los dispositivos en si. Los
dispositivos tienen interfaces relativamente simples, debido a que no tienen mucha
capacidad para estandarizarlos, esto ltimo es necesario para que cualquier controladora
de disco IDE pueda manejar cualquier disco IDE (Electrnica Integrada en la Unidad,
integrated drive electronics. Por sus siglas en ingles).


Propsito

Identificar cmo el Sistema Operativo interacta, maneja el control del procesador y sus
procesos, de la memoria y sus tipos particiones y administracin; sin dejar de tomar en
cuenta el control de los dispositivos de E/S; sus principios, manejadores, mecanismos,
estructuras y operaciones.


Competencia especfica

Describir la administracin del procesador, memoria y dispositivos de entrada y salida
para reconocer las caractersticas que los distingue como interactan con el sistema
operativo mediante las transiciones entre ellos.


Presentacin de la unidad

Bienvenido(a) a la asignatura de Programacin de Sistemas Operativos. En esta primera
unidad trabajaremos y entenderemos sobre como el Sistema Operativo hace uso del
procesador administrndolo en cual si bien recordamos es el cerebro de la computadora
o donde se realizan las operaciones tambin es conocido como CPU, las partes que lo
forman, como cambia de un proceso a otro, como manipula las actividades y entender
como es que controla varios procesos a la vez o los hace en forma paralela una vez que
entendamos como el Sistema Operativo administra el procesador entenderemos como
controla los accesos a la memoria descargando y cargando informacin en ella, se
entender la diferencia entre memoria real y virtual y para que se usa cada una de ellas y
por ultimo la gran ventaja de controlar las operaciones que se realizan en los dispositivos
de entrada y salida .
Programacin de sistemas operativos
Programa desarrollado


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

Actividad 1. Presentacin

Como primer actividad en el estudio de la asignatura, te presentamos un foro de
discusin general, creado para que comentes asuntos relacionados con la asignatura; en
l, conocers a tus compaeros de grupo, entre todos podrn apoyarse, resolver dudas e
inquietudes y externar comentarios.

Comienza tu participacin, ingresando al aula y en la Actividad 1.Presentacin.


1.1. Procesador

El procesador o Unidad Central de Procesamiento comnmente conocido como CPU por
sus siglas en ingles Central Processing Unit, es la unidad que procesa todas las tareas
que realizara la computadora, permitiendo el procesamiento de informacin numrica
ingresada en formato binario, as como el proceso de instrucciones almacenadas en la
memoria.

El CPU, es un dispositivo electrnico el cual funciona enviando pulsos elctricos a razn
de Hertz, un CPU con 50 MHz enviar 50.000.000 pulsos elctricos por segundo donde el
procesador ejecuta una accin que corresponde a su vez a una instruccin o bien a una
parte de ella.

La medida CPI (ciclos por instruccin) representa el nmero promedio de ciclos
necesarios para que el microprocesador ejecute la instruccin.

La potencia del microprocesador se mide por el nmero de instrucciones por segundo
que es capaz de procesar.

Cada CPU ejecuta un conjunto de instrucciones especficas a su arquitectura, por lo tanto
no se pueden ejecutar programas de una arquitectura de un tipo de procesador a otro con
estructura de manejo de proceso diferente. Puesto que tener acceso a la memoria para
obtener una instruccin o una palabra de datos tarda mucho ms que ejecutar una
instruccin, todas las CPUs contienen algunos registros para guardar variables
importantes y resultados temporales. As el conjunto de instrucciones por lo general
incluyen instrucciones para cargar una palabra de la memoria en un registro, y para
almacenar en la memoria una palabra que est en un registro.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 17
El sistema operativo debe tener conocimiento de todos los registros, al multiplexar en el
tiempo el CPU, es comn que el sistema operativo tenga que detener el programa en
ejecucin para iniciar o reiniciar otro. Cada vez que el sistema operativo detiene un
programa en ejecucin, debe guardar todos los registros para que puedan restablecer
cuando el programa contine su ejecucin justo donde se qued (Tanenbaum, 2003: 22)

En la actualidad muchas CPU cuentan con recursos para ejecutar ms de una instruccin
a la vez, una CPU podra tener unidades individuales para tomar, decodificar y ejecutar de
modo que mientras est ejecutando la instruccin, tambin pueda estar decodificando la
instruccin n+1 y tomando la instruccin n+2.

El procesador realiza e interpreta una serie de instrucciones contenidas de un software y
procesa los datos que este genera. Existen un gran nmero de modelos y marcas de
procesadores que van dependiendo del tipo de socket, CoreClock, FSB, Cache, etc.

Instrucciones, es una operacin que el procesador debe de realizar; esas instrucciones se
almacenan en la memoria principal del procesador, y utilizan dos campos: Cdigo de
operacin que representa la accin que el procesador debe ejecutar. Cdigo operando,
que es el que define los parmetros de la accin.

Las instrucciones se agrupan a su vez en categoras como:

Acceso a Memoria: Es la transferencia de informacin entre registros.
Operaciones Aritmticas: Es la parte que se encarga de realizar las operaciones
tales como suma, resta multiplicacin o divisin.
Operaciones lgicas: En esta se encarga de realizar las operaciones Y, O, No, etc.
Control: Se encarga de realizar las conexiones condicionales, etc.
Debido a la exclusin de elementos de hardware complejos, la realizacin del
trabajo por la capa de software, los procesadores poseen una estructura interna
simple y muy eficiente, compuesta por:
Unidades enteras (Integer ALU).
Unidad de coma flotante (floating point unit).
Unidad de memoria para operaciones de lectura y escritura (Load/Staore Unit).
Unidad de salto (Branch unit).

Al ejecutarse todas las instrucciones la informacin que se genera se almacena de forma
temporal en ubicaciones de memoria local, denominada registros.

Algunos de los registros comnmente utilizados son:
Acumulador (ACC), almacena los resultados de las instrucciones de operacin
Aritmtica y lgica.
Estado (PSW), contiene los indicadores de estado del sistema.
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 18
Instruccin (RI), almacena las instrucciones que se va procesando.
Contador ordinal (OC).

Casi todas las computadoras tienen varios registros especiales que puede ver el
programador. Uno de ellos es el contador de programa, el cual contiene la direccin de
memoria en la que se encuentra la siguiente instruccin que ser tomada. Una vez
obtenida esa instruccin, el contador de programa se actualizar de modo que apunte a
su sucesora. Otro registro es el apuntador de pila, que apunta a la parte superior de la pila
actual en la memoria. La pila contiene un marco por cada procedimiento en el que se ha
entrado, pero del cual no se ha salido an. El marco de pila de un procedimiento contiene
los parmetros de entrada, variables locales y variables temporales que no se guardan en
registros.


1.1.1. Definicin y conceptos

El procesador es el encargado de procesar los datos que estn almacenados en una
computadora para producir cualquier tipo de informacin de inters para los usuarios.

Un microprocesador se divide en dos componentes bsicos, los cuales son:

1. La unidad lgica/aritmtica (ALU), que realiza operaciones aritmticas y lgicas,
dadas a travs de microprogramacin.
2. La unidad de control (CU), que extrae instrucciones de la memoria, las descifra y
ejecuta, llamando a la ALU cuando es necesario, sincroniza todas las operaciones
de reas de almacenamiento principal llamadas registros y memoria cach.

El procesador necesita para su funcionamiento de ciertas reas de almacenamiento y que
son de dimensiones mnimas; sin embargo, tienen la ventaja de su rapidez. Comparados
con los accesos a RAM, los registros son como mnimo 10 veces ms veloces.

Existen 4 registros llamados AX, BX, CX y DX, cada uno de ellos tienen asignada una
actividad especfica.

AX. Nombrado acumulador; contiene el operador que interviene en las
operaciones aritmticas y lgicas. En general las instrucciones que trabajan con
este registro tienen un micro cdigo ms simple que la misma instruccin
ejecutada con otro registro.
BX. Conocido como registro base, comnmente la tarea de este registro se basa
en identificar la direccin o ndice de cada registro dentro de una tabla de valores
para su direccionamiento.
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 19
CX. Es el contador, las instrucciones que se realizan durante un proceso dentro
del sistema operativo conocidas como bucle (LOOP) utilizan este registro como
contador de n veces que un ciclo repite dentro de un proceso.
DX. Registro de datos multiuso, se utiliza en operaciones de multiplicacin y
divisin junto con AX, su aplicacin suele estar dentro de operaciones de
entrada/salida de puertos IN/OUT.

Los registros de segmento son utilizados para integrar las direcciones de otros
segmentos, para su aplicacin en conjunto con otros registros que sealan las direcciones
concretas dentro de estos segmentos, lo cual permite la gestin total de la memoria
direccional, y para estos segmentos bsicamente se contemplan 4 tipos:
Segmento de cdigo CS. Apunta la ubicacin del segmento de cdigo del
programa el cual se est ejecutando en ese instante.
Segmento de datos DS. Seala la ubicacin del segmento de datos del programa
en ejecucin.
Segmento de Pila SS. Apunta la ubicacin del segmento donde est la pila del
programa en ejecucin.
Segmento extra ES. Es un segmento auxiliar, es utilizado para indicar la existencia
de espacio extra de algunos de los segmentos anteriores, es til tambin para
guardar de forma temporal las direcciones intermedias entre segmentos.

Los registros de puntero estn destinados a contener direcciones que son
desplazamientos dentro de los segmentos indicados por los registros de segmento.

Puntero de instruccin IP y contador de programa PC, establece la direccin de la
instruccin e indican el desplazamiento de la instruccin siguiente a ejecutar que
ubica dentro del segmento CS.
Puntero de Pila SP. Seala la ubicacin final de la pila dentro del segmento de pila
SS.
Puntero base BP. Seala el desplazamiento donde se encuentra el origen de la
zona ocupada por las variables dinmicas.

Tambin, dentro de los registros se encuentra uno especial llamado registro de estado
(FLAGS), es un indicar del estado del procesador y el resultado de algunas operaciones,
ya que su funcin se basa en el manejo de bits que actan como semforo.


1.1.2. Procesos e hilos

Puede considerarse como definicin de un proceso, a la ejecucin de un programa dentro
de un sistema operativo el cual puede necesitar de ciertos recursos determinantes para su
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 20
ejecucin tales como: Tiempo de CPU, archivos de Entrada/salida, dispositivos de
_entrada/salida, y memoria principalmente, todos los recursos que utiliza se asignan al
proceso en el momento de que es creado o bien al momentos de ser ejecutado. Cabe
mencionar que cada uno los procesos puede tener su propia CPU virtual.

Una gran mayora de los sistemas, los procesos suelen ser la determinante para la
realizacin de los trabajos. Cada sistema contiene sus propios procesos, y se dividen en
los procesos del sistema operativo que son los encargados de ejecutar el cdigo del
sistema y los procesos de usuarios encargados de ejecutar el cdigo del usuario, por lo
tantos estos procesos se pueden ejecutar de manera simultnea para la realizacin de
tareas interactivas.

Durante la ejecucin del cdigo de un proceso, tambin utiliza la actividad actual que esta
representada por el valor del contador de programa y por los contenidos de los registros
del procesador. Por lo general de la misma forma, un proceso tambin incluye la pila del
proceso, lo cual puede contener los datos temporales: parmetros de funciones,
direcciones de retorno y las variables locales adems de una seccin de datos que
contienen las variables globales.

Un proceso puede incluir una acumulacin de memoria, que es asignada de forma
dinmica al proceso en tiempo de ejecucin, en la siguiente imagen, se presenta la
estructura de un proceso ubicado dentro de la memoria, indicando el estado que va
tomando a medida que el proceso es ejecutado.

Imagen 1. Ejecucin de un proceso ubicado en la memoria (Silberschatz, 2006:74)


La diferencia existente entre un programa y un proceso, se tiene que un programa por su
estructura propia no es un proceso ya que es una entidad pasiva por ejemplo un archivo
lleva incluido una cantidad de instrucciones que se almacenan en disco. Un proceso es
una entidad activa, la cual contiene las instrucciones que se deben ejecutar y un conjunto
de recursos asociados a los registro del cpu para su funcionamiento.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 21
Un programa se convierte en proceso al cargarse en memoria, lo cual lo convierte en
archivo ejecutable. Considerando un ejemplo que ayude a distinguir la diferencia, consiste
en una persona que se dedica a la construccin, el cual est a punto construir una casa.
Para esto cuenta con planos de la construccin y todo el material necesario para realizar
la obra: Cemento, Cal, Arena, Tabiques, Varilla, Alambre, Clavo, Madera, etc., en este
ejemplo los planos es el programa, la persona de la construccin es el CPU y los
elementos o materiales para la construccin son los datos de entrada. El proceso es la
actividad de la persona de la construccin consistente en leer los planos, obtener los
materiales y construir la casa.

La idea del proceso consiste en que es una actividad de algn tipo: tiene programa,
entrada, salida y un estado. Se puede compartir un procesador entre varios procesos,
usando algn algoritmo de planificacin para determinar cundo debe dejarse de trabajar
en un proceso para atender a uno distinto.

La jerarqua de los procesos que manejan el concepto de proceso debe contar con algn
mecanismo para crear todos los procesos necesarios, en los sistemas muy sencillos o en
los diseados para ejecutar slo una aplicacin es posible que, cuando el sistema se
inicia, todos los procesos que puedan necesitarse estn presentes. Sin embargo, en la
mayor parte de los sistemas se necesita algn mecanismo para crear y destruir procesos
segn sea necesario durante la operacin.

En el estado de procesos, aunque cada proceso es una entidad independiente, con su
propio contador de programa y estado interno, los procesos a menudo necesitan
interactuar con otros procesos. Un proceso podra generar ciertas salidas que otro
proceso utiliza como entradas.

Mientras un proceso es ejecutado va modificando el estado, dependiendo de la actividad
que este en memoria, en la siguiente imagen se muestra el estado de un proceso


Imagen 2. Un proceso puede estar en el estado de ejecutndose, bloqueado o listo. Las
transiciones entre estos tres estados son las que se muestran (Tanenbaum, 2003:51)

Habitualmente, la mayora de los procesos estn creados por el sistema operativo de tal
forma que los usuarios o el programa de aplicacin no conocan su procedencia. Sin
1. Un proceso se bloquea para aceptar entradas
2. El planificador escoge otro proceso
3. El planificador escoge este proceso
4. Hay entradas disponibles

Ejecutndose
Bloqueado
Listo
1
2
3
4
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 22
embargo, es bastante til para el rendimiento de memoria y administracin de recursos
dentro de los procesos del CPU, que de un proceso se pueda derivar otro proceso, el
nuevo proceso se podra ejecutar de forma paralela con la aplicacin y podra ser activado
cada que se mande a llamar.

Durante el bloqueo de control de procesos en un sistema operativo, es representado
mediante un bloque de control de procesos. Un bloque puede integrar algunos de los
elementos de informacin que especifiquen el estado de un proceso, algunos de estos
elementos se tiene:

Estado del proceso. En este estatus el proceso puede tomar la forma bsica de
inicio, nuevo, listo, ejecutando, en espera, detenido, finalizado, etc.
Contador de programa. El contador de programa identifica la ubicacin de la
siguiente instruccin que se ejecutara por el proceso.
Registros en CPU. Los diferentes registro que se pueden utilizar para el proceso
dependen del tipo y nmero as como de la arquitectura del CPU, para estos
registros se incluyen los ya tratados en tema anterior.
Estado y planificacin de CPU. La planificacin de CPU establece que proceso
tiene mayor prioridad para el buen funcionamiento y manejo de recursos.
Administracin de memoria. Muestra la valor de los registros, tablar de pginas y
de segmentos.
Informacin contable. Este elemento contiene la cantidad de CPU de tiempo real
empleado, lmites de tiempo asignados y nmeros de cuenta.
Estado de E/S. Este elemento muestra la lista de los dispositivos de E/S asignados
al proceso.

Por otro lado la finalizacin de un proceso, debe ser determinante que un proceso indique
la finalizacin de su tarea. Para esto la aplicacin deber detectar una llamada o peticin
explicita sobre el servicio del sistema operativo que determine la finalizacin del proceso
demandante.

Durante un proceso tradicional la existencia de hilos de control, que representa a una
actividad, en un proceso tradicional puede existir un solo hilo de control y un solo contador
de programa en cada proceso. Sin embargo, algunos sistemas operativos modernos
manejan mltiples hilos de control dentro de un proceso.

La siguiente imagen presenta un modelo de solicitud donde la existencia de un proceso
puede utilizar hilos simples y mltiples hilos, que reciben solicitudes para procesar el
archivo y la devolucin de datos o actualizacin.

Estos hilos de control normalmente se llaman slo hilos, en la siguiente imagen, se podr
observar tres procesos tradicionales, cada proceso tiene su propio espacio de direcciones
y un solo hilo de control. A diferencia, en el segundo esquema se observa un solo proceso
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 23
con tres hilos de control. Aunque en ambos casos se tienen tres hilos, cada uno de ellos
opera en un espacio de direcciones distinto, en tanto al otro caso los tres hilos comparten
el mismo espacio de direcciones.

Imagen 3. (a) Estructura de tres procesos con un hilo simple y espacio de direcciones
distinto. (b) Estructura de un proceso con tres hilos que comparte el espacio de
direcciones (Tanenbaum, 2003: 54)

Una determinante de rendimientos es vista en la imagen anterior (b), Cuando una solicitud
es procesada es entregada a un hilo, si este hilo se bloquea, los dems hilos pueden
continuar ejecutndose de manera que se podrn realizar nuevas solicitudes ya sea
inclusive de E/S de disco. A diferencia del modelo (a), no es muy conveniente ya que
todos los hilos no comparten el mismo espacio de direcciones y cach de memoria.

Algunos de los sistemas operativos, anteriormente no utilizaban estos procesos y los hilos
se manejaban de forma simple de pilas. La principal desventaja que se tena con este
mtodo, si el hilo se bloqueaba el proceso quedara inconcluso.

Para otros sistemas, el sistema operativo utilizan los hilos mltiples por proceso, esta
forma de hilos mltiples tiene la ventaja del anterior que cuando un hilo se bloque, el
sistema operativo selecciona el hilo que se ejecutar enseguida ya sea para el mismo
proceso o un proceso distinto. Para realiza la planificacin, el kernel deber saber la
existencia de la tabla de hilos que relacione los hilos del sistema.

La diferencia entre un hilo simple e hilo mltiple, consiste en el rendimiento que vara de
forma significante uno del otro. La modificacin de hilos es ms gil cuando la
administracin de hilos se realiza en el espacio de usuario que cuando se realiza una
llamada al kernel.

Ya sea que los hilos se puedan administrar por el kernel o en el espacio de usuario, se
introducen varios problemas que se debern resolver y modificar considerablemente el
modelo de programacin para un mejor rendimiento del sistema operativo.
Contador de pgina
Hilo Proceso
Computadora Computadora
(a)
(b)
Programacin de sistemas operativos
Programa desarrollado


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

1.1.3. Multiprocesamiento

En sistema operativo que tiene mltiples CPU, puede compartir la carga de
procesamiento; sin embargo, el problema de la planificacin se hace ms difcil. La idea a
enfocar sobre el multiprocesamiento es en base a los sistemas en lo que los
procesadores son idnticos, homogneos en relacin a su funcionalidad, existen
diferentes limitaciones que afectan a la planificacin.

Un mtodo para planificar las CPU para un sistema multiprocesador consiste en que
todas las decisiones sobre la planificacin, el procesamiento de E/S y varias actividades
del sistema sean administrados por un mismo procesador. A este multiprocesamiento
asimtrico pareciera simple, pues solo existe un procesador que accede a las estructuras
de datos del sistema, minimizando la necesidad de compartir datos.

Otro mtodo es el multiprocesamiento simtrico, este tiene como cualidad que cada uno
de los procesadores se auto-planifica, y lo procesos pueden estar en una cola comn de
procesos preparados, o bien cada procesador puede ser propietario de su cola de
procesos preparados de forma independiente, esta mtodo se puede establecer que el
planificador de cada procesador analice la cola de procesos preparados y seleccione un
proceso para ejecutarlo. Una programacin eficiente del sistema se considerar aquella
en la que el procesador pueda seleccionar un proceso que este dentro de una estructura
de datos y que dos procesadores no seleccionarn el mismo proceso y tambin evitar la
prdida de procesos de la cola.

Hoy en da la mayora o prcticamente todos los sistemas operativos modernos tienen la
factultad de soportar el multiprocesamiento simtrico, por mencionar algunos de ellos:
Windows XP y superior, Linux en todas sus distribuciones, Mac OSx, etc.


1.1.4. Paralelismo

Para la programacin de sistemas operativos, el trmino paralelismo implica la existencia
de varios procesadores en el sistema, la tcnica de programacin paralela determina el
poder dividir la ejecucin de un proceso en distintos mdulos del sistema.

Mientras la CPU est ejecutando un programa, tambin puede estar leyendo un disco
esto es porque la CPU, esto se realiza en el curso de muy poco tiempo ya que puede
trabajar con varios programas simulando que el sistema puede estar realizando varios
procesos al mismo tiempo. El termino seudoparalelismo, se utiliza para refirise a esta
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 25
rpida conmutacin de la CPU entre programas, para diferenciar del verdadero
paralelismo de hardware de los sistemas multiprocesador, en el proceso de evolucin de
desarrollo de sistemas operativos se ha ido mejorando el modelo de procesos
secuenciales que facilita el manejo del paralelismo.

El paralelismo para los programas puede ser explicito donde unas de sus principales
caractersticas es que el programador especifica mediante una construccin de
concurrencia de exclusin mutua y sincronizacin para determinar la prioridad de los
procesos. En este mtodo puede ser viable para utilizar los procesadores por separado y
ejecutar cada uno los procesos, por su dificultad de implementacin se pueden generar
varios errores de programacin.

Actividad 2. Administracin del Procesador

Con el fin de reflexionar sobre el tema de la administracin del procesador, participa en
el foro de esta actividad, realizando lo siguiente:

1. Analiza y contesta las siguientes preguntas:
Qu funcin tiene el Procesador dentro del Sistema Operativo?
Cmo interactan los hilos con el procesador?
Cul es la diferencia entre multiprocesamiento y paralelismo?

2. Ingresa al foro y genera una nueva entrada para compartir tu respuesta a las
preguntas antes planteadas.

3. Revisa y comenta las aportaciones de tus compaeros(as), analiza si
concuerdas o no con ellos(as).

4. A partir de las aportaciones vertidas en el foro, elabora tus conclusiones y
publcalas.

5. Recuerda consultar la Rbrica de Foro que se encuentra en la seccin Material
de apoyo.


Programacin de sistemas operativos
Programa desarrollado


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

1.2. Memoria

La memoria en un sistema operativo puede llegar a ser un recurso muy importante el cual
se debe administrarse con cuidado. La memoria principal puede ser considerada como un
arreglo lineal de localidades de almacenamiento de un byte de tamao, cada localidad de
almacenamiento tiene asignada una direccin que la identifica.

La memoria principal es el lugar donde el CPU registra las instrucciones que se van a
ejecutar, as como algunos datos a emplear, una de las funciones bsicas que debe
implementar un Sistema Operativo es la administracin de la memoria para tener un
control sobre los lugares donde estn almacenados los procesos y datos que actualmente
se estn utilizando.


1.2.1. Administracin de la memoria

La administracin de la memoria para un sistema multiproceso, se debe tener cuidado en
la gestin de este recurso, ya que se puede determinar el estado del procesador
dependiendo de la cantidad de procesos que se estn ejecutando. La memoria principal
es la parte donde se ejecutan los programas y procesos, este est definido por el espacio
disponible para que se puedan ejecutar los procesos.

La administracin de la memoria es la encargada de gestionar la jerarqua de los
procesos que se ejecutan dentro de la misma, su principal funcin es el determinar que
partes de la memoria real estn en uso y que partes estn libres, tambin asigna memoria
a los procesos cuando la necesitan recuperar y cuando termina adems controla el
intercambio entre la memoria principal y el disco cuando la primera es demasiado
pequea.

Para un sistema operativo la administracin bsica de la memoria se puede dividir en dos
clases, los que intercambian los procesos entre la memoria y algn dispositivo esto
mediante el proceso de ejecucin. La otra clase es lo contrario al anterior pues aqu estn
catalogados lo que no realizan el intercambio y paginacin.
El intercambio y la paginacin es utilizada como una tcnica para las situaciones
causadas memoria principal escasa para mantener todos los programas al mismo tiempo.
Esto reduce el costo de la memoria principal y aumenta el rendimiento del procesador,
comnmente es conveniente el replantear la administracin de la memoria a medida que
el sistema tenga mayor crecimiento, pues esto implica que la memoria u otro pueden
hacerse obsoletos, ya que los sistemas crecen con mayor rapidez que las memorias.
Programacin de sistemas operativos
Programa desarrollado


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

La monoprogramacin que no tiene intercambio ni paginacin, es un esquema ms simple
y tiene la posibilidad de ejecutar solo un programa a la vez, compartiendo la memoria
entre el programa y el sistema operativo, en la siguiente imagen plantea 3 variantes sobre
el estado de memoria.


Imagen 4. Tres variantes de organizacin de la memoria entre un programa y el sistema operativo.
(Tanenbaum, 2003: 310)

Estas variantes de la imagen anterior nos muestra, Imagen 4(a) Indica que el sistema
operativo puede estar alojado dentro de la memoria de acceso aleatorio RAM, Imagen
4(b) Indica que el sistema operativo puede estar alojado en la parte superior de la
memoria ROM, memoria de solo lectura, en la variante de la imagen 4(c) Los
controladores de los dispositivos se encuentran en la parte superior de la memoria ROM
seguido de los programas de usuario y al final del esquema se encuentra el sistema
operativo por encima de la memoria RAM.

En estos esquemas anteriores, permite ejecutar solo un proceso a la vez, para que sea
copiado a memoria y se ejecute. Al finalizar el proceso en el sistema operativo deber
mostrar un indicativo que muestre que est a la espera de un nuevo comando, asi
entonces el sistema operativo recibe este nuevo comando para cargar el nuevo programa
en memoria sobreescribiendo el anterior.

Existen diferentes tcnicas para la administracin de la memoria, las cuales se clasifican
como:
Multiprogramacin con particiones fijas
Multiprogramacin con particiones variables
Segmentacin
Paginacin
Administracin de memoria con mapas de bits
Administracin de memoria con listas enlazadas

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 28
Estas tcnicas de administracin de memoria, por la capacidad de procesamiento obliga
muchas veces a modificar la arquitectura computador para obtener el rendimiento
deseado a partir del nuevo hardware.

1.2.2. Jerarqua de la memoria

La jerarqua de memoria sirve para organizar de forma incremental de pirmide o niveles,
el principal funcin de este mtodo es conseguir el rendimiento aumentar la velocidad al
costo de una memoria simple.

Los niveles que comnmente conforman la jerarqua de la memoria son:
Nivel 0 de Registros
Nivel 1 de memoria Cache
Nivel 2 memoria principal
Nivel 3 De Disco duro
Nivel 4 virtual

As pues lo que se busca con la jerarqua de la memoria es establecer una determinante
para la administracin de la memoria.


1.2.3. Multiprogramacin con particiones fijas y variables

Existe otro esquema para la administracin de la memoria que permite la ejecucin de
mltiples procesos en un mismo tiempo, este esquema es conocido por
multiprogramacin con particiones fijas. En los sistemas con tiempo compartido para los
procesos resulta que este si se encuentra bloqueado en espera de que finalice una E/S,
otro proceso podr utilizar la CPU. As se incrementa el rendimiento tanto de la memoria
como del CPU, una posibilidad de lograr la multiprogramacin consiste en dividir la
memoria en n particiones ya sea homognea o desigual. A la llegada de algn proceso,
se podr colocar en la cola de entrada de la particin pequea que puede contener, ya
que las particiones estn fijas, pero si por algn motivo el proceso no utilizo alguna de las
particiones esta ser desperdiciada. En la siguiente imagen, se ilustra un esquema con
diferentes tipos de entradas a particiones fijas.



Programacin de sistemas operativos
Programa desarrollado


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

Imagen 5. Esquema de particiones fijas con mltiples colas de entrada (a), particiones
fijas con cola nica de entrada (b) (Tanenbaum, 2003: 311)

La imagen anterior muestra un esquema de dos tipos distintos de asignacin de procesos
mediante las colas de entrada, se puede observar que al utilizar particiones fijas con colas
distintas (a) se ve claro que el rendimiento del sistema baja pues al encontrar una
particin demasiado grande y vaca y una particin pequea y llena esto es una gran
desventaja. Una alternativa para una posible solucin a esta desventaja puede ser lo que
se ilustra en la imagen anterior (b) donde se puede ver que se mantiene una sola cola de
asignacin para que cada que se libera una particin, se seleccionar el proceso ubicado
en la particin siguiente inmediata para ser ejecutada.

Dentro del desarrollo para los sistemas de tiempo compartido, la situacin se torna de
forma distinta para la multiprogramacin de particiones variables. La desventaja de este
mtodo consiste en que en muchas ocasiones no existir la cantidad suficiente de
memoria principal para almacenar todos los procesos que se encuentren activos. Se
podr utilizar la administracin de memoria, dependiendo del hardware disponible.

Existen dos estrategias para este mtodo una se utiliza para buscar y cargar en la
memoria cada proceso en su totalidad par que se pueda ejecutar durante el tiempo que
sea necesario para que despus se pueda colocar de nueva cuenta sobre el disco, a esta
estrategia comnmente se le conoce como llamadas de intercambio. La segunda
estrategia conocida como me memoria virtual, permite ejecutar a los programas a pesar
de que estos se encuentren parcialmente en memoria principal.

El funcionamiento de un sistema con particiones variables los primeros o el primer
proceso se cargan en la memoria creando la particin, para dar seguimiento a los dems
procesos creando las particiones en la memoria de acuerdo a la necesidad del proceso y
liberndola al trmino de cada proceso cargado, en la siguiente imagen se puede
observar un claro ejemplo del uso de particiones variables, donde se carga un solo
proceso y crea la particin que utilizar (a), posteriormente se pueden cargar dems
procesos asignando el espacio dentro de la memoria (b), seguido se muestra el acceso
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 30
de un tercer proceso utilizando el espacio asignado para este (c), Luego sale el proceso
A, dejando el espacio libre para dejar el paso al proceso D (d,e), Posteriormente termina
B y entra E (f,g).


Imagen 6. Asignacin de memoria mediante la multiprogramacin de particiones
variables. (Tanenbaum, 2003: 314)

Para la asignacin de memoria que se muestra en la imagen anterior, se puede observar
que mientras los procesos entran en memoria y salen el espacio se libera para dejarlo
listo para el siguiente proceso que se mande llamar. El tamao de estas particiones
puede variar, tiene la flexibilidad de no estar limitado a la cantidad de particiones fijas
establecidas para la asignacin de procesos.

1.2.4. Memoria real


La memoria real o principal, es donde se guardan los datos y se ejecutan los programas,
por lo general esta memoria es voltil. La CPU extrae instrucciones de la memoria de
acuerdo con el valor del contador de programa, durante el ciclo de ejecucin de algn
proceso debera extraer la instruccin de la memoria la cual se decodifica y puede hacer
que se procesen una serie de operaciones. El resultado de haber ejecutado esas
operaciones, se almacena de nuevo en la memoria.

Comnmente el costo de esta memoria es de mayo costo que la memoria secundaria,
pero la gran diferencia estn en que la memoria real es de rpido acceso a la informacin
contenida, la memoria cache es la nica que podra llegar a ser mucho ms rpida que la
principal pero su costo tambin es an mayor que las memorias real y secundaria.

La organizacin y administracin de la memoria real de un sistema ha sido y es uno de los
factores ms importantes en el diseo de los sistemas operativos. Muy a menudo los
trminos memoria y almacenamiento se consideran equivalentes, los programas y datos
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 31
deben estar en el almacenamiento principal para poderlos ejecutar y referenciarlos
directamente.

Se considera almacenamiento secundario o auxiliar al que es soportado por lo general en
discos, la parte del sistema operativo que administra la memoria se llama Administrador
de la memoria. Lleva un registro de las partes de memoria que se estn utilizando y de
aquellas que no, asigna espacio en memoria a los procesos cuando estos la necesitan y
libera espacio de memoria asignada a procesos que han terminado.

En lo que respecta a la reasignacin de direcciones, el contenido del registro frontera
indicar el punto a partir del cual puede cargarse el programa del usuario. Para ello ser
necesario reasignar las direcciones del programa en funcin de la frontera, existiendo dos
formas de hacerlo, una esttica y otra dinmica.

La asignacin esttica se realiza durante la compilacin o bien durante la carga del
programa en memoria. Esto implica que cualquier variacin del tamao del sistema
operativo exigir una nueva compilacin o carga del programa. Es una tcnica fcil de
llevar a cabo pero demasiado rgida. La alternativa es asignar las direcciones reales
dinmicamente durante la ejecucin. Un dispositivo hardware especial interceptar cada
direccin lgica generada por el programa y le sumar el contenido del registro frontera.

El resultado ser la direccin real correspondiente como se puede observar en la figura 8.
Con esta tcnica el usuario no podr manejar direcciones reales. Su programa utilizar
direcciones relativas que podrn variar de 0 al mximo permitido por el sistema operativo.
Este ser su espacio lgico de direcciones.


Figura 8. Reasignacin dinmica (Morera y Prez, 2002: 262)
Programacin de sistemas operativos
Programa desarrollado


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

Posteriormente, el sistema con la ayuda del hardware establecer la correspondencia con
el espacio fsico de direcciones. El cual estar limitado por la direccin frontera y el
tamao de la memoria real. Esta separacin entre la visin del usuario (espacio lgico), y
la memoria real (espacio fsico), permite gestionar sta con mayor eficacia.


1.2.5. Memoria virtual

La memoria virtual tiende a simplificar y facilitar la tarea de programacin, pues con esta
alternativa de memoria ya no limita a la cantidad de memoria fsica disponible. La
memoria virtual incluye la separacin de memoria lgica y fsica, esta divisin permite
proporcionar a los programadores una memoria virtual extremadamente grande, cuando
solo se tiene disponible una memoria fsica de menor tamao.

La memoria virtual contiene espacios de direcciones virtuales de un proceso que hace
referencia a la forma lgica de almacenar un proceso en la memoria, las ventajas de la
memoria virtual son considerables e importantes para la asignacin de procesos.

La memoria virtual tiene la posibilidad de poder ser utilizada en un sistema de
multiprogramacin, manteniendo segmentos de muchos programas dentro. En lo que un
programa est esperando que se extraiga a memoria una de sus partes esta a la espera
de E/S y mientras no puede ejecutarse, por lo que podr otorgarse la CPU a otro proceso,
lo mismo que en cualquier otro sistema de multiprogramacin.
Mientras el sistema realizaba el trabajo real de intercambiar los recubrimientos, el
programador tena que encargarse de dividir en trozos apropiados el programa. La tarea
de dividir programas grandes en pequeos trozos modulares era laboriosa y tediosa.

La idea bsica de la memoria virtual es que el tamao combinado del programa, sus datos
y su pila pueden exceder la cantidad de memoria fsica disponible. El sistema operativo
mantiene en la memoria principal aquellas partes del programa que se estn usando en
cada momento, manteniendo el resto de las partes del programa en el disco. Por ejemplo,
un programa de 16 MB puede ejecutarse sobre una mquina de 4MB eligiendo
cuidadosamente que 4 MB se tendrn en la memoria en cada instante, e intercambiando
partes del programa entre el disco y la memoria, segn sea necesario.

La memoria virtual puede funcionar tambin en un sistema multiprogramado, con diversos
fragmentos de muchos programas en memoria a la vez. Mientras un programa espera a
que se traiga del disco una parte de s mismo, est esperando por una E/S y no puede
ejecutarse, por lo que debe asignarse la CPU a otro proceso de la misma forma que en
cualquier otro sistema multiprogramado.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 33
La siguiente imagen muestra el cumulo de memoria, pues es utilizada para la asignacin
dinmica de memoria. Este mtodo permite que la pila crezca hacia abajo en la memoria
con las sucesivas llamadas a funcin.


Figura 9. Espacios de las direcciones en memoria virtual (Silberschatz, 2006: 281)

El espacio vaco entre el cmulo y la pila forma parte de la memoria virtual, los espacios
de estas direcciones incluyen espacios de direcciones dispersos, este tipo de direcciones
tienen a ventaja pues se puede utilizar un espacio disperso, pues estos huecos pueden
llenarse a medida que crecen los segmentos de pila.
Aparte de que es separada la memoria lgica y fsica, la memoria virtual tambin, permote
que dos o ms procesos compartan los archivos y la memoria mediante mecanismos de
comparticin de pginas.

Este tipo de dispersin de espacio tiene una serie de ventajas entre las cuales se puede
clasificar. Las bibliotecas del sistema se pueden compartir con otros procesos, la memoria
virtual facilita a los procesos compartir la memoria fsica y permite que un proceso cree
una regin de memoria que los pueda compartir con otros procesos, adems de que se
comparten pginas durante la creacin de procesos mediante la llamada al sistema
incrementando la creacin de tareas y ejecucin de procesos.

Actividad 3. Mapa conceptual del manejo de la memoria

Para la realizacin de esta actividad retomars lo que has aprendido hasta este momento
respecto a la memoria, su funcin y cmo es utilizada en un sistema operativo. Realiza
los siguiente:

1. Elabora un mapa conceptual que muestre el funcionamiento y manejo de la
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 34
memoria en un sistema operativo. Incluye elementos de su jerarqua, los tipos de
memoria; as como del funcionamiento de particiones fijas y variables.

2. Guarda la actividad con el nombre PSO_U1_A3_XXYZ en donde XX representa
tu apellido(s) y YY tu nombre(s)

3. Enva el archivo a tu Facilitador(a) mediante la herramienta Tareas para recibir
retroalimentacin.



1.3. Entrada / Salida

La administracin de dispositivos de Entrada /Salida, resulta ser un tema muy amplio en el
diseo de los sistemas operativos, se la entrada / salida (E/S), una amplia variedad de
dispositivos y sus variadas dispositivos y sus diversidad de aplicaciones.

Una de las principales funciones de la administracin de dispositivos es el controlar todos
los dispositivos de E/S, el sistema operativo debe enviar comandos a los dispositivos,
atender las interrupciones y gestionar los errores que se generan.

Los dispositivos externos de E/S que interactan con las computadoras pueden
clasificarse en las siguientes categoras:

Dispositivos fsicos para humanos, este tipo de dispositivos son propiamente para
establecer la comunicacin computadora-usuario. Unos de los principales
ejemplos se tiene. Teclado, mouse, pantalla, terminar de lector laser, etc.
Dispositivos para mquina, los dispositivos para mquina son los que se utilizan
para comunicar las partes electrnicas entre computadora-sistema, como discos,
tarjetas de video, controladores.
Dispositivos de caracteres, Estos dispositivos proporcionan o acepta un flujo de
caracteres, sin tener en cuenta ninguna estructura de bloque. Comnmente este
tipo de dispositivos son los que se conocen como manejadores de los dispositivos
como son los Driver o controladores.

Cada dispositivo tiene sus propias caractersticas de acuerdo a su clasificacin de
pertenencia, cada una de estas diferencias bsicamente se enfoca en la velocidad de los
datos, por lo que es muy posible una gran diferencia de varios datos de transmisin. Las
aplicaciones son tambin una de las diferencias de los dispositivos, pues por lo general
cada tipo de dispositivo necesita su propio software que ser de utilidad para el sistema
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 35
operativo poder gestionar el dispositivo, la complejidad del control es necesario poder
contar con la interfaz de control al dispositivo.


1.3.1. Principios de hardware y software de I / O

Es muy comn el tener diferentes perspectivas respecto al hardware y software de E/S,
dependiendo el tipo de manejo que se realice de forma directa con los dispositivos ser el
punto de vista que se tenga referente hacia este trmino, resulta que un programador no
tendr el mismo punto de vista que un ingeniero en electrnica de dispositivos de E/S.
Uno lo ve como la parte fsica tangible que puede interactuar con la maquina, y un
programador es quien disea esa parte intangible pero es la relacin tarjeta maquina.

Los dispositivos de E/S se pueden dividir en dos grandes grupos:

Dispositivos por bloques. Es el encargado de de almacenar la informacin en
bloques de tamao fijo, cada uno de ellos deber contar con su propia direccin.
Dispositivos por caracteres. Este tipo de dispositivo es el que se encarga de
proveer y aceptar una serie de caracteres que son convertidos en corriente
elctrica, este tipo de dispositivos no considera la estructura de bloque que
contempla el anterior tipo de dispositivos, tampoco tiene la posibilidad de ser
direccionable ni puede realizar la bsqueda.

Existen varios dispositivos que no se contemplan este tipo de clasificacin pues por lo
general no se pueden ajustar a esta clasificacin. Un ejemplo claro de ello, son los relojes
este tipo de dispositivos no estn considerados como dispositivos por bloques ni tampoco
como dispositivos por caracteres, su funcin principal de los relojes consiste en
suministrar interrupciones a intervalos que ya estn definidos.

En lo que respecta al software el principal objetivo de este dispositivo de E/S, es
prcticamente sencillo de plantear, pues se debe organizar el software mediante capas
que puedan ser utilizadas para establecer la prioridad del hardware, para que las
superiores sean las encargadas de establecer la interfaz con el sistema lo cual ayuda a
comunicar de forma ms gil el dispositivo sistema.

En el mbito de software, existe un concepto clave para poder disear el software de E/S,
llamado independencia del dispositivo. El cual tiene la utilidad de que los programas
puedan interactuar entre dispositivo hardware y dispositivo software, para que esto pueda
funcionar el sistema operativo deber tener la facilidad de resolver los problemas
causados por las diferencias de dispositivos.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 36
Los errores que se manejan dentro del software de E/S, se deben manejar lo ms cercano
posible del hardware. Cuando el controlador descubre un error de lectura deber tratar de
corregirlo, de lo contrario el sistema operativo es quien podra tratar de corregirlo. Muchas
ocasiones los errores son transitorios al momento de la lectura de E/S, y estos por lo
general se solucionan reiniciando el proceso de lectura de cada dispositivo.

Uno de los aspectos claves es cuando ocurre la transferencia, ya puede ser por bloqueo o
controladas por interrupciones. El dispositivo de E/S fsico es por lo general asncrona, tal
como la CPU que inicia la transferencia y se libera mientras esta a la espera de una
nueva interrupcin. Los programas por lo general resultan ser sncronas, despus del
comando de lectura, el programa se detiene hasta la disponibilidad de datos.

Los dispositivos de uso exclusivo y no exclusivo, son utilizados por lo general al mismo
tiempo ya que no existen conflictos de mantener abiertos varios archivos en el disco al
mismo tiempo. Las unidades de cinta es un ejemplo de dispositivos exclusivo ya que solo
un proceso de lectura puede estar activo a la vez.


1.3.2. Dispositivos y manejadores de dispositivos

Los dispositivos juegan un papel muy importante en el desarrollo de sistemas operativos
pues sirven para introducir datos, estos datos se leern por los dispositivos de entrada y
se almacenan en la memoria principal. Los dispositivos de E/S se pueden agrupar en tres
categoras:

Dispositivos legibles para los usuarios. Son aquellos dispositivos que permiten
la comunicacin entre los usuarios y la computadora. Dentro de este grupo se
incluyen todos los dispositivos que sirven para proporcionar interfaz con el usuario,
tanto para entrada (ratn, teclado, monitor TouchScreen, scanner, lectores de
huella, etc.) como para salida (impresoras, pantalla, etc.).
Dispositivos de almacenamiento. Son utilizados para abastecer el
almacenamiento no voltil de datos y memoria. Su principal funcin consiste en
proveer los datos y almacenar en los programas que se ejecutan en la CPU.
Dispositivos de comunicaciones. Permiten conectar a la computadora con otras
computadoras a travs de una red. Los dos tipos de dispositivos ms importantes
de esta clase son los mdem, para comunicacin va red telefnica, y las tarjetas
de interfaz a la red, para conectar la computadora a una red de rea local.

Los dispositivos de acuerdo a su funcin se pueden clasificar de la siguiente manera:

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 37
Dispositivos de E/S programada. Mientras el procesador se encuentra en
ejecucin de E/S, emite la seal para que el proceso este a la espera del trmino
de la operacin para poder continuar con su ejecucin.
Dispositivos de E/S por interrupciones. El procesador es el encargado de emitir la
orden de E/S para los procesos, estos se ejecutan las instrucciones y son
interrumpidos al finalizar su trabajo.
Acceso directo a memoria (DMA). Este modulo puede controlar el intercambio de
datos entre la memoria principal y un modulo de E/S.

La mayora de las unidades de E/S constan normalmente de un componente mecnico y
un componente electrnico. En la mayora de los casos es posible separar las dos partes
y tener un diseo ms modular y general. El componente electrnico se denomina
controlador del dispositivo o manejador. En una computadora el componente electrnico
llega a ser una tarjeta de circuito impreso el cual puede ajustarse en alguna ranura de
expansin, donde el componente mecnico es el dispositivo en s, la organizacin de los
dispositivos se puede ejemplificar en la figura 13.



Imagen 7. Algunos de los componentes de un ordenador personal sencillo. (Tanenbaum,
2003: 272)

El manejador del dispositivo se provee usualmente de un conector en el cual puede
conectarse un cable que va al dispositivo. Muchas controladoras pueden manejar dos,
cuatro o incluso ocho dispositivos idnticos. Si la interfaz entre la controladora y el
dispositivo es un interfaz estndar, ya sea un estndar ANSI, IEEE o ISO oficial, o un
estndar de facto, eso permite que cualquier fabricante de hardware pueda manufacturar
controladores o dispositivos que se ajusten a esa interfaz. Por ejemplo, muchas
compaas de hardware fabrican unidades de disco compatibles con la interfaz IDE o
SCSI.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 38
La interfaz entre el controlador y el dispositivo es a menudo una interfaz de muy bajo
nivel. Por ejemplo, un disco puede formatearse con 256 sectores de 512 bytes por pista.
Sin embargo, lo que en realidad sale de la unidad es un flujo de bits en serie que
comienza por un prembulo, seguido de los 4096 bits de un sector y terminando con una
suma de verificacin (checksum), tambin llamada un cdigo de correccin de errores
(ECC; Error-Correcting Code). El prembulo se escribe cuando se formatea el disco, y
contiene el nmero de cilindro y de sector, el tamao del sector y datos similares, as
como informacin de sincronizacin. La tarea del controlador consiste en convertir ese
flujo de bits en serie en un bloque de bytes y realizar cualquier correccin de errores que
sea necesaria. Normalmente primero se ensambla el bloque de bytes, bit a bit, en un
bfer que est dentro del controlador. Una vez comprobado su checksum y declarado el
bloque libre de errores, puede procederse a copiarlo en la memoria principal.

A un nivel igual de bajo, el controlador de un monitor (CRT Tubo de rayos catdicos),
tambin opera como un dispositivo de bits en serie: lee de la memoria bytes que
contienen los caracteres a visualizar y genera las seales que sirven para modular el haz
de electrones del CRT para producir la escritura en la pantalla. El controlador genera
tambin las seales que hacen que el haz del CRT efecte un retrasado horizontal al
terminar cada barrido de una lnea, as como las seales que realizan el retrasado vertical
una vez que se ha barrido toda la pantalla. Si no fuera por el controlador del CRT, el
programador del sistema operativo tendra que programar de forma explcita el barrido
analgico del tubo de imagen del monitor. Con el controlador, el sistema operativo
inicializa el controlador con unos pocos parmetros, tales como el nmero de caracteres o
pxeles por lnea y el nmero de lneas de la pantalla, y deja que el controlador sea
realmente quien se encargue de dirigir el haz del CRT.

Existe una gran variedad de controladores y tipos de perifricos, por lo cual es frecuente
encontrar ms de un controlador posible para el mismo dispositivo, cada uno ofreciendo
un nivel distinto de funcionalidades.

Los manejadores de dispositivos son muy variados, casi tanto como los dispositivos de
E/S. Muchos de ellos, como los de disco, pueden controlar mltiples dispositivos


1.3.3. Mecanismos y funciones de manejadores de dispositivos

Las funciones de manejadores de los dispositivos de entrada y salida consisten en un
componente mecnico y otro elctrico, en la mayora de las ocasiones se pueden separa
las dos partes con el objetivo de contar con el diseo modular y general. La parte elctrica
se nombra adaptador de dispositivo por lo general al hablar de la parte elctrica se puede
apreciar una tarjeta de circuitos impresos que se puede insertar en una ranura de la
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 39
tarjeta de la computadora, este componente tambin se puede considerar como
componente mecnico.

La mayora de los controladores pueden manejar uno o varios dispositivos idnticos, Si la
interfaz es de mismo tipo estndar con la controladora se podrn ajustar para su
funcionamiento. Muchas de las ocasiones en los procesos de E/S de dispositivos el
sistema operativo siempre interactua con el controlador y no con el dispositivo. La
siguiente imagen muestra la forma de cmo se interconectan los dispositivos.


Imagen 8. Modelo bsico, para la implementacin de dispositivos, entre la CPU y los
controladores de dispositivos de E/S. (Tanenbaum, 2003: 155)

La comunicacin entre la CPU y los controladores utiliza un bus de comunicacin simple,
pero en equipos de macro computadoras por lo general utilizan un modelo muy distinto
como posibles bus mltiples de datos. La actividad del controlador est en convertir un
flujo de bits a un bloque de bytes y realiza las acciones de correccin de errores
necesarias, por lo general, se va armando por bloques de bytes en un buffer dentro del
controlador.

El controlador tiene algunos registros que se pueden utilizar para comunicar con la CPU,
en algunas computadoras los registros forman parte del espacio de direcciones de la
memoria bsica, lo que se conoce como mapeo de memoria de E/S.

Los controladores de dispositivos, el cdigo dependiente se aloja dentro de estos, cada
controlador administra un tipo de dispositivo o clase de dispositivos similares. En trminos
generales, el controlador de dispositivos de software acepta peticiones del software
independiente al dispositivo para que puedan ser atendidas, las peticiones ms comunes
es el leer un bloque n Si algn controlador est disponible o libre al llegar una peticin
inicia atendindola, pero si se encontrara ocupado en otra peticin a la llegada de una
nueva esta la colocar en la cola de peticiones y lo dejar como pendiente hasta que sea
atendida.

Lo primero que se realiza para atender la peticin de E/S, se debe traducir de trminos
abstractos a concretos. Esto deber calcular en que parte del modulo el proceso se
encuentra ubicado, para decidir la prioridad de operaciones del hardware. Al decidir la
prioridad se comienza a generar la escritura en los registros de dispositivos de este.
Programacin de sistemas operativos
Programa desarrollado


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

La CPU necesitar direccionar los controladores de dispositivos para intercambiar datos
con ellos, puede solicitar datos del controlador de E/S byte a byte, pero hacindolo as
estara desperdicindose mucho tiempo de CPU. Por ese motivo normalmente se utiliza
un esquema diferente, denominado acceso directo a memoria (DMA; Direct Memory
Access). El sistema operativo slo puede utilizar DMA si el hardware dispone de un
controlador de DMA, por lo que la mayora de los sistemas cuentan con l. A veces ese
controlador est integrado en los controladores de disco o en otros controladores, pero tal
diseo significa tener un controlador de DMA por cada dispositivo. Ms comnmente, se
tiene un nico controlador de DMA (por ejemplo en la placa madre) para regular las
transferencias con mltiples dispositivos, a menudo de forma concurrente.

Cualquier ubicacin fsica, el controlador de DMA tiene acceso al bus del sistema
independientemente de la CPU, como se muestra en la siguiente imagen. El controlador
contiene varios registros en los que la CPU puede leer y escribir. stos incluyen un
registro de direccin de memoria, un registro contador de bytes y uno o ms registros de
control. Los registros de control especifican el puerto de E/S que se utilizar, la direccin
de la transferencia (leyendo del dispositivo de E/S o escribiendo en el dispositivo de E/S),
la unidad de transferencia (un byte a la vez o una palabra a la vez) y el nmero de bytes
que se transferirn en cada rfaga. (Tanenbaum, 2003: 276)


Imagen 9. Funcionamiento de una transferencia con DMA. (Tanenbaum, 2003: 276)

El controlador es el encargado de leer el bloque de cada sector de la unidad, hasta que
est todo el bloque en el bfer interno del controlador. Posteriormente se calcular
checksum para validar que no se producirn errores de lectura que pudieran provocar
interrupciones. Al ejecutar el sistema operativo podr leer ya el bloque de disco del bfer
de la controladora.

Programacin de sistemas operativos
Programa desarrollado


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

1.3.4. Estructura de datos en el manejo de dispositivos


Dentro de una computadora tpica, la estructura de las interrupciones es como se muestra
en la figura 15, a nivel de hardware, las interrupciones funcionan como se describe a
continuacin: una vez que el dispositivo termina el proceso de informacin que se le
orden, provoca una interrupcin (considerando que el sistema operativo es quien habilita
las interrupciones). Esto lo hace aplicando una seal a una lnea del bus que se le asign.
El chip controlador de interrupciones situado en la placa madre detecta esa seal y decide
lo que se va hacer a continuacin.


Imagen 10. Estructura bsica para la representacin de la estructura de manejo de
dispositivos. (Tanenbaum, 2003: 286)

La imagen muestra la forma en la que se produce una interrupcin. En la realidad las
conexiones entre los dispositivos y el controlador de interrupciones utilizan lneas del bus
en vez de cables dedicados.

Si no hay otras interrupciones pendientes, el controlador de interrupciones procesa la
interrupcin inmediatamente. Si est atendindose alguna otra interrupcin en ese
momento, o si otro dispositivo ha realizado una peticin simultnea sobre una lnea de
peticin de interrupcin de mayor prioridad, el primer dispositivo ser ignorado
momentneamente. En este caso, el dispositivo seguir aplicando la seal de interrupcin
al bus hasta que reciba de la CPU el servicio deseado. Para gestionar la interrupcin, el
controlador vuelca un nmero en las lneas de direccin del bus especificando qu
dispositivo requiere atencin y aplica una seal que interrumpe a la CPU.

La estructura de datos en el manejo de dispositivos se maneja la siguiente clasificacin:

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 42
Estructura simple: Es la que se basa en el acceso a operaciones bsicas de
entrada/salida para escribir directamente en pantalla o disco, lo que se le nombra como
libre acceso, otra estructura simple es la separacin del kernel y los programas de
sistemas.

Estructura por capas: Esta estructura se basa en nuevas versiones tales como unix
donde se disearon para hardware ms avanzado, para dar mayor soporte al mismo
hardware. La ventaja de la estructura por capas es que cada capa cumple con una serie
de funciones y servicios que brinda a las otras capas, esto permite una mejor
organizacin del sistema operativo y una depuracin ms fcil de este.

Existen estructuras que se generan en memoria durante la ejecucin de los procesos
relacionadas con el uso que estos hacen de los archivos. El sistema posee una tabla
general de archivos abiertos, donde se procesa la informacin sobre los archivos activos e
ndices de referencia al archivo.

La llamada al sistema toma el nombre del archivo busca en el directorio, copia la entrada
del directorio en la tabla de archivos abiertos. Todo esto si estas acciones son permitidas
de acuerdo a los modos de proteccin del archivo.

En los sistemas multiusuario, un archivo puede ser abierto por ms de dos usuarios
simultneamente, cada uno con su puntero. Existen dos tipos de tablas, la de proceso,
que contiene informacin sobre los archivos abiertos por el proceso y contiene un
apuntador a la segunda tabla, la de los archivos abiertos en todo el sistema, esta segunda
tabla tiene informacin independiente del proceso que lo ejecute como ubicacin del
archivo en el disco.

El sistema operativo partiendo de su estructura por capas, est organizado en cuatro
capas, las cuales tienen su funcin propiamente establecida y una interfaz con la capa
adyacente. La organizacin se estructura en las siguientes capas:
Manejador de interrupcin. Activa al manejador al terminar la E/S.
Manejador de dispositivos o drivers. Inicia los registros del dispositivo,
comprobando el estado.
Software de E/S independiente de los dispositivos. Este software est formado por
la parte de alto nivel de los manejadores, el gestor de cache, el gestor de bloques
y el servidor de archivos.
Interfaz del sistema operativo. Llamadas al sistema que usan las aplicaciones de
usuario.

Los manejadores de interrupcin, administran las interrupciones que generan los
controladores de dispositivos una vez que stos estn listos para la transferencia de
datos, o bien han ledo o escrito los datos de memoria principal en caso de acceso directo
a memoria. Para administrar la interrupcin se ejecuta el manejador de interrupcin que
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 43
tendr como efecto es el de salvar los registros, comunicar el evento al manejador del
dispositivo y restaurar la ejecucin de un proceso.

Cuando una interrupcin ocurre muy frecuentemente, caso del reloj, o cuando la cantidad
de informacin a transferir es muy pequea, caso del teclado, sera muy costoso
comunicar siempre el evento al manejador de dispositivo asociado. En estos casos, el
propio manejador de interrupcin registra la ocurrencia del evento, bien mediante el
incremento de una variable global para el reloj o la acumulacin de caracteres en un
buffer del teclado.

Los manejadores de dispositivos, tienen un manejador asociado en el sistema operativo,
dicho manejador incluye un cdigo independiente del dispositivo que otorga al nivel
superior del sistema operativo una interfaz de alto nivel y el cdigo dependiente del
dispositivo necesario para programar el controlador del dispositivo a travs de sus
registros y datos.

La principal actividad de un manejador de dispositivo es aceptar las peticiones en formato
abstracto, de la parte del cdigo de E/S independiente del dispositivo, traducir dichas
peticiones a trminos que entienda el controlador, enviar al mismo las rdenes adecuadas
en la secuencia correcta y esperar a que se cumplan.


1.3.5. Operaciones de E / S

En la mayora de las aplicaciones, el archivo es el elemento central. Cualquiera que sea la
finalidad de la aplicacin, implicar la generacin y uso de informacin.

Normalmente cada sistema dispone de programas de utilidad que se ejecutan como
aplicaciones privilegiadas. Sin embargo, un sistema de gestin de archivos necesita como
mnimo algunos servicios especiales del sistema operativo.

Para la E/S programada como la basada en interrupciones, la CPU debe encargarse de
realizar las operaciones de lectura y escritura sobre ficheros.
La lectura o bien entrada de datos, permite recibir valores desde los dispositivos o
archivos.
La escritura, realiza la operacin de escritura de resultados en dispositivos de
salida o archivos.

Ejemplificando sobre un proceso de usuario que desea leer bloques de datos de una
cinta, uno cada vez, siendo cada bloque de 100 bytes. Los datos van a ser ledos en una
zona de datos del proceso de usuario situada en las direcciones virtuales 1000 a 1009. La
forma simple de realizar sera emitir una orden de E/S a la unidad de cinta y esperar a que
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 44
los datos estn disponibles. La espera podra ser activa o de manera ms prctica,
suspender al proceso en espera de una interrupcin.

Existen dos problemas con este enfoque:
El programa se queda colgado esperando a que la operacin de E/S termine.
Dificulta las decisiones de intercambio del sistema operativo.

Las ubicaciones virtuales 1000 a 1009 deben permanecer en memoria principal durante el
curso de la transferencia del bloque, de lo contrario parte de los datos se perdern.
Si un proceso emite una orden de E/S, queda suspendido a la espera del resultado, se le
expulsa antes de comenzar la operacin y se bloquea esperando a que la operacin
termine. Mientras tanto, la operacin de E/S queda bloqueada esperando a que el
proceso vuelva a memoria, para evitar este interbloqueo, la memoria de usuario implica
en la operacin de E/S debe quedar fija en la memoria principal, inmediatamente despus
de emitir la peticin de E/S, incluso aunque la operacin de E/S se encole y pueda no
ejecutarse por algn tiempo.

Acceso directo a memoria (DMA). Varios controladores, los dispositivos por bloques
manejan el acceso directo a memoria o DMS. Primero el controlador lee el bloque de la
unidad en serie, bit por bit, hasta que todo el bloque est en el buffer interno del
controlador. A continuacin, el controlador calcula la suma de verificacin para comprobar
que no ocurrieron errores de lectura y luego causa una interrupcin. Cuando el sistema
operativo comienza a ejecutarse, puede leer el bloque del disco del buffer del controlador
byte por byte o palabra por palabra, ejecutando un ciclo, leyndose en cada iteracin un
byte o una palabra de un registro del controlador y almacenndose en la memoria.

La finalidad del DMA es para liberar a la CPU de un ciclo programado donde se leen los
bytes del controlador uno por uno pues eso tiene prdida de tiempo en la CPU, cuando se
utiliza DMA la CPU proporciona al controlador dos elementos de informacin adems de
la direccin en disco del bloque: la direccin de memoria donde debe colocarse el bloque
y el nmero de bytes que deben transferirse, como se muestra en la figura 17.


Figura 17. Una transferencia DMA es realizada totalmente por el controlador
(Tanenbaum, 2003: 158)

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 45
El procedimiento a seguir en una operacin de E/S con DMA son:
Programacin de la operacin de E/S. Se indica al controlador la operacin, los
datos a transferir y la direccin de memoria sobre la que se efectuar la operacin.
El controlador contesta aceptando la peticin de E/S.
El controlador le ordena al dispositivo que lea (para operacin de lectura) una
cierta cantidad de datos desde una posicin determinada del dispositivo a su
memoria interna.
Cuando los datos estn listos, el controlador los copia a la posicin de memoria
que tiene en sus registros, incrementa dicha posicin de memoria y decrementa el
contador de datos pendientes de transferir.
Los pasos 3 y 4 se repiten hasta que no quedan ms datos por leer.
Cuando el registro de contador est a cero, el controlador interrumpe a la UCP
para in dicar que la operacin de DMA ha terminado.

Inicio y control de los programas de canal. Estos programas residen en la memoria
principal del CPU y se ejecutan en el canal. La CPU puede utilizar para estos fines, son
las siguientes:

START I/O Inicia una operacin de E/S. El campo de direccin de la instruccin se
emplea para especificar el canal y el dispositivo de E/S que participa en la
operacin.
HALT I/O Finaliza la operacin del canal.
TEST CHANNEL Prueba el estado del canal.
TEST I/O Prueba el estado del canal, el subcanal y el dispositivo de E/S.

Una operacin de E/S se inicia con la instruccin START I/O. La ubicacin del programa
de canal en la memoria principal viene definida en la palabra de direccin de canal (CAW:
Channel Address Word).


Actividad 4. Dispositivos de Entrada y Salida

El propsito de esta actividad es distinguir los mecanismos y funciones de los
manejadores de dispositivos, identificando el hardware de E/S. Para ello, realiza lo
siguiente:

1. Investiga acerca de los dispositivos de E/S, as como la forma en que interactan
con el sistema, para posteriormente clasificarlos e identificar sus manejadores.

2. Guarda la actividad con el nombre PSO_U1_A4_XXYZ. En donde XX es tu
apellido (s) y YY tu nombre (s).
Programacin de sistemas operativos
Programa desarrollado


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

3. Enva el archivo a tu Facilitador(a) mediante la seccin Tareas para recibir
retroalimentacin.



Autoevaluacin

Para reforzar los conocimientos relacionados con los temas que se abordaron en esta
primera unidad del curso, es necesario que resuelvas el ejercicio de autoevaluacin. Para
ello, ingresa al aula.


Evidencia de aprendizaje. Administracin del procesador,
memoria y los dispositivos de entrada y salida

Durante la realizacin de esta actividad retomars lo estudiado en esta primera unidad, y
trabajars con los conceptos bsicos del cmo interacta el Sistema Operativo con los
dispositivos de E/S y la administracin del procesador de memoria. Para ello, realiza lo
siguiente:

1. Investiga acerca de los temas abordados durante la unidad.

2. Elabora un cuadro sinptico en el que integres los conceptos bsicos del cmo
interacta el Sistema Operativo con los dispositivos de E/S y la administracin del
procesador de memoria.

3. Consulta la Escala de Evaluacin que se encuentra en la seccin Material de Apoyo
para conocer los criterios de evaluacin.

4. Guarda tu archivo con el nombre PSO_U1_EA_XXYY. En donde XX es tu apellido(s) y
YY tu nombre(s)

5. Enva el archivo a tu Facilitador(a) mediante la seccin portafolio de evidencias para
recibir retroalimentacin.
* Recuerda que de ser necesario y en base a los comentarios hechos por parte de tu
Facilitador(a), podrs enviar una segunda versin de tu actividad.

No olvides consultar la Escala de evaluacin que encontrars en la pestaa Material de
apoyo para saber los puntos que tienes que considerar en el desarrollo de tu actividad
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 47
final. Si tienes dudas, consulta a tu Facilitador(a).

Como parte de cada unidad, es importante que ingreses al foro Preguntas de
Autorreflexin y consultes las preguntas que tu Facilitador(a) formule, a partir de ellas,
debes elaborar tu Autorreflexin y enviarla mediante la herramienta Autorreflexiones. No
olvides que tambin se toman en cuenta para la calificacin final.


Cierre de la unidad

Has concluido la primera unidad del curso. A lo largo de sta se recordaron conceptos
bsicos sobre hilos y que es el multiprocesamiento y el paralelismo, tambin conociste
como el sistema operativo maneja la memoria cul es su jerarqua, sus particiones as
como el manejo que hace el Sistema Operativo de la memoria real y virtual, identificaste
cmo los dispositivos de entrada y salida son manejados por el sistema operativo sus
mecanismos y estructura; as como las operaciones que realizan. Siendo este ltimo tema
realzado por una investigacin de los principales dispositivos de Entrada y Salida E/S.

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 preparado(a) para seguir con la unidad dos, en donde se abordar el sistema de
archivos, sus conceptos bsicos y su jerarqua. As como los tipos de archivos: reales
virtuales y componentes; como el sistema operativo funciona fsica y lgicamente sus
operaciones y su implementacin. Todo ello con el fin de obtener el prototipo final al
terminar la tercera y cuarta unidad del curso de Programacin de Sistemas Operativos.


Para saber ms

Si deseas saber ms acerca de cmo el procesador AMD maneja la energa,
virtualizacin, arquitectura, administracin y compatibilidad con diferentes sistemas
operativos, visita la siguiente direccin electrnica:

http://www.amd.com/LA/PRODUCTS/TECHNOLOGIES/Pages/technologies.aspx

Programacin de sistemas operativos
Programa desarrollado


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

Fuentes de consulta

Bibliografa bsica

Martnez, P., Cabello M. y Daz, M. (1997) Sistemas Operativos. Madrid: Daz de
Santos.
Ortiz, H. (2005) Sistemas Operativos Modernos. Colombia: Universidad de
Medelln.
Santiago, C., Garca, R., Quezada, A., Santana, F. y Santos, J. (2007)
Fundamentos de sistemas operativos teoras y ejercicios resueltos. Espaa:
Parainfo S.A. de C.V.
Stallings, W. (2007) Sistemas Operativos. Mxico: Pearson Prentice Hall.
Silberschatz, A. (2006) Fundamentos de sistemas operativos. Espaa: Mcgraw-
Hill.
Tanenbaum, A. (2003) Sistemas Operativos Modernos. Mxico: Pearson Prentice
Hall.

Bibliografa complementaria

Morera, J. y Prez, A. (2002) Conceptos de Sistemas Operativos. Madrid:
Comillas.

Programacin de sistemas operativos
Programa desarrollado


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

Unidad 2. Administrador de Sistemas de Archivos

Presentacin de la unidad

A lo largo de esta unidad aprenders como el sistema operativo maneja el sistemas de
archivos, los tipos de archivos, y cmo son organizados de manera lgica y fsica los
mismos.

El sistema de archivos, como se ver ms adelante, est encargado de la administracin
de la informacin en: acceso, verificacin y manipulacin; logrando con ello ser un mtodo
de almacenamiento y organizacin. Adems de permitir encontrar y acceder ms rpido la
informacin. Un sistema de archivos es un conjunto de tipo de datos abstractos, que son
implementados para el almacenamiento, la organizacin jerrquica, la manipulacin, el
acceso, el direccionamiento y la recuperacin de datos.

Otra parte de suma importancia que se ver en esta unidad, es la diferencia entre archivo
real y virtual.

Un archivo virtual es un archivo de uso temporal que es utilizado por los procesos del
sistema mientras se estn ejecutando dichos procesos. Estos archivos se crean durante
la ejecucin de un sistema y se utilizan para el almacenamiento de informacin,
intercambio y organizacin que ejecuta el sistema.

Por otra parten, un archivo real es un objeto que contiene programas, datos o cualquier
otro elemento; un archivo se muestra de manera real, en la informacin del espacio que
ocupa en un disco duro o sistema de almacenamiento, en otras palabras su tamao es en
bytes.

Para finalizar la unidad se abordarn las operaciones que son permitidas por parte de los
archivos y cmo se implementan.


Propsito

El propsito de los temas de esta unidad es que se conozca cmo el sistema operativo
considera el Administrador de archivos; ya que la administracin del almacenamiento de
la informacin, es necesaria para organizar y determinar lo que ve el usuario; as como la
forma en que lo ve.
Programacin de sistemas operativos
Programa desarrollado


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

De la misma manera es importante aprender a distinguir por qu y para qu el sistema
maneja archivos reales y virtuales, y que operaciones se pueden realizar con los mismos.


Competencia especfica

Identificar el proceso que siguen los archivos para la administracin y buen manejo de los
mismos, con el anlisis lgico que sigue el sistema.


2.1. Sistemas de Archivos

Para los usuarios, el aspecto ms importante de un sistema de archivos es lo que de ste
se ve; es decir, qu constituye un archivo, cmo se nombran y protegen los archivos, qu
operaciones pueden efectuarse con los archivos.

El sistema de software que proporciona a los usuarios y a las aplicaciones servicios
relativos al empleo de archivos debe cumplir con las necesidades de gestin de datos y
con las necesidades de almacenamiento del usuario; se deben cumplir los siguientes
objetivos:
Acreditar que los datos de los archivos sean vlidos.
Optimizar el rendimiento.
Otorgar soporte E/S para la variedad de tipos de dispositivos de almacenamiento.
Minimizar o eliminar la posibilidad de prdida de los datos.
Implantar un conjunto estndar de rutinas de interfaz de E/S.
Proporcionar un soporte de E/S para mltiples usuarios en los sistemas
multiusuario.

Dentro de un sistema de archivos estn los mtodos y estructuras, que son los datos
que un sistema operativo utiliza para seguir la pista de los archivos de un disco o
particin, y las formas en que se organizan los archivos en el disco.

El concepto de sistema de archivos, tambin se puede utilizar para hacer referencia a una
particin o disco que se utiliza para almacenamiento de la informacin o el tipo del
sistema de archivos que utiliza. La diferencia entre un disco o particin y el sistema de
archivos que contiene es importante. Algunos programas trabajan directamente en los
sectores crudos del disco o particin; si hay un archivo de sistema existente ah ser
destruido o corrompido severamente. La mayora de programas trabajan sobre un sistema
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 51
de archivos, y por lo tanto no utilizarn una particin que no contenga uno (o que
contenga uno del tipo equivocado).

Antes de que una particin o disco sea utilizada como un sistema de archivos, necesita
ser iniciada y las estructuras de datos necesitan escribirse al disco. Este proceso se
denomina construir un sistema de archivos.

Los archivos estn administrados por el sistema operativo. La manera en que estn
estructurados, nombrados, cmo se accede a ellos, cmo se utilizan, cmo se protegen e
implementan, son caractersticas que se utilizan para el diseo de los sistemas
operativos. A esta parte del sistema operativo que gestiona archivos, comnmente se le
conoce como el sistema de archivos.

Para un usuario, el aspecto de mayor importancia dentro de un sistema de archivos, es su
aspecto; en otras palabras, es lo que conforma un archivo, cmo se nombran y se
protegen los archivos, las operaciones que se permiten, etc.

En los detalles para seguir la lnea de la memoria libre, se utilizan listas enlazadas o
mapas de bits; el detalle de cuntos sectores hay en un bloque lgico, son cuestiones de
menos inters aunque son de gran importancia para los desarrolladores de los sistemas
de archivos.

Concretamente los sistemas de archivos son un mecanismo que permite almacenar
informacin en el disco y leerla despus. Por lo cual, el usuario no necesariamente se
entera de detalles de dnde y cmo se almacenar la informacin, y el funcionamiento de
los discos.

La forma en la que se da nombre a los objetos que se manejan, podra ser la
caracterstica ms importante de cualquier mecanismo de abstraccin, una vez que el
proceso crea el fichero, se le asigna el nombre. Cuando el proceso termina, el archivo
sigue existiendo y otros programas pueden tener acceso a l, utilizando su nombre.

Varios sistemas de archivos, administran los nombres de stos en dos partes separadas
por un punto; a la parte secuencial del punto se le nombra extensin del archivo y
normalmente especifica el tipo del archivo por ejemplo en MS-DOS, los nombres de
los archivos cuentan con uno o hasta ocho caracteres, ms una extensin opcional de
uno a tres caracteres. En Unix, se deja la extensin opcional de contar con dos o ms
extensiones y son especificaciones que se dejan a criterio del mismo usuario. En la
siguiente imagen se presenta un listado de las extensiones ms comunes de los sistemas
de archivos y su descripcin.

Programacin de sistemas operativos
Programa desarrollado


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

Figura 1. Tabla de extensiones de algunos sistemas de archivos (Tanenbaum, 2003: 403)


2.1.1. Concepto

Los archivos proporcionan una forma de almacenar informacin en el disco y leerla
despus. Esto debe hacerse de tal manera que el usuario no tenga que ocuparse de los
detalles de cmo y dnde se almacena la informacin, ni de cmo funcionan realmente
los discos. Las reglas para nombrar archivos varan un tanto de un sistema a otro, pero
todos los sistemas operativos permiten cadenas de uno a ocho caracteres como nombres
de archivos vlidos.

Los archivos por su contenido pueden ser numricos, alfanumricos o binarios, pueden
existir archivos de formato libre, tales como son los archivos de texto, o bien, los archivos
pueden estar formateados de forma rgida.

La informacin que contiene un archivo es definida por el usuario. Pueden almacenar
muchos tipos de informacin, tales como: programas puente, programas objeto,
programas ejecutables datos numricos, texto, registros varios, imgenes, archivos de
audio, etc. Para esto cada tipo de archivo tiene su propia estructura definida.

Al tratar el tema de archivos, bsicamente, se utilizan cuatro trminos comunes:

Campo. Es el elemento de datos bsico, un campo individual contiene un valor nico,
como el apellido de una persona, una fecha o el valor ledo por un sensor. Se caracteriza
por su longitud y por el tipo de datos.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 53
Registro. Es una coleccin de campos relacionados que pueden tratarse como una
unidad en algunos programas de aplicacin.

Archivo. Es una coleccin de informacin similar, con un nombre, la cual se guarda en un
almacenamiento secundario. Los usuarios y las aplicaciones administran al archivo como
una entidad nica y se refieren a l por un nombre, los archivos tienen nombres nicos y
pueden crearse y eliminarse.

Base de datos. Es una coleccin de archivos relacionados, el aspecto bsico de una
base de datos se basa en las relaciones que existen entre los elementos de datos, son
explcitas y la base de datos est diseada para ser utilizada por varias aplicaciones
diferentes.

Un archivo fuente es una secuencia de subrutinas y funciones, cada una de las cuales
est a su vez organizada como una serie de declaraciones, siguiendo de instrucciones
ejecutables. Un archivo objeto es una secuencia de bytes organizado en bloques que el
programa montador del sistema puede comprender. Un archivo ejecutable es una serie
de secciones de cdigo que el cargador puede cargar en memoria y ejecutarse.


2.1.2. Jerarqua de datos

Es bastante comn desear organizar los archivos de forma lgica, para ello se requiere
agrupar los archivos de alguna forma dentro de esquemas flexibles determinados por
cada usuario, para dar como resultado la organizacin de la informacin lgica.

Bsicamente, lo que se requiere es contar con una jerarqua general de datos
comnmente conocida como rbol de directorios; con este tipo de organizacin de
informacin, el usuario puede tener la cantidad de directorios que requiera para agrupar y
organizar sus archivos en diferentes categoras. La figura 2 especifica que existen
directorios (A, B, C) pertenecientes en la raz (root), los cuales son archivos de diferentes
usuarios y stos a su vez generan subdirectorios para los proyectos en los que se est
trabajando.


Programacin de sistemas operativos
Programa desarrollado


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

Figura 2. Sistema jerrquico de datos (Tanenbaum, 2003)

Para la gestin de archivos en su nivel ms bajo los administradores de dispositivos se
comunican directamente con los dispositivos perifricos o sus controladores o canales.
Cada manejador de dispositivos es quien comienza la operacin de E/S en un dispositivo
y procesa la terminacin de una peticin de E/S. El nivel siguiente es como el sistema de
archivos bsico o nivel de E/S fsica, est formado por la interfaz primaria con el entorno
exterior. Este nivel trata con bloques de datos que son intercambiados con sistemas de
disco o cinta.

El administrador bsico de E/S, es quien inicia y termina toda la E/S con archivos. En este
nivel se mantienen unas estructuras de control que se encargan de la E/S con los
dispositivos, la planificacin y el estado de los archivos. El supervisor bsico realiza la
seleccin del dispositivo donde se realiza la E/S con los archivos. As mismo se ocupa de
planificar los accesos a discos y cinta para optimizar el rendimiento. En este nivel se
asignan los buffers de E/S y se reserva la memoria secundaria. El supervisor bsico de
E/S es parte del sistema operativo.

Los usuarios y los programas de aplicacin interactan con el sistema de archivos por
medio de rdenes de creacin y eliminacin de archivos realizando operaciones sobre los
archivos.

Programacin de sistemas operativos
Programa desarrollado


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

Figura 3. Estructura de ficheros de tres tipos de jerarqua. (a) Sucesin de bytes. (b)
sucesin de registros. (c) rbol (Tanenbaum, 2003: 382)

Los archivos o datos pueden estar estructurados de formas diferentes en la figura 3
situada anteriormente se muestran tres posibilidades comunes. El ejemplo (a) es una
sucesin no estructurada de bytes. Cualquier significado que se tenga sobre el fichero
debern atriburselo los programadores en el nivel de usuario.

La flexibilidad que se ofrece, mientras el sistema operativo ve solamente como
secuencias de bytes, los programas de usuario pueden poner cualquier cosa que deseen
los archivos y darles cualquier nombre que crean conveniente. En ese sentido, el sistema
operativo se torna imparcial para que los usuarios puedan hacer cosas fuera de lo comn.

El ejemplo (b) de la figura 3, muestra que un archivo es una secuencia de registros se
apoya en el concepto de que la operacin de lectura devuelve un registro y que la
operacin de escritura sobre escribe o anexa un registro.

El ejemplo (c) de la figura 3, indica una estructura de archivos. En esta organizacin, un
archivo consiste en un rbol de registros, que no necesita todos de la misma longitud,
cada uno de stos contiene un campo de llave que representa una posicin fija dentro del
registro. El rbol est ordenado segn el campo llave, a fin de poder buscar rpidamente
una llave particular.

La estructura lgica de los datos se organiza de acuerdo a la forma en cmo se accede
a stos. La estructura ms simple de un directorio es una lista de entradas para cada
archivo.

Programacin de sistemas operativos
Programa desarrollado


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

Actividad 1. Sistema de archivo

Con el fin de que reflexiones sobre lo estudiado hasta el momento, participars en un
foro de discusin, en l compartirs un concepto propio acerca del sistema de archivos.
Para ello, podrs revisar el material de la asignatura y apoyarte de los comentarios de tus
compaeros(as).

Previo a tu ingreso al foro:

1. Retoma las lecturas del tema 2.1.Sistemas de archivos.

2. Identifica qu es un sistema de archivos y cmo lo maneja el sistema operativo
en su jerarqua de datos.

3. Ingresa al foro de la actividad para comenta tus aportaciones y sigue las
indicaciones que en ese espacio se encuentran.



2.2. Tipo de Archivos

Cada sistema operativo reconoce sus archivos especiales por caracteres y por bloques,
adems de los tipos de archivos diferentes. Los archivos regulares son lo que contienen
informacin del usuario. Los archivos que se presentan en la figura anterior son archivos
normales, los directorios son archivos de sistema que sirven para mantener la estructura
del sistema de archivos.

Los archivos especiales por caracteres estn relacionados con E/S y sirven para
modelar dispositivos de E/S en serie como las terminales, impresoras y redes. Los
archivos especiales por bloques sirven para modelar discos.

Los archivos normales generalmente son archivos ASCII o bien archivos binarios. Los
archivos ASCII consisten en lneas de texto, en algunos sistemas cada lnea termina con
un carcter de retorno de carro; en otros se emplea el carcter de salto de lnea. En
algunas ocasiones se requieren ambas, las lneas no deben necesariamente tener todas
las mismas longitudes.

Los archivos normales ASCII tienen la ventaja de que pueden exhibirse e imprimirse tal
como estn, y se pueden editar con cualquier editor de textos. Adems, si una gran
cantidad de programas usan archivos ASCII como entradas y salidas, es fcil conectar la
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 57
salida de un programa a la entrada de otro, como sucede con los conductos de Shell. Los
archivos que no son ASCII se interpretan como archivos binarios.

Los archivos binarios son los que no se interpretan como archivo ASCII, si se obtiene
una vista de los archivos binarios por medio de una impresin, se obtendr un listado
difcil de comprender lo que pareciera ser contenido basura; por lo general estos archivos
estn formados por su estructura propiamente interna.

En la figura 4 se puede apreciar la ejecucin de un archivo binario simple; el ejemplo fue
tomado de las primeras versiones de UNIX. En la secuencia de bytes representado por el
archivo, se observa que el sistema operativo nicamente ejecutar un archivo si tiene el
formato que se reconoce por el sistema operativo.


Figura 4. Ejecucin de un archivo binario simple (Tanenbaum, 2003: 406)

En el primer ejemplo mostrado (a), se cuenta con cinco secciones:

Encabezado. Es quien inicia e identifica el archivo como ejecutable valido para el
sistema operativo.
Texto. Se carga en memoria y utiliza la reubicacin de bits para establecer su
ubicacin dentro del sistema.
Datos. Se carga en memoria y utiliza la reubicacin de bits para establecer su
ubicacin dentro del sistema.
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 58
Bits de reubicacin. Se utilizan para la reubicacin de los encabezados de texto y
datos
Tabla de smbolos. Es utilizada para la depuracin.

Tomando el segundo ejemplo (b), se tiene que el archivo binario se considera como un
archivo, el cual consiste en la coleccin de procedimientos de las bibliotecas o mdulos
que no estn enlazados. Cada mdulo se representa con un encabezado que es
identificado como el nombre, fecha de creacin, propietario, cdigo de proteccin y
tamao. De la misma forma que el archivo ejecutable, los encabezados de mdulo estn
llenos de nmeros binarios.

Como se mencionaba anteriormente todos los sistemas operativos reconocen el tipo de
archivos ejecutable y algunos ms, que no son propiamente pertenecientes a este.


2.2.1. Real

El archivo real en Windows, es el que es considerado como un objeto; est formado por
programas, datos o cualquier tipo de informacin que contenga uno o varios elementos
dentro del sistema operativo. Un archivo real se muestra por el espacio que ocupa dentro
de un disco duro o el mismo sistema de almacenamiento de archivos administrado por el
sistema operativo.


2.2.2. Virtual

A diferencia un archivo real que ocupa un espacio en el disco duro, un archivo virtual es
aquel cuyo uso es temporal, administrado por los procesos del sistema.

En Windows estos archivos se denominan como archivos temporales, se generan
mientras se est ejecutando un sistema y, ste, los utiliza para el almacenamiento de
informacin, intercambio y organizacin mientras se ejecuta el sistema.

Su tamao vara bastante y termina al detener la ejecucin del sistema, muchos de ellos
son eliminados.

Programacin de sistemas operativos
Programa desarrollado


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

2.2.3. Componentes

Los componentes principales para un archivo, se forma por un nombre y datos. Adems,
la mayora, o todos los sistemas operativos, relacionan otra informacin a cada archivo
contenido, tales como los componentes de fecha y hora de su creacin adems del
tamao del archivo. Por lo general un componente es en realidad el atributo del archivo el
cual vara bastante de un sistema operativo a otro, pues la gestin de la informacin la
asocian a su sistema de archivos.

La figura 5 muestra un esquema bsico y general sobre algunos atributos, sin dejar de
pensar que pueden existir muchas ms. La mayora de los sistemas operativos puede que
no integren la mayora de los atributos que se muestran, pero todos estn presentes en
algn sistema.


Figura 5. Algunos de los componentes de archivos comnmente utilizados (Tanenbaum,
2003: 386)

En el listado que se muestra en la tabla, de esta figura 5, los primeros cuatro atributos se
refieren a la proteccin del fichero, e indican quin puede tener acceso al mismo y
quienes tienen el acceso restringido. En una gran mayora de sistemas, para permitir el
acceso al sistema o algn archivo el usuario debe presentar una contrasea para poder
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 60
validar que tiene el permiso de ingreso, en ese caso la contrasea que se valida por el
sistema deber ser el atributo.

Los indicadores son bits o campos cortos que controlan y habilitan alguna propiedad
especfica, los archivos ocultos, por ejemplo, no aparecen en los listados de todos los
ficheros. El indicador de archivado es un bit que especifica si el archivo ya se respald o
no. El programa de respaldo sabe qu ficheros deben respaldarse. El indicador temporal
permite marcar un fichero para que se elimine de forma automtica cuando termine el
proceso que lo cre.

Dentro de los campos de longitud de cada registro, la posicin de la clave y longitud de la
clave se presentan en los ficheros cuando los registros puedan ocultarse empleando una
clave. Dichos campos proporcionan la informacin necesaria para hallar las claves.

El tamao de un archivo indica que tanto espacio llega a ocupar dentro del disco duro,
una gran parte de los sistemas operativos antiguos exigan que fuera especificado el
tamao del archivo al momento de ser creado con la intencin de poder administrar la
cantidad mxima de espacio para su almacenamiento. Los sistemas operativos de
estaciones de trabajo y ordenadores personales son o bastante inteligentes como para
prescindir de esa informacin.


Actividad 2. Tipos de archivos ms comunes en sistema operativo

Con el fin de obtener un concentrado acerca de los tipos de archivos ms comunes en
Windows y, entre todos los miembros del grupo, llegar a la obtencin de un solo
documento:

1. Investiga cules son los tipos de archivo ms comunes en el sistema operativo
Windows.

2. Ingresa a la Wiki de esta actividad Tipos de archivos ms comunes en sistema
operativo y realiza tu aportacin.

3. Revisa las aportaciones de tus compaeros(as) y enriqucelas. Adems,
recuerda identificar tu participacin con tu nombre e incluir las fuentes de
informacin que utilices.


Programacin de sistemas operativos
Programa desarrollado


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

2.3. Organizacin del sistema de archivos, lgica y fsica

La organizacin del sistema de archivos, se basa al arreglo de los registros dentro de un
archivo. Ya que todos los archivos estn formados por registros.

La organizacin del sistema de archivos lgica, refiere en la forma en que los registros se
organizan y las caractersticas del medio utilizado para su almacenamiento, para los
medios magnticos, los archivos se organizan de tres formas:
Organizacin secuencial. Es considerada la ms sencilla de implementar, porque
los registros se almacenan y se pueden recuperar en serie. Para localizar un
registro especifico, se busca en el archivo desde el inicio hasta encontrar el
registro solicitado.
Organizacin directa. Son archivos de acceso directo cuyo almacenamiento solo
se pueden implementar en dispositivos de almacenamiento de acceso directo, con
la diferencia de la organizacin secuencial, la organizacin directa permite acceder
a cualquier registro en cualquier orden, sin la necesidad de iniciar la bsqueda
desde el principio del archivo.
Organizacin secuencial indexada. Este tipo de organizacin de archivos es una
combinacin de los dos tipos de organizacin anteriores, se crea y mantiene a
travs de un paquete de software de mtodo.

Para lograr la mejor seleccin de estas opciones por lo general se consideran estas
caractersticas:

Volatilidad de los datos. Frecuencia con la cual se efectan adiciones y
eliminaciones.
Actividad del archivo. Porcentaje de registros procesados durante una ejecucin.
Tamao del archivo. Procin de espacio que ocupa el archivo.
Tiempo de respuesta. Cantidad de tiempo que el usuario acepta esperar antes
que la operacin solicitada se complete.

La organizacin fsica del sistema de archivos en memoria secundaria depende de la
estrategia de los diferentes tipos de organizacin que se mencionaron antes, y se
representan en la siguiente figura (6).

Programacin de sistemas operativos
Programa desarrollado


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

Figura 6. Diferentes tcnicas de organizacin de archivos (Stallings, 2005).

Otros de los criterios importantes a considerarse durante la eleccin de una organizacin
de archivos es:
Acceso directo para la recuperacin rpida de la informacin.
Facilidad de actualizacin para colaborar a mantener la informacin.
Economa para minimizar el costo de almacenaje.
Facilidad de mantenimiento simple para minimizar la probabilidad de errores.
Confianza de asegurar los datos.

En la organizacin de archivos fsica, los datos son modificados en su acceso contiguo
fsico, dependiendo del tipo de dispositivo de almacenamiento secundario, los registros
pueden ser de tamao fijo o variable y se pueden organizar de distintas formas para
construir archivos fsicos. Existen diferentes tipos de organizacin, los cuales son:
Cinta magntica. Es uno de los dispositivos de almacenamiento; con ste el
archivo fsico est formado de un conjunto de registros fsicos y cada registro est
organizado de forma secuencial.
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 63
Disco magntico. Es otro de los dispositivos secundarios de almacenamiento;
dentro del disco, el archivo es considerado una coleccin de registros fsicos del
mismo tamao, su caracterstica es que puede estar organizado de forma
secuencial, ligada o por medio de una tabla de mapeo.
Asignacin de espacio libre. Este mtodo permite decidir al sistema operativo
qu partes del disco no estn siendo ocupados. Para el control de dicho espacio
libre comnmente se utilizan algunos mtodos para este propsito, vectores de
bits, lista ligada, por agrupacin y por contador.


2.3.1. Operaciones con archivos

Comnmente los archivos estn hechos para almacenar la informacin que se necesita
recuperar luego de realizar algn proceso de datos. La mayora de los sistemas
administradores de archivos brindan algunas operaciones de almacenamiento y
recuperacin, en siguiente listado se muestran las llamadas ms comunes relacionadas
con archivos:

Create. Generalmente esta llamada genera el archivo sin dato alguno, su
propsito es informar que va existir un archivo y solo establece algunos de su
componentes o atributos (en tema anterior se mostr los diferente tipos de
atributos).
Delete. Esta llamada es muy comn utilizarla cuando existe un archivo dentro del
sistema y ya no es necesario su existencia para liberar espacio en disco.
Open. La utilidad de esta llamada es habilitar al sistema que se le otorgue los
atributos y la lista de direcciones de disco y los coloque en la memoria principal a
fin de agilizar el acceso en llamadas posteriores.
Close. Esta llama es til para cuando todos los procesos de los archivos estn
concluidos y sus atributos y las direcciones de disco no sean de utilidad, por lo
general es necesario cerrar el archivo para liberar espacio correspondiente en las
tablas internas.
Read. Llamada til para leer los datos del archivo, por lo general los bytes
provienen de la posicin actual. El invocador debe especificar cuntos datos se
necesitan y tambin un buffer para colocarlos.
Write. Se utiliza esta llamada para modificar los datos en los archivos, en su
posicin actual. Si esta posicin est en el final del archivo el tamao aumenta. Se
sobre escriben los cuando la posicin del archivo este a la mitad de su posicin y
son reemplazados por los existentes.
Append. Esta llamada realiza llamadas de write pero con la restriccin de agregar
los datos al final del archivo. Los sistemas que ofrecen un juego mnimo de
llamadas al sistema generalmente no cuentan con append.
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 64
Seek. En la organizacin de acceso aleatorio de los archivos, necesita un mtodo
para especificar el lugar del que deben tomarse los datos. Un enfoque comn es
tener una llamada al sistema, Seek, que ajustar a la posicin actual del archivo
una vez que localiza su ubicacin se podrn leer los datos de esa posicin y
escribir en ella.
Get Attributes. Comnmente los procesos requieren leer los atributos de los
archivos para realizar alguna llamada o proceso, realiza un examen de algunos de
sus atributos para saber los tiempos de modificacin.
Set Attributes. Algunos de los atributos de los archivos pueden ser establecidos
por el usuario y modificarse despus de que se cre el archivo.
Rename. Frecuentemente los usuarios requieren de modificar el atributo del
nombre al archivo que existe, esta llamada permite hacerlo.


2.3.2. Implementacin de archivos

Posiblemente para los usuarios el punto ms importante de la implementacin del
almacenaje de los archivos se poder llevar un control de qu bloques de disco
corresponden a qu fichero. Se contemplan varios mtodos en los distintos sistemas
operativos, los cuales son:
Asignacin contigua. Es considerado el esquema ms simple pues almacena cada
archivo como un bloque secuencial de datos en el disco, por ejemplo en un disco
con bloques de 1 byte a un archivo de 50 bytes se le asignarn 50 bloques
consecutivos. Una de las principales ventajas, es la sencillez con que sabe dnde
estn los bloques de un archivo, y el rendimiento es bastante bueno pues es
posible leer todo el archivo del disco en una sola operacin. As como existen
ventajas de este mtodo de implantacin tambin cuenta con algunas desventajas,
como que no es muy factible si no se conoce el tamao mximo del archivo en el
momento en que se crea ste, pues el sistema operativo no se dar cuenta:
cunto espacio en disco debe reservar para este archivo. Y en la fragmentacin
del disco se desperdicia espacio que de otra forma podra haberse aprovechado.
Asignacin por lista enlazada. El segundo mtodo para el almacenamiento de
archivos es guardar cada uno como una lista enlazada de bloques de disco, en la
siguiente figura (7) nos indica que la primer palabra de cada bloque se emplea
como lnea enlazada al siguiente bloque. Este mtodo tiene la posibilidad de
utilizar todos los bloques y no pierde espacio por fragmentacin de disco.

Programacin de sistemas operativos
Programa desarrollado


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

Figura 7. Asignacin por lista enlazada de bloques de disco (Tanenbaum, 2003: 416)

Asignacin por lista enlazada utilizando ndices. Al utilizar esta implementacin
todo el bloque estar disponible por completo para los datos, y el acceso directo
es ms sencillo a pesar de que se tiene que seguir la cadena para encontrar una
distancia dada dentro de un archivo, la cadena esta por completo en la memoria y
puede seguirse sin tener que consultar el disco. Su principal desventaja es que
toda la tabla debe estar en la memoria para que puede funcionar; en discos
grandes se vera afectado, pues entre mayor capacidad del disco, menor ser el
rendimiento de bsqueda. La siguiente figura (8) muestra el bloque de asignacin
por lista, donde se puede iniciar en el bloque 4 y seguir la cadena hasta el final del
bloque y lo mismo para el bloque 6, iniciar desde ah hasta seguir la cadena final.

Programacin de sistemas operativos
Programa desarrollado


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

Figura 8 Asignacin por lista enlazada utilizando ndices (Tanenbaum, 2003: 417)

Nodos i (nodos ndice). Este mtodo de implementacin es til para saber cules
bloques pertenecen a cul archivo; consiste en asociar cada archivo una pequea
tabla, la cual contiene los atributos y direcciones en disco de los bloques del
archivo. En la siguiente figura (9) se muestra un ejemplo simple, donde la
posibilidad de encontrar todos los bloques del archivo. Su principal ventaja,
respecto al anterior, los nodos ndice emplean una tabla en la memoria pues solo
debe estar en memoria mientras el archivo correspondiente est abierto. Otra
ventaja de este mtodo es el rendimiento que ofrece es que solo es necesario
reservar cantidad de espacio para los archivos abiertos.

Programacin de sistemas operativos
Programa desarrollado


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

Figura 9 Tabla de mtodo de implementacin de archivos por medio de nodos ndice
(Tanenbaum, 2003)

Una de las desventajas de los nodos ndices, es que fija el espacio de las direcciones en
disco. Pero mientras el archivo crece puede reservar la ltima direccin de disco no para
un bloque de datos, sino para la direccin de un bloque que contiene ms direcciones de
bloques de disco.


Actividad 3. Mapa conceptual de la organizacin del sistema de
archivos

Durante la elaboracin de esta actividad podrs distinguir y representar la jerarqua y las
distintas operaciones entre archivos, para ello:

1. Elabora un mapa conceptual utilizando la informacin del tema Organizacin del
sistema de archivos, lgica y fsica; as como de algunas fuentes de tu
preferencia.

2. Guarda tu actividad usando la nomenclatura DOO_U2_A3_XXYZ.

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

Programacin de sistemas operativos
Programa desarrollado


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


Autoevaluacin

Para reforzar los conocimientos relacionados con los temas que se abordaron en esta
segunda unidad del curso, es necesario que resuelvas la autoevaluacin de la unidad.
Ten en cuenta que es muy importante leer cuidadosamente los planteamientos indicados
y elegir la opcin adecuada para cada uno.

Para realizar esta actividad, ingresa al aula.



Evidencia de aprendizaje. Manejo de archivos en Linux (deban, fedora,
Ubuntu) y Windows

Como parte de la evaluacin de esta unidad, debes llevar a cabo la siguiente actividad:

1. En un archivo de texto describe cmo es manejado el sistema de archivos de
Windows, as como sus tipos de archivos.

2. Dale formato en cuanto a su organizacin lgica y fsica.

3. Complementa con los mismos conceptos para un sistema Linux el que sea de tu
agrado (Debian, Fedora, Ubuntu).

4. Consulta la Escala de evaluacin, para conocer los criterios que se evaluarn.

5. Guarda tu evidencia con el nombre DOO_U2_EA_XXYZ.

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

* Recuerda que de ser necesario y en base a los comentarios hechos por parte de tu
Facilitador(a), podrs enviar una segunda versin de tu actividad.


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
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 69
PSO_U1_ATR_XXYZ. Posteriormente enva tu archivo mediante la herramienta
Autorreflexiones.


Cierre de la unidad

Has concluido el estudio de la segunda unidad de la asignatura. A lo largo de sta se
vieron conceptos bsicos sobre el administrador de sistemas de archivos sus conceptos y
la jerarqua de datos, los tipos de archivos reales y virtuales; as como sus componentes,
adems de la organizacin del sistema de archivos de manera lgica y fsica, las
operaciones que se pueden realizar con los mismos y cmo se implementan.

Es recomendable 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 lo contrario ya ests
preparado(a) para seguir con la Unidad 3. Seguridad y Proteccin, en donde se abordar
lo relacionado con la seguridad y proteccin del entorno, el concepto y objetivo de la
proteccin. Todo ello, con el fin de obtener un prototipo final al concluir las cuatro
unidades de Programacin de Sistemas Operativos.


Para saber ms

Si deseas saber ms acerca de los sistemas operativos, revisa la siguiente pgina web:

Sistemas de archivos
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO4.htm


Fuentes de consulta

Candela, S. y Garca, C. (2007). Fundamentos de Sistemas Operativos. Teora y
ejercicios resueltos. Espaa: Paraninfo.
Morera, J. y Prez, J. (2002). Conceptos de sistemas Operativos. Espaa: Comillas
Ortiz, H. (2005) Sistemas Operativos Modernos. Colombia: Medellin.
Silberschatz, A. (2006). Fundamentos de Sistemas Operativos. Espaa: Mc. Graw
Hill.
Stallings, W. (2005). Sistemas Operativos Modernos: Aspectos Internos y principios
de diseo. Mxico: Pearson, Prentice Hall.
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 70
Tanenbaum, A. (2003). Sistemas Operativos Modernos. Mxico: Pearson
Educacin.
Programacin de sistemas operativos
Programa desarrollado


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

Unidad 3. Seguridad y Proteccin

Presentacin de la unidad

Los trminos de seguridad y proteccin se utilizan de forma indistinta, sirven para hacer la
distincin entre mecanismos especficos del sistema operativo que proporcionan
seguridad, y el aseguramiento de que los archivos no sean visualizados ni modificados
por usuarios no autorizados.

La proteccin, se obtiene por medio de un mecanismo que restringe el acceso de los
programas, de los procesos o de los usuarios, a los recursos definidos por un sistema
informtico. Este mecanismo debe proporcionar un medio para establecer los controles
que se deban imponer.

La seguridad, ofrece la validacin de los usuarios del sistema, con el objetivo de proteger
la integridad de la informacin almacenada en el mismo y los recursos fsicos del sistema;
adems protege el acceso no valido y la destruccin o modificacin mal intencionada de
los datos.

Por todo lo mencionado, son importantes los temas que se manejarn a lo largo de esta
unidad ya que son de vital importancia para un buen desarrollo de un sistema operativo.


Propsito

Controlar la seguridad y limitar el acceso a los archivos, mediante la implementacin de
mecanismos de proteccin que ofrezcan la confianza de que slo los procesos
autorizados del sistema puedan operar sobre los segmentos de memoria, CPU y otros
dispositivos de entrada y salida.


Competencia especfica

Utilizar las funciones y tcnicas para validar las amenazas de un sistema como polticas y
mecanismos mediante la diferenciacin de seguridad y proteccin.


Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 72
3.1. Entorno de Seguridad

El objetivo de la seguridad est basado en la forma cmo debe protegerse un sistema
contra robos, ataques, o cualquier tipo de programas o usuario mal intencionado que
pueden llegar afectar el buen rendimiento del sistema operativo. Debido al uso creciente
de los sistemas operativos se ha extendido en ambientes comerciales, gubernamentales,
militares e incluso en hogares.

Una gran masa de datos, de vital importancia para el usuario, requiere de la seguridad; no
solo de un simple sistema de proteccin, sino adems considerar el entorno externo en el
que el sistema opera. Por lo general de nada sirve la proteccin interna si la consola del
operador est al alcance de personal no autorizado, o bien si se pueden extraer los
archivos de forma simple, estos problemas de seguridad no son atribuidos a problemas
del sistema operativo, sino ms bien se derivan bsicamente de problemas
administrativos.

Es importante dedicar un esfuerzo en la seguridad considerando el entorno externo en
que el sistema opera. La informacin almacenada en el sistema, as como los recursos
propios del sistema, deben protegerse contra acceso no autorizado, destruccin o
alteraciones tales como la modificacin accidental de inconsistencias hacia el sistema
operativo

En lo que concierne a la seguridad de un sistema operativo, existen varias etapas en las
que se debe poner cuidado al tratar de implementar algn medio de seguridad en el
sistema, las dos ms importantes son: la prdida de datos y la penetracin de intrusos.

Algunas de las causas ms comunes en la prdida de datos son:

1.- Causas Naturales: Se conoce como causas naturales a las que no tiene nada que
ver con el desarrollo del sistema, su implementacin ni ambiente de trabajo, pues se ve
afectado por motivos como incendios, inundaciones, terremotos, etc.

2.- Fallas en hardware / Software: Este tipo de fallas va enfocado al dao fsico en las
partes que componen la computadora, como lo es fallas de CPU, disco duro, memoria,
etc. y fallas en la estructura interna del sistema.

3.- Error humano: Este puede incurrir de varias formas, la ms comn es el descuido en
la captura de datos; por ejemplo, puede haber errores en la forma de montar algn
dispositivo de disco duro, o al ejecutar un programa que no debera ejecutarse; la mayora
de estas causas, que derivan en la prdida de informacin, pueden evitarse manteniendo
un constante y adecuado respaldo de la informacin que es considerada como
importante.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 73
Existen tambin varios tipos de amenazas a la seguridad, que pueden afectar a la
integridad del sistema, as como a la informacin, para esto se deben de cumplir con los
siguientes requisitos:
Confidencialidad.- Para un sistema es muy importante mantener un nivel de
confidencialidad, para que cuando se acceda a la informacin, sta sea ms fcil
de comprender y que slo los usuarios autorizados, tengan los permisos de
lectura.

Integridad.- Es importante que la informacin que se maneja dentro un sistema sea
la ms completa posible y que se pueda editar solo por los usuarios autorizados.

Disponibilidad.- Hoy en da, el desarrollo de sistemas exige que los elementos
estn siempre disponibles y en lnea para que los usuarios autorizados tengan
acceso a la informacin.

Siempre al desarrollar un sistema lo que se busca es poder garantizar la seguridad propia
del sistema operativo; para esto, es necesaria la implementacin en todos los niveles, ya
que por menor que sea la debilidad contenida en el sistema, la informacin contenida en
el mismo podra colapsar. Para poder mantener una seguridad en el sistema es necesario
mantener como mnimo los requisitos anteriores, que permitan establecer el esquema de
proteccin bsico para el desarrollo de un sistema operativo.

Adems de ofrecer y garantizar durante el desarrollo la seguridad, el sistema es quien
debe proveer de mecanismos de proteccin para la implementacin de las caractersticas
de seguridad. Sin la capacidad de autorizar a los usuarios y procesos, de controlar su
acceso y el registro de tareas, sera prcticamente imposible poder implementar estas
medidas pues el sistema estara restringido para poder llevarlas a cabo. Lo idea es de que
el sistema tenga la posibilidad de poder establecer un enfoque global de proteccin,
soportndose tal vez por mecanismos de proteccin hardware. La mayor parte de los
aspectos de seguridad resultan ser complicados, pues a medida que los usuarios
malintencionados conocen las vulnerabilidades de los sistemas de seguridad estos
pueden ser atacados.

A medida que van creciendo los sistemas y las necesidades de los usuarios, es necesario
establecer medidas de seguridad que respondan a los requerimientos del mismo sistema.
Existen diferentes tipos de amenazas que pueden llegar afectar la integridad de los
sistemas operativos, stas pondran al sistema operativo en un riesgo latente, o bien,
dejarlo inservible, estas son: la interrupcin, la intercepcin,

Para ejemplificar estas amenazas revisa el flujo normal de informacin, que surge cuando
se va generando un flujo desde el origen -como un archivo o una regin de memoria
principal- hacia su destino; la figura 3.1. representa un ejemplo de este flujo de
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 74
transmisin de datos desde el origen, sin ningn tipo de bloqueo o interrupcin hacia el
destino de la informacin.


Figura 3.1. Flujo normal de informacin (Stallings, 2005: 573)

Una de las amenazas ms comunes es la interrupcin, la cual es considerara una de las
amenazas que afectan a la disponibilidad del sistema operativo -puede ser por un ataque
que genere una interrupcin de los procesos o la administracin de archivos- esto tiene
como consecuencia dejar al sistema intil.

La figura 3.2. muestra un ejemplo de cmo se puede generar una interrupcin del flujo de
informacin, la cual es causada por amenaza, bloqueo o falla en el flujo de la informacin
hacia su destino; este ejemplo indica que el sistema operativo quedara intil tras esta
interrupcin.

Figura 3.2. Flujo normal de informacin (Stallings, 2005: 573)

La Intercepcin es otro tipo de amenaza, en un ejemplo tpico de este tipo se encuentra
que ocurre un acceso de forma inesperada y sin autorizacin, la cual llega a afectar la
integridad de la informacin. La figura 3.3. representa un ejemplo de flujo de informacin,
donde el envi de la informacin a su destino es interceptada de forma no autorizada para
poner en peligro la integridad de la informacin.


Figura 3.3. Flujo normal de informacin (Stallings, 2005: 573)

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 75
Existe un tipo de amenaza ms latente y que afecta de forma directa la integridad de la
informacin. En la figura 3.4. se representa un claro ejemplo de una alteracin del flujo
de informacin, donde una amenaza acceda de forma no autorizada y modifica el flujo
de informacin a su destino, alterando de forma directa la informacin del sistema
operativo.


Figura 3.4. Flujo normal de informacin (Stallings, 2005: 573)

Otro tipo de amenaza es la de invencin; esta pone en riesgo la integridad de la
informacin. En la figura 3.5. se muestra como dentro de un flujo de informacin, una
amenaza ingresa dejando fuera al origen de la informacin para formar parte de esta
amenaza para insertar datos falsos al sistema operativo



Figura 3.5. Flujo normal de informacin Imagen 1. Flujo normal de informacin. (Stallings,
2005: 573)

El problema ms comn al que se enfrente un sistema operativo y que es bastante difcil
de afrontar, es la modificacin o alteracin de la informacin, lo cual provoca un mal
funcionamiento y afecta la integridad de las funciones, en la siguiente tabla se muestran
las diferentes amenazas a las que se afrontan cada clase de elementos.


Programacin de sistemas operativos
Programa desarrollado


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

Tabla 3.1. Elementos que afrontan la seguridad e integridad de la informacin. (Stallings,
2005: 575)

Las amenazas a la integridad de la informacin, son una preocupacin constante para los
desarrolladores de sistemas operativos, ya que la confidencialidad, disponibilidad e
integridad del sistema estara en peligro, por los diferentes tipos de amenazas que estn a
la orden del da.

Las amenazas por su complejidad y tipo de afectacin se pueden clasificar como
amenazas pasivas y amenazas activas.

Las amenazas pasivas, son aquellas que solo interceptan el flujo de la informacin
afectando la confidencialidad de la misma, este tipo de amenazas tienen el objetivo solo
de espiar y divulgar el contenido de la informacin. Estas amenazas son difcil de ser
detectarla, pues no generan alteracin al administrador de archivos ni funcionalidad del
sistema operativo, una posible medida debera ser de prevencin para evitar el filtrado.

Las amenazas activas son delicadas para la integridad del sistema. En stas est latente
la alteracin del flujo de datos o bien la creacin de un flujo falso que pone en riesgo el
funcionamiento normal del sistema operativo. En la mayora de los casos una amenaza
activa es difcil prevenir de forma absoluta, pues requerira de una proteccin de todos los
servicios y rutas de comunicacin.

Programacin de sistemas operativos
Programa desarrollado


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

Actividad 1. Seguridad y proteccin dentro del diseo de un sistema
operativo

La presente actividad tiene como propsito que reflexiones sobre la seguridad y la
proteccin en un sistema operativo.

1. Retoma la lectura del tema 3.1. Entorno de Seguridad.

2. Busca los conceptos de seguridad y proteccin en cualquier mbito (laboral,
personal, etc.).

3. Identifica qu seguridad y proteccin debes considerar para un buen sistema
operativo y qu es lo ms importante: la seguridad o la proteccin.

4. Ingresa al foro y genera una nueva entrada.


3.1.1. Clasificaciones de la seguridad

El departamento de defensa de los EEUU, especifica cuatro clasificaciones de seguridad
para los sistemas: A, B, C, D, esta especificacin se usa ampliamente en dicho pas para
determinar la seguridad de una instalacin y modelar soluciones de seguridad.
(Silberschatz, 2006: 547).

Tomando como base de referencia la clasificacin del autor, se ubican cuatro niveles de
clasificacin de acuerdo a los requerimientos de seguridad necesaria para un sistema
operativo:

Nivel D. Esta divisin, es la considerada de menor nivel, o bien requiere de una
proteccin mnima para la integridad del sistema operativo. Los sistemas
operativos diseados con procesos individuales o mono usuarios, por su
naturaleza de administracin simple de archivos no es muy comn o frecuente el
uso de un nivel superior de la informacin.

Nivel C. Est considerado como un nivel superior al mnimo de seguridad
requerido para un sistema operativo, en este nivel se implementan mecanismos de
proteccin de recursos que estaran bajo la responsabilidad de los usuarios
quienes tendrn los privilegios de poder realizar modificaciones, se considera que
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 78
los sistemas comerciales como Linux, Windows, por mencionar solo unos caen
esta categora, este nivel a su vez se clasifica en dos subniveles.
o C1. Este subnivel integra algunos controles que permitan a los usuarios
proteger su informacin de lectura, escritura o eliminacin de archivos.
o C2. En este subnivel, Es la parte superior del nivel C1 donde existe un
usuario con privilegios superiores que permiten la auditoria de la
informacin, tal como un administrador del sistema.
Nivel B. En este nivel seguridad cuenta con los parmetros incluido de los niveles
anteriores. Adicionando para el incremento de la seguridad, la amplitud de
controles y etiquetas de seguridad, dominio y mecanismos estructurados de
proteccin que son de utilidad para el refuerzo de restriccin de acceso no
autorizados.
Nivel A. Tcnicamente este nivel cumple con todas las caractersticas que tiene
una clasificacin B, este nivel utiliza niveles especficos de diseo y tcnicas de
validacin para el filtrado de la informacin.


3.1.2. Verificacin de autenticidad de usuarios

Muchos esquemas de proteccin se basan en el supuesto de que el sistema conoce la
identidad de cada usuario. El problema de identificar los usuarios cuando inician se
denomina verificacin de autenticidad de usuarios. La mayor parte de los mtodos de
verificacin de autenticidad se basan en identificar algo que el usuario conoce, tiene o es.
Contrasea. Fuente Sistemas Operativos Diseo e implementacin, (Tanenbaum, 2003:
442).

Resulta un tanto simple para algunos usuarios o aplicaciones mal intencionadas, descifrar
el contenido y complejidad de las contraseas y vencer la autenticidad de stas teniendo
como resultado el acceso a la informacin de algn sistema ya sea para modificar el flujo
de la informacin, como en la intercepcin, o algo ms delicado, como en la inversin.

Frecuentemente se van incrementado los niveles de complejidad para la creacin de
contraseas o password utilizados para la validacin de acceso a la informacin. Muchas
aplicaciones codifican, por medio de algn algoritmo de encriptacin -este mtodo provee
un nivel de seguridad ms avanzado que la utilizacin simple de caracteres-
comparndolo con la lista de contraseas disponibles para la validacin.

Otro mtodo para la proteccin de contraseas es el cambio regular de stas. Es
importante cambiarlas de manera peridica para evitar que algn intruso, pueda
descifrarla.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 79
Otra variacin que es utilizada para la validacin y autentificacin de usuarios, es la
utilizada para la identificacin fsica. Este enfoque se basa en algn dispositivo fsico para
la autorizacin de ingreso al sistema, se utiliza un algoritmo de validacin completamente
distinto a una contrasea.

El uso de los dispositivos es til para saber si se trata del usuario propietario, dichos
dispositivos sern la llave de acceso al sistema; algo que ocurre de forma comn, es que
las tarjetas magnticas que son validadas por un lector magntico -el cual determina si es
vlida o no- no tienen un alto grado de efectividad en cuestiones de seguridad, ya que es
comn el extravo o falsificacin de estos dispositivos.

Las huellas digitales, lectura de retina o patrn de voz, forman parte de un mtodo fsico
de verificacin de usuarios. Estos mtodos consisten en la verificacin y autenticidad
fsica de las caractersticas nicas de cada usuario, las cuales resultan difcil de falsificar.

La validacin o verificacin fsica es muy amplia y tiene muchas aplicaciones, ventajas y
desventajas, comparndolos con otros medios de verificacin, el desarrollador es quien
planea que tipo o clasificacin de seguridad se implementara para la validacin y acceso
de usuarios.

Algunas de las medidas preventivas que se deben de considerar para el incremento de
las medidas de seguridad, son:
Registrar los inicios de sesin y log de actividades.
Bloqueo de inicios de sesin por fecha o por intentos errneos de validacin.
Encriptacin, caducidad y modificacin constante de contraseas.
Especificar estacin de trabajo validas para el acceso al sistema.

Estas medidas son algunas de las ms usadas y son, bajo el criterio del desarrollador, el
tipo de seguridad a implementar de acuerdo al nivel y uso de la informacin que sea
considerada como importante.


3.1.3. Validacin y amenazas al sistema

Al da de hoy nos encontramos con amenazas a los sistemas operativos cada vez ms
sofisticadas, las cuales aprovechan los puntos ms dbiles; por eso, es importante que
se validen y se considere al disear un sistema operativo.

Principales amenazas que se deben validar al disear un sistema operativo

En la actualidad existen muchos tipos de amenazas, por lo cual, lo mejor es prevenir
todas stas desde el diseo, teniendo en cuenta buenas prcticas de prevencin. Estas
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 80
amenazas se conocen como virus que atacan y actan de muchas maneras, se
mencionan algunas de ellas a continuacin:

Troyano
Ingresa cuando el sistema no tiene seguridad, permite accesos a otros tipos de archivos
que hacen dao y en ciertos momentos se activan y ejecutan actividades que daan.

Exploits (secuencia de aprovechamiento)
Localizan un punto dbil en el sistema y ejecutan acciones que no deberan ser
ejecutadas causando caos en el sistema.

Rootkits (secuencia de nulidad)
Su origen est en el lenguaje UNIX y son herramientas que entran como administradores
tomando el control.

Backdoors (secuencia de salida emergente)
Como su traduccin al espaol lo dice puerta trasera la cual es abierta para que otros
sistemas dainos puedan entrar. Abren una puerta trasera en el sistema para que el
creador de malware entre en el sistema y lo domine a su antojo. El objetivo es crear una
red computadoras infectadas con el mismo.

Keyloggers (registro de teclas o pulsaciones)
Registra la pulsacin de las teclas y clic para enviarlas a un usuario no autorizado puede
instalarse como hardware o aplicacin.


Actividad 2 Tabla de elementos que afectan la seguridad de un sistema

Con el fin de distinguir qu elementos afectan la seguridad en un sistema, en la siguiente
actividad construirs una tabla de elementos, tomando en cuenta los temas abordados
con anterioridad.

1. Investiga sobre los elementos de seguridad en un sistema operativo.

2. Con base en la investigacin, realiza una tabla que contenga los elementos de
seguridad que debe tener un sistema operativo y cul es el objetivo de cada uno de ellos.

3. Tomando en cuenta la informacin contenida en la tabla, elige los tres elementos que
consideres de mayor importancia y justifica los motivos por los cuales elegiste esos.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 81
4. Guarda la actividad con el nombre PSO_U3_A2_XXYZ. Sustituye las XX por las dos
primeras letras de tu primer nombre, la Y por la inicial de tu apellido paterno y la Z por la
inicial de tu apellido materno.

5. Enva el archivo a travs de la seccin de Base de datos.

6. Revisa y comenta los trabajos de tus compaeros.

7. Con base en los comentarios de tus compaeros(as) reelabora tu tabla y envala a tu
Facilitador(a) para recibir retroalimentacin.


3.2. Concepto y objetivos de proteccin

Por una necesidad de mantener la integridad y confiabilidad de los sistemas, la proteccin
de stos se vuelve prioridad para todo desarrollo de sistemas operativos, una de las
necesidades de la proteccin es impedir el acceso y violacin a la informacin del sistema
de archivos. La proteccin es la fuente de control y restriccin de acceso a los sistemas,
administracin de los recursos y procesos.

El objetivo primordial de la proteccin, es proveer de un mecanismo que tenga la facultad
de establecer polticas de restriccin, y crear bloqueos a usuarios mal intencionados.

Cuando un sistema o parte del sistema no est protegido, no tiene la confiabilidad,
integridad y mucho menos la disponibilidad de la informacin. Debido al mal uso de la
informacin que puede llegar a ser modificada por el acceso de usuarios mal
intencionados.

Frecuentemente, podemos utilizar un principio director a lo largo de un proyecto, como
pueda ser el diseo de un sistema operativo. Ajustarnos a este principio simplifica las
decisiones de diseo y hace que el sistema contine siendo coherente y fcil de
comprender. Uno de los principios directores clave y que ha resistido al paso del tiempo a
la hora de proporcionar proteccin es el principio del mnimo privilegio. Este principio dicta
que a los programas, a los usuarios, incluso a los sistemas se les concedan nicamente
los suficientes privilegios para llevar a cabo a sus tareas. (Silberschatz, 2006: 484)

Se considera que cuando un sistema operativo cumple con el principio de mnimo
privilegio, durante el desarrollo integra caractersticas y/o mecanismos de proteccin que
cubran las necesidades de poder minimizar los daos causados por usuarios mal
intencionados. Este principio tiene la bondad de poder ofrecer un entorno ms seguro al
sistema, por ello es de suma importancia que sea considerado durante la planificacin y
desarrollo, de lo contrario no lograra su objetivo de proteccin.
Programacin de sistemas operativos
Programa desarrollado


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


3.2.1. Mecanismos de proteccin

Durante el desarrollo del sistema, la parte fundamental que se debe considerar es la
seguridad y proteccin del sistema operativo; se deben de tener en cuenta al menos los
problemas potenciales considerados en temas anteriores, para solucionar esa parte se
pueden utilizar tcnicas para poder establecer las polticas y mecanismos de proteccin.

En algunos sistemas, la proteccin se impone mediante un programa llamado monitor de
referencias. Cada vez que se intenta un acceso a un recurso que pudiera estar protegido,
el sistema pide primero al monitor de referencias que verifique que tal acceso est
permitido. (Tanenbaum, 2003: 447)

Los diferentes tipos de mecanismos de proteccin se encuentran clasificados en:
Dominio de proteccin. Este punto considera al sistema de cmputo como grupo
global de software y hardware, cada una de las partes que lo conforman tienen su
propio nombre, caractersticas y objetivo, mediante el cual se podrn realizar
operaciones con archivos y manejo de informacin. Durante la ejecucin de un
proceso solo se podr tener acceso a los recursos que tiene autorizados para
realizar sus tareas. En la siguiente figura (3.6.), se muestra un ejemplo de tres
dominios, cada uno contiene sus propios objetos con la autorizacin para poder
escribir (W), leer (R) y ejecutar (X), se puede apreciar que la impresora est en
dos dominios distintos al mismo tiempo, debido a que los archivos de cada
dominio hacen referencia a la misma impresora conectada al sistema de cmputo.



Figura 3.6. Dominios de proteccin con sus propios objetos y derechos de aplicacin.
(Tanenbaum, 2003: 447)

Listas de control de acceso. El objetivo de esta tcnica consiste en asociar los
registros de una lista ordenada que contenga la mayor cantidad de dominios y que
pueda ingresar al objeto.
Capacidades. Este mtodo distingue las caractersticas de cada objeto, las cuales
indican las operaciones permitidas que puede realizar, as la lista muestra los
objetos y sus capacidades para logra procesar la informacin, con esto clasifica
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 83
los objetos de acuerdo a sus capacidades facilitando el compartimiento de
subdominios.
Matriz de acceso. Este modelo de proteccin, puede completar su estructura por
medio de abstraccin de datos compuesto por una coleccin de derechos de
acceso a la informacin, este tipo de modelo proporciona el mecanismo factible
para definir e implementar un control especifico para la asociacin de procesos y
dominios de forma dinmica y esttica, los procesos deben poder conmutar de un
dominio a otro y permitir la modificacin controlada del contenido de las entradas
de la matriz de acceso, estas por lo general requieren de operaciones adicionales,
tales como: copy, owner and contro.


3.2.2. Funciones del sistema de proteccin

La principal caracterstica que distingue las funciones de un sistema de proteccin, es
aquel que cumple con los requerimientos de proteccin de los procesos del sistema,
contra los procesos de los usuarios, protege los procesos de los usuarios contra los de
otros usuarios, protege la administracin de la memoria y protege los dispositivos.

Durante el desarrollo del sistema operativo, es conveniente dar flexibilidad a la estructura
de los datos para imponer una variedad de polticas y mecanismos de proteccin,
exigiendo que cumpla con el mnimo de requerimientos para el control de prdida de
datos.

Ms adelante se mostrarn algunos de los mecanismos que se pueden utilizar para
asegurar los archivos, segmentos de memoria y otros dispositivos administrados por el
sistema operativo. Se dar cuenta que el principal objetivo de todo sistema operativo es
mantener la confiabilidad, integridad y disponibilidad del sistema. El uso de estos
mecanismos contribuye evitando el mayor nmero de amenazas que pueden afectar el
rendimiento del sistema.

La proteccin se refiere a la implementacin de mecanismos para restringir el acceso de
programas, procesos o bien usuarios no deseados que pueden perjudicar el rendimiento
del sistema.

Las funciones principales para proveer un buen sistema de proteccin, son:

Establecer polticas de uso de recursos. Las polticas se pueden establecer por
usuario, administrador del sistema o bien sobre el diseo y/o desarrollo.
Mecanismos de proteccin. Su uso comn es el controlar el acceso de
programas o procesos a los recursos del sistema.
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 84
Monitoreo de amenazas. Se pueden establecer rutinas de control que permitan
ingresar al sistema o bien rechazar la peticin de acceso a determinadas
aplicaciones o procesos.

Queda claro que es importante y necesaria la proteccin de un sistema operativo, para
prevenir violaciones malintencionadas de acceso al flujo de datos de un proceso dentro
del sistema. Por ello la conveniencia de asegurar cada componente que forme parte del
sistema, un recurso o componente no asegurado no puede defenderse contra alguna
variacin al flujo de datos.


3.2.3. Implementacin de matrices de acceso

Al iniciar con la implementacin de una matriz de acceso y de ir llenando de datos, la
matriz tendr espacios vacos, estos lleva a una serie de desventajas en el rendimiento
del sistema operativo. Los mtodos para la implementacin de una matriz de acceso son
de utilidad para aquellas matrices dispersas y de poca utilidad, a continuacin se describe
cada uno de estos mtodos para su implementacin:

Tabla global. Este primer mtodo, tiene la funcin ms simple de acceso para una
tabla compuesta por tripletas (dominio, objeto, conjunto-derechos), suponiendo
que se tiene un Dominio Da, Un objeto Oa y sus derechos de lectura Ra. Si Da
intenta el acceso en Oa mediante alguna operacin Ma, se analizar toda la tabla
en bsqueda de la tripleta <Da, Oa, Ra> y que Ma pertenezca a Ra, si la
encuentra realiza caso contrario sigue realizando el proceso de bsqueda o bien
hasta que se genere algn error. Este tipo de implementacin resulta estar
creciendo considerablemente conforme van generndose operaciones de E/S, por
lo que no es posible mantenerla en memoria principal. Como desventaja se tienen
que generar operaciones adicionales de E/S.
Lista de acceso para los objetos. En este mtodo, se van almacenando los
datos por columna en la matriz para ir asociando cada objeto dentro de una lista
de ordenadas de pares. Siguiendo el ejemplo de la tripleta anterior, se tiene que si
Da intenta ingresar a Oa mediante la operacin M se permite si, se encuentra <Da,
Ra> y M tenga pertenencia en Ra. Su ventaja se radica en la facilidad de poder
agrupar los dominios.
Listas de capacidades para los dominios. La listas de capacidades se
propusieron originalmente como una especie de puntero seguro, para satisfacer la
necesidad de proteccin de los recursos que se prevea que iba a ser necesaria a
medida que los sistemas informticos multiprogramados se generalizaran
(Silberschatz, 2006: 494).

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 85
La capacidad de este mtodo, consiste en que los derechos de acceso a un objeto se
almacenan en la matriz por filas con su dominio, por lo general las listas de capacidades
est asociada con un dominio, pero un proceso que se ejecute en el dominio no podr
ingresar de forma directa sobre esta. Cada elemento de la matriz es denominado como
capacidad y la lista de capacidades debe de protegerse por el sistema operativo.

Mecanismo de bloqueo-clave. El esquema de bloqueo-clave, es un compromiso
entre las listas de acceso y las listas de capacidades. Cada objeto tiene una lista
de patrones de bit distintos, denominados bloqueos. De forma similar, cada
dominio tiene una lista de patrones de bit distintos, denominados claves
(Silberschatz, 2006: 494).

La mayora de los sistemas requieren de alguna implementacin de matrices de acceso
para localizar la informacin para un proceso determinado, y es decisin del desarrollador
del sistema operativo determinar que mtodo sera el ms ptimo para la implementacin
de las matrices de bsqueda.


Actividad 3. Cuadro sinptico de los mecanismos de proteccin

Esta actividad tiene como propsito que, mediante una representacin esquemtica,
distingas las relaciones que se establecen entre los modelos, funciones e
implementacin de los mecanismos de proteccin.

1. En un archivo de texto o Microsoft Visio realiza un cuadro sinptico con los temas de
conceptos y objetivos de proteccin.

2. Guarda la actividad con el nombre PSO_U3_A3_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.

Programacin de sistemas operativos
Programa desarrollado


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

Evidencia de aprendizaje. Diagrama de flujo del sistema operativo

Como parte de la evaluacin de esta unidad, debes llevar a cabo una actividad cuyo
propsito es conceptuar el proceso del sistema operativo, mediante la aplicacin de los
conceptos aprendidos en la unidad.

1. En un archivo de texto elabora un diagrama de flujo en el cual reflejes el orden, la
secuencia y los pasos que realizaras para disear un sistema operativo con respecto a
seguridad y proteccin, considerando todos los subtemas expuestos en la unidad.

2. Guarda la evidencia con el nombre PSO_U3_EA_XXYZ.

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_U3_ATR_XXYZ. Posteriormente enva tu archivo mediante la herramienta
Autorreflexiones.


Cierre de la unidad

Has concluido la tercera unidad del curso. A lo largo de sta se vieron conceptos bsicos
sobre el la seguridad y proteccin, cmo se clasifica la seguridad, cmo se verifica la
autenticidad de los usuarios y las principales amenazas que debemos considerar al
disear un sistema operativo, en cuanto a la proteccin: qu mecanismos se utilizan para
que es el sistema de proteccin y cmo se implementan la matrices de acceso.

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 preparado(a) para seguir con la unidad cuatro, en donde continuars con la base
del diseo del sistema operativo. Todo ello con el fin de obtener el prototipo final al
terminar la ltima unidad del curso de Programacin de Sistemas Operativos.
Programacin de sistemas operativos
Programa desarrollado


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


Para saber ms

Si deseas conocer ms informacin acerca de la seguridad de los sistemas operativos,
revisa la siguiente pgina web:

Seguridad de los Sistemas Operativos
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO14.htm


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.
Silberschatz, Abraham (2006) Fundamentos de Sistemas Operativos. 7ma. Edicin.
Espaa: Mc. Graw Hill.
Stallings, W. (2005) Sistemas Operativos Modernos: Aspectos Internos y principios de
diseo. Mxico: Pearson, Prentice Hall
Tanenbaum, A (2003) Sistemas Operativos Modernos. Mexico: Pearson Educacin.

Programacin de sistemas operativos
Programa desarrollado


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

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.
Programacin de sistemas operativos
Programa desarrollado


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

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
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 90
una estandarizacin para tratar de establecer una comunicacin entre las
diferentes arquitecturas.

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.

Programacin de sistemas operativos
Programa desarrollado


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

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.

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
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 92
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.
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.

Programacin de sistemas operativos
Programa desarrollado


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

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

Programacin de sistemas operativos
Programa desarrollado


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

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.

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.

Programacin de sistemas operativos
Programa desarrollado


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

Actividad 1. Diseo de un sistema operativo

Esta actividad tiene como finalidad que reflexiones cmo debe ser el diseo de un
sistema operativo.

5. Retoma la lectura de los temas anteriores.

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

7. Identifica qu parmetros debes considerar para disear un buen sistema operativo y
qu es lo ms importante.

8. Ingresa al foro y genera una nueva entrada.


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.

Programacin de sistemas operativos
Programa desarrollado


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

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
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
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 97
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

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
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 98
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.
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.
Programacin de sistemas operativos
Programa desarrollado


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

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.
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.
Programacin de sistemas operativos
Programa desarrollado


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

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.

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.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 101
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.

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
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 102
cuentan con ms elementos que otros, como estn arquitectnicamente construidos y por
qu 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.
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.
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 103
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,
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.

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 104
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.

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:
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 105
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
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
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 106
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.


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
Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 107
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.

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


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).
Programacin de sistemas operativos
Programa desarrollado


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

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.

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.

Programacin de sistemas operativos
Programa desarrollado


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

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:

Programacin de sistemas operativos
Programa desarrollado


Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 110
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.

También podría gustarte