You are on page 1of 10

Introduccin a los sistemas operativos

1. Sistema informtico
El ordenador es una mquina electrnica que recibe y procesa datos para obtener un resultado. Un
ordenador est formado, fsicamente, por numerosos circuitos integrados y otros muchos
componentes de apoyo, extensin y accesorios, que en conjunto pueden ejecutar tareas diversas con
suma rapidez y bajo el control de un programa.
El modelo bsico de arquitectura de computadores fue definido en 1946 por Von Neumann. Hasta
entonces las computadoras existentes tenan programas cableados, que nicamente podan variar
modificando manualmente las conexiones entre las distintas unidades. La aportacin ms importante
de Von Neumann fue dotar a la computadora de la posibilidad de procesar diferentes programas
almacenados. El planteamiento de Von Neumann consista en unir permanentemente las unidades
fsicas de la computadora (CPU, memoria, disco, etc), coordinando su funcionamiento desde un
control central.
Esta arquitectura es la que se ha venido utilizando hasta hoy. Si bien existen nuevas arquitecturas
(que incorporan mltiples ncleos, memorias, buses, etc), todas ellas tienen la misma base definida
por Von Neumann, es decir: se basan en la separacin de dos partes esenciales: el hardware (su
composicin fsica: circuitos electrnicos, cables, teclado, etctera) y el software (la parte intangible:
programas, datos, informacin, etc).

Un sistema informtico (SI) es un sistema que permite almacenar y procesar informacin, formado
por un conjunto de partes interrelacionadas: hardware, software y recursos humanos.
- El hardware incluye computadoras o cualquier tipo de dispositivo electrnico.
- El software incluye el sistema operativo, firmware y aplicaciones.
- Los recursos humanos incluyen al personal tcnico que crea y mantiene el sistema y a los
usuarios que lo utilizan.
Wikipedia

La funcin del software por tanto ser ejecutar las instrucciones necesarias para que los distintos
componentes electrnicos del ordenador funcionen de forma lgica y coordinada. Estas instrucciones,
ordenadas y agrupadas de forma adecuada, constituyen un programa. El conjunto de varios
programas se denomina aplicacin informtica.

2. Componentes hardware de un sistema informtico


La arquitectura de Von Neumann est formada por los siguientes componentes fsicos:

Sobre esta arquitectura existen numerosas variantes encaminadas a optimizar el rendimiento del
sistema, basadas en la incorporacin de ms procesadores, ms memorias (cachs o memorias
distribuidas) o ms buses, pero todas estas soluciones parten de la base definida por Von Neumann.

1
2.1. Memoria central
La unidad de memoria contiene los programas que ejecuta el computador y los datos sobre los que
han de actuar dichos programas. Est compuesta por una seria de celdas con dos estados estables,
por lo que cada una de ellas puede guardar un bit. Los bits se agrupan en unidades direccionables
llamadas palabras.
El mapa de memoria, o cantidad de memoria a la que se puede acceder, es muy dependiente del
nmero de lneas del bus de direcciones, que suele coincidir con la longitud de la palabra.
Sobre la memoria se pueden realizar dos operaciones: lectura y escritura. Para realizar una lectura es
necesario indicar la direccin de memoria que se va a leer. Para una escritura, adems de la
direccin donde se va a escribir es necesario indicar el valor que se escribir. Casi todas las
memorias emplean el almacenamiento binario, es decir, la informacin ms elemental registrada es el
bit.
Sera deseable que la CPU tuviese acceso inmediato e ininterrumpido a cualquier informacin
almacenada en la memoria, pero hacer esto posible sera muy costoso, por lo que en su lugar se
utiliza una jerarqua de memorias, unas internas (memoria principal o memoria cach), y otras
externas (accesibles a travs del mdulo de E/S) de forma que se consiga un equilibrio entre
capacidad de almacenamiento y coste.

1- Registros de la CPU: son registros internos de la CPU, fabricados con semiconductores, de


