ud 1. caracterización de sistemas...

39
Juan Carlos Pérez González UD 1. Caracterización de sistemas operativos Sistema informático. Sistemas de representación da información. Compoñentes físicos do sistema informático. Software de base dun sistema informático. Concepto, elementos e estrutura dun sistema operativo. Clasificación dos sistemas operativos. Funcións do sistema operativo: recursos. Procesos do sistema operativo: estados dos procesos; prioridade. Sistemas de ficheiros: tipos e características. Transaccións: sistemas transaccionais. Evolución dos sistemas operativos: versións. Sistemas operativos actuais. 1. Sistema Informático. Un sistema informático es un conjunto de elementos (software, hardware y ser humano) interconectados o relacionados para el tratamiento de información. Así tenemos computadores, redes, switches, servidores,... Elementos que lo forman: hardwareo elementos físicos de carácter electrónico, “software” o conjunto de programas que permiten al hardware ser una máquina útil. Podemos a su vez dividir en dos tipos: programas de sistema, es lo que conocemos como sistema operativo que facilita al resto del software y al usuario interactuar con la máquina ... programas de aplicación, que realizan una acción concreta gestión de clientes, compresión de datos... Entre el hardware y el software se encuentra el firmware, que es un software o conjunto de instrucciones grabadas en memoria no-volátil (ROM, EPROM...) que establece la 1

Upload: nguyennhu

Post on 19-Sep-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Juan Carlos Pérez González

UD 1. Caracterización de sistemas operativos

• Sistema informático.

• Sistemas de representación da información.

• Compoñentes físicos do sistema informático.

• Software de base dun sistema informático.

• Concepto, elementos e estrutura dun sistema operativo.

• Clasificación dos sistemas operativos.

• Funcións do sistema operativo: recursos.

• Procesos do sistema operativo: estados dos procesos; prioridade.

• Sistemas de ficheiros: tipos e características.

• Transaccións: sistemas transaccionais.

• Evolución dos sistemas operativos: versións. Sistemas operativos actuais.

1. Sistema Informático.

Un sistema informático es un conjunto de elementos (software, hardware y ser humano)

interconectados o relacionados para el tratamiento de información. Así tenemos

computadores, redes, switches, servidores,...

Elementos que lo forman:

– “hardware” o elementos físicos de carácter electrónico,

– “software” o conjunto de programas que permiten al hardware ser una máquina

útil. Podemos a su vez dividir en dos tipos:

• programas de sistema, es lo que conocemos como sistema operativo que

facilita al resto del software y al usuario interactuar con la máquina ...

• programas de aplicación, que realizan una acción concreta gestión de

clientes, compresión de datos...

Entre el hardware y el software se encuentra el firmware, que es un software o conjunto

de instrucciones grabadas en memoria no-volátil (ROM, EPROM...) que establece la

1

Juan Carlos Pérez González

lógica de más bajo nivel (lenguaje maquina o ensamblador) que controla los dispositivos

eléctrónicos del computador.

2. Sistemas de representación de la información

Para representar la información utilizamos los sistemas de codificación. En el caso de

los ordenadores al ser máquinas electrónicas establecieron un lenguaje basado en dos

estados 0 voltios y 5 voltios. Esto se traduce en una codificación es binaria (1 y 0),

codificación que es la base de lenguaje utilizado por los computadores. Cualquier

información que deseemos representar en un computador ser en una secuencia de ceros

y unos.

Los datos, materia prima de la información, se clasifican en numéricos y alfabéticos.

• Códigos numéricos

Para facilitar su estudio debemos tener claro los siguientes conceptos:

Base: número de símbolos que se utilizan para la representación.

Rango de representación: dado el número N de cifras, el rango indica las cantidades

representables en el mismo.

Sistema posicional: el valor de los símbolos varía en función de la posición que ocupen.

Por ejemplo, el sistema decimal, que por obvio no lo analizaremos el número 6308 sería:

6·103 + 3·102+ 0·101 + 8·100 = 6308

Teorema fundamental de la numeración: Este teorema establece la forma general de

construir números en un sistema de numeración posicional.

, número válido en el sistema de numeración.

, base del sistema de numeración. Número de símbolos permitidos en el sistema.

, un símbolo cualquiera de los permitidos en el sistema de numeración.

,: número de dígitos de la parte entera.

, coma fraccionaria. Símbolo utilizado para separar la parte entera de un número

de su parte fraccionaria.

,: número de dígitos de la parte decimal.

La fórmula general para construir un número N, con un número finito de decimales, en un

sistema de numeración posicional de base b es la siguiente:

2

Juan Carlos Pérez González

Binario b=2 Decimal b=10 Octal b=8 Hexadecimal b=16

Los sistemas de numeración más utilizados son:

– Decimal.

– Octal

– Binario

– Hexadecimal

La siguiente tabla establece su equivalencia:

Decimal Binario Octal Hexadecimal

0 0 0 0 0 0 0

1 0 0 0 1 1 1

2 0 0 1 0 2 2

3 0 0 1 1 3 3

4 0 1 0 0 4 4

5 0 1 0 1 5 5

6 0 1 1 0 6 6

7 0 1 1 1 7 7

8 1 0 0 0 1 0 8

9 1 0 0 1 1 1 9

10 1 0 1 0 1 2 A

11 1 0 1 1 1 3 B

12 1 1 0 0 1 4 C

13 1 1 0 1 1 5 D

14 1 1 1 0 1 6 E

15 1 1 1 1 1 7 F

Tabla 1

Como establecimos antes el SISTEMA BINARIO utiliza dos dígitos 1 y 0 denominados bit

(binary bit).

a. Conversión de decimal en binario y binario a decimal. Hay varias formas, pero

todas se basan en la descomposición de potencias de dos del número decimal en

cuestión. Consideremos el número 54, su conversión en binario sería:

3

Juan Carlos Pérez González

