226

Click here to load reader

Algo de Sist

Embed Size (px)

Citation preview

Page 1: Algo de Sist

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

Ciclos formativosSistemas 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............................................................................................................................... 33.2 TIPOS DE DATOS...................................................................................................................................... 43.3 REPRESENTACIÓN DE LOS DATOS.............................................................................................................. 43.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..................................................................................................................................... 65.1.1 Representación por medio de números.............................................................................................7

5.1.1.1 El código decimal......................................................................................................................................85.1.1.2 Sistema binario..........................................................................................................................................85.1.1.3 Código octal...............................................................................................................................................95.1.1.4 Código hexadecimal.................................................................................................................................105.1.1.5 Cambios de base de numeración...............................................................................................................105.1.1.6 Trabajo con números decimales...............................................................................................................115.1.1.7 Representación de números reales............................................................................................................115.1.1.8 Razones para el uso del sistema binario....................................................................................................12

5.1.2 Representación alfanumérica......................................................................................................... 135.1.2.1 Código ASCII..........................................................................................................................................135.1.2.2 Código EBCDIC......................................................................................................................................14

6 MEDIDA DE LA INFORMACIÓN.......................................................................................................... 14

7 SOFTWARE.............................................................................................................................................. 15

7.1 TIPOS DE SOFTWARE.............................................................................................................................. 167.1.1 Según el público al que va dirigido..............................................................................................167.1.2 Según su relación con el sistema....................................................................................................17

7.2 CARACTERÍSTICAS DEL SOFTWARE.......................................................................................................... 187.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........................................................................................................................ 209.2 CAPACIDADES PROFESIONALES............................................................................................................... 219.3 REQUERIMIENTOS DE AUTONOMÍA EN LAS SITUACIONES DE TRABAJO......................................................219.4 POSICIÓN EN EL PROCESO EMPRESARIAL.................................................................................................21

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

Page 2: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 3: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 4: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 5: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 6: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 7: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 datosGrupo de representación Clases

Código decimal, de base 10Representación numérica Código binario, de base 2

Código octal, de base 8Código hexadecimal, de base 16

Representación alfanumérica Código ASCIICó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:

X= ii

i=k

-j

kk

kk

jjx b x b x b x b x b x b

11

00

11

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 correspondientesSufijo Base Ejemplo

B 2 01111101b

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

Page 8: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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:

1103 + 2102 + 3101 + 410

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 = 1102 + 7101 + 4100 + 210-1 + 510-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 A1) son transcritos a secuencias de un alfabeto (alfabeto A2) 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 decimalNúmero en base 10 Número en base 2

01234

00000001001000110100

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

Page 9: Algo de Sist

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

56789

01010110011110001001