muy poca capacidad de almacenamiento pero con una velocidad de acceso enormemente
alta. El acceso a estas memorias es aleatorio y por palabra.
2- Memoria cach: memorias de acceso aleatorio, muy rpidas pero de poca capacidad. Se
fabrican con semiconductores y se accede por palabra. Es habitual que estn organizadas en
varios niveles.
3- Memoria principal: mediana y rpida. Son memorias de semiconductores de acceso por
palabra. Existen dos tipos: la memoria ROM, a la que se accede al iniciar el ordenador, y la
memoria RAM, donde se almacenan los programas en ejecucin y los datos usados por esos
programas.
4- Memoria secundaria local: Discos duros (Memorias magnticas, ms grandes, lentas y
baratas que la memoria principal que almacenan los programas e informacin que no se
estn utilizando), memorias flash (fabricadas con transistores y permiten acceder a varias
direcciones simultneamente. Aunque actualmente se utilizan bsicamente como memorias
auxiliares, la rpida evolucin que est experimentando esta tecnologa (con incrementos de
capacidad y descensos de precios constantes) unido a sus caractersticas tcnicas (que las
hacen muy silenciosas, resistentes, pequeas, rpidas y de bajo consumo), hacen que los
fabricantes estn considerando utilizarlas como disco duro a corto/medio plazo en sustitucin
de los discos duros magnticos tradicionales, en especial en dispositivos mviles (porttiles,
tablets, telfonos, etc)) y memorias auxiliares (memorias estticas y no alterables,
normalmente basadas en tecnologa ptica. Son las ms lentas, por lo que habitualmente se
usan para realizar copias de seguridad. Son de este tipo: CD, DVD, blue-ray, HVD, cintas
magnticas, )
5- Memoria secundaria remota: sistemas de almacenamiento distribuido, servicios web,
almacenamiento en la nube, etc. Realmente no ser trata de una memoria fsica del ordenador,
pero conceptualmente podra considerarse como un nuevo nivel de memoria, de acceso ms
lento que los anteriores, precio cada vez menor y capacidad prcticamente ilimitada.

La memoria interna del ordenador est formada por las memorias de los 3 primeros niveles, y los
restantes se consideran como memoria externa.

2
Cuando se desciende hacia niveles inferiores, el coste por unidad de informacin disminuye, la
capacidad aumenta, el tiempo de acceso aumenta y la frecuencia de los accesos a la memoria por
parte de la CPU disminuye.

2.2. Unidad central de proceso


La unidad central de proceso (CPU, del ingls: central processing unit), es el componente central del
ordenador, y es el encargado de procesar la informacin y coordinar las actividades de todo el
sistema.
La CPU est compuesta por la unidad aritmtico/lgica (ALU) y la unidad de control (UC)
- La Unidad de Control (UC) controla la ejecucin de las instrucciones de manera sncrona con el
reloj. Est formada por los siguientes componentes:
El contador de programa: contiene la direccin de memoria de la siguiente instruccin a
ejecutar
El registro de instruccin: almacena la instruccin que se est ejecutando para que la UC
pueda acceder a ella siempre que sea necesario.
El decodificador: toma el cdigo de operacin de la instruccin en curso y en base al
estado de los dispositivos que participan generar las seales de control pertinentes para
la ejecucin de la instruccin.
El reloj o temporizador: genera los pulsos elctricos que determinan en qu momento
deber comenzar a ejecutarse cada uno de los pasos que necesita una instruccin para
ejecutarse.
El secuenciador: genera rdenes muy elementales que permiten ejecutar la instruccin en
curso de forma sncrona con el reloj.
- La Unidad Aritmtico Lgica (ALU) es la unidad funcional encargada de realizar las
operaciones aritmticas y lgicas bajo la supervisin de la UC. Est compuesta por un circuito
operacional (la unidad donde se realizan los clculos) y registros donde se almacenan los
operandos, el resultado (registro acumulador) y el estado de las operaciones.
El funcionamiento bsico de la CPU es el siguiente:
1- Fase de bsqueda: Cuando se inicia un programa, se carga en el contador de programa la
direccin de la primera instruccin del programa. Se lee de la memoria la instruccin
almacenada en la direccin indicada y se almacena en el registro de instruccin. Por medio
de la ALU se incrementa el contador de programa para que apunte a la siguiente instruccin
del programa. La instruccin que se guard en el registro de instruccin se pasa al
decodificador para interpretarla y se leen de la memoria los datos que sean necesarios para
su ejecucin, que almacenarn en los registros de la ALU destinados a los operandos.
2- Fase de ejecucin: Bajo la supervisin de la UC, se ejecutan las operaciones en la ALU. Tras
cada ejecucin se almacena el resultado en el registro de resultado y se actualiza el registro
de estado.