es decir, 54(10 = 110110(2

Otra forma sería establecer la tabla de potencias de 2:

128 64 32 16 8 4 2 1

0 0 1 1 0 1 1 0

Tabla 2

Sumando las potencias en base 2 cuyo segunda fila corresponda con el valor 1 resulta 54.

Caso práctico. Realiza la conversión binaria de los siguientes números decimales:

– 247

– 3129

Caso práctico. Realiza la conversión de binario en decimal de los siguientes números:

– 1101100111

– 10110001

b. Conversión de una fracción decimal a binario. Para entenderlo mejor realicemos un

ejemplo de conversión en binario del número 12,125 con tres bits de aproximación.

1. Parte entera: como el caso anterior. Observando la tabla 2 resulta 8 + 4, es

decir, 1100(2

2. Parte fraccionaria: Multiplicamos la parte decimal por 2

◦ 0,125 · 2 = 0,250 si es inferior a 1 el binario que le corresponde es 0.

◦ 0,250 · 2 = 0,500 según lo anterior el binario también es 0

◦ 0,500 · 2 = 1 como es igual o superior a 1 entonces el binario sería 1.

3. Resultado 12,125(10 = 1100,001(2

Caso práctico. A continuación realiza la conversión binaria de los siguientes números:

– 247,136

– 31,29

4

Juan Carlos Pérez González

Si observamos detenidamente los casos prácticos vemos que utilizando el sistema binario

algunos números decimales nunca los podremos obtener con exactitud.

c. Conversión de un número binario en decimal. Se aplica directamente el Teorema

Fundamental de la Numeración. Por ejemplo,

11,011 = 1·21+ 1·20 + 0·2-1 + 1·2-2 + 1·2-3 = 2 + 1 + 0 + 0,25 + 0,125 = 3,375

Caso Práctico. Realizar las conversiones a decimal de los números binarios siguientes:

– 11010,110101

– 10011,1001

d. Aritmética binaria. Las cuatro operaciones básicas de matemática en binario son

1. Suma

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 0 con acarreo posterior de 1

Veamos el siguiente ejemplo:

Caso Práctico. Convierte en binario y suma posteriormente los números 56 y 120.

2. Diferencia

0 - 0 = 0

1 – 0 = 1

1 – 1 = 0

0 – 1 = 1 con acarreo o préstamo anterio de 1

Veamos el ejemplo siguiente:

5

Juan Carlos Pérez González

2 2

Si nos fijamos el 1 del minuendo (rojo) se pone a 0 y pasa a ser 2 en el término anterior.

Caso práctico. Convierte en binario los números decimales 87 y 25 y realiza la resta.

3. Producto

0 x 0 = 0

0 x 1 = 0

1 x 0 = 0

1 x 1 = 1

La operación es bastante sencilla, ver el ejemplo

Caso Práctico. Realiza la siguiente operacion previa conversión a binario 56 x 112,

4. División binaria

0 / 1 = 0

1 / 1 = 0

Caso Práctico. Previa conversión a binario realiza la división 25/5 .

6

Juan Carlos Pérez González

El SISTEMA OCTAL utiliza 8 símbolos cuya equivalencia en binario es la siguiente.

Octal 0 1 2 3 4 5 6 7

Binario 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

Tabla 3

a. Cambio de decimal a octal. Hay dos formas.

• Igual que en binario realizamos las correspondientes divisiones pero en este caso

el divisor es 8. Con respecto a los decimales se tiene en cuenta la tabla siguiente:

8-1 8-2 8-3 8-4

0,125 0,015625 0,001953125 0,00048828125

Otra forma más sencilla, primero a binario y luego agrupar las cifras de tres en tres.

a. 323 en binario es 101000011

b. 0,625 en binario

0,625 x 2 = 1,25 → 1

0,25 x 2 = 0,5 → 0

0,5 x 2 = 1 → 1

El número binario resultaría 101 000 011 101 agrupados de tres en tres.

El número octal resultaría 5 0 3 , 5

Caso Práctico. Realiza las siguientes operaciones:

– Convertir los números decimales 236,12 y 362,125 a octal.

– Realiza las operaciones suma y resta en octal.

El cambio de octal a decimal se realiza aplicando el Teorema Fundamental de la

Numeración. Así por ejemplo para pasar el número en octal 7236 podemos:

7

Juan Carlos Pérez González

1. Usando las potencias de 8: 7·83 + 2·82 + 3·81 + 6·80 = 3742

2. Pasar primero a binario y luego a decimal:

111 010 011 110 = 3742

Caso práctico. Convierte en decimal y binario el siguiente número octal: 743.

El SISTEMA HEXADECIMAL o sistema en base 16 utiliza 16 símbolos para representar

cantidades del 0...F.

En la tabla siguiente tenemos la equivalencia entre binario y octal.

Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F

Binario 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1

a. Cambio de decimal a hexadecimal. Hay dos formas.

1. Tal como hicimos en binario realizamos las correspondientes divisiones pero en

este caso el divisor es 16.

Con respecto a los decimales tendremos en cuenta la tabla siguiente:

16-1 16-2 16-3

0,063 0,003906250 0

Fijémonos en el ejemplo siguiente que convierte en hexadecimal o decimal 250,25

2. Otra sería pasar primero a binario y luego agrupar las cifras de cuatro en cuatro.

a. 250 en binario es 11111010

b. 0,25 en binario

0,25 x 2 = 0,5 → 0

8

Juan Carlos Pérez González

0,5 x 2 = 1 → 1

0 x 2 = 0 → 0

0 x 2 = 0 → 0

El número binario resultaría 1111 1010 0100 agrupados de cuatro en cuatro.

El número hexadecimal resultaría F A , 4

Caso práctico. Realiza las siguientes operaciones

– Convertir los números decimales 236,12 y 362,125 a hexadecimal, el primero por

la forma 1 y el segundo por la forma 2.

– Realiza las operaciones suma y resta en hexadecimal.

• Representación de números negativos.

Hay varias formas de representar los números negativos en binario, pero solo veremos la

más básica: Módulo y signo.

Es el más simple. Sus características son:

a. Utiliza el primer bit para indicar el signo: 0 para positivos 1 para negativos.

0100 sería el 4 decimal

1100 sería el -4 decimal

Caso práctico. Representar el 53 y -53 en binario.

b. El cero tienen dos representaciones 1000...0000 y 000...000 lo que genera

complicaciones.

c. Esta forma tiene el problema de la suma de que necesitamos comparar el

valor absoluto de cada número para determinar el signo final de la operación.

Otra consideración importante es la extensión del signo. Esta operación es necesaria

cuanto tenemos dos números de m y n bits siendo m>n, y consiste en añadir 0 para

que ambos números tengan el mismo número de bits.

Por ejemplo supongamos que tenemos el número 12 en números binario de 8 bits

00001100 y el número -11 en número binario de 6 bits 101011. Para operar con ambos

números necesitamos añadir dos ceros al segundo quedando 10001011.

9

Juan Carlos Pérez González

• Representación de números reales.

Estableceremos las dos posibilidades: coma fija y coma flotante.

a. Coma fija.

Establece un número fijo de decimales. Por ejemplo, en el caso de 16 bits, 7 para los

decimales, 8 para representar entera y 1 para el signo.

Para representar el número 19,32 y -19,32 sería:

– 19,32 : 000010011,0101000

– -19,32: 100010011,0101000

b. Representación en coma flotante

Para aumentar el rango de valores sin aumentar el número de bits se suele utilizar la

codificación basada en notación científica:

m·2 e

Este sistema recibe el nombre de coma flotante (recordad la tasa de rendimiento o

capacidad de procesamiento MFLOPS). Se dice flotante porque la coma en el código es

variable en función del valor del exponente a diferencia del anterior que era fija.

El sistema de representación en coma flotante tiene dos campos:

• mantisa o m

• e o exponente

A su vez el bit más significativo (más a la izquierda) de la mantisa contiene el signo. La

mantisa se codifica en coma fija (entera o fraccionaria) y el exponente siempre entera.

Existen tres formatos en coma flotante:

Directo signo mantisa exponente

Comparación rápida signo exponente mantisa

Precisión ampliada signo exponente signo mantisa

Expondremos solamente el primer método, el directo. Supongamos un ordenador de 16

bits que utiliza 5 para el exponente, 10 bits para la mantisa y 1 para el signo. Sería algo

así como:

• 0 0101100000 01011 = 0,01011 · 21011 = 0,34375 · 211 = 704(10

La representación en coma flotante exige cierto cuidado en su manejo porque un valor

puede tener más de una representación válida. Para evitar esto lo que se hace es

normalizar la representación, es decir, que el primer bit significativo de la mantisa

10

Juan Carlos Pérez González

ocupe la posición inmediatamente a continuación del signo. Así el primer ejemplo

resuelto 704, la representación correcta sería.

0 1011000000 001010

Habría que restar una unidad al exponente (unidad no bit), es decir de exponente 11

(once) a exponente (10).

La precisión, puede ser:

– simple precisión: la palabra es de 32 bits = 1 bit signo + 8 bits exponente + 23

bits mantisa

– doble precisión: la palabra es de 64 bits = 1 bit signo + 11 bits exponente + 52

bits mantisa.

Para fijar las ideas se describirá el sistema IEEE 7541 que es el estándar en los

computadores de la artimética en coma flotante y utiliza ambas precisiones.

– emplea mantisa fraccionaria

– la mantisa se representa en el sistema de módulo y signo

– utiliza el formato de precisión ampliada, valiendo siempre 1 el bit implícito

– la coma se sitúan a la derecha del bit implícito, siendo este la parte entera de la

mantisa

– el exponente se representa en exceso a 2n-1 -1. Siendo n los de bits del exponente.

Signo 1 bit Exponente 8 o 11 bits Mantisa 23 o 52 bits

• Códigos alfanuméricos.

Uno de los aspectos a destacar de los códigos alfanuméricos es su estandarización.

Generalmente deben tener las siguientes características:

– representar juego de caracteres:

– letras del alfabeto mayúsculas y minúsculas

– signos de punutación ( , . ? * % …6

– las 10 cifras decimales 0...9

– los caracteres de control o órdenes entre dispositivos NUL, DEL, ESC, LF

– la longitud oscila entre los 6 y 16 bits

– el sistema será de codificación directa

1 Existe applets por Internet que convierte números en base decimal en formato IEEE 754 http://www.zator.com/Cpp/E2_2_4a1.htm

11

Juan Carlos Pérez González

Los más importantes desde el punto de visto histórico son:

1. FIELDATA: de 6 bits. Es una extensión del código BCD numérico al cual se añaden dos

bits, llamados de zona (columna). Permite 64 caracteres.

Decimal Codigo BCD

0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001

2.ASCII: El código ASCII (de American Standard Code for Information Interchange —

Código Estadounidense Estándar para el Intercambio de Información), pronunciado

generalmente [áski], es un código de caracteres basado en el alfabeto latino tal como se

usa en inglés moderno y en otras lenguas occidentales. En los años 60 empezó con 7 bits

que permitía 128 caracteres. Luego se usaron 8 bits (mal llamado ASCII extendido) que

permite 256 caracteres. El código ASCII reserva los primeros 32 códigos (numerados del

0 al 31 en decimal) para caracteres de control códigos no pensados originalmente para

representar información imprimible, sino para controlar dispositivos (como impresoras).

12

Juan Carlos Pérez González

3. UNICODE: es un estándar de codificación de caracteres diseñado para facilitar el

tratamiento informático, transmisión y visualización de textos de múltiples lenguajes y

disciplinas técnicas, (p.e. Braille) además de textos clásicos de lenguas muertas. El

término Unicode proviene de los tres objetivos perseguidos: universalidad, uniformidad y

unicidad. Utiliza 16 bits lo que supone 65536 caracteres. La mayoría de los líderes de

la industria informática Microsoft, IBM, Apple... lo han adaptado y es imprescindible para

los estándares de Java, XML, JavaScript, CORBA.... Su incorparación a Internet como

estándar en la representación de códigos supuso una disminución en los costos de uso de

caracteres en las aplicaciones cliente servidor. Apareció con los primeros Windows NT e

IE y Netscape en su versión 4.

4. BCD y EBCDIC: BCD significa decimal codificado binario es simplemente codificar los

números del 0...9 en binario agrupando en cuartetos. En la página anterior se incluye la

tabla. Existen variaciones sobre este, código Gray, código Aiken...

EBCDIC (Extended Binary Coded Decimal Interchange Code) es un código estándar de

8 bits usado por sus computadores mainframe de IBM. Es una extensión del anterior.

13

Juan Carlos Pérez González

• Compactación de la información

A veces se hace necesario almacenar o trasmitir gran cantidad de información y donde

resulta conveniente reducir su tamaño. Hay dos técnicas fundamentales:

1. lossy que se refiere a ficheros comprimidos con pérdidas. Utilizado en

archivos multimedia, códecs... El objetivo es representar cierta cantidad de

información utilizando una menor cantidad de la misma, siendo imposible una

reconstrucción exacta de los datos originales y siendo esa información perdida no

imprescindible. En archivos gráficos determinados colores que son similares o

imágenes no perceptibles suelen omitirse a la hora de guardar el archivo y así se

reduce el tamaño. Igual sucede en formatos de archivo como mp4 en los cuales

determinadas frecuencias imperceptbiles al oído humano no se perciben y como tal

no se guarda. Existen códecs predictivos capaces de reconstruir a partir de la

información guardada información que se desestimó en su momento. Muchos de

los códecs de video e imágenes hacen uso del mismo.

2. lossless que se refiere a archivos comprimidos sin pérdidas. Se utiliza

preferentemente en archivos de texto. La compresión sin perdidas es una técnica

que consiste en la garantía de generar un duplicado exacto del flujo de datos de

entrada después de un ciclo de compresión / expansión . Es generalmente

implementada usando uno o dos diferentes tipos de modelos: estático o basado

en diccionario. Por ejemplo si observamos que una palabra o carácter tiene la

probabilidad de que aparezca en mayor grado se representaría con código más

sencillos. El algorimo más utilizado y conocido es el Lempel-Ziv y derivados del que

muchos programas como Winzip, Winrar, Gzip... hacen uso. También formatos

multimedia como PNG y WAV lo utilizan.

• Medidas de la información

◦ Byte

◦ Kilobyte = KB

◦ Megabyte = MB

◦ Gigabyte = GB

◦ Terabyte = TB

◦ Petabyte = PB

◦ Exabyte = EB

◦ Zettabyte = ZB

◦ Yottabye = YB

◦ Brontobyte = BB

◦ GeopByte = GeB

14

Juan Carlos Pérez González

3. Componentes físicos de un ordenador

Se conoce como hardware y es el conjunto de los componentes físicos que integran una

computadora. Según su funcionalidad:

– Microprocesador: Componente fundamental del computador, encargado de

interpretar y ejecutar instrucciones y de procesar datos. Consta de una UC unidad

de control y UAL unidad aritmético-lógica.

– Placa base: Es el soporte fundamental que aloja y comunica a todos los demás

componentes.

– Tarjeta gráfica: Es una tarjeta de expansión encargada de procesar los datos

provenientes de la CPU y transformarlos en información comprensible y

representable en un dispositivo de salida, como un monitor o televisor.

– Almacenamiento: hay diferentes tipos de memorias:

– Memoria RAM: La RAM es la memoria utilizada en una computadora para el

almacenamiento transitorio y de trabajo (no masivo) está formada por módulos

de memoria que son tarjetas de circuito impreso que tienen soldados cirtuitos

integrados de memoria actualmente DRAM por una o ambas caras.

– ROM: Medio de almacenamiento que permite sólo la lectura de la información y

no su escritura.

15

Juan Carlos Pérez González

– Dispositivos Periféricos: son unidades o dispositivos que permiten al ordenador

comunicarse con el exterior e intercambiar información y datos. Los podemos

clasificar a su vez:

– Periféricos de entrada. Entre los periféricos de entrada se puede mencionar:

teclado, mouse o ratón, escáner, micrófono, cámara web , lectores ópticos de

código de barras, Joystick, lectora de CD, DVD o BluRay (sólo lectoras), placas

de adquisición/conversión de datos, etc.

– Periféricos de salida. Los dispositivos más comunes de este grupo son los

monitores clásicos (no de pantalla táctil), las impresoras, y los altavoces.

– Entrada/Salida: son tanto de entrada como de salida. Se puede mencionar

como periféricos de Entrada/Salida a: discos rígidos, disquetes, unidades de

cinta magnética, lecto-grabadoras de CD/DVD, discos ZIP, etc. También entran

en este rango, con sutil diferencia, otras unidades, tales como: Tarjetas de

Memoria flash o unidad de estado sólido, tarjetas de red, módems, tarjetas de

captura/salida de vídeo, etc.

4. Software de base de un sistema informático

Se llama Software de Sistema o Software de Base al conjunto de programas que sirven

para interactuar con el sistema, confiriendo control sobre el hardware, además de dar

soporte a otros programas.

El Software de Sistema se divide en:

• Sistema operativo: del que hablaremos más adelante

16

Juan Carlos Pérez González

• Controladores: son programas que permiten a otros programa de mayor nivel

como un sistema operativo interactuar con un dispositivo de hardware.

• Utilidades: realizan diversas funciones para resolver problemas específicos,

además de realizar tareas en general y de mantenimiento. Algunos se incluyen en

el sistema operativo. Podemos clasificarlos en:

• Software de Aplicación o programas diseñados para o por los usuarios

para facilitar la realización de tareas específicas en el ordenador, como

pueden ser las aplicaciones ofimáticas (procesador de texto, hoja de cálculo,

programa de presentación, sistema de gestión de base de datos...), u otros

tipos de software especializados como software médico, software educativo,

editores de música, programas de contabilidad, etc.

• Software de Programación o conjunto de herramientas que permiten al

desarrollador informático escribir programas usando diferentes alternativas y

lenguajes de programación. Este tipo de software incluye principalmente

compiladores, intérpretes, ensambladores, enlazadores, depuradores,

editores de texto y un entorno de desarrollo integrado que contiene las

herramientas anteriores, y normalmente cuenta una avanzada interfaz

gráfica de usuario (GUI).

17

Juan Carlos Pérez González

5. Concepto, elementos y estructura de un sistema operativo

Un sistema operativo es conjunto de programas que se integran con el hardware para

facilitar al usuario el acceso y aprovechamiento de los recursos disponibles de la

máquina. El SO tiene las siguientes tareas principales y que veremos con mayor

profundidad en apartados posteriores:

• Proporcionar ya sea una interfaz de línea de comando o una interfaz gráfica al

usuario, para que éste último se pueda comunicar con la computadora.

◦ Interfaz de línea de comando: Tú introduces palabras y símbolos desde el

teclado de la computadora, por ejemplo, MS-DOS.

◦ Interfaz gráfica del Usuario (GUI): Seleccionas las acciones mediante el uso

de un ratón para pulsar sobre figuras llamadas iconos o seleccionar opciones

de los menús.

• Administrar los dispositivos de hardware: Cuando corren los programas

necesitan utilizar la memoria, monitor, unidades de disco, los puertos de

Entrada/Salida. El SO sirve de intermediario entre los programas y el hardware.

• Administrar y mantener los sistemas de archivo de disco. Los SO agrupan la

información dentro de compartimentos lógicos para almacenarlos en el disco. Estos

grupos de información son llamados archivos. Los archivos pueden contener

instrucciones de programas o información creada por el usuario. El SO mantiene

una lista de los archivos en un disco, y nos proporciona las herramientas

necesarias para organizar y manipular estos archivos.

• Proporcionar servicios a otros programas. Estos servicios son similares a

aquellos que el SO proporciona directamente a los usuarios. Por ejemplo, listar los

archivos, grabarlos a disco, eliminar archivos, revisar espacio disponible, etc.

Cuando los programadores escriben programas de computadora, incluyen en sus

programas instrucciones que solicitan los servicios del SO. Estas instrucciones son

conocidas como "llamadas al sistema".

• Detección de errores: El sistema operativo necesita constantemente detectar

posibles errores. Los errores pueden producirse en la CPU y en el hardware de

memoria (como un error de memoria por un fallo eléctrico), en los dispositivos de

E/S (como un error de lectura en una cinta, una confusión de tarjetas en la lectora

de tarjetas o falta de papel en una impresora) o bien en el programa de usuario

18

Juan Carlos Pérez González

(como un overflow aritmético, una tentativa ilegal de acceso a una posición de

memoria, o el empleo de demasiado tiempo de CPU). Para cada tipo de error, el

sistema operativo debe adoptar la iniciativa apropiada que garantice una

computación correcta y consistente.

• Asignación de recursos: Cuando hay múltiples usuarios o múltiples trabajos

ejecutándose al mismo tiempo, hay que asignar recursos a cada uno de ellos. El

sistema operativo gestiona muchos tipos diferentes de recursos. Algunos de ellos

(como ciclos de CPU, de memoria principal y almacenamiento de ficheros) pueden

tener un programa especial de asignación, mientras que otros (como dispositivos

de E/S) disponen de un programa de solicitud y de liberación mucho más general.

• Control de acceso de usuarios que permite establecer limitaciones a los recursos

de los diferentes usuarios del sistema.

• Protección: Los propietarios de la información almacenada en un sistema

informático multiusuario posiblemente deseen controlar su uso. Cuando para

mejorar la utilización varios trabajos disjuntos se ejecutan simultáneamente no

debe ser posible que un trabajo interfiera a los demás.

La arquitectura de un SO, en líneas generales, es la siguiente:

19

Juan Carlos Pérez González

En un Sistema Operativo moderno se aprecian diferentes capas, desde el nivel más alto

al más bajo encontramos:

• Aplicaciones de usuario. Colección de herramientas que utilizan los usuarios.

(Gimp, Firefox, Inkscape, Apache, GCC...)

• Intérprete de comandos/Interfáz gráfica de usuario: Permite la comunicación

entre el sistema y el usuario. Existen distintas posibilidades, tanto de intérprete de

comandos (bash, csh, ksh, commandcom...) como de interfáz gráfica (Windows,

Gnome, KDE...)

• Llamadas al sistema: Se escriben bibliotecas con funciones de uso frecuente,

de tal manera que otros componentes software las puedan utilizar sin tener que

volverlas a implementar (funciones matemáticas, de acceso a ficheros,

comunicaciones, procesado gráfico...).

• Núcleo o kernel: Controla el hardware y las operaciones básicas que realiza el

sistema operativo. Típicamente se encarga de la gestión de procesos, la gestión

de memoria y el control de todos los elementos hardware. Se ejecuta en modo

núcleo o modo protegido y siempre está residente en memoria. Los procesos

solo pueden acceder a los recursos del ordenador a través del núcleo mediante

llamadas al sistema. Un fallo en este software arruina todo el sistema informático,

por esto, cuanto menor sea la cantidad de código que se ejecuta en modo núcleo,

menores serán las posibilidades de introducir bugs fatales.

A grandes rasgos se distingue entre núcleos monolíticos (los tradicionales) todos

su módulos o componentes están integrados en un solo bloque, micronúcleos

(más modernos, pretenden incluir en el núcleo sólo lo esencial), máquinas

virtuales en este caso se establecen al nivel de usuario varias máquinas virtuales

que son copias exactas de la máquina real y finalmente la arquitectura cliente-

servidor y consiste en reducir al mínimo el kernel, al igual que en el caso de los

microkernels, pero en este caso la única función del kernel es de servir de puente

entre procesos: cuando una función necesita de otra es el kernel el que se encarga

de mantener la comunicación entre ellas, pero nada más.

• HAL Hardware Abstraction Layer: Se encarga de independizar los detalles de la

arquitectura hardware para el resto de los componentes. Forma parte del núcleo,

de manera que la migración a una nueva arquitectura no suponga reescribirlo de

20

Juan Carlos Pérez González

nuevo.

En resumen, la arquitectura en un sistema operativo de modo general es la siguiente:

NIVEL NOME E DESCRIPCIÓN

3USUARIO.- es la capa o nivel encargado de controlar los procesos a

nivel de usuario, es decir muestra los usuarios los procesos a ejecutar.

2

SUPERVISOR.- se encarga de realizar las comunicaciones de cada

proceso entre el sistema y el usuario, controla y coordina la gestión de

E/S de los diferentes procesos hacia los periféricos y los dispositivos de

almacenamiento externo.

1 EJECUTIVO.- Se lleva a cabo la gestión y administración de la memoria.

Almacena los procesos en páginas en la memoria principal.

0

NÚCLEO.- Se encarga de controlar a UCP y de gestionar y planificar los

procesos que llegan al procesador para ser ejecutados fundamentales en

los sistema multiusuario.

6. Clasificación de los sistemas operativos.

21

Juan Carlos Pérez González

• Clasificación por numero de usuarios:

◦ M onousuario: este tipos de sistemas operativos son aquellos que únicamente

cuentan con un usuario en un determinado tiempo. (Windows 98)

◦ Multiusuario: también conocidos como multipuestos, son los tipos de sistemas

operativos que permiten soportar varios usuarios o puestos de trabajo al mismo

tiempo. (Windows 7), Linux, Windows Server

• Clasificación según el número de procesos:

◦ Uniprocesos: Un sistema operativo uniproceso es aquél que es capaz de

manejar solamente un procesador de la computadora, de manera que si la

computadora tuviese más de uno le sería inútil. (MS-DOS)

◦ Multiprocesos: Un sistema operativo multiproceso se refiere al número de

procesadores del sistema, que es más de uno y éste es capaz de usarlos todos

para distribuir su carga de trabajo. (Windows XP, Linux, Windows Server)

• Clasificación según el número de tareas:

◦ Monotarea: Los sistemas monotarea son aquellos que sólo permiten una tarea

a la vez por usuario. (MS-DOS)

◦ Multitarea: Un sistema operativo multitarea es aquél que le permite al usuario

estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar

escuchando música al mismo tiempo que modifica un documento de texto.

(LINUX-UNIX)

• Clasificación según el tiempo:

◦ Tiempo real: es un sistema operativo que ha sido desarrollado para aplicaciones

de tiempo real. Como tal, se le exige corrección en sus respuestas bajo ciertas

restricciones de tiempo. (Windows CE)

◦ Tiempo compartido: Permite que se simule que cada usuario dispone de todo el

sistema y sus recursos para él. El usuario realiza una petición a la

computadora, esta la procesa y la respuesta aparece en la terminal del usuario.

(DEC-10), Windows Server, UNIX

7. Funciones del sistema operativo: recursos.

Las funciones principales de un sistema operativo son las siguientes:

22

Juan Carlos Pérez González

• Gestión de la memoria principal

• Gestión de los dispositivos de E/S

• Gestión del procesador.

• Gestión de los sistemas ficheros.

– Gestión de la memoria principal

El SO debe mantener una estructura de datos donde almacena la información

sobre qué zona de la memoria ocupa cada proceso, así como de las zonas de

la memoria libres. La CPU capta de la memoria principal las instrucciones

máquina de los programas para ejecutarlas. Esto implica que para que un

programa se pueda ejecutar debe esta cargado en la memoria principal. Por

esto el tamaño máximo del código máquina de un programa no debería exceder

del tamaño de la memoria principal. La Memoria Virtual permite que el usuario

pueda crear programas cuyo código máquina excede del tamaño de la memoria

principal.

La memoria es gestionada por el llamado administrador de memoria. Lleva un

registro de las partes de memoria que están ocupadas y de las que están libres.

Reserva memoria para los nuevos procesos, y libera de la memoria los procesos

que ya se ejecutaron. Además gestiona la información o programas situados en la

memoria que pasan los discos encargándose de su distribución nos mismos.

Hay varias técnicas de gestión de la memoria:

– División la memoria en particións fijas. La cola de procesos solicita una de

esas particións y cuando se liberan pasa el proceso a ocupála. Él problema de

este sistema es cuando el proceso en el ocupa toda la partición, como por

ejemplo, las particións son de 1 MB y el proceso de 800KB, se pierde 200 KB

es lo que se conoce como fragmentación interna.

23

Juan Carlos Pérez González

– División en particiones variables o dinámicas, mejora el problema anterior

pero su gestión es complicada y sobrecarga de trabajo a la CPU y desemboca

en la fragmentación externa.

– Memoria virtual o de intercambio intercambio (swap) aparece en los

sistemas multitarea y multiusuario es un intercambio continuo de procesos que

se están ejecutando entre memoria principal debido a las limitaciones de

tamaño de esta y el disco duro.

– Paginación la memoria principal se encuentra particionada en trozos iguales de

tamaño fijo relativamente pequeños y que cada proceso está dividido

también en pequeños trozos de tamaño fijo y del mismo tamaño que los de

memoria. En tal caso, las partes del proceso, se conocen como páginas,

pueden asignarse a los trozos libres de memoria, conocidos como marcos o

marcos de página. Se evita la fragmentación externa.

24

Juan Carlos Pérez González

– Segmentación permite al programador contemplar la memoria como si

constara de varios espacios de direcciones o segmentos. Con memoria

virtual, el programador no necesita preocuparse de las limitaciones de memoria

impuestas por la memoria principal. Los segmentos pueden ser de distintos

tamaños y pueden crearse de forma dinámica.

– Gestión de los dispositivos E/S

Es la parte del sistema operativo encargada de la gestión de los dispositivos de

E/S, es decir, los periféricos. Los dispositivos se pueden clasificar:

• Adaptados al usuario: comunicar información al usuario.

25

Juan Carlos Pérez González

• Adaptados a la máquina: permiten comunicarse con el sistema.

• De comunicación: para transmitir información a dispositivos remotos.

Algunas de las características en las que los dispositivos pueden diferir son las siguientes:

• Unidad de transferencia. Unos dispositivos utilizan el byte como unidad de

transferencia (dispositivos de caracteres, como el teclado, impresora o el

ratón). Otros transfieren y/o almacenan la información en bloques (dispositivos

de bloques, como discos y cintas magnéticas).

• Velocidad. Los rangos en los que se mueven los dispositivos son muy amplios.

Los discos y los dispositivos de comunicación transfieren bloques de datos o

caracteres a gran velocidad y de forma constante, mientras que el teclado

transfieren a lo sumo algunos caracteres por segundo, con velocidad impredecible.

• Protocolos de comunicación. La comunicación entre el dispositivo y la CPU se

realiza de acuerdo a un determinado protocolo que depende del dispositivo y del

bus de comunicación.

• Operaciones. Hay dispositivos de entrada, de salida y de entrada/salida. Además,

algunos dispositivos requieren operaciones específicas (por ejemplo, posicionar el

cabezal de lectura/escritura en los discos).

• Errores. Las condiciones de error varían según el dispositivo. Por ejemplo, en la

impresora hay que tratar la falta de papel como una situación de error específica,

mientras que en un disco puede haber errores en el posicionamiento del cabezal.

Los controladores de los dispositivos (drivers) es un programa informático que permite

al sistema operativo interactuar con un periférico, haciendo una abstracción del

hardware y proporcionando una interfaz para usarlo. Se puede esquematizar como un

manual de instrucciones que le indica al sistema operativo, cómo debe controlar y

comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual

no se podría usar el hardware.

Los objetivos del tratamiento y gestión de la E/S de un dispositivo son:

• Independencia del periférico. Aspectos a considerar:

a) Un programa debe de ser independiente del modelo del periférico de un tipo

determinado de periférico que le sea asignado.

b) Un programa sea independiente lo más posible, del tipo de periférico empleado.

• Eficiencia.

• Tratamiento uniforme de los periféricos. el sistema de E/S es el responsable de

26

Juan Carlos Pérez González

reconocer los distintos códigos que usan los periféricos y traducirlos a una

representación interna uniforme para los programas.

Tipos de gestión E/S

• E/S controlada por programa. La C.P.U. esta ocupada mientras que se realiza

la operación de E/S, debe de comprobar cuando termina dicha operación. Pasos:

• E/S controlada por interrupciones.

Permite que la C.P.U. esté ocupada en alguna otra actividad mientras que se

realiza la operación de E/S, pues se enterará de que dicha operación se ha

completado cuando se produzca una interrupción. Las interrupciones son un

mecanismo que permite sincronizar la CPU con los sucesos externos, y por lo tanto

solapar una multitud de operaciones de E/S.

• DMA. Direct Memory Access permite a cierto tipo de componentes acceder a la

memoria del sistema o RAM para leer o escribir independientemente de la

CPU principal. Hardware que utilizan DMA, incluyendo controladores de unidades

de disco, tarjetas gráficas y de sonido. DMA permite a dispositivos de diferentes

velocidades comunicarse sin someter a la CPU a una carga de interrupciones.

• Procesadores E/S en este caso además de DMA el dispositivo está dotado de un

procesador propio que permite una práctica independencia del CPU principal e

incluso cuenta con instrucciones propias. Un caso sería la tarjeta gráficas actuales.

Cualquier ordenador hoy en día utilza el sistema por interrupciones y DMA

27

Juan Carlos Pérez González

8. Procesos del sistema operativo: estados de los procesos; prioridad.

Un proceso es un programa en ejecución en el UCP. Debido la que hoy hay mas de un

proceso ejecutándose y como la CPU es única y sólo pode ejecutar uno por unidad de

tiempo, el S.O. debe optimizar el recurso de la CPU los diferentes procesos.

Una Hebra (Thread) es un punto de ejecución de un proceso . Un proceso pode tener

uno o más hilos o hebras. Pero un hilo o hebra sólo puede pertenecer la un proceso.

Para entenderlo mejor pongamos el ejemplo del programa o proceso word, que puede

cargar uno o más documentos que representarían los hilos.

Los estados de un proceso vienen dados por la siguiente figura:

• Ejecución: tiene posesión del micro que lo está ejecutando.

• Espera o preparado: y el proceso que está listo o preparado para ser ejecutado

esperando turno la que el micro este libre o bien en espera porque un recurso que

precisa (CD, disqutera..) que en esos momentos está ocupado.

• Zombie: cuando finaliza su ejecución

Un programa convirtese en proceso cuando pasa la RAM. El PID (numero de

identificación de proceso) identifica a cada proceso de cualquier otro. Cada proceso es

lanzado por otro que se considera proceso padre, y él es el proceso hijo. Además a

cada proceso le acompaña una serie de estructuras de datos, registros, pila, contador de

programa, pid, lista de recursos ... denominada Bloque de Control del Proceso y que

constituye toda la información necesaria para la ejecución del proceso.

28

Juan Carlos Pérez González

Con el BCP facilita al planificador de procesos la gestión y el acceso de estos a la CPU.

Para determinar que procesos y con que prioridad acceden al microprocesador se

establecen diferentes algoritmos de planificación que veremos en el ejercicio práctico:

E1. Algoritmos de planificación en la web.

Cuando un proceso finaliza para que acceda otro al microprocesador tiene lugar lo que se

denomina cambio de contexto que no es más que guardar toda la información del

proceso saliente en el BCP para que cuando vuelva a ejecutarse continúe donde lo dejó

con los datos y estructuras adecuadas.

Por último, en lo que se refiere el tema de los procesos nos quedan dos conceptos

básicos: la sincronizacion y los interbloqueos. Cuando se ejecutan varios procesos el

mismo tiempo y usan recursos compartidos (memoria, micro, impresora) es

fundamental que trabajen sincronizados para evitar los interbloqueos. Entre los sistemas

de sincronización deprocesos que comparten recursos podemos citar como las más

destacadas:

• exclusión mutua que es un mecanismo que asegura que un solo proceso puede

tener acceso en un instante dado al recurso compartido

• sección crítica que es una parte de código accesible por varios procesos pero

que sólo pode acceder uno en un instante dado a la misma.

El bloqueo se produce cuándo dos lo mas procesos precisan del mismo recurso y no

pueden avanzar mientras uno de ellos no “suelte” dicho recurso. Imaginemos que un

proceso necesita la impresora y la unidad de disquette y sólo posee la primera, y esta la

espera de la segunda, y otro proceso también necesita la impresora y el disquete y sólo

posee este último, se produce lo que se llama interbloqueo, ningún proceso puede

29

Juan Carlos Pérez González

avanzar porque no dispone de los dos recursos. Para evitar esto existen diferentes

mecanismos como exclusión mutua, semáforos, que es una estructura de datos que

indica cuando un recurso está libre o no, y el paso de mensajes

9. Sistemas de ficheros: tipos y características.

Junto con la gestión de procesos y de los periféricos la gestión de los sistemas de

ficheros es el tercer pilar fundamental que componen las funciones del SO.

Lo primero que tenemos que considerar es que los dispositivos de almacenamiento

secundarios donde se guarda de forma permanente la información son de diversa

naturaleza (magnética como los discos duros IDE y SATA, ROM como los pendrives y

los más recientes discos duros SSD y óptica como los DVD, Bluray). Pero son los discos

duros magnéticos2, de momento, los que tienen mayor presencia en el respaldo de la

información del computador.

La estructura de ficheros de los sistemas actuales se basa en ficheros o archivos y

directorios o carpetas. Los ficheros son una una unidad lógica de informaación

compuesta básicamente por una secuencia de bytes o registros y que se caracterizar por

un nombre. Pueden ser:

• Ficheros normales o regulares (ASCII o binarios)

• Directorios

• Ficheros especiales de caracteres

• Ficheros especiales de bloques

El acceso puede ser secuencial (debemos recorrer los ficheros anteriores para acceder

al que buscamos) o aleatorio (se accede directamente).

Se conoce como atributos a las características que definen el fichero y entre otros están:

• permisos de acceso, escritura, lectura...

• propietario y/o creador

• tamaño

• fecha de creación y modificación

• contraseña...

Los directorios son ficheros que contienen información sobre otros ficheros

(nombre, tamaño, ubicación, ...). Las estructuras de directorios más habituales:

2 Ver el E1.Particiones para estudiar las cuestiones relacionadas con las particiones.de discos duros IDE.

30

Juan Carlos Pérez González

Tanto Linux como Windows utilizan un sistema jerárquico. Para indicar la ruta al

directorio hay dos formas:

• ruta absoluta: se indica toda la ruta desde el directorio raíz, por ejemplo,

/usr/var/www en Linux o c:\windows\system\config en Windows

• ruta relativa: se indica la ruta desde el directorio de trabajo o actual, por

ejemplo, si estoy en /usr para acceder a www solo tengo que indicar /var/www

Hay dos directorios especiales: el directorio . o directorio actual y el directorio .. o

directorio padre

Hay varias formas de implementar un sistema de ficheros:

• Asignación contigua: Todos los bloques de un mismo fichero están contiguos.

Fácil de implementar pero presenta fragmentación externa.

• Lista ligada Cada bloque contiene un puntero (no de bloque) al bloque siguiente.

31

Juan Carlos Pérez González

Evita la fragmentación externa pero el acceso a los fichero es lento.

• Asignación de lista ligada e índice es la misma idea que antes, pero los punteros

se almacenan en una estructura aparte (indice) que se almacena en disco, se lee

cuando se usa el sistema de cheros y se escribe de nuevo en disco si se modica,

mejora lo anterior pero el problema el crecimiento de la tabla de índices.

• Asignación de i-nodos A cada fichero se le asigna una estructura de datos

llamada nodo-i, donde se almacenan sus atributos y direcciones de sus bloques.

Dicha estructura se guarda en disco y se lee cuando accedemos al fichero.

El tamaño del bloque lógico (usado por el S.F.) suele ser múltiplo del tamaño del bloque

físico (usado por el disp. de almacenamiento).

32

Juan Carlos Pérez González

Los tipos de sistemas operativos más importantes son:

• EXT4: Sistema de archivos con registro diario (en inglés "journaling") del SO Linux.

• FAT (File Allocation Table o "Tabla de ubicación de archivos"): Es el principal

sistema de archivos desarrollado para MS-DOS y Windows. El sistema de archivos

FAT es relativamente sencillo. Además, el formato FAT es soportado por casi todos

los sistemas operativos para PCs IBM, y debido a esto a menudo se lo utiliza para

compartir información entre diversos sistemas operativos en un mismo equipo. Su

distribución de archivos simple permite la fragmentación, lo que produce

eventuales pérdidas en el desempeño de operaciones sobre archivos. Luego, FAT

no fue diseñado para redundancia en caso de fallas del sistema. Las primeras

versiones de FAT permitían nombres de archivo de hasta 12 caracteres, aunque

esto fue solucionado por Microsoft al inventar VFAT, el cual permite nombres de

hasta 255 caracteres. Finalmente, los sistemas de archivos FAT no permiten

directivas de seguridad, garantizando el acceso a todos los archivos de una

partición por cualquier usuario del sistema operativo.

• NTFS (New Tecnology File System o "Sistema de archivos de nueva tecnología"):

Sistema de archivos diseñado específicamente para Windows NT, con el objetivo

de crear un sistema de archivos eficiente, robusto y con seguridad incorporan

desde su base. También soporta compresión nativa de ficheros y encriptación.

NTFS permite definir el tamaño del cluster, a partir de 512 bytes (tamaño mínimo

de un sector) de forma independiente al tamaño de la partición. Es un sistema

adecuado para las particiones de gran tamaño requeridas en estaciones de trabajo

de alto rendimiento y servidores. Puede manejar discos de hasta 2 terabytes.

Necesita para si mismo una buena cantidad de espacio en disco duro por lo que no

es recomendable su uso en discos menores de 400 MB. La conversión a NTFS es

33

Juan Carlos Pérez González

unidireccional, si elige actualizar la unidad, no podrá volver a convertirla a FAT.

• ReiserFS:

Es un sistema de archivos de propósitos generales, diseñado e implementado por

un equipo liderado por Hans Reiser. Actualmente funciona bajo Linux, con la

versión 2.4.1 del núcleo Linux, se convirtió en el primer sistema de archivos con

registro por diario (en inglés, "journaling") en ser incluido en el núcleo estándar.

Esto reduce ampliamente el riesgo de corrupción del sistema de archivos (y la

necesidad de extensas revisiones del sistema) después de un apagado no

programado del sistema, ya sea por un corte eléctrico o un error del sistema.

• ISO 9660: Todos los CD-ROM actuales están provistos de este formato.

• xFAT: es el sistema por defecto de los pendrive.

10. Sistemas transaccionais.

Una transacción es un conjunto de operaciones en las que se ejecutan todas ellas o no

se ejecuta ninguna. Las órdenes de ejecución se envían todas de forma secuencial pero

el efecto final no tiene lugar hasta que se ejecuta la orden commit o realizar transacción o

rollback o se deshace toda la transacción. Este concepto es habitual en muchos sistema

informáticos actuales como en los bancarios, contables... de forma que el apunte no tiene

lugar hasta que se realizan todas las transacciones. Es una operación muy común en las

operaciones con bases de datos.

En el campo de los sistemas operativos podemos citar como transacciones la copia de

ficheros, renombrar ficheros...donde el SO no realiza la operación final hasta que hayan

tenido lugar todas las órdenes de ejecución. En los sistema de archivos más avanzados si

cuando se realiza una operación sobre ficheros en disco tiene lugar un corte de

alimentación son capaces de recuperar el sistema hacia el punto anterior de inicio de

laoperación para que el sistema siga manteniendo un estado coherente. Ello es debido

a los registros de diario donde se guardan la información de las operaciones realizadas

sobre el sistema.

Con un sistema de archivos transaccional, los datos se administran mediante la semántica

copia por escritura (copy on write COW). Los datos nunca se sobrescriben y ninguna

secuencia de operaciones se compromete ni se ignora por completo. Este mecanismo

hace que el sistema de archivos nunca pueda dañarse por una interrupción imprevista de

la alimentación o un bloqueo del sistema.

34

Juan Carlos Pérez González

Para ello, cuando haya que modificar algún archivo, se escriben sus datos en un nuevo

bloque en lugar de sobrescribirlos y cuando esté todo correcto, se borrará el bloque

antiguo con los datos inciales.

La técnica COW ofrece varias ventajas:

– el estado en disco siempre es válido

– las copias de seguridad son coherentes y fiables

– se pueden deshacer las modificaciones hasta un momento determinado.

12. Evolución de los sistemas operativos: versiones. Sistemas operativos

actuales.

Los Sistemas Operativos, al igual que el Hardware de los computadores, han sufrido una

serie de cambios revolucionarios llamados generaciones. En el caso del Hardware, las

generaciones han sido marcadas por grandes avances en los componentes utilizados,

pasando de válvulas (primera generación ) a transistores (segunda generación), a

circuitos integrados (tercera generación), a circuitos integrados de gran y muy gran

escala (cuarta generación). Cada generación Sucesiva de hardware ha ido acompañada

de reducciones substanciales en los costos, tamaño, emisión de calor y consumo de

energía, y por incrementos notables en velocidad y capacidad.

• Generacion Cero (1940)

Los primeros sistemas computacionales no poseían sistemas operativos. Los

usuarios tenían completo acceso al lenguaje de la maquina. Todas las

instrucciones eran codificadas a mano.

• Primera Generacion ( 1950)

Los sistemas operativos de los años cincuenta fueron diseñados para hacer mas

fluida la transición entre trabajos. Antes de que los sistemas fueran diseñados, se

perdía un tiempo considerable entre la terminación de un trabajo y el inicio del

siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes,

donde los trabajos se reunían por grupos o lotes. Cuando el trabajo estaba en

ejecución, este tenia control total de la maquina. Al terminar cada trabajo, el control

era devuelto al sistema operativo, el cual leía e iniciaba el trabajo siguiente. Para

poder correr un trabajo (programa), tenían que escribirlo en papel (en Fortran o en

lenguaje ensamblador) y después se perforaría en tarjetas. Se llevaría la pila

de tarjetas se introducía en el sistema. Cuando la computadora terminara el

35

Juan Carlos Pérez González

trabajo, la salida se dirigiría hacia la impresora o monitor.

• Segunda Generacion (a mitad de 1960)

La característica de los sistemas operativos fue el desarrollo de los sistemas

compartidos con multiprogramación, y los principios del multiprocesamiento.

En los sistemas de multiprogramación, varios programas de usuario se encuentran

al mismo tiempo en el almacenamiento principal, y el procesador se cambia

rápidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan

varios procesadores en un solo sistema computacional, con la finalidad de

incrementar el poder de procesamiento de la maquina.

La independencia de dispositivos aparece después. En la segunda generación,

el programa del usuario especificaba tan solo que un archivo iba a ser escrito en

una unidad de cinta con cierto numero de pistas y cierta densidad y el So se

encargaba de grabar los datos.

Se desarrollaron sistemas compartidos, en la que los usuarios podían

acoplarse directamente con el computador a través de terminales. Surgieron

sistemas de tiempo real, en que los computadores fueron utilizados en el

control de procesos industriales. Los sistemas de tiempo real se caracterizan

por proveer una respuesta inmediata.

Otra solución a la lentitud de los dispositivos de E/S es el buffering y el

spooling. El buffering trata de mantener permanentemente ocupados tanto la

CPU como los dispositivos de E/S. Una vez que se han leído los datos y que la

CPU va a iniciar la operación con ellos, el dispositivo de entrada es instruido para

iniciar inmediatamente la siguiente lectura. La CPU y el dispositivo de entrada

permanecen ocupados.

El spooling utiliza el disco como un buffer muy grande, para leer tan por

delante como sea posible, de los dispositivos de entrada y para almacenar los

ficheros de salida hasta que los dispositivos de salida sean capaces de

aceptarlos.

• Tercera Generacion (mitad de 1960 y de 1970)

Se inicia en 1964, con la introducción de la familia de computadores OS/360 de

IBM. Los computadores de esta generación fueron diseñados como sistemas para

usos generales . Eran sistemas de modos múltiples, algunos de ellos soportaban

36

Juan Carlos Pérez González

simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo

real y multiprocesamiento. Eran grandes y costosos, y muchos de los esfuerzos de

desarrollo terminaron muy por arriba del presupuesto y mucho después de lo que el

planificador marcaba como fecha de terminación. Estos sistemas introdujeron

mayor complejidad a los ambientes computacionales; una complejidad a la cual, en

un principio, no estaban acostumbrados los usuarios.

• Cuarta Generacion (mitad de 1970 en adelante)

En la cuarta generación la electrónica avanza hacia la integración a gran escala,

pudiendo crear circuitos con miles de transistores en un centímetro cuadrado y ya

es posible hablar de las computadoras personales y las estaciones de trabajo.

Surgen los conceptos de interfaces amigables intentando así atraer al público en

general. Se hacen populares el MS-DOS y UNIX. También es común encontrar

clones de computadoras personales.

Para mediados de los 80's, comienza el auge de las redes de computadoras y la

necesidad de sistemas operativos en red y sistemas operativos distribuidos. La

red mundial Internet se va haciendo accesible a toda clase de instituciones y se

comienzan a dar muchas soluciones ( y problemas ) al querer hacer convivir

recursos residentes en computadoras con sistemas operativos diferentes. Para los

90's el paradigma de la programación orientada a objetos cobra auge, así como

el manejo de objetos desde los sistemas operativos. Las aplicaciones intentan

crearse para ser ejecutadas en una plataforma específica y poder ver sus

resultados en la pantalla o monitor de otra diferente (por ejemplo, ejecutar una

simulación en una máquina con UNIX y ver los resultados en otra con DOS ). Los

niveles de interacción se van haciendo cada vez más profundos.

37

Juan Carlos Pérez González

38

Juan Carlos Pérez González

39