Académique Documents
Professionnel Documents
Culture Documents
a los
Introduccion
Sistemas Operativos
Un elemento esen
ial en todo sistema de
omputa
in es el sistema
operativo. En este
aptulo veremos
ul es su fun
in y objetivo
prin
ipal: abstraer el hardware para ofre
er un
onjunto de servi
ios
a los usuarios. Con el n de
omprender mejor los distintos elementos
que
omponen un sistema operativo
ontemporneo y sus objetivos,
veremos
omo a lo largo de la historia se han ido introdu
iendo
innova
iones para aumentar el rendimiento del sistema.
los programas del sistema, que
ontrolan el fun
ionamiento del
omputador.
los programas de apli
a
in, que resuelven los problemas de los
usuarios y son espe
os para un tipo de problema.
Respe
to al hardware, un
omputador es un sistema
omplejo que
onsta
de uno o ms pro
esadores, memoria
entral, relojes, terminales, dis
os y
otros dispositivos de E/S (ver apndi
e ??). Si los programadores tuvieran
que tener en
uenta
mo fun
iona
ada uno de estos elementos a la hora de
ha
er un programa, la elabora
in de uno de ellos sera una tarea bastante
dif
il.
Para evitar que los programadores tengan que enfrentarse a la
omplejidad del hardware, se introdu
e una
apa software por en
ima del primero,
on objeto de manejar todas las partes del sistema y presentar al usuario una
interfaz que sea ms f
il de entender y programar. Esta
apa es el sistema
operativo (gura 1.1).
Programas de aplicacin
Compiladores
Editores
Intrpretes
de rdenes
Programas
del sistema
Hardware
es un sistema operativo?
1.1 Que
parte de l. Esto no es as, la diferen
ia fundamental que existe entre ambos es que el sistema operativo se eje
uta en modo n
leo, mientras que
los
ompiladores y editores fun
ionan en modo usuario. El modo n
leo
es un modo de eje
u
in privilegiado que le permite tener a
eso a todo el
hardware, a la vez que lo protege de la manipula
in indebida por parte del
usuario. Si a uno no le agrada un
ompilador determinado tiene la libertad
de es
ribir uno propio si as lo desea, pero no la tiene para es
ribir su propio
manejador de interrup
iones del dis
o, porque es parte del sistema operativo
y est protegido por el hardware
ontra intentos de modi
a
in por parte
del usuario.
Se denomina n
leo del sistema operativo a la parte que se
omuni
a
dire
tamente
on el hardware, ste ser el verdadero
orazn y motor del
sistema.
La pregunta qu es un sistema operativo? es dif
il de
ontestar; debido
prin
ipalmente a que stos realizan dos fun
iones que no estn rela
ionadas
entre s. Para intentar responderla veamos qu es lo que ha
e un sistema
operativo.
Los programas que se eje
utan en el sistema ne
esitan utilizar re
ursos.
Desde el punto de vista del programa lo ideal sera disponer de todos los
re
ursos del sistema, esto impli
ara que no pudiese
oexistir junto
on otros.
Como se ver ms adelante en este
aptulo, para mejorar el rendimiento del
sistema es
onveniente que haya varios programas a
tivos simultneamente.
Para
onseguir esto es ne
esario que se repartan los re
ursos entre todos los
programas que
ompiten por ellos. Esta fun
in la realiza el sistema operativo. As, podemos de
ir que ste se
omporta
omo administrador de
los re
ursos del sistema, distribuyndolos entre los programas que se eje
utan en l. Es de
ir, el sistema operativo
on
ede o deniega las peti
iones de
re
ursos que ha
en los programas en eje
u
in.
La gestin de los re
ursos que realiza el sistema operativo
onsigue que
los programas en eje
u
in tengan la ilusin de que estn solos en el sistema,
disponiendo de todos los re
ursos de ste. En realidad, lo que existe es un
reparto transparente de los re
ursos entre todos los programas que
ompiten
por ellos.
Como podemos ver en la gura 1.1, el sistema operativo se sita entre
el hardware y el resto del software del sistema, para re
ibir las peti
iones
de los distintos programas y
ontrolar de esta forma la asigna
in de los
re
ursos. Esto aade una fun
ionalidad ms al sistema operativo, que es la
de propor
ionar una
apa de abstra
in del hardware. La arquite
tura de
1.2.1.
historica
1.2 Evolucion
de los sistemas operativos
uso
omn para no tener que ser es
ritas para
ada programa.
Ms tarde apare
ieron los
ompiladores de Fortran, Cobol y otros lenguajes. Esto fa
ilit mu
ho la tarea del programador, sin embargo hizo ms
ompleja la tarea del
omputador. Por ejemplo, para preparar un programa
es
rito en Fortran para su eje
u
in, el programador tiene que
argar primero el
ompilador de Fortran en el
omputador (normalmente el
ompilador
estaba alma
enado en
inta magnti
a). El programa puede ser ledo por una
le
tora de tarjetas y pasado a
inta magnti
a. El
ompilador de Fortran produ
e una salida en lenguaje ensamblador que ne
esita ser ensamblada
on el
ensamblador, lo que requiere montar otra
inta
on el ensamblador. La salida
del ensamblador ne
esita ser enlazada
on las rutinas del sistema ade
uadas.
Finalmente, la forma binaria del programa est lista para ser eje
utada. Puede ser
argada en memoria y depurada desde la
onsola
omo antes. A este
onjunto de labores que hay que realizar para eje
utar un programa se le
ono
e
on el nombre de trabajo.
1.2.2.
historica
1.2 Evolucion
de los sistemas operativos
Cargador
Intrprete de
tarjetas de control
Monitor
Manejador de
interrupciones
Manejadores de
dispositivos
Memoria disponible
para el usuario
historica
1.2 Evolucion
de los sistemas operativos
$END
datos para el programa
$RUN
$LOAD
programa a compilar
$FTN
$JOB
10
iones por segundo, mientras que una le
tora de tarjetas rpida puede leer
unas 1200 tarjetas por minuto. Con el tiempo, los progresos de la te
nologa
produ
en dispositivos de E/S ms rpidos. Pero las velo
idades de la CPU
tambin aumentan, in
luso de forma ms rpida; por tanto, el problema no
slo no queda resuelto sino que in
luso empeora.
Lectora
de tarjetas
(a) Operacin en lnea
Impresora
Lectora
de tarjetas
CPU
Unidades
de cinta
Unidades
de cinta
historica
1.2 Evolucion
de los sistemas operativos
11
1.2.2.2. Buering
El pro
esamiento fuera de lnea permite un solapamiento de las opera
iones de la CPU y de E/S mediante la eje
u
in de estas a
iones en dos
mquinas independientes. Si nos jamos en la eje
u
in de un trabajo observaremos que
onsiste en el uso alterno del pro
esador y la espera de opera
iones de E/S; se suele de
ir que se alternan rfagas de CPU y de E/S. El
buering es un mtodo que permite simultanear las opera
iones de la CPU
y de E/S para un mismo trabajo en una misma mquina.
Consiste en dotar a los dispositivos de E/S de buers donde alma
enar
la informa
in temporalmente. De esta forma, mientras la CPU est pro
esando un dato que se a
aba de leer, el dispositivo puede estar realizando otra
opera
in de entrada, situando el nuevo dato en el buer. Anlogamente,
uando se trata de una opera
in de salida, la CPU puede estar introdu
iendo los datos en el buer, mientras el dispositivo realiza una opera
in de
salida. En la gura 1.5 podemos ver un diagrama temporal donde se
ompara un sistema sin buer y otro
on un buer. Se puede apre
iar
mo el
sistema que posee el buer puede solapar las opera
iones de
l
ulo
on el
primer dato mientras realiza la entrada del segundo. Esto permite aumentar
el rendimiento del sistema, ya que el sistema sin buer slo puede empezar
a leer el segundo dato
uando termina de pro
esar el primero.
Los buers permiten redu
ir las diferen
ias entre la velo
idad a la que se
pro
esan los datos y a la que se realizan las opera
iones de E/S,
onsiguiendo
aumentar el rendimiento del sistema al mantener menos tiempo o
iosa a la
CPU. Pero los buers no son realmente efe
tivos si los trabajos no presentan
un inter
alamiento de opera
iones de E/S y de
l
ulo. As, los trabajos
limitados por la CPU que ne
esitan rfagas largas de CPU y realizan po
as
12
Dato1
Sin buffer
Dato 2
111111111111111111
000000000000000000
Tiempo
Dato 1
Con buffer
Dato 2
1.2.2.3. Spooling
La apari
in de los dis
os introdu
e una nueva forma de pro
esamiento
denominada spooling 1 que permite solapar las opera
iones de E/S y de la
CPU utilizando una sola mquina. La diferen
ia fundamental entre los dis
os
y las
intas (dispositivos de alma
enamiento utilizado hasta el momento) es
su modo de a
eso. Los dis
os son dispositivos de a
eso aleatorio, por lo que
se puede pasar rpidamente de una zona a otra, mientras que las
intas slo
permiten un a
eso se
uen
ial.
En un sistema de spooling (gura 1.6), las tarjetas son ledas dire
tamente del le
tor de tarjetas al dis
o. Cuando se eje
uta un trabajo, el sistema
operativo satisfa
e sus peti
iones de entrada del le
tor de tarjetas leyendo
del dis
o. De forma similar,
uando el trabajo ha
e una peti
in para es
ribir
en la impresora una lnea, la informa
in se
opia en un buer del sistema
situado en el dis
o. Cuando el trabajo se
ompleta, la salida se enva a la
impresora.
1 El nombre es un a
rnimo de simultaneous peripheral operation on-line.
historica
1.2 Evolucion
de los sistemas operativos
13
El spooling, en esen
ia, usa el dis
o
omo un gran buer, para adelantar
la le
tura tanto
omo sea posible en dispositivos de entrada y para alma
enar
la informa
in de salida hasta que los dispositivos sean
apa
es de a
eptarla.
Disco
CPU
Impresora
Lectora de tarjetas
La opera in fuera de lnea, el buering y el spooling tienen sus limita iones para solapar la E/S. Un solo trabajo no puede, en general, mantener
14
monitor
trabajo 1
trabajo 2
trabajo 3
trabajo 4
historica
1.2 Evolucion
de los sistemas operativos
15
Trabajo 1
Trabajo 2
Trabajo 3
Trabajo 4
Multiprogramado
T1
T2
Ciclo de ejecucin
T3
T4
T1
T2
T3
T4
Tiempo
16
1.2.4.
historica
1.2 Evolucion
de los sistemas operativos
17
Multiprograma
in
por lotes
Maximizar el uso del
pro
esador
Se propor
ionan las
instru
iones en un
lenguaje de
ontrol de
trabajos junto al trabajo
Tiempo
ompartido
Minimizar el tiempo
de respuesta
rdenes introdu
idas
desde una terminal
La idea del tiempo
ompartido fue demostrada al prin
ipio de los aos 60,
pero
omo estos sistemas eran ms dif
iles y
aros de
onstruir, no llegaron
a ser
omunes hasta prin
ipios de los aos 70.
El tiempo
ompartido plantea nuevos problemas para el sistema operativo. La presen
ia de varios usuarios intera
tivos introdu
e la ne
esidad de
proteger los
heros para que slo los usuarios autorizados puedan tener a
eso a stos.
18
de un procesador
1.5 Sistemas con mas
19
1.5.1.
Sistemas paralelos
Estos sistemas tienen varios pro
esadores que
omparten el bus del sistema, el reloj, la memoria, et
. Hay varias razones que justi
an la
onstru
in
de este tipo de sistemas. Una ventaja es el aumento de rendimiento. Es de
esperar que al aumentar el nmero de pro
esadores que trabajan juntos, aumente la
antidad de trabajo que se realiza por unidad de tiempo. Esto es
lo que suele o
urrir, aunque el aumento de rendimiento no es exa
tamente propor
ional al nmero de pro
esadores, sino algo menor, ya que suele
haber
ierta sobre
arga en este tipo de sistemas para ha
er que todos los
pro
esadores trabajen de forma
oordinada.
Otra razn para la
onstru
in de este tipo de sistemas es el aumento de
abilidad. En ellos, el fallo de un pro
esador no paraliza el sistema
ompleto,
slo se ha
e ms lento.
La mayor parte de estos sistemas usan hoy da el multipro
esamiento simtri
o, en el
ual
ada pro
esador eje
uta una
opia idnti
a del
sistema operativo. Algunos sistemas usan lo que se
ono
e
omo multipro
esamiento asimtri
o, en el
ual a
ada pro
esador se le asigna una tarea
espe
a. Un pro
esador maestro
ontrola el sistema; los dems pro
esadores pueden esperar a re
ibir instru
iones del pro
esador maestro o tienen
tareas predenidas.
20
1.5.2.
2 A tualmente se onstruyen sistemas distribuidos en los que ada mquina puede eje utar un sistema operativo diferente. En stos existe una apa de software denominada
middleware que es la que propor iona las ara tersti as distribuidas del sistema.
21
Monousuario
Nmero
de
usuarios
Multiusuario
Monoprogramado
Tiempo Compartido
Lotes
Tipo de intera in
Intera tivo
Clasi
a
in de los
sistemas operativos
Monopro esador
Paralelo
N
de
pro
esadores
Red
Distribuido
Lotes
Importan
ia
Intera
tivo
Tiempo de respuesta
Tiempo real blando
22
23
24
25
26
1.8. Resumen
Dentro de un sistema de
omputa
in, uno de los elementos ms importantes es el sistema operativo. El objetivo de ste es abstraer los aspe
tos
omplejos del sistema ofre
iendo una mquina virtual, donde el usuario puede
trabajar en un entorno ms
modo, sin ne
esidad de
ono
er el fun
ionamiento del hardware.
Los sistemas operativos a
tuales han heredado
ara
tersti
as de todos
los que han surgido a lo largo de la historia: por lotes, multiprogramados, de
tiempo
ompartido, et
. Esto se puede ver en la gura 1.10.
Primeros
Sistemas por
sistemas
lotes simples
Buffering
Manejadores de dispositivos
Compiladores
Spooling
Ficheros
Dispositivos
Sistemas de
Planificacin
Sistemas
Gestin de memoria
Proteccin
Planificacin
Operativos
tiempo real
actuales
Gestin de memoria
Planificacin
Proteccin
Protocolos
Sistemas de
tiempo compartido
Modelo cliente-servidor
Sistemas en red
y distribuidos
Interfaz computador-usuario
Sistemas para
comp. personales
1.8 Resumen
27
spooling, uyo objetivo es solapar las opera iones de la CPU on las de E/S,
on el n de aumentar el rendimiento del sistema y mantener a la CPU ina
tiva el menor tiempo posible. Adems,
on la apari
in de los dis
os surgen
los
heros y los denominados dispositivos lgi
os, que permiten abstraer an
ms el hardware.
Sin embargo, el gran avan
e se va a produ
ir en los sistemas por lotes
multiprogramados, que
onsiguen mantener en memoria varios trabajos a
la vez,
on la posibilidad de inter
alar sus eje
u
iones
uando tengan que
esperar. Esto introdu
e una serie de
ambios en el sistema operativo, debido
a la ne
esidad de administrar la memoria para alojar los distintos trabajos,
plani
ar los distintos re
ursos del sistema (in
luida la CPU) entre todos los
programas que se estn eje
utando.
Con la apari
in de los sistemas operativos de tiempo
ompartido y las
terminales apare
en los primeros sistemas multiusuario, en los que varios
usuarios pueden trabajar intera
tivamente
on una mquina.
El des
enso en el pre
io del hardware permiti la
onstru
in de ordenadores personales. Los sistemas operativos para estos ordenadores han
aprove
hado las
ara
tersti
as de los sistemas
onstruidos para los grandes
omputadores.
Los sistemas de tiempo real se pueden
lasi
ar en dos tipos: duros y
suaves. Los primeros se utilizan
omo dispositivos de
ontrol en apli
a
iones
dedi
adas, y tienen unos requisitos de tiempo bien denidos, que deben
umplirse ya que de otro modo el sistema fallar. Los sistemas de tiempo real
suaves son menos restri
tivos en
uanto a estas limita
iones de tiempo.
Los sistemas paralelos tienen ms de un pro
esador que
omparten el bus,
la memoria y diversos dispositivos. Estos sistemas propor
ionan un aumento
del rendimiento y una mayor abilidad.
Los sistemas operativos en red permiten
omuni
ar diversas mquinas
pudiendo los usuarios de stas utilizarlas de forma remota, a
eder a sus
re
ursos, et
. Los sistemas operativos distribuidos permiten ha
er esto mismo
pero de una forma transparente a los usuarios. Una forma de
onseguirlo es
mediante lo que se denomina el modelo
liente-servidor.