Sei sulla pagina 1di 147

1º Ciclos - Sistemas Operativos Multiusuario y en Red

Juan P. Benito

Ciclos formativos
Sistemas informáticos Monousuario y Multiusuario

Unidad Didáctica 3 – Componentes lógicos. Introducción.

ÍNDICE

1 CONCEPTOS.......................................................................................................................................................2

2 INTRODUCCIÓN...............................................................................................................................................2

3 DATOS, TIPOS, REPRESENTACIÓN Y PROTECCIÓN............................................................................3


3.1 DEFINICIÓN DE DATO............................................................................................................................... 3
3.2 TIPOS DE DATOS...................................................................................................................................... 4
3.3 REPRESENTACIÓN DE LOS DATOS.............................................................................................................. 4
3.4 ENCRIPTACIÓN O PROTECCIÓN DE DATOS.................................................................................................. 5
4 INFORMACIÓN.................................................................................................................................................5

5 SISTEMAS DE CODIFICACIÓN.....................................................................................................................6
5.1 TIPOS DE CÓDIGO..................................................................................................................................... 6
5.1.1 Representación por medio de números...................................................................................................7
5.1.1.1 El código decimal............................................................................................................................................8
5.1.1.2 Sistema binario................................................................................................................................................8
5.1.1.3 Código octal.....................................................................................................................................................9
5.1.1.4 Código hexadecimal......................................................................................................................................10
5.1.1.5 Cambios de base de numeración....................................................................................................................10
5.1.1.6 Trabajo con números decimales....................................................................................................................11
5.1.1.7 Representación de números reales.................................................................................................................11
5.1.1.8 Razones para el uso del sistema binario........................................................................................................12
5.1.2 Representación alfanumérica...............................................................................................................13
5.1.2.1 Código ASCII................................................................................................................................................13
5.1.2.2 Código EBCDIC............................................................................................................................................14
6 MEDIDA DE LA INFORMACIÓN................................................................................................................14

7 SOFTWARE.......................................................................................................................................................15
7.1 TIPOS DE SOFTWARE.............................................................................................................................. 16
7.1.1 Según el público al que va dirigido...................................................................................................16
7.1.2 Según su relación con el sistema..........................................................................................................17
7.2 CARACTERÍSTICAS DEL SOFTWARE.......................................................................................................... 18
7.3 NORMATIVA LEGAL............................................................................................................................... 19
7.3.1 Desde el punto de vista comercial........................................................................................................19
8 ORGANIZACIÓN DE INFORMACIÓN EN LAS UNIDADES DE ALMACENAMIENTO..................19

9 ADMINISTRADOR DE SISTEMAS INFORMÁTICOS.............................................................................20


9.1 COMPETENCIA GENERAL........................................................................................................................ 20
9.2 CAPACIDADES PROFESIONALES............................................................................................................... 21
9.3 REQUERIMIENTOS DE AUTONOMÍA EN LAS SITUACIONES DE TRABAJO......................................................21
9.4 POSICIÓN EN EL PROCESO EMPRESARIAL................................................................................................. 21

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 1 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

1 CONCEPTOS

Informática: El término ‘informática’ proviene de la fusión de los términos “INFORmación” y


“autoMÁTICA”, y se define como la ciencia que estudia el tratamiento automático y racional de la
información, como soporte de los conocimientos y comunicaciones humanas, llevado a cabo
mediante elementos automáticos, así como el conjunto de técnicas, métodos y máquinas aplicadas
a dicho tratamiento. La Real Academia Española de la Lengua da la siguiente definicion:
“Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de
la información por medio de computadoras electrónicas”. De esta última definición podemos
deducir que hay tanto una ciencia informática como unas técnicas informáticas.
Cuando se ocupa de la información como materia esencial de estudio, con esta información es
preciso: representarla en forma eficiente y automatizable, transmitirla sin errores ni pérdidas, y
almacenarla para poder acceder a ella y recuperarla tantas veces como sea preciso procesarla para
obtener nuevas informaciones más elaboradas y más útiles a nuestros propósitos

Sistemas informáticos: Conjunto de elementos interconectados o relacionados para el tratamiento de


información. El más básico es un ordenador típico. Los más complejos son las redes, sistemas de
procesamiento en paralelo,...
En este término suelen incluirse los elementos físicos, el software, y otros relacionados. Así el
contenido en “hardware” de una habitación en la que se encuentra instalado un ordenador también
se puede denominar “el sistema”, es decir, amplios elementos fabricados por distintas empresas y
con diferentes cometidos. Suele contener este término el software básico, tal como el sistema
operativo, y los compiladores, depuradores, enlazadores,... También un conjunto de programas
dedicados a una aplicación específica, lo que incluye este software, el básico, los soportes, la
documentación, manuales de procedimiento,...

Información: Comunicación o adquisición de conocimientos que permiten ampliar o precisar los que
se poseen sobre una materia determinada. Podría entenderse que si no se consigue alguna de las
dos finalidades señaladas, no habría información, pero es prácticamente imposible que no concurra
alguna de ellas cuando un ser humano se encuentra ante una exposición de conocimientos. Para
que la información sea la adecuada se tendrán que cumplir unos cuantos requisitos: precisión,
significatividad, etc., que se expondrán más adelante.

2 INTRODUCCIÓN

La lógica se define como aquélla representación del conocimiento y/o del formalismo racional
originalmente desarrollada por matemáticos para formalizar el razonamiento matemático.

Se considera componente lógico de un sistema informático lo que no se puede considerar tangible, es


decir, todo aquello que tiene que ver con la información que se maneja en el sistema y con las
herramientas intangibles necesarias para ello. No debe confundirse con el concepto de lógica que
impera en el mundo de la inteligencia artificial (lógica de predicados o la lógica proposicional).

Se pueden distinguir cuatro grandes grupos considerados lógicos en un sistema:

- Datos: son los valores numéricos, o bien caracteres, medidas multidimensionales, tales como
vectores, matrices,...
- La información: como tal, es un conjunto de datos relacionados por alguna estructura o alguna
relación de tipo sintáctico. En general, se la considera un subconjunto dentro de los datos.
- El conocimiento: constituido por elementos de información con ciertos significados
semánticos y se le suele considerar un subconjunto de la información
- La inteligencia: conjunto específico de la información capaz de interpretar y gestionar otra. Es
el subconjunto más interior del espacio total de datos.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 2 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Desde el punto de vista operativo y temporal, los ordenadores nacieron como herramientas que
servían para el procesamiento de datos, como los primitivos procesadores que trabajaban con tarjetas
perforadas mediante las que se les introducían datos e instrucciones, y producían datos procesados
también en forma de tarjetas que se clasificaban para la siguiente fase. Fueron relativamente
frecuentes en grandes corporaciones y centros de cálculo como el MIT (Massachussets Institute of
Technology).

A medida que los datos se iban haciendo más y más complejos, mezclándose estructuras y añadiendo
otras nuevas, apareció la necesidad de diseñar métodos para el procesado de la información, por lo que
nacieron los primeros programas y aplicaciones informáticas, medianamente complejos, en lenguajes
como el lenguaje máquina o el ensamblador. En la actualidad, la complejidad que existe en las bases
de datos y conocimientos impone una tendencia hacia el desarrollo y fabricación de sistemas expertos
para ciertas áreas específicas, como es el caso de la educación, la legislación, la sanidad, etc.

Las líneas de trabajo para un futuro a medio plazo se encaminan hacia la consecución de la
inteligencia artificial, conocida como AI (Artificial Intelligence), en la que los sistemas no sólo son
capaces de aprender sino de elegir el método más adecuado para hacerlo.

3 DATOS, TIPOS, REPRESENTACIÓN Y PROTECCIÓN

El funcionamiento de un sistema informático se puede asemejar al de una caja de entradas y salidas,


uno de los modelos más simples para la interpretación del medio físico. Para este caso se pueden
considerar dos tipos de objetos de trabajo: los datos y las instrucciones. Los datos son los caracteres y
valores que son necesarios para el funcionamiento del sistema (ver punto anterior), mientras que las
instrucciones señalan qué operaciones y procesos deben llevarse a cabo con esos datos.

Así, el ordenador permite la recepción de datos entrantes, que se procesan según indican las
instrucciones que posee el sistema. Por último, proporciona unos datos de salida que son los
resultados.

3.1 Definición de dato

La palabra datos proviene del latín datum (plural data) que significa “lo que se da”, en el sentido de
“lo que acontece”. El diccionario de la Real Academia de la Lengua Española dice que los datos son:
“antecedentes necesarios para llegar al conocimiento exacto de una cosa o para deducir las
consecuencias legítimas de un hecho”.

Los datos suelen ser magnitudes numéricas directamente medidas o captadas, pero también pueden ser
nombres o conjuntos de símbolos; o valores cualitativos; o fahses enteras, premisas, imágenes,
sonidos, colores, etc.

Los datos, como la información, se representa mediante secuencias de símbolos. Por ejemplo, en
nuestra vida diaria representamos las palabras mediante letras tomadas de nuestro alfabeto. Éste es
simplemente uno entre los muchos alfabetos existentes. En base a un alfabeto cualquiera que
establecemos por un acuerdo cultural, podemos representar cualquier información compuesta de
palabras y cantidades numéricas, y así el que lee entenderá al que escribe.

Desde un punto de vista más operativo, un dato consiste en una información que ha sido preparada,
frecuentemente en un formato particular, para un propósito específico. En el ámbito de la informática
tiene tres acepciones diferentes.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 3 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

En un programa informático, los datos pueden distinguirse de las instrucciones. Por ejemplo, en el
código fuente las declaraciones de datos son diferentes de las declaraciones ejecutables. Así, en el
momento de la ejecución, el espacio de almacenamiento se divide entre los datos -ya sean constantes
o variables- y las instrucciones. Y los archivos de datos se distinguen de los archivos de programa.

En segundo lugar, en el contexto de un programa individual o en el de un equipo de programas, dato


puede usarse en un sentido más restrictivo significando la entrada de información -inputs- frente a los
resultados o salida de la misma -outputs-; como es el caso de la definición de datos o su diseño.

Por último, y de manera más general, se usa la palabra dato para separarla cada vez más de otros
aspectos de los programas modernos como la voz, el texto o la imagen. Este uso enfoca sobre la
naturaleza altamente formateada de los datos en las aplicaciones tradicionales destinadas al proceso de
datos, como concepto opuesto a estructuras más libres como el texto en lenguaje natural, las
comunicaciones de voz y las imágenes visuales, muy típicas de aplicaciones en entorno visual y/o
multimedia.

3.2 Tipos de datos

Se pueden considerar tres tipos de datos, según el punto del proceso en el que se encuentren:

- Datos de entrada: son los que llegan al ordenador a través de alguno de los periféricos de
entrada, tales como el teclado, lectores, etc.; o bien llegan desde unidades de
almacenamiento, como son los discos. A veces este concepto se confunde con captura de
datos -actividad de introducción de datos, casi siempre automatizada, en el que la recepción
de los datos tiene una importancia secundaria-, y con la preparación de los datos -labor que
supone preparar los datos para su entrada en el sistema, formateándolos o codificándolos-.
- Datos intermedios: son los resultados que se van produciendo y que no forman parte de la
salida porque no se especificó de esa manera en el diseño del programa.
- Datos de salida: Son los datos resultados del procesamiento de los datos de entrada y de los
intermedios. La forma de obtenerlos para su análisis es por medio de un periférico de salida,
como son las pantallas o las impresoras; o bien almacenarlos.

Para poder llevar a cabo este trabajo, el ordenador deberá contar con un intérprete, es decir, un sistema
fijo y consistente que permita pasar un número o un carácter a un valor en bytes. Una vez que el
ordenador ha utilizado ese valor para el procesamiento y ha obtenido un resultado -en bytes-, deberá
usar el intérprete de nuevo, pero de manera inversa, para pasar esos bytes a una representación
habitual para el operador. El proceso por el cual se pasa de un lenguaje máquina a un lenguaje
comprensible por un usuario, o por otra máquina, se le conoce como traducción.

3.3 Representación de los datos

Este proceso consiste en tomar los datos tal como los maneja la máquina y, mediante una traducción
previa de los mismos, convertirlos en datos legibles por el operador del sistema con la finalidad de
plasmarlos en un medio que permita su lectura.

El periférico más utilizado para la representación de datos es el monitor, seguido por la impresora.

La representación concluirá, la mayor de las veces, con una salida de naturaleza muy similar a los
datos con los que se trabaja desde el principio. Por ejemplo, si un usuario está manejando gráficos con
un programa de diseño, lo más habitual es concluir con un gráfico en la pantalla o en la impresora. Si
se trabaja con datos numéricos, o textos, o documentos, ocurre de manera similar. Es decir, la
naturaleza de los datos de entrada y de salida suele ser la misma.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 4 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

En otras ocasiones ocurrirá de manera diferente, pues un usuario puede introducir números en un
ordenador y obtener una salida textual o gráfica.

3.4 Encriptación o protección de datos

Se trata de un proceso por el cual un mensaje -tal como un texto o un gráfico- se protege para que las
personas que no estén autorizadas a recibirlo no puedan acceder a la información que contiene. Esta
actividad se denomina criptografía, y la ciencia que la estudia y la desarrolla se denomina criptología.

Al mensaje original se le da el nombre de mensaje plano o texto plano, mientras que al mensaje
convertido se le conoce como clave o cifra, texto cifrado o código.

En su forma más simple, el remitente y el destinatario poseen copias idénticas de una clave secreta, y
además poseen un algoritmo o procedimiento matemático para generar secuencias pseudoaleatorias de
bits que representan el mensaje. En una primera fase, el remitente utiliza ese algoritmo para aplicarlo
a su mensaje y concluir en el documento cifrado. El remitente, aplicando la misma clave y el mismo
algoritmo, realiza el procedimiento inverso y recrea el documento original.

Otro sistema alternativo es el del sistema del libro de claves, por el cual el remitente y el destinatario
poseen copias de una tabla de sustitución secreta., la cual se mecaniza por su inclusión en un sistema
informático que permite la traducción de mensajes con rapidez.

4 INFORMACIÓN

Comunicación o adquisición de conocimientos que permiten ampliar o precisar los que se poseen
sobre una materia determinada (tal como se indicó en el apartado Conceptos).

La información que se procesa puede ser superflúa o incompleta, o poco clara, o demasiado
voluminosa, o llegar demasiado tarde para ser utilizada. Una “buena” información tiene que reunir las
siguientes cualidades:

- Precisión: La información ha de ser precisa. La precisión a exigir dependerá de la aplicación


concreta que tenga la información que se está manejando. Hay que evitar tanto defectos de
precisión -“en el ordenador hay unos cuantos programas”- como excesos de precisión -“Los
cuatro programas suman una ocupación total de tres millones cuarenta y dos mil setecientos
cincuenta y nueve bytes-.
- Exactitud: La información ha de ser exacta. La exactitud se mide en términos de porcentaje de
error, como una medida del alejamiento de la realidad. Tambien aquí la aplicación concreta
marcará en cada caso la exactitud que ha de exigirse. No podrá obtenerse la exactitud
suficiente si los datos de partida son incorrectos o erróneos. Para el caso de una diana y unos
tiros de prueba, la precisión es lo apretado de la nube de los impactos, mientras que la
exactitud es la distancia del centro de la nube al centro de la diana.
- Oportunidad: La información ha de ser oportuna, es decir, debe llegar al usuario en el
momento adecuado para que éste pueda actuar, utilizando dicha información, antes de que
esa acción sea inútil. El tiempo disponible para que la información llegue oportunamente
variará mucho en función de la aplicación y puede ser desde unos pocos microsegundos (en
algunos controles de proceso) a varios meses (en macroeconomía y sociología). También
puede ser inoportuno a veces llegar antes de tiempo. En algunas aplicaciones interactivas se
introducen retrasos programados en las respuestas del ordenador para evitar que el exceso de
velocidad de la máquina moleste o presione al usuario.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 5 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Integridad: La información debe ser completa. En la mayoría de los casos es inalcanzable una
integridad del 100%; pero siempre conviene que sea lo más completa posible. La integridad
no debe provocar que la información contenga cosas superfluas o redundantes, es decir, no
hay que caer en el exceso de información.
- Significatividad: La información debe ser clara y relevante, de tal modo que su recepción sea
fácil y rápida. Para ello, se puede acompañar dicha información con ayudas gráficas,
visuales, auditivas o de otro tipo.

5 SISTEMAS DE CODIFICACIÓN

Un alfabeto no es más que un conjunto, fijado por acuerdo cultural, de símbolos elementales en base a
los cuales se forma la información.

Es importante recalcar la arbitrariedad de cualquier alfabeto porque si la informática ha logrado el


tratamiento automático de la información con máquinas, ha sido gracias a este concepto. No es
necesario que el alfabeto que usa una máquina en su interior sea el mismo que el que utiliza el hombre
que la ha construido y la maneja, basta con que la traducción de los símbolos internos a los externos o
viceversa se efectúe de una manera cómoda, y a ser posible (y lo és) automáticamente por la propia
máquina.

Cuando una información que originalmente venía representada en un alfabeto A1 es transcrita a un


segundo alfabeto A2, se dice que ha sido codificada. Así, se puede definir un código como una
representación biunívoca de la información de tal forma que a cada una de las unidaes de información
se le asigna una combinación de símbolos determinada. Un ejemplo clásico es el código Morse
empleado en los inicios de la telegrafía.

La acción de codificar, es decir la codificación, se puede definir como el proceso por el cual se
transforma una información simbólica -el alfabeto fuente- en otra distinta -el alfabeto destino-, sin
pérdida de información.

La primera fase se denomina codificación, mientras que la segunda fase se llama decodificación. Los
programas que permiten realizar cada fase se conocen como codificador y decodificador,
respectivamente, y pueden ser funcionales en forma hardware o software. Estas herramientas suelen
consistir en un procedimiento de tipo algorítmico. Cuando existe un aparato que realiza estas tareas se
le llama codificador-decodificador o, abreviadamente, y en el argot informático, por codec.

No confundir estos términos con los que se aplican para referirse al lenguaje con el que se escriben
algunos programas, como es el caso del código máquina y el código fuente.

Conviene hacer un inciso y refrescar los distintos tipos de caracteres que se pueden encontrar en los
componentes lógicos de los sistemas informáticos. Estos caracteres incluyen los alfanuméricos
ingleses, los especiales y los caracteres de operación, incluidos todos ellos en los denominados
caracteres gráficos. Por otro lado se encuentran los caracteres de control. Desde el punto de vista de la
pantalla, se distinguen unos de otros porque los caracteres gráficos dejan algún tipo de marca impresa
en la pantalla o un espacio en blanco, mientras que los caracteres de control producen un efecto
particular.

5.1 Tipos de código

Según su morfología, se pueden dividir en dos tipos, numéricos y alfanuméricos:

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 6 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Representación numérica: como cadenas de números que tienen un significado numérico o


textual. Los más comunes son el código binario, el hexadecimal (base 16), el octal (o bytes,
base 8), y el de coma flotante. El que cotidianamente usamos es el decimal, en el que los
datos se presentan por cadenas de cifras cuyos dígitos sólo varían entre 0 y 9.
- Representación alfanumérica: que son los que representan el alfabeto, los números, caracteres
sintácticos, y caracteres especiales como los de control del ordenador. Los más usados son el
código ASCII y el EBCDIC.

Tabla 2.1 Tipos de código de representación de datos


Grupo de representación Clases
Código decimal, de base 10
Representación numérica Código binario, de base 2
Código octal, de base 8
Código hexadecimal, de base 16
Representación alfanumérica Código ASCII
Código EBCDIC

5.1.1 Representación por medio de números

Normalmente, como se verá en el siguiente apartado, el valor de una cifra dependerá de los dígitos
que contiene, repetidos o no, y de la posición que ocupan. Es decir, los sistemas numéricos de
representación se basan en la posición de los dígitos en el seno de una cifra.

Es decir, un número X estará formado por un conjunto de dígitos, del siguiente modo:

X = xk xk-1….x1 x0 x-1…x–j
El subíndice indica la posición. Según este subíndice, cada posición tiene un peso que se conoce por
ser potencia de la base de numeración. Llamando b a la base de numeración, se tiene la siguiente
fórmula general para obtener el valor decimal de un número en cualquier base b:

-j

X= xi b  x k b 
i k k 1 0 1 j

i=k
x bk 1
 x 0 b  x b1
 x  j b

A partir de aquí, para obtener un nuevo sistema de numeración, solamente hay que elegir una base b,
cumpliéndose, además, que los coeficientes (los dígitos que forman el número en una base b)
cumplen:

0 ≤ Xi < b

Para indicar que un número está en una base numérica concreta, se termina el número con un
paréntesis o un corchete que contiene la base. También se usa un sufijo. Por ejemplo, el número 2041
en código octal, se podría poner como:

2041(8

o utilizar la siguiente tabla para añadirle el sufijo

Tabla 2.2 – Letras y códigos correspondientes


Sufijo Base Ejemplo
B 2 01111101b

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 7 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

o, q 8 175q
h 16 7Dh
d 10 123d

2041q

5.1.1.1 El código decimal

Consiste en representar cantidades por medio de cadenas de cifras, en los cuales los dígitos varían
entre 0 y 9, ambos inclusive. Se piensa que es el método más natural y primitivo de cuantificación y
representación dado que nuestros antepasados podían ayudarse de los dedos para proceder a las
cuentas.

La introducción del 0 y, por lo tanto, la extensión hacia los números negativos fue obra de los
hindúes, en una época contemporánea a la de Cristo. Los árabes, que tras la invasión de la península
ibérica trajeron su cultura, introdujeron en el mundo occidental esa numeración con algunos avances
debidos a sus propios pensadores.

Los números, dentro de una cifra, están ubicados en una posición. Esa posición les asocia con una
cantidad que es potencia de 10. Por ejemplo, 1234 en base 10 quiere decir:

1103 + 2102 + 3101 + 410


Para indicar explícitamente que el número 1234 está en base 10, se representaría así: 1234 (10.

Lo que se ha comentado hasta ahora del sistema decimal se puede resumir diciendo que es un sistema
de numeración posicional, como ya se adelantó, lo que quiere decir que el valor de una cifra depende
de la posición en la que se encuentre.

Otro ejemplo en base 10 (b=10), ahora con parte decimal:

174’25(10 = 1102 + 7101 + 4100 + 210-1 + 510-2


En la actualidad este sistema es el adoptado por todos los países con escasas y puntuales excepciones.

5.1.1.2 Sistema binario

Cuando los símbolos a codificar (alfabeto A 1) son transcritos a secuencias de un alfabeto (alfabeto A 2)
que sólo tiene dos símbolos, diremos que tenemos un sistema de codificación binaria. Estos sistemas
son especialmente importantes en informática, pues son los que se usan habitualmente. El motivo para
usar un alfabeto de tan sólo dos símbolos es de tipo técnico, como ya se verá.

En este caso, la base del sistema es el número 2. Funciona por tanto igual que el decimal, pero las
potencias de cada cifra son potencias de base 2. De esta forma, el sistema de base 2 o código binario
requiere sólo 2 dígitos diferentes, el 0 y el 1.

Tabla 2.3 Sistema decimal y su equivalencia decimal


Número en base 10 Número en base 2
0 0000
1 0001
2 0010
3 0011
4 0100
U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 8 de 15
1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

5 0101
6 0110
7 0111
8 1000
9 1001

Como se puede ver en esta tabla, y dado que 2 elevado a 3 (2 3 = 8) llega hasta 8, para representar los
primeros 10 números decimales, necesitaremos 10 cifras con cuatro posiciones. Así, el 9 requiere un
23 y además un 1, de ahí que se represente binariamente por 1001.

Para pasar de un número decimal a un número binario sólo se procede a la división del decimal por el
número 2 tantas veces como sea posible. El binario será entonces la secuencia de 0 y 1 que se leen
desde el último cociente y su resto hacia el primer resto. Por ejemplo, el número 87, en binario, sería:

87 entre 2 = cociente 43 y resto 1


43 entre 2 = cociente 21 y resto 1
21 entre 2 = cociente 10 y resto 1
10 entre 2 = cociente 5 y resto 0
5 entre 2 = cociente 2 y resto 1
2 entre 2 = cociente 1 y resto 0

Entonces, el número binario, empezando por el último cociente y tomando los restos, sería:

1010111

Por contra, para pasar de un número binario a otro decimal, lo que se debe hacer es multiplicar cada
dígito del binario por la potencia de 2 correspondiente a su posición y sumar todos los resultados. Así,
con el ejemplo anterior, el resultado sería:

1 x 20 + 1 x 2 1 + 1 x 2 2 + 0 x 2 3 + 1 x 2 4 + 0 x 2 5 + 1 x 2 6

es decir,

1 x 1 + 1 x 2 + 1 x 4 + 0 x 8 + 1 x 16 + 0 x 32 + 1 x 64, o sea,

1 + 2 + 4 + 0 + 16 + 0 + 64, lo que da 87

que es el número que teníamos al principio.

5.1.1.3 Código octal

Se trata de un código que funciona exactamente igual que el decimal o que el binario, pero la base de
su numeración es el número 8.

Así, los dígitos que emplea son los que se encuentran entre el 0 y el 7. Los procedimientos para pasar
de decimal a octal, y viceversa, son idénticos a los descritos para el caso binario. Por lo demás, sólo
queda resaltar que es la base para el cálculo de bytes en el diseño de memorias, transferencia de datos,
direccionamientos, etc.

Por ejemplo, el número 1.068, en código octal, será el número

2054

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 9 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

y para pasar este número a código decimal de nuevo, se haría

4 x 80 + 5 x 81 + 0 x 82 + 2 x 83,, es decir,

4 x 1 + 5 x 8 + 0 + 2 x 512 = 4 + 40 + 1024 = 1068

5.1.1.4 Código hexadecimal

La base de esta numeración es el número 16. Aquí se plantea un problema, ¿cómo representar los
números que superan al 9 en la representación del código hexadecimal?

Por convenio, se ha establecido que los dígitos de la base que superen al 9 se representarán por medio
de letras del alfabeto, consideradas por orden desde la letra A para el 10, es decir, los dígitos 10, 11,
12, 13,...; se representan por las letras A, B, C, D,...

Así, el número 42.424, en código hexadecimal se representaría por:

42.424 entre 16 = cociente 2651 y resto 8


2651 entre 16 = cociente 165 y resto 11
165 entre 16 = cociente 10 y resto 5

es decir, A5B8

y para devolverla a su aspecto decimal, quedaría hacer las operaciones siguientes:

8 x 160 + B(=11) x 161 + 5 x 162 + 10 x 163, que queda

8 x 1 + 11 x 16 + 5 x 256 + 10 x 4.096 = 8 + 176 + 1.280 + 40.960 = 42.424

5.1.1.5 Cambios de base de numeración

Para pasar de una base m a otra base n, se procede como sigue: primero se pasa de base m a base 10
(método conocido) y luego de base 10 a base n (también conocido).

En ocasiones para pasar de una base m a otra base n no es necesario hacer lo que se acaba de indicar,
sino que se puede usar un método más simple. Para explicar esto, conviene presentar el concepto de
correspondencia entre sistemas: cualquier base de numeración que sea potencia de otra base, como
ocurre entre las bases 2, 8 y 16, tienen una correspondencia. De este modo, por ejemplo, podemos:

- Representar cada dígito octal en forma de una combinación de tres dígitos binarios
- Representar cada dígito hexadecimal como cuatro dígitos binarios

De este modo, cuando estemos convirtiendo un número expresado en una base a otra base que sea
potencia de la primera, podemos usar la propiedad que se acaba de citar. Haciendo un pequeño
esfuerzo de imaginación inversa, se puede pasar de la base mayor a la menor sin problemas, tal como
se muestra en estos ejemplos en los que se pasan los números en base 8 y 16 a números en base 2:

3 7 6 (8
011 111 110

B 3 E 6 (16
1011 0011 1110 0110

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 10 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

5.1.1.6 Trabajo con números decimales

Para representar los números fraccionarios se usa el mismo sistema de trabajo que para los enteros. Lo
único a considerar es que el método se extiende para exponentes menores que cero. Por ejemplo, para
representar un número decimal en base 2 en representación en base 10, sería:

0,1011(2 = 12-1 + 02-2 + 12-3 + 12-4 = 11/2 + 01/4 + 11/8 + 11/16 = 0,6875(10
Este es un ejemplo de paso de binario a decimal. Para pasar de decimal a binario, por ejemplo, pues a
cualquier base sería igual, pero cambiando el 2 por la base correspondiente, lo que hacemos es
multiplicar la fracción decimal repetidamente por la base del nuevo sistema. Los números a la
izquierda de la coma en los resultados parciales se escriben como parte del resultado final binario, y se
extraen de la operación dejando siempre un cero en su lugar. El proceso se repite hasta que en la parte
decimal de un resultado parcial aparece sólo el dígito 0. Por ejemplo:

0,6875 0,375 0,75 0,5


2 2 2 2
1,375 0,75 1,5 1,0 0,1011

0,6875(10=0,1011(2

Cuando un número tenga parte entera y parte fraccionaria, para cambiarlo de base cambiaremos por
separado la parte entera y la parte fraccionaria, cada una de ellas con el método correspondiente.

5.1.1.7 Representación de números reales

Existen dos opciones, según cómo se quiera representar la existencia de un signo negativo o no:

- Representación en coma fija: Se parte de un número fijo de bits para representar la parte
entera del número, y otro número fijo de bits para representar la parte fraccionaria. Esos
números fijos de bits tienen que llegar de un convenio o consenso entre los miembros de la
comunidad científica y/o técnica. También habrá que reservar un bit para el signo del
número.
Un ejemplo, si disponemos de un byte para representar cada número real, podría ser el
siguiente: 1 bit de signo, cuatro bits para la parte entera y tres para la parte fraccionaria.

- Representación en coma flotante. Se basa en el principio matemático de que cualquier número


real N que esté en una base b se puede expresar como
N=M·bE
donde M recibe el nombre de mantisa y E es un exponente. Gracias a esta propiedad, el
problema de representar el número N se reduce a representar M y E (no hace falta
representar b, ya que se supone conocida).
Por ejemplo, se puede aplicar lo anterior para el número 38,4 (10:

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 11 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

38,4=384·10-1=0,384·102=3,84·101=3840·10-2…
y como se puede ver, no existe una representación única de la forma N=M·b E. En realidad,
existen infinitas. Siempre se elige una de las dos primeras mostradas: mantisa entera sin
ceros a la derecha o mantisa fraccionaria sin ceros tras el punto (son los dos modos
normalizados que se usan).
Si se dispone de n bits en total para representar el número, reservaremos p bits para la
mantisa y q bits para el exponente (n = p + q).
Por ejemplo, si se dispone de 16 bits para cada número y se usan 6 para el exponente
(uno de ellos para el signo del exponente) y 10 para la mantisa (uno de ellos también para el
signo de la mantisa) y se quiere representar el número -3,5 (10, se haría:
–3,5(10= –11,1(2= –0,111·1010
como se ve, lo primero que se hace es pasar el número a binario, y luego se obtiene una de
las dos representaciones normalizadas. En este caso se ha supuesto que se trabaja con
mantisa fraccionaria sin ceros tras el punto. La representación de este número sería la
siguiente:

5.1.1.8 Razones para el uso del sistema binario

Como ya se ha comentado, el sistema con el que trabajan los ordenadores es el sistema binario. Las
razones para ello son las siguientes:

- Toda la circuitería lógica necesaria para procesar la información en binario


(decodificadores, etc.) es relativamente sencilla de diseñar y está sumamente estudiada.
- La aritmética en base 2 es la más fácil de implementar. Las reglas de suma, resta,
multiplicación y división son las más breves y simples a la hora de construir un circuito
lógico que las cumpla. Al disponer de sólo dos símbolos (0 y 1), las tablas son muy simples:

+ 
0 0 0 0
0 1 1 0
1 0 1 0
1 1 10 1

La circuitería que “recuerda” estas tablas es simple; la circuitería que “recordara” las
tablas para, por ejemplo base 10, tendría que ser forzosamente voluminosa y cara de
construir.
- Existen un gran número de dispositivos biestables (con 2 estados) que se pueden emplear
para almacenar información codificada en binario. Se trata de disponer de una variable física
en la que podamos distinguir dos valores de referencia suficientemente diferenciados como
para evitar estados ambiguos. Por ejemplo:

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 12 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

-- corriente eléctrica (voltaje): distinguir entre 10 o más niveles de voltaje es delicado y


caro; distinguir entre pasa/no pasa corriente es muy económico y concede un amplio
margen de tolerancia.
-- intensidad de luz: luz apagada/luz encendida.
-- perforación en papel o cartulina
-- sentido de magnetización: distinguir entre distintos valores de campo magnético es
complicado; distinguir entre magnetización Norte-Sur y su contraria Sur-Norte es mucho
más fácil y fiable.

5.1.2 Representación alfanumérica

Debido a que el ordenador no sólo maneja datos de índole numérica, sino además de tipo carácter, y
en mayor medida, según avanzan las generaciones de PC´s, se hace necesario diseñar un código
binario que represente las letras del alfabeto y otros caracteres necesarios, con la finalidad de poder
representar nombres de ficheros, caracteres especiales, signos monetarios, mayúsculas, flechas de
dirección, etc.

Por fuerza se debe de tratar de un código binario dado que el ordenador no tiene otra manera de
trabajar dada su arquitectura actual.

5.1.2.1 Código ASCII

Su nombre resulta el acrónimo de American Standard Code for Information Interchange, es decir, se
trata de un código estándar para el intercambio de información y fue diseñado en 1963.

En total está formado por 256 caracteres, que se suelen presentar en formato tabla y se publican en la
mayoría de los libros de informática, sobre todo los de edición o los dedicados a diseño gráfico.

La mayoría de los caracteres que figuran en la tabla ASCII son imprimibles por el ordenador, pero
pueden presentarse excepciones debido a que en algunos equipos, algunos códigos de ASCII
representan procedimientos de función. En general se puede afirmar que siempre los 128 primeros
caracteres serán imprimibles. Entre estos cabe destacar:

- Los 26 códigos que representan las letras en mayúscula, de la A a la Z


- Los 26 siguientes códigos, que representan las letras en minúscula, de la a a la z
- Los siguientes 32 códigos que representan caracteres especiales de los que figuran en el
teclado

Cada letra y cada carácter tiene asignado un código que varía de entre 1 a 3 cifras. por ejemplo, la
letra H tiene asignado el código 72. Dado que el ordenador trabaja con bytes, es decir, código binario
agrupado en 8 dígitos, es decir, en octetos, su codificación binaria será:

72 entre 2 = cociente 36 y resto 0


36 entre 2 = cociente 18 y resto 0
18 entre 2 = cociente 9 y resto 0
9 entre 2 = cociente 4 y resto 1
4 entre 2 = cociente 2 y resto 0
2 entre 2 = cociente 1 y resto 0

por lo que el código en byte para la letra H será

01001000

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 13 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Hay que tener en cuenta que cuando se procede a las divisiones sucesivas entre 2 para averiguar los 0
y 1 que forman el byte, podría ocurrir que se acabara la división antes de reunir los 8 dígitos, por lo
que entonces se rellena por la izquierda con 0 hasta llegar al octeto.

5.1.2.2 Código EBCDIC

Acrónimo de Extended Binary Coded Decimal Interchange Code. Se trata de un esquema de


codificación para caracteres basado también en grupos de 8 bits. Este sistema se empezó a usar hace
bastantes años en las primeras máquinas de IBM y se generalizó para el caso de los grandes sistemas y
medios sistemas de IBM.

El sistema de codificación maneja los mismos caracteres gráficos, pero asigna grupos de 8 bits
diferentes que en el ASCII, por lo que la codificación resultará diferente.

6 MEDIDA DE LA INFORMACIÓN

Se trata de un sistema diseñado para estimar la cantidad de información manejada por un sistema
informático, por un programa o por un determinado procedimiento. Para ello se definen los siguientes
términos:

- Bit: Un elemento biestable (con dos posibles estados) en el que se diferencian dos valores, es
decir, es una variable binaria. A efectos de representación, escribiremos los dos posibles
valores de la variable binaria como 0 y 1. De esta forma, el valor tomado en un instante dado
por la variable binanria vendrá dado por un dígito binario que valdrá 0 o 1.
Como el término dígito binario es algo largo de escribir, se abrevia con la palabra bit,
que proviene de la contracción de la expresión inglesa BInary digiT, que además, en inglés,
significa “trocito”.
Podemos codificar cualquier alfabeto de partida en binario, o sea mediante bits. Cuantos
más símbolos contenga el alfabeto más número de bits nos harán falta para codificarlo, pero,
en definitiva, no hay información que no podamos codificar en binario. La prueba es que
hoy en día tanto la información visual como la auditiva de alta fidelidad se codifica en
binario.
- Byte: Como el bit es una unidad de medida muy pequeña, es costumbre usar unidades de
magnitud superior. Un bytes es un conjunto de 8 bits. Así, en lugar de decir que un mensaje
tiene 32 bits, podemos decir que tiene 4 bytes.
Un byte puede almacenar 8 dígitos binarios, es decir, dos dígitos hexadecimales. El
número de valores posibles que se pueden almacenar es de 28=256.
Los bits de un byte se numeran de derecha a izquierda del 0 al 7, es decir, se
corresponden con los exponentes de las potencias de base 2. La agrupación de los 4 bits
(superiores o inferiores) de un byte se llama nibble. Por tanto, un byte contiene 2 nibbles. El
que corresponde a los bits 0 a 3 se llama nibble inferior, y el de los bits 4 a 7 se llama nibble
superior.
El nibble es una unidad de trabajo mucho más cómoda que el bit, ya que en cada nibble
se almacena un dígito hexadecimal.
- Carácter: Es la unidad de información a nivel de lenguaje humano. Un carácter es, de hecho,
cualquier símbolo del alfabeto. Constituye una buena medida de información en términos
directamente aplicables a textos. Podemos clasificar los caracteres en:
-- alfabéticos: letras y algún que otro carácter asimilado
-- numéricos: los dígitos numéricos del 0 al 9
-- especiales: todos los restantes (letras de alfabetos extranjeros, letras griegas, signos de
puntuación, signos monetarios, signos de operaciones aritméticas, etc).

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 14 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Múltiplos: Normalmente, en un ordenador, para representar un carácter se usa un tamaño de 1


byte. Cuando las cantidades de información a medir son grandes, se utilizan múltiplos de las
unidades mencionadas.
La K es un factor de multiplicacion de 210=1.024. Así que 1 Kbit=1.024 bits y 1
Kbyte=1.024 bytes=8.192 bits. Se toma el valor de 1.024 en vez de 1.000 precisamente por
ser 1.024 una potencia de 2, y en consecuencia, un valor mucho más conveniente para
máquinas que trabajan en sistema binario.
La M es la abreviatura de Mega y representa el factor de multiplicación 2 20= 1.048.576.
La G es abreviatura de Giga y repesenta el factor de multiplicación 2 30= 1.073.741.824.

Utilizando el byte como unidad de medida, el esquema o la tabla de medición para la capacidad de los
distintos dispositivos de almacenamiento o de memoria, RAM, discos duros, etc., quedará:

Tabla 2.4 - Unidades de medida de la información


Tipo de unidad Capacidad (bits)
1 byte 8
1 Kilobyte (Kb) 1.024
1 Megabyte (Mb) 1.024 Kb = 1.048.576
1 Gigabyte (Gb) 1.024 Mb = 1.073.741.824
1 Terabyte (Tb) 1.024 Gb =

7 SOFTWARE

Se trata de un término genérico para referirse a aquellos componentes de un sistema informático que
son intangibles, es decir, que no tienen presencia física. Se usa comúnmente para referirse a los
componentes no físicos de un ordenador y a las formas simbólicas y ejecutables de un programa.

Una distinción cabe en esta terminología. Se denomina software de sistemas a una componente
esencial del hardware y que tiene como misión proporcionar funcionamiento global al sistema
informático. Su entidad suele ser mínima, aunque cada vez se implementa más software de sistemas, y
suele ser proporcionado por el propio fabricante de placas, microprocesadores y ordenadores.

Se llama software de aplicación, o simplemente aplicación, a aquel software o programa que tiene
como objetivo suplir procesos y procedimientos en el seno de una organización, y que normalmente
ha sido diseñado para ello. Los suelen proporcionar empresas creadoras de software y los venden
como software producto o paquetes informáticos, según su entidad.

Entre las tareas típicas de un software están: mover, es decir, trasladar los datos o la información a la
memoria interna del ordenador o sacarla de ahí para llevarla a los distintos periféricos; calcular, o
hacer operaciones matemáticas de todo tipo; y comparar, y, consecuentemente, ordenar información.

7.1 Tipos de software

No existen criterios unánimes o convenidos para proceder a una clasificación del software que existe
actualmente. Pueden insinuarse diversos criterios, agrupados en dos.

7.1.1 Según el público al que va dirigido

Se puede clasificar por la forma de adquirirlos en:

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 15 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Aplicaciones de encargo: Se trata de una aplicación que una empresa encarga a otra
desarrolladora de software con el objetivo de suplir una tarea o procedimiento concretos
dentro de su organización. Se les llama así, por que en el contrato se suele especificar que el
pago importante de dicho contrato se efectuará una vez que el cliente haya recibido el
programa en su sistema informático y se haya comprobado su correcto funcionamiento.
- Software llave en mano: Son aquellos programas que se dirigen a una amplia capa de
población e, incluso, suelen venir previamente instalados en los ordenadores que se sirven a
sus compradores. Se llaman “llave en mano” debido a que están terminados en el momento
en el que el consumidor se interesa por él y lo adquiere, probablemente siguiendo una
analogía relacionada con la compra y venta de pisos y propiedades inmobiliarias.

Otra clasificación se basa en el tipo de usuarios del software, por su funcionalidad:

- Programas generalistas: De carácter general y que tienen una amplia difusión, pudiendo ser
utilizados por distintas clases de clientes y para distintas actividades, como es el caso de los
procesadores de texto, hojas de cálculo, bases de datos,...
- Programas de aplicación vertical o sectorial: Paquetes que suelen dirigirse a profesionales o
pymes que los incluyen dentro de sus procedimientos. Por ejemplo, un programa para
gestionar los pacientes de una consulta médica, una aplicación que lleva un parque de
propiedades inmobiliarias y la contabilidad de las mismas, para administradores de fincas,
etc.
- Programas de aplicación horizontal o funcional: Dirigidos a un público muy amplio y que este
puede adaptar a sus circunstancias o trabajar con él tal como está. Es el caso de un programa
de contabilidad, o un programa para llevar una videoteca.

Por la utilidad que el diverso software tiene para el usuario, se puede clasificar en:

- Programas de cálculo, que normalmente serán hojas de cálculo, y que servirán para proceder
a cálculos medianamente complejos, contabilidades más informales, presupuestos,...
También existen programas de tratamiento estadístico de la información, programas de
cálculo propiamente dicho, matemáticas escolares, gráficos de funciones matemáticas, etc.
- Aplicaciones de texto, que normalmente consistirán en procesadores de texto y que sirven
para elaborar documentos de extensión indefinida. Estos pueden ir desde lo más sencillo,
como el propio editor del DOS, hasta procesadores de texto complejos, que diseñan páginas,
diseñan textos, etc. Los programas que sirven para maquetar páginas, tales como los que se
utilizan para el diseño de las páginas de los periódicos y revistas, pueden incluirse también
aquí, a pesar de compartir características con los de aplicación al diseño.
- Aplicaciones de diseño: Distinguiendo entre el diseño industrial, como es el caso de las
diversas herramientas CAD, el diseño electrónico, el diseño publicitario, el diseño
periodístico o el diseño gráfico.
- Paquetes gráficos: Compartiendo muchas de las características de los del apartado anterior,
se destacan de estos por las importantes aplicaciones en el desarrollo de aplicaciones
multimedia, así como en el diseño de páginas WEB para Internet.
- Programas de bases de datos: que permiten el mantenimiento y gestión de información.
Existen dos grandes apartados en esta modalidad del software, las bases de datos clásicas o
basadas en datos, y las bases de datos documentales, capaces de gestionar información de
documentos. Actualmente existen también bases de datos de sonidos, de imágenes y de
películas o de trozos de las mismas.

Además hay una clasificación por área de aplicación o del sector económico al que se dirige. Es el
caso de los programas industriales, comerciales, para el hogar, científicas, sanitarias, educativas, etc.

7.1.2 Según su relación con el sistema

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 16 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Todas las clasificaciones anteriores consideran el punto de vista de los usuarios que van a aplicar esos
paquetes. Otra clasificación, desde otro punto de vista, es la que se ciñe a la gestión del sistema
informático. Así, podemos clasificar el software en:

- Sistemas operativos: Es el encargado del control de las diferentes unidades del hardware, así
como de la manipulación física de la información dentro del sistema informático. El motivo
de su existencia es proporcionar a los sistemas un núcleo común que les permita hacer esas
tareas -como grabar en un disquete, mover una dirección de memoria, ordenar información,
formatear una unidad de almacenamiento, gestionar los periféricos- dado que si cada
aplicación tuviera que implementar esas utilidades, los sistemas resultarían redundantes y las
aplicaciones muy caras.
- Programas de utilidad o programas de propósito general: Su objetivo es ayudar a los
usuarios en tareas relacionadas con el manejo o manipulación de la información, tales como
pasar información de un disquete a otro, a un disco duro y viceversa, herramientas para el
desarrollo de ciertas aplicaciones, programas de clasificación, programas para la impresión
de la información, programas para reestructurar la información en los dispositivos de
memoria masiva, para listar información, etc.
- Programas de aplicación: programas que le permiten hacer al usuario determinadas tareas y
procedimientos externos al propio sistema, como es el caso de los procesadores de textos,
programas de contabilidad, etc.

Un resumen de lo explicado hasta aquí sobre los diferentes tipos de software, se puede consultar en la
siguiente tabla:

Tabla 2.5 – Tipos de software


Programas de control Gestión del sistema, gestión
Programas de trabajos y gestión de datos
de sistema Programas de servicio Traductores, cargadores,
enlazadores y utilidades
Software Contabilidades, nóminas,
Aplicaciones verticales gestión de inventarios y
Programas gestiones específicas
de aplicación PT, editores, HC, SGBD,
Aplicaciones horizontales programas de comunicaciones,
paquetes integrados, y
programas de CAD

7.2 Características del software

Se distinguen varias según los autores, ya sean españoles o extranjeros, y entre ellos. No obstante una
lista sencilla de las características del software podría ser la siguiente:

- Facilidad de uso y aprendizaje: Es obvio si se quiere conseguir su adaptación a la empresa de


manera rápida y eficaz. Para ello debe ser amigable, es decir, que invite al usuario a
aproximarse a él y a utilizarlo; debe ser intuitivo y estructurado, de forma que la evolución
del aprendizaje sea rápida y modular, debe disponer de un servicio de ayuda general y
contextual, y, por último, debe incluir una guía de aprendizaje y manejo apropiados para los
distintos niveles de usuario.
- Productividad: Lo que se pretende con el apoyo del software, sobre todo en el mundo
empresarial, es que el tiempo de trabajo redunde en un mayor logro o, lo que es lo mismo,
que la productividad de los empleados aumente. En este sentido, la incidencia de la
informática en distintas áreas y sectores económicos es evidente, hasta el punto de que se

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 17 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

habla de nuestra era como la segunda revolución industrial, revolución ocasionada por la
aparición y desarrollo de la informática.
Resulta un extremo oído en diversos medios en muchas ocasiones, que la informática es
uno de los factores socioeconómicos que más destrucción de empleo provoca, debido a que
aspectos de ciertos trabajos como la automatización, la robótica, y la administración, sin el
desarrollo de la informática no serían posibles.
- Multifunción: El software, sobre todo el software generalista y de administración y gestión
general puede utilizarse en diferentes tareas, de forma que cubre diversos espectros de
desempeño con lo que distintos trabajadores pueden apoyarse en el mismo software para
llevar a cabo su labor. Es el caso de los procesadores de texto que son útiles a escritores,
periodistas, profesores, alumnos, personal de la administración de cuadros bajos y medios,
técnicos, profesionales, etc.
- Confiabilidad: El grado de confianza que nos ofrece el software y, como medida, el tiempo
que va a tardar éste en producir un fallo. Igual que la confiabilidad de un coche depende de
su diseño, de lo bien ensamblado que esté y de cuánto tiempo tardan en fallar sus
componentes, la confiabilidad del software depende sólo de la corrección del diseño y de su
aplicación.
Una definición de confiabilidad es que un programa debe ajustarse a las especificaciones,
nunca debe producir resultados incorrectos con independencia de la entrada, nunca debe
permitir su corrupción, debe reaccionar de manera significativa y útil en las situaciones
inesperadas, y sólo debe fallar por completo cuando sea imposible seguir avanzando. En
resumen, un sistema es confiable en la medida en que proporciona los servicios que los
usuarios esperan de él. Y según los usuarios van adquiriendo experiencia, el principal
criterio para valorar los programas por los usuarios es la confiabilidad, por encima de la
eficiencia.
Para ser confiable el software debe partir de unas especificaciones ajustadas a la función
que debe desempeñar, cada una de las partes del diseño debe ser una función bien definida y
demostrable, debe provenir de una transformación correcta de la notación del diseño a un
lenguaje de programación, su documentación debe describir de forma correcta las
características del sistema, y el software debe incorporar mecanismos de evolución.
- Flexibilidad: En la medida en que deben adaptarse mejor a futuras variaciones en
componentes del hardware y a las posteriores versiones de los software con los que tiene que
interconectar. Esta flexibilidad se gana cuando el diseño es el correcto y cuando la
modularidad del programa está demostrada.
- Atractivo: Si un software no es atractivo, los usuarios no se acercarán a él impidiendo su
manejo, difusión y prueba. La amigabilidad de la que se hablaba en el punto referente a la
facilidad de uso y de aprendizaje es esencial. Así la relación entre el usuario y el programa
debe ser interactiva por medio de una interfaz -aspecto de la pantalla que facilita la
comunicación entre el programa y el usuario- intuitiva y muy amigable, aunque la carga
gráfica sea elevada.

7.3 Normativa legal

Casi toda ella tendente a proteger a los ciudadanos de la difusión y consulta, por parte de entes o
personas privados, de la información masiva que se maneja gracias a la informática. Así nació la
LORTAD, o Ley Orgánica de Regulación y Tratamiento Automático de Datos, aprobada en 1992. En
esta ley se tratan los siguientes puntos:

- Cuales son los principios de la protección de datos: pertenencia de los datos, la exactitud de
los mismos y su uso conforme al objetivo para el que se solicitaron
- Regulación y protección jurídica de los datos de carácter personal
- Derechos de las personas a los que se les ha solicitado datos
- Disposiciones referentes a la información de carácter público

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 18 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Crea y estructura la Agencia de Protección de Datos


- Establece infracciones punibles según la actual Ley y marca las sanciones correspondientes
- Regula el movimiento de información transfronteriza

Por otro lado, la legislación europea también afecta a la normativa de nuestro país, en tanto que se
mantiene acorde con la Constitución vigente. Así, España se ve sujeta a los diferentes convenios
elaborados y aprobados por el Consejo de Europa referentes a la regulación del tratamiento de los
datos, los cuales fueron ratificados por nuestro país en enero de 1984. Además, se encuentran las
directivas europeas sobre derechos de autor, patentes y marcas, duración de los derechos, normas de
reproducción, cánones, etc., directivas que entraron en vigor a partir de noviembre de 1987.

7.3.1 Desde el punto de vista comercial

El software que nos podemos encontrar básicamente se ajustará a uno de los tres siguientes grupos:

- Software de dominio público o Freeware: Software en el cual sólo hay que pagar el
soporte sobre el cual se halla. Esto no quiere decir necesariamente que sean malos
programas, pues a veces pueden equipararse a los comerciales.
- Shareware: Se ha de pagar el precio prefijado por el autor en caso de que el software se
vaya a utilizar con frecuencia para fines profesionales.
- Software comercial: La relación entre el software y el usuario está sujeta a un contrato que
especificará detalladamente qué es lo que el “propietario” del softwkare puede y no puede
hacer con él.

8 ORGANIZACIÓN DE INFORMACIÓN EN LAS UNIDADES DE ALMACENAMIENTO

Como se ha visto en el tema anterior (ver esquema que se dio allí), los discos duros se construyen con
varios -suelen ser unos seis- discos montados sobre plataformas rígidas denominadas platters. Estos
discos se colocan unos encima de otros, dejando un espacio intermedio, e insertados en un mismo eje.
Cada uno de los seis discos tiene dos caras susceptibles de recibir información, siendo una de ellas la
cara 0 y la otra la cara 1, para el primer disco. Sucesivamente para el segundo disco, es decir, caras 2
y 3. Así hasta llegar a las últimas caras 10 y 11.

Asimismo, cada cara de un disco se divide en sectores circulares desde el eje, denominados sectores, y
en pistas o coronas concéntricas, que se van numerando desde la pista 0, la más exterior, de uno en
uno, hasta la última pista, la más cercana al eje. Cada pista se divide en segmentos o sectores de igual
superficie, denominados sectores, y que tienen, por lo tanto, la misma capacidad.

Cada una de estas coronas o pistas se puede prolongar pasando, de manera imaginaria, por las mismas
pistas de los otros discos del disco duro. A esta figura imaginaria se le llama cilindro y,
evidentemente, un disco duro tiene tantos cilindros como pistas, y, a la vez, cada cilindro tiene 12
caras, caso de tratarse de un disco duro de 6 discos.

Cada sector de una pista se divide a su vez en una serie de unidades de almacenamiento, a las cuales
se hace referencia por sus espacios iniciales denominadas clusters. Dependiendo del fabricante de
discos, estas unidades de almacenamiento son diferentes.

Cada unidad de almacenamiento se estructura de forma similar. El sistema informático tiene un área
en el comienzo del disco duro donde se guardan, sobre todo, dos tipos de información, el boot y la
FAT. La boot, o bota en inglés, contiene un programita no removible desde el exterior -a no ser que se
formatee el disco- que se llama bootstrap -aunque a veces se carga directamente desde la BIOS sin
usar el disco duro como intermediario-. Este programa se encarga de cargar otros programas más

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 19 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

largos que generalmente consisten en programas del DOS. El término proviene del Barón de
Munchausen, que en una de sus historias presumía de que se encontraba atrapado en un pantano en el
cual se hundía y se le ocurrió unir los cordones de sus botas para sacarse a sí mismo de allí.

La FAT o File Allocation Table es la tabla que organiza los ficheros, directorios y subdirectorios en el
disco duro. Es decir, “recuerda” dónde está cada uno de ellos en el disco y cuando se pide una
dirección o referencia para la búsqueda de información, es la FAT quién proporciona los contactos.

Algunos virus sienten especial apetito por estos dos espacios de memoria del disco duro y son
especialmente “virulentos”, pues un daño en el boot impide la carga de los programas gestores del
sistema operativo, y un error o un borrado de la FAT impide la localización de la información en el
disco, incluida aquí, también la del sistema operativo. En esos dos casos, la forma de proceder es
eliminar el virus y formatear el disco duro -casi siempre- perdiendo la información contenida en él.

9 ADMINISTRADOR DE SISTEMAS INFORMÁTICOS

Esta pregunta podría tratarse en cualquiera de los tres capítulos que se han explicado hasta aquí. El
motivo por el que se trata en este punto de la unidad didáctica 3 es porque ya se tiene conocimientos
sobre sistemas informáticos en la medida adecuada para apreciar convenientemente el tipo de trabajo
que se va a desarrollar en un puesto de administrador de sistemas informáticos.

Para dejarlo descrito lo mejor posible, se va a agrupar la información en cuatro aspectos: competencia,
capacidades, funcionalidades e integración en la empresa.

9.1 Competencia general

Implantar, explotar y mantener los sistemas informáticos en que se apoya la gestión y administración
de las empresa, prestando soporte a los usuarios finales.

En la actualidad, los sistemas informáticos de que se acaba de hablar son, fundamentalmente, redes
locales, de carácter pequeño y mediano. También se aplica a sistemas multiusuario, aunque en menor
medida.

Fundamental será la comprensión de Internet y su aplicación en la gestión de ciertas funcionalidades


empresariales. Por otro lado, serán necesarios algunos conocimientos legales, pues la gestión que se
pide de un administrador no puede poner en entredicho la gestión global de la empresa, de tal modo
que el administrador de sistemas debe desarrollar su labor aplicando los requisitos legales vigentes.

9.2 Capacidades profesionales

- Organizar, administrar y controlar lo servicios en sistemas informáticos monousuario,


multiusuario y en red.
- Instalar y configurar sistemas informáticos en entornos monousuario y multiusuario.
- Coordinar la puesta en marcha de redes de área local y la conexión a sistemas informáticos de
redes extensas.
- Organizar y administrar los recursos informáticos, compartidos y no compartidos, atendiendo
a las necesidades y/o requerimientos de la empresa.
- Implantar e integrar software de aplicación, específico y/o de propósito general en el sistema
informático.
- Interpretar y aportar soluciones a las necesidades y requerimientos funcionales formulados por
los usuarios.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 20 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Definir y proponer cambios y mejoras en el sistema y aplicaciones encaminados a optimizar


las prestaciones de los sistema informático manteniéndose informado de las innovaciones,
tendencias, tecnologías y normativa aplicable.
- Establecer y aplicar procedimientos que aseguren la integridad, disponibilidad y
confidencialidad de la información.
- Mantener relaciones fluidas con los miembros del grupo funcional en el que está integrado.

9.3 Requerimientos de autonomía en las situaciones de trabajo

- Organización y control de los servicios en sistemas informáticos de tipo medio (ordenadores


PC´s) operando en entornos monousuario, multiusuario y/o conectados en red local.
- Supervisión de la entrega y aceptación de materianl informático (equipos, productos software
y soportes de información).
- Instalación, configuración e integración de productos software en el sistema.
- Instalación y configuración de equipos (ordenadores y periféricos) en entornos monousuario y
multiusuario.
- Diseño y realización de pruebas de equipos y programas.
- Establecimiento de procedimientos para la seguridad y protección del sistema y la
información.
- Identificación de problemas en la utilización del sistema, derivados de la instalación y/o
configuración errónea de equipos y programas.
- Control del mantenimiento operativo o preventivo reablizado a los equipos e instalaciones.
- Realización de guías, manuales y programas que faciliten al usuario/cliente la explotación del
sistema y/o las aplicaciones.
- Elaboración de informes técnicos sobre las prestaciones de nuevos equipos y programas para
la toma de decisiones por el usuario/cliente.

9.4 Posición en el proceso empresarial

- Empresas encuadradas en distintos sectores de la actividad económica, dentro del departamento de


informática o de proceso de datos, departamento técnico y similares. Es decir, la empresa puede ser
cualquiera, pero disponde de un centro de procesos, o de centralización de la gestión de la
información, o de su parque de equipos informáticos.
- Empresas que se dedican al montaje de sistemas informáticos para otras empresas, incluendo
ensamblaje de ordenadores, diseño e implantación de redes, etc.
- Empresas de servicios informáticos, en el sector de servicios a empresas, como asesoría, análisis,
automatización, etc.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 21 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Figura 2.1 Esquema de Pocahontas realizado en código ASCII

.:::.
.::::::-'``'::::.
.:::'',,cd$$$$$$$bc,`.
::::,$$$$$$$$$$$$$$$$$,`.
:::'z$$$$$$$$$$$$$$$$$$$$c,
.:::'z$$$$$$$$$$$$$$$$$P"" _`.
::::'z$$$$$$$$$$$$$$$$$",d$$$$$c,.
::::: P".,,. "$$$$$$$$$$$$P" ,c,`$,`
.::::::,c$$$$$$$$$$$$$$$$$$P J$",c$$.`.
:::::::,$P" ,`?$$$$$$$$$$$$,,,c$$$$$$L&lt;.
::::::: d$. ,$$$b,"$$$$$$$$$$$$$$$$$$$$$.$
:::::::: $$$cccccccd$$$$$$$$$$$$$$$$$$$$$$$`:
:::::::: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$,::
::::::::'J`$$$$$$$$$$$$$$$$"$$,$$$$$$?$$$$$$F::.
.:::::::::'$,"$$$$$$$$$$$$$$$$$P??"""",,$$$$$$F:::
::::::::::: ?$$`$$$$$$$$$$$PF"" ,,&lt;&lt;CC&gt;'J$$$$$P'::::
.:::::::::::::."$h"$$$$$$$$$hc.-?????'' ,d$$$$$$'::::::
::::::::::::::::::&lt;L"$$$$$$$$$$$$$cccccc$$$$$$$F':::::::
.:::::::::::::::::::::: ?$$$$$$$$$$$$$$$$$$$$$$$'.:::::::::
:::::::::::::::::::::::::: "?$$$$$$$$$$$$$$$$$P"::::::::::::
.::::::::::::::::::::::::::::?$ccc,`"??$$$$$$$P":::::::::::::::
.::::::::::::::::::::::::::::::$$$$$$$$$$ccciicc$$`::::::::::::::
:::::` ::::::::::::::::::::::::?$$$$$$$$$$$$$$$$$$ :::::::::::::::
:::' :::::::::::::::::::::::::?$$$$$$$$$$$$$$$$$$'::::::::::::::::
::: .::::::::::::::::::::::::::?$$$$$$$$$$$$$$$$$P:::::::::::::::::
::' :::::::::::::::::::::::::::?$$$$$$$$$$$$$$$$$F:::::::::::::::::
' ::::::::::::::::::'`.,,,.```'?$$$$$$$$$$$$$$$$$'::::::::::::::::
:::::::::::::::',zd$$$$$$$$$,`\"$$$$$$$$$$$$$$$P.:::::::::::::::
:::::::::::::'zc$$$$$$$$$$$$$$$c`\`?$$$$$$$$$$$P'::::::::::::::'
:::::::::::::'z$$$$$$$$$$$$$$$$$$$$c`! ?$$$$$$$$$F,&lt;`::::::::::'
:::::::::::::'z$$$$$$$$$$$$$$$$$$$$$$$$c`!&gt;"?$$$$$$:$,! .:::::''
:::::::::::::,$$$$$$$$$$$$$$$$$$$$$$$$$$b,`!!`"$$$$:$$`!'c,``
:::::::::::::J$$$$$$$$$$$$$$$$$$$$$$$$$$$$b,&lt;!!,??$c$$F!!'$$c
::::::::::::'J$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$b`&lt;!!!!?"",!! $$$b'c,
::::::::::::,$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$c,cc,``&lt;!`,z$$$$L`CC,
::::::::::::J$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"&lt;!(?$$$$$$'CCC&gt;
:::::::::::'J$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$F&lt;!!!!`?$$$$ CCCC
::::::::::'J$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$P"""??$$$$,!!!!! $$$$.CCCC
::::::::::,$$$$$$$$$$$$$$$$$$$$"z$$$$$P",cCCCCCCc,"?$,`!!! $$$F&lt;CC&lt;C
:::::::::'J$$$$$$$$$$$$$$$$$$$"f$$$P'cCCCCCCCCCCCCC&gt;,?b,`&lt;!?$P,CCCc,
::::::::: J$$$$$$$$$$$$$$$$$$"J$P"cCCCCCCCCCCCCCCCCCCCc"?$c$"&lt;CCCCCC&gt;.
::::::::'J$$$$$$$$$$$$$$$$$$P4F,cCCCCCCCCCCCCCCCCCCCCCCCc`",&lt;CCCCCCCCC,
:::::::'J$$$$$$$$$$$$$$$$$$" cCCCCCCCCCCCCCCCCCCCCCCCCCCCc'CCCCCCCCCCC&gt;,
:::::::,$$$$$$$$$$$$$$$$$$',CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC&gt;&gt;
::::::'J$$$$$$$$$$$$$$$$$F,CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC&gt;,CC.
:::::'J$$$$$$$$$$$$$$$$$$,CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC&gt;',CCC;
:::::,$$$$$$$$$$$$$$$$$$'CCCCCCCCCCCCCCCCCCCCCCCCCCCC&gt;CCCCC&gt;&lt;CCCCC',CCCC&
:::: $$$$$$$$$$$$$$$$$$'&lt;CCCCC&gt;&lt;CCCCCCCCCCCCCCCCCCCCC CCCCCCC&gt;',&lt;CC
::: d$$$$$$$$$$$$$$$$$F&lt;CCCCCC C,CCCCCCCCCCCCCCCCCCC CCCC",`',&lt;CCCC'
:: $$$$$$$$$$$$$$P?$$$ CCCCCC'&lt;&gt;&lt;CCCCCCCCCCCCCCCCC&gt;,'&lt;C&gt;',cCCCCC&gt;',c
:'d$$$$$$$$$$$$$$$$c, `CCCCCC,C CCCCCCCCCCCCCCC&gt;&gt;'&lt;C,ccCCCC"C.,c$$$$- ,c$$
',$$$$$$$$$$$$$$$$$$$$$c,`C&gt;'&lt; ,`''',,,,ccccccCCCCCCCCCCCCCC',$$$$Czd$$$$$
,$$$$$$$$$$$$$$$$$$$$$$$$$c,&lt;CCCCCCCCCCCCCCCCCCCCCCCCCCCCC&gt;,d$$$$$$$$$$$$$
J$$$$$$$$$$$$$$$$$$$$$$$$$$$$c,`&lt;CCCCCCCCCCCCCCCCCCCCCCC&gt;',$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$c,`&lt;CCCCCCCCCCCCCCCCCCC -$$$$$$$$$$$$$$$$$
?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$b,&lt;CCCCCCCCCCCCCCC' `?$$$$$$$$$$$$$$$
:."?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$c.&lt;CCCCCCCCCC' `?$$$$$$$$$$$$$
::::."?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$b,`&lt;CCCCCC "$$$$$$$$$$$$
::::::::.`"?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$b,`&lt;CC `?$$$$$$$F
::::::::::::::`"??$$$$$$$$$$$$$$$$$$$$$$$$$$$$$c "??"
:::::::::::::::::::,c`""$$$$$$$$$$$$$$$$$$$$$$$$$c,
:::::::::::::::::'cCCCCCcc`"??$$$$$$$$$$$$$$$$$$$$$$c,

Ciclos formativos – 1º
Sistemas Informáticos Monousuario y Multiusuario

Unidad Didáctica 5 - Sistemas operativos. Introducción.

1 CONCEPTOS BÁSICOS....................................................................................................................................3

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 22 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

2 SISTEMA OPERATIVO....................................................................................................................................3
2.2 HISTORIA................................................................................................................................................. 4
2.2.1 Primera generación (1945–1955)..........................................................................................................4
2.2.2 Segunda generación (1955–1968)..........................................................................................................5
2.2.3 Tercera generación (1968–1981)...........................................................................................................6
2.2.4 Cuarta generación (1981-2000).............................................................................................................7
2.3 COMPONENTES TÍPICOS DE UN SISTEMA OPERATIVO..................................................................................7
2.3.1 Programas de utilidad............................................................................................................................7
2.3.2 Programas de aplicación........................................................................................................................7
2.3.3 Programas de facilidad...........................................................................................................................8
2.3.4 Programas de control.............................................................................................................................8
2.4 TIPOS DE SISTEMAS OPERATIVOS............................................................................................................ 10
2.4.1 Por su estructura organizativa.............................................................................................................10
2.4.2 Por el tratamiento del hardware..........................................................................................................11
2.4.2.1 Clásicos.......................................................................................................................................................... 12
2.4.2.2 Máquinas virtuales.........................................................................................................................................12
2.4.2.3 Servidores virtuales......................................................................................................................................12
2.4.2.4 Sistemas operativos de red............................................................................................................................12
2.4.3 Por su tecnología de construcción.......................................................................................................13
2.4.3.1 Monoprogramación........................................................................................................................................13
2.4.3.2 Multiprogramación........................................................................................................................................13
2.4.3.3 Multiproceso..................................................................................................................................................14
2.4.4 Por su relación con el usuario..............................................................................................................14
2.4.4.1 Sistemas BATCH o secuenciales o por lotes.................................................................................................14
2.4.4.2 Sistema Interactivo........................................................................................................................................15
2.4.4.3 Sistema de tiempo compartido......................................................................................................................15
2.4.4.4 Sistemas de tiempo real.................................................................................................................................16
2.4.4.5 Sistemas operativos distribuidos...................................................................................................................17
2.4.4.6 Por el número de usuarios.............................................................................................................................17
3 SISTEMAS OPERATIVOS MÁS USUALES................................................................................................18
3.1 CP/M.................................................................................................................................................... 18
3.2 PICK.................................................................................................................................................... 18
3.3 OASIS.................................................................................................................................................. 18
3.4 MS-DOS............................................................................................................................................... 18
3.5 OS/2..................................................................................................................................................... 19
3.6 UNIX..................................................................................................................................................... 20
3.7 LINUX................................................................................................................................................. 20
3.8 WINDOS 3.X, 95 Y 98............................................................................................................................. 20
3.9 WINDOWS NT....................................................................................................................................... 21
3.10 APPLE.................................................................................................................................................. 21
4 SEGURIDAD EN LOS SISTEMAS OPERATIVOS.....................................................................................22
4.1 SEGURIDAD LÓGICA............................................................................................................................... 22
4.1.1 Control de Usuarios..............................................................................................................................22
4.1.2 Protección de los Recursos...................................................................................................................22
4.2 REQUISITOS DE SEGURIDAD EN LOS FICHEROS........................................................................................23
4.3 SEGURIDAD EN LA TRANSMISIÓN DE DATOS........................................................................................... 23
4.4 SISTEMAS TOLERANTES A FALLOS........................................................................................................... 23
5 FUTURO DE LOS SISTEMAS OPERATIVOS............................................................................................23
5.1 PRINCIPIOS DE DESARROLLO FUTURO...................................................................................................... 24
5.2 TENDENCIAS DEL MERCADO.................................................................................................................. 25
5.2.1 Windows Me e Internet por Televisión.................................................................................................25
5.2.2 Apple y NeXT........................................................................................................................................25
5.2.3 Perspectivas de los Sistemas Operativos..............................................................................................26

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 23 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

1 CONCEPTOS BÁSICOS

Aplicaciones informáticas: Conjunto de programas que tienen un trabajo definido, casi siempre en
apoyo de las demandas del usuario. Suele estar constituido por otros subprogramas y pueden ser de
muy diversa envergadura. Aquí se incluirían los paquetes de ofimática, un software orientado a la
seguridad del sistema, un programa para la audición y visión de ficheros multimedia, etc.
Se llaman aplicaciones porque sus tareas están muy definidas y son poco modificables por parte del
usuario, de modo que éste no puede alterar su forma de trabajo ni su orientación original.

Fabricantes de software: Son empresas que tiene como objetivo único o fundamental construir
aplicaciones informáticas. Estas empresas elaboran el programa a medida –de acuerdo con el
usuario y sus necesidades- o llave en mano –comercializados en tiendas-.

Fabricantes de sistemas operativos: Construyen aplicaciones informáticas orientadas a gestionar y


mantener sistemas informáticos, y se encargan de la distribución y del soporte postventa al usuario.
Los dos principales fabricantes del mundo son Sun Microsystems y Microsoft Corporation.
Otros fabricantes de sistemas operativos son las empresas asociadas para la construcción, distribución
y soporte de Linux, un sistema operativo derivado de UNIX.

Proceso: Se define como la unidad de trabajo que se ejecuta en el microprocesador. Es normal que al
iniciar una tarea, como por ejemplo, abrir un programa de procesador de textos, se lancen varios
cientos de procesos que tienen que ser terminados por la CPU.
También proceso es sinónimo de tarea, ya que cuando se dice que un sistema es capaz de gestionar
varios procesos simultáneamente, quiere decirse capaz de gestionar varias tareas a la vez.
También se suele denominar proceso a una unidad de trabajo lanzada por la ejecución de un
programa, es decir, es casi sinónimo de instrucción, aunque una instrucción puede contener, dentro
de sí, varios procesos.
A los efectos de esta unidad, un proceso es una unidad de ejecución dentro de la CPU.

Sistema informático: Se trata de un equipo -o conjunto de equipos- capaces de procesar información,


efectuar cálculos y operaciones aritméticas y lógicas. Se compone de una parte física -el hardware-
y una parte lógica -el software-. Dentro de este último grupo se incluyen los sistemas operativos.

Sistema operativo: Se trata de un grupo de programas que gestiona los recursos del ordenador y
coordina la ejecución de los programas, así como mantener las relaciones adecuadas entre la CPU,
las memorias, los dispositivos, los periféricos, y entre estos y los programas de aplicación.

Software: Es el conjunto de los programas informáticos necesarios para que el sistema informático
pueda llevar a cabo las tareas que se esperan de él. Se divide en dos grupos: los programas del
sistema -que manejan los procesos y recursos lógicos de funcionamiento del ordenador-, y los de
aplicación -destinados a cubrir los deseos de los usuarios-. Los sistemas operativos se incluyen
ampliamente en el primer grupo y sólo parcialmente en el segundo.

Tarea: Es una actividad requerida por una aplicación o por el usuario, casi siempre entendida de
manera temática, es decir, suele tratarse de algún trabajo que el usuario ve que se puede demandar
al sistema o que éste le proporciona: apertura de un programa de correo, guardar un fichero de
texto, enviar un documento a impresora, abrir un programa de tratamiento de sonidos, etc. Suele
estar constituida por varios procesos, de forma que el microprocesador tiene que gestionar todos
ellos antes de que la tarea esté concluida.

2 SISTEMA OPERATIVO

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 24 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Como se ha visto, un sistema operativo es un tipo de software, es decir, forma parte de la parte lógica
del sistema, que es, sobre todo, un software de sistema, ya que tiene la función de cooperar con el
usuario para que este se comunique eficazmente con el hardware y el software de aplicación. En los
últimos tiempos, aparte de este objetivo principal, se ha agregado otro secundario, como es el de
apartar a los usuarios, en la medida de lo posible, de las instrucciones máquina del equipo.

Al utilizar un sistema informático se requieren de él recursos, como por ejemplo, procesos de trasvase
de información, gestión de memorias, controladores, etc. Para obtener un sistema eficiente, es
necesario que la gestión de esos recursos sea la óptima, por lo que se necesita de un programa como el
sistema operativo. Esa eficiencia se pretende también para la gestión de los periféricos de entrada y de
salida -impresoras, teclados, punteros,...-, y también para los dispositivos de entrada y de salida
-discos, cintas,...-.

Además, el usuario de un sistema no se contentará sólo con usar éste per se, sino que querrá ejecutar
otros programas de aplicación, que es lo que justifica, al fin y al cabo, el invento de los equipos
informáticos. El sistema operativo gestiona, de la manera más eficiente y eficaz posible, las relaciones
entre esos programas y todo el sistema. Es decir, es un controlador lógico de todo el proceso y flujo
de información, así como de la ejecución de dichos programas.

2.1 Funciones de un sistema operativo

Esta materia se va a tratar con más profundidad en el tema siguiente, por lo que se van a dar
descripciones generales. Sólo conviene recordar que un sistema operativo crea un entorno de trabajo,
entorno gracias al cual el usuario puede “moverse” dentro del sistema, operar en él, y, por supuesto,
enmarcar el funcionamiento de los programas de aplicación, facilitando su ejecución, y haciéndola lo
más fiable y rápida posible:

- El sistema operativo tendrá una función de ayuda o colaboración con las tareas destinadas a
la programación, como manejo y ejecución de programas, gestión de la información y manejo
de ficheros, operaciones de escritura y lectura, operaciones de entrada y salida para el sistema y
detección de posibles fallos en la ejecución de los programas o en el funcionamiento del
sistema.
- La gestión más eficiente de los recursos del sistema, como la asignación de memorias, compartición
de la CPU, dispositivos de entrada y de salida, seguridad, interpretar lenguajes de control,
protección de datos y ficheros, gestionar las interrupciones, etc.
- Hacer de intérprete con el usuario, proporcionándole una interfaz amigable y cómoda para la
intermediación de órdenes y solicitudes, así como proporcionar métodos y procedimientos en un
lenguaje asequible, alejado de los lenguajes de bajo nivel.

2.2 Historia

2.2.1 Primera generación (1945–1955)

Dado que los primeros ordenadores, muy voluminosos debido al elevado número de componentes
mecánicos y eléctricos de que disponían, funcionaban por lectura de tarjetas que estaban perforadas
según un código de posicionamiento que se traducía posteriormente a código máquina, no necesitaban
sistema operativo. El sistema funcionaba al ritmo que le marcaba el operario que introducía las
tarjetas y que, más tarde, se encargaba de extraer las tarjetas resultado, que se leían en el lector
correspondiente. Este operario tenía un tiempo determinado de trabajo asignado para él y para esa
tarea, lo que hacía del tiempo de uso del sistema un recurso escaso y, por lo tanto -debido a la escasez
de equipos-, caro. En este modo de trabajo -denominado modo de puerta abierta-, el equipo podía

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 25 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

estar la mayor parte del tiempo inactivo esperando las decisiones del operario o del programador. O
dejar el trabajo inconcluso porque se había agotado el tiempo asignado para ese operario y esa tarea.

En esta época no existían los sistemas operativos. Pues las máquinas estaban basadas en la utilización
de la tecnología de las válvulas o tubos de vacío que hacía que los ordenadores fuesen enormes. El
usuario tenía que hacer todos los programas en código binario o bien como una ristra de papel con
perforaciones. Las máquinas eran de un enorme coste.

Se toma el año 1945 como límite inferior debido a que es el año convenido como el de la aparición de
la informática, por coincidir con el de la aparición de las primeras máquinas automáticas para el
desarrollo de ciertas tareas.

2.2.2 Segunda generación (1955–1968)

Aparecen los transistores que hacen que las máquinas se reduzcan de tamaño, facilitando la creación
de los sistemas operativos.

El siguiente paso fue idear un breve código de señales que permitiera al intérprete que pasaba la
posición de las perforaciones a código máquina saber cuándo comenzaba una tarea y cuándo
finalizaba. Así nació el JCL -del inglés Job Control Language o Lenguaje de control de tareas-. La
necesidad de esa interpretación condujo al diseño de ese sistema operativo.

Aparecen los lenguajes de bajo nivel –assembler-. En esta época se estandariza el código para una
mayor divulgación. Aparece un “embrión” de programa, dando lugar al IOCS -Sistema de Control de
Entrada/Salida, de Input/Output Control System-.

Aparecen los lenguajes de alto nivel que tenían que cargar un compilador que convertía el lenguaje en
ensamblador –assembler- de la máquina en la que se compilaba.

Más tarde se crea un sistema operativo formado a partir de ciertos componentes estructurados por
niveles, según su posicionamiento en los niveles de memoria. Así, tenía el intérprete de fichas de
control en el nivel más bajo de la memoria. En el segundo nivel se encontraban los programas que
compartimentaban y secuenciaban las diferentes tareas. En el tercer nivel se ubicaban los gestores de
los dispositivos de entrada y de salida. Por último, en el cuarto nivel, en el superior, estaban el
cargador, las rutinas y la gestión de las interrupciones. Estos cuatro niveles se cargaban en los
primeros 64 Kb. de memoria.

Aparecen dos estados en los sistemas operativos:

- El estado superusuario: que permite ejecutar las instrucciones sin pararse a valorarlas (las
instrucciones que sólo se pueden ejecutar de este modo se llaman privilegiadas.
- Estado usuario: Se restringe el uso de las instrucciones.

Cuando se necesita una tarea con carácter restrictivo se necesita una orden privilegiada que sólo se
puede dar en modo superusuario; para esto está el gestor de interrupciones, con dos tipos de trabajo:
interrupciones hardware e interrupciones software. Además empiezan a aparecer más periféricos como
las unidades de cinta magnética y una mejora notable de las impresoras.

Dado que esta estructura mejoraba la gestión de la memoria y la hacía más eficiente, pero al mismo
tiempo restaba memoria de uso, se pasó a grabar la información de las fichas a cintas magnéticas. De
esa manera se esperaba reducir el tiempo dedicado a la lectura de datos. Una vez se metían todos los
datos en cinta, se les asignaban los procesos a seguir con ellos, formando un paquete de información
que ocupaba un sector de cinta. Si sobraba cinta, que era lo más frecuente, se insertaban más paquetes

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 26 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

con la finalidad de optimizar tiempos de uso del sistema y acelerar el tiempo de absorción de
información. Sin embargo se empeoró en una cosa: hacía falta una gestión más especializada de los
dispositivos de entrada y de salida.

Debido a la lentitud de lectura y de volcado de datos en cinta y en impresora, se tomó la decisión de


aportar un mecanismo intermedio, mediante el cual el equipo derivaba la información de salida a
cintas que más tarde se volcarían hacia la impresora. De esta forma le sistema trabajaba mientras se
podían pasar a escritura las informaciones producidas a lo largo del día. Es lo que se denominó más
tarde proceso off-line, es decir, fuera de línea.

Posteriormente se implementó el sistema con dispositivos que permitían carga y descarga a cinta
desde el propio ordenador principal, así como el uso de terminales u ordenadores independientes que
preparaban los procesos que se incluyen en la cinta para su trabajo en el principal. Por este método, el
sistema solicita una ficha al monitor que se lo pasa al sistema en forma de imagen. Para ello usa la
misma rutina que con las lectores de fichas, pero ahora gestiona un lector de cintas. Con ello nació lo
que se denomina independencia de dispositivos, lo que es posible si el sistema operativo interpreta
qué dispositivo lógico leer y cómo hacerlo (Figuras 5.1 y 5.2).

Otra etapa la constituye el sistema de buffering, o lo que es lo mismo, la instalación de soportes


intermedios de memoria que alimentan los dispositivos de entrada y de salida -conocido como buffer-,
con lo que el microprocesador envía la información al periférico de salida -la impresora, por ejemplo-
descargándola primero en el buffer. Desde allí se envía a la impresora paulatinamente, pero como el
sistema se ha quedado “liberado” de la gestión de esa información, puede dedicarse a otras tareas.

2.2.3 Tercera generación (1968–1981)

Había ordenadores especializados para multitud de cosas concretas, una especie de selva de equipos y
de incompatibilidades. IBM resolvió este problema y creó un software compatible para ordenadores
de propósito general, dando lugar a las familias de ordenadores: la primera fue la 360, luego la 370, la
4330, la 3080 y la 3090. La 360 utiliza los circuitos integrados LSI – de Large Scale Integration-.

Aparece la escalabilidad, que es la posibilidad de ampliar en un momento determinado las funciones


de un sistema. Aparece la multiprogramación.

Aparecen también las unidades de disco, especialmente la denominada unidad de disco duro. Ahora se
utiliza el disco para realizar la función del buffer. Este sistema denominado spooling consiste en que
el sistema operativo almacena en un fichero virtual, denominado spool, los ficheros o datos que se
destinan a impresión, formando en ese fichero una “cola” de espera. Posteriormente se introdujeron
unos parámetros que servían para alterar la prioridad de impresión para cada fichero y para indicar las
copias a realizar de cada fichero.

Los sistemas operativos basados en la multiprogramación permiten planificar y gestionar mejor el


microprocesador, gracias en parte a la posibilidad del buffering y del spooling, y gracias a la
programación del microprocesador para gestionar la memoria de modo que los diferentes programas
que se encuentran cargados y “vivos” no se pierdan mientras se pasa a ejecutar otra tarea.

Dado que los sistemas evolucionaron muy deprisa en los años 70 y 80, con microprocesadores muy
potentes y capaces, se produjeron periodos de inactividad de la CPU o bien su infrautilización. Para
solucionarlo se ideó la compartición, por la que varios usuarios podían usar simultáneamente la CPU
gracias a las facilidades de la multiprogramación y de la planificación de la CPU.

Aparecen los sistemas de tiempo compartido, que suponían volver a interactuar con el sistema, y los
sistemas de tiempo real, que funcionan con una serie de sensores que dan una respuesta inmediata.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 27 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

2.2.4 Cuarta generación (1981-2000)

Se utilizan circuitos integrados VLSI –de Very Large Scale Integration- con una enorme potencia.
Aparecen los microprocesadores, fundamento de los ordenadores -como las antiguas estaciones de
trabajo, pero ahora a nivel personal-, y los grandes desarrollos basados en algunas características:

- Conectividad: que permite una gran libertad de comunicación pero hace que aparezcan
problemas en la seguridad. Se trata de la tecnología que más tarde evolucionaría en la
denominada Plug & Play, aplicada con éxito en sistemas operativos de entorno Windows y
en los construidos por Sun Microsystems utilizando Java como lenguaje base.
- Conformación: Los de red, en los que se gestiona un conjunto de ordenadores clientes
relacionados con un ordenador llamado servidor; y los distribuidos, que son transparentes
para el usuario.
- Tratamiento de hardware: como la máquina virtual o división del hardware en porciones
virtuales para dar a un ordenador uo para varios usuarios independientes.

2.3 Componentes típicos de un sistema operativo

Son los programas que incluye el sistema operativo y que le sirven para realizar todas sus funciones.
Se dividen en cuatro tipos:

2.3.1 Programas de utilidad

Son los programas destinados a gestionar algunos elementos del sistema realizando labores de carácter
repetitivo, tales como la clasificación de ficheros, localización y evitado de errores, protección de
archivos, etc. Suelen ser fabricados por los fabricantes de los ordenadores y, en la época actual, suelen
estar hechos por los fabricantes de los sistemas operativos.

Existen dos tipos dentro de este apartado: los programas que se encargan de la organización del
sistema, permitiendo gestionar las librerías de los programas y proporcionando la protección de la
información, y los organizadores de archivos, manteniendo su integridad, el orden y la información.

2.3.2 Programas de aplicación

Su objetivo es resolver las situaciones que se le plantean al usuario. A este fin existen aplicaciones
desarrolladas dentro del propio sistema operativo, y otras diseñadas por otras empresas que se
incorporan como un apoyo al sistema operativo. Existen dos grupos, los programas de gestión y los de
cálculo. Los primeros son los que se destinan al manejo de un gran volumen de datos con operaciones
sencillas de clasificado, ordenamiento, extracción, escritura, etc., y procesos de cálculo muy simples
-manejo de ficheros de datos de gestión empresarial, impresión de bancos de datos,...-. Por ese motivo
requieren gran espacio de almacenamiento y necesitan poca memoria RAM para su ejecución, aunque
una dosis alta de gestión de periféricos.

Los programas de cálculo son los encargados de aplicar funciones algebraicas, matemáticas y
científicas sobre un banco de datos, por lo que necesitan rapidez de cálculo, y por lo tanto de
microprocesador, requieren un poco más de memoria RAM que los anteriores, y poca gestión de
periféricos. Se incluirían aquí los programas relativos al uso defunciones que requieren coprocesador
matemático, más conocidos como X87 en los antiguos microprocesadores -iteraciones matemáticas,
resolución de ecuaciones, gestión de coma flotante,...-.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 28 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

2.3.3 Programas de facilidad

Forman parte del sistema operativo con la finalidad de proporcionar al usuario un modo de gestionar y
preparar los parámetros de funcionamiento de los programas de aplicación. Lo normal es encontrarse
con estos programas insertos en el sistema operativo y, como el resto del sistema, estarán escritos en
lenguajes de alto nivel, es decir, alejados del código máquina. Dentro de ellos existen tres grupos, los
intérpretes, los gestores de librerías y los editores.

Los intérpretes traducen el lenguaje que maneja el usuario desde su interfaz, lenguaje de alto nivel,
próximo al lenguaje natural -eso sí, en inglés,- al lenguaje de bao nivel, es decir, próximo al del
sistema o código máquina. Es normal incluir aquí el conjunto de programas que pasan el lenguaje de
alto nivel de programación al de bajo nivel de la máquina, es decir, los compiladores y los programas
intérpretes propiamente dichos. No obstante, en la actualidad, estos programas de compilación,
depuración e intérpretes no se encuentran incluidos en los sistemas operativos estándar que se
distribuyen generalmente. También suelen meterse en este saco los programas preprocesadores y los
programas ensambladores, aunque también están fuera de la órbita del sistema operativo.

Los gestores de librerías tienen como misión gestionar las aplicaciones que se van incorporando al
sistema por parte del usuario. Para ello colaboran en la instalación de los programas, los desinstalan
total o parcialmente y los organizan dentro del sistema. Las librerías se pueden definir como aquellas
partes del programa, que forman parte de su colección, y que están disponibles para su uso dentro de
un entorno determinado. Una librería típica podría contener compiladores, programas de utilidades, de
operaciones matemáticas, etc. Normalmente para su uso sólo se necesita referirla para que se
incorpore a un programa de usuario. Según el nivel de proximidad con el programador, las librerías
pueden clasificarse en librerías fuente -que contiene los códigos fuente de su programa tal como los
creó el programador originalmente-, librerías objeto -que son módulos ya compilados dentro de los
distintos lenguajes-, y librerías ejecutables -ya en código máquina conteniendo los módulos ya
compilados, depurados y linkados (enlazados) para su uso inmediato-.

Los programas editores son los que proporcionan a los usuarios un medio para poder escribir textos,
ficheros y programas, permitiendo correcciones, grabaciones y recuperaciones. Las facilidades que
proporciona el editor son muy limitadas y su misión consiste en el soporte textual sin llegar a la
sofisticación de los procesadores de texto.

2.3.4 Programas de control

Son los programas que tienen como finalidad la mejor gestión de los recursos del sistema por parte de
los programas y por parte del usuario. Proporcionan mejores recursos en cada momento, facilitan el
acceso ordenado a los recursos disponibles y evitan bloqueos en el funcionamiento de los procesos.

Suelen disponer de módulos que tratan la gestión de las distintas áreas del sistema, como es el caso
del hardware, el software y las tareas que se están realizando:

- En cuanto a hardware gestiona las memorias, direccionamientos, la CPU con sus distintos
elementos y las rutinas que dirigen los trasvases de información de entrada y salida.
- La gestión de software maneja las relaciones entre los módulos del sistema operativo, entre
estos módulos y las aplicaciones con sus librerías y facilita el transporte entre los registros
de memoria y los periféricos.
- La gestión de tareas permite la asignación de memoria a cada tarea, las ordena por prioridades,
gestiona su funcionamiento, aunque se estén llevando a cabo varias a la vez, y permite la
comunicación entre el sistema y el usuario.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 29 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Se pueden resumir los programas de control de la siguiente manera:

PROGRAMA CARGADOR INICIAL, BOOTSTRAP O BOOT


Su misión es transferir los programas ejecutables de usuario desde la memoria externa a la
memoria central de la computadora a partir de una determinada dirección de memoria, por
medio de un programa denominado cargador inicial
PROGRAMAS DE GESTIÓN DE SISTEMAS. SUPERVISOR
Este grupo de programas es el verdadero motor del sistema operativo ya que se encarga de la
coordinación y supervisión del funcionamiento del resto de los programas, por ello se le
denomina “supervisor”. Sus funciones son las siguientes:
- Protección de memoria: cuando en la memoria central se encuentran almacenados varios
programas (es lo que se llama multiprogramación), es necesario fijar unas fronteras de
separación de memoria, para que ante posibles errores de direccionamiento, sea imposible
tomar información de un programa para que sea procesado por otro –solapamiento-. Esta
misión la realizan los `programas de protección de memoria ’.
- Errores en la memoria: cuando se detecta que cierta información de la memoria no es correcta
(se debe a algún defecto físico del hardware ó a alguna transmisión errónea), se activa un
grupo de programas para averiguar dónde se produjo el error y reenviar nuevamente el dato,
corrigiendo el fallo sobre la marcha.
- Errores de programas: cuando la unidad de control, al analizar una instrucción (código de
operación y operando), no reconoce la operación que debe realizar o la ubicación donde se
encuentran los datos, diagnostica un error, cediendo el control a este grupo de programas
que se encargaran de cancelar el programa del usuario y enviar los mensajes al operador
para informarle sobre las características del error encontrado.
PROGRAMAS DE GESTIÓN DE DATOS. IOCS
Estos programas son los que controlan y coordinan todas aquellas operaciones relativas al
movimiento de datos en la computadora, como pueden ser la de transferencia y el tratamiento o
manejo de archivos. Realizan las siguientes funciones:
- Control de Periféricos: esta función la realiza un procesador (P-I0, Procesador E/S), que
cuando recibe una petición de E/S comprueba si el periférico está desocupado; realiza la
conexión y luego pasa el control al programa que se está ejecutando para que se inicie la
operación de E/S. Cuando el periférico está ocupado, coloca la petición en cola para que sea
atendida por turno cuando la corresponda.
- Control de transferencia de información: la transferencia de información se realiza de dos
formas:
-- En modo multiplex (octeto a octeto).
-- En ráfagas de bloques (palabra a palabra, doble palabra a doble palabra).
Es necesario aplicar un control de integridad de la información en este tipo de
operaciones. Este control consiste en comprobar que el total de caracteres transferidos en
cada bloque coincide con el especificado previamente según las características físicas de los
soportes que se van a utilizar.
Cuando no existe coincidencia, toma el control un programa de corrección o recuperación
de caracteres que informa al operador sobre las particularidades de la anomalía y/o cancela el
programa que se estaba ejecutando.
- Tratamiento de cada bloque de información: cuando un bloque de información se almacena en
la memoria central interviene un programa del sistema operativo que se encarga de
descomponer cada bloque físico de información en las unidades lógicas definidas en el
programa, que son las que van a ser procesadas (normalmente a través de la UAL).
Cuando se presenta la operación de extraer información de la memoria central, el mismo
programa se encarga de agrupar estas informaciones, formando el bloque físico para que
pueda ser transferido al periférico correspondiente.
- Apertura y cierre de archivo: un archivo se conecta a un programa en el momento en que se
abre (generalmente con la sentencia open), quedando desde ese momento asignado
automáticamente al mismo mediante una vía o canal de datos. Esta vía se mantiene activa

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 30 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

hasta que el archivo se cierra, bien por el programa que lo estaba ejecutando o por el propio
sistema operativo.
- Acceso a los archivos: existen diversas maneras de acceder a un archivo: Secuencialmente, al
azar, etc. Este grupo de programas se encarga de transformar las direcciones lógicas que
figuran en el programa en ejecución,en las correspondientes direcciones físicas sobre el
soporte donde están o van a ser grabados los datos.
PROGRAMA DE GESTIÓN DE TRABAJO. MONITOR O JOB-CONTROL
Son los encargados de la preparación de los programas de usuario para su ejecución o
relanzamiento, así cómo de la asignación de periféricos. Sus funciones son las siguientes:
- Preparación de programas: transfiere los programas del usuario desde la biblioteca imagen de
memoria a la memoria central de la computadora a partir de una determinada dirección y por
medio de un programa que se denomina “cargador”.
- Asignación de periféricos: en un programa no se especifica el periférico concreto que se va a
utilizar, sino que solicita una impresora, un disco... Este grupo de programas de asignación
transforma las asignaciones simbólicas en físicas y concretas de cada periférico.
- Almacenamiento de identificativos de archivos: existen unos identificativos internos que son
unos bloques de información especial que van grabados al comienzo de cada archivo para
dar información sobre el mismo. Estos programas de almacenamiento de identificativos son
los encargados de identificar y controlar los archivos del usuario a través de estos bloques de
información.
- Relanzamiento de programas: hay veces, que durante la ejecución de un programa, se produce
interrupciones fortuitas que causan la parada del proceso que se estaba ejecutando.
- Este grupo de programas se encarga de establecer un punto de control en el momento de la
interrupción para que se pueda reproducir el estado que tenía el proceso en el momento de la
parada. Para ello, se establece el posicionamiento de cada archivo en el punto de trabajo en
que estaba, los valores de cada registro, el valor del aumentador, etc... hasta conseguir el
mismo estado en el que estaba la ejecución del programa en el momento de la interrupción.
Una vez solucionada la causa de la parada se pone en funcionamiento nuevamente el
proceso.
PROGRAMAS DE GESTIÓN DE MEMORIA.
Su misión es la de asignar, y controlar el almacenamiento en la memoria interna y externa de la
computadora, de dos maneras:
- Gestión de la memoria central: existen multitud de métodos de asignación de memoria central
o interna según se trate de un sistema operativo monoprogramado o multiprogramado. Los
programas que controlan y gestionan la memoria interna asignan espacios que deben ocupar
los programas y datos estableciendo zonas de seguridad para que no se produzcan colisiones.
- Gestión de memoria secundaria: tienen como misión hacer ver al usuario el tratamiento de la
información almacenada en la memoria externa, desde el punto de vista lógico, ocultándole
la realidad física. Un sistema puede mantener en un mismo instante un gran número de
procesos, por ello será necesario la existencia de una serie de programas en el sistema
operativo que nos aseguren el correcto funcionamiento del almacenamiento secundario.

2.4 Tipos de sistemas operativos

Se suelen clasificar por diversos criterios. Su estructura interna, atendiendo a la organización de sus
funciones internas, relaciones entre los módulos y su conexión de salida con el exterior. Se dividen en
monolíticos, jerárquicos, virtuales y servidores.

2.4.1 Por su estructura organizativa

- Monolíticos: Los primeros sistemas operativos se denominaban monolíticos, donde cada


módulo del programa tiene un sistema de relación con otros módulos que permite su llamada

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 31 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

y respuesta. La manera de construir el sistema consiste en desarrollar e implementar los


módulos para compilarlos separadamente y después proceder a un enlazado que componga
todos los paquetes en un sólo bloque. Por este tipo de construcción, los trabajos de
depuración y mantenimiento son complicados, dificultándose tareas como la corrección de
módulos o la incorporación de otros nuevos. La dificultad principal radica en que no se
encuentra estructurado (ver Figura 5.5).
No obstante se puede distinguir una estructura centralizada, separando dos bloques: el
núcleo o kernel, y la periferia. Existen mandatos que permiten trabajar en uno de los bloques
o en el otro. Así, si un usuario trabaja normalmente, no tiene acceso a todas las instrucciones
del programa, lo que se hace así para proteger la integridad del sistema. Si quiere poner en
marcha alguna instrucción de las denominadas reservadas, entonces tiene que ceder, por
medio de un comando, la gestión del sistema al propio sistema que trabaja desde su núcleo.
Cuando ha terminado devuelve la gestión al usuario.
- Jerárquicos: Consiste en diseñar el sistema operativo compuesto de varios pisos o niveles para
tareas específicas de cada uno, poseyendo cada nivel la capacidad de relación con los otros
niveles (ver figura 5.6).
Cada nivel se encarga de una función específica y exclusiva de él. Cuando un módulo,
para realizar su tarea, necesita de la colaboración de otro módulo, el primero módulo lanza
una relación al otro, aunque esté incluido en otro nivel diferente, y este realiza, en función
de los parámetros incluidos en esa relación, la tarea para la que se diseñó, devolviendo
después el control al módulo remitente.
Esta estructura evita la interdependencia que existía en la estructura monolítica y
salvaguarda la integridad del sistema más eficazmente. Permite labores de depuración con
más facilidad ya que da la posibilidad de modificar, eliminar o añadir funciones sin que las
otras funciones se vean amenazadas por ello. Por otro lado, el hecho de incluir nuevos
módulos, para mejorar las prestaciones del sistema o para añadirle otras, resulta sencillo
dada la modularidad del conjunto. Además, dado que las tareas de un nivel no conocen las
tareas de otros niveles, se da la posibilidad de las tareas compartidas.
La estructura de un sistema operativo jerárquico queda resumida en la Tabla 5.1

Tabla 5.1 Relación de niveles y funciones en el sistema jerárquico

Nivel Nombre del nivel y funciones


0 Núcleo
Es el que planifica y gestiona las interrupciones
1 E/S
Se encarga de la gestión de transmisión de información E/S
2 Memoria
Gestiona a memoria y su compartición
3 Archivos
Organiza la información en los medios internos y externos
4 Intérprete
Es el interfaz que traduce las órdenes entre el usuario y la
máquina

2.4.2 Por el tratamiento del hardware

Es decir, por la manera que gestiona y manipula los componentes físicos que se encuentran en el
propio equipo o en otros equipos remotos.

2.4.2.1 Clásicos

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 32 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Tratan los componentes del sistemas como tales, sin un tratamiento especial. Para ello detectan su
instalación por medio de señales, basándose en un sistema Plug&Play. Su misión es sacar el máximo
rendimiento a los constituyentes del sistema.

2.4.2.2 Máquinas virtuales

Se trata de sistemas operativos que simulan la existencia de hardware. Es decir, hacen aparecer varios
medios de trabajo aunque sólo exista un único equipo físico.

La ventaja que ofrece esta estructura es que varios usuarios pueden usar el mismo microprocesador, a
la vez, y utilizando diferentes sistemas operativos. Es como si cada usuario “creyera” estar utilizando
su propio equipo, sus propios recursos de memoria, con sus periféricos, dispositivos de entrada, etc.

En este caso, el núcleo del sistema se denomina monitor de la máquina virtual y se ubica en la
máquina por medio de la multiprogramación, dando lugar a un nivel superior de la estructura donde se
“crean” las distintas maquinas virtuales, a imagen y semejanza de la máquina física.

Debido a que cada función va a gozar de autonomía plena y su única relación con el resto del sistema
va a ser a través del gestor de recursos del sistema operativo incluido en ese nivel superior, se pueden
distribuir las tareas de manera independiente entre sí.

2.4.2.3 Servidores virtuales

Dada la dificultad que representa la multiprogramación, organización y gestión de un núcleo para el


caso de las máquinas virtuales, se pensó en crear otro nivel superior al del núcleo y diseñar en él una
estructura similares a las de una red de ordenadores. Así, en este nuevo nivel se instalan algunos de
los módulos que configuraban el núcleo.

De esta forma cuando un usuario solicita que se lleve a cabo un proceso, el sistema operativo lo envía
al nivel del servidor, que lo interpreta y gestiona, enviando las órdenes correspondientes a los niveles
inferiores. Estos tratan el procedimiento y devuelven al servidor virtual un resultado, que éste se
encarga de hacer llegar al usuario.

2.4.2.4 Sistemas operativos de red

Son aquellos sistemas que mantienen a dos o más ordenadores unidos por medio de algún sistema de
comunicación -físico o no-, con el objetivo primordial de poder compartir los diferentes recursos y la
información del sistema.

El primer sistema operativo de red estaba enfocado a equipos con un procesador Motorola 68000,
pasando posteriormente a procesadores Intel como Novell Netware.

Los sistemas operativos de red mas ampliamente usados son: Novell Netware, Personal Netware,
LAN Manager, Windows NT Server, UNIX, LANtastic. En la actualidad, de todos ellos, el que más
se está instalando para pequeñas y medianas empresas, así como para entidades docentes y ámbito
doméstico es Windows NT.

2.4.3 Por su tecnología de construcción

2.4.3.1 Monoprogramación

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 33 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

La más anticuada, puesto que se utilizaba en los sistemas operativos que no prevén una posible
compartición de recursos entre programas o entre usuarios. Es decir, idónea para usuarios que realizan
operaciones rutinarias y lineales o que tienen operaciones regulares de entrada y salida de dispositivos
o de periféricos.

En la mayoría de los casos se tratará de programas de cálculo o procesamiento lineal, que no


compartirá recursos con otros programas y, por lo tanto, se le asignará desde el sistema una parte de
los recursos, aunque no los use, y los retendrá hasta que se acabe el proceso.

Tiene una ventaja que consiste en que la asignación de recursos a un usuario y a una tarea permite la
concentración sobre un determinado trabajo y una mayor velocidad de éste. La desventaja es que el
rendimiento del equipo baja dado que se establece una lista de espera de usuarios o de tareas,
permitiendo la entrada de uno u otro según las prioridades que tengan asignadas en el sistema.

2.4.3.2 Multiprogramación

La técnica más generalizada para tratar estos aspectos en los sistemas operativos es la de la
multiprogramación, que permite usar de manera más rápida y eficiente el microprocesador, aporta
diversos marcos de memoria para distintos programas y posibilita alternar y simultanear trabajos
realizados por diferentes programas. Al mismo tiempo gestiona mejor la memoria dejando más
memoria para la ejecución de los programas y aporta mecanismos de protección de las diversas
memorias existentes.

Esto presenta, a veces, un problema. El acceso de varios programas a un mismo recurso o a un mismo
módulo y/o posición de memoria puede llegar a producir interbloqueos. Para evitar estos fallos se
deben diseñar procedimientos que asignen la capacidad de la CPU y de la memoria, por ejemplo,
estableciendo alguna interrupción en uno de los programas -lo que se decide según una tabla de
prioridades establecida en el sistema operativo según parámetros de funcionamiento y periféricos de
uso-, permitiendo al otro programa, el prioritario, terminar su operación o el uso de un periférico.

La multiprogramación también aporta algún problema. Por ejemplo, si antes se producía un error
sólamente afectaba al programa ejecutado en ese instante, pero en cambio, ahora, puede afectar a
todos los programas en proceso. Para que esto no suceda y el núcleo detecte los errores de programa
existe tres tipos de protección: protección de E/S, protección de memoria y protección de CPU.

El ordenador debe permitir al sistema operativo tener el control del sistema pero no al usuario, por lo
tanto tiene que diferenciar los dos casos: modo usuario y modo supervisor. Cada rutina que llega al
ordenador diferenciará con un bit adicional (1, para el modo supervisor y 0, para el modo usuario).

Las características de un sistema operativo de multiprogramación o multitarea son las siguientes:

- Mejora productividad del sistema y utilización de recursos.


- Multiplexa recursos entre varios programas.
- Generalmente soportan múltiples usuarios (multiusuarios).
- Proporcionan facilidades para mantener el entorno de usuarios individuales.
- Requieren validación de usuario para seguridad y protección.
- Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
- Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en
sistemas de tiempo real.
- Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la
ejecución simultánea de múltiples tareas sobre diferentes procesadores.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 34 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

-En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas
activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos
periféricos.

2.4.3.3 Multiproceso

Es cuando el sistema de separar CPUs físicas o virtuales y encarga en cada una de ellas un único
proceso. Si existen varias CPUs para una única memoria central, se denomina multiproceso acoplado.
Si se trata de varias memorias dentro de la memoria central y a cada memoria se le asigna una CPU,
se le da el nombre de multiproceso independiente.

Se trata de un esquema bastante típico de grandes sistemas, donde a veces el usuario pierde
protagonismo ante procesos rutinarios que no requieren una vigilancia expresa o donde el factor
tiempo no es esencial. Es el caso de las impresiones masivas que se llevan a cabo en organismos
públicos y grandes corporaciones, o bien la extracción de copias de seguridad que se llevan a cabo
regularmente en los grandes sistemas.

2.4.4 Por su relación con el usuario

2.4.4.1 Sistemas BATCH o secuenciales o por lotes

Trabajan señalando el usuario una serie de tareas concatenadas que se realizan sucesivamente en el
ordenador. Este sistema aprovechan al 100% la CPU, pues el usuario decide cómo es esa secuencia
para obtener ese aprovechamiento. Es bueno económicamente pero con una desventaja grande e
importante, la falta de interactividad. La tecnología presente es la monoprogramación.

Los sistemas operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna
interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes
para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el
procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos
alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.

Cuando estos sistemas están bien planeados, pueden tener un tiempo de ejecución muy alto, porque el
procesador está mejor utilizado y los sistemas operativos pueden ser simples, debido a la
secuenciabilidad de la ejecución de los trabajos.

Algunos ejemplos de sistemas operativos batch más conocidos son el SCOPE, del DC6600, el cual
está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a
procesamiento académico.

Algunas otras características con que cuentan los sistemas operativos por lotes son:

- Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de
lote.
- Permiten poca o ninguna interacción usuario/programa en ejecución.
- Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas
multiusuarios.
- No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera
de línea.
- Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas
de personal, etc.).
- Se encuentra en muchos computadores personales combinados con procesamiento serial.
- Planificación del procesador sencilla, típicamente procesados en orden de llegada.
U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 35 de 15
1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Planificación de memoria sencilla, generalmente se divide en dos: parte residente del sistema
operativo y programas transitorios.
- No requieren gestión crítica de dispositivos en el tiempo.
- Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y
ningún control de concurrencia para el acceso.

LECTORA CPU IMPRESORA

2.4.4.2 Sistema interactivo

En este tipo de sistema operativo no se aprovecha la CPU totalmente, pues el ordenador trabaja según
las peticiones que el usuario va lanzando a cada momento. Es típico de equipos domésticos o
personales.

CPU TERMINAL

2.4.4.3 Sistema de tiempo compartido

Donde existe la interactividad, la multiprogramación, y la planificación de la CPU, es decir, se


recogen los factores positivos de los otros sistemas.

Se define como el proceso por el cual se mantienen recursos con diferentes atributos de acceso para
grupos de trabajo separados. El trabajo de los usuarios es interactivo en cuanto a la CPU se refiere, de
manera que los usuarios no aprecian que existan otros usuarios sino que el sistema está en exclusiva a
su disposición.

Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace
una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá
en la terminal del usuario.

El uso simultáneo de varios usuarios sobre el sistema se soporta por la multiprogramación y la


planificación de la CPU. Tiene utilidad en sistemas como las workstations o las estaciones de trabajo,
tipo Sun Microsystems o IBM AS-400, donde la CPU suele estar infrautilizada.

Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son
continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el
sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al sistema
operativo, principalmente en la administración de memoria principal y secundaria.

Las características más importantes de los sistemas operativos de tiempo compartido son:

- Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño


asistido por computador, procesamiento de texto, etc.
- Dan la ilusión de que cada usuario tiene una máquina para sí.
- Mayoría utilizan algoritmo de reparto circular.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 36 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye
después de concedido el servicio.
- Evitan monopolización del sistema asignando tiempos de procesador (time slot).
- Gestión de memoria proporciona protección a programas residentes.
- Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden
existir múltiples usuarios accediendo a un mismo archivo.

CPU Terminales

2.4.4.4 Sistemas de tiempo real

Son los sistemas que controlan algún proceso, donde continuadamente hay sensores que dan
información de cómo se encuentra la CPU. Son sistemas informáticos donde los requerimientos de
tiempo son fundamentales, casi siempre tratándose de tareas relacionadas con la seguridad en los
edificios –alarmas, robos, incendios-, control medioambiental –museos-, sistemas de control de tráfico
aéreo, etc.

Los sistemas operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino
los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los
procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran
número de sucesos o eventos.

Muchos sistemas operativos de tiempo real son construidos para aplicaciones muy específicas como
control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el
ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo
muy rápidamente. Otros campos de aplicación de los sistemas operativos de tiempo real son los
siguientes:

- Control de trenes
- Telecomunicaciones
- Sistemas de fabricación integrada
- Producción y distribución de energía eléctrica
- Control de edificios
- Sistemas multimedia

Algunos ejemplos de sistemas operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra.
Los sistemas operativos de tiempo real, cuentan con las siguientes características:

- Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la
mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.
- Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en
tiempo real., aplicaciones militares, etc.
- Objetivo es proporcionar rápidos tiempos de respuesta.
- Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.
- Proceso se activa tras ocurrencia de suceso, mediante interrupción.
U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 37 de 15
1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Proceso de mayor prioridad expropia recursos.


- Por tanto generalmente se utiliza planificación expropiativa basada en prioridades.
- Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son
residentes permanentes en memoria.
- Población de procesos estática en gran medida.
- Poco movimiento de programas entre almacenamiento secundario y memoria.
- La gestión de archivos se orienta más a la velocidad de acceso que a la utilización eficiente del
recurso.

2.4.4.5 Sistemas operativos distribuidos

Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este
conjunto de procesadores esté en un equipo o en diferentes, en este caso es transparente para el
usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que
comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los
procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj,
ya que cada uno cuenta con su memoria local.

Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se
compone otro componente debe de ser capaz de reemplazarlo.

Entre los diferentes sistemas operativos distribuidos que existen tenemos los siguientes: Sprite,
Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Características de los sistemas operativos distribuidos:

- Colección de sistemas autónomos capaces de comunicación y cooperación mediante


interconexiones hardware y software .
- Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.
- Objetivo clave es la transparencia.
- Generalmente proporcionan medios para la compartición global de recursos.
- Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para
distribución de cálculos (a través de comunicación de procesos internodos, llamadas a
procedimientos remotos, etc.).

2.4.4.6 Por el número de usuarios

Sistema Operativo Monousuario


Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias
a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este
ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida
y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones
que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados
principalmente por los microcomputadores.
Sistema Operativo Multiusuario.
U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 38 de 15
1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que
cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos
recursos. Este tipo de sistemas se emplean especialmente en redes. En otras palabras
consiste en el fraccionamiento del tiempo -timesharing-.

3 SISTEMAS OPERATIVOS MÁS USUALES

En aquéllos tiempos de la informática, cuando un sistema disponía de 64 Kb. de memoria de trabajo y


se consideraba revolucionario, aparecieron sistemas operativos, aunque en algunos casos se trataba
más de programas que automatizaban ciertas tareas que de verdaderos sistemas operativos. Entre los
más conocidos están:

3.1 CP/M

Comienza su desarrollado Intel y después fue terminado y comercializado por la flamante compañía
Digital Research. Este sistema operativo es monousuario e independiente del hardware, basado en
microprocesadores de 8 bits (Intel 8080, 8085 y Z-80), tubo gran cantidad de programas disponibles
para él, al hacerse muy famoso, como inconveniente, de cara al usuario poco experto, era su difícil
aprendizaje.

Las principales versiones a destacar son:

- CP/M-80. Multiusuario en equipos de 8 bits.


- CP/M-86. Multitarea y monousuario en equipos de 16 bits.
- CP/M-K. Destinada al microprocesador 68000 de Motorola.

3.2 PICK

Desarrollado por Don Nelson y Dick Pick, para microprocesadores 68000 de Motorola. Luego sería
utilizado por IBM en XT e IBM 4300. Se trata de un S.O potente, muy rápido y eficaz en la gestión
de bases de datos, así como fácil de utilizar.

3.3 OASIS

Creado por la firma norteamericana Phase One para el microprocesador de 8 bits Z-80 A. Hoy es apto
tanto para ordenadores de 8 como de 16 bits en desarrollo mono y multiusuario, es un S.O muy fácil
de utilizar que ofrece buenas prestaciones.

3.4 MS-DOS

Se trata de un sistema operativo monousuario, es decir, sólo permite trabajar en un puesto. Fue creado
en 1981 por Microsoft por encargo de IBM para instalarlo en su nueva línea de PCs. Así, las siglas
MS-DOS hacen referencia a su fabricante, MicroSoft, y al sistema operativo -Disk Operating System-.

Su aceptación por parte de los usuarios y algunas de las utilidades que se han ido incorporando le han
hecho responsable de la escasa diversificación que existe en este mercado, pues lo ha acaparado casi
en exclusividad. Algunos autores lo consideran directamente responsable de la rápida extensión y
consumo de PCs en todo el mundo.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 39 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Las modificaciones en el sistema han provocado la aparición de sucesivas versiones. Si los cambios
no son importantes, se reflejan en la cifra de las centésimas del número de versión, si es importante se
reflejan en la de las décimas o en la de las unidades (ver Tabla 5.2)

Taba 5.2 - Diferentes versiones de MS-DOS según el año

Año Versión Año Versión


1981 1.0 1987 3.30
1982 1.1 y 1.25 1988 4.00 y 4.01
2.00, 2.01 y 2.11
1983 2.25 1991 5.00
1984 3.00, 3.10 y 3.11 1993 6.00
1986 3.20 1995 6.20 y 6.22

La evolución del entorno operativo Windows, ahora sistema operativo, que incluye al propio DOS,
implica que las remodelaciones del DOS aparezcan enmascaradas en Windows, con lo que las
versiones del DOS han dejado de numerarse.

Sin embargo, precisamente para aprovechar su estela, posteriormente han aparecido otros sistemas
operativos similares, como es el caso de DR-DOS, programa realizado por Digital Research
compatible con MS-DOS. Su versión más extendida fue la DR-DOS 6.0 aparecida en 1991. Dado que
en la actualidad Digital Research fue absorbida por Novell, aparecerán nuevos sistemas operativos
orientados a redes y con la marca de Novell.

Otro es el PC-DOS, muy similar al MS-DOS, desarrollado por Microsoft por encargo de IBM para
sus máquinas. La relación entre estas empresas se rompió en 1991 al negarse Microsoft a seguir
desarrollando para IBM el siguiente sistema denominado OS/2.

3.5 OS/2

Es un sistema híbrido entre Xenix y MS-DOS, incorporando tareas de ambos. Es un sistema


monopuesto y multitarea.

Fue introducido en 1.987 para equipos 286 al reconocer IBM y Microsoft la necesidad de explotar las
posibilidades de multitarea de la nueva CPU y aplicar un entorno gráfico fácil y agradable para el
usuario. Aunque por diferencia de opiniones y desconfianza de IBM hacia Microsoft, que ya estaba
desarrollando su Windows, la sociedad no prosperó, pero IBM siguió con el proyecto, hasta llegar a
ofrecer su OS/2, sistema operativo multitarea y monousuario compatible con MS-DOS. OS/2 gestiona
excelentemente, a su nivel, la memoria virtual y, para obtener mayor rapidez de proceso trabaja sobre
la base de un procesador para cada usuario, que al incorporarse a una red local simula operar como
multiusuario. Dispone de un entorno gráfico agradable, pero pese a todo, la aceptación del público no
fue la esperada, quizás por la falta de aplicaciones para el mismo.

Fue desarrollado por IBM para sus máquinas utilizando sus propios desarrolladores y consultoras
externas. La crisis de IBM en los comienzo de los 90 le ha dejado casi fuera del mercado.

Utiliza el mecanismo de memoria virtual con bloques de 64 Kb.

3.6 Unix

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 40 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Desarrollado en los laboratorios Bell de AT&T por Dennis Ritchie y aparecido en el 1.984, siendo
considerado desde un principio como el sistema operativo del futuro, sobre todo por los acuerdos
alcanzados entre su fabricante e IBM. Trabaja en tiempo compartido y se trata de un sistema
multitarea y multiusuario escrito íntegramente en el lenguaje de programación C, lo cual lo hace de
fácil lectura y explotación en distintos tipos de equipos y plataformas, desde PCs hasta
supercomputadoras Cray, por ello su uso está reservado prácticamente a las máquinas más potentes
dentro de la gama de equipos medios bajos, con gran capacidad de memoria y velocidad de
tratamiento.

Su explotación a través de menús es algo complicada, por lo que sólo suele ser manejado por
profesionales. Una variante de este sistema operativo es el denominado XENIX, pensado para el
microprocesador 386, siendo las últimas versiones de éste compatibles con su homólogo Unix.

Se caracteriza por trabajar en modo comando, como los anteriores, y sus necesidades de memoria son
amplias, si bien en los últimos años, y para recuperar cuota de mercado, están apareciendo versiones
de UNIX de Santa Cruz Operation y de Berkeley con una interfaz gráfica aceptablemente buena.

Los procesos los planifica utilizando un algoritmo de asignación de números a cada tarea. La memoria
la organiza utilizando ficheros de intercambio y memorias virtuales paginadas según lo solicite el
usuario.

3.7 LINUX

Una variante del UNIX iniciado por Linus Thorvald, finlandés, y desarrollado por una activa
comunidad de programadores alrededor del mundo que colaboran a través de Internet. Thorvald,
además de iniciarlo, se rodeó de un selecto equipo de colaboradores “virtuales” que cumplieron con la
tarea de recibir todas las librerías y los programas que conforman Linux y coordinarlo hasta construir
el sistema.

Además de ser un sistema operativo bastante robusto y confiable, Linux tiene la particularidad de ser
parte del Free Software Movement (movimiento del software libre), por lo que es gratis y su código es
abierto, es decir que se puede modificar y redistribuirlo de nuevo. Lo que lo ha convertido en el
sistema operativo preferido por los programadores y por la comunidad informática alternativa.
Además es multitarea, multiproceso y multiusuario, como inconveniente cabe decir que es un poco
complicado su manejo para usuarios poco avanzados, pero ese tema se ha resuelto porque poco a poco
se van creando entornos gráficos programados para evitarlo, como Mandrake, Debian, Gnome, KDE,
etc. Estamos ante uno de los sistemas operativos del futuro, su auge en los últimos años ha dado que
pensar a Microsoft, dado que en estabilidad, velocidad, fiabilidad y precio ha colocado el listón en un
lugar elevado.

3.8 Windos 3.x, 95, 98, Me y XP

Se trata de un sistema operativo de carácter visual en cuanto a sus interfaces, que proporciona
multitarea y multipuesto para la versión 3.11.Para su trabajo óptimo requiere del uso de la memoria
extendida de procesadores 386 y superiores.

Permite conexión con otro ordenador y soporta una utilidad que permite conocer a los usuarios las
conexiones que hay en los dispositivos compartidos. El administrador del sistema, siempre para 3.11,
puede establecer parámetros de seguridad permitiendo lectura, escritura y operatividad global. Las
protecciones de acceso se aseguran por medio de contraseñas.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 41 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Tiene utilidades de comunicación con módem, fax y correo electrónico. Permite a un usuario extraer
una parte del documento de un usuario para incorporarlo en el propio. Además da la posibilidad de
enviar mensajes en tiempo real a otros usuarios, aunque también en modo diferido.

Este sistema se ha ido completando paulatinamente con la incorporación de nuevos gestores de red,
incorporación de objetos, gestión de ficheros, comunicaciones e Internet en las sucesivas versiones de
Windows 95 y Windows 98.

XP salió a mediados del año 2002. Consiste en un sistema operativo que reúne las características de
Windows Millenium y de Windows NT (ver apartado siguiente), al menos por lo que a estabilidad y
seguridad se refiere. Su interfaz ha cambiado respecto a la tradicional, aunque aún soporta esta última.
Permite la creación de usuarios y su seguridad por medio de contraseñas. Soporta un enlace rápido a
Internet, la gestión de red y de utilidades es más intuitiva, la gestión de la memoria, de las
interrupciones y de los errores evita los bloqueos del equipo y, por último, permite la actualización de
software y de hardware en caliente, es decir, sin desconectar el equipo o reiniciarlo. Como añadido
cabe destacar que permite la acción remota desde un equipo a otro gracias a la utilidad de mensajería
conocida como Messenger.

3.9 Windows NT

Se trata de un sistema operativo de red, trabajando a 32 bits reales, que permite multitarea,
multiproceso, y portabilidad. También permite el trabajo en monopuesto.

Se construye desde un núcleo y varios subsistemas distintos, algunos de los cuales pueden trabajar
bajo OS/2, o MS-DOS de 16 bits. Su lenguaje de construcción es el C y C++.

Soporta una utilidad denominada seguimiento de transacciones, de forma que si el sistema falla, al
arrancar comienza donde se interrumpió. Tiene un sistema de procesamiento simétrico, diseñado por
Microsoft, por el cual puede repartir los recursos de manera equilibrada según las necesidades.

La gestión de la memoria se lleva a cabo por un sistema de memoria plana, es decir, al prescindir del
paginado habitual, le permite proceder con más rapidez en el proceso de gestión de gráficos.

3.10 Apple

Apple, para sus primeros ordenadores MacIntosh, creó uno de los primeros sistemas operativos de
carácter gráfico, utilizando iconos similares a los que se utilizaban por entonces en los primeros
prototipos de lenguajes orientados a objetos. Desde entonces, los primeros GEM, perdido tras su
competencia con Microsoft y sus problemas de compatibilidad con otros sistemas, ha desarrollado
otros sistemas para sus máquinas con completa compatibilidad con otros del mercado, como es el caso
de Windows.

- SISTEMA 7: Desarrollado por Apple para su equipo Macintosh, con el que se proporciona al
usuario una solución de trabajo completa y de fácil manejo. Este sistema operativo trabaja
sobre procesadores de 32 bits.
- MAC OS 8.x: La más importante actualización del sistema, sus ventajas son su rapidez, y la
capacidad para trabajar con tecnologías multimedia, además grandes y nuevas herramientas
para navegar por Internet, está diseñado para poder utilizarse en todos los modelos de 68040
y los Power PC compatibles, este sistema operativo es monousuario y multitarea.

4 SEGURIDAD EN LOS SISTEMAS OPERATIVOS

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 42 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Es el aspecto del sistema operativo que se cuida de que los distintos componentes del sistema
informático mantengan su integridad y que no se vean ante manipulaciones involuntarias o ilegales.
Se puede hablar de dos ámbitos relacionados con la seguridad:

- Seguridad externa: La seguridad externa trata de garantizar que los recursos estén protegidos,
esto es, que no se acceda a ellos sin permiso. Es, pues, una seguridad contra agentes
externos. Se tiende a proteger el elemento más importante: la información.
- Seguridad interna o lógica: En el ordenador se tienen posibilidades de conexión y éstas deben
ser controladas. Los mecanismos de control que configuran la llamada seguridad interna o
lógica son:

4.1 Seguridad lógica

Dentro de la cual se pueden considerar dos posibilidades:

4.1.1 Control de Usuarios

Denominado también conexión o nivel de acceso, sólo permite conectarse a usuarios que están
registrados. Es un software interno del sistema operativo que lee el usuario -user name- y su clave –
password-, controlando si existe o no para permitirle o no el acceso. Mientras no se está dado de alta
no se permite la conexión.

Un segundo nivel de seguridad es permitir un máximo de repeticiones de user name y password. Es


decir, una limitación de intentos. Cuando el número de intentos se ha cumplido se revoca el usuario,
no se le permite el acceso y se le da de baja temporal hasta que se actualice.

En cualquier caso, estos sistemas de seguridad crean un estado de privilegio, admitiendo sólo ciertas
operaciones. Así se restringen los derechos de cada usuario.

4.1.2 Protección de los recursos

La protección a seguir para cada uno de los recursos sería la siguiente:

- PROCESADOR: Mediante un reloj interno se evita que un programa acapare la CPU.


- MEMORIA: Mediante registros frontera que consiguen que un programa no se meta en áreas
de memoria de otro programa o del sistema.
- PERIFÉRICOS: La operación es exclusiva del sistema operativo que lo hace mediante
drivers, evitando que se puedan leer dos programas de un disco Simultáneamente.

4.2 Requisitos de seguridad en los Ficheros.

Existen dos conceptos importantes para ficheros:

Disponibilidad de ficheros
Deben adaptarse las copias de seguridad que se efectúan de los ficheros (back-up) con los períodos de
actualización de los mismos. Por ejemplo, si se dispone de un fichero que se actualiza cada siete
días, sus copias de seguridad deberán realizarse con igual periodicidad para asegurar la correcta
recuperación del fichero.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 43 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Si esta situación, la alteración de los datos contenidos en los ficheros, se da en modo


interactivo, como ocurre en los bancos con los movimientos de las cuentas corrientes de sus
clientes, deben crearse ficheros históricos que graben todas las operaciones de actualización que se
van registrando para poner al día todos los datos a partir de estas informaciones en caso de error.
Las instalaciones suelen reservar unas horas diarias para realizar estos trabajos a los que se
denominan procesos BATCH.
Privacidad de ficheros
Trata de asegurar que la información de los ficheros esté restringida a ciertos usuarios.
Se basa en la existencia de ficheros y derechos sobre cada fichero que forman un conjunto
denominado dominios. Cada usuario trabaja en uno de estos dominios determinado.

4.3 Seguridad en la transmisión de datos

Para evitar que la información sea fácilmente accesible se plantean técnicas de criptografía.

La información manejada en un terminal de una línea se codifica de forma criptográfica y se envía al


sistema central. El emisor convierte la información mediante un algoritmo que también conoce el
receptor con la finalidad de que lo decodifique.

Asimismo, para simplificar el trabajo y ahorrar memoria se opta por la compactación de los datos.

4.4 Sistemas tolerantes a fallos

Los sistemas tolerantes a fallos son aquellos sistemas que permiten la recuperación de la información
en caso de que se produzcan fallos. Dicha información no quedará afectada por el fallo. La solución
suele ser duplicar recursos -CPU, memoria o discos-.

Las operaciones se hacen simultáneamente sobre el recurso duplicado. De esta manera, si falla algo de
hardware, la información del duplicado correcto no se verá afectada.

En ocasiones se crea una doble CPU para que, si falla una de ellas, se pueda seguir trabajando en el
sistema con la que continúa funcionando de forma correcta.

Estas duplicaciones necesitan la gestión de sistemas operativos más complejos.

5 FUTURO DE LOS SISTEMAS OPERATIVOS

Los sistemas operativos siguen evolucionando. La principal tendencia de los sistemas operativos en
cuanto a organización de trabajo es convertirse en sistemas operativos distribuidos, de los cuales se ha
hablado un poco más arriba.

No hay que confundir un sistema operativo de red con un sistema operativo distribuido. En un sistema
operativo de red las computadoras están interconectadas por medios de comunicación: software y
hardware. En este tipo de red los usuarios saben donde están ejecutando su trabajo y guardando su
información. En cambio en los sistemas operativos distribuidos existe un software que distribuye las
tareas de los usuarios sobre una red de computadoras y para los usuarios es transparente donde
realizan sus tareas y guardan su información.

Actualmente, hay solamente dos paradigmas fundamentales del sistema operativo: el intérprete de la
línea de comando -UNIX, DOS-, y la interfaz gráfica -MacIntosh OS, OS/2, Windows 98 y

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 44 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

posteriores-, aunque esto no es del todo así, pues la inclusión de Linux, gráfico o no, y la dotación de
interfaz gráfica para UNIX cambian sensiblemente el cuadro expuesto.

La generación siguiente de sistemas operativos utilizará las nuevas tecnologías como la programación
orientada a objetos -OOP-, y nueva tecnología de hardware -SDRAM y los microprocesadores densos
y baratos-, para crear un ambiente que beneficie a los programadores -con modularidad y la
abstracción crecientes- así como a los usuarios -proporcionándoles una interna, constante y
gráficamente orientada interfaz-. Los sistemas operativos futuros también se adaptarán fácilmente a
las preferencias cambiantes del usuario y a las tecnologías futuras -tales como sistemas de realidad
virtual-

5.1 Principios de desarrollo futuro

Existen cuatro principios dominantes que deben regir en el diseño de sistemas operativos futuros:

Abstracción
El principio de la abstracción es que un nivel del ambiente de software no debe necesitar "saber"
los detalles sobre la implementación en otros niveles. Por ejemplo, un programador no debe
requerir saber qué clase de procesador será usado cuando se ejecute su programa, y un usuario
de correo electrónico no debe requerir de conocimientos de los protocolos de red.
Robustez y gestión de errores
Ninguna acción del usuario debe hacer que el sistema se comporte en una extraña o ilógica manera.
Debe ser imposible que cualquier programa interrumpa el funcionamiento de otros programas, o
del equipo. Es decir sin importar las acciones y las decisiones del usuario y del programador, la
computadora nunca debe "colapsarse". Además, cualquier acontecimiento inesperado se debe
manejar de una manera práctica. Los problemas que el sistema operativo no puede solucionar se
deben señalar al usuario de una manera clara, como un "cuadro de diálogo" por ejemplo, y se
deben explicar de una manera no técnica -utilizar un lenguage dependiendo del módulo de
programación-. El sistema debe enumerar claramente las opciones de las cuales el usuario debe
elegir.
Estandarización
Un sistema operativo bien diseñado debe ser estandardizado de una manera tal que se adapte y siga
siendo útil indefinidamente. Debe crecer en a la par con la tecnología informática, la
visualización, y tecnologías de interacción, y preferencias del usuario. La naturaleza modular
del sistema operativo del mañana será tal que algunas piezas del sistema serán continuamente
modificadas y puestas al día reflejar estos cambios. Para que estas características sean posibles,
el sistema requerirá: un conjunto muy bien definido de los estándares públicos disponibles -para
la comunicación entre las capas y los objetos-, que este conjunto de estándares se desarrolle con
un cierto plazo de tiempo pero que siga siendo claro y conciso, y que los estándares no cambien
tan rápidamente como para causar problemas de compatibilidad o altos costos de cambio de
hardware.
Diseño para facilidad de empleo y desarrollo de software
Muy intuitivo, con áreas determinadas por funciones y procedimientos de trabajo, mensajes claros
y coherentemente agrupados, de forma que los costos derivados de la formación a los usuarios
sea mínimo.
El diseño será hecho con modularidad y estandardización inherentes. Debido a estos buenos
principios del diseño, el sistema operativo del mañana no será difícilmente de implementar.
Estas mismas cualidades facilitarán el trabajo de los programadores también, en cuanto a la
mayoría de los proyectos de desarrollo necesitarán sólamente ensamblar objetos de alto nivel.
Esos módulos que deben escribir para sí mismos serán reutilizables y fácilmente adaptables a
las necesidades de cada programador.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 45 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

5.2 Tendencias del Mercado

5.2.1 Windows Me e Internet por Televisión

La televisión por computadora ya funciona, y es una de las cuestiones que resultará de máximo interés
durante los años de reinado del actual Windows. Lugares como WebTV (http://www.webtv.com)
ofrecen ya navegación a través de Internet con la televisión, y amplias posibilidades en el entorno
audiovisual mundial. No hace falta tener computadora, y tampoco se necesita un software especial. Lo
que sí hace falta es un aparato de conexión que une la línea telefónica con la televisión del usuario.

Los servicios como WebTV multiplican la utilidad de una televisión convencional permitiendo a
cualquier persona navegar instantáneamente por la red con un sencillo control remoto, pero además
los creadores del concepto anuncian que la fusión de las dos plataformas (receptor de televisión y PC)
será una revolución en todos los hogares del mundo.

Todo esto no tendría prácticamente nada que ver con este tema sobre tendencias de mercado de
sistemas operativos si no fuera porque Microsoft, que ya posee su propia cadena de televisión, ha
anunciado que tiene intención de comprar el servicio WebTV para convertir en receptores de
televisión equipos dotados con Memphis y Millenium (Windows 98 y Windows Me) y Windows NT
5.0. Este futuro pasa tanto por la telecarga que ya ofrece Canal Satélite como por la programación a la
carta y la "navegación televisiva" que pretende ofrecer Microsoft al usuario. Dentro de un tiempo sólo
necesitaremos un aparato que englobará las funciones de la actual televisión y de los PC.

5.2.2 Apple y NeXT

Nadie puede predecir cómo va a ser el nuevo milenio, pero es claro que los ordenadores e Internet
jugarán un importante papel en nuestras vidas. La combinación de Macintosh e Internet ofrecerá más
posibilidades que nadie, particularmente en diseño gráfico, edición de video, publicación de páginas
Web y en el desarrollo de software.

Apple Computers liberó hace unas semanas a más de 10000 programadores una versión beta del
nuevo entorno –pues no es exactamente un sistema- operativo que tiene como nombre clave
Rhapsody, con la intención de que los programadores conozcan y desarrollen aplicaciones para este
nuevo sistema operativo. Rhapsody será inicialmente lanzado en un selecto mercado de despachos de
diseñadores, videoedición y servidores de Internet que necesitan la más alta eficiencia y en una línea
de productos que incluyen los modelos Power Macintosh 8500, 8600, 9500 y 9600.

Rhapsody es un sistema diseñado para ser el sistema operativo del futuro: rápido, moderno, altamente
estable. Algunas de sus características son:

- Un poderoso entorno con multitareas, memoria protegida con integradas capacidades para el
simétrico multiprocesamiento.
- Las ventajas del Mac-OS junto con la integrada y madura tecnología de comunicaciones y una
profunda integración de Java.
- La tecnología de QuickTime Media Layer será optimizada para Rhapsody, proveyendo a los
usuarios con un rico y ventajoso entorno para la creación y reproducción de multimedia.
- Rhapsody combina la larga tradición de facilidad de uso y el real Plug & Play establecida por
Apple, y el entorno kernel de NeXT. Preservará el familiar "míralo y siéntelo" de la actual
interfase Mac-OS.
- La parte medular de la arquitectura de Rhapsody es ser nativo al procesador PowerPC.
Diseñado para usarse en la mayoría de aplicaciones del Mac-OS, también la mayoría de las
extensiones del sistema trabajarán sin modificaciones. Esta compatibilidad será proveída en
una implementación del Mac-OS, que incluyen los procesadores 68K y los Power PC, no
será una "emulación" para las 68K según ingenieros de Apple, se integrará un nuevo código
U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 46 de 15
1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

que aprovechará al poderoso procesador PowerPC desarrollado por IBM, Motorola y Apple,
que se encuentra ya en su cuarta generación a velocidades de 500 y 850 Mhz.

Otro de los desarrollos de Rhapsody es un poderoso entorno de aplicaciones de "objetos orientados"


iniciado por NeXT (la tecnología de objetos orientados es trabajar por unas llamadas "partes" que
consiste en usar varios documentos de varias aplicaciones en uno solo, sin necesidad de tener la
aplicación en que fueron creados).

Los ingenieros de Apple tienen planeado integrar estrechamente a Java en Rhapsody, con las librerías
de Java y la Java Virtual Machine (VM) dando a Apple el liderazgo en el desarrollo de Java. Una
moderna implementación de Mac, microkernel, desarrollado por la Universidad Carnegie Mellon, es
una nueva generación de entrada y salida de dispositivos (IO), administrador de archivos, intercambio
entre aplicaciones y redes. Apple desarrolla un nuevo dispositivo que sustituirá al actual SCSI: el
WireFire que transfiere 4MB por segundo.

5.2.3 Perspectivas de los Sistemas Operativos

Desde los inicios de las computadoras modernas, la tecnología del hardware ha progresado más
rápidamente que el software que la acompaña. Por ejemplo, existen ordenadores que poseen un
hardware con un funcionamiento veloz e increíble, pero el software -sistema operativo- que estas
máquinas poseen es tan pobre que son extremadamente difíciles de programar. Debido al estado
inmaduro de estos sistemas operativos, estas computadoras funcionan sólamente en una fracción
pequeña de su velocidad máxima mientras que trabajan bajo cargas de trabajo típicas.

Con la llegada de los nuevos Sistemas Operativos el hardware se aprovechará al máximo y se reducirá
esa brecha de sincronía que existe entre el hardware y el software que lo controla. Con estos sistemas
operativos se llegará a concretar lo que se llama la quinta generación de computadoras, que pretende
multiplicar la velocidad, disponer procesamientos paralelos, diseñar una arquitectura de hardware-
software muy superior y utilizar el lenguaje natural.

La renovación que aportarán los sistemas operativos es múltiple. Ya no viene determinada únicamente
por la introducción de cambios material o de hardware, sino por la combinación de novedades en el
material y en la programación.

El tipo de trabajo propio que realizarán el hardware y software de la quinta generación, no sólo en el
tratamiento de datos, sino en la adquisición de información y, a partir de los materiales y estructuras
de que dispone, en la elaboración de conocimientos, es decir, en la elaboración inteligente del saber.
Es decir se anuncia el aprovechamiento de la computadora para adquirir conocimientos
artificialmente, a través de las máquinas. A partir de esto, estas ya no solo aportarán fuerza o
habilidad, sino que también proveerán al hombre de un conocimiento del mundo.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 47 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 48 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 49 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Ciclos formativos – 1º ASI

Sistemas Informáticos Monousuario y Multiusuario

Unidad Didáctica 6 - Sistemas operativos. Funcionamiento y gestión.


ÍNDICE
ÍNDICE 1

1 CONCEPTOS PREVIOS 3

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 50 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

2 FUNCIONES DE LOS SISTEMAS OPERATIVOS 4

3 PROCESOS 4
3.1 CARACTERÍSTICAS 4
3.2 ATRIBUTOS 5
3.3 TIPOS DE PROCESOS 5
3.4 DIFERENCIA ENTRE PROCESO, PROGRAMA E HILO 6
4 PLANIFICACIÓN 6
4.1 PARÁMETROS DE SEGUIMIENTO DE LOS PROCESOS 7
4.2 TERMINACIÓN DE UN PROCESO 7
4.3 SUSPENSIÓN DE UN PROCESO 8
4.4 GESTIÓN Y CONTROL DE LOS PROCESOS 8
4.4.1 Cambio de contexto 9
4.5 CICLO DE PLANIFICACIÓN 9
4.6 PLANIFICACIÓN SIN PLANIFICACIÓN Y MEMORIA ILIMITADA 9
4.7 CUASIPLANIFICACIÓN CON MEMORIA LIMITADA 10
4.8 SINCRONIZACIÓN 11
4.9 EXCLUSIÓN MUTUA 12
4.9.1 Métodos de software12
4.9.1.1 Algoritmos elementales de exclusión mutua 12
4.9.1.2 Algoritmo de Dekker 13
4.9.1.3 Algoritmo de Petterson 13
4.9.1.4 Algoritmo de Dijkstra o del semáforo 14
4.9.1.5 Algoritmo de Camport o de la tienda 14
4.9.2 Mecanismos de hardware 14
4.9.2.1 Interrupción permitida/interrupción no permitida 14
4.9.2.2 Comparar y asignar 15
4.9.2.3 Variable de control 15
4.10 ALGORITMOS GENERALES DE PLANIFICACIÓN DE LA CPU 15
4.10.1 Método FIFO o FCFS 15
4.10.2 Método Round-Robin 16
4.10.3 Por el proceso más corto 16
4.10.4 Por el proceso más corto y el resto 17
4.10.5 Prioridad multicola 17
4.10.6 Por tiempo de espera y de ejecución 17
5 INTERBLOQUEOS 18
5.1 SOLUCIONES AL INTERBLOQUEO 18
5.1.1 Prevención del interbloqueo 18
5.1.2 Eliminación del interbloqueo 19
ÍNDICE ALFABÉTICO DE CONCEPTOS 20

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 51 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

1 CONCEPTOS PREVIOS

Procesador: Es la principal parte operativa de un computador, que gobierna el sistema y lleva a cabo
las principales operaciones aritméticas y lógicas. está constituido por una Unidad Aritméticológica
y una Unidad de Control. Se une mediante un bus a la memoria central, o RAM, para formar el
tándem memoria/procesador de la máquina de Von Newman.

Proceso: Cuasisinónimo de tarea, se define como un flujo de actividad unitario. Una actividad que
realiza un procesador. Está determinado por su código -conjunto ordenado de instrucciones que
definen las acciones que el proceso debe llevar a cabo-, su espacio de trabajo -o conjunto de
valores de datos que el proceso puede leer, escribir y manipular-, y por su descriptor de proceso
-parámetro que define la situación actual de los recursos que están a disposición del proceso-.

Interrupción: Es una señal dirigida al procesador indicando que un suceso asíncrono -un evento que
está fuera del ritmo previsto de trabajos o tareas del ordenador- ha ocurrido. Así la actual secuencia
de instrucciones se ha interrumpido mientras una secuencia apropiada para esa interrupción ha
comenzado en su lugar. Esto puede tener lugar en la transferencia de información a un
periférico, sucesos voluntarios dentro de un proceso -cuando un proceso está necesitando los
servicios de un sistema operativo-, sucesos involuntarios dentro de un proceso -cuando se entra
en una acción no definida o prohibida se producirá una interrupción y una llamada al supervisor-,
acciones por medio de operadores -si estos tienen la intención de comunicar con el supervisor-, y
por interrupciones del temporizador -que lo hace para garantizar que el supervisor podrá
enterarse de la situación de los distintos procesos-.

Error: Acontecimientos imprevisibles y no deseables que alteran el adecuado funcionamiento de un


proceso. El sistema tratará de evitarlos y actuará con los procesos de las excepciones. Existen tres
tipos de errores. Los errores catastróficos -definidos como aquéllos que no permiten continuar con
su gestión al sistema operativo-, errores no recuperables -que hacen que el proceso no pueda
continuar con lo que se llega a su suspensión-, y errores recuperables -que permitirán la
continuidad del proceso con algunos ajustes-.
Cuando ha tenido lugar un error, el sistema lo detecta y lo enmarca en una dirección de
memoria concreta donde se encuentra una rutina que soluciona ese tipo de error. El sistema
operativo tiene un sistema inmunológico formado por cierto número de subrutinas que tratan
diferentes clases de errores, las cuales están almacenadas en direcciones de memoria concretas -que
suelen ser las más bajas de la pila-.
Cuando se detecta un error, se guardará el proceso en las PSW más antiguas pero del mismo
tipo, mientras que en la PSW actual se introducirá la rutina que soluciona el error. La PSW es la
Processor Status Word -Palabra de Situación del Procesador- o palabra de la memoria que describe
al completo la situación del procesador en cada momento. Indica qué clase de operaciones están
permitidas y cuáles prohibidas, y el estado de todas las interrupciones asociadas con el procesador.
Esta información se guarda en un registro llamado Registro de Situación del Procesador
-Processor Status Register-.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 52 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

2 FUNCIONES DE LOS SISTEMAS OPERATIVOS

Como se ha definido en la unidad didáctica anterior, un sistema operativo es un software que se va a


encargar de manipular el sistema físico y crear un entorno de trabajo en el cual los programas se
ejecuten de la manera más rápida y fiable posible.

Así, de una manera grosera podría hacerse una primera aproximación a las tareas de un sistema
operativo desde dos vertientes: asistencia a la programación y gestión del sistema. Desde el punto de
vista de la primera función, las tareas de un sistema operativo se pueden resumir en:

- Asistencia en la compilación, depuración y linkado de programas


- Manejo y ejecución de programas, su carga en memoria, su ejecución y la finalización
- Gestión de la información, manejo de ficheros, modificación, lectura, grabación,...
- Controlar las operaciones de entrada y salida
- Detección de errores físicos o lógicos

Para la gestión eficiente del sistema informático el sistema operativo debe:

- Informar sobre el estado de uso del mismo, usuarios, tareas, tiempos, recursos,...
- Dar inicio a los procesos y mantenerlos hasta que acaben
- Interpretar los lenguajes de control
- Protección de la estructura de la información ante usos inadecuados: detectar y corregir
errores, protección de datos, de programas
- Asignación y separación de recursos: CPU, memoria, dispositivos de entrada y salida,...
- Gestionar las interrupciones
- Interactuar con el usuario

3 PROCESOS

Como se ha visto más arriba, un proceso es cualquier actividad que realiza un procesador. Dado que
un ordenador puede llevar a cabo distintos procesos simultáneamente, el procesador debe contemplar
la posibilidad de ser compartido, lo que se consigue aplicando un algoritmo de planificación.

3.1 Características

Se pueden considerar cinco características definitorias de los procesos

- Concurrencia: Que es la progresión de dos o más procesos que trabajan en paralelo, pero de
forma dependiente. Esta es la situación más típica en los sistema actuales. Por ejemplo,
mientras se realizan las operaciones necesarias para la selección e inserción de los campos
para preparar las etiquetas que servirán para enviar las facturas de una sucursal bancaria,
pueden irse leyendo los datos relativos a vencimiento de talones o preparar listados de riesgo
por clientes (ver Figura 6.2). Si la relación es de paralelismo pero independiente, se
denomina una relación de convivencia
- Competencia: O situación que se plantea cuando dos o más procesos deben utilizar los
mismos recursos físicos o lógicos. Esto ocurre por que no es posible que dos procesos
actúen usando el mismo recurso
- Cooperación: Lo que ocurre cuando dos procesos que se están ejecutando son
interdependientes, es decir, para que lleguen a un resultado, se necesitan mutuamente
- Jerarquía: Es la relación que se establece entre procesos que son interdependientes en mayor
o menor grado, estableciéndose familias de procesos. Cuando un proceso necesita crear

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 53 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

otros, al previo se le denomina proceso padre y al nuevo se le llama proceso hijo. Las
normas de estado de los procesos en su creación o suspensión las dicta el sistema operativo
- Estado: Es el grado de uso de la CPU. Existen tres niveles: en ejecución -está usando la
CPU-, preparado -la usaría si la CPU estuviera disponible-, y suspendido -esperando a que
algún suceso le “despierte” y recupere el grado de ejecución o preparado-. Dentro de los
suspendidos se pueden hacer dos grupos, los suspendidos listo -preparados para activarse- y
suspendidos bloqueados -interrumpidos indefinidamente-. Es el sistema operativo el que
realiza los cambios de estado cuando están disponibles.

3.2 Atributos

Son las circunstancias que debe conocer un sistema operativo sobre un proceso para decidir sobre él:

- Nombre: Es la referencia que se debe conocer de un atributo para que otro proceso, o el
sistema operativo, puedan “llamarle”
- Estado actual: Su situación en ese instante. Si un proceso pasa de un estado de actividad a
uno de suspensión, sus parámetros se guardan en su bloque de control de procesos
- Prioridad: Virtud de los procesos por la que se determina cuál de ellos accederá con
preferencia a la CPU antes que otro. Una de las técnicas que se usan en la asignación de
prioridades es la llamada de envejecimiento. Trata de aumentar la prioridad de aquellos
procesos que llevan más tiempo en lista de espera, con lo que se evita que un proceso no se
active nunca o que quede obsoleto.
Su gestión consiste en asignarle a cada proceso un cualificador que determine la atención
que va a recibir del sistema, teniendo en cuenta que las prioridades pueden ser asignadas
directamente por el sistema operativo -las internas, las más frecuentes- o por el usuario o
administrador -las externas, muy raras-. A su vez dentro de estas prioridades pueden ser
estáticas o dinámicas:
-- Estáticas: Las que no cambian durante la ejecución del proceso. Siempre el proceso va a
tener la misma prioridad. Son fáciles de implementar y sobrecarga menos el sistema,
porque el procesador no tiene que dedicar tiempo a administrar prioridades.
-- Dinámicas: Son las que responden a cambios, pues al proceso se le da una prioridad
inicial que en principio será de duración corta para después pasar a ajustarse a un mejor
valor.
- Derechos: O los distintos grados de acceso a los diferentes recursos del sistema. Es
especialmente útil cuando se trata de recursos compartibles

3.3 Tipos de procesos

Son diferentes según las características y/o atributos que poseen. Siguiendo el criterio de la utilización
de la memoria, los procesos pueden ser:

- Proceso residente: Se trata de aquel proceso que durante su estado de activado tiene que estar
cargado en la memoria
- Proceso intercambiable: Como aquel proceso que está en estado de espera y del cual se toma
su proceso tratado por la CPU y se incluye en un fichero del sistema, con lo que se deja
liberada la porción de memoria correspondiente

Si se sigue el criterio de atender a las características de su código, los procesos serán:

- Procesos reutilizables: O programas que pueden usar varios usuarios ya que están codificados
con variables genéricas y los usuarios sólo tienen que introducir los valores correspondientes

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 54 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

a la posición delas variables en el código. Tiene la ventaja de que se carga en memoria una
sóla vez y se usa varias veces inicializando adecuadamente las variables
- Procesos reentrantes: Procesos cuyas instrucciones son invariantes, con lo que pueden usarse
de nuevo sin tener que cargarse otra vez. Están estructurados separando lógicamente los
segmentos de datos y de código, con lo que dos instancias del mismo proceso pueden
compartir el mismo código
- Proceso de excepciones: Circunstancias que se pueden presentar en un proceso ocasionadas
por un suceso que se ha presentado pero que no debería haber tenido lugar, con lo que el
sistema tratará de eludirlo. Es lo que se denomina comúnmente un error.

3.4 Diferencia entre proceso, programa e hilo

La idea clave es que un proceso es una actividad de cierto tiempo, y es frecuente que un programa esté
constituido por varios procesos –pudiendo ser centenares-, teniendo en cuenta dos conceptos: las
interrupciones y el cambio de contexto.

Interrupción sería la indicación al sistema de que hay otra actividad pendiente y consiste en que el
procesador atiende una interrupción y decide en función de unos criterios preestablecidos cambiar de
proceso. Para reanudar el trabajo por donde nos hemos quedado hay que guardar la información de lo
que se estaba haciendo y liberar parte de la memoria para la nueva actividad, al hacer este cambio de
contexto el procesador deberá anotar todos los datos importantes que había antes de la interrupción
para poder reanudar más tarde la actividad.

Por otro lado un proceso puede a su vez estar formado por varias tareas o hilos que pueden ejecutarse
en modo concurrente. La unidad mínima ejecutable es la tarea o hilo.

Diferencias entre proceso e hilo :

* Los procesos tienen asignados diferentes secciones de memoria mientras que los hilos no.
* A los procesos se les asignan recursos mientras que los hilos disponen de los recursos
asignados al proceso.
* A la hora de planificar, se pueden planificar los hilos de un mismo proceso.

4 PLANIFICACIÓN

Las tareas que están acumuladas en el spool del sistema operativo, para el caso de un sistema
multiproceso, no son procesos propiamente dichos, pues no han sido activados aún. Para poder
activarse deben formar parte de la planificación del procesador. Así, la planificación a largo plazo del
sistema operativo indica qué trabajo se va a convertir en proceso y en qué momento ocurre.

Por otro lado, la planificación a corto plazo señala qué proceso instalado en la cola pasa a estado de
ejecución. Para que no se produzcan retardos ni cuellos de botella la rutina que hace esta labor en el
sistema operativo tiene que trabajar de manera muy rápida, y que no gaste ni mucho tiempo ni mucho
espacio en la CPU.

En algunos sistemas, sobre todo los que no trabajan por lotes, existe una planificación intermedia.
Este mecanismo envía los procesos bloqueados en la CPU a un medio de almacenamiento externo con
el objetivo de liberar memoria. Posteriormente, el sistema operativo los incluirá en la memoria
principal.

Por todo ello, se concluye que el microprocesador dispondrá de dos contadores de tiempo al menos.
Uno para controlar la unidad central, que coincidirá con el tiempo de reloj, y otro que controla el
tiempo que lleva cada proceso utilizando el microprocesador.
U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 55 de 15
1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Los objetivos que persigue la planificación de los procesos son varios:

- Buscar una cierta equidad en el reparto de tiempo de la CPU para los distintos procesos,
evitando que alguno sea postergado indefinidamente
- Conseguir la máxima capacidad de ejecución manteniendo el mayor número de usuarios
interactivos
- Predecir los límites y capacidad del hardware y del propio sistema operativo
- Mantener un equilibrio en el uso de recursos y en la respuesta derivada de su uso
- Discriminar procesos dando prioridad a los que consumen recursos claves y los de un
comportamiento mejor

4.1 Parámetros de seguimiento de los procesos

Los recursos del sistema que van siendo utilizados y cómo se utilizan son contabilizados por el propio
sistema en los sistemas multiprogramados. Para recursos tales como los procesadores que están
dedicados en su integridad a un proceso individual para un gran número de intervalos cortos de
tiempo, la medida apropiada está por el informe del tiempo real en el que empieza y acaba cada
intervalo de tiempo, con lo que se consigue la longitud del intervalo. La acumulación de todos ellos a
lo largo de la vida completa el proceso proporciona el tiempo de procesador requerido.

T (tiempo de procesador para un proceso) = Σ (ti - tj)

Los parámetros de tiempo que se suelen usar para la ejecución de los algoritmos de planificación son:

- Tiempo de servicio: o tiempo que tarda el sistema por concluir el mandato que se le ha
solicitado. Es el caso de escribir el mandato DIR del DOS y recibir la lista de ficheros y
directorios.
- El tiempo de espera: o tiempo que pasa entre la finalización de una operación y el comienzo
de la siguiente
T = t (tiempo del propio proceso) + E (espera debida a la CPU)
- Índice de aprovechamiento: o el cociente entre el tiempo teórico de ejecución del proceso (t)
y el tiempo de servicio (T)
I=t/T

4.2 Terminación de un proceso

Las razones por las que se termina un proceso por parte del sistema operativo son:

- Normal: El proceso ejecuta llamada al servicio del sistema operativo que notifica su
terminación normal.
- Por tiempo excedido: Una tarea tiene asignada la CPU, ejecuta el tiempo máximo y le es
requisada la CPU, es excluida, y pasa a la cola para competir por la nueva asignación.
- Violación de limites: Un proceso trata de acceder a una posición de memoria a la que no le
está permitido acceder.
- No memoria disponible: El proceso necesita más memoria de la que el sistema puede
proporcionar.
- Error de protección: El proceso intenta utilizar un recurso o archivo que no le está permitido
utilizar, o trata de utilizarlo de forma incorrecta.
- Error aritmético: Si el proceso intenta hacer un cálculo prohibido, como la división por cero, o
trata de acceder a un número mayor del que el hardware acepta.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 56 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Tiempo máximo de espera de recurso: El proceso ha esperado más alla del tiempo máximo
especificado para que se produzca cierto suceso.
- Fallo de dispositivo de E/S: Se produce un error en una operación de E/S.
- Instrucción no valida: El proceso intenta ejecutar una instrucción inexistente, lo que sucede a
menudo como resultado de un salto para ejecutar datos en la zona de datos.
- Intento de acceso a una instrucción privilegiada: El proceso intenta utilizar una instrucción
reservada para el sistema operativo.
- Finalización del padre: Cuando un proceso padre finaliza, el sistema operativo puede
diseñarse para teminar automáticamente con todos sus descendientes.
- Mal uso de los datos: Un elemento de dato no está inicializado o es de un tipo equivocado.
- Intervención del operador o del sistema operativo: Por alguna razón el operador o el sistema
operativo termina con un proceso, como por ejemplo en el caso de un interbloqueo (ver más
adelante).
- Solicitud del padre: Un proceso padre tiene normalmente autoridad para terminar con
cualquiera de sus hijos.

4.3 Suspensión de un proceso

Se define proceso suspendido como aquel que tiene las características siguientes:

1 No está disponible de inmediato para su ejecución.


2 El proceso puede estar esperando o no un suceso. Si lo está, la condición de bloqueado es
independiente de la condición de suspendido y el acontecimiento del suceso bloqueando no
lo habilita para la ejecución.
3 El proceso fue situado en el estado de suspendido por un agente con el fin de impedir su
ejecución.
4 El proceso no puede apartarse de este estado hasta que el agente lo ordene explícitamente.

Las principales razones para la suspensión de un proceso son:

- Intercambio: Liberar memoria principal para otro proceso que está listo para ejecutarse.
- Suspensión por parte del sistema operativo por sospechar que el proceso es causante de
problemas.
- Solicitud del usuario: Un usuario puede querer suspender la ejecución de un proceso con fines
de depuración o en conexión con el uso de un recurso.
- Por tiempo: aplicable a procesos que se ejecutan a intervalos. Puede ser suspendido mientras
espera el siguiente intervalo de tiempo.
- Solicitud del proceso padre: Un proceso padre puede suspender la ejecución de un hijo para
examinar el proceso suspendido o para coordinar la actividad de varios descendientes.

4.4 Gestión y control de los procesos

El sistema operativo necesita conocer, en todo momento, qué procesos se están ejecutando, cuáles van
a entrar, los que se tienen que activar a corto plazo, y los que acaban de terminar y los resultados que
han producido.

Para poder hacer esto, el sistema operativo construye y mantiene dos tablas estructuradas en base a
registros con información dividida en dos grandes bloques:

- El SCB: o Bloque de Control del Sistema. Es la forma que tiene el sistema operativo de
controlar lo que está haciendo, qué datos está manejando y cómo lo está haciendo. Lo
normal es que el SCB contenga:
-- Lista de procesos en curso.
U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 57 de 15
1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

-- Indicador de en qué proceso se encuentra.


-- Puntero de los procesos que no se están ejecutando aún.
-- Puntero de cola de los procesos que no están usando el microprocesador.
-- Identificadores de rutinas necesarias para el manejo de interrupciones.
- El PCB: o Bloque de Control del Proceso. Es la forma de saber qué parte del proceso se está
ejecutando, qué valores tienen los registros, dónde se guarda la información, qué está
haciendo el proceso, etc.., o sea el PCB es la información referente a un proceso en cuestión,
el cual, cada vez que termina, obtiene unos resultados que se almacenan en el PCB de dicho
proceso.

4.4.1 Cambio de contexto

Para cambiar la CPU de un proceso a otro se requiere guardar el estado anterior y cargar el estado
nuevo para el proceso, procedimiento conocido como cambio de contexto.

El tiempo de cambio de contexto es un gasto más y depende de la máquina, con lo que los tiempos de
cambio de contexto dependen en gran medida del apoyo del hardware.

- En procesadores que ofrecen varios conjuntos de registros, un cambio de contexto implica


cambiar el apuntador el conjunto actual de registros.
- Si hay más procesos activos que registros, el cambio de contexto se realiza utilizando la
memoria.
- Cuanto más complejo es el sistemaoperativo, más trabajo se realiza en un cambio de contexto.

4.5 Ciclo de planificación

- Ciclo de ráfagas de CPU y E/S: La ejecución de un proceso consiste en un ciclo de ejecución


de CPU y espera de E/S. La ejecución de un proceso comienza con una ráfaga de CPU, a
ésta le siguen ráfagas de CPU y E/S. La última ráfaga, de CPU, terminará con solicitud al
sistema de terminación ejecución.
- Planificador de CPU: El procedimiento de selección de procesos se realiza por el planificador
a corto plazo. La cola de listos tendrá diferentes implementaciones, y conceptualmente se
encuentran en fila esperando una oportunidad para ejecutarse.
- Colas de planificación: Conforme los procesos entran en el sistema se colocan en la colas de
procesos, es decir, residen en el almacenamiento secundario. Los procesos que residen en
memoria principal se colocan en la cola de procesos listos. Cada PCB tiene un apuntador
que indica cuál es el siguiente proceso en la cola de listos.

4.6 Planificación sin planificación y memoria ilimitada

Que es el caso que se plantea cuando los procesos llegan al umbral de la CPU y entran en ella sin
ninguna traba, compartiendo desde ese momento el uso del microprocesador con los procesos que ya
estaban en memoria.

Para conocer la compartición de recursos se define lo que se denomina adelanto de la CPU, o tiempo
que dedica la CPU a cada uno de los procesos con los que trabaja. De tal forma que si en el
microprocesador se están cursando cuatro procesos simultáneamente, el adelanto de la CPU para cada
proceso será la cuarta parte del tiempo transcurrido de reloj para la CPU. Hay que tener en cuenta,
para este modelo, que los procesos, una vez se colocan en la “cola”, entran en ejecución, es decir,
eliminando de los cálculos de tiempo los derivados de la entrada y salida, en memoria y en CPU no
existe tiempo de retardo. O sea, no existe una planificación al respecto.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 58 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Sirva como ejemplo el siguiente conjunto de procesos. Se trata de seis de ellos que entran en la CPU
en distintos momentos y con diferentes tiempos de ejecución. La Tabla 7.1 muestra esos dos atributos
para cada uno de los seis procesos. La Tabla 7.2 muestra la Tabla 7.1 añadiendo tres columnas: la
hora de inicio -hora a la que realmente empieza cada proceso-, la hora final -hora a la que acaba-, y el
tiempo de retorno -tiempo que transcurre desde que el proceso entra en la CPU hasta que sale de ella-.
Para elaborar esta segunda tabla se supone que los procesos siguen un esquema de tráfico simple que
se llama FIFO -first in first out, es decir, primero que entra, primero que sale-.

Tabla 7.1 - Llegada y tiempo de ejecución de 6 procesos

Proceso Hora de entrada en la Tiempo de ejecución


(orden) CPU en la CPU
P1 8,00 0,4
P2 8,20 0,6
P3 8,60 0,7
P4 8,70 0,5
P5 9,00 0,8
P6 10,00 0,3

Tabla 7.2 - Momento de inicio, de acabado, y tiempo de retorno para esos 6 procesos
en un esquema de trabajo tipo FIFO

Orden de Hora de Tiempo de Hora de Hora de Tiempo de


los procesos llegada ejecución comienzo acabado retorno
P1 8,00 0,4 8,00 8,40 0,40
P2 8,20 0,6 8,40 9,00 0,80
P3 8,60 0,7 9,00 9,70 1,10
P4 8,70 0,5 9,70 10,20 1,50
P5 9,00 0,8 10,20 11,00 2,00
P6 10,00 0,3 11,00 11,03 1,30

Sin embargo, en un sistema multiprogramado, donde además no existe un límite de memoria para la
ejecución de los distintos procesos, en el que como se ha comentado antes, una vez que los procesos
entran en la CPU comparten el tiempo de que dispone ésta, la secuencia de los procesos y sus tiempos
de acabado y retorno, quedarían como se muestra en la Figura 7.1.

4.7 Cuasiplanificación con memoria limitada

En este caso, a pesar del título, sí existe una planificación, aunque se trate de un sistema muy
elemental. Para poder aplicarlo habrá que conocer el tiempo de ejecución de cada proceso, la prioridad
asignada a cada uno, memoria que consumen o que necesitan, etc.

Disponer de todos estos datos es imprescindible para poder aplicarle un algoritmo a la cola de
procesos y decidir, a medida que transcurren las operaciones, qué proceso entra y cuál se queda fuera.

Por ejemplo, supongamos que tenemos 6 procesos, con los datos de orden, hora de llegada, tiempo de
CPU, memoria que consumen y prioridad asignada (ver Tabla 7.3)

Tabla 7.3 - Resumen de datos de funcionamiento de 6 procesos


U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 59 de 15
1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Orden de proceso Hora de llegada Tiempo de CPU Memoria (Kb) Prioridad


1 0,0 1,0 20 1
2 0,5 1,0 60 2
3 1,0 0,5 10 3
4 1,5 2,0 30 3
5 2,0 0,2 20 1
6 2,5 0,1 20 2

Una vez que los procesos se instalan en la cola de entrada del procesador, la elección de uno u otro
dependerá de la prioridad que tengan asignada. Los tiempos de entrada ya no coincidirán con los
inicialmente previstos y los de ejecución variarán también (ver Tabla 7.4).

Tabla 7.4 - Resumen de entrada y funcionamiento de los 6 procesos del ejemplo

Tiempo (sg) Tiempo CPU por Procesos


cada proceso (sg) (orden de proceso y entre paréntesis el tiempo que le queda)
0,00 1 (1,00)
0,50 0,50 1 (0,50) 2 (1,00)
1,00 0,25 1 (0,25) 2 (0,75) 3 (0,50)
1,50 0,16 1 (0.90) 2 (0,59) 3 (0,34)
1,77 0,09 1 (0,00) 2 (0,50) 3 (0,25)
2,00 0,12 2 (0,38) 3 (0,13) 5 (0,20)
2,40 0,13 2 (0,25) 3 (0,00) 5 (0,07)
2,50 0,05 2 (0,20) 5 (0,20) 6 (0,10)
2,56 0,02 2 (0,18) 5 (0,00) 6 (0,08)
2,72 0,08 2 (0,10) 6 (0,00) 4 (2,00)
2,93 0,10 2 (0,00) 4 (1,90)
4,83 1,90 4 (0,00)

En la primera columna de esta tabla aparecen instantes de tiempo transcurrido, aunque se han señalado
algunos concretos -por ejemplo, el instante 1,77 que se corresponde con la finalización del proceso 1.
En la segunda columna se ha indicado el tiempo de CPU que consume cada proceso. Y en la columna
3 aparece el orden del proceso y, entre paréntesis, el tiempo que aún le queda por funcionar dentro de
la CPU. En este caso, se señalan en negrita y subrayado los procesos que terminan o que acaban de
incorporarse a la ejecución.

4.8 Sincronización

Existen relaciones entre los procesos de forma que hasta que uno de ellos no ha acabado, otro no
puede comenzar. Para que un conjunto de procesos funcione adecuadamente muchas veces será
necesario sincronizar sus actividades para garantizar que ciertos procesos terminan antes de que
comiencen otros.

Para poder hacer esto, el sistema recurre al envío de señales. Un proceso permanece en espera de
recibir ciertas señales, por lo que está suspendido. Cuando las señales llegan, se pone en estado de
ejecución. Es corriente que entre los procesos implicados se produzca una relación de cooperación
para la ejecución de tareas comunes y una relación de competencia por el uso de recursos
compartidos.

Por ejemplo, si se ejecutan los siguientes procesos:

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 60 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Proceso Pi Proceso Pj
Y1 = X Y2 = X
Y1 = X + 1 Y2 = Y2 + 1
X=Y X = Y2
Ejecución (X = 0)
Y1 = X Y2 = X
Y1 = X + 1 Y2 = X + 1
X = Y1 X = Y2
Conclusión: X = 1, valor incorrecto para Pj

Con lo que el sistema operativo utilizará una variable especial intermedia para que la información
común a ambos procesos sea bloqueada en P i mientras la utiliza el primer proceso -si es que éste es el
que tiene la prioridad- mientras el proceso P j espera. Más tarde éste recibe el valor de X y se ejecuta
proporcionando el verdadero valor de X para ese proceso, que será igual a 2.

4.9 Exclusión mutua

Para evitar la concurrencia de los procesos y optimizar el uso de la CPU aprovechando los tiempos
muertos o momentos valle, se ideó el método de la exclusión mutua, para el caso de sistemas
multiprogramados.

Cuando dos procesos se encuentran compartiendo una variable, se crean conflictos dado que el valor
de la variable cambiará según el proceso que la utilice. Por ello se hace necesario asegurarse de que
los dos procesos nunca van a ejecutar su sección crítica -es decir, aquella parte de sus instrucciones
que utilizan esa variable compartida- al mismo tiempo. Así se evitan riesgos de error, colisiones,
esperas y no estar sujeto a la dependencia de la velocidad de los procesos ni del número de
procesadores.

La solución denominada exclusión mutua consiste en permitir el uso de la variable compartida al


proceso que tiene prioridad mientras los otros procesos permanecen en espera. Para ello habrá que
indicar una serie de condiciones para que los procesos en espera no se vean interrumpidos o
suspendidos. Por ese motivo se crean diferentes algoritmos de exclusión, utilizando mecanismos de
hardware y soluciones de software, y dentro de éstas aparecen las soluciones de espera activa y de
espera no activa.

4.9.1 Métodos de software

4.9.1.1 Algoritmos elementales de exclusión mutua

Se trata de inventar una variable que sirva para todos los procesos relacionados y que recoge un valor
en función de la posibilidad de que un proceso entre en ejecución de su sección crítica. Cuando el
proceso se ha ejecutado, devuelve a esa variable un valor que permitirá a la CPU dejar paso libre para
que otro proceso entre en ejecución.

Esto tiene la desventaja de que se realiza el paso de unos procesos a otros sin tener en cuenta ni las
prioridades ni la conveniencia de trabajo eficiente del sistema. Además, si el primer proceso sufriera
una interrupción, el resto de los procesos no podrían disponer de las variables compartidas o no
podrían actuar conforma a la variable que gobierna todo el proceso.

Para evitar este problema se inventaron una serie de variables, tantas como procesos concurrentes, que
se adjudican a los procesos, una a uno, que servirá para que cada proceso señale, en esa variable, a la

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 61 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

CPU que se encuentra ejecutando su sección crítica. Así, cada proceso consulta las variables de los
demás procesos para “estimar” la conveniencia de entrar en ejecución de la sección crítica o no.

Sin embargo, las prioridades de este método no están claras y pueden producirse cuellos de botella o
infrautilizaciones de la CPU.

4.9.1.2 Algoritmo de Dekker

Se trata de la primera solución conocida de tipo software para resolver la concurrencia de procesos.
Matemáticamente está basado en interpolaciones lineales sucesivas y búsquedas binarias capaces de
encontrar el cero de una función que cambia de signo en un intervalo dado.

Es un algoritmo de espera activa, es decir, cuando las instrucciones de un proceso van preguntando
cada vez a la CPU si el proceso que se está ejecutando en paralelo y que tiene una región crítica a
terminado ya o tiene que seguir esperando. Como ejemplo de un algoritmo de Dekker, sería el
siguiente, considerando los subíndices i y j como diferentes procesos:

<RUTINA>
INICIALIZA ACTIVO (i) = V
MIENTRAS ACTIVO (j) = V <NADA>
SI TURNO = j  ACTIVO (i) = F
MIENTRAS TURNO = j <NADA>
ACTIVO (i) = V
END
TURNO = j
ACTIVO (i) = F

Si bien existe la posibilidad de que se entre en un bucle sin fin, por que podría pasar que:

ACTIVO (i) = V
ACTIVO (j) = V

4.9.1.3 Algoritmo de Petterson

<RUTINA>
INICIALIZA ACTIVO (i) = V
TURNO = j
MIENTRAS ACTIVO (j) = V y TURNO = j <NADA>
END
ACTIVO (i) = F

Para el proceso j el algoritmo de exclusión sería idéntico.

4.9.1.4 Algoritmo de Dijkstra o del semáforo

Se trata de un método diseñado por E. W. Dijkstra en 1959 para tratamiento gráfico y que tenía como
objetivo encontrar el camino más corto entre un vértice y los restantes, dentro de los llamados gráficos
ponderados, o gráficos que llevan asociada a cada arista -línea que une dos vértices- una cantidad
representativa de un concepto. Por ejemplo, un gráfico de rutas de viaje, donde cada arista une dos
puntos geográficos y lleva asociado un costo de viaje.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 62 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Consta de dos operaciones que trabajan coordinadamente: señal y espera. Estas señales actúan sobre
una variables que por la función que realiza se llama semáforo. Esta variable, que es compartida, toma
valores enteros no negativos. Si se da el caso de que toma sólo los valores 0 y 1 entonces a la variable
se la llama semáforo binario. Los valores que toma la variable es el número de procesos que pueden
entrar a la vez en su sección crítica. El pseudocódigo para este algoritmo sería el siguiente:

<SEMÁFORO-ENTRAR>
INICIALIZA SEMAFORO = VALOR
SI SEMAFORO > 0  SEMAFORO = SEMAFORO - 1
SECCIÓN CRÍTICA
SI NO <ESPERA>
<SEMÁFORO-SALIR>
SI SEMAFORO <= 0  SEMAFORO = SEMAFORO + 1
DESBLOQUEAR SIGUIENTE PROCESO
SI NO SEMAFORO = SEMAFORO + 1
FIN
(si SEMAFORO fuese igual a 0, entonces no admitiría más procesos en sección crítica)

Si se añade una entidad denominada cola de espera, se evitará que algún proceso entre en una
dinámica de espera indefinida.

4.9.1.5 Algoritmo de Camport o de la tienda

Se trata, como ocurre en algunas tiendas, de proporcionar a cada proceso un número de “cliente”,
dando entrada en la sección crítica a aquél que tenga el número más bajo, y así sucesivamente. Sin
embargo, además de presentarse problemas de infrautilización de la CPU, puede darse el caso de que
dos procesos tengan acceso al mismo número, con lo que se crearía el mismo conflicto que se quiere
evitar.

4.9.2 Mecanismos de hardware

Para evitar el caso de que los métodos de software fallen, lo que podría ocurrir cuando se presenta un
fallo de programación -lo cual no es infrecuente si se tiene en cuenta que el lenguaje de algunos de
estos algoritmos será el ensamblador-, se diseñaron mecanismos de hardware, normalmente
codificados en lenguaje de bajo nivel y decodificados directamente por la CPU.

4.9.2.1 Interrupción permitida/interrupción no permitida

Viene a actuar respecto a los procedimientos de la CPU como si se tratase de un interruptor. Cuando
la CPU recibe desde un proceso la instrucción interrupción deshabilitada -DI, del inglés disable
interrupt, la CPU queda bloqueada e ignora las interrupciones y ejecuta en exclusiva las instrucciones
del proceso que se la mandó. Es decir, este mandato detiene todos los procesos, aunque no tengan
secciones críticas con respecto del proceso emisor. Cuando el proceso ha terminado de ejecutarse debe
volver a habilitarla porque si no el procesador permanecería en un bucle dado que estaría
continuamente ejecutando el proceso emisor.

En un sistema multiproceso, la llegada de la instrucción de bloqueo a una parte del sistema no influye
en las otras partes del sistema que están procesando, con lo que no se tiene una garantía de coherencia
en los resultados obtenidos.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 63 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

4.9.2.2 Comparar y asignar

Su mecanismo de trabajo es similar al método software del semáforo, pero implantado a nivel
hardware. Utiliza un bit de acceso para cada zona de datos definida -zonas que sufren de concurrencia
de procesos y que su actualización afecta a los resultados de cada proceso-, de tal manera que cuando
el valor de ese bit es 1, la zona se bloquea y sólo puede utilizarla el proceso actual. Si el valor es 0,
permite la entrada y actualiza el bit a 1 para que ningún otro proceso pueda acceder a esa zona.

Es bastante común el uso de este mecanismo en sistemas multitarea y multiusuario. Se suele usar
cuando pueden presentarse muchas situaciones de conflicto.

4.9.2.3 Variable de control

Trata de controlar cuando un proceso quiere actualizar una variable en conflicto -caso de una variable
compartida- y averiguar si otro proceso anterior lo había hecho previamente. En el caso de que haya
sido así, el proceso actual lo intentará hasta que el sistema le permita a ello y proseguir con su
ejecución. Para ello, este mecanismo compara el valor que tenía la variable conflictiva al empezar la
sección crítica y si no es el adecuado, lo intercambia por su inicialización.

Es un buen método cuando se trata de sistemas en los que no se prevé gran número de conflictos.

4.10 Algoritmos generales de planificación de la CPU

4.10.1 Método FIFO o FCFS

FCFS es lo que se conoce como “primero en llegar, primero en ser servido” –del inglés First Come
First Served-, equivalente al método FIFO, que se llama así por ser las siglas del término inglés First
In First Out, es decir, el primero en entrar será el primero en salir. Un sinónimo para este método es el
de la queue list, o lista donde los añadidos se colocan al final de la lista, y las remociones se producen
al principio.

Es decir, se atenderá por la CPU al primer proceso que llega. El resto de los procesos pasan a la cola
de espera donde permanecen en un estricto orden de llegada. Suele utilizarse en sistemas donde el
costo del servicio es más alto que el costo producido por las congestiones.

El inconveniente más serio es que es impredecible, puesto que no se sabe qué procesos están llegando
a la CPU. Además los usuarios esperan que los tiempos de respuesta sean muy similares para procesos
parecidos, lo cual no se garantiza con es método, afectando en mayor medida a los procesos breves,
sobre todo si van detrás de algún procesos largo. Por otro lado, este método es no apropiativo, es
decir, el proceso permanece usando la CPU mientras no ha terminado.

Un ejemplo de este método ha quedado descrito en las tablas 7.1 y 7.2.

4.10.2 Método Round-Robin

Por este método se define un intervalo de tiempo idéntico –denominado quantum- para todos los
procesos de la cola, la cual se se trata de manera circular.

Es decir, a cada proceso se le asigna un tiempo de uso de la CPU. Si ese tiempo se acaba, aunque el
proceso no haya terminado, éste es dirigido a la cola -al final- y otro proceso pasa a ejecutarse. Parece

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 64 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

obvio que si los tiempos asignados son muy cortos, el proceso se hará más lento dado que las rutinas
de activación y desactivación, así como las instalaciones en cola, se harán muy frecuentes.

Una variante más sofisticada es la cola de retroalimentación -del inglés feedback queue- que se usa
sobre todo en sistemas multiusuario. Por esta variante, un proceso se ejecuta hasta que acaba su
intervalo de tiempo asignado, o hasta que comienza a transferir datos a un periférico o hasta que
ocurre alguna interrupción generada por otro proceso. Si el proceso queda inacabado, se le asigna más
tiempo que la vez anterior y se le dirige al final de la cola. Lo mismo ocurre si había iniciado una
transferencia con un periférico llevándole al principio de la cola.

4.10.3 Por el proceso más corto

Se trata del método SJF -del inglés Short Jobs First, es decir, primero los procesos más cortos-. Por
este método se eligen de la cola los procesos más cortos y se les asigna máxima prioridad para el uso
de la CPU.

Tiene la ventaja de que aprovecha más eficientemente el tiempo de uso de la CPU, y prioriza los
procesos más cortos, lo que conduce a que en una unidad o intervalo de tiempo, se acaben mayor
número de procesos.

Las desventajas vienen de que no se sabe bien cómo asigna las prioridades y cómo asigna los tiempos
de uso de la CPU a cada proceso, dado que la CPU no quedará libre hasta acabar el proceso en
cuestión. Por otro lado, la reasignación de prioridades por tiempos puede ser dinámica, en función del
uso detectado de la CPU.

Como el método FIFO, este es no apropiativo, es decir, el proceso permanece usando la CPU hasta
que termina.

Tabla 7.5 – Procesos y sus parámetros de ejecución y de llegada

Procesos T. ejecución (Te) Tiempo de llegada (Ti)


1 0,6 0,0
2 0,3 0,5
3 0,2 0,6
4 0,1 0,8

Tabla 7.6 – Ejecución de los procesos sin espera de la CPU

Pr Ti T entrada T salida T real Ia


1 0,0 0,0 0,6 0,6 1,0
2 0,5 0,9 1,2 0,7 0,4
3 0,6 0,6 0,8 0,2 1,0
4 0,8 0,8 0,9 0,1 1,0

4.10.4 Por el proceso más corto y el resto

Este método compara el tiempo de ejecución que le queda al proceso que está utilizando la CPU con
el tiempo que necesita el proceso que se encuentra el primero en la cola de espera, que será el más
corto de los que están en dicha cola. Si el tiempo del que está en la cola es menor, quita de la CPU el

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 65 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

proceso en curso y deja libre la CPU para el que viene de la cola. En resumen, se trata de un método
apropiativo, pues quita CPU para dársela a otro proceso.

La eficiencia del uso de la CPU es mayor, pero el sistema operativo tiene que guardar los estados y
tiempos de los procesos que salen momentáneamente de la CPU, lo que origina mayor capacidad de
almacenamiento y mayor número de desplazamientos, que también consumen recursos y tiempo.

4.10.5 Prioridad multicola

El sistema operativo analiza los procesos, sus tiempos de ejecución y sus prioridades, construyendo
varias colas de espera. Cada cola puede llevar un método diferente de gestión según la prioridad de la
misma, o bien ser atendida por un método FIFO o circularmente.

Los sistemas operativos que operan según estas características se denominan sistemas operativos de
propósito general y son capaces de soportar varios trabajos interactivos con el usuario, normalmente
tantos como procesos batch o procesos compilados para trabajar secuencialmente según su opción de
ejecución.

4.10.6 Por tiempo de espera y de ejecución

Aquí la prioridad la establecen dos parámetros: el tiempo de espera en la cola y el tiempo estimado de
ejecución del proceso.

El acceso es no apropiativa y la implementación del código en el sistema resulta costosa y conlleva


cierta sobrecarga de memoria.

4.10.7 Mixtos

El más común es el que supone la mezcla de un criterio Round-Robin con un criterio multicola.
Según esto, un sistema asigna tiempos de la CPU mediante diversas colas que se establecen según su
nivel de prioridad. Si un proceso pasa de una cola a la CPU y no acaba en el tiempo que se le ha
asignado, se le dirige para el resto de su ejecución a la cola siguiente. Si, tras su siguiente ejecución,
no ha acabado, entonces se le pasa a la sucesiva. La última cola está gestionada por un método FIFO.

Este sistema sigue dando prioridad a los procesos que son más cortos.

5 INTERBLOQUEOS

Es una situación que se plantea cuando dos procesos activos compiten por recursos del sistema y uno
de los procesos no consigue los suficientes y entra en estado de espera. Cuando este estado de espera
es indefinido se denomina situación de interbloqueo -deadlock-.

El proceso P requiere los recursos X e Y y los necesita en ese orden y, simultáneamente, el proceso Q
necesita los recursos Y y X y los necesita en ese orden. P adquiere X y, a la vez, Q toma Y. Llegado
un momento ninguno de los procesos puede progresar dado que va a requerir recursos que posee el
otro proceso. Su solución sólo puede venir del exterior y es una situación típica de sistemas
multiprogramados.

Se entiende aquí por recurso tanto dispositivos hardware -caso de cintas, algún periférico- como
software -información en módulos de memoria, contenido de un array-.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 66 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Para que se de el interbloqueo deben darse simultáneamente cuatro condiciones:

- Exclusión mutua: cuando algún proceso necesita control exclusivo sobre un recurso, forma
no compartible, y lo acapara, impidiendo que otro proceso lo pueda utilizar
- Espera y retención: situación que se da cuando un proceso que retiene un recurso lo mantiene
hasta que pueda utilizar otro
- No apropiación: un recurso permanece en propiedad de un proceso y no se le puede quitar
hasta que lo haya utilizado; es decir, las prioridades tienen una escasa validez
- Espera circular: existe un conjunto de procesos en el que se da la circunstancia de que un
proceso retiene uno o más recursos que necesita el siguiente proceso

5.1 Soluciones al interbloqueo

La solución más radical es eliminar los procesos que han ocasionado el interbloqueo, lo que se conoce
como reanudación. Otras soluciones pueden ser establecer protocolos para evitarlos, asignar
prioridades o mantener informado al sistema y al usuario de los estados de procesamiento.

En general existen dos grandes tipos de soluciones, las soluciones preventivas y las de tratamiento o
médicas, es decir, las que se aplican una vez que el interbloqueo ha tenido lugar.

5.1.1 Prevención del interbloqueo

Lo más eficaz en este caso es evitar que alguna de las condiciones que da lugar al interbloqueo no
ocurra. Para ello las vemos una por una:

- Exclusión mutua: Resulta complicado ya que existen recursos que no se pueden compartir,
como es el caso de los dispositivos de entrada y de salida -las cintas y las impresoras, por
ejemplo-, con lo que se tiene que recurrir a una compartición virtual con el uso del
denominado spooler.
- Espera y retención: Se evita si el sistema operativo hace que cada proceso, antes de entrar en
ejecución, muestre los recursos que va a utilizar declarándolos en el Lenguaje de Control de
Tareas -JCL, de Job Control Language-. El JCL es un lenguaje que se utiliza para elaborar
“macros” que contienen la secuencia de comandos que se van a ejecutar cuando un programa
entra en estado operativo. Si el sistema operativo comprueba que todos los recursos
declarados están disponibles, le permitirá la ejecución. Si no, le pondrá en estado de
preparado hasta que se liberen esos recursos.
Una desventaja es que los recursos tienen una baja utilización dado que algunos de los
recursos que se usarán al final de la ejecución de un proceso no se utilizarán hasta entonces
permaneciendo libres. Además se pueden discriminar procesos postergando algunos en el
tiempo más de lo debido.
- No apropiación: El sistema operativo estudia si un proceso solicita un recurso que no está
disponible y, en ese caso, lo mantendrá en estado preparado liberando los recursos que
previamente tenía asignados. Este método puede postergar indefinidamente algunos
procesos y puede desechar trabajo que ya ha sido realizado.
- Espera circular: El programador deberá especificar en cada proceso el orden en el que va a
solicitar los recursos, estableciendo así una prioridad de los mismas para cada proceso. De
tal manera que si un proceso está utilizando el recurso situado en el orden 3 -por ejemplo, un
fichero- y quiere usar un recurso situado en primer lugar -por ejemplo, una cinta-, el proceso
liberará los restantes recursos y se colocará en el primer lugar del orden de uso. Para ir
pasando de un lugar al inferior deben irse liberando los recursos superiores.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 67 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Como se ha visto en los puntos anteriores, pude ocurrir que la aplicación de medidas para prevenir el
interbloqueo dé lugar a una baja utilización de los recursos. Para evitar esta circunstancia es
conveniente que el sistema y el usuario dispongan de información sobre cómo se van a solicitar más
recursos y en qué orden.

5.1.2 Eliminación del interbloqueo

Un primer método consiste en preparar procedimientos de detección, como por ejemplo algún
algoritmo ad hoc que se ejecute periódicamente auscultando al sistema. La frecuencia dependerá del
sistema, de su complejidad y de las posibilidades de que se presente el interbloqueo.

La otra manera, denominada en muchas ocasiones reanudación, de eliminar el interbloqueo es forzar a


que algunos de los procesos que lo han ocasionado se detengan en su ejecución y retrocedan en su
ejecución hasta un momento en el que ya no presenten problemas con otros procesos por los recursos
del sistema. Para hacer esto existen dos caminos: el más radical consiste en eliminar todos los
procesos implicados; el más suave supone ir eliminando procesos implicados hasta que, llegado a un
punto de la eliminación, el interbloqueo desaparezca.

U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 68 de 15


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

ÍNDICE ALFABÉTICO DE CONCEPTOS

—A— Planificación, 6
a corto plazo, 6
Algoritmo a largo plazo, 6
por el proceso más corto y el tiempo, 17 algoritmos, 12
por tiempo de espera y de ejecución, 17 cuasi, con memoria limitada, 10
prioridad multicola, 17 intermedia, 6
Algoritmo de Camport, 14 objetivos, 7
Algoritmo de Dekker, 13 sin planificación, 9
Algoritmo de Dijkstra, 14 Procesador, 3
Algoritmo de Petterson, 14 Proceso, 3, 4
Algoritmo de planificación batch o compilado, 17
cola de retroalimentación, 16 cambio de contexto, 9
método Round-Robin, 16 colas de, 9
por el camino más corto, 16 competencia, 4
Algoritmo del semáforo, 14 concurrencia, 4
Algoritmos cooperación, 4
elementales, 13 de excepciones, 6
mixtos, 17 derechos, 5
Algoritmos de planificación estado, 5
FIFO, 15 intercambiable, 5
jerarquía, 4
no apropiación, 19
—C— no apropiativo, 16
Comparar y asignar, 15 nombre, 5
Concurrencia prioridad, 5
soluciones de hardware, 15 reentrante, 6
CPU, 9 residente, 5
adelanto de la, 9 reutilizable, 5
sección crítica, 13
suspensión de un, 8
—E— terminación de un, 7
Equidad, 7 tiempo de procesador, 7
Error, 3 Programa, 6
Espera circular, 19
Exclusión mutua, 12 —R—
Ráfagas, 9
—F— Recurso, 18
FIFO, 10 Recursos
compartibles, 18
—H—
—S—
Hilo, 6
SCB, 9
Sincronización, 11
—I— Sistema
Interbloqueo índice de aprovechamiento, 7
eliminación, 19 recursos, 7
prevención, 18 tiempo de espera, 7
Interbloqueos, 18 tiempo de servicio, 7
Interrupción, 3, 6 Sistema operativo, 3, 4, 5
Interrupción permitida/interrupción no permitida, 15 tareas, 4
Sistemas operativos
de propósito general, 17
—L— SJF, 16
Lenguaje de control de tareas, 19 Spool, 6

—P— —V—
PCB, 9 Variable compartida, 12
Variable de control, 15
U.D. 6 - Sistemas Operativos, funcionamiento y gestión, pág. 69 de 15
1º Ciclos – ASI - SIMM
Juan P. Benito

Ciclos formativos – 1º ASI


Sistemas Informáticos Monousuario y Multiusuario

Unidad Didáctica 7 - Sistemas operativos. Gestión de memoria.

ÍNDICE
ÍNDICE

1 CONCEPTOS BÁSICOS

2 GESTIÓN DE LA MEMORIA
2.1 ASIGNACIÓN EN SISTEMAS MONOPROGRAMADOS
2.1.1 Técnica de swapping
2.2 ASIGNACIÓN EN SISTEMAS MULTIPROGRAMADOS
2.2.1 Particiones contiguas fijas
2.2.1.1 Mecanismos de asignación de memoria
2.2.1.2 Entrada y salida de procesos
2.2.1.3 Reasignación
2.2.2 Particiones contiguas variables
2.2.2.1 Algoritmos de planificación
2.2.2.2 Compactación como solución a la fragmentación
2.2.3 Ventajas e inconvenientes de las particiones contiguas de memoria
2.2.4 Paginación
2.2.4.1 Procedimiento de trabajo
2.2.5 Segmentación
2.2.5.1 Tabla de segmentos
2.2.6 Sistemas mixtos de partición discreta
2.2.6.1 Técnica del recubrimiento
2.2.6.2 Técnica de la memoria virtual
ÍNDICE ALFABÉTICO

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 70 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

1 CONCEPTOS BÁSICOS

Memoria: Un dispositivo o medio de almacenamiento que puede retener información para su posterior
recuperación. Este término se usa como sinónimo de almacenamiento, aunque su uso más
frecuente es el que se refiere al almacenamiento interno de un computador que puede ser
direccionado directamente por medio de instrucciones operativas. Es decir, es un conjunto de
palabras o bytes, cada uno con una dirección asociada.

Memoria principal: o memoria primaria. Se trata de la memoria inmediatamente asociada con el


microprocesador. Desde ella las instrucciones y los datos de un programa pueden ser directamente
recuperados, y es a la que se dirigen los datos resultantes antes de almacenarlos en la memoria de
apoyo -backing memory- o antes de enviarlos a un dispositivo de salida. Además de contener una
parrilla de direcciones donde ubicar las distintas unidades de información, cada instrucción de un
programa debe estar en memoria para que pueda ejecutarse.

Tiempo de acceso: Es el tiempo que lleva recuperar una unidad de información, por ejemplo un byte,
desde un almacenamiento de memoria, es decir, es el tiempo que consume proceder a una
ejecución de lectura o de escritura. Se mide en nanosegundos si se trata de memoria principal, o de
segundos cuando se trata de un dispositivo en cinta. También se le conoce como velocidad de
acceso a la memoria.

Ciclo de memoria: o simplemente ciclo, es un intervalo de tiempo que lleva que un conjunto de
sucesos esté completado. Referido a la memoria, es el tiempo que transcurre entre dos accesos
consecutivos. Se suele usar como parámetro indicador de la potencia de un ordenador.

Dispositivo de intercambio: o swapping. Es un dispositivo que permite el almacenamiento temporal


de aquella información que no está activa para el procesador. Cuando ocurre una referencia a esa
información, el sistema operativo envía una señal al dispositivo de intercambio que devuelve esa
información ala memoria principal para incluirla en el proceso activo. Su inclusión en el sistema
tiene como objetivo liberar memoria principal para dar velocidad a los procesos.

Direccionamiento de memoria: Para que el sistema operativo sepa a qué parte de la memoria debe
cargar un programa o proceso, esta memoria debe estar particionada y referenciada en cada uno de
sus límites, por intervalos, de manera que cada uno de ellos sea único. Para eso la memoria se
divide en bloques de 64 Kb., con lo que cada posición se identifica con dos números (ver Figura
7.1).

Página de memoria: Se define como la unidad de intercambio que se establece entre la memoria y el
intercambiador de memoria -swapping- implementado en un sistema de paginación. El número de
palabras o de bytes que incorpora una página es fijo para un sistema dado, pero es siempre
múltiplo de 2.

2 GESTIÓN DE LA MEMORIA

A menor memoria física, mayor será el número de accesos físicos que deberán hacerse para obtener
datos de los discos de memoria. Debido a esto, se tiende a usar memorias físicas grandes con el
objetivo de ahorrar tiempo de acceso a discos.

Dado que la memoria de los procesadores y la memoria principal suelen ser las más caras de
implementar en los sistemas, y las que a veces presentan una alta infrautilización, se hace necesario
realizar una buena gestión de la memoria para optimizar su uso.

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 71 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

La gestión de la memoria se puede definir como el control de la jerarquía de memoria de un sistema


tomándola como un todo, o dentro de un nivel dado de esa jerarquía, sería el control de localización
de los componentes de memoria. En el primer caso, el sistema lanza la información a procesar entre
una realización de memoria y otra con el objetivo de conseguir un máximo valor o ratio de
aprovechamiento de este recurso. Esto se puede hacer por procedimientos voluntarios del usuario
-copiar un archivo de disco a memoria para manipularlo-, por el software del sistema -transfiriendo
páginas de trabajo del usuario a la memoria principal de trabajo dejando microprocesador libre-, y por
el hardware del sistema -pasando al caché un grupo de palabras cuando una de las palabras de ese
grupo ha sido accedida-.

Para el caso de gestionar dentro de un nivel dado de jerarquía, el sistema operativo controlará que
fracción de ese nivel se va a destinar a cada proceso. Es decir, el gestor es el software del sistema, y
este concepto se refiere también a la gestión de espacio en el dispositivo de intercambio.

Esta gestión se puede resumir en tres tareas: asignar memorias físicas de capacidad limitada a los
diversos procesos que se han activado y se van a ejecutar, retirar memoria a los procesos que se han
desactivado y ya no se ejecutan, y debe facilitar el aislamiento y protección de las zonas de memoria.

Los objetivos que persigue la gestión de la memoria se pueden resumir en:

- Determinar la manera en que se asigna la memoria: cómo se debe dar, a qué proceso y en qué
orden
- Determinar cómo se retira la memoria: qué procesos han de abandonar la memoria, cuándo lo
hacen y en qué orden
- Llevar un control de las zonas de memoria que están asignadas y que están libres
- Proteger y aislar los espacios de memoria, facilitando la sincronización entre los procesos

Figura 7.1 Cuadro esquemático de la gestión de la memoria según los distintos sistemas

S. Monoprogramados Swapping
Particiones Particiones fijas
Gestión Sistemas contiguas Particiones variables
multiprogramados Particiones Paginación
discretas Segmentación

2.1 Asignación en sistemas monoprogramados

Una primera aproximación es la denominada “máquina desnuda”, que es un sistema donde no hay
sistema operativo y no hay gestor de memoria, por lo que quien lleva la cuenta es el propio
programador. Suele tratarse de pequeños microprocesadores, dedicados a una sola cosa.

Ligeramente más sofisticado consiste en dividir la memoria en dos amplios segmentos. En el primero
se ubicará la parte del sistema operativo que ha de residir en memoria de manera permanente -es el
caso de la parte del sistema operativo que se denomina monitor residente o supervisor permanente-. El
segundo segmento se reserva para los procesos de los usuarios. La parte de sistema operativo que no
es el supervisor permanente se pasa a la zona de procesos. Algunos sistemas, si el sistema operativo
ocupa un espacio ajustado, dejan el resto liberado a la zona de procesos.

La elección de dónde se debe ubicar el sistema operativo vendrá dada según dónde se encuentra el
vector de interrupciones, pues lo normal es situarlo junto a ese vector, en la parte alta o baja de la
memoria, mientras que en otros casos, en pocos, se prefiere separarlos.

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 72 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

Cuando se carga en memoria un proceso se verifica que las direcciones que necesita estén entre los
límites que marcan la zona de usuario. Si resultan fuera de límites -por encima o por debajo- el
sistema operativo provoca una interrupción y el proceso no termina cargándose en memoria. Este
límite viene señalado por hardware, o se utiliza un registro base donde se graba la dirección
correspondiente al nacimiento de la zona de usuario, o el sistema operativo -o parte de él- se graba en
memoria de sólo lectura, o bien se utilizan bits de protección como si se tratase de banderas para
determinar los accesos.

De cualquier modo, el límite de protección del sistema operativo es muy estático y difícil de
modificar, con lo que el tamaño asignado suele ser poco variable. Para cambiar ese tamaño de
memoria asignada, en vez de cargar los procesos de manera contigua al sistema operativo, se cargan
empezando desde el límite superior, con lo que si el sistema operativo necesita -en algún momento
puntual- de un margen extra de memoria, puede acceder a ella por encima de su límite.

Figura 7.2
Asignación de memoria en monoprogramación y posibilidades de gestión

Usuario
Usuario límit
Usuario e
S. O. residente S. O. residente S. O. residente

2.1.1 Técnica de swapping

Es un método de asignación y retirada de memoria que pretende eliminar los tiempos de gestión de
entrada y salida de procesos en las distintas zonas. Estos tiempos pueden ser elevados y el consumo
y/o desperdicio de CPU importante. Para ello se crea una memoria intermedia o memoria de retorno
-backing memory- a la que se trasladan los procesos que ya no necesitan memoria -porque se hayan
suspendido-, dejándolos allí hasta que su suspensión sea definitiva, o bien hasta que sean necesarios
de nuevo con lo que el sistema operativo los localiza en la memoria de retorno y los vuelve a incluir
en memoria principal. Este dispositivo intermedio se denomina dispositivo de intercambio.

Esta memoria de retorno o dispositivo de intercambio puede consistir, físicamente, en un disco


auxiliar de acceso rápido para gestionar con agilidad los procesos. El tiempo de intercambio será
proporcional a la memoria gestionada.

Un artificio para reducir el tiempo de intercambio es agilizar los tiempos de ida y vuelta de los
procesos. Para ello se incorpora otra memoria intermedia, como una memoria buffer, de manera que a
una de ellas se dirigen los procesos que salen y a la otra los procesos que entran (ver Figura 7.3).

Las características de esta técnica se pueden resumir como: la memoria de usuario se usa
alternativamente por distintos programas, y los programas o procesos son cargados o extraídos de la
memoria según tengan o pierdan CPU. Este sistema será tanto más rentable cuánto mayor sean los
tiempos de ejecución de usuario, y cuánto menor sean los tiempos de intercambio.

2.2 Asignación en sistemas multiprogramados

En este caso lo que se hace es partir la memoria en varias áreas, y a cada una de las cuales se le asigna
un proceso o una parte de un proceso. Si todas las secciones de un proceso o programa se cargan en la
misma área se denomina asignación contigua. En caso contrario se llama asignación discreta o no
contigua.

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 73 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

La asignación contigua se divide a su vez en otros dos procedimientos de gestión de memoria, las
asignaciones por particiones fijas, y por particiones variables.

La asignación discreta o no contigua contiene dos procedimientos que se van a ver: la paginación y la
segmentación.

Conviene mencionar dos conceptos: la fragmentación interna de la memoria, aquélla en la que existen
huecos en la memoria porque los procesos asignados a ciertas particiones no las ocupan en su
totalidad, quedando pequeñas áreas de memoria sin utilizar; y fragmentación externa, como aquélla en
la que los procesos no pueden entrar en un hueco de memoria por que el tamaño qe requiere es
superior.

2.2.1 Particiones contiguas fijas o partición estática

Se trata de dividir la memoria desde el momento en el que se inicia el sistema. Para ello se define un
tamaño que suele coincidir con el de los procesos que el sistema utiliza con más frecuencia.

Por tanto, el número de particiones dependerá del tamaño de la memoria y del número de procesos
que se estime que van a ejecutarse simultáneamente. Este número de procesos simultáneos es lo que
se conoce como grado de multiprogramación. Para hacer esto correctamente se deberá llevar -al
menos durante un tiempo representativo- una estadística del tamaño y número de procesos más
frecuentes en el sistema.

Para garantizar que un proceso no se va a meter en el área de memoria reservada para otro, originando
conflictos o ausencias de lectura y escritura, se delimitan las áreas utilizando dos mecanismos: dos
registros límites –direcciones inferior y superior a un área en la que sólo puede entrar el usuario o
servicio propietario de ese proceso-, y registro base y tamaño –sabiendo el registro sobre el que se
calcula y el cupo de memoria que necesita, se produce la reserva de memoria-.

El sistema construye una tabla denominada tabla de descripción de particiones –denominada PDT, de
Partition Description Table, (ver Tabla 7.1)- que resume las particiones, su número, el tamaño y el
estado en que se encuentra -asignada o libre-. Cuando un proceso es activado el sistema operativo
intenta asignar una partición de la memoria que esté libre y sea de tamaño suficiente, lo que determina
consultando la tabla. Si encuentra la partición, y está libre, la cambia a asignada y carga en ella el
proceso o programa. Además graba esta circunstancia, es decir, el número de la partición en que se
encuentra el proceso, en el bloque de control de proceso -PCB- del proceso en cuestión. La secuencia
es alrevés para la descarga de programas de la memoria.

Tabla 7.1 - Tabla de descripción de particiones

Número Límite inferior Tamaño (Kb) Estado Situación en la


partición (Kb) 0 memoria
0 0 100 Asignada 100 S.O. Residente
1 100 50 Libre 150
2 150 150 Libre 300
3 300 250 Asignada 550 P1
4 550 125 Asignada 675 P2

2.2.1.1 Mecanismos de asignación de memoria

Cuando se trabaja en sistemas multiprogramados es frecuente que aparezcan situaciones en las que
hay que trabajar con multitud de procesos simultáneamente, con lo que muchos procesos requieren
U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 74 de 14
1º Ciclos – ASI - SIMM
Juan P. Benito

unas pocas particiones de memoria. La optimización de este reparto garantizará un buen


funcionamiento del sistema.

Para hacer este reparto y decidir qué procesos entran y cuándo lo hacen, se trabaja con una alternativa:
trabajar con una cola o bien en multicola. En el primer caso, se adjudica a un proceso una partición de
memoria que es de tamaño igual o superior a la que necesita, o de otro modo se adjudica a cada
proceso la partición que mejor se adapte a él. Para hacer este reparto de particiones caben dos
posibilidades: analizar la mejor de las que quedan disponibles, o bien elegir la primera libre que mejor
se adapta al proceso.

Cuando se trabaja en multicola es frecuente que cada partición lleve asociada una cola de procesos,
colas que se gestionan independientemente, entrando los procesos en las colas de las particiones según
el tamaño de memoria requerido. Para entrar en la cola se eligen los procesos por su tamaño.

2.2.1.2 Entrada y salida de procesos

Como se ha comentado, cada usuario o programa es asignado a una lista de partición de memoria
según sus requerimientos de memoria. Así se encontrarán particiones sobradas y particiones
sobrecargadas. Para evitar esto se pueden seguir varias tácticas:

- Una manera de tramitar los procesos es descargar procesos que tienen requerimientos menos
rígidos o con capacidades pequeñas de trabajo y se pasan a una cola de espera, dejando su
partición libre para otros procesos más prioritarios.
- También cabe la posibilidad de establecer una lista de espera única. El algoritmo que gestione
esta cola única será el responsable de su optimización. Por ejemplo, el empleo de un
algoritmo FIFO dejaría porciones de memoria sin utilizar. Un algoritmo mejor sería el de
asignar un proceso a una partición según el tamaño de memoria requerido que mejor se
adapte al hueco existente.
- Otra posibilidad es retirar procesos que están suspendidos para dejar paso a otros. El proceso
retirado se elige según su prioridad, el tiempo que lleva en memoria, huecos disponibles,
tamaño de otros procesos, etc. Este método se denomina de carga dinámica.
- Otra alternativa se presenta cuando la asignación de tamaño de partición de memoria a los
procesos es fija o variable. Si es fija, se ahorra trabajo de búsqueda. Si es variable, al
proceso inicial pueden acompañar otros para optimizar la partición.

2.2.1.3 Reasignación

Se trata de pasar las direcciones que ha establecido el programador a las direcciones de memoria que
realmente utiliza el ordenador. Esta reasignación puede darse en tres momentos diferentes: en el
momento de carga, en el momento de la compilación o en el momento de la ejecución:

- Reasignación en compilación: Como se ha visto en el apartado 2.1, el límite superior de


memoria para el sistema operativo podría cambiar por necesidades del sistema. Si las
direcciones de memoria se marcan a partir del límite, el programa deberá compilarse cada
vez que cambie el límite –pues se determinan en el propio programa-. Por otro lado, las
direcciones de memoria comienzan desde el valor 0, mientras que el sistema graba a partir
de la dirección que marca el límite entre el sistema operativo y el usuario. Es decir, se
trabaja con dos conjuntos de direcciones, el conjunto lógico -desde 0 al límite máximo, M-,
y el conjunto físico -desde el borde del sistema operativo, B, hasta el límite máximo, M-.
- Esta compilación repetida se evita con el método de reasignación estática -también
reasignación en carga-, es decir, se asignan las direcciones de memoria en el momento de la
carga. Se denomina estática porque no habrá variaciones mientras se está en ejecución.

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 75 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

- Otro modo de trabajo es el que se llama de reasignación dinámica, el cual traduce las
direcciones programadas en físicas en el momento de la ejecución. Para ello se necesita la
ayuda de hardware específico. Se busca un espacio de hardware que será el traductor de
direcciones. Este espacio toma las direcciones pedidas por los procesos desde la CPU y les
añade la dirección del registro borde o frontera. Así, si el registro base -RB- se encuentra en
la dirección 1250 y la CPU solicita una dirección 350 -dirección lógica, que tiene que ser
menor que el límite superior de direcciones lógicas para ese proceso-, la partición real de
trabajo comenzará en la dirección 1250 + 350 = 1600 (ver Figura 7.4). Gracias a este
mecanismo, los procesos que se están ejecutando se pueden interrumpir momentáneamente y
pasarlos a otras particiones con lo que se utiliza y gestiona mejor la memoria principal.

2.2.2 Particiones contiguas variables o partición dinámica

Para evitar algunos de los inconvenientes de la partición contigua fija se crea el de las particiones
variables. Para ello, el sistema mantiene una tabla de particiones de memoria asignada y libre y, cada
vez que un proceso o programa termina, procede a la reasignación de las particiones entre los
procesos. Es decir, el reparto de particiones no es permanente.

Así, se crean las particiones según el tamaño que requieren los procesos que entran, procedimiento
que tiene dos topes: hasta que se acaba la memoria o hasta que la partición que queda no da cobertura
a ninguno de los procesos solicitantes. Según salen los procesos de la memoria las particiones se van
rediseñando para dar entrada a los procesos que van a entrar. Cada programa ocupa la memoria que
estrictamente necesita. Una conclusión es que no existe un número límite para las particiones de
memoria dado que dependerán de los procesos solicitantes (ver la Tabla 7.1). La asignación de
particiones se realiza por dos métodos o algoritmos: el FF -first fit, o el primer hueco disponible es el
que condiciona qué proceso pasa a memoria-, y el BF -best fit, donde el primer proceso es el que
marca el hueco de memoria a asignarle-. Además existen procedimientos de compactación de la
memoria en el sentido de evitar fragmentos y en el sentido de encontrar los huecos disponibles
mejores.

A este sistema de asignación de particiones se le conoce como multiprogramación con un número


variable de tareas -MVT- y, como en el caso de la asignación estática, sólo necesita de dos soportes
hardware, que son los registros límites inferior y superior de la partición de memoria asignada a cada
proceso.

2.2.2.1 Algoritmos de planificación de memoria en particiones contiguas variables

Son los procedimientos de asignación de particiones de memoria. Se emplean los siguientes


algoritmos:

 Primer ajuste: el proceso se coloca en el primer hueco donde quepa, pero rompe los bloques
mayores e impide que entren los procesos de mayor tamaño.
 Mejor ajuste: donde mejor quepa, dejando menos sitio, aunque crea fragmentos muy pequeños,
por lo que no se pueden utilizar. Es el peor algoritmo de todos.
 Siguiente ajuste: como el primero pero empezando desde el último hueco que se asignó, es decir,
busca el primer hueco tras la anterior asignación, ubicando donde encuentra un hueco suficiente.
Sin embargo, si entran procesos y se van colocando uno tras otro, pero más tarde dejan de usarse
y sus huecos quedan libres, los siguientes se siguen asignando posteriormente, rompiendo el
espacio grande.
 Peor ajuste: en el que más sitio haya, en el hueco más grande. Es el mejor, el más simple, el más
rápido y el que mejor resultados da. Siempre intenta ocupar los procesos al principio y deja los
huecos grandes al final.

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 76 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

2.2.2.2 Compactación como solución a la fragmentación

Cuando se tiene que ejecutar un proceso o programa que requiere una memoria de 3,5 Kb. y sólo
queda un hueco de memoria de 3,6 Kb., se ejecutará pero quedará un hueco más pequeño de 0,1 Kb,
que no se podrá utilizar, presumiblemente, para la ejecución de otros procesos. Hay que añadir a esto
que, además de sobrar memoria no disponible, hay que anotar la partición ocupada y el hueco
sobrante en la tabla de particiones de memoria aumentando así el proceso de gestión.

Debido a las sucesivas asignaciones de memoria y las retiradas correspondientes, aparecen bastantes
huecos de memoria de reducido tamaño que los hacen poco viables desde el punto de vista práctico, es
decir, son inútiles, aunque existen y consumen un recurso de sistema para su gestión. Para evitar la
fragmentación extensiva se recurre a un procedimiento que se denomina compactación. Este método
lo que pretende es reunir varios huecos pequeños en uno mayor que sí sea utilizable por uno o varios
procesos (ver Figura 7.6). Sólo es posible si se realiza una reasignación dinámica durante la ejecución
del proceso, tomando como referencias de las particiones los registros límite y registros base.

Figura 7.6
Método de compactación de memoria dejando los procesos en la zona superior
2000 2000 2000
1750 250 Kb 1750 250 Kb 1850 P4 = 150 Kb
1600 P4 = 150 Kb 1600 P4 = 150 Kb 1600 P3 = 250 Kb
1300 300 Kb 1350 P3 = 250 Kb 1450 P2 = 150 Kb
1050 P3 = 250 Kb 1200 P2 = 150 Kb 1350 P1 = 100 Kb
900 P2 = 150 Kb 900 300 Kb 250 Kb
700 200 Kb 700 200 Kb 300 Kb
600 P1 = 100 Kb 600 P1 = 100 Kb 600 200 Kb
S.O. Residente S.O. Residente S.O. Residente
Uno de los aspectos en el diseño de la compactación es saber cuándo se debe de realizar, existiendo 3
posibilidades:

- Cuando haya un porcentaje de la utilización de la memoria alto, por ejemplo el 80%, pero el
problema es que se desea compactar cuando no haya procesos que quieran acceder al
sistema, por el tiempo que lleva.
- Cuando hay procesos esperando para entrar en memoria, pero el problema es que el sistema
debe estar continuamente comprobando si algún proceso está esperando.
- Cada tiempo determinado, por ejemplo cada minuto, pero el problema es determinar el
tiempo.

2.2.2.3 Ventajas e inconvenientes de las particiones contiguas de memoria

Las particiones contiguas de tamaño fijo supone la forma más sencilla de particionar la memoria en
sistemas multiprogramados, y sobre todo es útil cuando conocemos el tamaño y los atributos de la
mayoría de los procesos que ocurren en el sistema. Tiene el inconveniente de que resultan poco
adecuadas para estructuras de información que requieran un crecimiento dinámico. Si llega un
programa de cierto tamaño de memoria y no entra, habrá que inicializar de nuevo el sistema y volver a
particionar la memoria.

Otro aspecto importante respecto de las particiones fijas es la fragmentación de la pila de memoria,
que conlleva desaprovechamientos de energía sensibles. Existen dos tipos de fragmentación: la interna
-cuando un proceso no llega a ocupar la partición que le han asignado-, y externa -cuando alguna
U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 77 de 14
1º Ciclos – ASI - SIMM
Juan P. Benito

partición queda sin utilizarse porque los procesos que quedan requieren mayor memoria-. A mayor
diferencia entre el tamaño medio de las particiones y el tamaño medio de la memoria requerida por los
procesos, mayor será el grado de fragmentación, tanto interna como externa.

Para evitar la fragmentación es por lo que se ideó el método de las particiones contiguas. Sin
embargo, la dificultad aumenta pues será necesario adecuar algoritmos de selección. A mayor eficacia
en los algoritmos, mayor necesidad de programación y de consumo de recursos por el sistema.

Otro método para solucionar la fragmentación es la denominada compactación, aunque la


fragmentación no se elimina en su totalidad (ver Figura 7.5).

Las soluciones que se plantean para solucionar las deficiencias de las particiones contiguas son las
denominadas particiones discretas, que son de dos tipos: paginación y segmentación.

2.2.3 Sistema del compañero

Asignar a los procesos particiones de memoria de longitud variable pero limitados, estableciendo un
tamaño mínimo de 2i, y un tamaño de bloque máximo de 2 m. Es decir, cada bloque que asigna se
encuentra entre esos dos tamaños pero siempre en potencia de dos: 2 i  2k  2m.

Cuando un proceso pide una partición de tamaño B, el sistema operativo busca un bloque de tamaño
2i libre tal que 2i-1 < B  2i, siempre el bloque libre que más se adapte a él. Si no hay libre, divide 2 i+1,
en 2 bloques de tamaño 2i, uno se queda libre y otro se asigna. Si no hay 2 i+1 se divide en uno más
superior. Por ejemplo:

1.- Se parte de un bloque de 1 Mb. Aparece un Proceso1 que requiere 45 Kb. Se toma el bloque
de 1 Mb y se divide en dos de 512 Kb, uno queda libre y se divide el otro en dos de 256,
uno queda libre y el otro se divide en dos de 128, uno queda libre y el otro se divide en dos
de 64 Kb, los divido y queda uno de 32 Kb pero no satisface los de 45 Kb, entonces me
quedo en 64 Kb y se lo asigno al proceso 1.
Ahora llega el Proceso 2 que pide 110 Kb, como cabe en el bloque de 128 Kb se lo asigna.
Luego llega Pr3 de 160 Kb, le tengo que asignar 256 Kb y como hay uno libre se lo asigno.
Llega Pr4 de 95 Kb, tengo que buscar un hueco de 128 Kb, no hay, sólo quedan de 64 Kb y de
512 Kb, entonces divido el de 512 en dos de 256, uno lo dejo libre y el otro lo divido en dos
de 128 y se lo asigno a uno.
Termina Pr3 y libero memoria.
Termina Pr2 y libero memoria.
Llega el Proceso5 y pide 80 Kb le tengo que dar un bloque de 128, tengo uno libre y se lo
asigno.
Termina Pr1 y como su hueco compañero está libre lo fusiono con el de al lado en uno de 128.
El resto de los procesos van acabando y se van fusionando con el resto de los compañeros,
hasta que al final se vuelve al 1Mb.

Este algoritmo presenta un grado de multiprogramación variable, lo que pasa es que asigna en bloques
de ciertos tamaños. Tiene fragmentación interna y fragmentación externa.

2.2.4 Paginación

Consiste en dividir la memoria física en unas áreas denominadas marcos -frames- y la división de la
memoria derivada de los procesos, es decir, la memoria lógica, en áreas llamadas páginas -pages-.
Así, la página es la unidad de intercambio de información entre la memoria y la memoria de

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 78 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

intercambio -ver swapping-, siendo el reflejo de los marcos de memoria en la de intercambio las
llamadas páginas.

Así, de esta manera se elimina la fragmentación externa, dado que la memoria del proceso se divide
en páginas y se les asignan tantos marcos libres como necesiten. Si hay suficientes para dar cobertura
a su número de páginas, entonces el proceso se ejecutará. En ese momento el sistema operativo creará
un mapa o tabla de páginas llamado tabla de páginas, parecida a la de la tabla de particiones, aunque
relaciona marcos y páginas derivadas de la memoria de los procesos. El tamaño de las páginas lo da el
hardware pero suele ser múltiplo de 2. Los marcos de página no tienen por qué ser contiguos.

Las páginas se protegen de funciones indeseables asociando a cada página unos bits, que indican
validez cuando se trata de entradas del programa, e indican invalidez frente a otra llamada ajena.

2.2.4.1 Procedimiento de trabajo

Cuando la CPU requiere la carga de un proceso que tiene un tamaño P, el sistema operativo debe
asignarle N marcos de página. El número N se calcula dividiendo el tamaño de la memoria requerida
por el proceso, P, entre el tamaño de las páginas y se le aproxima al entero superior más próximo,
dado que siempre debe asignar el mismo tamaño o algo sobrante. Por ejemplo, si el tamaño de la
memoria del proceso se calcula en 100 Kb. y el tamaño de la página fuera de 16 Kb., al hacer la
división y aproximar al entero superior se llega a que se necesitarán 7 marcos de página.

Existe la pega de que el último marco de página no se va a utilizar totalmente, con lo que se produce
una fragmentación interna que siempre será menor que el tamaño de una página. Una vez que el
sistema operativo ha decidido los marcos de página, crea la tabla de páginas para ese proceso que
emparejará 7 marcos de página con 7 páginas de memoria de proceso.

De esta manera cualquier dirección emitida por la CPU tiene dos parámetros: el número de página, p,
y el tamaño, t. La tabla refiere cada página y cada marco con su dirección de memoria real, aunque
este tipo de trabajo requiere la aplicación de un hardware adecuado. Una vez que el sistema operativo
ha determinado cuáles son p y t, consulta la tabla de páginas de memoria y localiza el marco de
página y, una vez determinado éste, conoce la dirección real de memoria que lo refiere. Sin embargo,
al aumentar el número de consultas a memoria, se incrementa sensiblemente el tiempo de ejecución y,
además, no se ha conseguido eliminar la fragmentación interna.

Además, el sistema operativo puede introducir las entradas de la tabla de páginas de memoria y
cargarlas en una memoria rápida -como es el caso de la memoria caché-. De esa manera el sistema
operativo se asegura de que las páginas que necesita el proceso en ejecución, y sólo esas páginas, se
mantienen preparadas y con una referencia y direccionamientos muy rápidos, disminuyendo el
consumo de tiempo de memoria. Hay que tener en cuenta que mientras la memoria principal puede
funcionar con un acceso de cerca de 500 ns., la memoria caché funciona a cerca de 10 ns., evitándose,
por otro lado, una de las llamadas a direccionamiento, con lo que pasamos de consumir 510 ns. frente
a los 1000 ns. si no se encuentra en caché.

Otra posibilidad es la de compartir páginas de memoria entre programas de usuario, aunque una parte
del código debe ser común, ahorrándose memoria y no se carga el código cada vez que un proceso lo
exige. Por contra, exige mecanismos de protección de memoria más evolucionados, como los bits de
protección -donde las entradas usadas por el proceso se determinan con un bit de validez, marcándose
el resto con un bit de invalidez por si se presentan errores de direccionamiento-, restricciones de
lectura, de escritura, de lectura/escritura,...

2.2.5 Segmentación

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 79 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

El usuario va a compartimentar los programas en subunidades o módulos que son de tamaño variable
y a los cuales se refiere por su nombre. Esta estructuración lógica se denomina por segmentos, siendo
cada módulo un segmento. Los segmentos no tienen por qué ser del mismo tamaño -al contrario de lo
que pasaba con las páginas-, ni ser contiguos, aunque sí lo debe ser la información que contienen.

Para referirse a cada módulo estos se numeran. De esta forma cada dirección sobre un módulo se
puede dar con dos parámetros: segmento y desplazamiento. Los segmentos y el direccionamiento los
define el compilador y marca, para cada segmento, una dirección origen relativa con valor 0.

Para llevar a cabo la protección frente a funciones no permitidas el sistema se apoya en el registro
base y el registro límite, acompañando a cada segmento de unos bits que indican los derechos de
acceso. Hay que tener en cuenta que los segmentos se pueden compartir entre programas y usuarios.

No obstante, al ser los segmentos de tamaño variable se evita la fragmentación interna, pero no del
todo la externa, que sólo se puede reducir al máximo empleando algoritmos de planificación de
segmentos.

2.2.5.1 Tabla de segmentos

Al cargar el programa en memoria, el sistema segmenta la memoria requerida por el proceso


asignando memoria a cada segmento. Como cada segmento puede estar separado de otro, el sistema
debe guardar la base de cada segmento y su tamaño o límite superior de memoria para cada uno. Estos
pares de números asociados a cada segmento constituyen la denominada tabla de segmentos.

Más tarde será necesario un hardware especial que traslade esas referencias lógicas, base y límite, a
sus correspondientes direcciones físicas. Para gestionar la memoria lo mejor posible se mantiene la
tabla de segmentos en la memoria principal mientras que la parte de la tabla a la que más referencias
se espera hacer se guarda en la memoria caché.

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 80 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

2.2.6 Sistemas mixtos de partición discreta

A veces se recurre a procedimientos de gestión combinados, sobre todo útiles cuando se trata de
cargar un programa que ocupa más que la propia memoria. Estos sistemas se han venido desarrollando
desde comienzo de los años 60.

Así se utiliza la paginación segmentada, que consiste en segmentar la tabla de páginas; o bien se usa
la segmentación paginada, que trata de fijar los segmentos como múltiplos de las páginas.

Las ventajas de este tipo de operaciones son varias: aprovechar mejor la memoria física ya que se
puede tener cargada en ella sólo la parte del programa que la necesita -lo que aumenta el carácter de
multiprogramado del sistema-, se puede ejecutar un programa que requiera más memoria que la física
disponible, y se hacen necesarias menos operaciones de disco para la parte del programa que se va a
cargar a la memoria, ahorrando tiempo al disminuir los tránsitos de entrada y salida.

2.2.6.1 Técnica del recubrimiento

Dado que los programas tienen partes que no necesitan ejecutarse de manera paralela -como cuando
aparecen bifurcaciones, subrutinas,...-, cuando una parte de un programa llama a otra, ésta se carga en
el espacio de memoria que tenía asignada la primera, con el consiguiente ahorro de memoria. A la
parte del programa que siempre va a estar cargada en memoria se le llama raíz, y al resto se le
denomina secciones independientes.

Por ejemplo, el sistema operativo sabe que su límite superior de memoria asignada estará en 1000,
tomando cifras desde un origen relativo de 0 asociado a la dirección de memoria de la raíz del
programa. La forma de organizar estas direcciones entre las secciones independientes y la raíz la lleva
a cabo el enlazador. Se sabe que el límite superior tendrá como cota la que marca o necesita la rama
más larga del árbol de niveles del programa en cuestión.

Dentro de esta técnica existe una variante que se llama carga dinámica que consiste en que sólo va a
cargar en memoria la subrutina solicitada cuando sea llamada por el programa raíz por medio de la
correspondiente instrucción -caso de un PERFORM o de un CALL-.

2.2.6.2 Técnica de la memoria virtual

Está basada en la anterior. Trata de cargar en memoria sólo lo que sea estrictamente necesario para su
funcionamiento correcto. Así, el sistema tiene que decidir cuándo cargar las secciones del programa
-de forma anticipada o sirviendo a las solicitudes-, dónde cargar cada sección -en el primero
disponible o en el segmento de memoria que se revele como el más adecuado-, y si existe
reemplazamiento -es decir, si se sustituye alguna porción de memoria por una sección nueva.
utilizando algún algoritmo implementado al efecto-.

Según la primera de las opciones, el sistema cargará una página cuando ésta sea llamada siguiendo un
procedimiento similar a una técnica swapping o de intercambio de memoria. Así, al solicitarse una
página determinada, el sistema operativo consulta la tabla de páginas y al localizarla la marca con un
bit de válido y carga la parte correspondiente del programa en memoria. También debe ser capaz el
sistema de solucionar los casos en que se haga referencia a una página que no está cargada en
memoria, o bien cuando el hardware detecta un error de dirección, tratado por el sistema operativo
como si la página no existiera.

El reemplazamiento es un método útil para cuando se dan situaciones de sobreasignación de memoria,


es decir, cuando ésta está saturada, con lo que aparecen referencias a páginas que no están cargadas en

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 81 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

memoria. Para solucionarlo el sistema operativo saca de la memoria la página menos usada -página
víctima- y la carga en una memoria más lenta, por ejemplo en disco guardando lo que el programa
haya escrito en memoria mientras tanto. Después actualiza la tabla de páginas, puesto que habrá un
elemento menos. Después sustituye a la víctima cargando la nueva página en memoria. Y por último
vuelve a actualizar la tabla de páginas pues habrá un elemento nuevo.

Parece de sentido común que si un programa necesita, para su ejecución, cargar varias páginas en
memoria, y alguna de ellas debe ser sustituida, es conveniente elegir a la que se hará referencia por el
sistema con mayor posterioridad.

Los algoritmos más usados para gestionar el ir y venir de las páginas a la memoria para asignarlas a
los diferentes marcos, son:

- FIFO primera en llegar a la memoria es la primera en ser considerada víctima, es decir,


aplicando un criterio de antigüedad en la memoria. Sin embargo, aunque es barato y fácil, es
poco eficiente, pues en muchas ocasiones provoca demoras
- LRU (Less Recently Used): Es decir, los menos usados últimamente. O sea, considerará una
buena víctima a aquella página que hace tiempo que no se usa. Para ello se usan soluciones
hardware -aplicar registros contadores de tiempo- o software -pilas de números de página (la
página que se usa se pone a la cabeza de la pila)-.
- LFU (Less Frecuency Used): La página menos usada, comparando, por ejemplo, los
contadores de uso asociados a cada página.
- SO (Second oportunity): Busca la página que más tiempo lleva en memoria y si está marcada
como usada -por ejemplo, con un bit 1-, la remarca con un 0 y le da una segunda
oportunidad.
- Localidad: sólo busca páginas víctimas entre las vecinas a las páginas que el programa está
utilizando. Esto tiene como objetivo evitar que crezca el número de páginas asignadas a un
proceso.
- Por el conjunto del trabajo: El sistema operativo calcula cuánta memoria necesitará para los
procesos que constituyen un programa -o los módulos de un proceso- de forma que si estima
que no tiene memoria suficiente para todos, no lo carga en la memoria. Si sí tiene, entonces
sí lo carga. Para ello el sistema operativo “observa” cada cierto tiempo las N referencias
realizadas la última vez para saber cuántas páginas y marcos están en uso.
- Frecuencia de faltas de página: El sistema operativo calcula cuántas faltas de página se han
dado en el último intervalo de tiempo. Si se han dado pocas es que sobre memoria, si es
alrevés, es que falta. Si se pasa del máximo, entonces el sistema operativo asigna más
marcos de memoria

ÍNDICE ALFABÉTICO

—A— —C—
Algoritmo Compilación, 7
BF, 7
de localidad, 13
de planificación, 7
—D—
FF, 7 Dispositivo de intercambio, 2, 4
FIFO, 6
frecuencia de faltas de página, 13
LFU, 13
—E—
LRU, 13 Enlazador, 12
SO, 13
Algortimo
por el conjunto de trabajo, 13

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 82 de 14


1º Ciclos – ASI - SIMM
Juan P. Benito

—M—
Memoria, 2
asignación, 4
asignación de, 3
buffer de, 4
ciclo de, 2
compactación de la, 8, 9
gestión de, 3
gestión de la, 3
marcos de, 10
mecanismos de asignación. Véase Memoria,
asignación
página de, 2
paginación, 10
páginas de, 10
particiones contiguas, 4
particiones discretas, 5
particiones fijas, 5
particiones variables de, 7
principal, 2
reasignación, 6
reasignación dinámica de, 7
reasignación estática de, 7
recubrimiento de, 12
registro base, 7
segmentación de la, 11
segmento de, 11
tabla de descripción de particiones, 5
tabla de páginas de. Véase Memoria, tabla de
particiones
tabla de particiones de, 7
tiempo de acceso a, 2
virtual, técnica de la, 12

—P—
Páginas
protección de, 10
PCB. Véase Proceso, bloque de control de
Proceso
bloque de control de, 5
Procesos
carga dinámica de, 6
cola de, 6
entrada en memoria de, 6
multicola de, 6

—S—
Segmentos
tabla de, 11
Sistema operativo
supervisor, 3
Subrutina, 12
Swapping. Véase Dispositivo de retorno, Véase
Dispositivo de intercambio

U.D. 7 - Sistemas Operativos, gestión de memoria, pág. 83 de 14


1º Ciclos - SIMM
Juan P. Benito

Ciclos formativos – 1º
Sistemas Informáticos Monousuario y Multiusuario

Unidad Didáctica 8 - Sistemas operativos. Entradas y salidas. Seguridad.

ÍNDICE

ÍNDICE 1

1 CONCEPTOS BÁSICOS 2

2 SISTEMA DE E/S 3

3 CONEXIÓN DE PERIFÉRICOS 3

4 DISPOSITIVOS DE E/S4
4.1 SOPORTES DE ALMACENAMIENTO 4
4.2 SOPORTES DE INTERFAZ 5
4.3 SOPORTES DE TRANSMISIÓN DE DATOS 5
5 CONTROLADORES DE DISPOSITIVOS 5
5.1 PUERTOS DE E/S 6
6 MEDIOS DE TRANSMISIÓN DE INFORMACIÓN 6
6.1 LOS ACCESOS DIRECTOS A MEMORIA6
6.1.1 Procedimiento 7
6.2 CANALES DE E/S 7
6.2.1 Procedimiento de un canal 7
6.2.2 Clases de canales 8
6.2.2.1 Canales selectores 8
6.2.2.2 Canales multiplexores 8
7 GESTIÓN DE LAS E/S 8

8 SOFTWARE DE E/S 9
8.1 GESTORES DE INTERRUPCIONES 9
8.2 GESTORES DE DISPOSITIVOS O DRIVERS 9
8.3 SOFTWARE INDEPENDIENTE DEL DISPOSITIVO 10
8.4 SOFTWARE DE USUARIO 10
9 SEGURIDAD 10
9.1 SEGURIDAD INTERNA 11
9.2 SEGURIDAD A NIVEL DE FICHEROS 11
9.3 SEGURIDAD EN LA TRANSMISIÓN DE INFORMACIÓN 12
9.4 SEGURIDAD DE GRANDES SISTEMAS 12
ÍNDICE ALFABÉTICO 13

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 84


1º Ciclos - SIMM
Juan P. Benito

1 CONCEPTOS BÁSICOS

Bus: Se trata de una conexión entre dos componentes de un sistema informático. Gráficamente sería
un cable o un canal de conexión. Lo habitual es que sea externo, pero puede unir dos elementos de
un mismo componente, como es el caso de dos registros de la CPU. Por medio de él, se transmite
información entre componentes, y la velocidad en que se haga dependerá de su anchura de banda –
amplitud que permite la transmisión simultánea de caracteres-, aunque lo normal es que se trabaje
con 32 bits.

Controladores: Un subsistema que gobierna las funciones de aparatos conectados al sistema, pero
generalmente sin cambiar la información que pasa por él. Los aparatos conectados son, casi
siempre, periféricos o canales de comunicación. Una de sus funciones puede ser cambiar el
formato de la información para su transmisión o grabación.

Dispositivo: Se trata de un modo de señalar todo componente del ordenador que va a conectarse con
el núcleo del sistema por medio de conectores o buses. Pueden ser internos -disco duro- y externos
-un terminal o una impresora-. Comprenden el propio dispositivo, las interfaces, los controladores
y los puertos.

Entrada/Salida: Es cualquier transferencia de información desde la memoria o hacia ella. Comprende


la transferencia entre las distintas jerarquías de memoria y las comunicaciones con los periféricos.
Así, se entiende que un dispositivo de entrada/salida es cualquier componente del sistema que es
capaz de transferir información entre la CPU y cualquier soporte de información externo.

Errores: Se trata de la aparición de una circunstancia inesperada que comporta pérdida de información
o interrupción en su transmisión. La prevención, detección y corrección de errores es una parte
esencial en el software que acompaña a la transmisión, manipulación y almacenamiento de la
información en un sistema informático. En el caso de la transferencia de información, se trata de
comprobar si la información que se recibe es idéntica a la que se transmitió originalmente. Si no es
así, habrá que corregirla o repetir la operación.

Información: Se entiende por tal aquéllo que aporta un significado y completa o modifica el
conocimiento que se tiene sobre algún aspecto concreto. Esa información, desde el punto de vista
informático, consiste en un conjunto de bits, bytes o hexadecimales, pues la operatividad de un
sistema informático funciona de manera digital, es decir, basada en dos estados, o, en 0s y 1s.

Interrupción E/S: Es un mecanismo a nivel hardware que pretende sincronizar la CPU con los sucesos
derivados de los dispositivos que son asíncronos. Por este método, el sistema obliga a la CPU a
parar su proceso y a tratar una rutina de E/S. Cuando ha terminado, devuelve a la CPU al proceso
que estaba llevando. Un contador de programa implementado a nivel hardware controla el punto
del proceso de la CPU donde se produjo la interrupción para poder volver a él más tarde.

Periférico: Cualquier aparato, incluidos los almacenamientos intermedios y los equipos de entrada y
salida de información, que se conecta en y a un sistema informático.

Puerto: O puerto de entrada y salida -I/O port-, es un punto de conexión con una serie de circuitos de
control que permiten a los dispositivos de entrada y salida ser conectados con un bus interno que
conduce al microprocesador. Suele ser posible conmutarlo como de entrada o de salida y suele
estar conectado a un adaptador de interfaz del periférico.

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 85


1º Ciclos - SIMM
Juan P. Benito

2 SISTEMA DE E/S

Se entiende por tal el conjunto de elementos hardware y software que van a permitir al núcleo del
ordenador, es decir, al microprocesador, comunicarse con otros dispositivos del sistema y con el
exterior. Desde el punto de vista del hardware consta de: conexiones con la CPU o los buses de
conexión, el interfaz del periférico, los controladores, y los canales.

Desde el punto de vista del software se trata de una parte del sistema operativo que esconda las
particularidades del hardware al usuario que le proporcione a éste un interfaz cómodo.

Las funciones de un sistema de E/S se pueden resumir en:

- Transmitir información hacia y desde los periféricos


- Traducir la gestión lógica de los procesos en la gestión física del hardware correspondiente, en
la forma de manejo de dispositivos
- Dar la posibilidad de que se puedan compartir recursos por parte de varios usuarios
- Gestionar y corregir los posibles errores que se pueden presentar en las distintas operaciones

3 CONEXIÓN DE PERIFÉRICOS

Se trata de elementos hardware que establecen una conexión entre el periférico y la CPU, con dos
elementos básicos: las líneas de dirección -que señalan la dirección de los dispositivos- y las líneas de
control -que establecen parámetros de control de los dispositivos-.

Hay dos maneras de conectar la CPU con los dispositivos:

-Bus único: Con lo que el microprocesador, cuando establece un mandato, lo dirige por igual a
la memoria y a los periféricos. En esta técnica, que se le denomina mapeado de la memoria,
los registros de control de los aparatos periféricos se presentan al procesador como palabras
en memoria cuyo contenido puede ser escrito y leído usando las técnicas habituales de la
memoria principal.
- Bus de E/S: Los buses de memoria y de periféricos existen separadamente y no interfieren
entre sí. Normalmente todos los periféricos de carácter similar se unen a un controlador
único que deriva posteriormente hacia uno u otro periférico -es la filosofía de la arquitectura
en paralelo para los periféricos-, con la finalidad de ahorrar tiempo de gestión a la CPU.
Esto se complementa con los denominados DMAs que ahorran tiempo de CPU pues
eliminan al procesador de las tareas intermedias y los dispositivos acceden directamente a la
memoria.

Dentro de la conexión mediante un bus de E/S, existen dos modalidades:

- En serie: Donde cada canal tiene asignado una conexión fija a un grupo de periféricos
determinado. Así, para conectar con un periférico hay que hacerlo a través de su canal y, en
caso de que este canal esté ocupado por otro periférico, hay que esperar. Es decir, se
establecen prioridades.
- En red: Cada canal se conecta con todos los periféricos lo que permite transferencias
alternativas, es decir, si un canal está ocupado, se transmite por otro. En este caso se produce
un reparto del canal entre los distintos periféricos. Si este reparto es circular y equitativo, se
dice que es un canal multiplexor (ver el apartado 6.2.2.2), si retiene el canal hasta que acaba,
se dice que es un canal selector (ver apartado 6.2.2.1).

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 86


1º Ciclos - SIMM
Juan P. Benito

4 DISPOSITIVOS DE E/S

Son las componentes del sistema que se encargan de traducir y transferir la información hacia otros
componentes del equipo, en general hacia el exterior -y desde él-. Cambian la forma en que la
información se presenta, pasando las señales eléctricas a magnéticas y mecánicas, y al revés.

El sistema operativo se encarga de que gestionar ese tráfico y traducción de señales, posibilitando que
sean compartibles entre los usuarios. Además hace que las distintas características físicas que están
asociadas a la información no afecten negativamente a los usuarios.

Según el criterio que se estime, se pueden hacer dos grandes grupos de dispositivos : por la función
que hacen en el sistema, y por la manera de transferir la información.

Por la función, los dispositivos se clasifican en:

- Soportes de almacenamiento: De memoria permanente


- Soportes de interfaz de usuario: Son las terminales que permiten la comunicación con el
usuario, permitiendo que éste introduzca información y que la reciba
- Soportes de transmisión: Son líneas de comunicación

Por la manera de transferir la información, estos dispositivos se dividen en:

- Dirigidos a bloque o dispositivos de bloque: Tratan la información en bloques de tamaño fijo


y se asocian a dispositivos de alta velocidad, transmitiendo datos mediante técnicas de
acceso directo a memoria. Los tamaños de bloque pueden variar según los sistemas, pero los
más usuales son los de 128, 512 y 1024 bytes. Es el caso de los discos y las cintas
- Dirigidos a carácter o dispositivos de carácter: Tratan la información como una cadena de
carácter, transmitiendo carácter a carácter, sin una estructura prefijada y son no
direccionables. Están controlados generalmente por la propia CPU. Es el caso de las
terminales.

4.1 Soportes de almacenamiento

Permiten el almacenamiento masivo de información, para poder ser usada más tarde. Gestionan y
estructuran ese almacenamiento. El ejemplo más extendido es el DOS. Existen distintas derivaciones:

- Cinta magnética: Se trata de almacenamientos masivos de información que se va a usar con


poca frecuencia. Su lectura es de tipo secuencial. Su unidad de almacenamiento, o sector, es
el byte con un bit adicional para indicar la paridad -función que se calcula a partir del
examen de un grupo de binarios; es cero, si el número de 1 s es par, y es uno si el número de
1s es impar- y deja un hueco de un bit entre cada grupo para indicar el comienzo y el final de
los mismos y permitir los tránsitos de lectura y grabación. Un conjunto de unidades o de
sectores se denomina registro. La agrupación de registros constituye un fichero.
- Discos: Se trata de una superficie circular y plana recubierta de película magnética. Se divide
en sectores y pistas. La intersección de una pista y de un sector proporciona una unidad de
almacenamiento. Pueden existir varios discos colocados en pila y con dos caras de lectura,
gracias a una cabeza móvil. Entre sector y sector, como en las cintas, se deja un hueco -que
se le da el nombre de gap- para permitir tránsitos de lectura y de grabación -si se pierde la
posición debido a estas pausas, la cabeza lectora deberá dar otra revolución para
posicionarse de nuevo.
Tienen tres parámetros de caracterización: tiempo de búsqueda -o seek, es lo que tarda el
brazo del cabezal en situarse sobre la pista solicitada-, tiempo de latencia -lo que tarda en

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 87


1º Ciclos - SIMM
Juan P. Benito

localizar el sector-, y el tiempo de transformación -lo que tarda en transformarse la


información-.
- Tambores magnéticos: también conocidos como drums. Son cilindros que tienen recubierta su
cara exterior de película magnetizada. Se divide en pistas y cada pista tiene asociada una
cabeza de lectura y escritura. El acceso es más rápido pero son costosos.

4.2 Soportes de interfaz

Transmiten y reciben la información bit a bit. Su velocidad se mide en baudios -bits por segundo-. Es
frecuente en sistemas de trabajo multimedia y en los canales de transmisión de información.

Por la forma en que se conectan al equipo, los terminales se pueden clasificar en dos grupos: locales y
remotos.

Aunque la gama de terminales es muy amplia, los más usuales son los terminales RS 232. Este tipo de
terminal emite una señal de disposición para recibir datos. El sistema operativo es el que se encarga de
variar el estado del terminal entre receptor y emisor.

4.3 Soportes de transmisión de datos

Son los dispositivos que permiten conectar ordenadores con las terminales, o bien conectar
ordenadores entre sí. Por la forma en que se realiza la transmisión existen tres clases:

- Simplex: Cuando sólo se permite la transmisión en una dirección, es decir, siempre el emisor
y el receptor son los mismos
- Half duplex: Permiten la transmisión en los dos sentidos, entre dos puntos, aunque no
simultáneamente
- Full duplex: Es como el anterior, pero permite que la comunicación se lleve a cabo
simultáneamente. Como consecuencia, las líneas de comunicación son dobles, por lo que la
instalación se encarece sensiblemente

5 CONTROLADORES DE DISPOSITIVOS

Las unidades de entrada y de salida tienen una parte física y mecánica que es el dispositivo
propiamente dicho y otra parte que es de carácter electrónico que actúa como intermediario entre el
sistema y el dispositivo. Ese componente intermedio se llama controlador. Consiste en una tarjeta de
circuitos impresos que tiene una salida donde se inserta un cable que comunica con el dispositivo.
Varios de estos cables se unen en un bus que conecta con el sistema o bien van en buses
independientes, dependiendo de la magnitud del sistema.

La función de un controlador es convertir los bits en serie transmitidos desde un dispositivo en un


bloque de bytes para enviar a la CPU y lleva a cabo una corrección de errores que pueden tener lugar
durante la transmisión.

Un controlador se puede dividir en tres apartados: interfaz con el bus, el controlador propiamente
dicho y el interfaz con el usuario.

La utilidad que tiene separar un periférico del controlador es la posibilidad que se puede presentar de
conectar varios periféricos del mismo tipo a una salida o entrada únicas. Así, mientras un periférico
está operando, los otros periféricos aceptan operaciones de entrada y de salida. El ejemplo más clásico
es el de las impresoras conectadas a un controlador por medio de un derivador.

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 88


1º Ciclos - SIMM
Juan P. Benito

5.1 Puertos de E/S

Un puerto de E/S es un parte intermedia de un controlador que se compone de una batería de registros
dedicados a tareas específicas. Las clases de registros más usuales son los registros de entrada,
registros de salida, registros de estado y registros de órdenes.

Los registros de entrada y salida guardan los datos a transmitir hasta que la CPU o el dispositivo están
en estado de recepción. Esto ocurre porque las velocidades de la CPU y de los dispositivos es muy
diferente, de manera que cuando un puerto está a punto de enviar datos, la CPU podría estar ocupada
con un conjunto de procesos y el puerto deberá esperar una interrupción para dar paso a su
información.

Los registros de órdenes son los encargados de transmitir los mandatos de entrada y de salida entre un
dispositivo y la CPU.

Asimismo el puerto suele estar conectado a un adaptador de interfaz del periférico. Este adaptador
lleva en un lado conexiones compatibles con el puerto de entrada/salida, mientras en el otro lleva
varios componentes de interfaces, lo que permite la conexión de varios periféricos.

6 MEDIOS DE TRANSMISIÓN DE INFORMACIÓN

Son los caminos por los que se va a pasar la información entre los distintos dispositivos del sistema y
la unidad central de procesos. Se dividen en dos grandes grupos: los DMA y los canales.

6.1 Los accesos directos a memoria

También conocidos como DMA -Direct Memory Acces- son dispositivos que permiten la transferencia
directa entre la memoria y los periféricos, o al revés, sin necesidad de establecer ningún canal de
intercambio. Es decir, los procesos de entrada/salida usan la memoria de la CPU mientras un proceso
se está ejecutando. Se compone de varios elementos de hardware, como son:

- Registro de direcciones: es el que guarda la dirección de memoria desde la cual o hacia la cual
se va a producir la transmisión
- Registro contador: es el encargado de almacenar el dato referente al tamaño de la información
que se va a trasmitir
- Bloque de control: es el encargado de regular el funcionamiento de este subsistema
- Registro de modo: guarda un bit que señala si la operación es de lectura o de escritura

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 89


1º Ciclos - SIMM
Juan P. Benito

6.1.1 Procedimiento

El microprocesador indica al DMA correspondiente sobre la inminencia de una transmisión. Para ello
le facilitará los datos oportunos, como la dirección de memoria, el tamaño del bloque, un identificador
del periférico y el sentido de la trasferencia -de los dos que hay-.

Una vez pasada esta fase, el DMA prepara la transferencia sin necesidad de acudir de nuevo a la CPU.
Sólo acude a él de nuevo para solicitar al microprocesador el bus conveniente para cada acceso de
memoria. Cuando la transferencia se ha completado la DMA informa de tal hecho a la CPU tras haber
provocado el sistema una interrupción.

Las transferencias de información pueden tener lugar por tres métodos: por ráfagas -cuando el DMA
controla de forma exclusiva al bus hasta la finalización de la transmisión-, por ciclos -cuando el DMA
toma el control del bus por espacio de un ciclo y envía una palabra cada vez-, y de forma transparente
-se aprovecha el espacio de tiempo que la CPU pueda estar libre con respecto al bus en cuestión-. La
existencia de estos tres métodos tiene como finalidad la de optimizar, en la medida de lo posible, los
tiempos de transferencia.

6.2 Canales de E/S

Un canal se puede definir como un microprocesador especializado para tareas de transmisión de


información, el cual está constituido por la ruta que sigue la información y por los circuitos
electrónicos asociados para controlar las operaciones de entrada y de salida. Es decir, es la vía de
transmisión de información, y su gestión, desde los puntos de vista físico -línea de conducción- y
lógico. En general, y coloquialmente, es la conexión entre el sistema y cualquier dispositivo.

Realmente consta de un microprocesador con capacidad para ejecutar sus propios procesos e
instrucciones -programas de canal, los cuales están almacenados en la memoria del microprocesador
principal-. Su finalidad es liberar a la CPU de esas instrucciones de entrada/salida, con lo que ésta
puede seguir ejecutando sus programas mientras el microprocesador del canal trabaja en paralelo.
Asimismo dispone de una serie de instrucciones que le permiten manejar los controladores y los
periféricos a los que está conectado. A su vez cada instrucción posee una serie de comandos que
implican, cada uno, una determinada operación de entrada y de salida. También posee un registro de
estado que contiene un contador y un indicador de la situación en la que se encuentra la operación que
está realizando.

Las funciones de un canal se pueden resumir en:

- Servir de vía de comunicación o de transferencia de información desde o hacia un periférico y


la CPU
- Optimizar los tiempos de uso de la CPU para este tipo de tareas

6.2.1 Procedimiento de un canal

El procedimiento de transmisión de información en un canal consta de las siguientes fases:

- El canal es activado mediante una instrucción emitida por la CPU. Cuando ocurre esto, el
registro de estado del canal se inicializa y se le transmite al canal la dirección de memoria de
la primera instrucción a ejecutar. Asimismo se le transmite al canal la dirección o
identificador del periférico al cual se le va a hacer la transferencia
- El canal hace un diagnóstico del periférico para comprobar en qué estado se encuentra y
estimar si la transmisión es posible

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 90


1º Ciclos - SIMM
Juan P. Benito

- El canal envía órdenes de control al periférico


- Se procede a definir los registros en memoria y en el periférico para que tenga lugar la
transferencia
- Concretar las acciones que deben tener lugar una vez terminada la transmisión

6.2.2 Clases de canales

Normalmente se dividen según la forma de realizar la transferencia de la información. Así existen los
canales selectores y los multiplexores.

6.2.2.1 Canales selectores

Son los encargados de poner en contacto los dispositivos de E/S más veloces con la CPU, aunque sólo
puede conectar con un dispositivo a un tiempo.

Trabaja en un modo similar al de ráfagas, es decir, organiza la actividad como si de una cola se
tratase, de manera que se dedica a la transmisión de un bloque de información desde o hacia un
periférico y no comienza el trabajo con un segundo periférico hasta que no ha terminado con el
primero.

6.2.2.2 Canales multiplexores

Son los encargados de poner en contacto los dispositivos de E/S más lentos con la CPU, pudiendo
trabajar con varios dispositivos simultáneamente.

Trabajan en modo de transmisión similar al multiplex o por ciclos, es decir, el canal realiza una
exploración de estado de los periféricos y de ellos toma un carácter de cada periférico de entrada y
envía un carácter a cada uno de los de salida. Repitiendo esta secuencia por ciclos hasta que termine
con todas las operaciones previstas de entrada y salida. Los caracteres viajan simultáneamente.

Suelen existir dos tipos de dispositivos, un multiplexor que organiza la información para transmitirla,
y un demultiplexor, que organiza la información para ser recibida.

7 GESTIÓN DE LAS E/S

El sistema requiere comunicación continua e inmediata entre sus componentes, el micro, los
dispositivos y, en suma, con el exterior. Este tráfico de información ralentiza otras operaciones que
son importantes, como procesos, cálculos, gestiones de memoria, etc. Así, ante la gestión de la
información en el sistema, se encuentran varios problemas:

- Toda la transferencia de información entre la CPU y los dispositivos periféricos es ordenada


por el microprocesador. Sin embargo, si el micro se dedicase directamente a esta labor,
consumiría mucho tiempo, que detraería de otros trabajos de gestión y proceso. Para evitar
este problema se idearon los dispositivos de E/S que se llaman unidades de acceso directo a
memoria -más conocidas como DMA-, también llamados canales de transferencia.
- Además de este inconveniente, existe el problema de la sincronía. La memoria trabaja con la
CPU en un ritmo señalado por los golpes del reloj, es decir, están sincronizados. Por contra,
los dispositivos de E/S son muy variables con respecto a la CPU y, por tanto, se dice que
trabajan asíncronamente con respecto a la unidad central. Para tratar este aspecto, el

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 91


1º Ciclos - SIMM
Juan P. Benito

hardware tiene que utilizar señales eléctricas para regular el tráfico de la información y para
indicar los momentos de la transferencia.
- Velocidad: La velocidad de la CPU y la memoria va a ser distinta de la velocidad de los
dispositivos de E/S. Mientras los dispositivos más lentos los controla directamente la CPU,
los más rápidos se tratan con técnicas de acceso directo a memoria.
- Formato: el formato de la información es diferente en el microprocesador y los dispositivos de
entrada y salida. Por lo tanto hay que llevar a efecto una conversión que se podrá hacer por
dos métodos: conversión en serie y conversión en paralelo.

8 SOFTWARE DE E/S

Como se comentaba en el apartado 2, el software de E/S tiene dos objetivos: enmascarar las
complejidades que se puedan derivar del hardware y proporcionar al usuario un interfaz de fácil uso.

El sistema operativo trata las E/S a dos niveles:

- Lógico: Es un conjunto de módulos o procesos del sistema operativo que trata la información
de manera independiente a las características físicas de los dispositivos
- Físico: Módulos, procesos o tablas que tratan la información según las características de los
dispositivos. Es lo que se conoce habitualmente como drivers -conductores- de E/S. Este
conjunto de tablas internas es específico para cada uno de los dispositivos.

La ventaja de esta estructura primaria o inicial del sistema operativo es que se dispone de un elemento
software común para todos los dispositivos -por ejemplo, los discos del sistema-, mientras que se
dispone de un elemento software específico para cada dispositivo -drivers-. De esta forma, se pueden
hacer modificaciones en los drivers sin que la parte que afecta al usuario sea cambiada.

Son importantes varios aspectos a tener en cuenta en el diseño de un sistema gestor de E/S: la
universalidad -es decir, que el software de E/S sea independiente de los dispositivos para poder
aplicarlo a cualquiera-, la seguridad -el control de los errores que se deberá hacer lo más cercano al
hardware que sea posible-, y diferenciado -separando la gestión de los dispositivos periféricos de un
sólo usuario de los de uso compartido-. Atendiendo a estos aspectos, el software se estructura en
cuatro niveles o estructura secundaria: gestores de interrupciones, gestores de dispositivos,
independiente del dispositivo y software de usuario.

8.1 Gestores de interrupciones

Es el núcleo más interno de esta estructura. Cuando se presenta una interrupción el gestor de
dispositivos, el conductor o driver, queda suspendido o bloqueado. Cuando la interrupción se ha
solventado, el driver queda libre para seguir con su proceso.

Cuando se presenta una interrupción se emite inmediatamente una orden que tiene por finalidad grabar
los registros del proceso que se está ejecutando. Posteriormente se llama a una rutina del sistema
operativo que diagnostica y cura los errores o peticiones que provocan la interrupción y, después,
devuelve el control al proceso.

8.2 Gestores de dispositivos o drivers

Se trata de un proceso intermedio que consiste en verificar que las solicitudes del software son las
correctas para poder darles tránsito. Por lo corriente cada gestor o driver se hace cargo de un
dispositivo o de un grupo de ellos que sean de la misma clase.

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 92


1º Ciclos - SIMM
Juan P. Benito

Al recibir una solicitud el driver comprueba el estado de los dispositivos y en el caso de que estos no
se encuentren libres la almacena en una lista de espera. Para el caso de un CD-ROM, al recibir la
petición de lectura de un segmento, comprobará primero en qué posición se encuentra la cabeza
lectora, después la movilizará y la situará correctamente, leerá los grupos de reconocimiento y
procederá a la lectura, devolviendo la información solicitada.

8.3 Software independiente del dispositivo

Este software pretende agrupar en sus procesos aquellas funciones que son comunes para todos los
dispositivos y las muestra en forma de interfaz de usuario uniforme y compacto, a pesar de pequeñas
diferencias que puedan detectarse en los dispositivos. Aquí se incluyen la información sobre la
situación de los dispositivos, la asignación y desasignación de los mismos, su protección, el
establecimiento del tamaño de los bloques de información, información y gestión de errores, etc.

8.4 Software de usuario

Se trata de aquella parte del sistema operativo, o bien programas independientes, que el usuario
maneja por medio de programas enlazados a ellos. Es el caso de las bibliotecas del sistema operativo.
También los procedimientos a nivel usuario, como es el caso de las colas de impresión propio de
sistamas multitarea o multiprograma.

La organización consiste en grabar esos programas de usuario en un directorio que se va a dedicar a


programas gestores de un dispositivo. Un programa gestor de dispositivos, un driver, selecciona los
procedimientos a medida que se van solicitando o a medida que el periférico queda libre. Esta es una
forma de acercar la gestión al usuario y de permitir que otros usuarios tengan acceso al periférico.

9 SEGURIDAD

Por seguridad se entiende cualquier prevención o protección contra tres supuestos: frente al acceso no
autorizado a la información, alteración no autorizada e intencionada de información, y alteración no
autorizada de la misma. Por tanto trata situaciones intencionadas o no que tienen que ver con la
manipulación de información sensible e importante.

Hay dos niveles de seguridad: seguridad externa -tiende a proteger la información y los recursos del
sistema frente a agentes externos-, y la seguridad interna -que vigila que los componentes y los
procesos del sistema se encuentran en un estado de integridad adecuados-.

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 93


1º Ciclos - SIMM
Juan P. Benito

9.1 Seguridad interna

También denominada seguridad lógica, con dos posibilidades:

- Control de los usuarios. Normalmente lo diseña el administrador del sistema. Suele consistir
en una palabra clave que permite el acceso al sistema a usuarios que están registrados como
tales. Para ello el sistema operativo ofrece la entrada de un nombre de usuario -user name- y
una palabra clave -password-. Si no coinciden con las que tiene almacenadas no dará el
acceso. El segundo nivel para este mecanismo es permitir sólo un número limitado de
intentos, sobrepasado el cual se interrumpe la conexión. Es decir, este mecanismo de
seguridad se basa en establecer una graduación de privilegios. Puede hacerse a nivel de
sistema, a nivel directorio y a nivel de ficheros.
- Protección de recursos: Normalmente quien lleva este control es la propia CPU. Para los tres
recursos básicos sería de la siguiente manera:
-- Procesador: Un reloj interno evita que un único proceso tiranice la CPU y postergue al
resto. Un ejemplo de seguridad es la implantación de algoritmos de planificación de la
CPU
-- Memoria: El uso de registros bandera o marcadores, incluyendo en ellos bits de estado,
que señalan qué segmento de memoria está ocupado y cuál no, para evitar incursiones
de procesos en áreas de memoria asignadas a otros procesos.
-- Periféricos y dispositivos de E/S: Para ello se apoya en el uso de drivers o conductores,
que regulan el tráfico de información desde o hacia los periféricos, evitando que, por
ejemplo, se puedan leer dos ficheros de un disco simultáneamente.

9.2 Seguridad a nivel de ficheros

Existen dos posibilidades en cuanto a la seguridad de ficheros -y por extensión de directorios:

- Disponibilidad: El usuario tiene acceso libre, en cualquier momento, a la información


contenida en los ficheros. Cuando el trabajo desarrollado con el sistema lo requiere o en
sistemas grandes es frecuente el uso de los backups o el establecimientos de copias de
seguridad estáticas ante la posibilidad de fallos en el sistema que inhabiliten la información
guardada en ellos. Cuando esta situación se da de manera continua e interactiva, caso de los
bancos, por ejemplo- el sistema crea, paralelamente a la aplicación de los backups, unos
ficheros de registro llamados históricos que almacenan todas las actualizaciones que se han
llevado a cabo en el sistema desde una fecha dada.
Otra posibilidad es almacenar sólo los movimientos ocurridos en los ficheros desde la
última actualización, lo que obliga a una secuencia de operaciones de lectura para restituir la
información completa actualizada. Para evitarlo, cada cierto tiempo se procede a una
actualización completa de la información.
- Privacidad de los ficheros: Se basa en el establecimiento de unos derechos de acceso a los
ficheros o a un grupo de ellos. Estos conjuntos de ficheros con el mismo nivel de acceso se
denomina dominio. Para gestionar esta organización, a cada usuario se le asigna un dominio.
Además se crean dos listas: la lista de accesos -recursos y ficheros con sus niveles de
acceso- y lista de privilegios -donde se reflejan los usuarios y su capacidad de manejo de la
información-.

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 94


1º Ciclos - SIMM
Juan P. Benito

9.3 Seguridad en la transmisión de información

Consiste en codificar la información manejada y transmitida por una terminal al sistema central. Para
ello se usa la criptografía. Además, se suele acompañar la codificación con un procedimiento de
compresión de datos para ocupar menos memoria de proceso y almacenaje y para abreviar la
transmisión.

Para proceder a la codificación el emisor utiliza un algoritmo, el cual estará basado, generalmente, en
la teoría estadística, de probabilidades y la de los números primos. Este algoritmo, utilizado
inversamente, es el que posibilita al receptor a descifrar la información.

9.4 Seguridad de grandes sistemas

Se trata de construir los sistemas para que, en caso de ocurrencia de un fallo o error, la información
que se está procesando o que está almacenada no se verá alterada o perdida.

Para ello, lo que se hace es construir sistemas con los recursos importantes duplicados, de manera que
cuando se procesa una información se hace simultáneamente en los dos subsistema idénticos, con lo
que los procesos que transcurren en el paralelo no se verá afectada por un fallo en su gemelo.

Este tipo de sistemas requieren la implantación de sistemas operativos de cierta complejidad.

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 95


1º Ciclos - SIMM
Juan P. Benito

ÍNDICE ALFABÉTICO

—A— —E—
Accesos directos a memoria, 6 E/S
Ancho de banda, 2 hardware de, 3
software de, 3, 9
Entrada/Salida
—B— operación de, 2
Baudios, 5 Errores, 2
Bus, 2
—F—
—C— Fichero, 4
Canal, 7
clases de, 8 —I—
demultiplexor, 8
funciones, 7 Información, 2
multiplexor, 3, 8 cambio de formato de la, 9
procedimiento, 7 Interrupción E/S, 2
selector, 3, 8
Cinta magnética, 4
Controlador, 2, 5
—N—
Criptografía, 12 Nombre de usuario, 11

—D— —P—
Disco, 4 Palabra clave, 11
tiempo de búsqueda, 5 Periférico, 2
tiempo de latencia, 5 Puerto, 2, 6
tiempo de transformación, 5
Dispositivo, 2
conexión por bus E/S, 3
—R—
conexión por bus único, 3 Registro, 4
Dispositivos
de bloque, 4
de carácter, 4 —S—
velocidad de los, 9 Seguridad, 10
Dispositivos de E/S, 4 externa, 10
DMA, 3, 7, 8. Véase Accesos directos a memoria. interna, 11
Véase Accesos directos a memoria Sincronización, 9
componentes, 6 Soportes
procedimiento, 7 de almacenamiento, 4
de interfaz, 4
de transmisión, 4

Ciclos formativos
Sistemas informáticos multiusuario y en red

Unidad Didáctica 9 - Sistema operativo monousuario: DOS

ÍNDICE

ÍNDICE 1

1 CONCEPTOS2

2 DOS2

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 96


1º Ciclos - SIMM
Juan P. Benito

3 HISTORIA Y VERSIONES DEL DOS 3

4 CARACTERÍSTICAS GENERALES 4

5 GESTIÓN DE LA MEMORIA5

6 ESTRUCTURA DE LA INFORMACIÓN 7

7 INTERFAZ DE USUARIO 7
7.1 CARGA DEL INTERFAZ8
8 ÓRDENES DEL DOS 9
8.1 CARACTERES ESPECIALES 9
8.2 SINTAXIS DE LAS ÓRDENES 10
8.3 CLASES DE ÓRDENES 10
9 TRABAJO CON DISPOSITIVOS 11
9.1 REDIRECCIONAMIENTO CON DISPOSITIVOS 11
10 ÓRDENES BÁSICAS DEL MS-DOS 13

ÍNDICE ANALÍTICO 15

U.D. 9 - Sistemas Operativos, Gestión de E/S. Seguridad;, pág. de 12 97


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

1 CONCEPTOS

Sistema operativo: Es un grupo de programas que en su conjunto se encarga de gestionar y controlar


los procesos y los recursos del sistema, usando para ello los recursos que proporciona un sistema
informático, actuando de la manera más eficiente posible. También es el intermediario entre el
hardware del sistema y los diferentes programas de aplicación

Monousuario: Calificativo que se asocia con sistemas informáticos que sólo permiten el acceso al
ordenador a través de un único terminal, es decir, no permite que dos usuarios, desde dos puestos
diferentes, accedan al mismo ordenador. El ejemplo de sistema operativo más característico de
estos sistemas es el MS-DOS.

Memoria RAM: de Memoria de Acceso Aleatorio -Random Access Memory-. Se trata de la memoria
principal del sistema informático. Está constituida por módulos de memoria con capacidad
múltiplo de 2 -actualmente está en el orden de las 16 a 64 Mb- y entre sus características cabe
destacar que es volátil -es decir, su contenido se pierde cuando se interrumpe la alimentación de
energía-, y que es de lectura y escritura -es decir, puede ser modificable tantas veces como sea
necesario-. La RAM se distribuye en registros o direcciones, con la particularidad de que siempre
toma las direcciones más bajas.

Memoria ROM: de Memoria de sólo lectura -Read-Only Memory-. La memoria ROM es una pastilla
-dispositivo- que contiene módulos de memoria estable, en forma de registros, y en una cantidad
limitada. Es no volátil y de sólo lectura, es decir, no se puede modificar. Se construye durante su
fabricación siguiendo un modelo o máscara diseñado por el fabricante. En este tipo de memoria se
incluyen rutinas de arranque del ordenador, de comunicaciones con los dispositivos del sistema,
tarjetas de red,... Sus direcciones están definidas de antemano y no cambian nunca.

2 DOS

Se trata de un acrónimo, marca registrada, para denominar a un sistema operativo de disco - disk
Operating System-. El DOS original fue escrito por IBM para sus computadores de la serie 700 y fue,
por lo tanto, uno de los primeros fabricantes de medios y grandes sistemas en ofrecer un sistema
operativo general. Fue introducido después de la corta vida que tuvieron los primitivos OS -Sistema
Operativo presentado por IBM para sus máquinas de la serie 360-.

En la actualidad el sistema operativo de disco monousuario se ha convertido, casi de manera


generalizada, en el MS-DOS, acrónimo para MicroSoft Disk Operating System. Los nombres más
utilizados para referirse a este sistema son el MS-DOS y el PC-DOS -este último recuerdo de la
implicación de IBM en sus primeras etapas de desarrollo-.

El que se llame DOS es debido a que se diseñó para gestionar la información directamente sobre el
disco -ya sea disco duro o flexible-, con lo que la mayoría de sus mandatos tenían que ver con estas
tareas. Pero además, el DOS se encarga de la gestión de los periféricos y de las órdenes internas del
sistema, proporcionando información al usuario sobre la marcha de esos procesos o sobre la aparición
de interrupciones y errores. Para ello el sistema operativo de disco dispone de unos archivos de
órdenes y archivos del sistema, así como de las correspondientes rutinas.

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 98 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

3 HISTORIA Y VERSIONES DEL DOS

Antes de conocer como han evolucionado los sistemas operativos de disco, queda hacer una breve
reseña del sistema operativo más extendido anteriormente. Se trata del CP/M. Un sistema operativo
-sus siglas son marca registrada- para sistemas basados en microprocesadores que sólo soporta un
usuario en un mismo momento -es decir, se trata de un sistema operativo monousuario y monotarea-.

A pesar de tratarse de un sistema muy primitivo, creado por los fabricantes de los microprocesadores
y los sistemas, estaba provisto de mantenimiento de archivos, utilidades para el conocimiento y la
actualización de los contenidos de la memoria, y tenía la posibilidad de acceder a un compilador y a
un ensamblador.

El MS-DOS fue creado en 1981 fruto de un acuerdo entre IBM y Microsoft para dotar a los
ordenadores del primero -los iniciales PC- de un sistema operativo más versátil y utilizable por el
público. Además se trataba de una mejora hardware -procesos a 16 bits- que requería un sistema
operativo más moderno y potente que los anteriores. Nacía así la versión MS-DOS 1.00. El éxito
conjunto, tanto de la venta de PCs como de este sistema operativo, hizo que se generalizara y
acaparara prácticamente el mercado.

A mediados de los años 80 la compañía norteamericana Digital Research crea el sistema DR-DOS ,
añadiendo algunas mejoras y modificaciones. Llega a originar cierta competencia con MS-DOS,
aunque de escasa entidad. Su máximo nivel es el DR-DOS 6.00 que apareció en 1991 -contemporáneo
de MS-DOS 5.00-. En 1992 la empresa fue adquirida por Novell pero como división de ésta siguió
desarrollando el sistema operativo. Por estas fechas lanza al mercado su Novell DOS 7.00, derivado
de los anteriores DR-DOS, como sistema operativo para redes Novell.

Otro sistema operativo de la época es el PC-DOS, muy parecido al MS-DOS, y nombre genérico de
los sistemas operativos desarrollados por IBM para sus equipos. Este sistema se fue desarrollando
desde 1991 cuando Microsoft e IBM rompieron su alianza estratégica y decidieron trabajar por
separado.

El derivado del PC-DOS fue el IBM-DOS que llegó hasta la versión 6.00 sobre el año 1993. Su
estructura era muy similar a la del MS-DOS pero variaban los programas complementarios, como las
utilidades y el antivirus.

El OS/2, causa de la ruptura de IBM y Microsoft dado que el segundo no quiso participar en su
desarrollo, es un sistema operativo híbrido entre el MS-DOS y el XENIX -sistema operativo que es
capaz de emular en un ordenador un sistema multipuesto y multitarea-. OS/2 es un sistema
monopuesto y además es multitarea.

Actualmente el MS-DOS se encuentra en su versión 7.00, y se halla incorporado al sistema operativo


Windows-95 y 98. La finalidad de esa hibridación es que se puedan ejecutar programas en entorno
MS-DOS en un entorno Windows. Windows 98 crea un entorno o emulación de MS-DOS para ello.
En el caso de que esta emulación no funcione adecuadamente, el sistema Windows 98 permite que se
arranque el ordenador desde el sistema MS-DOS y trabajar desde él.

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 99 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Tabla 9.1 Resumen de versiones y características del MS-DOS

MS-DOS
Versión Año Características
1.00 1981 Primer Sistema Operativo de Disco. Destinado sobre
todo a gestión de información en discos
1.10 y 1.25 1982 Trabaja con discos de doble cara
2.00 y 2.01 1983 Admite trabajo con subdirectorios sin limitación y
símbolos internacionales
2.11 1983 Es capaz de detectar errores y de corregirlos
2.25 1983 Admite el uso de caracteres extendidos
3.00 1984 Puede usar discos de 5,25 pulgadas y alta densidad (1,2
Mb.), pudiendo trabajar con discos duros de mayor
capacidad (por entonces se trata de discos de 1-2 Mb. en
80086
3.10 1984 Puede trabajar con varios terminales emulando una red
3.20 1986 Admite discos de 3,5 pulgadas y densidad (720 Kb).
3.30 1987 Añade nuevos comandos (trabajo con nuevos discos
duros y capacidades: 20 Mb), emulación de red,
gestiona hasta 4 puertos de comunicaciones y maneja
discos de 3,5 pulgadas y alta densidad (1,44 Mb.).
Asignaciones virtuales de memoria
4.00 y 4.01 1988 Trabaja con discos duros de capacidad elevada (40 Mb)
5.00 1991 Nueva gestión de la memoria RAM y caché
6.00 1993 Añade algunas utilidades, como el antivirus, duplicador
del espacio, defragmentador, gestor de memoria,
backup, chequeo del sistema,... Gestiona CDs
6.20 1995 Añade a lo anterior gestionar particiones de hasta 2 Gb
6.22 1995 Gestiona particiones de tamaño hasta 4 Gb
7.00 > 1995 Sin límite de tamaño en las particiones. Adelgazado y
sin entidad independiente, pues se inserta en W-95 y W-
98, respetando su núcleo, fundamentalmente

4 CARACTERÍSTICAS GENERALES

Entre las características del DOS, centrándonos en el MS-DOS, se pueden destacar las siguientes:

- Es monousuario: se trata de un sistema que permite un sólo puesto de trabajo (sinónimo de


monopuesto); por lo tanto, varios usuarios a la vez no pueden trabajar con este sistema.
- Es un sistema monotarea, es decir, no permite la realización de varias operaciones al mismo
tiempo. Esto implica que para ejecutar un proceso o programa del sistema, se deberá esperar
hasta que acabe el que se está ejecutando en ese momento.
- Es un sistema gestor, es decir, se encarga del manejo de los periféricos y de la coordinación de
todas las tareas a realizar por el sistema; al mismo tiempo, se encarga de la buena relación
entre los programas de aplicación y de utilidad con el sistema informático.
- Requiere unos condicionantes específicos de hardware para su funcionamiento, requisitos que
variarán según la versión del DOS que se haya instalado o se vaya a instalar en el sistema
- Es un puente entre el usuario y los diversos componentes hardware que constituyen el sistema.

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 100 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

5 GESTIÓN DE LA MEMORIA

Para tener una idea clara de como se maneja la memoria por parte del MS-DOS, conviene repasar el
mapa de la memoria principal o RAM del sistema (ver Figura 9.1), haciendo hincapié en las cuatro
áreas de memoria: convencional, superior, expandida y extendida.

La memoria convencional está constituida por módulos de memoria RAM hasta que cubre una
capacidad de 640 Kb. Esta es la memoria que van a usar los diferentes programas de aplicación y de
utilidad, con lo que se llega a la conclusión siguiente: a más cantidad de memoria convencional, más
espacio para la ejecución de esos programas y por lo tanto más rapidez en su manejo. Sin embargo,
esos 640 Kb. no están libres, pues algunas de las rutinas del MS-DOS se cargan en sus direcciones
más bajas, ocupando un espacio de la misma:

- Los primeros 2-4 Kb. están reservados para el sistema operativo, donde va a guardar la tabla
de interrupciones, características de arranque y funcionamiento, etc.; indispensable para la
gestión básica del sistema
- Las siguientes 44 Kb. están ocupadas por las rutinas que constituyen el núcleo o kernel del
DOS, con dos ficheros de carácter oculto, como son el IO.SYS y el MSDOS.SYS
- Le sigue una pila pequeña de memoria, de tamaño variable, donde se cargan las
especificaciones dadas al sistema mediante las órdenes declaradas en el fichero denominado
CONFIG.SYS (ver siguiente tema), tales como el número de ficheros a tratar
simultáneamente -FILES-, los buffers de memoria,...
- Otra zona de área variable donde se cargan los controladores de dispositivos declarados en el
fichero CONFIG.SYS mediante la declaración DEVICE. Esta memoria siempre estará
ocupada por defecto, pues al instalar el MS-DOS el software autoinstala controladores como
el HIMEM.SYS, el ANSI.SYS y el EMM386.SYS. Para eliminarlos hay que eliminar del
CONFIG.SYS esos controladores por defecto y volver a iniciar el sistema informático
- Una zona de un tamaño aproximado de 3 Kb. que es donde se va a cargar el programa del
DOS que se encarga de procesar e interpretar las ordenes del DOS, denominado
COMMAND.COM. Va en una zona superior porque al arrancar el sistema, primero se leen
las opciones de configuración del fichero CONFIG.SYS y más tarde se carga el
COMMAND.COM
- Otra zona de tamaño variable, sobre los 20 Kb. aproximadamente, donde se cargan los
programas que van a permanecer activos permanentemente en memoria, tales como los que
instala el MS-DOS por defecto -DOSKEY y KEYBSP (este último no hace falta instalarlo si
convine el trabajo con un teclado de tipo anglosajón)-, o como los que instala el usuario a
través del fichero de configuración AUTOEXEC.BAT -como es el caso de un programa
antivirus con opción “sentinel”-.
- Una pila de memoria libre, de unos 600 Kb. aproximadamente, que sirve para la ejecución de
programas de aplicación y de utilidad

La memoria superior es la memoria RAM restante hasta cubrir 1 Mb., es decir, hasta llegar a los
primeros 1.024 Kbytes. O sea, la memoria superior abarca 384 Kb. En esta memoria se suelen ubicar
todos los procesos resultantes de las rutinas de inicialización y configuración del sistema, programas o
procesos que se guardan, habitualmente, en la memoria ROM del sistema. Las tres más importantes
son:

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 101 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Memoria para la ROM BIOS: O Sistema básico de entradas y salidas -de Basic Input/Output
System- son las rutinas básicas que sirven para gestionar las operaciones de entrada y salida
del sistema informático con respecto a sus dispositivos. Esta BIOS suele ser llamada
normalmente por el sistema operativo, aunque en ocasiones la pueden llamar los programas
de aplicación, aunque eso pueda acarrear problemas de compatibilidad
- Memoria de vídeo: Son módulos de RAM que almacenan los atributos, características y
caracteres de los objetos que aparecen en la pantalla de la terminal. En la actualidad, las
tarjetas de vídeo incorporan su propia RAM, que además está integrada en la placa base del
ordenador y es modificable por el usuario desde el teclado (suele estar entre 2 y 4 Mb.)
- Extensiones ROM: Son algunas rutinas almacenadas en registros de memoria ROM y que se
utilizan para gestionar algunos de los dispositivos del sistema

La memoria expandida está constituida por módulos de memoria con direcciones que no se pueden
referir de manera directa. Se denomina así por las primitivas tarjetas de expansión de memoria que
controlan, con su propio software, la partición de la misma. La manera en que funcionaban se resume
en: cuando el micro necesita poner en ejecución un proceso que se encuentra en la memoria extendida,
primero crea un marco de página de memoria física de 64 Kb. en el área de memoria superior, por
ejemplo, entre los 832 Kb. y los 896 Kb., en ese marco carga el marco de página lógico del proceso
que se encuentra en la expandida. Se pueden cargar en el marco físico tantos lógicos como necesite el
microprocesador -con el límite de 64 Kb.-, leyéndose de esa manera toda la memoria expandida que
sea necesario. En la actualidad, los modernos equipos tipo Pentium no gestionan memoria expandida.

La memoria extendida se define como aquella parte de la memoria cuyas direcciones son superiores
a los 1.024 Kb. La administración por el DOS de este tipo de memoria se lleva a cabo por un
dispositivo virtual del DOS denominado HIMEM.SYS. Este organizador de extendida utiliza las
especificaciones de memoria extendida -XMS, de Extended Memory Specification- o protocolos para
la gestión de direcciones en la memoria extendida, de tal manera que dos procesos no utilicen las
mismas direcciones de memoria. Esta memoria sólo la pueden utilizar los programas de aplicación y
de utilidad que vienen implementados para ello, por lo que si no es así, conviene más reconvertir esta
memoria en otro tipo para su mejor aprovechamiento.

La memoria alta o HMA- de High Memory Area- la constituyen los primeros 64 Kb. de la memoria
extendida, es decir, está situada entre los 1.024 Kb. y los 1.088 Kb. A ella se puede acceder desde el
microprocesador en modo real de funcionamiento. El organizador de memoria alta es el dispositivo
HIMEM.SYS, el cual se declara en el CONFIG.SYS. Su principal utilidad es cargar en ella una parte
del sistema operativo que es necesario que permanezca residente, con lo que liberamos memoria
convencional para el uso de utilidades y aplicaciones.

La memoria shadow -de sombra, en inglés- es una parte de la memoria extendida a la que se
traspasan las rutinas de la BIOS que se encuentran incorporadas a pastillas ROM. La memoria ROM
transcurre a 8 o 16 bits y es más lenta que la RAM, de ahí su utilidad. Pueden utilizar 128, 256 y 384
Kb. de memoria y hacen una copia de las rutinas BIOS del sistema y/o de las rutinas BIOS de una
tarjeta de vídeo. Sin embargo, a diferencia de las anteriores, no se puede establecer desde el sistema
operativo, sino que se configura por medio de unos interruptores que se encuentran en la placa base
del ordenador o por medio del setup del sistema.

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 102 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

6 ESTRUCTURA DE LA INFORMACIÓN

El sistema informático necesita almacenar información, ya sea de manera temporal o


permanentemente. Para ello se utilizan los medios de almacenamiento interno y externo. Ejemplo del
primer caso es el disco duro del sistema, y del medio externo el más extendido es el disquete de 3,5
pulgadas. El sistema operativo necesita que el disco en el que va a guardar la información esté
previamente formateado.

En cualquier disco se pueden apreciar dos niveles de estructuración básicos: el nivel físico y el nivel
lógico. El primero es la estructura que le da el fabricante en el proceso de elaboración. Es decir, es la
estructura que tiene el dispositivo de almacenamiento cuando se adquiere. Esta estructura divide al
disco en caras -hay varios discos en un montaje de un disco duro-, pistas -cilindros al tratarse de un
disco duro- y sectores. La intersección de un sector y una pista se denomina segmento. Uno o varios
segmentos constituyen un cluster.

La estructura lógica es la que se construye cuando se le da un formato al disco. Esta tarea proporciona
al disco cuatro elementos fundamentales para la gestión posterior de la información: el sector de
arranque, el directorio raíz, la tabla de localización de ficheros y el área de datos.

- El sector de arranque se ubica en el primer segmento del disco y ocupa 512 b. -que es el
tamaño de un segmento del disco-. En el caso del disco duro, este sector contiene un
pequeño programa que carga el DOS en memoria de manera automática cuando se enciende
el ordenador. Además alberga información referente a la estructura física del disco, como el
número de caras, sectores, capacidad del disco, datos sobre etiqueta, etc.
- La tabla de localización de ficheros -más conocida como FAT, del inglés Files Allocation
Table- guarda todas las referencias a los diferentes clusters, y segmentos, de información. Su
utilidad deriva de que al almacenar esta información se puede tener acceso directo a un
fichero, o a sus diversas particiones, sin necesidad de leer los ficheros previos, con lo que se
agiliza la localización de la información. La forma en que se referencia la información es
mediante el uso de los clusters, dado que el sistema operativo no reconoce sectores ni pistas.
Los clusters son, entonces, las unidades lógicas de almacenamiento.
- El directorio raíz se crea inmediatamente detrás de la FAT y puede ocupar varios segmentos.
Está constituido por unos registros con cuatro campos. La longitud de un registro es de 32
bits. y contienen información sobre la fecha en que se creó un fichero o directorio, la hora,
su extensión y los atributos del fichero -lectura, lectura y escritura, y oculto.
- Área de datos o zona de datos es el resto del espacio del disco, el cual está disponible para
albergar información. Viene a representar el 95 % de la capacidad del disco una vez que éste
se ha formateado.

7 INTERFAZ DE USUARIO

La interfaz, como se ha comentado en unidades anteriores, es la parte del software que permite la
interacción con el usuario, es decir, es lo que el usuario “aprecia” en la pantalla de su terminal como
parte externa del sistema. En esta fase de interacción es donde el usuario puede introducir información
o dejarse interrogar por el sistema.

Existen dos modos clásicos de presentar un interfaz al usuario: en modo pantalla de texto y en modo
gráfico. El primer modo es el que va a utilizar el DOS fundamentalmente -aunque alguna utilidad
tiene un modo más gráfico que el resto-, mientras que el segundo modo es el que se asocia con los
entornos “windows”.

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 103 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

7.1 Carga del interfaz

Cuando el ordenador se conecta a la fuente de alimentación, el sistema se realiza a sí mismo su propio


chequeo para comprobar el estado de funcionamiento de los diversos componentes hardware. Suele
ser opcional el que el sistema presente esta información al usuario. Una vez hecho esto, se carga la
BIOS del sistema y, desde aquí, el equipo cede el control al sistema operativo

Una vez que el sistema operativo se ha cargado en la memoria principal del ordenador, lo que incluye
dejar en ciertos segmentos de la RAM ciertos procesos permanentes del MS-DOS -como es el caso
del COMMAND.COM-, entonces se procede a la lectura y procesado de los ficheros de
configuración: CONFIG.SYS y AUTOEXEC.BAT, lo cual se hace automáticamente. El primero
contiene información referente a la configuración física del sistema y del entorno inmediato: códigos
de país, dispositivos, controladores, ficheros, etc. El fichero AUTOEXEC.BAT señala aquellos
procesos que se ponen en marcha cada vez que se activa el sistema operativo. Tanto el anterior como
éste, son ficheros que el usuario puede modificar según sus preferencias de trabajo con el sistema.

Cuando el sistema ha terminado de cargar todos los procesos de configuración y de entorno, aparece
una pantalla de fondo negro con un símbolo C:\>. Este símbolo se denomina símbolo del DOS o
indicador de comandos. Es decir, el sistema operativo advierte que se encuentra a la espera de recibir
algún comando por parte del usuario. Este símbolo indica la unidad en la que se encuentra el usuario.
En el ejemplo se este párrafo, el usuario se encuentra en la unidad C, es decir, se encuentra en el disco
duro denominado así por el sistema. Este símbolo es modificable por el usuario, dado que el que
aparece es el del sistema operativo por defecto. Para el caso de modificarlo para la sesión en curso, el
usuario tecleará el comando PROMPT seguido de un símbolo y del texto que quiera que aparezca
cada vez que el sistema está en espera -recién arrancado, por ejemplo-.

Por ejemplo, si queremos que aparezca el texto siguiente en el “prompt”

I.E.S. Islas Filipinas


Hoy es 18/03/2003, y son las 11:20:00
Espero un comando, C:\>

deberemos teclear

C:\>PROMPT I.E.S. Islas Filipinas$_Hoy es $d, y son las $t$_Espero un comando, $P$G

Símbolo Resultado de su aplicación


$ Indica que el siguiente carácter es un símbolo a aplicar
_ Retorno de carro (ENTER)
b Muestra una barra vertical, |, útil para redireccionamiento
d Visualiza la fecha del sistema
e Código de escape, ESC, ASCII 27
g Muestra en pantalla el carácter >
h Suprime el carácter anterior del PROMPT
l Muestra en pantalla el carácter <
n Muestra la unidad de trabajo, de disco, activa
p Muestra el directorio o subdirectorio de trabajo, incluyendo la unidad
q Muestra el carácter =
t Muestra la hora corriente del sistema
v Muestra la versión de MS-DOS con la que estamos trabajando

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 104 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

8 ÓRDENES DEL DOS

Son los procesos que el usuario quiere demandar del sistema operativo y este pone en marcha cuando
se introducen por medio de la interfaz. Así, para el caso del MS-DOS, con un interfaz tipo texto, una
orden es una palabra que representa el proceso a ejecutar. Esta palabra, siempre en inglés, se escribe
inmediatamente después del PROMPT que se ha descrito en el apartado anterior. Para que la orden
tenga eficacia debe seguirse de la pulsión de la tecla ENTER ().

Las órdenes del MS-DOS también son conocidas como mandatos o como comandos del MS-DOS.

8.1 Caracteres especiales

Como se vio en el apartado de periféricos, en su unidad correspondiente, el teclado estándar se divide


en tres zonas: la zona de caracteres generales -similar al teclado de una máquina de escribir-, la zona
de función -las teclas que se sitúan en su borde superior-, y la zona numérica -situada a la derecha-.

Dentro de la zona de caracteres generales se encuentran varias teclas que tienen una función especial
que no se corresponde con la función clásica en una máquina de escribir corriente:

- Tecla ENTER (): Probablemente la más importante del teclado. Pulsada tras haber escrito
una orden del DOS indica al sistema que pase a su procesado y conclusión. También sirve
de manera similar en muchos programas de aplicación, o en los procesadores de texto como
fin de párrafo,... También se la conoce como tecla INTRO o tecla RETURN.
- Tecla CONTROL o CTRL: Puede venir señalada de las dos maneras en el teclado. Es junto
con la tecla del siguiente punto, una tecla sin entidad propia y tiene utilidad cuando es
pulsada simultáneamente a otra tecla. En este caso proporciona un carácter especial del
teclado o da acceso a una función
- Tecla ALT: Como la anterior, se trata de una tecla que no tiene entidad propia. Suele pulsarse
en combinación con otra para proporcionar un carácter especial o dar acceso a una función.
En combinación con CONTROL y la tecla SUPR -situada en la zona intermedia del teclado
o en la zona numérica- produce un proceso de reinicio del ordenador -como si éste acabara
de encenderse-. En combinación con la tecla CONTROL y la tecla ºª\ proporciona el carácter
\ -que se verá que es útil para establecer rutas de acceso a directorios o comandos-.
Además la tecla ALT junto con una combinación de números -de hasta 3 dígitos, más
concretamente, números situados entre el 1 y el 255- da como resultado un carácter ASCII
que tiene por código la clave numérica. Por ejemplo, la combinación de la tecla ALT y la
pulsión de los números 2, 3 y 0 da como resultado el carácter µ (nu).
- Tecla ALTGR: Esta tecla, pulsada simultáneamente con teclas que muestran más de dos
caracteres proporciona, como resultado, el tercero de esos caracteres. Por ejemplo, pulsando
la tecla ALTGR y la tecla correspondiente al número 3 de la fila superior de la zona de
caracteres generales -alfabéticos- se obtiene como resultado el carácter # (almohadilla). Esta
tecla se puede sustituir por la pulsión simultánea de las teclas CONTROL y ALT.
- Teclas de función: Son las señaladas en la parte superior de la casi totalidad de los teclados.
Suelen llevar la letra F seguida de un número que da el orden de la función. Suelen tener una
función asociada -pequeña macro que realiza un proceso compuesto de otros más simples-, y
serán útiles en algunos programas como el editor del MS-DOS.
- Otros caracteres: Es el caso de la barra /, que asociada a ciertas órdenes implica que ésta se
ejecute con ciertas condiciones marcadas por los parámetros que se escriban después de la
barra. El signo ?, que se usa como comodín para un carácter que se desconoce. La
combinación de estos dos caracteres inmediatamente detrás de un comando del MS-DOS
indica al sistema que proporcione información sobre ese comando -lo que se entiende
habitualmente como una ayuda acerca de esa orden-. Otro carácter es el *, que sirve como
comodín de un grupo de caracteres que se desconocen. La barra vertical | suele tener como

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 105 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

objeto la partición de la información de salida por terminal en varias pantallas para dar
tiempo al usuario a leerlas. Otro carácter es >, que sirve para direccionar la salida de
información hacia uno u otro dispositivo -por ejemplo, a terminal, o a impresora-; y su
contrario, < -que establece una dirección de entrada-. Por último, el carácter % sirve de
comodín en la escritura de ficheros programa -ficheros BAT del MS-DOS- para representar
el nombre de un objeto.

8.2 Sintaxis de las órdenes

Se entiende por sintaxis un modelo de escritura de los comandos del MS-DOS, modelo que se debe
seguir si se quiere que la orden produzca el efecto deseado. Es decir, es el formato de la orden.

Las órdenes del MS-DOS se escriben en la pantalla inmediatamente detrás del símbolo del PROMPT.
Para escribirlas se pulsan las teclas del teclado hasta conseguir la sintaxis adecuada. Si se producen
errores se pueden corregir con la tecla “borrar carácter anterior” () -situada sobre la tecla ENTER
()-, con la tecla “borrar carácter siguiente” (SUPR), con las teclas de desplazamiento (, ), con
las teclas “ir al principio de la línea” (INICIO), e “ir al final de la línea” (FIN). No existe distinción,
en MS-DOS, entre mayúsculas o minúsculas, y la longitud máxima es de 127 caracteres.

Cualquier orden del MS-DOS está constituida por dos partes: la orden propiamente dicha, y los
parámetros de condición; aunque hay unas pocas órdenes que no llevan asociadas parámetros de
funcionamiento.

Los parámetros implican el funcionamiento de la orden con ciertas condiciones, y suelen ser
optativos por que MS-DOS implica unas condiciones por defecto para cada orden. Los parámetros de
las órdenes son de dos clases, los parámetros fijos -son los que se escriben detrás del carácter /
después de la orden-, y los parámetros variables -los nombres de ficheros sobre los que se va a
ejecutar la orden, la unidad de trabajo, la ruta de acceso, etc.-. En el caso de que los parámetros sean
opcionales figurarán en el formato encerrados entre corchetes -por ejemplo [unidad-. Hay una regla
que implica que se debe dejar un espacio en blanco entre la orden y los parámetros y entre éstos.

8.3 Clases de órdenes

Se clasifican por su grado de intimidad dentro del sistema operativo. En este caso del MS-DOS se
clasifican en internas y externas:

- Órdenes internas: Son las que se incluyen dentro del COMMAND.COM. Como este
programa intérprete de órdenes se encuentra residente en la memoria principal, significa que
las órdenes que contiene se pueden ejecutar en cualquier momento por el sistema sin
necesidad de Si buscamos estas órdenes en el directorio de MS-DOS, como comandos
listados, no aparecerán. A su vez se dividen en:
-- Órdenes de procesos BAT: son las que habitualmente se suelen incluir en este tipo de
microprogramas de MS-DOS, o ficheros por lotes: son BREAK, BUFFERS, CALL,
CLS, COUNTRY, ECHO, FILES, FOR, GOTO, PAUSE, etc.
-- Órdenes referidas a directorios: relacionadas con la estructuración de la información y
su localización: CHDIR (CD).., MKDIR, RMDIR,...
-- Órdenes referidas a ficheros: son aquellas que permiten la manipulación de ficheros:
copiar, trasladar, fusionar, borrar,... Son: COPY, DELETE, DIR, ERASE,
UNDELETE, XCOPY,...
-- Órdenes varias: suelen estar dedicadas al entorno, como son: BREAK, PATH -estas
suelen aparecer con frecuencia también en los procesos BAT-, CHKDSK, VOL,
DATE, LABEL, PROMPT, TIME, VER,...

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 106 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

- Órdenes externas: Son aquellos programas que lleva asociados MS-DOS y que se pueden ver
al hacer un DIR del directorio del MS-DOS. Suelen llevar como terminación EXE o COM.
Así, están:
-- Externas de discos: DISKCOMP, DISKCOPY, FORMAT,...
-- Externas de ficheros: ATTRIB, COMP, MIRROR, TREE,...
-- Externas de Utilidades: ASSIGN, BACKUP, DEBUG, HELP, MORE, RESTORE,...
-- Externas de configuración: APPEND, DOSKEY, KEYBSP,...

Hay algunas órdenes que en las últimas versiones de MS-DOS, aquéllas que acompañan a los
entornos Windows, 95 y 98,no aparecen en “plantilla”, como es el caso de ASSIGN, BACKUP,
LINK, MIRROR, TREE,...

9 TRABAJO CON DISPOSITIVOS

MS-DOS trabaja con 5 tipos distintos de dispositivos, asociados generalmente a periféricos. Estos
dispositivos se controlan desde los dos ficheros ocultos que incorpora el sistema en su instalación:
MSDOS.SYS e IO.SYS. MS-DOS nombra a esos dispositivos con sus correspondientes etiquetas y
esos nombres no pueden usarse para ficheros, para otros dispositivos, o para procesos BAT,..., es
decir, se trata de palabras reservadas del sistema operativo. Estos dispositivos son:

- Dispositivos CON: Se nombra en plural, dado que el MS-DOS incluye aquí el monitor y el
teclado. Esto lo hace el MS-DOS gracias a la exclusión mutua que presentan estos
dispositivos por su dirección de trabajo, pues el teclado introduce, mientras que el monitor
extrae. CON proviene de la palabra inglesa console.
- LPTs: Línea de impresoras -del inglés Line PrinTer-. Con esto el MS-DOS entiende todos los
puertos que trabajan en modo paralelo, asociados generalmente a impresoras. MS-DOS
distingue tres: LPT1, LPT2 y LPT3. Normalmente el de trabajo será el puerto LPT1, aunque
a veces se indique la impresora con la clave PRN-.
- COMs: Donde se incluyen los puertos en serie, donde se suelen conectar los módem, escáner
y ratones. MS-DOS gestiona hasta 4 puertos serie, desde COM1 hasta COM4. Normalmente
el de trabajo habitual será el COM1 para el ratón.
- AUX: Se trata de un dispositivo auxiliar, de transmisión en serie y asíncrono
- Dispositivo NUL: Se usa muy rara vez y el sistema operativo lo interpreta como un
dispositivo virtual donde se envían temporalmente informaciones en espera de ser
redireccionadas posteriormente. Se usa en algunas ocasiones en los ficheros BAT.

9.1 Redireccionamiento con dispositivos

Se trata de conducir los resultados de un proceso ejecutado por el sistema operativo hacia un
dispositivo de entrada o de salida. Se podrá direccionar el resultado de la orden DIR hacia una
impresora o bien guardarlo en un fichero de tipo texto.

Este direccionamiento se consigue gracias al uso de ciertos símbolos o caracteres:

- Redireccionamiento de salida: Se usa el carácter >, seguido del nombre del dispositivo hacia
donde quiero dirigir la salida del proceso, o bien seguido del nombre del fichero donde se
quiere guardar ese resultado. Si el fichero ya existe lo reescribirá. Por ejemplo, si se escribe
la orden DIR en el directorio raíz, C:\>, el resultado será el conjunto de directorios y
ficheros que allí se encuentran. Si se direcciona

DIR > LPT1

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 107 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

la salida se efectuará por impresora. Pero si se direcciona

DIR > conten.txt

se creará un fichero con ese nombre, que va a contener dicha información.

Lo mismo se puede hacer con cualquier orden del MS-DOS que proporcione una salida:

CHKDSK > conten.txt

creará un fichero con esos datos. Si el fichero ya existe -si no se ha borrado el fichero que se
usó en la orden anterior-, entonces el fichero conten.txt pasa a contener el resultado de la
orden CHKDSK.
Si el contenido del fichero primitivo no se quiere perder, entonces hay que hacer un
redireccionamiento de salida con el símbolo >>, con lo que la información proporcionada
por el segundo comando se agregará al final del fichero. Así, el fichero conten.txt pasará a
contener la información del directorio y la información del CHKDSK -si el fichero no
existe, lo creará, como hacía >-.
- Redireccionamiento de entrada: Que indica al MS-DOS que los datos de entrada debe
tomarlos desde el dispositivo que se indica o bien desde el fichero señalado. Las órdenes
más habituales en este proceso son SORT -que ordena los datos de entrada-, MORE
-fracciona el contenido en pantallas para visualizarlos más cómodamente-, y FIND -que
sirve para localizar unos caracteres dentro de la información de entrada-. Estos comandos se
conocen como filtros del MS-DOS. Para hacer este direccionamiento con filtros se usa el
carácter | (ALT + 124), tal como se describe a continuación:
-- SORT: Este comando ordena la salida del proceso previo, utilizándolo como entrada,
y proporcionando la misma salida pero ordenada ascendentemente. Si se quiere
ordenar descendentemente se debe indicar con el parámetro /R. Si en vez de ordenar
por el primer carácter se quiere ordenar por el segundo o el quinto, se usará el
parámetro /2 ó /5. Por ejemplo, al ejecutar la orden

DIR | SORT

se obtiene como resultado el listado de los ficheros de la unidad o directorio raíz,


ordenador por orden alfabético ascendente y por el primer carácter. Si se quiere
ordenar por directorios y por ficheros, habría que ordenar por el carácter 10 -el
inmediato detrás del punto-. El efecto de la orden SORT es temporal y no afecta al
contenido de un fichero origen.
-- MORE: Este comando presenta la información de salida de un comando, como una
entrada para él, de manera que la procesa y la distribuye en grupos de 23 líneas, es
decir, para que quepan en una página del monitor, con lo que su lectura será más
cómoda. Por ejemplo, la orden

DIR | MORE

proporcionará un listado de directorios y ficheros del directorio raíz página a página


-con una pequeña pausa que se interrumpe pulsando una tecla-, cuando el listado tiene
más de 23 líneas.
-- FIND: Recibe como entrada un fichero, normalmente de texto, y, tras procesarlo,
proporciona como salida un fichero temporal que contiene las líneas del fichero
original donde se han encontrado el texto modelo. Por ejemplo, si se teclea

FIND “González” AGENDA.TXT

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 108 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

el resultado del proceso será un fichero de texto, que se mostrará por pantalla y que
contiene todas las líneas del fichero AGENDA que contienen la palabra González.

10 ÓRDENES BÁSICAS DEL MS-DOS

Comando Descripción Ejemplo


Attrib Permite ver y cambiar los Attrib /+r /-h MSDOS.SYS
atributos de un archivo Pone al archivo de sólo lectura y le quita el modo
oculto
Backup (*) Permite copias de seguridad de Backup C: A: /s
los archivos indicados Crea copia de seguridad de C: en A: copiando
subdirectorios también
Chdir o CD Permite acceder a un directorio CD C:\clientes\compras
Se accede al subdirectorio Compras del directorio
Clientes
Chkdsk Analiza el estado de una unidad Chkdsk C:\ /f
o de un fichero Analiza la unidad C:, detectando y corrigiendo
errores
Cls Limpia la pantalla No tiene parámetros
Copy Copia un fichero de un lugar a Copy agenda.txt C:\viejos\ag-98.txt
otro, o le cambia el nombre Copia el fichero agenda.txt al subdirectorio de
C:\Viejos y le da el nombre de ag-98.txt
Date Comprueba o especifica la
fecha del sistema
Delete Borra un fichero Del ag-96.txt
Dir Muestra el contenido de la ruta Dir C:\Viejos /p /o:e
de directorio especificada Da el contenido de este subdirectorio, separándolo
en pantallas, ordenados por su extensión
Diskcopy Copia un disquete en otro Diskcopy a: b:
Edit Pasa al editor del MS-DOS Edit agenda.txt
Pasa a editor del MS-DOS con un fichero con
nombre agenda.txt
Exit Comando de salida de DOS y
paso a Windows
Fdisk Configura el disco duro y sus
particiones
Find Encontrar una cadena de Find “José Ramón” agenda.txt
caracteres en un fichero
Format Formatea un disco duro o Format a: /s
disquete Formatea a: y le da los ficheros del sistema
Label Crea y/o modifica la etiqueta Label C:
del disco
Mem Informa de la gestión de Mem /f
memoria en el sistema Muestra áreas libres en convencional y superior

Memmaker (*) Configura la memoria RAM MD Clientes


Mkdir (MD) Crea un directorio en la raíz Dir C:\Clientes |More (ver apartado 9.1)
More Filtro que pagina información Move C:\agenda.txt a:\Clientes
Move Desplaza un fichero a la ruta Pasa agenda.txt al directorio clientes de A
especificada Msbackup C:\Clientes A:\
Msbackup Copia de seguridad de un
fichero o de un directorio Print /d:lpt1 agenda.txt

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 109 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Comando Descripción Ejemplo


Print Imprime un fichero Imprime en la impresora el fichero agenda.txt
Ver texto (apartado 7.1)
Prompt Establece la señal de espera del
sistema operativo REN agenda.txt agenda.scr
Rename REN Cambia el nombre de fichero Restore A: C: /s
Restore Reestablece una copia de Pasa la copia de A a C restaurando subdirectorios
seguridad en el sistema
Rmdir (RD) Borra un directorio RD Clientes
Sort Filtro que ordena una Sort agenda.txt (ver apartado 9.1)
información
Time Establece o modifica la hora del
sistema
Tree (*) Muestra la totalidad de la Tree C:\Clientes /f
información de un directorio Da subdirectorios y ficheros por debajo de Clientes
Type Muestra el contenido de un Type agenda.txt
fichero de texto
Undelete Recupera ficheros borrados en Undelete /dt
el directorio actual Recupera todos pidiendo conformidad
Unformat Recupera la información inicial Unformat C: /p
de un disco formateado Desformatea C enviando los mensajes a impresora
Ver Muestra la versión actual de
MS-DOS
Vol Muestra el contenido de la
etiqueta del disco
Xcopy Copia ficheros desde un Xcopy A: B: /s /e
directorio y sus Copia ficheros y subdirectorios, aunque estos estén
subdirectorios vaciós, creándolos si es necesario

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 110 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

Figura 9.1 – Configuración de la memoria RAM

 4.096 Mb
Memoria
máxima
386
486

Memoria
extendida
 16 Mb
Memoria
máxima
286

1.088 Kb Memoria alta


 1.024 Kb ROM-BIOS
Memoria
máxima 960 Kb Marco de página
8088 832 Kb de memoria expandida Memoria
8086 superior
768 Kb Memoria
de
vídeo
640 Kb
Libre

Residentes, AUTOEXEC.BAT
COMMAND.COM Memoria
convencional
Dispositivos de CONFIG.SYS
Parte del CONFIG.SYS
Núcleo de MS-DOS: IO.SYS y
MSDOS.SYS
Tabla de interrupciones y
características de arranque

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 111 de 16


1º Ciclos - Sistemas Operativos Multiusuario y en Red
Juan P. Benito

ÍNDICE ANALÍTICO

—A— monousuario, 2

Área de datos, 7 —W—


—D— Windows, 3

Directorio raíz, 7 —X—


DOS, 2
DR, 3 XENIX, 3
historia, 3
IBM, 3
MS, 2, 3
Novell 7.00, 3
núcleo, 5
PC, 2, 3

—F—
FAT, 7

—M—
Memoria
alta, 6
convencional, 5
de vídeo, 6
expandida, 6
RAM, 2
ROM, 2, 5
shadow, 6
superior, 5
MS-DOS
AUTOEXEC.BAT, 8
caracteres especiales, 9
COMMAND.COM, 8
CONFIG.SYS, 8
órdenes, 9
órdenes básicas, 13
órdenes, externas, 11
órdenes, internas, 10
órdenes, parámetros, 10
órdenes, sintaxis, 10
palabras reservadas, 11
redireccionamiento de entrada, 12
redireccionamiento de salida, 11

—O—
OS, 2
OS/2, 3

—S—
Sector de arranque, 7
Sistema operativo, 2
monopuesto, 4
monotarea, 4

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 112 de 16


1º Ciclos - SIMM
Juan P. Benito

Ciclos formativos
Sistemas Monousuario y Multiusuario

Unidad Didáctica 10 - DOS. Instalación y configuración

ÍNDICE

ÍNDICE 1

1 CONCEPTOS BÁSICOS 2

2 INSTALACIÓN 2
2.1 INSTALACIÓN REACTUALIZANDO VERSIONES PREVIAS 2
2.2 INSTALACIÓN NUEVA 3
2.2.1 Formateado de los discos duros 4
2.2.1.1 Formateo a bajo nivel 4
2.2.1.2 Formateo a alto nivel 4
2.2.2 Tabla de particiones 5
3 VARIABLES DE ENTORNO 5

4 FICHEROS BAT DE CONFIGURACIÓN 6


4.1 CONFIG.SYS 6
4.1.1 Configuración de la memoria RAM 9
4.1.2 Configuraciones múltiples de CONFIG.SYS 10
4.2 AUTOEXEC.BAT 11
ÍNDICE ALFABÉTICO 13

U.D. 10 - MSDOS, instalación y configuración, pág. 113 de 13


1º Ciclos - SIMM
Juan P. Benito

1 CONCEPTOS BÁSICOS

Variable: Se trata de un elemento de un sistema operativo que puede tomar diferentes valores según
cuáles sean las necesidades de instalación, configuración y funcionamiento del sistema.

Entorno: Se trata de un área de la memoria principal en la que se guarda la información concerniente a


la instalación, configuración y diversos parámetros de funcionamiento del sistema operativo tales
como rutas de acceso, “prompt”, intérpretes de teclado, número de ficheros abiertos
simultáneamente, etc. Es decir, se trata de un espacio de memoria dedicado a almacenar
información que tiene que ver con las condiciones de existencia y funcionamiento del sistema
operativo.
Es frecuente aplicar el término entorno al aspecto externo que presenta un sistema operativo en
cuanto a su instalación y configuración se refiere, es decir, variables y parámetros de
funcionamiento así como las condiciones para las que se instaló

Configuración: Es el acto de preparar un programa, proceso o aplicación para su uso según las
necesidades y requerimientos del usuario, o bien para el uso para el que ha sido diseñado. Para
proceder a ello se definen unas variables o parámetros de entorno a los cuales se les da los valores
más adecuados para conseguir ese fin.

2 INSTALACIÓN

Existen dos posibilidades en cuanto a la instalación del DOS en un equipo informático: que este
sistema operativo ya estuviera instalado previamente en él, o bien que el disco duro esté limpio, es
decir, que no contenga ninguna información ni ningún programa instalado en él. Se va a proceder a
describir la instalación para estos dos escenarios.

2.1 Instalación reactualizando versiones previas

En este caso se trata de instalar el sistema operativo de una versión existiendo la misma u otra anterior
en el disco duro del sistema.

Para proceder se introduce en la disquetera -o bien en el CD-ROM, según el caso- el disco de


instalación. Para localizarlo se hace un listado por pantalla del contenido de los disquetes mediante el
comando DIR del DOS previamente instalado. Normalmente este programa de instalación se
denomina INSTALAR.EXE y se suele encontrar en el primer disquete de la colección de discos del
DOS -o del CD-ROM-. Los discos que ocupa la versión 6.22 del MS-DOS son 3 o 4 según la
amplitud del sistema y según el modo de compresión de los ficheros en los discos.

Una vez introducido el fichero INSTALAR.EXE aparece en la pantalla del ordenador el asistente de
instalación que ofrece la posibilidad de actualizar la versión anterior o proceder a una instalación
nueva. Para este caso se pulsaría la opción de actualización. Esto supone que los ficheros que el MS-
DOS ya tiene instalados por la versión antigua y que son coincidentes con los que se encuentran en
los disquetes no se van a instalar, con lo que el proceso de instalación se verá considerablemente
reducido en cuanto a tiempo de sistema.

El MS-DOS analiza el sistema para detectar el hardware que lo constituye -fundamentalmente se


centra en el teclado, el monitor y la tarjeta gráfica, y el modo de señalización o ratón. Una vez que ha
confirmado con el usuario esos componentes procede a la instalación. Para ello utiliza el mismo
directorio existente en el sistema donde se encuentra ubicada la versión antigua del MS-DOS y
procede a la copia de ficheros desde los discos al disco duro.

U.D. 10 - MSDOS, instalación y configuración, pág. 114 de 13


1º Ciclos - SIMM
Juan P. Benito

Una vez terminada la transmisión de ficheros el asistente de instalación informa de la finalización de


ese proceso e indica la conveniencia -normalmente lo hace, aunque a veces no es necesario en el caso
de actualizaciones- de modificar ciertos parámetros de configuración en los ficheros CONFIG.SYS y
AUTOEXEC.BAT. Solicita la confirmación por parte del usuario para proceder a esas
modificaciones. Para ello, el MS-DOS reescribe parte de estos archivos y los guarda con los nombres
que tenían, renombrando las versiones anteriores mediante el mecanismo de mantener el nombre y
variar la extensión -por ejemplo, añadiéndoles la extensión OLD o la extensión 002-. Cada uno de
estos cuatro ficheros se almacena en la raíz del sistema

Una vez que estas modificaciones han sido realizadas, indica al usuario que la instalación ha sido
completada. Sin embargo, para que la nueva instalación tenga efecto y opere eficientemente, el
asistente señala la obligatoriedad de arrancar de nuevo el sistema -resetearlo, en argot- para que éste
lea los nuevos parámetros en los ficheros por lotes que se han mencionado antes.

Con la operación anteriormente descrita el proceso de instalación actualizando versiones previas se


encuentra finalizado. Sólo quedaría por parte del usuario comprobar la existencia de los ficheros
CONFIG.SYS y AUTOEXEC.BAT y de sus copias anteriores. Editar estos ficheros por pantalla e
imprimirlos para comparar las variaciones que han sufrido puede ser conveniente. Para ello se
aconseja, antes de proceder a la instalación, guardar una copia de los ficheros en otro directorio e
imprimirlos. En la copia impresa deberá señalarse la fecha y la hora -a no ser que estas operaciones se
hagan con frecuencia la hora no suele ser necesaria- para mantener un control de las versiones de MS-
DOS instaladas, los momentos de instalación, y los parámetros de configuración del sistema en cada
actualización. No mantener este orden acarrea pérdidas injustificadas de tiempo cuando un equipo
informático presenta problemas en un momento cualquiera de su vida operativa o tras un proceso de
actualización y hay que proceder a un análisis del mismo para detectar fallos y aportar soluciones.

Las copias impresas de estos ficheros, así como un disquete de sistema del equipo, deberá incluirse en
el expediente de vida de la máquina para mantener un seguimiento del sistema y de sus circunstancias
de trabajo. Este expediente incluirá copias de las facturas de compra y albaranes de recepción, datos
de los proveedores, actualizaciones de hardware del equipo con documentos similares, numeración del
equipo en la empresa, “propietario”, tipo de trabajo al que se le dedica, horas previstas de actividad,
sistemas operativos con sus instalaciones y actualizaciones, actualizaciones de software con los datos
relativos a condiciones de trabajo, modificaciones que implican estas aplicaciones en los ficheros
CONFIG.SYS y AUTOEXEC.BAT, averías, reparaciones, etc.

2.2 Instalación nueva

Se va a tomar como base un escenario en el que el equipo informático acaba de llegar del fabricante -o
del distribuidor- sin manipulaciones previas. Esto quiere decir que pueden darse dos circunstancias:
que el fabricante haya procedido a un formateo del disco duro para que llegue listo para soportar la
instalación de software, o bien que el disco duro llegue tal como salió de su fabricante, es decir,
limpio de cualquier estructura.

U.D. 10 - MSDOS, instalación y configuración, pág. 115 de 13


1º Ciclos - SIMM
Juan P. Benito

2.2.1 Formateado de los discos duros

Para hacer más completa la descripción de la instalación se va a partir del supuesto de que el disco
duro del ordenador no tiene ningún tipo de formateo, excepto el que viene de fábrica. A este respecto
es conveniente señalar que los discos duros pueden tener dos tipos de formateos: formateos a bajo
nivel y a alto nivel. La secuencia de trabajo sería la que sigue: formateo a bajo nivel, establecer la
tabla de particiones, y, por último, el formateo a alto nivel.

2.2.1.1 Formateo a bajo nivel

Consiste en darle estructura magnética a las caras de los discos que componen el disco duro. Es decir,
se trata de estructurar la capa magnética del disco de manera que se dispongan los sectores en las
diferentes pistas y se coloquen sus marcas de identificación inscribiendo un valor de magnetización
por defecto en todos los bytes de cada sector -normalmente se inscribe el valor F6 en cada byte de los
sectores-. De esta manera el programa que formatea comprueba si existen defectos físicos en los
discos. Si los encuentra, entonces marca en la FAT -tabla de localización de ficheros- la localización
del cluster y le señala como defectuoso para impedir su uso. Para realizar el formateo a bajo nivel se
pueden usar utilidades incluidas en paquetes como PCTools DeLuxe -HFORMAT y HDINIT-, las
correspondientes de NORTON; o el comando DEBUG de MS-DOS.

Para ello se teclea DEBUG inmediatamente detrás del prompt. Aparecerá un guión en el margen
izquierdo de la pantalla manteniendo una espera para la introducción de los comandos o parámetros
requeridos. En ese guión se tecleará

G=C800:5

que se utiliza para la mayoría de las controladoras MFM y SCSI. De esta manera se activa la BIOS de
la controladora y se inicia el formateo a bajo nivel siguiendo las instrucciones del programa. Suele
preguntar el nombre de la unidad de disco, el factor de intercalado -es el número de sectores que se
intercalan entre dos sectores lógicos consecutivos-, el número de cilindros y de cabezales, etc.

Si el comando que se escribe en el guión no inicia el formateo a bajo nivel -se puede probar con
G=C800:6 o G=C800:CCC- habrá que contactar con el fabricante del disco duro para que proporcione
la asistencia adecuada. Es normal que cada controladora de disco duro acompañe un manual o
información suficiente para este tipo de situaciones.

Si se procede a un formateo de bajo nivel sobre un disco duro que ya ha sido formateado previamente
por el fabricante se corre el riesgo de perder la estructura original y adquirir una estructura nueva que
sea difícilmente reconocible por el sistema operativo, o producir fallos de estructuración en el disco.

2.2.1.2 Formateo a alto nivel

El formateo a alto nivel pone toda la información necesaria sobre los clusters del disco duro y las
características del disco en el sector 0, tiene que tener inicializadas a 0 todas las posiciones de los
clusters en la FAT, cumplimenta la FAT y poner a 0 la información del directorio raíz. Es decir,
prepara el disco para recibir información y tenerla perfectamente localizada. Es normal que además de
formatear se pretenda que el disco duro posea el sistema operativo en su formato básico. Para ello se
deberán incluir en el sector 0 el registro de carga, situar los ficheros ocultos del MS-DOS al principio
de la zona de datos y copiar en el disco el COMMAND.COM -el intérprete de comandos-. Cuando se
hace un formateo a alto nivel del disco duro no se borra la información que contiene, sino que se
borran las referencias que al respecto existen en la FAT y las del directorio raíz. Este tipo de formateo
se lleva a cabo con la orden FORMAT del MS-DOS.

U.D. 10 - MSDOS, instalación y configuración, pág. 116 de 13


1º Ciclos - SIMM
Juan P. Benito

El formateo a alto nivel será necesario siempre que se haya realizado un formateo a bajo nivel, para
adecuar la estructura magnética del disco y establecer la tabla de localización de sectores para ubicar y
referenciar posteriormente la información.

2.2.2 Tabla de particiones

Normalmente, tras el formateo a bajo nivel hay que fijar la tabla de particiones del disco. Para ello se
utiliza el comando FDISK del MS-DOS. Este comando permite dividir el disco duro en varias
particiones. Esas particiones tendrán un tamaño máximo. En versiones anteriores a la 6.22 el MS-
DOS no puede gestionar particiones de tamaño superior a 2 Gb. En la versión 6.22 las particiones
pueden alcanzar un tamaño de hasta 4 Gb. En la versión 7.0 no existe límite de tamaño para las
particiones.

Al ejecutar FDISK aparece un menú con cuatro opciones que permite establecer el número de
particiones en el disco duro, cuál de ellas será la primaria y cuáles serán las alternativas, y el tamaño
de las mismas. Si se trabaja a FAT-16 -lo cual es lo más corriente en la mayoría de los ordenadores- el
disco duro se divide en segmentos de un tamaño de 32 Kb. Si se hace a FAT-32 se divide el disco en
segmentos de 4 Kb. En el primer caso se gana en rapidez dado que el número de segmentos a localizar
es menor. Sin embargo, se desperdicia espacio puesto que si se quiere guardar un fichero que tiene un
tamaño de 2 Kb. éste se ubica en un segmento de 32 Kb. no aprovechando el resto del espacio
disponible. Por contra, con una FAT-32 el número de segmentos aumenta considerablemente por lo
que la localización de los mismos se hace más lenta. Sin embargo, el aprovechamiento del espacio es
óptimo.

Para el caso de que se quiera aprovechar el disco duro para ejecutar programas que trabajan con dos
sistemas operativos -sería el caso de programas que necesitan un entorno DOS y programas en
entorno DOS y programas en entorno windows-, sería necesario realizar dos particiones en el disco
duro, con el tamaño que se estime adecuado para cada una de ellas. A cada partición se le asigna una
letra representativa de esa unidad -para ese caso serían dos unidades de disco duro, C y D-.
Posteriormente habría que proceder al formateo a alto nivel de cada una de las unidades. Por último se
procedería a la instalación del sistema operativo elegido para cada partición.

3 VARIABLES DE ENTORNO

Como se vio en conceptos básicos, se trata de establecer los parámetros -sus valores y estado de uso-
de funcionamiento y de configuración del MS-DOS, los cuales servirán para controlar el
funcionamiento de algunos archivos y programas, así como para controlar la apariencia y el
funcionamiento del propio sistema operativo.

Para ello se utiliza un comando -SET- con diferentes parámetros. El comando SET define, crea o
elimina las variables de entorno de MS-DOS. Su lugar de uso es en los ficheros por lotes
CONFIG.SYS y AUTOEXEC.BAT. Para el caso de que el usuario no recuerde como están
establecidas sus variables de entorno, se puede ejecutar el comando SET sin parámetros de uso sobre
la variable a analizar.

Entre las variables de entorno del DOS se encuentran: APPEND, COMSPEC, CONFIG,
MSDOSDATA, PATH, PROMPT, TEMP:

- APPEND: Almacena el conjunto de rutas para la búsqueda de ficheros. No es conveniente


usar este comando si se va a utilizar Windows o su programa de instalación

U.D. 10 - MSDOS, instalación y configuración, pág. 117 de 13


1º Ciclos - SIMM
Juan P. Benito

- COMSPEC: Sirve para indicar la ruta de localización del intérprete de comandos, el


COMMAND.COM. Es obligatoria y si no se declara, el CONFIG.SYS asume una ruta por
defecto, que suele coincidir con la raíz del sistema
- CONFIG: Es la variable que permite usar configuraciones múltiples en el CONFIG.SYS. Es
automática y manejada sólo por el sistema
- MSDOSDATA: La usan los programas antivirus de Windows para conocer dónde se
encuentran los ficheros MSAV.INI y MWAV.INI. Es una variable de las denominadas de
usuario
- PATH: Almacena el conjunto de rutas para la localización de programas que se van a ejecutar
(observar la diferencia con APPEND). Es automática y tomará un valor por defecto si no se
declara
- PROMPT: Es una variable automática que gestiona el sistema directamente. Establece el texto
de espera del sistema en la pantalla en modo comandos. Por defecto tomará el valor $p$g
- TEMP: Indique el directorio en el cual se van a almacenar los ficheros temporales que se
crean en la ejecución de muchos programas, sobre todo de los de carácter gráfico. También
es una variables de usuario

4 FICHEROS BAT DE CONFIGURACIÓN

Son ficheros que almacenan parámetros de funcionamiento y de configuración, de forma que cada vez
que se conecta el equipo y se carga el sistema operativo, éste se configura según los deseos del
usuario. Para eso, al arrancar el sistema los ficheros BAT -también denominados ficheros por lotes-
nombrados como CONFIG.SYS y AUTOEXEC.BAT se ejecutan colocando en activo los parámetros
de configuración que almacenan.

Se va a describir dichos ficheros y parámetros de configuración, dejando la descripción de los ficheros


BAT y su confección para la unidad didáctica siguiente.

4.1 CONFIG.SYS

Se trata de un fichero que se ejecuta al arranque del MS-DOS, una vez que se han cargado los
archivos ocultos del sistema y antes de que se cargue el COMMAND.COM. Indica qué dispositivos
tiene el sistema y/o cómo se quiere que funcionen, la memoria RAM disponible y cómo se va a usar,
y los caracteres que van a aparecer en el uso del teclado y del monitor. Para el caso de que no exista
este fichero en la raíz del ordenador cuando el sistema lo busca, el MS-DOS asume los valores de los
parámetros por defecto. Como el resto de los ficheros BAT se construye con un editor de texto -por
ejemplo, el EDIT o el EDLIN del MS-DOS- sin formatos, es decir, en código ASCII (ver siguiente
unidad).

Las órdenes que incorpora son exclusivas de este fichero y no se pueden ejecutar desde el prompt del
sistema, a excepción de tres de ellas: BREAK, REM y SET. Además este fichero puede incluir
comandos que son exclusivos para él y que tienen que ver con configuraciones múltiples del sistema,
como es el caso de INCLUDE, MENUCOLOR, MENUDEFAULT, MENUITEM (ver Tabla 10.1).

U.D. 10 - MSDOS, instalación y configuración, pág. 118 de 13


1º Ciclos - SIMM
Juan P. Benito

Tabla 10.1 - Listado de comandos que forman parte del CONFIG.SYS y una breve descripción

Comando Función
BREAK Activar o desactivar la función de la combinación de teclas CTRL+C
BUFFERS Establece el número de memorias intermedias para lectura y escritura de discos
COUNTRY Define formatos para fecha, hora, moneda y separadores decimales
DEVICE Instala el controlador -o driver- del dispositivo que se especifica
DEVICEHIGH Ídem, pero lo instala en el área de memoria superior
DOS Carga parte del DOS en el área de memoria superior
DRIVPARM Define parámetros de dispositivos anulando las originales del fabricante
FCBS Indica el número de archivos que pueden abrirse simultáneamente usando FCB
FILES Indica cuántos archivos pueden abrirse a la vez y a los cuales puede llamar el DOS
INSTALL Ejecuta ciertos comandos del DOS
LASTDRIVE Establece el número máximo de unidades a las que tener acceso
MENUCOLOR Fija el color del fondo para el menú de configuración
MENUDEFAUL Define opción por defecto para el menú de configuración
T
MENUITEM Define cada elemento del menú de opciones de configuración
NUMLOCK Especifica si el teclado numérico (BOLQ NUM) está inicialmente activo o no
REM Permite introducir comentarios en el fichero, o bien anular comandos
SET Estable el valor que van a tener las variables de entorno
SHELL Señala el intérprete de comandos que se usará. Por defecto COMMAND.COM
STACKS Señala la memoria reservada para el procesamiento de las interrupciones hardware
SUBMENU Define los elementos del menú que presentarán otro juego de opciones

Además aparecen caracteres especiales como ; (punto y coma) que al principio de una línea señala a
ésta como un comentario y no se ejecutará. El carácter ?, escrito antes del signo =, indica a MS-DOS
que antes de ejecutarse una opción deberá pedirse confirmación al usuario. Por otro lado, los
dispositivos -o sus controladores- instalables en el CONFIG.SYS son los que aparecen en la Tabla
10.2.

Tabla 10.2 - Controladores de dispositivos instalables en el CONFIG.SYS

Fichero Función
ANSI.SYS Carga las secuencias de escape ANSI para control de funciones gráficas y de
movimientos del cursor
DISPLAY.SYS Carga las páginas de códigos para el monitor
DRIVER.SYS Controla unidades de disco externas
EMM386.SYS Emula la existencia de una memoria expandida usada a partir de la extendida, y
proporciona acceso a la parte de memoria superior
HIMEM.SYS Permite el acceso a la memoria extendida y a la memoria alta (HMA)
PRINTER.SYS Soporta las páginas de código para los puertos paralelo (LPT1, LPT2 y LPT3)
RAMDRIVE.SYS Permite utilizar parte de la memoria RAM como disco RAM o virtual
SMARTDRV.SYS Crea memoria caché para el disco duro, usando para ello memoria extendida
VDISK.SYS Permite el uso de parte de la memoria RAM como disco virtual o disco RAM

Un cambio en alguna de las líneas que constituyen el CONFIG.SYS no implica un cambio en el


sistema dado que este fichero sólo se carga cuando se arranca el sistema, por lo que se hace necesario,
si queremos que los cambios tengan lugar, que se reinicie el sistema.

A continuación se incluyen algunas tablas que proporcionan información sobre los valores más
adecuados para algunos de los parámetros del CONFIG.SYS.

U.D. 10 - MSDOS, instalación y configuración, pág. 119 de 13


1º Ciclos - SIMM
Juan P. Benito

Tabla 10.3 - Valor por defecto de BUFFERS y comentarios


Sistema Buffers
Sistema base 2
Unidad de disco flexible 3
128 a 255 Kb. de RAM 5
256 a 511 Kb. de RAM 10
512 Kb. de RAM o más 15
Número óptimo recomendado por Microsoft
Discos entre 40 y 80 Mb. 30
Discos entre 80 y 120 Mb. 40
Discos mayores de 120 Mb. 50
Cada BUFFER gasta una cantidad de memoria RAM entorno a los 528 b.
Las direcciones de memoria están entre 0 y 640 Kb. por lo que consumen
memoria directa de usuario. Sin embargo, cuanta más memoria se
dedique a intercambio de datos, más rápidas correrán las aplicaciones. En
este sentido, es favorable para los programas de gestión de datos
Cuando en los sistemas hay memoria caché, los buffers se pueden reducir
considerablemente. Por ejemplo, se puede pasar de un número de buffers
de 50 a 10 para 512 Kb. de memoria caché

Tabla 10.4 - Archivos abiertos simultáneamente por tipo de programa


Aplicación Files
De especiales requerimientos de datos y 30 o más
búsqueda de registros
Bases de datos entre 15 y 25
Programas gráficos entre 10 y 15
Programas de cálculo 10
Programas de texto 10
Cada archivo reservado consume 48 b. de memoria RAM
Los cinco primeros que se reservan los dedica MS-DOS a operaciones con el
teclado, dispositivos auxiliares e impresora

Tabla 10.5 - Tamaños más adecuados para los discos virtuales


Memoria RAM total Disco virtual
Menos de 6 Mb. 0
Entre 6 y 8 Mb. 1 Mb.
Entre 8 y 12 Mb. 2 Mb.
Más de 12 Mb. 4 Mb.
El uso de un disco virtual es en todo similar al de un disco duro, pero
desaparecerá al apagar el ordenador
El comando es RAMDRIVE.SYS (VDISK.SYS para versiones anteriores a
la 3.20).
Una utilización frecuente es usar el disco virtual como almacén de ficheros
temporales, lo que se establecerá en el CONFIG.SYS

Tabla 10.6 - Tamaños mínimo y máximos para SMARTDRV según la memoria extendida

Total memoria extendida Tamaño mínimo Tamaño máximo

U.D. 10 - MSDOS, instalación y configuración, pág. 120 de 13


1º Ciclos - SIMM
Juan P. Benito

Hasta 1 Mb. 0 Toda la memoria extendida


Entre 1 y 2 Mb. 256 Kb. 1 Mb.
Entre 2 y 4 Mb. 512 Kb. 1 Mb.
Entre 4 y 8 Mb. 1 Mb. 2 Mb.
Más de 8 Mb. 2 Mb. 2 Mb.
Se trata de un controlador de memoria caché de disco
Viene incorporado en el MS-DOS, pero programas como Windows, instalan su propio controlador
Algunos programas son incompatibles con el uso de este controlador, por lo que habrá que
desactivarlo para ejecutarlos. Para ello bastará escribir REM en la línea correspondiente del
CONFIG.SYS y reiniciar el sistema para establecerlo así

Tabla 10.7 - Memoria RAM ocupada por la instalación de ciertos comandos del CONFIG.SYS

Comando Memoria ocupada


BUFFERS 500 b. por buffer
LASTDRIVE 100 b. por letra
EMM386 80 Kb.
SMARTDRV 15 Kb. o más
FASTOPEN 48 b. por fichero

4.1.1 Configuración de la memoria RAM

La memoria RAM es la que utilizan todos los programas para ejecutarse. esto implica que a mayor
memoria RAM libre, mayor velocidad en el procesamiento de los programas. En este sentido se va a
buscar siempre, como objetivo, que se libere la mayor cantidad posible de memoria convencional.
Esto que parece fácil de decir, es algo más complicado y puede presentar variantes según el uso que se
le vaya a dar al equipo informático.

En general el comando MEM de MS-DOS proporciona información general y detallada de la


situación de uso de los distintos segmentos de memoria RAM por los comandos y programas de MS-
DOS. A partir de ahí podré estimar si puedo liberar mayor memoria convencional -los primeros 640
Kb.- para mejorar la gestión. Unas pautas generales pueden ser:

- No es conveniente instalar un disco RAM a no ser que sea necesario. Destinar esa memoria
RAM a caché -por medio de los comandos SMARTDRV y FASTOPEN- incrementa la
velocidad del sistema. Convendrá instalar un disco RAM siempre que se disponga de
memoria RAM de sobra, o por que no se disponga de disco duro o éste sea muy pequeño o
éste esté muy saturado, o bien porque se ejecuten aplicaciones que utilicen un elevado
número de archivos temporales
- No es conveniente instalar un emulador de memoria expandida -EMM386- a no ser que
existan programas que la utilicen expresamente
- Si se dispone de poca memoria RAM no es conveniente la instalación de muchos
controladores y dispositivos, pues aunque no se usen, la memoria RAM queda consumida.
Sería mejor concentrar todos los recursos de mejora en un sólo aspecto

En general se pueden presentar dos grandes casos: por un lado el uso de aplicaciones o programas que
funcionan en entorno DOS, con lo que nos interesará liberar memoria convencional y acelerar el
sistema en la medida de lo posible. Por otro lado, el uso de programas en entorno Windows, con lo
que interesará liberar la mayor cantidad de memoria expandida posible.

U.D. 10 - MSDOS, instalación y configuración, pág. 121 de 13


1º Ciclos - SIMM
Juan P. Benito

El incremento de la memoria convencional se puede hacer de dos modos: automáticamente o


manualmente. El primer sistema se basa en el uso de una utilidad de MS-DOS denominada
MEMMAKER que reconstruye automáticamente los ficheros CONFIG.SYS y AUTOEXEC.BAT de
manera que la memoria convencional liberada sea la máxima posible.

De manera manual las fases se resumen en los siguientes cuatro pasos: activar el controlador de
memoria extendida y de memoria alta, cargar el DOS en la memoria alta, crear los bloques de
memoria superior -más conocidos como UMB-, y cargar los controladores de dispositivos en la
memoria superior.

En cualquier caso, y tras haber intentado la mejora de la memoria convencional, es conveniente


ejecutar el comando MEM para comprobar el estado de la memoria convencional. Siempre que los
usuarios no sean especialmente conocedores de su sistema o no tengan muy claro qué tipo de
necesidades o requerimientos de memoria exige su sistema y su uso, es recomendable el uso de la
utilidad MEMMAKER.

4.1.2 Configuraciones múltiples de CONFIG.SYS

A partir de la versión 6.20 de MS-DOS es posible construir el CONFIG.SYS. para que sirva para
proporcionar varias configuraciones posibles del sistema seleccionándolas desde menús.

Para ello se divide el CONFIG.SYS en bloques de instrucciones. Cada bloque va encabezado por una
etiqueta escrita con mayúsculas y encerrada entre corchetes, etiqueta que hace las veces del nombre de
la configuración -como el nombre de una subrutina o subprograma-. Existen dos tipos de bloques.
bloques de órdenes, y bloques de menús.

Los bloques de menús están encabezados por la palabra MENU entre corchetes. Las órdenes serán del
tipo MENUITEM, indicando las distintas opciones del menú de configuración.

[MENU
MENUITEM = COMPILACOBOL, para compilación de cobol
MENUITEM = NORMAL, trabajo corriente
MENUCOLOR = 15, 1
MENUDEFAULT = NORMAL, 20

Es decir, se trata de un menú que da a elegir una configuración para trabajar con compilaciones de
programas COBOL o trabajar en modo normal. El fondo del menú será de color azul (1), mientras que
las letras serán de color blanco (15). En el caso de que pasen 20 segundos sin elegir opción, el sistema
asumirá por defecto la segunda opción.

Los bloques de órdenes están encabezados por la misma palabra que figura en los MENUITEM de los
bloques de menús. Debajo de ellas se inscriben las instrucciones correspondientes a esa configuración

[COMPILACOBOL
FILES = 40
BUFFERS = 20
DEVICE = C:\DOS\RAMDRIVE.SYS

[NORMAL
FILES = 25
BUFFERS = 10

U.D. 10 - MSDOS, instalación y configuración, pág. 122 de 13


1º Ciclos - SIMM
Juan P. Benito

Hay ocasiones en que algunas de las variables y sus valores son comunes para distintos escenarios de
configuración. En ese caso lo que se hace es crear un bloque común, o COMMON, etiquetado con esa
palabra, y en el que se van a incluir las variables y sus valores comunes para cualquier parte del
CONFIG.SYS. Por otro lado, si lo que se quiere es que se incluyan los parámetros de un bloque en
otro, se utilizará el comando INCLUDE seguido del nombre del bloque al que se quiere referenciar:

[MENU
MENUITEM = WINDOWS
MENUITEM = RED
MENUITEM = CAD

[COMMON
FILES = 40
BUFFERS = 20

[WINDOWS
DEVICE = C:\WINDOWS\HIMEN.SYS

[RED
INCLUDE = WINDOWS
DOS = HIGH

[CAD
DEVICE = C:\DOS\MOUSE.SYS

4.2 AUTOEXEC.BAT

Se trata de un fichero por lotes que debe situarse en el directorio raíz del sistema. El MS-DOS, cuando
arranca, leerá este fichero y lo ejecutará en último lugar de su secuencia de arranque. Para el caso de
que este fichero no exista, el DOS ejecuta los tres comandos básicos DATE, TIME y VER, y pasa el
control al usuario mostrando el prompt del sistema.

Este fichero se encargará de establecer multitud de variables que van a establecer el modo de trabajo
de DOS y van a permitir que se ejecuten ciertos programas (ver Tabla 10.8)

U.D. 10 - MSDOS, instalación y configuración, pág. 123 de 13


1º Ciclos - SIMM
Juan P. Benito

Tabla 10.8 - Comandos que se incluyen en el AUTOEXEC.BAT

Comando Función
ASSIGN Asigna una letra de unidad a otra unidad diferente
DATE Visualiza y modifica la fecha del sistema
DOSKEY Activa un buffer de teclado para almacenar las últimas líneas de comandos
DOSSHELL Activa un intérprete de MS-DOS diferente al COMMAND.COM
ECHO Evita la confirmación por pantalla de los comandos del DOS
FASTOPEN Reduce el tiempo de apertura de los ficheros y directorios más utilizados
GRAFTABL Permite la edición de caracteres gráficos en una tarjeta CGA
GRAPHICS Permite la impresión de una pantalla utilizando el modo gráfico anterior
JOIN Asocia una unidad de disco con una ruta de acceso determinada
KEYB Selecciona un teclado por país determinado
MODE Configura los puertos serie (COM), paralelo (LPT), monitor y teclado
NLSFUNC Carga información específica para un país concreto
PATH Define la ruta de búsqueda de un comando, si no está en el por defecto
PROMPT Cambia el indicador de comandos
SET Define las variables de entorno para su posterior uso por los programas
SHARE Instala software para permitir compartir o bloquear ficheros
SUBST Sustituye una expresión por una ruta de acceso
TIME Visualiza y modifica la hora del sistema

Además, por la construcción de las líneas adecuadas y su inserción en el fichero AUTOEXEC.BAT


se puede establecer la carga automática de ciertos programas cuando arranca el sistema operativo.

U.D. 10 - MSDOS, instalación y configuración, pág. 124 de 13


1º Ciclos - SIMM
Juan P. Benito

ÍNDICE ALFABÉTICO

—A— Formateado, 4
Formateo
Archivo alto nivel, 4, 5
reservado, 8 bajo nivel, 4
AUTOEXEC.BAT, 3, 5, 6
—I—
—B—
Instalación, 2
BUFFER, 8 actualización, 2
nueva, 3
—C—
—M—
CONFIG.SYS, 3, 5, 6
Configuración, 2 MEM, 9
Controladores, 7 MEMMAKER, 10
Memoria
expandida, 9
—D— extendida, 9
DEBUG, 4 RAM, 9
Disco
RAM, 8 —R—
Disco duro
unidades, 5 RAMDRIVE, 8
Disco RAM, 9
—S—
—E—
SET, 5
Entorno, 2 SMARTDRV, 9

—F— —T—
FAT, 4 Tabla de particiones, 5
-16, 5
-32, 5
FDISK, 5
—V—
Ficheros BAT, 6 Variable, 2
Ficheros por lotes. Véase Ficheros BAT Variables
FORMAT, 5 de entorno, 5

Ciclos formativos – 1º ASI


Sistemas Informáticos Monousuario y Multiusuario

Unidad Didáctica 11 - DOS. Programación. Utilidades. Seguridad

ÍNDICE

ÍNDICE

1 CONCEPTOS BÁSICOS

2 FICHEROS POR LOTES


2.1 CONSTRUCCIÓN DE UN FICHERO BAT
2.2 EJECUCIÓN DE UN FICHERO POR LOTES
2.3 COMANDOS E INSTRUCCIONES
2.4 PARÁMETROS DE USO EN FICHEROS BAT

U.D. 10 - MSDOS, instalación y configuración, pág. 125 de 13


1º Ciclos - SIMM
Juan P. Benito

3 PROGRAMACIÓN

4 SEGURIDAD EN MS-DOS
4.1 ATRIBUTOS DE FICHEROS Y DE DIRECTORIOS
4.2 COPIAS DE SEGURIDAD
4.2.1 Opciones de archivo de especificaciones
4.3 RESTAURACIÓN DE COPIAS DE SEGURIDAD
5 ANTIVIRUS
5.1 MEDIDAS BÁSICAS
5.2 UTILIDAD ANTIVIRUS
ÍNDICE ALFABÉTICO

U.D. 10 - MSDOS, instalación y configuración, pág. 126 de 13


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

1 CONCEPTOS BÁSICOS

Programa: Un conjunto de sentencias que pueden dirigirse a y tratarse por un sistema informático para
controlar la conducta de ese sistema en función de unos resultados que se esperan conseguir en
base a unos requerimientos de usuario. Puede ser procedimental, con lo que el programa especifica
el procedimiento que se debe seguir para que el sistema consiga los resultados requeridos. El
programa será no procedimental si especifica los contenidos y márgenes de los resultados a obtener
pero no aclara cómo se debe trabajar para llegar a ellos.

Proceso “batch”: Originalmente se trataba de un método para organizar el trabajo en un sistema,


diseñado para reducir atascos a base de agrupar trabajos similares. Cada batch requiere un
compilador específico, el cual se carga una vez, y los trabajos se tratan por el compilador
secuencialmente. Si un trabajo falla con el compilador, no formará parte del proceso. El ejecutable
resultante carga los trabajos secuencialmente presentando sus resultados también secuencialmente.
Se utilizaba a menudo para trabajar con cintas magnéticas que requerían ese tipo de acceso
secuencial.
En la actualidad se refiere a procesos, casi siempre construidos por el usuario, para agrupar
trabajos o programas que se van a cargar secuencialmente por el sistema de forma que se ejecutan
sin intervención directa del usuario. De esa manera el usuario puede automatizar su carga sin tener
que estar pendiente del desarrollo de los trabajos.

Seguridad: Se define por tal la prevención y protección contra acceso a o destrucción de información
ante usuarios no autorizados o inintencionadamente. Los conceptos de seguridad, privacidad e
integridad están relacionados. Para esta unidad se refiere a modificaciones y pérdidas de
información, así como a la posibilidad de perder el acceso que se tenía a ella. Así, la seguridad
como tal se refiere frente a otros usuarios y a virus informáticos.
Para situarla adecuadamente debe seguirse en todo sistema, sobre todo si son grandes, un
modelo de seguridad, que consiste en la especificación detallada de las características de seguridad
que deben proporcionarse a un sistema: organigramas de acceso, relaciones de permiso y de
prohibición, situaciones que deben reflejarse en un informe de auditoría informática, así como el
establecimiento de un sistema de vigilancia y restauración de seguridad.
Un sistema de vigilancia y restauración contendrá un conjunto de medidas, casi siempre
operativas, con el objetivo de defender un sistema frente a posibles alteraciones de la seguridad.
Debe contener el modo en que se inserta en el modelo de seguridad, así como las relaciones con
los controles físicos y la seguridad del personal. Por ejemplo, determinará la forma en que se
dispondrán las claves de acceso, los criterios para las auditorías de seguridad, acceso del personal,
etc.

Utilidad: Es el programa que forma parte de un sistema informático y proporciona una variedad de
funciones generales orientadas a cubrir necesidades del usuario. Por extensión se denomina
utilidad también a algunos módulos de aplicaciones o de programas que realizan operaciones o
facilidades concretas. Es el caso del programa antivirus de MS-DOS.

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 127 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

2 FICHEROS POR LOTES

En el sistema operativo se aprecia la capacidad de manejo de tres tipos principales de ficheros: los
EXE, los COM y los BAT, aparte de otros relacionados con el sistema como las librerías -DLL-, los
ficheros de texto -TXT-, los del sistema -SYS-, y los de datos -DAT-. Los tres ficheros principales
son los denominados ejecutables por el sistema. Mientras los archivos EXE y COM corresponden con
programas o comandos, los ficheros BAT corresponden con procesos automatizados por y para el
sistema.

Un fichero BAT se denomina también fichero o proceso batch o fichero por lotes o proceso por
lotes. Se construye con el editor de textos del DOS -ya sea EDLIN o EDIT- o bien con cualquier
editor de textos que los almacene en forma sólo texto o ASCII. Las instrucciones que figuran en él se
leerán y se ejecutarán secuencialmente según su posición en el fichero. Esto proporciona la ventaja de
la ejecución automática de esas instrucciones sin intervención directa del usuario.

Por ejemplo, para el caso en que un usuario desee copiar ficheros de texto, que elabora con un
procesador en C:\WINWORD\DOC, en un directorio que se llame \PROYECTO\DOCUS situado en
la unidad D:. Para ello debería teclear

CD C:\WINWORD\DOC
COPY MEMORIA.DOC D:\PROYECTO\DOCUS
D:\PROYECTO\DOCUS
DIR

De esta manera copia el fichero deseado en el directorio de la unidad D destino y situándose luego
en él, ejecuta un DIR para comprobar que se encuentra allí efectivamente. Sin embargo, esas mismas
instrucciones pueden insertarse en un fichero por lotes -al que se le puede llamar COPIA.BAT- para
que se ejecuten a la vez al llamar al fichero y realice el procedimiento automáticamente:

REM COPIA.BAT
CD C:\WINWORD\DOC
COPY %1.DOC D:\PROYECTO\DOCUS
D:\PROYECTO\DOCUS
CLS
DIR

Para ejecutar un fichero BAT basta escribir su nombre sin la extensión. Tienen la particularidad de
que si no se escribe su nombre, como pasa con otros comandos del DOS, no se ejecutan. Por otro
lado, un fichero BAT al que se le cambia la extensión por otra -por caso, TXT- no se ejecutará al
escribir el nombre.

Los ficheros por lotes tienen la funcionalidad fundamental de colaborar en la configuración de


instalación y funcionamiento del sistema. Hay dos de ellos que se cargan automáticamente al iniciar el
sistema: el CONFIG.SYS y el AUTOEXEC.BAT.

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 128 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

2.1 Construcción de un fichero BAT

Para proceder a su elaboración, en primer lugar se carga un editor de textos ASCII o un procesador de
textos que tenga la opción de guardar los ficheros en formato “sólo texto”. Por ejemplo, para el caso
del editor del DOS, se procedería de la siguiente forma:

EDIT PPPP.BAT

con lo que se abrirá el editor de textos del DOS con una hoja en blanco y con el nombre del fichero de
trabajo ya determinado: PPPP.BAT. La apertura del fichero para su edición se hace en el directorio en
el que se encuentra el usuario en ese momento.

En la margen izquierda, donde se sitúa el cursor, se escriben las líneas de texto que incluyen los
comandos que se quieren ejecutar de manera automática. Normalmente, por motivos de claridad, se
suele incluir un comando u orden por línea. Asimismo es conveniente incluir comentarios que ayuden
a comprender el funcionamiento y los objetivos de ese fichero por lotes para el caso de que lo consulte
un usuario diferente. Las sentencias, como en cualquier lenguaje procedimental, se pueden clasificar
en: órdenes secuenciales, de bifurcación (IF), órdenes de bucles o repetitivas (FOR), pausas (PAUSE)
y direccionamientos (GO TO).

Además del editor del DOS se puede utilizar el editor de línea denominado EDLIN proporcionado
también dentro de MS-DOS, aunque es menos conveniente que el anterior. En el caso de que no se
quiera utilizar un editor de estas características se puede recurrir a procesadores de textos -tales como
WORD o WORDPERFECT- pero teniendo cuidado en grabar el fichero en formato “sólo texto”.

Un método alternativo es utilizar la funcionalidad de un comando del DOS llamado DOSKEY .


Este comando pone en activo un buffer que almacena las últimas órdenes efectuadas desde la línea de
comandos del sistema. Tiene un parámetro que se llama HISTORY que proporciona las que están
guardadas en el buffer, siendo la última la más reciente. De este modo, ejecutando

DOSKEY /h >> PPPP.BAT

se obtiene como salida la lista de órdenes almacenadas en el buffer y se dirige a un fichero que se
llamará PPPP.BAT. Sólo queda escribir esas órdenes en la línea del prompt. Cuando estén todas las
que el usuario desea, aplicar el comando DOSKEY tal como se ha detallado y se obtiene un fichero
por lotes que contiene todas esas órdenes. Para vaciar el buffer y proceder a un nuevo llenado se
presionan conjuntamente las teclas ALT+F7.

2.2 Ejecución de un fichero por lotes

Para ello lo único que hay que hacer escribir en la línea de órdenes del sistema el nombre del fichero
por lotes pero sin escribir la extensión. Por ejemplo, siguiendo con el ejemplo del punto anterior, sería

PPPP

Además del nombre del fichero habrá que escribir los parámetros que sean necesarios para el
funcionamiento del fichero, así como la ruta deseada de trabajo, directorios, etc. La ejecución puede
interrumpirse en cualquier momento por presión conjunta de las teclas CTRL+C. También usando la
combinación CTRL+BREAK, y si el sistema tiene activada la opción BREAK en el CONFIG.SYS
pedirá confirmación antes de proceder a la interrupción.

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 129 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

2.3 Comandos e instrucciones

En general, dentro de un fichero por lotes, puede usarse cualquier comando que sea propio del MS-
DOS. Sin embargo, existe una serie de instrucciones y parámetros que son exclusivos de este tipo de
ficheros (ver Tabla 12.1).

Tabla 12.1 - Comandos de uso en ficheros BAT

COMANDOS Descripción
@ Evita que la ejecución de una instrucción ocasione un eco en pantalla
CALL Llama a otro fichero BAT y devuelve a la siguiente línea al terminar éste
CHOICE Permite la aceptación de opciones por parte del sistema desde un fichero BAT
ECHO Activa o desactiva la devolución de los datos por la pantalla
FOR Para repetir aplicaciones de comandos bajo ciertas condiciones
GO TO Desvía la ejecución de comandos a una determinada instrucción
IF Permite la ejecución condicional de comandos
IF ERRORLEVEL Para ejecutar un comando según cuál sea el resultado del comando anterior
IF NOT Se ejecuta un comando si no se cumple una determinada condición
IF EXIST Se ejecuta un comando si existe un determinado fichero en el disco
PAUSE Interrumpe la ejecución del fichero BAT hasta que se pulsa una tecla
REM Anula una instrucción a añade un comentario al fichero

- @: Al comienzo de una línea evita el eco de los comandos que están incluidos en ella
- CALL: Llama a un fichero BAT desde otro. Cuando el segundo fichero BAT ha terminado,
devuelve el control de la ejecución a la siguiente línea del primer fichero BAT. Su formato
es el siguiente:

CALL [unidad: [ruta nombre-de-archivo [parámetros-lotes

donde el nombre de archivo debe serlo de un fichero BAT. Los parámetros son los que
requiera el fichero por lotes requerido.
- CHOICE: Permite hacer una selección entre varias de ellas y detiene la ejecución a la espera
de la elección. Su formato es el siguiente:

CHOICE [/C[:teclas [/N [/S [/T[:c,nn [texto

donde el primer parámetro especifica las teclas permitidas en el símbolo del sistema,
separadas por comas, y entre corchetes (si no se especifica /C, entonces tomará como tecla
por defecto la S); /N evita que aparezca el símbolo del sistema, aunque sí aparecerá el texto
elegido; /S obliga a distinguir entre mayúsculas y minúsculas; /T[:c,nn indica que cuando
pasen nn segundos sin una elección el sistema tomará por defecto la elección c, la cual debe
estar entre las elegidas al inicio del comando CHOICE
- ECHO: Se trata de un comando únicamente aplicable a ficheros BAT. Su misión es impedir
que se presente en pantalla el eco de la ejecución de los comandos que están presentes en el
fichero BAT. Su inclusión suele ser al inicio del fichero BAT para incluir a todos los
comandos de él:

@ECHO OFF

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 130 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

Esta línea evita que todos los comandos que están por debajo de ella se reflejen en la
pantalla mientras se ejecutan. La “arroba” al principio impide que el propio comando ECHO
se muestre en pantalla también.
- FOR: Repite un comando o una secuencia de ellos sobre un conjunto de archivos. El formato
a aplicar sería el siguiente:

FOR %%Variable IN (conjunto) DO comando [parámetros-del-comando

donde %%Variable representa el nombre de una variable reemplazable sucesivamente por


los valores que se incluyen en el grupo (conjunto); (conjunto) es una lista de nombres de
archivo que se asignarán a la variable, donde esa lista se puede indicar utilizando comodines
y asteriscos y separando los elementos de la lista por comas o espacios; y comando es un
comando del MS-DOS que es el que va a repetir la operación con los parámetros indicados.
Por ejemplo, en vez de mostrar en pantalla el contenido de los ficheros de texto que
tengo en el directorio raíz pantalla a pantalla, se puede utilizar

FOR %%n IN (*.TXT) DO TYPE %%n /p

o bien, para borrar todos los ficheros que tengan terminaciones OBJ y MAP se haría

FOR %%f IN (*.OBJ *.MAP) DO DEL %%f

o para encontrar un determinado texto en cualquiera de los ficheros de texto que existen en
el directorio raíz se haría de la siguiente manera

FOR %%T IN (*.TXT) DO FIND /Y “Control de calidad” %%T


- GOTO: Esta orden, seguida de una etiqueta, dirige el control del flujo de ejecución a la línea
que comienza con esa etiqueta precedida de :, es decir, normalmente salta la ejecución desde
una instrucción a otra determinada. Normalmente se aplica junto con el comando IF ya que
el salto de línea suele ir asociado a la elección de opciones (ver siguiente instrucción).
- IF: Permite tomar decisiones y, por lo tanto, establecer bifurcaciones. Su formato es

IF [NOT cadena1 = = cadena2 COMANDO


IF [NOT EXIST nombre-de-archivo COMANDO

Para ello se suele combinar con la instrucción GO TO. Por ejemplo

CLS
IF “%1” = = “ “ GOTO FIN
IF NOT EXIST %1 GOTO ERROR
COPY %1 a:\ /v
GOTO FIN
:ERROR
ECHO Fichero no encontrado
:FIN
ECHO Fin del proceso

es un fichero por lotes que limpia la pantalla, compara la cadena nombre del fichero con el
carácter nulo y si devuelve verdadero dirige la ejecución a la línea con la etiqueta :FIN,
verifica si existe el fichero y si no existe devuelve un valor verdadero y dirige la ejecución a
la instrucción que comienza con :ERROR, y si las dos condiciones anteriores no se han
cumplido entonces copia el fichero al directorio raíz de A: con verificación. ECHO muestra
en pantalla el texto que le sigue. Aquí se ha explicado también el funcionamiento de IF NOT
y IF EXIST (ver Tabla 12.1)

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 131 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

- IF ERRORLEVEL: Esta instrucción se basa en el código de salida que devuelve el MS-DOS


tras la ejecución de algunos programas o comandos, y que indican el motivo por el cual el
programa ha finalizado. Sólo hay unas cuantas órdenes del MS-DOS que devuelven un
código de salida: BACKUP, DISKCOMP, DISKCOPY, FORMAT, KEYB, RESTORE,
SETVER, y XCOPY (ver Tabla 12.2). El formato de la instrucción sería como sigue:

IF ERRORLEVEL número comando

número el valor que se va a comparar con el código de error emitido por el comando,
resultando verdadero si es el mismo o mayor; y comando la orden del MS-DOS que se
ejecuta.

Tabla 12.2 - Códigos de errores más habituales con los comandos del MS-DOS

Comando Cód. de error Descripción


0 Copia con éxito
BACKUP 2 Copia incompleta
3 Copia interrumpida por el usuario con CTRL+C
4 Error fatal. Copia incompleta
DISKCOMP 0 Comparación correcta. Discos idénticos
1 No se pudo hacer la comparación. Discos distintos
2 Comparación interrumpida por CTRL+C
3 Error de soporte físico. Error de disco
DISKCOPY 0 Copia de disco correcta
2 Copia interrumpida con CTRL+C
3 Copia no correcta, error de disco fatal
FORMAT 0 Formateo satisfactorio
3 Formateo incompleto. Se ha pulsado CTRL+C
5 El usuario ha contestado N
KEYB 0 Operación llevada a cabo con éxito
1 Sintaxis incorrecta
2 El archivo que define el teclado falta o es incorrecto
6 No se encontró la página de códigos seleccionada
RESTORE 0 Operación con éxito
1 No se encuentran los archivos
3 Operación interrumpida con CTRL+C
4 Error fatal. Restore incompleto
XCOPY 0 La copia ha finalizado con éxito
2 Copia interrumpida con CTRL+C
4 Memoria insuficiente, disco no válido, o no se encuentra la ruta
5 Error de lectura o escritura en el disco

Por ejemplo, un proceso que realice el formateo de la unidad A: incorporando al terminar


los ficheros del sistema, y que señala terminación completada con éxito, terminación
incompleta debido al usuario, y terminación incompleta debido a un error -si bien no señala
si el error es debido al disco, por ejemplo-, sería como se muestra seguidamente:

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 132 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

FORMAT A: /S
IF ERRORLEVEL 5 GOTO USUARIO
IF ERRORLEVEL 4 GOTO ERROR
IF ERRORLEVEL 3 GOTO USUARIO
ECHO Disco formateado
GOTO FIN
:USUARIO
ECHO Operación cancelada por el usuario
:ERROR
ECHO Se ha producido un error
:FIN

- PAUSE: Se trata de un comando que suspende la ejecución de un fichero BAT hasta que se
pulse una tecla cualquiera por parte del usuario, generando en pantalla un aviso: presione
cualquier tecla para continuar... Se suele usar para establecer pausas en el visionado de las
pantallas, para marcar un tiempo necesario para introducir un disquete en la unidad
correspondiente, etc. A continuación de este comando se puede introducir un comentario, e
incluso un pitido de advertencia; por ejemplo:

ECHO OFF
PAUSE ^G[Alt+7Por favor, inserte el disquete en la unidad A:
DIR A:\ /w
- REM: Ayuda a documentar los procesos BAT introduciendo comentarios, o bien anula la
instrucción que se encuentra tras él en la misma línea

Sólo queda señalar que comandos habituales de ficheros BAT, como es el caso de DATE, TIME y,
sobre todo, PROMPT, ya se han explicado en la unidad didáctica anterior y no necesitan más
comentarios. Existe una tabla de códigos de PROMPT en esa unidad con la sintaxis adecuada para
trabajar con ese comando.

2.4 Parámetros de uso en ficheros BAT

Se trata de parámetros reemplazables, es decir, un conjunto de caracteres que representan un


parámetro y que pueden tomar cualquier valor dentro de los indicados en un conjunto, o bien entre los
indicados en el llamado del fichero BAT.

Existen 10 parámetros, los que van desde %0 hasta %9. El primero de ellos representa rutas de
acceso a ficheros, comandos o programas; los otros 9 parámetros sirven para representar los propios
ficheros o comandos.

Se utiliza el doble porcentaje con una letra, es decir, %%L, para señalar una variable de texto que
se escribe en el interior de un fichero por lotes -ya que si se escribiera desde la línea de comandos del
sistema, se escribiría con un sólo porcentaje, %-. Normalmente se usa dentro de las instrucciones FOR
para señalar variables de texto, como es el caso de los nombres de ficheros. Por ejemplo:

FOR %%A (INF?.TXT) DO TYPE %%A | MORE

busca todos los ficheros que comiencen con INF seguidos de una letra y la terminación TXT y los
muestra en pantalla con un filtro de modo que aparece el contenido que cabe en una pantalla cada vez.

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 133 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

3 PROGRAMACIÓN

Se trata de la creación de pequeños programas para cubrir rutinas o necesidades específicas del
sistema informático. Estos pequeños programas se construyen utilizando el lenguaje ensamblador.
Para la mayoría de las rutinas cortas que se necesitan bastan con seis comandos básicos de
ensamblador (los cuales se muestran y describen en la Tabla 12.3). Más tarde los programas
construidos se depuran y compilan con la utilidad DEBUG de MS-DOS produciendo ficheros con la
terminación COM.

Para proceder a la construcción de estos pequeños programas será necesario conocer las
interrupciones del DOS y de la BIOS (las cuales se muestran en la Tabla 12.4 y en la Tabla 12.5).
Estas interrupciones son las que posibilitan cierta interactividad entre el sistema y el usuario.

Tabla 12.3 - Instrucciones básicas de ensamblador y su significado

Comando Significado
CMP Compara dos valores, pudiendo ser estos números, los contenidos de sendos
registros, o los contenidos de distintas posiciones de memoria
INT Activa una interrupción (ver Tabla 11.4)
JMP Permite el salto a una dirección
JZ Salta a una instrucción si dos valores previos resultan idénticos
JNZ Es el caso opuesto al anterior, es decir, salta si son diferentes
MOV Transfiere un byte a una dirección de memoria

Tabla 12.4 - Interrupciones de la BIOS

Servicio al que afectan Cód. interrupción Consecuencia


INT 10H Servicios de la pantalla de vídeo
INT 13H Servicios de disco
Dispositivos de periféricos INT 14H Servicio de comunicaciones (RS232)
INT 15H Servicios de cinta
INT 16H Servicios de teclado
INT 17H Servicios de impresora
De estado del equipo INT 11H Servicios de lista de elementos del equipo
INT 12H Servicios de cálculo del tamaño de la memoria
De fecha y hora INT 1AH Servicios de reloj
De la pantalla de impresión INT 5H Impresión de pantalla
Especiales INT 18H Activación del BASIC de la ROM
INT 19H Activa la rutina de arranque del ordenador

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 134 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

Tabla 12.5 - Interrupciones de MS-DOS y consecuencias

Código Significado
INT 20H Termina un programa, libera la memoria ocupada y devuelve el control al DOS
INT 21H 0 Termina un programa y devuelve el control al DOS. Como INT 20H
Debiendo colocar 2 Salida a la pantalla
en el registro AH el 3/4 Entrada/Salida por el puerto serie
número de la 5 Salida a la impresora
función, siendo las 6 E/S directa a pantalla
más importantes: 7 Entrada directa de carácter sin eco
1/8 Entrada de carácter con/sin eco
9 Visualización de una cadena de caracteres
10 Entrada desde el teclado
12 Borra registro de entrada y procede a una entrada de datos
13 Resetear la unidad de disco
15/16 Abrir/Cerrar fichero
17 Búsqueda del primer fichero
18 Búsqueda del próximo fichero
19/22 Borrar/Crear fichero
20/21 Leer/Escribir en un fichero de acceso secuencial
23 Renombrar un fichero
33/34 Leer/Escribir en un fichero de acceso aleatorio
35 Cálculo del tamaño de un fichero
42/43 Obtener/Fijar la fecha
44/45 Obtener/Fijar la hora
INT 22H Dirección de terminación a la que se manda el control al acabar el programa
INT 23H Es la dirección de la rutina que se ejecuta cuando se pulsa CTRL+BREAK
INT 24H Es la dirección de la rutina que se ejecuta cuando se presentan errores críticos
INT 25H Lectura directa de sectores de disco
INT 26H Escritura directa de sectores de disco
INT 27H Termina un programa y devuelve el control al DOS pero sin sacarlo de memoria.
Es la que usan los programas residentes y los virus informáticos

Con la utilidad DEBUG del MS-DOS se pueden ver los vectores de interrupción. Al salir el
prompt del DEBUG se debe teclear D 0:0 y aparecerán los primeros 128 octetos que se corresponden
con los 32 primeros vectores. Cada vector está representado por 4 octetos: los dos primeros para el
offset, y los dos siguientes indican el segmento. Para salir del prompt de DEBUG basta introducir Q.

Por otra parte, las interrupciones hardware pueden ser de dos tipos: interrupciones internas e
interrupciones externas. Las primeras, también llamadas interrupciones lógicas, son llamadas por el
microprocesador cuando se produce alguna operación incorrecta, como es el caso cuando se produce
una operación que intenta dividir por 0.

Las interrupciones hardware externas son llamadas por los distintos dispositivos periféricos del
sistema. Cada dispositivo tiene acceso a una línea de petición de interrupción diferente (ver Tabla
11.6). Estas líneas se llaman IRQ -del inglés Interrupt Request Line-. Los ordenadores superiores a los
286 tienen 16 IRQ, desde la IRQ0 a la IRQ15. Los dispositivos activan su línea correspondiente
cuando requieren atención por parte del microprocesador.

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 135 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

Tabla 11.6 - Interrupciones hardware externas y dispositivos asociados

Código Asociación Código Asociación


IRQ 0 Reloj del sistema IRQ 8 Reloj en tiempo real
IRQ 1 Teclado IRQ 9 Redirección cascada IRQ2
IRQ 2 Para ampliar las IRQ IRQ 10 Reservada
IRQ 3 COM2 y COM4 IRQ 11 Reservada
IRQ 4 COM1 y COM3 IRQ 12 Ratón modo PS/2 o reservada
IRQ 5 LPT2 IRQ 13 Excepción coprocesador287
IRQ 6 Unidad de discos flexibles IRQ 14 Reservada o disco duro
IRQ 7 LPT1 IRQ 15 Disco duro o reservada

Antes de comenzar con la programación conviene recordar cómo obtener la ayuda de DEBUG.
Para ello se escribe en el prompt del MS-DOS DEBUG. Aparecerá el prompt de esta utilidad, -.
Detrás se escribe el signo ? y ENTER. Aparecerá un listado de órdenes de DEBUG y una nota sobre
su significado. Para salir de la ayuda se escribe en el prompt Q y ENTER, volviendo al prompt del
MS-DOS.

Como ejemplo de programa en MS-DOS se va a construir una rutina llamada PITIDO.COM que
va a emitir un pitido al escribir su nombre. El pitido se produce cuando el sistema intenta sacar por
pantalla el carácter ASCII 7. Se escribe DEBUG y al aparecer el prompt se escribe a continuación A
100. Esto quiere decir que se van a introducir mandatos en ensamblador a partir de la dirección de
memoria 100, cuyo offset es 0100. Siendo xxxx cualquier cifra dependiendo del desplazamiento con
el que esté trabajando el programa. MOV AH, 2 significa que se traslada el valor 2 en el registro AH,
el cual se corresponde con un valor de la interrupción 21 que se llama más adelante. MOV DL, 7,
cuando se active la interrupción 21, mostrará en pantalla el contenido del registro DL. Al acabar, para
devolver el control al MS-DOS se ejecuta la función 4C (76 en decimal) de la interrupción 21, lo que
se hace colocando el valor 4C en el registro AH y activando la interrupción 21:

A 100
xxxx:0100 MOV AH, 2
xxxx:0102 MOV DL, 7
xxxx:0104 INT 21
xxxx:0106 MOV AH, 4C
xxxx:0108 INT 21
xxxx:010A

Para guardar el programa en el disco, tras el prompt de DEBUG se teclea -N C:\PITIDO.COM

Después hay que fijar la longitud del fichero, con lo que se llama a la función CX. Enseguida
aparecerá la raíz CX con cuatro ceros (0000), y dos puntos en la línea siguiente. Es tras esos dos
puntos donde teclearemos el valor hexadecimal A (10 en decimal). Tras esto hay que indicarle a
DEBUG que escriba el fichero en el disco, para lo que se utiliza la función W, que escribe y devuelve
el prompt de DEBUG. Para salir de DEBUG se teclea Q y ENTER:

-R CX
-CX 0000
:A
-W
Escribiendo A bytes
-Q

Tras todo esto, sólo queda teclear en el prompt del directorio por defecto de MS-DOS el comando
PITIDO, con lo que se escuchará un sonido.
U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 136 de 20
1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

Otra rutina, para guardar el valor de una tecla pulsada, sería la siguiente -TECLA.COM-:

xxxx:0100 MOV AL, 8


xxxx:0102 INT 21
xxxx:0104 MOV AH, 4C
xxxx:0106 INT 21
xxxx:0108
-N C:\tecla.com
-R CX
CX 0000
:8
-W
Escribiendo 0008 bytes
-Q

Para este caso, el valor 8 de la interrupción 21 espera la introducción de un carácter por el teclado,
guardando el valor ASCII de la tecla pulsada en el registro AL. En este registro es en el que va a leer
la función ERRORLEVEL de MS-DOS, con lo que se pueden crear opciones en un fichero BAT para
que el usuario elija. Sería así:

@ECHO OFF
:BUCLE
CLS
ECHO Elija opción
ECHO Opción 1
ECHO Opción 2
ECHO Opción 3
TECLA
IF ERRORLEVEL 52 GOTO BUCLE
IF ERRORLEVEL 51 GOTO OP-3
IF ERRORLEVEL 50 GOTO OP-2
IF ERRORLEVEL 49 GOTO OP-1
GOTO BUCLE
:OP-3
ECHO Aquí va la opción 3
GOTO FIN
:OP-2
ECHO Aquí va la opción 2
GOTO FIN
:OP-1
ECHO Aquí va la opción 1
GOTO FIN
:FIN

La rutina TECLA.COM puede variarse para que acepte determinado código de teclas, por ejemplo,
las teclas S o N:

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 137 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

- A 100
xxxx:0100 MOV AH, 8
xxxx:0102 INT 21
xxxx:0104 CMP AL, 53
xxxx:0106 JZ 0116
xxxx:0108 CMP AL, 73
xxxx:010A JZ 0116
xxxx:010C CMP AL, 4E
xxxx:010E JZ 011A
xxxx:0110 CMP AL, 6E
xxxx:0112 JZ 011A
xxxx:0114 JMP 0100
xxxx:0116 MOV AH, 01
xxxx:0118 JMP 011C
xxxx:011A MOV AL, 00
xxxx:011C MOV AH, 4C
xxxx:011E INT 21
xxxx:0120
-N C:\TECLA.COM
R CX
CX 0000
: 20
-W
Escribiendo 0020 bytes
-Q

Los números 53, 73, 4E y 6E son los códigos ASCII (en hexadecimal) de las teclas S, s, N, n,
respectivamente. El programa espera la pulsión de una tecla y compara el valor introducido con
alguno de los anteriores y, en caso de que coincida alguno, devuelve un 1 como ERRORLEVEL -si se
pulsó S o s-, o devuelve un 0 -y se pulsó N o n-. Si no es así, vuelve a empezar de nuevo esperando la
pulsión de una tecla.

4 SEGURIDAD EN MS-DOS

Se refiere a la manera de asegurar la integridad de la información almacenada en los discos del


sistema, así como a obtener una seguridad paralela vía la obtención de copias de seguridad. Para ello
hay dos mecanismos básicos: la manipulación de ficheros y de sus atributos, y la obtención de copias
de seguridad.

4.1 Atributos de ficheros y de directorios

Cuando se crea un fichero DOS MS-DOS le asigna una fecha, una hora -de creación- y un atributo.
Este atributo es el que marca el estado del fichero en términos de seguridad. Cada fichero puede tener
4 atributos y cualquiera de ellos puede estar activado o no. Los atributos son:

- Atributo oculto, H: Si este atributo se activa, el fichero correspondiente no aparece ante


órdenes normales de DIR, por ejemplo. Es decir, aparece invisible a las órdenes del DOS,
tales como DEL o COPY. La orden DIR, sin embargo, con los atributos /A, permite mostrar
los atributos de los ficheros. El parámetro /H muestra los que se marcan como ocultos -H
viene del inglés hidden-.

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 138 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

Esta medida de seguridad permite hacer desaparecer ficheros ante otros usuarios, aunque
sí mostrará su contenido ante una orden TYPE, o bien se ejecutará si se escribe su nombre y
es ejecutable.
- Atributo de sistema, S: Identifica los ficheros del sistema -del inglés system-, como es el caso
de IO.SYS y MS-DOS.SYS, requeridos por el DOS en el momento del arranque. Cuando
tienen este atributo activado poseen las mismas características que los anteriores, aunque no
se pueden ejecutar aunque se escriba su nombre y sean ejecutables.
- Atributo de sólo lectura, R: Impide que la información de un fichero sea modificable por un
usuario, permitiendo MS-DOS el acceso para leer -del inglés Read only- pero no para
modificar o borrar. Además estos ficheros no se pueden borrar.
- Atributo de archivo, A: Asegura la información pues permite saber cuándo ha sido modificado
el archivo. Siempre que se crea un archivo se le asocia este parámetro con lo que si se deja
desactivado y, más tarde, vuelve a aparecer activado, es que algún otro usuario lo ha
modificado.

Para poder examinar los atributos de un fichero se usa el comando ATTRIB, según:

ATTRIB [nombre-fichero[símbolos de los atributos

donde si se escribe este comando sin parámetros se visualizan los archivos y sus parámetros si están
en el directorio activo; nombre-fichero indica de cuál de los ficheros quiero saber información; y los
símbolos son los caracteres que representan cada a los atributos de los ficheros. Si los símbolos van
precedidos del signo - es que se van a desactivar, y si les precede el signo + es que se van a activar.

Si se desean conocer los atributos de los ficheros que están en el directorio activo y en los
subdirectorios de nivel inferior, deberá ejecutarse la orden ATTRIB con el parámetro /s.

Para modificar los atributos se usa la orden ATTRIB con los modificadores correspondientes. Por
ejemplo, al hacer el comando ATTRIB del directorio por defecto se obtiene:

SHR C:\IO.SYS
SHR C:\MS-DOS.SYS
A R C:\COMMAND.COM
ASHR C:\DRVSPAE.BIN
ASHR C:\DBLSPACE.BIN
ASH C:\386SPART.PAR
A C:\CONFIG.SYS
A C:\AUTOEXEC.BAT

Desde aquí, para modificar los atributos de DRVSPACE.BIN asociándole sólo lectura, sería

ATTRIB DRVSPACE.BIN -s -h

También se pueden modificar los atributos para un conjunto de archivos, de la forma:

ATTRIB *.BIN -s

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 139 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

4.2 Copias de seguridad

Para trata el tema de las copias de seguridad MS-DOS dispone de una utilidad que se llama
MSBACKUP. Esta utilidad permite generar una copia de seguridad de todos los ficheros que se
encuentran en el disco duro, o de una parte de ellos. El formato de esta orden sería como sigue:

MSBACKUP [archivo-de-especificaciones

donde [archivo-de-especificaciones indica el fichero donde se señalan las condiciones que deben
cumplir los archivos de los que se va a hacer copia de seguridad.

Por ejemplo, el motivo más frecuente para generar copias de seguridad es salvaguardar la
información para el caso de pérdidas masivas de ella en el disco duro debido a diferentes motivos,
como fallos del disco, borrados accidentales, formateos indebidos, virus informático, etc. Para
solventarlo se suelen hacer copias de seguridad periódicas -en la mayoría de las empresas medianas y
grandes se suelen hacer cada semana, por ejemplo, los viernes- y, para evitar errores, se suelen copiar
los archivos que han sido modificados desde la última copia de seguridad.

En general siempre será asegurarse de la correcta instalación de esta utilidad de MS-DOS y de su


adecuación al sistema informático. Para ello habrá que poner en funcionamiento el programa de
configuración de MSBACKUP. En esta configuración aparecen opciones relativas al vídeo, los
dispositivos de copia y, muy importante, la prueba de compatibilidad. Ésta tiene como objetivo
garantizar que el equipo responde bien a las copias de seguridad que se hagan. En este caso el
programa compara una copia real del propio programa con una preestablecida por software. Para ello
se necesitan un poco de tiempo y unos cuantos disquetes.

4.2.1 Opciones de archivo de especificaciones

Este archivo tiene extensión SET. Si no existe ninguno MSBACKUP utiliza el archivo por defecto
DEFAULT.SET. Las opciones que se permite utilizar en el archivo de especificaciones son: unidades
de las que se va a hacer copia, medio en el que se hará -disquetes, cinta,...-, archivos de los que se
hará la copia, tipo de copia de seguridad a hacer, y opciones del cuadro de diálogo “opciones”. Se
pueden crear hasta 50 archivos de especificaciones. Las opciones serán:

- Opciones de copiar
-- Verificar datos (leer y comparar): En Windows es la opción “Verificar copias”. Esta
opción compara los datos copiados con los originales, aumentando la fiabilidad del
proceso pero incrementando el tiempo del mismo
-- Comprimir datos: Que en Windows es “Comprimir copias”. Es un proceso simultáneo
de compresión para reducir el espacio necesario para la copia
-- Proteger grupos de copias con contraseña: Que en Windows es “Protección con
contraseña”. Solicitará una palabra clave para acceder a copiar, comparar o restaurar
-- Aviso de sobreescritura de disquetes ocupados: “Que en Windows es “Confirmación
antes de sobreescribr disquetes usados”
-- Dar formato a los disquetes siempre: Igual en Windows. Si está activada esta opción
formateará siempre. Si no, sólo lo hará si los disquetes están en mal estado o tienen
errores
-- Usar corrección de errores en disquetes: Que en Windows es “Usar corrección de
errores”. El programa introduce una serie de códigos de errores, o ECC, que permitan
la recuperación de la información ante deterioro de los disquetes. Con esta opción se
ocupa un 10 % más de espacio de disco
-- Conservar catálogos antiguos: Que en Windows es “Guardar catálogos antiguos”.
Catálogos que se generan cada vez que se hace una copia de seguridad utilizando un

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 140 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

archivo de especificaciones. Los nombres de los catálogos tienen 8 caracteres: 2


letras, 5 números y otra letra. Cada uno de ellos tiene un significado, por lo que es
conveniente consultar un manual o un libro antes de proceder a utilizar MSBAKUP.
Las terminaciones son tres letras: DIF, FUL, e INC.
-- Avisos sonoros: Que en Windows es “Señales acústicas”, que aparecen cada vez que se
muestra un mensaje de aviso en la pantalla
-- Salir después de copiar: Igual en Windows
- Opciones de comparar
-- Avisos sonoros: Que en Windows es “Señales acústicas”
-- Salir después de comparar
- Opciones de restaurar
-- Verificar al restaurar (leer y comparar): Que en Windows es “Verificar archivos
restaurados”, que compara los datos restaurados con los de la copia
-- Confirmar antes de crear directorios: Igual que en Windows. A veces, al restaurar,
alguno o todos los directorios no existen y el programa los creará
-- Confirmar antes de crear archivos: En Windows es igual. Si esta opción está
desactivada, antes de sobreescribir en un archivo preexistente pedirá confirmación al
usuario
-- Restaurar directorios vacíos: En Windows es igual. Si está desactivada y aparecen
directorios vacíos, estos no serán restaurados
-- Avisos sonoros: En Windows “Señales acústicas”
-- Salir después de restaurar: Como en Windows

4.3 Restauración de copias de seguridad

Se trata de restaurar los ficheros y directorios de seguridad en el disco duro del sistema. Para ello se
usará la orden RESTORE. Su sintaxis es como se muestra:

RESTORE unidad-1: unidad-2:[archivos

donde unidad-1 señala al disco o dispositivo que contiene la copia de seguridad; unidad-2:[archivos
señala el dispositivo donde se van a restaurar los archivos que se especifican. Conviene destacar que
la restauración de archivos implica la reescritura de los archivos que existen en el disco duro.

Los parámetros de que dispone este comando de MS-DOS son:

- /s: Restaura la totalidad de archivos y directorios


- /d: Muestra una lista de archivos coincidentes entre el disco de seguridad y los nombres
especificados para restaurar
- /m: Restaura los archivos modificados o borrados desde la última copia de seguridad
- /n: Repone sólo los archivos que son distintos entre el disco seguridad y el receptor
- /a: Restaura todos los archivos modificados desde una fecha concreta
- /b: Restaura los archivos modificados hasta una fecha determinada
- /e: Ídem que el anterior pero refiriéndose a una hora dada
- /l: Restaura los archivos desde una hora determinada en una fecha dada

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 141 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

Otra posibilidad de RESTORE es la restauración de uno o más archivos, tecleando:

RESTORE A: C:\DOS\*.EXE

o bien restaurar archivos posteriores al 16 de abril de 1999 y anteriores al 19 de abril de 1999

RESTORE A: C:\*.* /s /b:19-04-99 /a:16-04-99

Hay que tener en cuenta que la restauración de un archivo hay que realizarlo en el mismo
directorio del que procedía y, si hay varios disquetes implicados, comenzar siempre por el disquete de
copia número 1 -a no ser que se hayan apuntado en las etiquetas el nombre de los archivos a restaurar
si no se quiere hacer todo el proceso global-. Sólo queda destacar que los archivos ocultos del sistema,
es decir MSDOS.SYS e IO.SYS no se pueden restaurar.

En las últimas versiones de MS-DOS la función RESTORE ha sido incluida en la función


MSBACKUP, con lo que resulta más amigable la utilización de estos dos comandos. Por otra parte,
Windows-95 y Windows-98 incluyen un programa para llevar a cabo estas utilidades (Mi-PC 
Propiedades  Herramientas  Realizar copia de seguridad).

5 ANTIVIRUS

Se puede definir un virus informático como un segmento de código, es decir, un trozo de programa,
que se intercala dentro de otros programas y puede llegara tomar el control efectivo del sistema
operativo. Tienen la capacidad de replicarse e insertarse dentro de otros programas.

La forma en que los virus entran dentro de un sistema informático es por medio de los disquetes
mediante los cuales introducimos información o programas en el equipo, y mediante las
comunicaciones, ya sea vía módem o ya por conexión a Internet.

Los efectos de los virus son diversos. Pueden destruir archivos ejecutables, archivos de texto, la
raíz, la tabla de localización de archivos -FAT-, ralentizan las operaciones, aparecen textos en pantalla
paralizándose la actividad del equipo mientras tanto, aparecen gráficos móviles o manchas en pantalla,
formatean el disco duro, infectan las macros de los programas como las bases de datos y las hojas de
cálculo afectando a toda la aplicación,...

Los que afectan al BOOT o sector 0 del disco duro sustituyen el programa de arranque del DOS
sito en este sector por uno de carga del propio virus. Posteriormente el programa del virus y el de
arranque del DOS original se localizan en sectores marcados como defectuosos en la FAT para que no
puedan ser detectados fácilmente por el usuario.

Los virus que contaminan los ficheros COM -como es el caso del COMMAND.COM-, insertan el
programa del virus al principio o al final de estos ficheros, y sustituyen los primeros 3 bytes del
mismo por la llamada al código del virus. Otras veces, cuando el virus es de cierto tamaño, se oculta
en el interior del código de un fichero oculto y utiliza un fichero COM para hacer una llamada a éste.

Por último, los virus que contaminan los ficheros EXE son los más difíciles de crear y los más
difíciles de eliminar. El virus se instala al final del fichero y realiza los cambios en la cabecera de
manera que la primera instrucción a ejecutar sea una llamada a la carga del propio virus.

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 142 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

5.1 Medidas básicas

Hay una serie de medidas preventivas antes de estudiar las medidas curativas. Estas son:

- Uso de programas originales: La difusión de copias de programas de aplicación, de juegos,


etc., es la causante de la expansión rápida de lo virus. Esto supone un mayor costo pero evita
el contagio y da la posibilidad de contactar con el fabricante en caso de infección para que
aporte sugerencias sobre la eliminación del intruso. Esto es especialmente aplicable cuando
se trabaja con redes de área local
- Proteger contra escritura los disquetes que no se vayan a usar como trasvase de información.
Esta medida es sencilla pues consiste en desplazar una cejilla que se encuentra en la parte
inferior de los disquetes
- Antivirus: Antes de ejecutar cualquier programa conviene pasar éste por un análisis de virus
con una utilidad al efecto. Existen programas no muy caros, además de programas freeware
y programas shareware de bajo costo (ver además lo explicado en la primera medida
preventiva)
- Copias de seguridad: La realización de copias de seguridad periódicas proporciona una
información segura si en un momento dado se descubre un virus en el sistema, perdiendo
sólo la información que no se haya guardado desde el último BACKUP
- Chequeos periódicos: Aplicar un antivirus cada cierto tiempo para analizar el sistema
- Utilizar un antivirus en modo residente: Este método instala el antivirus en el programa de
arranque del DOS con lo que el antivirus permanece cargado en memoria continuamente.
Esto es importante cuando se trabaja con mucho intercambio de información o cuando se
establecen comunicaciones frecuentemente
- Tarjetas antivirus: Tienen la función de detectar la alteración de ficheros COM, EXE y SYS,
la modificación del sector de arranque, los programas que intentan quedarse residentes, la
modificación de atributos de sólo lectura de ficheros, así como la alteración de los datos de
memoria de CMOS-RAM. Como ventaja: no ocupan casi nada de memoria RAM, permiten
establecer una palabra clave, y pueden trabajar en redes de área local. Como desventajas:
resultan caras cuando se trata de una red de cierto número de ordenadores, hay que
instalarlas en los equipos, y son difíciles de actualizar.

5.2 Utilidad antivirus

Los programas antivirus son utilidades, casi siempre en modo gráfico, que permiten la detección de
los virus en un sistema informático, su eliminación, y, en muchos casos, la protección del equipo.
Estos programas suelen tener cuatro tipos de funciones, incorporando una o varias de ellas: detección
-encuentra los virus, los localiza y alerta al usuario sobre ello para que tome medidas-, reparación
-eliminan los virus encontrados dejando los ficheros infectados en su estado original-, protección
-función residente en memoria que paraliza un procedimiento si detecta la entrada de un posible virus
en el sistema y da un mensaje de alarma-, y vacunación -añadiendo un código a los ficheros
ejecutables para que cuando éste se cargue realice una autocomprobación-.

MS-DOS incorpora, a partir de la versión 6.20, un programa antivirus denominado MSAV. Esta
utilidad tiene dos programas fundamentales: SCAN y CLEAN. El programa SCAN analiza el sistema
para detectar virus residentes, o si están presentes en algún programa. CLEAN elimina los virus
encontrados con SAN y proporciona información sobre él.

La sintaxis a aplicar para este programa es la siguiente:

MSAV [unidad:

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 143 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

donde unidad: es la unidad que MSAV va a analizar. Si no se indica, MSAV buscará los virus en la
unidad actual. Los parámetros que acepta son:

- /s: Busca los virus pero no elimina los virus detectados


- /c: No sólo detecta los virus sino que los elimina
- /r: MSAV creará un fichero MSAV.RPT que informará de los ficheros analizados, los virus
que se han detectado y los que fueron eliminados. MSAV no crea este informe por defecto

MSAV trabaja en modo pantalla gráfica y permite, entre otras funciones, analizar la unidad
especificada y muestra una estadística sobre ficheros analizados, virus detectados y eliminados; limpia
los ficheros infectados por los virus; y permite algunas opciones como verificar la integridad, crear
nuevos totales de verificación, crear un informe, etc.

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 144 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

Índice alfabético

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 145 de 20


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

—#— —G—
@, 5 GO TO, 4
GOTO, 6
—%—
—I—
%, 8
IF, 4, 6
ERRORLEVEL, 7, 12
—A— EXIST, 6
Antivirus NOT, 6
modo residente. Véase Interrupciones
tarjetas, 18 de la BIOS, 9
utilidad, 18 de MS-DOS, 10
ATTRIB, 14 hardware, 10
AUTOEXEC.BAT, 3 IRQ. Véase Interrupciones
hardware

—B—
—M—
BACKUP, 18
BOOT, 17 MSAV, 19
informe, 19
parámetros, 19
—C— MSBACKUP, 15, 17
MSBAKUP, 16
CALL, 5
CHOICE, 5
Código ASCII, 13 —P—
COMMAND.COM, 17
CONFIG.SYS, 3 PAUSE, 4, 8
Copia de seguridad Proceso
catálogos, 16 batch, 2
Copias de seguridad, 15, 18 Programa, 2
COPY, 13 no procedimental, 2
procedimental, 2
PROMPT, 8
—D—
DATE, 8 —R—
DEBUG, 9, 10, 11
DEL, 13 REM, 8
DIR, 13 RESTORE, 16
DOSKEY, 4
—S—
—E— Seguridad, 2
ECHO, 5 modelo de, 2
EDIT, 4 Seguridad.
Editor sistema de vigilancia y
del DOS, 3. Véase EDIT restauración, 2
EDLIN, 4
Ensamblador, 9 —T—
TIME, 8
—F— TYPE, 14
FAT, 17
Fichero —U—
atributos, 13
por lotes. Véase Fichero BAT Utilidad, 2
Fichero BAT, 3
ejecución, 4 —V—
Fichero DOS, 13
FOR, 4, 6 Virus informático, 17

U. D. 3 - Componentes lógicos de un ordenador, pág. 146 de 23


1º Ciclos - Sistemas Operativos Monousuario y Multiusuario
Juan P. Benito

U. D. 3 - Componentes lógicos de un ordenador, pág. 147 de 23

Potrebbero piacerti anche