2.3. Buses
Los buses son los circuitos (enlaces y conmutadores) encargados de interconectar todos los
componentes de un ordenador, permitiendo el envo de datos, direcciones y seales de control entre
todos ellos. La mayora de los buses estn basados en conductores metlicos por los cuales se
trasmiten seales elctricas.

2.3.1. Tipos de buses


Bus de datos / de direcciones / de control: El bus de datos es el encargado de
transmitir los datos (operandos e instrucciones). El nmero de lneas que lo componen
determina la longitud de la palabra con la que trabajar la CPU. Es bidireccional, ya que
los datos pueden fluir hacia o desde la CPU. El bus de direcciones es unidireccional (la
informacin se enva siempre de CPU a memoria o a los elementos de E/S), y su misin
es enviar las direcciones a leer o escribir a la memoria. El nmero de lneas que lo
componen determinar la cantidad de memoria que se pueda direccionar. El bus de
control es un bus bidireccional que transmite por un lado las seales de control generadas
por la UC para la realizacin de una operacin y por otro lado las seales de estado que
indicarn en qu modo se encuentran los dispositivos.
Dedicado / compartido: en los buses dedicados se asigna una lnea de bus de forma
permanente a una funcin (dedicacin lgica, como la diferenciacin entre bus de datos,
de direcciones y de control) o a un subconjunto de componentes del computador
(dedicacin fsica, como un bus de conexin para cada mdulo de E/S). La ventaja de los

3
buses dedicados es el incremento de rendimiento, pero a costa de encarecer el coste e
incrementar el tamao del sistema. En los buses compartidos una misma lnea se puede
utilizar para interconectar varios componentes y para distintas funciones. Tiene la ventaja
de que se ahorra espacio y el coste es menor, pero necesita una circuitera ms compleja
dentro de cada mdulo (para saber de qu tipo es cada seal recibida) y empeora el
rendimiento.
Arbitraje centralizado / distribuido: En los buses centralizados puede suceder que en un
determinado momento varios componentes quieran hacer uso del bus de forma
simultnea, por lo que ser necesario implementar un mtodo de arbitraje que gestione su
uso. En los buses con arbitraje centralizado existe un controlador del bus o rbitro
responsable de asignar el tiempo de uso del bus a cada elemento (puede ser parte de la
CPU o un componente aparte). En los distribuidos no existe un controlador central, sino
que cada dispositivo contiene la lgica de control necesaria para poder acceder al bus y
todos ellos comparten el bus de forma cooperativa.
Serie / Paralelo: un bus en serie enva la informacin secuencialmente bit a bit, mientras
que un bus paralelo puede enviar una palabra completa en un solo ciclo de reloj. Los
buses paralelos tienen por tanto la ventaja de su velocidad pero tienen problemas de
sincronizacin de seales para largas distancias y son ms caros.
Simplex / semiduplex / fullduplex: el bus simple es unidireccional. Es semiduplex
cuando puede enviar en ambos sentidos pero no al mismo tiempo (o bien enva en un
sentido o bien enva en el otro), y es fullduplex cuando puede enviar en ambos sentidos
simultneamente.

2.4. Unidades de E/S