Como se puede ver en esta tabla, y dado que 2 elevado a 3 (23 = 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 143 entre 2 = cociente 21 y resto 121 entre 2 = cociente 10 y resto 110 entre 2 = cociente 5 y resto 05 entre 2 = cociente 2 y resto 12 entre 2 = cociente 1 y resto 0

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

1 0 1 0 1 1 1

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 21 + 1 x 22 + 0 x 23 + 1 x 24 + 0 x 25 + 1 x 26

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

2 0 5 4

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

Page 10: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 82651 entre 16 = cociente 165 y resto 11

165 entre 16 = cociente 10 y resto 5

es decir, A 5 B 8

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

0 1 1 1 1 1 1 1 0

B 3 E 6 (16

1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0

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

Page 11: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 = 12-1 + 02-2 + 12-3 + 12-4 = 11/2 + 01/4 + 11/8 + 11/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

Page 12: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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·bE. 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 00 1 1 01 0 1 01 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

Page 13: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 036 entre 2 = cociente 18 y resto 018 entre 2 = cociente 9 y resto 09 entre 2 = cociente 4 y resto 14 entre 2 = cociente 2 y resto 02 entre 2 = cociente 1 y resto 0

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

0 1 0 0 1 0 0 0

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

Page 14: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 15: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 220= 1.048.576.La G es abreviatura de Giga y repesenta el factor de multiplicación 230= 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ónTipo de unidad Capacidad (bits)

1 byte 81 Kilobyte (Kb) 1.0241 Megabyte (Mb) 1.024 Kb = 1.048.5761 Gigabyte (Gb) 1.024 Mb = 1.073.741.8241 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

Page 16: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 17: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Software

Programasde sistema

Programas de control Gestión del sistema, gestión de trabajos y gestión de datos

Programas de servicio Traductores, cargadores, enlazadores y utilidades

Programasde aplicación

Aplicaciones verticalesContabilidades, nóminas, gestión de inventarios y gestiones específicas

Aplicaciones horizontalesPT, editores, HC, SGBD, 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

Page 18: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 19: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 20: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 21: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 22: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 23: Algo de Sist

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

2 SISTEMA OPERATIVO............................................................................................................................. 3

2.2 HISTORIA................................................................................................................................................. 42.2.1 Primera generación (1945–1955).....................................................................................................42.2.2 Segunda generación (1955–1968)....................................................................................................52.2.3 Tercera generación (1968–1981).....................................................................................................62.2.4 Cuarta generación (1981-2000).......................................................................................................7

2.3 COMPONENTES TÍPICOS DE UN SISTEMA OPERATIVO..................................................................................72.3.1 Programas de utilidad...................................................................................................................... 72.3.2 Programas de aplicación................................................................................................................. 72.3.3 Programas de facilidad.................................................................................................................... 82.3.4 Programas de control....................................................................................................................... 8

2.4 TIPOS DE SISTEMAS OPERATIVOS............................................................................................................ 102.4.1 Por su estructura organizativa.......................................................................................................102.4.2 Por el tratamiento del hardware.....................................................................................................11

2.4.2.1 Clásicos................................................................................................................................................... 122.4.2.2 Máquinas virtuales...................................................................................................................................122.4.2.3 Servidores virtuales.................................................................................................................................122.4.2.4 Sistemas operativos de red.......................................................................................................................12

2.4.3 Por su tecnología de construcción..................................................................................................132.4.3.1 Monoprogramación..................................................................................................................................132.4.3.2 Multiprogramación..................................................................................................................................132.4.3.3 Multiproceso............................................................................................................................................14

2.4.4 Por su relación con el usuario........................................................................................................ 142.4.4.1 Sistemas BATCH o secuenciales o por lotes.............................................................................................142.4.4.2 Sistema Interactivo..................................................................................................................................152.4.4.3 Sistema de tiempo compartido.................................................................................................................152.4.4.4 Sistemas de tiempo real............................................................................................................................162.4.4.5 Sistemas operativos distribuidos..............................................................................................................172.4.4.6 Por el número de usuarios........................................................................................................................17

3 SISTEMAS OPERATIVOS MÁS USUALES...........................................................................................18

3.1 CP/M.................................................................................................................................................... 183.2 PICK.................................................................................................................................................... 183.3 OASIS.................................................................................................................................................. 183.4 MS-DOS............................................................................................................................................... 183.5 OS/2..................................................................................................................................................... 193.6 UNIX..................................................................................................................................................... 203.7 LINUX................................................................................................................................................. 203.8 WINDOS 3.X, 95 Y 98............................................................................................................................. 203.9 WINDOWS NT....................................................................................................................................... 213.10 APPLE.................................................................................................................................................. 21

4 SEGURIDAD EN LOS SISTEMAS OPERATIVOS................................................................................22

4.1 SEGURIDAD LÓGICA............................................................................................................................... 224.1.1 Control de Usuarios....................................................................................................................... 224.1.2 Protección de los Recursos............................................................................................................. 22

4.2 REQUISITOS DE SEGURIDAD EN LOS FICHEROS........................................................................................234.3 SEGURIDAD EN LA TRANSMISIÓN DE DATOS...........................................................................................234.4 SISTEMAS TOLERANTES A FALLOS........................................................................................................... 23

5 FUTURO DE LOS SISTEMAS OPERATIVOS.......................................................................................23

5.1 PRINCIPIOS DE DESARROLLO FUTURO......................................................................................................245.2 TENDENCIAS DEL MERCADO.................................................................................................................. 25

5.2.1 Windows Me e Internet por Televisión............................................................................................255.2.2 Apple y NeXT................................................................................................................................. 255.2.3 Perspectivas de los Sistemas Operativos.........................................................................................26

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

Page 24: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 25: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 26: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 27: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 28: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 29: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 30: Algo de Sist

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

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

PROGRAMA CARGADOR INICIAL, BOOTSTRAP O BOOTSu 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. SUPERVISOREste 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. IOCSEstos 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

Page 31: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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-CONTROLSon 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

Page 32: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 funciones0 Núcleo

Es el que planifica y gestiona las interrupciones1 E/S

Se encarga de la gestión de transmisión de información E/S2 Memoria

Gestiona a memoria y su compartición3 Archivos

Organiza la información en los medios internos y externos4 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

Page 33: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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, pa-sando 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 do-mé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

Page 34: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 sis-

temas de tiempo real. - Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecu-

ción simultánea de múltiples tareas sobre diferentes procesadores.

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

Page 35: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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éri -cos.

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 pro -ceso. 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 protago-nismo 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 interac-ción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para reali -zarlos 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 secuenciabi-lidad 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 mul-

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

Page 36: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 nin-

gú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 continua-mente 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. - Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye

después de concedido el servicio.

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

Page 37: Algo de Sist

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

- 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 si-guientes:

- 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. - Proceso de mayor prioridad expropia recursos. - Por tanto generalmente se utiliza planificación expropiativa basada en prioridades.

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

Page 38: Algo de Sist

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

- Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son resi -dentes 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 usua-rio. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que com-parte 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 com-pone otro componente debe de ser capaz de reemplazarlo.

Entre los diferentes sistemas operativos distribuidos que existen tenemos los siguientes: Sprite, Sola-ris-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 interco-nexiones 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 proce-dimientos remotos, etc.).

2.4.4.6 Por el número de usuarios

Sistema Operativo MonousuarioLos 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.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

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

Page 39: Algo de Sist

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

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

Page 40: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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ón1981 1.0 1987 3.301982 1.1 y 1.25

2.00, 2.01 y 2.111988 4.00 y 4.01

1983 2.25 1991 5.001984 3.00, 3.10 y 3.11 1993 6.001986 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

Page 41: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 al-canzados 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 equi-pos 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 profe-sionales. Una variante de este sistema operativo es el denominado XENIX, pensado para el micropro-cesador 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

Page 42: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 43: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 ficherosDeben 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

Page 44: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 ficherosTrata 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

Page 45: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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ónEl 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 erroresNinguna 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

Page 46: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 au-diovisual 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 cual-quier 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) se -rá 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 siste -mas operativos si no fuera porque Microsoft, que ya posee su propia cadena de televisión, ha anuncia-do que tiene intención de comprar el servicio WebTV para convertir en receptores de televisión equi-pos dotados con Memphis y Millenium (Windows 98 y Windows Me) y Windows NT 5.0. Este futu -ro 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 necesita-remos 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 nue-vo 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 siste-ma operativo. Rhapsody será inicialmente lanzado en un selecto mercado de despachos de diseñado-res, videoedición y servidores de Internet que necesitan la más alta eficiencia y en una línea de pro-ductos 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

Page 47: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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-so-ftware 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

Page 48: Algo de Sist

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

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

Page 49: Algo de Sist

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

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

Page 50: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 51: Algo de Sist

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

2 FUNCIONES DE LOS SISTEMAS OPERATIVOS 4

3 PROCESOS 4

3.1 CARACTERÍSTICAS43.2 ATRIBUTOS 53.3 TIPOS DE PROCESOS 53.4 DIFERENCIA ENTRE PROCESO, PROGRAMA E HILO 6

4 PLANIFICACIÓN 6

4.1 PARÁMETROS DE SEGUIMIENTO DE LOS PROCESOS 74.2 TERMINACIÓN DE UN PROCESO 74.3 SUSPENSIÓN DE UN PROCESO 84.4 GESTIÓN Y CONTROL DE LOS PROCESOS 8

4.4.1 Cambio de contexto 94.5 CICLO DE PLANIFICACIÓN94.6 PLANIFICACIÓN SIN PLANIFICACIÓN Y MEMORIA ILIMITADA 94.7 CUASIPLANIFICACIÓN CON MEMORIA LIMITADA 104.8 SINCRONIZACIÓN 114.9 EXCLUSIÓN MUTUA 12

4.9.1 Métodos de software124.9.1.1 Algoritmos elementales de exclusión mutua 124.9.1.2 Algoritmo de Dekker 134.9.1.3 Algoritmo de Petterson 134.9.1.4 Algoritmo de Dijkstra o del semáforo 144.9.1.5 Algoritmo de Camport o de la tienda 14

4.9.2 Mecanismos de hardware 144.9.2.1 Interrupción permitida/interrupción no permitida 144.9.2.2 Comparar y asignar 154.9.2.3 Variable de control 15

4.10 ALGORITMOS GENERALES DE PLANIFICACIÓN DE LA CPU 154.10.1 Método FIFO o FCFS 154.10.2 Método Round-Robin 164.10.3 Por el proceso más corto 164.10.4 Por el proceso más corto y el resto 174.10.5 Prioridad multicola 174.10.6 Por tiempo de espera y de ejecución 17

5 INTERBLOQUEOS 18

5.1 SOLUCIONES AL INTERBLOQUEO 185.1.1 Prevención del interbloqueo 185.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

Page 52: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 53: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 54: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 55: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 56: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 57: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 con-trolar 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

Page 58: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 59: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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(orden)

Hora de entrada en la CPU

Tiempo de ejecución en la CPU

P1P2P3P4P5P6

8,008,208,608,709,00

10,00

0,40,60,70,50,80,3

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

Orden de los procesos

Hora de llegada

Tiempo de ejecución

Hora decomienzo

Hora deacabado

Tiempo deretorno

P1P2P3P4P5P6

8,008,208,608,709,00

10,00

0,40,60,70,50,80,3

8,008,409,009,70

10,2011,00

8,409,009,70

10,2011,0011,03

0,400,801,101,502,001,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

Page 60: Algo de Sist

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

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

0,00,51,01,52,02,5

1,01,00,52,00,20,1

206010302020

123312

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 cada proceso (sg)

Procesos(orden de proceso y entre paréntesis el tiempo que le queda)

0,000,501,001,501,772,002,402,502,562,722,934,83

0,500,250,160,090,120,130,050,020,080,101,90

1 (1,00)1 (0,50)1 (0,25)1 (0.90)1 (0,00)2 (0,38)2 (0,25)2 (0,20)2 (0,18)2 (0,10)2 (0,00)4 (0,00)

2 (1,00)2 (0,75)2 (0,59)2 (0,50)3 (0,13)3 (0,00)5 (0,20)5 (0,00)6 (0,00)4 (1,90)