Los perifricos no pueden conectarse directamente al bus del sistema ya que existen gran variedad
de perifricos con distintos mtodos de operacin (por lo que no es prctico incorporar en la CPU la
lgica para controlarlos), la velocidad de transferencia es mucho menor que la de la memoria y CPU,
y porque a menudo utilizan longitudes de palabra diferentes a las del computador.
Para poder comunicar la CPU con los perifricos, el S.O. implementar un gestor de E/S, que
contiene todas las subrutinas necesarias para comunicarse con los perifricos, y cada perifrico
tendr un controlador, que se conectarn a CPU y memoria por medio del bus del sistema y a los
perifricos por medio de enlaces adaptados a cada perifrico. Estos controladores pueden estar
incorporados en el dispositivo (es el caso de los discos duros) o integrados en la placa base. Los
controladores no solo se encargan de la conexin fsica entre el sistema y el perifrico, sino que
contienen la lgica necesaria para poder establecer la comunicacin, controlar y temporizar los
intercambios de informacin, almacenar informacin temporalmente (necesario debido a la diferencia
de velocidades a las que operan CPU y perifricos), adaptar si es necesario los cdigos usados por
CPU y perifrico y detectar errores.

3. Componentes software de un sistema informtico


El ordenador consiste en un conjunto de componentes formados por mltiples circuitos electrnicos
que permiten ejecutar una serie de instrucciones sobre unos datos. Los componentes hardware del
ordenador funcionan por medio de seales elctricas, que son las que permiten programar su
funcionamiento. Existen dos tipos de seales elctricas: digitales (la seal solo puede tomar
determinados valores) y analgicas (para pasar de un nivel de voltaje a otro la seal debe atravesar
todos los niveles intermedios.
Los circuitos que componen el ordenador son circuitos digitales, ya que trabajan con seales
digitales, y adems son mquinas digitales binarias, ya que las seales con las que trabajan
solamente pueden tomar dos valores: 0 y 1.
Los datos y las instrucciones que se realicen sobre ellos componen el software. Tanto los datos como
las instrucciones se almacenan en la memoria principal, y por tanto es necesario representarlos en
forma de una secuencia de unos y ceros que se puedan almacenar en las celdas de memoria. Para
ello se utilizar un sistema de representacin de la informacin.

3.1. Sistemas de representacin de la informacin


Los sistemas de representacin de la informacin permiten representar la informacin en un formato
digital binario comprensible por el ordenador.
Existen distintos tipos de sistemas de representacin, y sern diferentes en funcin de si se utilizan
para representar nmeros o caracteres alfanumricos.

4
3.1.1. Representacin de nmeros enteros

3.1.1.1. Binario natural


Existen dos tipos de representacin en binario natural:
- Representacin binaria sin signo
El sistema binario natural es un sistema ponderado o posicional, por lo que el valor de un dgito
depende del smbolo empleado y de la posicin que ese smbolo ocupa en el nmero. Con n dgitos
n n
podemos representar 2 smbolos distintos (desde el 0 hasta el nmero 2 -1).
As, en un nmero binario de 8 dgitos, las posicins de estos tienen el valor siguiente:
128 64 32 16 8 4 2 1
Las cantidades se representan de izquierda a derecha como en un sistema de representacin
decimal. Por ejemplo, el nmero 33 tendra una representacin decimal 100001. Normalmente se
separa en grupos de 4 bits para mellorar a sa representacin: 0010 0001.
- Representacin binaria con signo
Muchas veces es preciso trabajar con nmeros negativos. Para representar todos los nmeros
enteros, existen varias alternativas.
- Signo-magnitud: Se utiliza un bit para codificar el signo
0: si el nmero es positivo.
1: si el nmero es negativo.
El resto de los bits se codifican en valor absoluto.
Ejemplo:
+20 : 00010100 ,, -20 : 10010100
- Complemento a uno: Para representar con n bits un nmero en complemento a uno, lo nico
que hay que hacer es cambiar cada uno de los dgitos del nmero binario por su
complementario, es decir, cambiar los unos por ceros y los ceros por unos.
Ejemplo:
+86 : 01010110 ,, -86 : 10101001
En este sistema de numeracin, existen dos formas de representar el nmero 0:
+0 : 00000000 ,, -0 : 11111111
- Complemento a dos: El complemento a dos resuelve el problema del doble 0 que aparece en
el complemento a uno. El complemento a dos de un nmero A se calcula de la siguiente
manera:
Si A 0, el complemento a dos ser el nmero A en binario natural
Si A < 0, el complemento a dos ser igual a 2 -|A|, y se calcula de la siguiente manera:
n

1. Se obtiene la representacin binaria del valor absoluto de A en n bits.


2. Se invierten los bits.
3. Se suma 1 al resultado.
Ejemplo: Representar -5 en complemento a 2, utilizando 8 bits:
1. Valor absoluto de -5 : 5
2. Representacin en binario de 5 : 00000101
3. Se invierten los bits: 11111010
4. Sumar 1 al resultado: 11111011

3.1.2. Representacin de nmeros reales


- Representacin en coma fija: Con esta representacin se guardan un nmero de bits fijo para
la parte entera y un nmero de bits fijo para la parte decimal. Esta notacin limita mucho el
nmero de cantidades a representar, ofrece poca precisin y desperdicia espacio.
Ejemplo: Representacin de nmeros reales con 8 bits, reservando 5 para la parte enteira y 3 para la fraccionaria.
Con esta configuracin podremos representar nmeros reales entre 0 y 32,875, con precisin de 0,125 (2-3).
10101,110 = 124 + 023 + 122 + 021 + 120 + 12-1 + 12-2 + 02-3 = 21,75
01001,011 = 024 + 123 + 022 + 021 + 120 + 02-1 + 12-2 + 12-3 = 9,375
- Representacin en coma flotante: La representacin en coma flotante de un valor se
compone de tres nmeros (campos), que siguen el siguiente patrn:
r = smbe
r: valor del nmero real a representar
s: signo, para nmeros positivos s = 0, nmeros negativos s = 1.

5
m: mantisa, dgitos significativos del nmero. El tamao de este campo (normalmente es
un tamao fijo) determina la precisin de la representacin. Normalmente est
normalizado, es decir, su parte entera solo consta de un dgito, que ser la primera cifra
significativa del nmero a representar.
b: base del sistema de representacin (10 no sistema decimal, 8 no sistema octal, 2 no
sistema binario, etc.).
e: exponente, orden de magnitud del significando, expresado en exceso a 16. El mnimo y
mximo valor posible del exponente determinan el rango de valores representables.
Este mtodo permite adaptar el orden de magnitud del valor a representar, trasladando la coma
decimal mediante un exponente hasta la posicin de la primera cifra significativa del nmero
(notacin cientfica). De este modo se obtiene mayor precisin que en coma fija, y su rango de
representacin es mucho mayor (este rango vendr determinado por los valores lmite que
puede tomar el exponente).
Normalmente la codificacin ms utilizada por las computadoras para representar los nmeros
reales es el Estndar IEEE 754 para aritmtica en coma flotante, que utiliza 32 bits en
precisin simple y 64 en precisin doble
Ejemplo: Representar el nmero -6,125 en coma flotante:
1. s=1 (es un nmero negativo)
2. Pasamos la mantisa (6,125) a binario = 110,001
3. Normalizamos el nmero (se mueve la coma a la derecha o izquierda de forma que nicamnete quede por
delante de la coma el primer dgito significativo (quedara un nmero con la forma: 1,...) = 1,10001
4. Hemos movido la coma dos posiciones, por lo que el exponente sera 2 (expresado en exceso 16 da 18, en
binario: 10010).
5. La mantisa se normalza y se le saca el primer 1, con lo que ganamos un bit ms de precisin.
6. El nmero final es: 1 10010 100010 (hay que completar con ceros a la derecha de la mantisa).

3.1.3. Cdigos alfanumricos


3.1.3.1. De 6 bits
- BCDIC (Binary Coded Decimal Interchange Code): Es uno de los primeros cdigos utilizados
para representar datos en notacin binaria para poder ser manejados por una computadora. Se
utilizaba para la transmisin de datos alfanumricos, y utilizaba 6 bits para representar cada
carcter. Debido a sus limitaciones fue reemplazado por una versin extendida de 8 bits.

3.1.3.2. De 7 bits
- ASCII (American Standar Code for Information Interchange): Su uso primordial es facilitar el
intercambio de informacin entre sistemas de procesamiento de datos y equipos asociados, y
dentro de sistemas de comunicacin de datos.
En un principio cada carcter se codificaba mediante 7 dgitos binarios, y fue creado para el
juego de caracteres ingleses ms corrientes, por lo que no tenan en cuenta ni caracteres
especiales ni caracteres especficos de otras lenguas. Esto hizo que posteriormente se
ampliara a 8 dgitos binarios (ASCII Extendido).

3.1.3.3. De 8 bits
- ASCII Extendido: Es una ampliacin del ASCII para poder representar tambin caracteres
especiales y caracteres especficos de otras lenguas, adems de los propios de la lengua
inglesa.
- EBCDIC (Extended Binary Coded Decimal Interchange Code): Este cdigo aparece como una
ampliacin del cdigo BCDIC. En las transmisiones de datos es necesario utilizar un gran
nmero de caracteres de control para la manipulacin de los mensajes y realizacin de otras
funciones, por lo que el cdigo BCDIC se haca insuficiente.
- ISO latin 1: La norma ISO 8859-1 define la codificacin del alfabeto latino, incluyendo los
diacrticos (como letras acentuadas, , ), y letras especiales (como ), necesarios para la
escritura de las lenguas originarias de Europa occidental.
Esta norma ISO tiene la codificacin ASCII en su rango inicial (es decir, sus primeros 128
caracteres coinciden con los de la codificacin ASCII) y otros 128 caracteres para cada
codificacin, con lo que en total utiliza 8 bits. Los caracteres de ISO-8859-1 son adems los
primeros 256 caracteres del estndar ISO-10646 (Unicode).

6
3.1.3.4. De 16 bits
- Unicode: Sistema de codificacin que tiene como propsito romper con las limitaciones de los
cdigos de caracteres tradicionales. Unicode est diseado para facilitar el tratamiento
informtico, transmisin y visualizacin de textos de mltiples lenguajes y disciplinas tcnicas,
adems de textos clsicos de lenguas muertas. El trmino Unicode viene de los tres objetivos
perseguidos: universalidad, uniformidad y unicidad.
Unicode especifica un nombre e identificador numrico nico para cada carcter o smbolo, o
code point (punto de cdigo), adems de otras informaciones necesarias para su uso correcto:
direccionalidad, maysculas y otros atributos. Unicode trata as los caracteres alfabticos,
ideogrficos y smbolos de forma equivalente, lo que significa que se pueden mezclar en un
mismo texto sen la introducin de marcas o caracteres de control.
Unicode incle todos los caracteres de uso comn en la actualidad. La versin 5.1 contena
100.713 caracteres de alfabetos, sistemas ideogrficos y colecciones de smbolos
(matemticos, tcnicos, musicales, iconos, ...), y la cifra crece con cada versin.

3.2. Estructura del software


El software puede clasificarse en tres grandes grupos:
- Software de sistema: Son aquellos programas que permiten la administracin de la parte
fsica o los recursos de la computadora. Conforman la capa que interacta entre las
aplicaciones de usuario y los componentes hardware del ordenador. Pertenecen a este tipo los
sistemas operativos, controladores de dispositivo, herramientas de diagnstico, herramientas
de correccin y optimizacin y otro tipo de utilidades.
- Software de desarrollo: aplicaciones que los desarrolladores de software utilizan para crear,
depurar y mantener programas y aplicaciones. El trmino se refiere a programas como
compiladores, depuradores, intrpretes, enlazadores y editores de texto, que pueden
combinarse en un entorno de desarrollo integrado (IDE) junto con otras herramientas para
control de versiones, publicacin en internet, generacin de documentacin, etc.
- Software de aplicacin: son aquellos programas o aplicaciones orientados a alguna tarea
especfica. Dentro de este grupo se diferencian las aplicaciones de propsito general y de uso
especfico. Las aplicaciones de propsito general tienen una aplicacin horizontal, ya que se
usan para realizar tareas similares en diferentes reas (edicin de texto, bases de datos, ).
Ofrece la estructura para un gran nmero de aplicaciones empresariales y personales. Las
aplicaciones de uso especfico se denominan tambin software vertical, ya que su aplicacin
est orientada a un rea concreta (edicin de vdeo, gestin de personal, ). Existen
numerosos tipos y aplicaciones de software de uso especfico: de infraestructura, empresarial,
herramientas analticas, gestin de contenidos, educacin, etc.

4. El sistema operativo
Los primeros programas que se desarrollaron tenan acceso directo al hardware del ordenador, por lo
que eran muy potentes pero para hacer una simple operacin de lectura en memoria, por ejemplo, era
necesario implementar las instrucciones necesarias en cada programa que necesitase hacer una
lectura. Adems, el programa solamente funcionaba sobre la mquina para la que se creaba, ya que
al ejecutarlo en otra mquina con diferente hardware ya no funcionaba.
Para solucionar estos problemas lo que se hizo fue incorporar una capa de software que se
encargase de realizar todas estas tareas bsicas sobre el hardware, abstrayendo de este trabajo al
programador y facilitando la reutilizacin del software. Esto fue el germen de los sistemas operativos.

Un sistema operativo (SO) es un programa o conjunto de programas de un


sistema informtico que gestiona los recursos de hardware y provee servicios
a los programas de aplicacin.

7
Wikipedia

Los sistemas operativos evolucionaron considerablemente desde las primeras versiones,


incorporando cada vez ms funciones: gestin de la memoria, gestin de los procesos en ejecucin,
gestin del acceso a disco, etc. El hecho de disponer de una capa que abstrae todas estas tareas
para las aplicaciones supone una gran ventaja para los programadores, ya que no tienen que
preocuparse de aspectos como que la aplicacin se ejecute mientras se estn ejecutando otros
programas, que se aada ms memoria u otros perifricos al equipo, del hardware concreto que use
el equipo donde se vaya a instalar la aplicacin (en lugar de programar para una mquina se
programa para un sistema operativo), etc

4.1. Elementos del SO


Normalmente se considera que un SO est formado por tres capas: el ncleo, los servicios y el
intrprete de comandos o shell.

- El ncleo es la parte del SO que se comunica directamente con el hardware de la mquina.


Sus funciones se centran en la gestin de recursos, como el procesador, tratamiento de
interrupciones y las funciones bsicas de manipulacin de memoria.
- Los servicios se suelen agrupar segn su funcionalidad en varios componentes, cada uno de
ellos se ocupa de una de las siguientes funciones:
Gestin de procesos. Encargada de la creacin, planificacin, administracin, ejecucin y
finalizacin de los procesos.
Gestin de memoria. Componente encargada de controlar las partes de la memoria que
estn libres y ocupadas, as como de la asignacin y liberacin de memoria segn la
necesiten los procesos.
Gestin de E/S. Responsable de facilitar el manejo de los dispositivos perifricos.
Gestin del sistema de ficheros. Se encarga del manejo de los archivos y directorios y de
la administracin del almacenamiento secundario.
Comunicacin y sincronizacin entre procesos. Encargada de ofrecer mecanismos para
que los procesos puedan comunicarse y sincronizarse.
Seguridad y proteccin. Este componente debe encargarse de garantizar la identidad de
los usuarios y de definir lo que puede hacer cada uno de ellos con los recursos del
sistema.
Gestin de la red: a varios niveles: los drivers de la tarjeta de red, los protocolos de
comunicacin (que resuelven el acceso a la red y proporcionan una interfaz para
comunicacin entre procesos remotos) y las aplicaciones para uso de la red (por ejemplo:
www, ftp, las cuales son aplicaciones construidas sobre la interfaz de comunicacin que
facilitan el acceso a recursos remotos).
- Interfaz: Todos estos componentes ofrecen una serie de servicios a travs de una interfaz de
llamadas al sistema. Un SO puede incluir ms de un mecanismo de interfaz de servicios. En
este caso, los programas podrn elegir sobre que interfaz quieren ejecutar, pero non podrn
mezclar servicios provistos por distintas interfaces. En estos casos se dice que el SO presenta
al usuario varias mquinas virtuales.
De igual forma, el SO puede incluir varios intrpretes de comandos: unos textuales y otros
grficos, pudiendo el usuario elegir el que ms le interese.

8
4.2. Estructura del SO
La estructura interna de los sistemas operativos pueden ser muy diferentes, ya que se debe tener en
cuenta las metas de los usuarios (fcil uso, confiable, rpido, etc.) y las del sistema (fcil de disear,
implementar y mantener, eficiente, etc.).

4.2.1. Sistema Monoltico


Todo el SO se ejecuta como un solo programa en modo kernel. Estos sistemas no tienen una
estructura definida, sino que son escritos como una coleccin de procedimientos donde cualquier
procedimiento puede invocar a otro:

Su objetivo es obtener una mxima funcionalidad dentro del menor espacio posible.
Ejemplos de estos sistemas pueden ser MS-DOS, Windows 95 y 98 o Linux (aunque incluye algo de
capas). Es importante tener en cuenta que ningn sistema es puramente de un tipo.

4.2.2. Sistema en capas


El diseo se organiza en una jerarqua de capas, donde los servicios que brinda una capa son
consumidos solamente por la capa superior. La capa 0 es del Hardware y la N es la de los procesos
de Usuario.

Estos sistemas tienen como ventaja que son modulares y la verificacin se puede hacer en cada capa
por separado (son ms mantenibles). Sin embargo el diseo es muy costoso y es menos eficiente que
el sistema monoltico ya que pierde tiempo pasando por cada capa.

4.2.3. Sistema con microncleo


En estos sistemas el SO se divide en mdulos ms pequeos. Solo uno se ejecuta en modo kernel y
el resto, como procesos de usuario. Las funciones centrales son manejadas por el ncleo o kernel
(que brinda los servicios mnimos de manejo de procesos, memoria y comunicacin entre procesos) y
todos los servicios restantes (interfaz de usuario) se construyen como procesos manejados por el
entorno o Shell, y se ejecutan como procesos de usuario.
Son de este tipo los SO AIX o Symbian.
Algunas ventajas que podemos destacar de los Microncleos son los siguientes:
- El diseo es ms simple y funcional.
- Uniformidad de interfaces: disponen de una interfaz nica para las solicitudes de los procesos,
el paso de mensajes.

9
- Portabilidad: al reducir el ncleo y delegar casi todos los procesos en servicios de usuario se
simplifica la portabilidad, ya que solamente sera necesario reimplementar el ncleo.
- Fiabilidad: es ms fcil corregir fallos en un sistema pequeo ya que se pueden aislar mejor los
errores y realizar pruebas ms rigurosas que en un sistema grande.
- Escalabilidad. Para agregar un nuevo servicio no es necesario modificar el ncleo, y es ms
seguro ya que los servicios corren en modo usuario.

4.2.4. Sistemas por mdulos


La mayora de los sistemas operativos modernos implementan este enfoque. Lo que caracteriza este
tipo de estructura es que el kernel est compuesto por mdulos independientes, de forma que si
alguno falla no afecta a los dems mdulos ni al ncleo (ej: si falla el mdulo que controla el proceso
de telnet y se bloquea, el bloqueo solo afecta a ese mdulo). El ncleo dispone de los componentes
fundamentales, y dinmicamente se cargarn nuevos mdulos cuando se necesiten (en tiempo de
ejecucin o durante el arranque del sistema).

Este enfoque modular utiliza la programacin orientada a objetos. En general, esta estructura se
parece bastante a la de capas, pero es mucho ms flexible debido a que cualquier mdulo de esta
estructura puede llamar a otro. Es similar a la estructura de microkernel, pues el kernel tambin tiene
las funciones esenciales, pero este es ms eficiente ya que no necesitan un mecanismo de paso de
mensajes para comunicarse, slo interfaces conocidas.
Son de este tipo los sistemas Unix y Windows modernos, Solaris, Linux, Mac OS, etc.

Los SO actuales, no son exclusivamente de un tipo u otro:


- Linux: est dividido en capas y utiliza un ncleo monoltico
- Mac OS X: est dividido en capas y utiliza un ncleo hbrido
- Windows (tecnologa NT): est dividido en capas y utiliza un ncleo hbrido (en los niveles o
capas superiores ejecuta ciertos procesos, servicios y las aplicaciones de los usuarios)

10

You might also like