3 (0,50)3 (0,34)3 (0,25)5 (0,20)5 (0,07)6 (0,10)6 (0,08)4 (2,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

Page 61: Algo de Sist

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

Proceso Pi Proceso Pj

Y1 = XY1 = X + 1

X = Y

Y2 = XY2 = Y2 + 1

X = Y2

Ejecución (X = 0)Y1 = X

Y1 = X + 1X = Y1

Y2 = XY2 = X + 1

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 Pi mientras la utiliza el primer proceso -si es que éste es el que tiene la prioridad- mientras el proceso Pj 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

Page 62: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

ENDTURNO = jACTIVO (i) = F

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

ACTIVO (i) = VACTIVO (j) = V

4.9.1.3 Algoritmo de Petterson

<RUTINA>INICIALIZA ACTIVO (i) = V

TURNO = jMIENTRAS ACTIVO (j) = V y TURNO = j <NADA>

ENDACTIVO (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

Page 63: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 = VALORSI SEMAFORO > 0 SEMAFORO = SEMAFORO - 1

SECCIÓN CRÍTICASI NO <ESPERA>

<SEMÁFORO-SALIR>SI SEMAFORO <= 0 SEMAFORO = SEMAFORO + 1

DESBLOQUEAR SIGUIENTE PROCESOSI 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

Page 64: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 65: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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)1234

0,60,30,20,1

0,00,50,60,8

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

Pr Ti T entrada T salida T real Ia1234

0,00,50,60,8

0,00,90,60,8

0,61,20,80,9

0,60,70,20,1

1,00,41,01,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

Page 66: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 67: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 68: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 69: Algo de Sist

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

ÍNDICE ALFABÉTICO DE CONCEPTOS

—A—Algoritmo

por el proceso más corto y el tiempo, 17por tiempo de espera y de ejecución, 17prioridad multicola, 17

Algoritmo de Camport, 14Algoritmo de Dekker, 13Algoritmo de Dijkstra, 14Algoritmo de Petterson, 14Algoritmo de planificación

cola de retroalimentación, 16método Round-Robin, 16por el camino más corto, 16

Algoritmo del semáforo, 14Algoritmos

elementales, 13mixtos, 17

Algoritmos de planificaciónFIFO, 15

—C—Comparar y asignar, 15Concurrencia

soluciones de hardware, 15CPU, 9

adelanto de la, 9

—E—Equidad, 7Error, 3Espera circular, 19Exclusión mutua, 12

—F—FIFO, 10

—H—Hilo, 6

—I—Interbloqueo

eliminación, 19prevención, 18

Interbloqueos, 18Interrupción, 3, 6Interrupción permitida/interrupción no permitida, 15

—L—Lenguaje de control de tareas, 19

—P—PCB, 9

Planificación, 6a corto plazo, 6a largo plazo, 6algoritmos, 12cuasi, con memoria limitada, 10intermedia, 6objetivos, 7sin planificación, 9

Procesador, 3Proceso, 3, 4

batch o compilado, 17cambio de contexto, 9colas de, 9competencia, 4concurrencia, 4cooperación, 4de excepciones, 6derechos, 5estado, 5intercambiable, 5jerarquía, 4no apropiación, 19no apropiativo, 16nombre, 5prioridad, 5reentrante, 6residente, 5reutilizable, 5sección crítica, 13suspensión de un, 8terminación de un, 7tiempo de procesador, 7

Programa, 6

—R—Ráfagas, 9Recurso, 18Recursos

compartibles, 18

—S—SCB, 9Sincronización, 11Sistema

índice de aprovechamiento, 7recursos, 7tiempo de espera, 7tiempo de servicio, 7

Sistema operativo, 3, 4, 5tareas, 4

Sistemas operativosde propósito general, 17

SJF, 16Spool, 6

—V—Variable compartida, 12Variable de control, 15

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

Page 70: Algo de Sist

1º Ciclos – ASI - SIMMJuan P. Benito

Ciclos formativos – 1º ASISistemas 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 MONOPROGRAMADOS2.1.1 Técnica de swapping

2.2 ASIGNACIÓN EN SISTEMAS MULTIPROGRAMADOS2.2.1 Particiones contiguas fijas

2.2.1.1 Mecanismos de asignación de memoria2.2.1.2 Entrada y salida de procesos2.2.1.3 Reasignación

2.2.2 Particiones contiguas variables2.2.2.1 Algoritmos de planificación2.2.2.2 Compactación como solución a la fragmentación

2.2.3 Ventajas e inconvenientes de las particiones contiguas de memoria2.2.4 Paginación

2.2.4.1 Procedimiento de trabajo2.2.5 Segmentación

2.2.5.1 Tabla de segmentos2.2.6 Sistemas mixtos de partición discreta

2.2.6.1 Técnica del recubrimiento2.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

Page 71: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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

Page 72: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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 SwappingParticiones Particiones fijas

Gestión Sistemas contiguas Particiones variablesmultiprogramados 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

Page 73: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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.2Asignación de memoria en monoprogramación y posibilidades de gestión

UsuarioUsuario límit

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

Page 74: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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 partición

Límite inferior (Kb)

Tamaño (Kb) Estado0

Situación en la memoria

0 0 100 Asignada 100 S.O. Residente1 100 50 Libre 150

2 150 150 Libre 300

3 300 250 Asignada 550 P14 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

Page 75: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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

Page 76: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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

Page 77: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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.6Método de compactación de memoria dejando los procesos en la zona superior

2000 2000 20001750 250 Kb 1750 250 Kb 1850 P4 = 150 Kb1600 P4 = 150 Kb 1600 P4 = 150 Kb 1600 P3 = 250 Kb1300 300 Kb 1350 P3 = 250 Kb 1450 P2 = 150 Kb1050 P3 = 250 Kb 1200 P2 = 150 Kb 1350 P1 = 100 Kb900 P2 = 150 Kb 900 300 Kb 250 Kb700 200 Kb 700 200 Kb 300 Kb600 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

Page 78: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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 2m. Es decir, cada bloque que asigna se encuentra entre esos dos tamaños pero siempre en potencia de dos: 2i 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

Page 79: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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

Page 80: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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

Page 81: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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

Page 82: Algo de Sist

1º Ciclos – ASI - SIMMJuan 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—Algoritmo

BF, 7de localidad, 13de planificación, 7FF, 7FIFO, 6frecuencia de faltas de página, 13LFU, 13LRU, 13SO, 13

Algortimopor el conjunto de trabajo, 13

—C—Compilación, 7

—D—Dispositivo de intercambio, 2, 4

—E—Enlazador, 12

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

Page 83: Algo de Sist

1º Ciclos – ASI - SIMMJuan P. Benito

—M—Memoria, 2

asignación, 4asignación de, 3buffer de, 4ciclo de, 2compactación de la, 8, 9gestión de, 3gestión de la, 3marcos de, 10mecanismos de asignación. Véase Memoria, asig-

naciónpágina de, 2paginación, 10páginas de, 10particiones contiguas, 4particiones discretas, 5particiones fijas, 5particiones variables de, 7principal, 2reasignación, 6reasignación dinámica de, 7reasignación estática de, 7recubrimiento de, 12registro base, 7segmentación de la, 11segmento de, 11tabla de descripción de particiones, 5tabla de páginas de. Véase Memoria, tabla de parti-

cionestabla de particiones de, 7tiempo de acceso a, 2virtual, técnica de la, 12

—P—Páginas

protección de, 10PCB. Véase Proceso, bloque de control deProceso

bloque de control de, 5Procesos

carga dinámica de, 6cola de, 6entrada en memoria de, 6multicola de, 6

—S—Segmentos

tabla de, 11Sistema operativo

supervisor, 3Subrutina, 12Swapping. Véase Dispositivo de retorno, Véase

Dispositivo de intercambio

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

Page 84: Algo de Sist

1º Ciclos - SIMMJuan 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 44.2 SOPORTES DE INTERFAZ 54.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 MEMORIA66.1.1 Procedimiento 7

6.2 CANALES DE E/S 76.2.1 Procedimiento de un canal 76.2.2 Clases de canales 8

6.2.2.1 Canales selectores 86.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 98.2 GESTORES DE DISPOSITIVOS O DRIVERS 98.3 SOFTWARE INDEPENDIENTE DEL DISPOSITIVO 108.4 SOFTWARE DE USUARIO 10

9 SEGURIDAD 10

9.1 SEGURIDAD INTERNA 119.2 SEGURIDAD A NIVEL DE FICHEROS 119.3 SEGURIDAD EN LA TRANSMISIÓN DE INFORMACIÓN 129.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

Page 85: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 86: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 87: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 88: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 89: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 90: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 91: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 92: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 93: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 94: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 95: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 96: Algo de Sist

1º Ciclos - SIMMJuan P. Benito

ÍNDICE ALFABÉTICO

—A—Accesos directos a memoria, 6Ancho de banda, 2

—B—Baudios, 5Bus, 2

—C—Canal, 7

clases de, 8demultiplexor, 8funciones, 7multiplexor, 3, 8procedimiento, 7selector, 3, 8

Cinta magnética, 4Controlador, 2, 5Criptografía, 12

—D—Disco, 4

tiempo de búsqueda, 5tiempo de latencia, 5tiempo de transformación, 5

Dispositivo, 2conexión por bus E/S, 3conexión por bus único, 3

Dispositivosde bloque, 4de carácter, 4velocidad de los, 9

Dispositivos de E/S, 4DMA, 3, 7, 8. Véase Accesos directos a memoria.

Véase Accesos directos a memoriacomponentes, 6procedimiento, 7

—E—E/S

hardware de, 3software de, 3, 9

Entrada/Salidaoperación de, 2

Errores, 2

—F—Fichero, 4

—I—Información, 2

cambio de formato de la, 9Interrupción E/S, 2

—N—Nombre de usuario, 11

—P—Palabra clave, 11Periférico, 2Puerto, 2, 6

—R—Registro, 4

—S—Seguridad, 10

externa, 10interna, 11

Sincronización, 9Soportes

de almacenamiento, 4de interfaz, 4de transmisión, 4

Ciclos formativosSistemas 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

Page 97: Algo de Sist

1º Ciclos - SIMMJuan 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 ESPECIALES98.2 SINTAXIS DE LAS ÓRDENES 108.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

Page 98: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 99: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 100: Algo de Sist

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

Tabla 9.1 Resumen de versiones y características del MS-DOS

MS-DOSVersió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 cara2.00 y 2.01 1983 Admite trabajo con subdirectorios sin limitación y

símbolos internacionales2.11 1983 Es capaz de detectar errores y de corregirlos2.25 1983 Admite el uso de caracteres extendidos3.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 red3.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 Gb6.22 1995 Gestiona particiones de tamaño hasta 4 Gb7.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

Page 101: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 102: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 103: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 104: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 FilipinasHoy es 18/03/2003, y son las 11:20:00Espero 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$_bdeghlnpqtv

Indica que el siguiente carácter es un símbolo a aplicarRetorno de carro (ENTER)Muestra una barra vertical, |, útil para redireccionamientoVisualiza la fecha del sistemaCódigo de escape, ESC, ASCII 27Muestra en pantalla el carácter >Suprime el carácter anterior del PROMPTMuestra en pantalla el carácter <Muestra la unidad de trabajo, de disco, activaMuestra el directorio o subdirectorio de trabajo, incluyendo la unidadMuestra el carácter =Muestra la hora corriente del sistemaMuestra la versión de MS-DOS con la que estamos trabajando

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 104 de 16

Page 105: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 106: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 107: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 108: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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

Page 109: Algo de Sist

1º Ciclos - Sistemas Operativos Multiusuario y en RedJuan 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 EjemploAttrib

Backup (*)

Chdir o CD

Chkdsk

ClsCopy

Date

DeleteDir

DiskcopyEdit

Exit

Fdisk

Find

Format

Label

Mem

Memmaker (*)Mkdir (MD)

MoreMove

Msbackup

Permite ver y cambiar los atributos de un archivo

Permite copias de seguridad de los archivos indicados

Permite acceder a un directorio

Analiza el estado de una unidad o de un fichero

Limpia la pantallaCopia un fichero de un lugar a

otro, o le cambia el nombre

Comprueba o especifica la fecha del sistema

Borra un ficheroMuestra el contenido de la ruta

de directorio especificada

Copia un disquete en otroPasa al editor del MS-DOS

Comando de salida de DOS y paso a Windows

Configura el disco duro y sus particiones

Encontrar una cadena de caracteres en un fichero

Formatea un disco duro o disquete

Crea y/o modifica la etiqueta del disco

Informa de la gestión de memoria en el sistema

Configura la memoria RAMCrea un directorio en la raízFiltro que pagina informaciónDesplaza un fichero a la ruta

especificadaCopia de seguridad de un

fichero o de un directorio

Attrib /+r /-h MSDOS.SYSPone al archivo de sólo lectura y le quita el modo

ocultoBackup C: A: /sCrea copia de seguridad de C: en A: copiando

subdirectorios tambiénCD C:\clientes\comprasSe accede al subdirectorio Compras del directorio

ClientesChkdsk C:\ /fAnaliza la unidad C:, detectando y corrigiendo

erroresNo tiene parámetrosCopy agenda.txt C:\viejos\ag-98.txtCopia el fichero agenda.txt al subdirectorio de C:\

Viejos y le da el nombre de ag-98.txt

Del ag-96.txtDir C:\Viejos /p /o:eDa el contenido de este subdirectorio, separándolo

en pantallas, ordenados por su extensiónDiskcopy a: b:Edit agenda.txtPasa a editor del MS-DOS con un fichero con

nombre agenda.txt

Find “José Ramón” agenda.txt

Format a: /sFormatea a: y le da los ficheros del sistemaLabel C:

Mem /fMuestra áreas libres en convencional y superior

MD ClientesDir C:\Clientes |More (ver apartado 9.1)Move C:\agenda.txt a:\ClientesPasa agenda.txt al directorio clientes de AMsbackup C:\Clientes A:\

Print /d:lpt1 agenda.txt

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 109 de 16

Page 110: Algo de Sist

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

Comando Descripción EjemploPrint

Prompt

Rename RENRestore

Rmdir (RD)Sort

Time

Tree (*)

Type

Undelete

Unformat

Ver

Vol

Xcopy

Imprime un fichero

Establece la señal de espera del sistema operativo

Cambia el nombre de ficheroReestablece una copia de

seguridad en el sistemaBorra un directorioFiltro que ordena una

informaciónEstablece o modifica la hora del

sistemaMuestra la totalidad de la

información de un directorioMuestra el contenido de un

fichero de textoRecupera ficheros borrados en

el directorio actualRecupera la información inicial

de un disco formateadoMuestra la versión actual de

MS-DOSMuestra el contenido de la

etiqueta del discoCopia ficheros desde un

directorio y sus subdirectorios

Imprime en la impresora el fichero agenda.txtVer texto (apartado 7.1)

REN agenda.txt agenda.scrRestore A: C: /sPasa la copia de A a C restaurando subdirectorios

RD ClientesSort agenda.txt (ver apartado 9.1)

Tree C:\Clientes /fDa subdirectorios y ficheros por debajo de ClientesType agenda.txt

Undelete /dtRecupera todos pidiendo conformidadUnformat C: /pDesformatea C enviando los mensajes a impresora

Xcopy A: B: /s /eCopia ficheros y subdirectorios, aunque estos estén

vaciós, creándolos si es necesario

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 110 de 16

Page 111: Algo de Sist

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

Figura 9.1 – Configuración de la memoria RAM

Memoriamáxima

386486

4.096 Mb

Memoriaextendida

Memoriamáxima

286

16 Mb

1.088 Kb Memoria alta

Memoriamáxima

80888086

1.024 Kb ROM-BIOS

Memoriasuperior

960 Kb832 Kb

Marco de páginade memoria expandida

768 Kb Memoriade

vídeo640 Kb

Libre

Memoriaconvencional

Residentes, AUTOEXEC.BATCOMMAND.COM

Dispositivos de CONFIG.SYSParte 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

Page 112: Algo de Sist

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

ÍNDICE ANALÍTICO

—A—Área de datos, 7

—D—Directorio raíz, 7DOS, 2

DR, 3historia, 3IBM, 3MS, 2, 3Novell 7.00, 3núcleo, 5PC, 2, 3

—F—FAT, 7

—M—Memoria

alta, 6convencional, 5de vídeo, 6expandida, 6RAM, 2ROM, 2, 5shadow, 6superior, 5

MS-DOSAUTOEXEC.BAT, 8caracteres especiales, 9COMMAND.COM, 8CONFIG.SYS, 8órdenes, 9órdenes básicas, 13órdenes, externas, 11órdenes, internas, 10órdenes, parámetros, 10órdenes, sintaxis, 10palabras reservadas, 11redireccionamiento de entrada, 12redireccionamiento de salida, 11

—O—OS, 2OS/2, 3

—S—Sector de arranque, 7Sistema operativo, 2

monopuesto, 4monotarea, 4

monousuario, 2

—W—Windows, 3

—X—XENIX, 3

U.D. 9 - Sistemas Operativos Monouuario - MSDOS, pág. 112 de 16

Page 113: Algo de Sist

1º Ciclos - SIMMJuan P. Benito

Ciclos formativosSistemas 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 22.2 INSTALACIÓN NUEVA 3

2.2.1 Formateado de los discos duros 42.2.1.1 Formateo a bajo nivel 42.2.1.2 Formateo a alto nivel 4

2.2.2 Tabla de particiones5

3 VARIABLES DE ENTORNO 5

4 FICHEROS BAT DE CONFIGURACIÓN 6

4.1 CONFIG.SYS 64.1.1 Configuración de la memoria RAM 94.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

Page 114: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 115: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 116: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 117: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 118: Algo de Sist

1º Ciclos - SIMMJuan 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

Page 119: Algo de Sist

1º Ciclos - SIMMJuan P. Benito

Tabla 10.1 - Listado de comandos que forman parte del CONFIG.SYS y una breve descripción

Comando FunciónBREAK Activar o desactivar la función de la combinación de teclas CTRL+CBUFFERS Establece el número de memorias intermedias para lectura y escritura de discosCOUNTRY Define formatos para fecha, hora, moneda y separadores decimalesDEVICE Instala el controlador -o driver- del dispositivo que se especificaDEVICEHIGH Ídem, pero lo instala en el área de memoria superiorDOS Carga parte del DOS en el área de memoria superiorDRIVPARM Define parámetros de dispositivos anulando las originales del fabricanteFCBS Indica el número de archivos que pueden abrirse simultáneamente usando FCBFILES Indica cuántos archivos pueden abrirse a la vez y a los cuales puede llamar el

DOSINSTALL Ejecuta ciertos comandos del DOSLASTDRIVE Establece el número máximo de unidades a las que tener accesoMENUCOLOR Fija el color del fondo para el menú de configuraciónMENUDEFAULT

Define opción por defecto para el menú de configuración

MENUITEM Define cada elemento del menú de opciones de configuraciónNUMLOCK Especifica si el teclado numérico (BOLQ NUM) está inicialmente activo o noREM Permite introducir comentarios en el fichero, o bien anular comandosSET Estable el valor que van a tener las variables de entornoSHELL Señala el intérprete de comandos que se usará. Por defecto COMMAND.COMSTACKS Señala la memoria reservada para el procesamiento de las interrupciones hardwareSUBMENU 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ónANSI.SYS Carga las secuencias de escape ANSI para control de funciones gráficas y de

movimientos del cursorDISPLAY.SYS Carga las páginas de códigos para el monitorDRIVER.SYS Controla unidades de disco externasEMM386.SYS Emula la existencia de una memoria expandida usada a partir de la extendida,

y proporciona acceso a la parte de memoria superiorHIMEM.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 virtualSMARTDRV.SYS Crea memoria caché para el disco duro, usando para ello memoria extendidaVDISK.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.

U.D. 10 - MSDOS, instalación y configuración, pág. 119 de 13

Page 120: Algo de Sist

1º Ciclos - SIMMJuan P. Benito

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.

Tabla 10.3 - Valor por defecto de BUFFERS y comentariosSistema Buffers

Sistema base 2Unidad de disco flexible 3128 a 255 Kb. de RAM 5256 a 511 Kb. de RAM 10512 Kb. de RAM o más 15

Número óptimo recomendado por MicrosoftDiscos entre 40 y 80 Mb. 30Discos entre 80 y 120 Mb. 40Discos mayores de 120 Mb. 50Cada 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 programaAplicación Files

De especiales requerimientos de datos y búsqueda de registros

30 o más

Bases de datos entre 15 y 25Programas gráficos entre 10 y 15Programas de cálculo 10Programas de texto 10Cada archivo reservado consume 48 b. de memoria RAMLos 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 virtualesMemoria RAM total Disco virtual

Menos de 6 Mb. 0Entre 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 ordenadorEl 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

U.D. 10 - MSDOS, instalación y configuración, pág. 120 de 13

Page 121: Algo de Sist

1º Ciclos - SIMMJuan P. Benito

Total memoria extendida Tamaño mínimo Tamaño máximoHasta 1 Mb. 0 Toda la memoria extendidaEntre 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 discoViene incorporado en el MS-DOS, pero programas como Windows, instalan su propio controladorAlgunos 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 ocupadaBUFFERS 500 b. por bufferLASTDRIVE 100 b. por letraEMM386 80 Kb.SMARTDRV 15 Kb. o másFASTOPEN 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

Page 122: Algo de Sist

1º Ciclos - SIMMJuan 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.

[MENUMENUITEM = COMPILACOBOL, para compilación de cobolMENUITEM = NORMAL, trabajo corrienteMENUCOLOR = 15, 1MENUDEFAULT = 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

[COMPILACOBOLFILES = 40BUFFERS = 20DEVICE = C:\DOS\RAMDRIVE.SYS

[NORMALFILES = 25BUFFERS = 10

U.D. 10 - MSDOS, instalación y configuración, pág. 122 de 13

Page 123: Algo de Sist

1º Ciclos - SIMMJuan 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:

[MENUMENUITEM = WINDOWSMENUITEM = REDMENUITEM = CAD

[COMMONFILES = 40BUFFERS = 20

[WINDOWSDEVICE = C:\WINDOWS\HIMEN.SYS

[REDINCLUDE = WINDOWSDOS = HIGH

[CADDEVICE = 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

Page 124: Algo de Sist

1º Ciclos - SIMMJuan P. Benito

Tabla 10.8 - Comandos que se incluyen en el AUTOEXEC.BAT

Comando FunciónASSIGN Asigna una letra de unidad a otra unidad diferenteDATE Visualiza y modifica la fecha del sistemaDOSKEY Activa un buffer de teclado para almacenar las últimas líneas de comandosDOSSHELL Activa un intérprete de MS-DOS diferente al COMMAND.COMECHO Evita la confirmación por pantalla de los comandos del DOSFASTOPEN Reduce el tiempo de apertura de los ficheros y directorios más utilizadosGRAFTABL Permite la edición de caracteres gráficos en una tarjeta CGAGRAPHICS Permite la impresión de una pantalla utilizando el modo gráfico anteriorJOIN Asocia una unidad de disco con una ruta de acceso determinadaKEYB Selecciona un teclado por país determinadoMODE Configura los puertos serie (COM), paralelo (LPT), monitor y tecladoNLSFUNC Carga información específica para un país concretoPATH Define la ruta de búsqueda de un comando, si no está en el por defectoPROMPT Cambia el indicador de comandosSET Define las variables de entorno para su posterior uso por los programasSHARE Instala software para permitir compartir o bloquear ficherosSUBST Sustituye una expresión por una ruta de accesoTIME 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

Page 125: Algo de Sist

1º Ciclos - SIMMJuan P. Benito

ÍNDICE ALFABÉTICO

—A—Archivo

reservado, 8AUTOEXEC.BAT, 3, 5, 6

—B—BUFFER, 8

—C—CONFIG.SYS, 3, 5, 6Configuración, 2Controladores, 7

—D—DEBUG, 4Disco

RAM, 8Disco duro

unidades, 5Disco RAM, 9

—E—Entorno, 2

—F—FAT, 4

-16, 5-32, 5

FDISK, 5Ficheros BAT, 6Ficheros por lotes. Véase Ficheros BATFORMAT, 5

Formateado, 4Formateo

alto nivel, 4, 5bajo nivel, 4

—I—Instalación, 2

actualización, 2nueva, 3

—M—MEM, 9MEMMAKER, 10Memoria

expandida, 9extendida, 9RAM, 9

—R—RAMDRIVE, 8

—S—SET, 5SMARTDRV, 9

—T—Tabla de particiones, 5

—V—Variable, 2Variables

de entorno, 5

Ciclos formativos – 1º ASISistemas 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 BAT2.2 EJECUCIÓN DE UN FICHERO POR LOTES2.3 COMANDOS E INSTRUCCIONES2.4 PARÁMETROS DE USO EN FICHEROS BAT

U.D. 10 - MSDOS, instalación y configuración, pág. 125 de 13

Page 126: Algo de Sist

1º Ciclos - SIMMJuan P. Benito

3 PROGRAMACIÓN

4 SEGURIDAD EN MS-DOS

4.1 ATRIBUTOS DE FICHEROS Y DE DIRECTORIOS4.2 COPIAS DE SEGURIDAD

4.2.1 Opciones de archivo de especificaciones4.3 RESTAURACIÓN DE COPIAS DE SEGURIDAD

5 ANTIVIRUS

5.1 MEDIDAS BÁSICAS5.2 UTILIDAD ANTIVIRUS

ÍNDICE ALFABÉTICO

U.D. 10 - MSDOS, instalación y configuración, pág. 126 de 13

Page 127: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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

Page 128: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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\DOCCOPY MEMORIA.DOC D:\PROYECTO\DOCUSD:\PROYECTO\DOCUSDIR

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.BATCD C:\WINWORD\DOCCOPY %1.DOC D:\PROYECTO\DOCUSD:\PROYECTO\DOCUSCLSDIR

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

Page 129: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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

Page 130: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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 ésteCHOICE 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 pantallaFOR Para repetir aplicaciones de comandos bajo ciertas condiciones

GO TO Desvía la ejecución de comandos a una determinada instrucciónIF Permite la ejecución condicional de comandos

IF ERRORLEVEL Para ejecutar un comando según cuál sea el resultado del comando anteriorIF 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 discoPAUSE 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

Page 131: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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 COMANDOIF [NOT EXIST nombre-de-archivo COMANDO

Para ello se suele combinar con la instrucción GO TO. Por ejemplo

CLSIF “%1” = = “ “ GOTO FINIF NOT EXIST %1 GOTO ERRORCOPY %1 a:\ /vGOTO FIN:ERRORECHO Fichero no encontrado:FINECHO 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

Page 132: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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

BACKUP0234

Copia con éxitoCopia incompletaCopia interrumpida por el usuario con CTRL+CError fatal. Copia incompleta

DISKCOMP 0123

Comparación correcta. Discos idénticosNo se pudo hacer la comparación. Discos distintosComparación interrumpida por CTRL+CError de soporte físico. Error de disco

DISKCOPY 023

Copia de disco correctaCopia interrumpida con CTRL+CCopia no correcta, error de disco fatal

FORMAT 035

Formateo satisfactorioFormateo incompleto. Se ha pulsado CTRL+CEl usuario ha contestado N

KEYB 0126

Operación llevada a cabo con éxitoSintaxis incorrectaEl archivo que define el teclado falta o es incorrectoNo se encontró la página de códigos seleccionada

RESTORE 0134

Operación con éxitoNo se encuentran los archivosOperación interrumpida con CTRL+CError fatal. Restore incompleto

XCOPY 0245

La copia ha finalizado con éxitoCopia interrumpida con CTRL+CMemoria insuficiente, disco no válido, o no se encuentra la rutaError 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

Page 133: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan P. Benito

FORMAT A: /SIF ERRORLEVEL 5 GOTO USUARIOIF ERRORLEVEL 4 GOTO ERRORIF ERRORLEVEL 3 GOTO USUARIOECHO Disco formateadoGOTO FIN:USUARIOECHO Operación cancelada por el usuario:ERRORECHO 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 OFFPAUSE ^G[Alt+7Por 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

Page 134: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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 SignificadoCMP Compara dos valores, pudiendo ser estos números, los contenidos de sendos

registros, o los contenidos de distintas posiciones de memoriaINT Activa una interrupción (ver Tabla 11.4)JMP Permite el salto a una direcciónJZ Salta a una instrucción si dos valores previos resultan idénticos

JNZ Es el caso opuesto al anterior, es decir, salta si son diferentesMOV Transfiere un byte a una dirección de memoria

Tabla 12.4 - Interrupciones de la BIOS

Servicio al que afectan Cód. interrupción ConsecuenciaINT 10H Servicios de la pantalla de vídeoINT 13H Servicios de disco

Dispositivos de periféricos INT 14H Servicio de comunicaciones (RS232)INT 15H Servicios de cintaINT 16H Servicios de tecladoINT 17H Servicios de impresora

De estado del equipo INT 11H Servicios de lista de elementos del equipoINT 12H Servicios de cálculo del tamaño de la memoria

De fecha y hora INT 1AH Servicios de relojDe la pantalla de impresión INT 5H Impresión de pantalla

Especiales INT 18H Activación del BASIC de la ROMINT 19H Activa la rutina de arranque del ordenador

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 134 de 20

Page 135: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan P. Benito

Tabla 12.5 - Interrupciones de MS-DOS y consecuencias

Código SignificadoINT 20H Termina un programa, libera la memoria ocupada y devuelve el control al DOSINT 21H

Debiendo colocar en el registro AH el

número de la función, siendo las más importantes:

023/45671/8910121315/16171819/2220/212333/343542/4344/45

Termina un programa y devuelve el control al DOS. Como INT 20HSalida a la pantallaEntrada/Salida por el puerto serieSalida a la impresoraE/S directa a pantallaEntrada directa de carácter sin ecoEntrada de carácter con/sin ecoVisualización de una cadena de caracteresEntrada desde el tecladoBorra registro de entrada y procede a una entrada de datosResetear la unidad de discoAbrir/Cerrar ficheroBúsqueda del primer ficheroBúsqueda del próximo ficheroBorrar/Crear ficheroLeer/Escribir en un fichero de acceso secuencialRenombrar un ficheroLeer/Escribir en un fichero de acceso aleatorioCálculo del tamaño de un ficheroObtener/Fijar la fechaObtener/Fijar la hora

INT 22H Dirección de terminación a la que se manda el control al acabar el programaINT 23H Es la dirección de la rutina que se ejecuta cuando se pulsa CTRL+BREAKINT 24H Es la dirección de la rutina que se ejecuta cuando se presentan errores críticosINT 25H Lectura directa de sectores de discoINT 26H Escritura directa de sectores de discoINT 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

Page 136: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan P. Benito

Tabla 11.6 - Interrupciones hardware externas y dispositivos asociados

Código Asociación Código AsociaciónIRQ 0 Reloj del sistema IRQ 8 Reloj en tiempo realIRQ 1 Teclado IRQ 9 Redirección cascada IRQ2IRQ 2 Para ampliar las IRQ IRQ 10 ReservadaIRQ 3 COM2 y COM4 IRQ 11 ReservadaIRQ 4 COM1 y COM3 IRQ 12 Ratón modo PS/2 o reservadaIRQ 5 LPT2 IRQ 13 Excepción coprocesador287IRQ 6 Unidad de discos flexibles IRQ 14 Reservada o disco duroIRQ 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 100xxxx:0100 MOV AH, 2xxxx:0102 MOV DL, 7xxxx:0104 INT 21xxxx:0106 MOV AH, 4Cxxxx:0108 INT 21xxxx: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-WEscribiendo 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

Page 137: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan P. Benito

Otra rutina, para guardar el valor de una tecla pulsada, sería la siguiente -TECLA.COM-:

xxxx:0100 MOV AL, 8xxxx:0102 INT 21xxxx:0104 MOV AH, 4Cxxxx:0106 INT 21xxxx:0108-N C:\tecla.com-R CXCX 0000:8-WEscribiendo 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:BUCLECLSECHO Elija opciónECHO Opción 1ECHO Opción 2ECHO Opción 3TECLAIF ERRORLEVEL 52 GOTO BUCLEIF ERRORLEVEL 51 GOTO OP-3IF ERRORLEVEL 50 GOTO OP-2IF ERRORLEVEL 49 GOTO OP-1GOTO BUCLE:OP-3ECHO Aquí va la opción 3GOTO FIN:OP-2ECHO Aquí va la opción 2GOTO FIN:OP-1ECHO Aquí va la opción 1GOTO 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

Page 138: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan P. Benito

- A 100xxxx:0100 MOV AH, 8xxxx:0102 INT 21xxxx:0104 CMP AL, 53xxxx:0106 JZ 0116xxxx:0108 CMP AL, 73xxxx:010A JZ 0116xxxx:010C CMP AL, 4Exxxx:010E JZ 011Axxxx:0110 CMP AL, 6Exxxx:0112 JZ 011Axxxx:0114 JMP 0100xxxx:0116 MOV AH, 01xxxx:0118 JMP 011Cxxxx:011A MOV AL, 00xxxx:011C MOV AH, 4Cxxxx:011E INT 21xxxx:0120-N C:\TECLA.COMR CXCX 0000: 20-WEscribiendo 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

Page 139: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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.SYSSHR C:\MS-DOS.SYSA R C:\COMMAND.COMASHR C:\DRVSPAE.BINASHR C:\DBLSPACE.BINASH C:\386SPART.PARA C:\CONFIG.SYSA 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

Page 140: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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

Page 141: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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

Page 142: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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

Page 143: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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

Page 144: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan 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

Page 145: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan P. Benito

Índice alfabético

U.D. 12 - MSDOS, programación, utilidades, seguridad, pág. 145 de 20

Page 146: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan P. Benito

—#—@, 5

—%—%, 8

—A—Antivirus

modo residente. Véasetarjetas, 18utilidad, 18

ATTRIB, 14AUTOEXEC.BAT, 3

—B—BACKUP, 18BOOT, 17

—C—CALL, 5CHOICE, 5Código ASCII, 13COMMAND.COM, 17CONFIG.SYS, 3Copia de seguridad

catálogos, 16Copias de seguridad, 15, 18COPY, 13

—D—DATE, 8DEBUG, 9, 10, 11DEL, 13DIR, 13DOSKEY, 4

—E—ECHO, 5EDIT, 4Editor

del DOS, 3. Véase EDITEDLIN, 4Ensamblador, 9

—F—FAT, 17Fichero

atributos, 13por lotes. Véase Fichero BAT

Fichero BAT, 3ejecución, 4

Fichero DOS, 13FOR, 4, 6

—G—GO TO, 4GOTO, 6

—I—IF, 4, 6

ERRORLEVEL, 7, 12EXIST, 6NOT, 6

Interrupcionesde la BIOS, 9de MS-DOS, 10hardware, 10

IRQ. Véase Interrupciones hard-ware

—M—MSAV, 19

informe, 19parámetros, 19

MSBACKUP, 15, 17MSBAKUP, 16

—P—PAUSE, 4, 8Proceso

batch, 2Programa, 2

no procedimental, 2procedimental, 2

PROMPT, 8

—R—REM, 8RESTORE, 16

—S—Seguridad, 2

modelo de, 2Seguridad.

sistema de vigilancia y restau-ración, 2

—T—TIME, 8TYPE, 14

—U—Utilidad, 2

—V—Virus informático, 17

U. D. 3 - Componentes lógicos de un ordenador, pág. 146 de 23

Page 147: Algo de Sist

1º Ciclos - Sistemas Operativos Monousuario y MultiusuarioJuan P. Benito

U. D. 3 - Componentes lógicos de un ordenador, pág. 147 de 23