Vous êtes sur la page 1sur 15

SISTEMAS OPERATIVOS:

Diseo e Implementacin
SEGUNDA EDICION
ANDREW S TANEN!AUM
V"i#e Uni$e"siteit
Amste"%am& Pa'ses !a#os
A(!ERT S WOOD)U((
)amps*i"e Colle+e
Am*e"st& Massac*,setts
INTRODUCCION
Sin su software, la computadora es bsicamente un montn de metal intil. Con su software, una
computadora puede almacenar, procesar y recuperar informacin; exhibir documentos multimedia; realizar
bsquedas en nternet; y realizar muchas otras acti!idades !aliosas para "ustificar su existencia. #l software
de computadora puede di!idirse a $randes ras$os en dos tipos% pro$ramas de sistema, que controlan la
operacin de la computadora misma, y pro$ramas de aplicacin, que realizan las tareas reales que el
usuario desea. #l pro$rama de sistema ms fundamental es el sistema ope"ati$o, que controla todos los
recursos de la computadora y establece la base sobre la que pueden escribirse los pro$ramas de aplicacin.
&n sistema de computadora moderno consiste en uno o ms procesadores, memoria principal 'tambi(n
conocida como )*+, memoria de acceso aleatorio,, discos, impresoras, interfaces de red y otros
dispositi!os de entrada-salida. * todas luces, se trata de un sistema comple"o. #scribir pro$ramas que si$an
la pista a todos estos componentes y los usen correctamente, ya no di$amos ptimamente, es una tarea en
extremo dif.cil. Si todos los pro$ramadores tu!ieran que ocuparse de cmo traba"an las unidades de disco, y
de las docenas de cosas que pueden fallar al leer un bloque de disco, es poco probable que pudieran
escribirse muchos pro$ramas.
/ace muchos a0os se hizo muy e!idente que deb.a encontrarse al$una forma de prote$er a los
pro$ramadores de la comple"idad del hardware. 1a solucin que ha e!olucionado $radualmente consiste en
poner una capa de software encima del hardware solo, que se encar$ue de administrar todas las partes del
sistema y presente al usuario una interfaz o m-.,ina $i"t,al que sea ms fcil de entender y pro$ramar.
#sta capa de software es el sistema operati!o, y constituye el tema de este libro.
1a situacin se muestra en la 2i$. 343. #n la parte inferior est el hardware que, en muchos casos, tambi(n
se compone de dos o ms capas. 1a capa ms ba"a contiene los dispositi!os f.sicos, que consisten en chips
de circuitos inte$rados, alambres, fuentes de potencia, tubos de rayos catdicos y otros aparatos f.sicos
similares. 1a forma en que (stos se construyen y sus principios de funcionamiento pertenecen al campo del
in$eniero electricista.
/i+,"a 010 &n sistema de computadora consiste en hardware,
pro$ramas de sistema y pro$ramas de aplicacin.
* continuacin 'en al$unas mquinas, !iene una capa de software primiti!o que controla directamente estos
dispositi!os y ofrece una interfaz ms aseada a la si$uiente capa. #ste software, llamado mic"op"o+"ama,
suele estar almacenado en memoria de slo lectura. #n realidad es un int(rprete, que obtiene las
instrucciones de len$ua"e de mquina como *55, +67# y 8&+9 y las e"ecuta en una serie de pasos
peque0os. 9or e"emplo, para e"ecutar una instruccin *55 'sumar,, el micropro$rama debe determinar
dnde se encuentran los nmeros que se !an a sumar, obtenerlos, sumarlos y almacenar el resultado en
al$n lu$ar. #l con"unto de instrucciones que el micropro$rama interpreta define el len+,a#e %e m-.,ina,
que no es realmente parte de la mquina f.sica, aunque los fabricantes de computadoras siempre lo
describen en sus manuales como tal, de modo que muchas personas piensan en (l como si fuera la
:mquina; real.
*l$unas computadoras, llamadas RISC 'comp,ta%o"as con con#,nto %e inst",cciones "e%,ci%o,, no
tienen un ni!el de micropro$ramacin. #n estas mquinas, el hardware e"ecuta las instrucciones de len$ua"e
de mquina directamente. 9or e"emplo, el +otorola <=>x> tiene un ni!el de micropro$ramacin, pero el ?+
9ower9C no.
#l len$ua"e de mquina por lo re$ular cuenta con entre @> y A>> instrucciones, la mayor parte de ellas para
404
trasladar datos dentro de la mquina, realizar operaciones aritm(ticas y comparar !alores. #n esta capa, los
dispositi!os de entrada-salida se controlan car$ando !alores "e+ist"os %e %ispositi$o especiales. 9or
e"emplo, para un disco que e"ecuta una lectura, sus re$istros se car$an con los !alores de direccin del
disco, direccin de memoria principal, conteo de bytes y direccin de acceso ')#*5 o B)C#,. #n la
prctica se requieren muchos parmetros ms, y el estado de!uelto por la unidad de disco despu(s de una
operacin es muy comple"o. *dems, la temporizacin desempe0a un papel importante en la pro$ramacin
de muchos dispositi!os de #-S.
&na funcin importante del sistema operati!o es ocultar toda esta comple"idad y ofrecer al pro$ramador un
con"unto de instrucciones ms cmodo con el que pueda traba"ar. 9or e"emplo, 1##) ?16D&# 5#
*)C/76 es conceptualmente ms sencillo que tener que preocuparse por los detalles de mo!er cabezas
de disco, esperar que se estabilicen, etc(tera.
#ncima del sistema operati!o est el resto del software de sistema. *qu. encontramos el int(rprete de
comandos 's*ell,, sistemas de !entanas, compiladores, editores y otros pro$ramas similares
independientes de la aplicacin. #s importante darse cuenta de que estos pro$ramas definiti!amente no
forman parte del sistema operati!o, a pesar de que casi siempre son pro!istos por el fabricante de la
computadora. Este es un punto crucial, aunque sutil. #l sistema operati!o es la porcin del software que se
e"ecuta en mo%o 2e"nel o mo%o s,pe"$iso", y est prote$ido por el hardware contra la inter!encin del
usuario 'ol!idndonos por el momento de al$unos de los microprocesadores ms !ie"os que no tienen
nin$una proteccin de hardware,. 1os compiladores y editores se e"ecutan en mo%o %e ,s,a"io. Si a un
usuario no le $usta un compilador en particular, (l
3
est en libertad de escribir el suyo propio si lo desea; no
est en libertad de escribir su propio mane"ador de interrupciones del disco, que forma parte del sistema
operati!o y normalmente est prote$ido por el hardware contra los intentos de los usuarios por modificarlo.
9or ltimo, encima de los pro$ramas de sistema !ienen los pro$ramas de aplicacin. 1os usuarios compran
o escriben estos pro$ramas para resol!er sus problemas particulares, como procesamiento de textos, ho"as
de clculo, clculos de in$enier.a o "ue$os.
00 34U5 ES UN SISTEMA OPERATIVO6
1a mayor.a de los usuarios de computadora han tenido al$o de experiencia con un sistema operati!o, pero
no es fcil precisar con exactitud qu( es un sistema operati!o. 9arte del problema consiste en que el
sistema operati!o realiza dos funciones que bsicamente no estn relacionadas entre s. y, dependiendo de
a qui(n le pre$untemos, por lo $eneral se nos habla principalmente de una funcin o de la otra. 7eamos
ahora las dos.
000 El sistema ope"ati$o como m-.,ina e7ten%i%a
Como ya di"imos, la a".,itect,"a 'con"unto de instrucciones, or$anizacin de memoria, #-S y estructura de
buses, de la mayor parte de las computadoras en el ni!el de len$ua"e de mquina es primiti!a y dif.cil de
pro$ramar, sobre todo para entrada-salida. * fin de hacer ms concreto este punto, !eamos bre!emente
cmo se realiza la #-S de disco flexible usando el chip controlador F#C 95G<@ 'o su equi!alente,, utilizado
por la mayor parte de las computadoras personales. '#n todo este libro usaremos indistintamente los
t(rminos :disco flexible; y :disquete;., #l 95G<@ tiene 3< comandos, cada uno de los cuales se especifica
car$ando entre 3 y H bytes en un re$istro de dispositi!o. #stos comandos sir!en para leer y escribir datos,
mo!er el brazo del disco y formatear pistas, as. como para inicializar, detectar, restablecer y recalibrar el
controlador y las unidades de disco.
1os comandos ms bsicos son )#*5 y B)C#, cada uno de los cuales requiere 3A parmetros
empacados en H bytes. #stos parmetros especifican cosas tales como la direccin del bloque de disco que
se !a a leer, el nmero de sectores por pista, el modo de $rabacin empleado en el medio f.sico, el
espaciado de la brecha entre sectores y qu( hacer con una marca de :direccin de datos eliminada;. Si
usted no entiende a qu( nos referimos, no se preocupe; de eso se trata precisamente% es al$o muy
esot(rico. Cuando se completa la operacin, el chip controlador de!uel!e IA campos de estado y error
empacados en G bytes. 9or si esto no fuera suficiente, el pro$ramador del disco flexible tambi(n debe tener
presente en todo momento si el motor est encendido o apa$ado. Si el motor est apa$ado, debe
encenderse 'con un retardo de arranque lar$o, antes de que puedan leerse o escribirse datos. #mpero, el
motor no puede de"arse encendido demasiado tiempo, pues el disco flexible se des$astar.a. 9or tanto, el
pro$ramador debe encontrar un equilibrio entre los retardos de arranque lar$os y el des$aste de los discos
flexibles 'y la p(rdida de los datos que contienen,.
Sin entrar en los !erdaderos detalles, debe quedar claro que el pro$ramador ordinario se$uramente no
1 l debe leerse l o ella a lo largo de todo el libro
484
quiere inter!enir de manera demasiado .ntima en la pro$ramacin de los discos flexibles 'o de los duros,
que son i$ualmente comple"os, y muy distintos,. #n !ez de ello, lo que el pro$ramador quiere es mane"ar
una abstraccin sencilla, de alto ni!el. #n el caso de los discos, una abstraccin t.pica ser.a que el disco
contiene una coleccin de archi!os con nombre. Cada archi!o puede abrirse para lectura o escritura, leerse
o escribirse, y por ltimo cerrarse. 1os detalles de si la $rabacin debe usar o no modulacin de frecuencia
modificada y cul es la situacin actual del motor no debern aparecer en la abstraccin presentada al
usuario.
#l pro$rama que oculta la !erdad acerca del hardware y presenta al pro$ramador una !ista sencilla y bonita
de archi!os con nombre que pueden leerse y escribirse es, por supuesto, el sistema operati!o. *s. como el
sistema operati!o a.sla al pro$ramador del hardware del disco y presenta una interfaz sencilla orientada a
archi!os, tambi(n oculta muchos asuntos desa$radables referentes a interrupciones, temporizadores,
administracin de memoria y otras funciones de ba"o ni!el. #n cada caso, la abstraccin que el sistema
operati!o ofrece es ms sencilla y fcil de usar que el hardware subyacente.
#n esta !ista, la funcin del sistema operati!o es presentar al usuario el equi!alente de una m-.,ina
e7ten%i%a o m-.,ina $i"t,al que es ms fcil de pro$ramar que el hardware subyacente. 1a forma en que
el sistema operati!o lo$ra este ob"eti!o es una historia lar$a, que estudiaremos con detalle a lo lar$o del
libro.
008 El sistema ope"ati$o como a%minist"a%o" %e "ec,"sos
#l concepto del sistema operati!o como al$o cuya funcin primordial es ofrecer a los usuarios una nterfaz
cmoda es una !isin descendente. &na !isin ascendente alternati!a postula que el sistema operati!o est
ah. para administrar todos los componentes de un sistema comple"o. 1as computadoras modernas constan
de procesadores, memorias, temporizadores, discos, ratones, interfaces con redes, impresoras lser y una
$ran !ariedad de otros dispositi!os. #n la !isin alternati!a, la misin del sistema operati!o es ase$urar un
reparto ordenado y controlado de los procesadores, memorias y dispositi!os de #-S entre los diferentes
pro$ramas que compiten por ellos.
ma$ine lo que suceder.a si tres pro$ramas que se e"ecutan en al$una computadora trataran de imprimir sus
salidas simultneamente en la misma impresora. 1as primeras l.neas del listado podr.an ser del pro$rama 3,
las si$uientes del pro$rama I, lue$o al$unas del pro$rama A, y as. sucesi!amente. #l resultado ser.a un
caos. #l sistema operati!o puede poner orden en el caos potencial almacenando temporalmente en el disco
todas las salidas destinadas para la impresora. Cuando un pro$rama haya terminado, el sistema operati!o
podr copiar su salida del archi!o de disco donde se almacen a la impresora, mientras que el otro
pro$rama puede continuar $enerando salidas, a"eno al hecho de que dichas salidas no estn yendo
directamente a la impresora 'toda!.a,.
Cuando una computadora 'o red, tiene mltiples usuarios, la necesidad de administrar y prote$er la
memoria, los dispositi!os de #-S y dems recursos es an mayor, ya que de otra manera los usuarios
podr.an interferirse. *dems, es frecuente que los usuarios ten$an que compartir no slo hardware, sino
tambi(n informacin 'archi!os, bases de datos, etc.,. #n pocas palabras, esta es !isin del sistema
operati!o sostiene que su tarea primordial es se$uir la pista de qui(n est usando cul recurso, atender
solicitudes de recursos, contabilizar la utilizacin y mediar entre solicitudes en conflicto pro!enientes de
diferentes pro$ramas y usuarios.
08 )ISTORIA DE (OS SISTEMAS OPERATIVOS
1os sistemas operati!os han estado e!olucionando durante muchos a0os. #n las si$uientes secciones
examinaremos bre!emente este desarrollo. 5ado que, histricamente, los sistemas operati!os han estado
de manera muy estrecha !inculados con la arquitectura de las computadoras en las que se e"ecutan,
estudiaremos las sucesi!as $eneraciones de computadoras para !er qu( clase de sistemas operati!os
usaban. #sta correspondencia entre las $eneraciones de sistemas operati!os y de computadoras es al$o
burda, pero establece un poco de estructura que de otra forma ser.a inexistente.
1a primera computadora di$ital !erdadera fue dise0ada por el matemtico in$l(s Charles ?abba$e '3GHI4
3=G3,. *unque ?abba$e in!irti la mayor parte de su !ida y su fortuna tratando de construir su :mquina
anal.tica;, nunca lo$r que funcionara correctamente porque era totalmente mecnica, y la tecnolo$.a de su
(poca no pod.a producir las ruedas, en$ranes y le!as con la ele!ada precisin que (l requer.a. /uel$a decir
que la mquina anal.tica no contaba con un sistema operati!o.
Como acotacin histrica interesante, diremos que ?abba$e se dio cuenta de que necesitar.a software para
su mquina anal.tica, as. que contrat a una "o!en mu"er, *da 1o!elace, hi"a del famoso poeta britnico,
1ord ?yron, como la primera pro$ramadora de la historia. #l len$ua"e de pro$ramacin *daJ recibi su
494
nombre en honor a ella.
080 (a p"ime"a +ene"acin :0;<=1==>: T,?os %e $ac'o @ ta?le"os %e conm,tacin
5espu(s del fracaso de los traba"os de ?abba$e, fueron pocos los a!ances que se lo$raron en la
construccin de computadoras di$itales hasta la Se$unda Kuerra +undial. * mediados de la d(cada de
3HL>, /oward *iMen en /ar!ard, 8ohn !on Feumann en el nstitute for *d!anced Study en 9rinceton, 8.
9resper #cMert y Billiam +auchley en la &ni!ersity of 9ennsyl!ania y Nonrad Ouse en *lemania, entre otros,
lo$raron construir mquinas calculadoras usando tubos de !ac.o. #stas mquinas eran enormes, y
ocupaban cuartos enteros con decenas de miles de tubos de !ac.o, pero eran mucho ms lentas que
incluso las computadoras personales ms baratas de la actualidad.
#n esos primeros d.as, un solo $rupo de personas dise0aba, constru.a, pro$ramaba, operaba y manten.a a
cada mquina. Coda la pro$ramacin se realizaba en len$ua"e de mquina absoluto, a menudo alambrando
tableros de conmutacin para controlar las funciones bsicas de la mquina. Fo exist.an los len$ua"es de
pro$ramacin 'ni siquiera los de ensamblador,. Fadie hab.a o.do hablar de los sistemas operati!os. 1a
forma de operacin usual consist.a en que el pro$ramador se anotaba para recibir un bloque de tiempo en la
ho"a de reser!aciones col$ada en la pared, lue$o ba"aba al cuarto de la mquina, insertaba su tablero de
conmutacin en la computadora, y pasaba las si$uientes horas con la esperanza de que nin$uno de los
cerca de I>>>> tubos de !ac.o se quemara durante la sesin. 9rcticamente todos los problemas eran
clculos num(ricos directos, como la produccin de tablas de senos y cosenos.
* principios de la d(cada de 3H@>, la rutina hab.a me"orado un poco con la introduccin de las tar"etas
perforadas. *hora era posible escribir pro$ramas en tar"etas e introducirlas para ser le.das, en lu$ar de usar
tableros de conmutacin; por lo dems, el procedimiento era el mismo.
088 (a se+,n%a +ene"acin :0;==1A=>: T"ansisto"es @ sistemas po" lote
1a introduccin del transistor a mediados de la d(cada de 3H@> alter el panorama radicalmente. 1as
computadoras se hicieron lo bastante confiables como para poderse fabricar y !ender a clientes comerciales
con la expectati!a de que se$uir.an funcionando el tiempo suficiente para realizar al$o de traba"o til. 9or
primera !ez, hab.a una separacin clara entre dise0adores, constructores, operadores, pro$ramadores y
personal de mantenimiento.
#stas mquinas se encerraban en cuartos de computadora con acondicionamiento de aire especial, con
equipos de operadores profesionales para operarlas. Slo las $randes empresas, o las principales
dependencias del $obierno o uni!ersidades, pod.an sol!entar el costo de muchos millones de dlares. 9ara
e"ecutar un t"a?a#o 'es decir, un pro$rama o serie de pro$ramas,, un pro$ramador escrib.a primero el
pro$rama en papel 'en 26)C)*F o ensamblador, y lue$o lo perforaba en tar"etas. 5espu(s, lle!aba el
$rupo de tar"etas al cuarto de entrada y lo entre$aba a uno de los operadores.
Cuando la computadora terminaba el traba"o que estaba e"ecutando en ese momento, un operador acud.a a
la impresora, separaba la salida impresa y la lle!aba al cuarto de salida donde el pro$ramador pod.a
reco$erla despu(s. 1ue$o, el operador tomaba uno de los $rupos de tar"etas tra.dos del cuarto de entrada y
lo introduc.a en el lector. Si se requer.a el compilador de 26)C)*F, el operador ten.a que traerlo de un
archi!ero e introducirlo en el lector. Kran parte del tiempo de computadora se desperdiciaba mientras los
operadores iban de un lu$ar a otro, en el cuarto de la mquina.
5ado el alto costo del equipo, no es sorprendente que la $ente pronto buscara formas de reducir el
desperdicio de tiempo. 1a solucin que se adopt $eneralmente fue el sistema po" lotes. #l principio de
este modo de operacin consist.a en "untar una serie de traba"os en el cuarto de entrada, leerlos y $rabarlos
en una cinta ma$n(tica usando una computadora peque0a y 'relati!amente, econmica, como una ?+
3L>3, que era muy buena para leer tar"etas, copiar cintas e imprimir salidas, pero no para realizar clculos
num(ricos. 6tras mquinas, mucho ms costosas, como la ?+ G>HL, se usaban para la computacin
propiamente dicha. #sta situacin se muestra en la 2i$. 34I.
4<4
/i+,"a 018. &no de los primeros sistemas por lotes. 'a, 1os pro$ramadores traen tar"etas a la 3L>3. 'b,
1a 3L>3 lee lotes de traba"os y los $raba en cinta. 'c, #l operador lle!a la cinta de entrada a la G>HL. 'd,
1a G>HL realiza la computacin. 'e, #l operador lle!a la cinta de salida a la 3L>3. 'f, 1a 3L>3 imprime la
salida.
5espu(s de cerca de una hora de reunir un lote de traba"os, la cinta se rebobinaba y se lle!aba al cuarto de
la mquina, donde se montaba en una unidad de cinta. #l operador car$aba entonces un pro$rama especial
'el antepasado del sistema operati!o actual,, que le.a el primer traba"o de la cinta y lo e"ecutaba. 1a salida
se escrib.a en una se$unda cinta, en lu$ar de imprimirse. Cada !ez que terminaba un traba"o, el sistema
operati!o le.a automticamente el si$uiente traba"o de la cinta y comenzaba a e"ecutarlo. &na !ez que
estaba listo todo el lote, el operador desmontaba las cintas de entrada y salida, montaba la cinta de entrada
del si$uiente lote, y lle!aba la cinta de salida a una 3L>3 para la impresin B,e"a %e l'nea 'o sea, no
conectada a la computadora principal,.
1a estructura de un traba"o de entrada t.pico se muestra en la 2i$. 34A. #l traba"o comenzaba con una tar"eta
P86?, que especificaba el tiempo de e"ecucin mximo en minutos, el nmero de cuenta al que se deb.a
cobrar el traba"o, y el nombre del pro$ramador. 1ue$o !en.a una tar"eta P26)C)*F, que ordenaba al
sistema operati!o leer el compilador de 26)C)*F de la cinta de sistema. #sta tar"eta iba se$uida del
pro$rama por compilar y por una tar"eta P16*5, que ordenaba al sistema operati!o car$ar el pro$rama
ob"eto reci(n compilado. '1os pro$ramas compilados a menudo se escrib.an en cintas temporales y ten.an
que car$arse expl.citamente., 1ue$o !en.a la tar"eta P)&F, que ordenaba al sistema operati!o e"ecutar el
pro$rama con los datos que le se$u.an. 9or ltimo, la tar"eta P#F5 marcaba el final del traba"o. #stas
tar"etas de control primiti!as eran los precursores de los len$ua"es de control de traba"os e int(rpretes de
comandos modernos.
Figura 1-3. Estructura de un trabajo FMS tpico
1as computadoras $randes de la se$unda $eneracin se usaban primordialmente para clculos cient.ficos y
de in$enier.a, como la resolucin de ecuaciones diferenciales parciales. #stas mquinas $eneralmente se
pro$ramaban en 26)C)*F y len$ua"e ensamblador. 1os sistemas operati!os t.picos eran 2+S 'el Fortran
Monitor System, e ?SQS, el sistema operati!o de ?+ para la G>HL.
089 (a te"ce"a +ene"acin :0;A=10;CD>: Ci"c,itos inte+"a%os @ m,ltip"o+"amacin
* principios de la d(cada de 3H<>, la mayor.a de los fabricantes de computadoras ten.an dos l.neas de
producto distintas y totalmente incompatibles. 9or un lado estaban las computadoras cient.ficas a $ran
escala, orientadas hacia las palabras, como la G>HL, que se usaban para clculos num(ricos en ciencias e
4=4
in$enier.a. 9or el otro, estaban las computadoras comerciales orientadas hacia los caracteres, como la
3L>3, que los bancos y las compa0.as de se$uros utilizaban ampliamente para ordenar e imprimir desde
cinta.
1a creacin y mantenimiento de dos l.neas de producto totalmente distintas era una situacin costosa para
los fabricantes. *dems, muchos clientes de computadoras nue!as necesitaban inicialmente una mquina
peque0a que ms adelante les resultaba insuficiente, de modo que quer.an una mquina ms $rande que
e"ecutara todos sus !ie"os pro$ramas, pero ms rpidamente.
?+ trat de resol!er simultneamente ambos problemas introduciendo la System-A<>. 1a A<> era una serie
de mquinas de software compatible que iban desde tama0os comparables a la 3L>3 hasta computadoras
mucho ms potentes que la G>HL. 1as mquinas difer.an slo en el precio y el rendimiento 'memoria
mxima, !elocidad del procesador, nmero de dispositi!os de #-S permitidos, etc.,. 9uesto que todas las
mquinas ten.an la misma arquitectura y con"unto de instrucciones, los pro$ramas escritos para una
mquina pod.an e"ecutarse en todas las dems, al menos en teor.a. *dems, la A<> estaba dise0ada para
mane"ar computacin tanto cient.fica como comercial. *s., una sola familia de mquinas pod.a satisfacer las
necesidades de todos los clientes. #n a0os subsecuentes ?+ produ"o sucesoras comparables a la l.nea
A<>, usando tecnolo$.a ms moderna, conocidas como series AG>, LA>>, A>=> y A>H>.
1a A<> fue la primera l.nea importante de computadoras en usar 'a peque0a escala, circuitos inte$rados
'C,, ofreciendo as. una !enta"a de precio-rendimiento considerable respecto a las mquinas de la se$unda
$eneracin, que se armaban con transistores indi!iduales. #sta l.nea fue un (xito inmediato, y la idea de
una familia de computadoras compatibles pronto fue adoptada por todos los dems fabricantes importantes.
1os descendientes de estas mquinas toda!.a se emplean en uno que otro centro de cmputo en la
actualidad, pero su uso est en rpido decli!e.
1a $ran !enta"a de la idea de :una familia; fue tambi(n su $ran debilidad. 1a intencin era que todo el
software, incluido el sistema operati!o, funcionara en todos los modelos. #l software ten.a que funcionar en
sistemas peque0os, que en muchos casos simplemente sustitu.an a la 3L>3 para copiar tar"etas en cinta, y
en sistemas muy $randes, que con frecuencia sustitu.an a las G>HL para realizar pronsticos del tiempo y
otros traba"os de computacin pesada. #l software ten.a que ser bueno en sistemas con pocos y con
muchos perif(ricos; ten.a que funcionar en entornos comerciales y. cient.ficos y, sobre todo, ten.a que ser
eficiente para todos estos usos distintos.
#ra imposible que ?+ 'o al$uien ms, pudiera escribir un pro$rama que satisficiera todos esos requisitos
opuestos. #l resultado fue un sistema operati!o enorme, extraordinariamente comple"o, tal !ez dos o tres
rdenes de ma$nitud mayor que 2+S. #ste sistema consist.a en millones de l.neas de len$ua"e
ensamblador escrito por miles de pro$ramadores, y conten.a miles y miles de errores, requiri(ndose un flu"o
continuo de nue!as !ersiones en un intento por corre$irlos. Cada !ersin nue!a corre$.a al$unos errores e
introduc.a otros nue!os, de modo que es probable que el nmero de errores se mantu!iera constante con el
tiempo.
&no de los dise0adores de 6S-A<>, 2red ?rooMs, escribi despu(s un in$enioso e incisi!o libro '?rooMs,
3HG@, describiendo sus experiencias con el 6S-A<>. *unque ser.a imposible resumir aqu. ese libro, baste
con decir que la portada muestra una manada de bestias prehistricas atascadas en un foso de brea. 1a
portada del libro de Silberschatz y Kal!in '3HHL, es una alusin similar.
* pesar de su enorme tama0o y de sus problemas, 6S-A<> y los sistemas operati!os de tercera $eneracin
parecidos a (l producidos por otros fabricantes de computadoras lo$raron satisfacer a sus clientes en un
$rado razonable, y tambi(n popularizaron !arias t(cnicas cla!e que no exist.an en los sistemas operati!os
de la se$unda $eneracin. Cal !ez la ms importante de ellas haya sido la m,ltip"o+"amacin. #n la G>HL,
cuando el traba"o actual hac.a una pausa para esperar que se completara una operacin de cinta u otra
operacin de #-S, la C9& simplemente permanec.a ociosa hasta que la #-S terminaba. #n los clculos
cient.ficos, con $ran uso de C9&, la #-S es poco frecuente, as. que el tiempo desperdiciado no es
si$nificati!o. #n el procesamiento de datos comerciales, el tiempo de espera por #-S puede ser el => o H>R
del tiempo total, de modo que al$o deb.a hacerse para e!itar que la C9& estu!iera ociosa tanto tiempo.
1a solucin a la que se lle$ fue di!idir la memoria en !arias secciones, con un traba"o distinto en cada
particin, como se muestra en la 2i$. 34L. +ientras un traba"o estaba esperando que terminara su #-S, otro
pod.a estar usando la C9&. Si se pod.an tener en la memoria principal suficientes traba"os a la !ez, la C9&
pod.a mantenerse ocupada casi todo el tiempo. Cener mltiples traba"os en la memoria a la !ez requiere
hardware especial para prote$er cada traba"o contra espiona"e por parte de los dems, pero la A<> y otros
sistemas de tercera $eneracin estaban equipados con este hardware.
4A4
/i+,"a 01<. Sistema de multipro$ramacin
con tres traba"os en la memoria
6tra caracter.stica importante presente en los sistemas operati!os de la tercera $eneracin era la capacidad
de leer traba"os de las tar"etas al disco tan pronto como se lle!aban al cuarto de computadoras. 1ue$o, cada
!ez que un traba"o terminaba su e"ecucin, el sistema operati!o pod.a car$ar uno nue!o del disco en la
particin que hab.a quedado !ac.a y e"ecutarlo. #sta t(cnica se llama spoolin+ 'de :operacin simultnea
de perifricos en lnea;, y tambi(n se usaba para la salida. Con spoolin$, las 3L>3 ya no eran necesarias, y
desapareci una buena parte del transporte de cintas.
*unque los sistemas operati!os de la tercera $eneracin se adaptaban bien a clculos cient.ficos extensos y
sesiones masi!as de procesamiento de datos comerciales, se$u.an siendo bsicamente sistemas por lotes.
+uchos pro$ramadores a0oraban los d.as de la primera $eneracin cuando ten.an toda la mquina para
ellos solos durante unas cuantas horas, lo que les permit.a depurar sus pro$ramas rpidamente. Con los
sistemas de la tercera $eneracin, el tiempo entre la presentacin de un traba"o y la obtencin de las salidas
a menudo era de !arias horas, y una sola coma mal colocada pod.a causar el fracaso de una compilacin y
que el pro$ramador desperdiciara medio d.a.
#ste deseo de respuesta rpida prepar el camino para el tiempo compa"ti%o, una !ariante de la
multipro$ramacin, en la que cada usuario tiene una terminal en l.nea. #n un sistema de tiempo compartido,
si I> usuarios in$resan en el sistema y 3G de ellos estn pensando, hablando o tomando caf(, la C9&
puede asi$narse por turno a los tres traba"os que requieren ser!icio. 9uesto que las personas que estn
depurando pro$ramas usualmente emiten comandos cortos 'p. e"., compilar un procedimiento de cinco
p$inas, en !ez de lar$os 'p. e"., ordenar un archi!o de un milln de re$istros,, la computadora puede
proporcionar ser!icio rpido interacti!o a !arios usuarios y tal !ez tambi(n traba"ar con traba"os de lote
$randes en se$undo plano cuando la C9& est ociosa. *unque el primer sistema serio de tiempo
compartido 'CCSS, fue creado en el +..C. en una G>HL especialmente modificada 'Corbato et al., 3H<I,, el
tiempo compartido no se populariz realmente hasta que se $eneraliz el uso del hardware de proteccin
necesario durante la tercera $eneracin.
5espu(s del (xito del sistema CCSS, +C, ?ell 1abs y Keneral #lectric 'por ese entonces un fabricante
importante de computadoras, decidieron emprender el desarrollo de un :ser!icio de computadora; una
mquina que diera apoyo a cientos de usuarios de tiempo compartido simultneos. Su modelo fue el
sistema de distribucin de electricidad% cuando usted necesita potencia el(ctrica, simplemente enchufa una
cla!i"a en la pared y, dentro de l.mites razonables, obtendr tanta electricidad como necesite. 1os
dise0adores de este sistema, llamado MU(TICS 'servicio de informacin y computacin multiplexado,,
contemplaban una enorme mquina que proporcionara potencia de cmputo a todos los usuarios de ?oston.
1a idea de que mquinas mucho ms potentes que su K#4<L@ se !endieran como computadoras
personales por unos cuantos miles de dlares slo A> a0os despu(s no era sino ciencia ficcin en ese
entonces.
9ara resumir un poco la historia, +&1CCS introdu"o muchas ideas seminales en la literatura de
computacin, pero su construccin fue mucho ms dif.cil de lo que nadie hab.a ima$inado. ?ell 1abs
abandon el proyecto, y Keneral #lectric de" el ne$ocio de las computadoras por completo. 2inalmente,
+&1CCS funcion lo bastante bien como para usarse en un entorno de produccin de +C y en docenas de
otros sitios, pero el concepto de un ser!icio de computadora se hizo obsoleto al desplomarse los precios de
las computadoras. Fo obstante, +&1CCS tu!o una influencia enorme sobre los sistemas subsecuentes; se
le describe en 'Corbato et al., 3HGI; Corbato y 7yssotsMy, 3H<@; 5aley y 5ennis, 3H<=; 6r$anicM, 3HGI;
Saltzer, 3HGL,.
6tro a!ance importante durante la tercera $eneracin fue el crecimiento fenomenal de las
minicomputadoras, comenzando con la 5#C 9594 3 en 3H<3. 1a 95943 slo ten.a LN de palabras de 3=
bits, pero a P3I> >>> por mquina 'menos del @R del precio de una G>HL,, se !endieron como pan caliente.
9ara ciertos tipos de traba"os no num(ricos, la 95943 era casi tan rpida como la G>HL, e hizo nacer una
4E4
industria totalmente nue!a. * esta mquina pronto si$ui una serie de otras 959 'todas incompatibles, a
diferencia de la familia ?+,, culminando en la 959433.
&no de los computlo$os de ?el 1abs que hab.a traba"ado en el proyecto +&1CCS, Nen Chompson,
encontr subsecuentemente una peque0a minicomputadora 9594G que nadie estaba usando y se propuso
escribir una !ersin de +&1CCS reducida al m.nimo, para un solo usuario. #ste traba"o posteriormente
e!olucion para con!ertirse en el sistema operati!o UNIFJ, que se populariz en el mundo acad(mico, las
dependencias del $obierno y muchas compa0.as.
1a historia de &FS se cuenta en otras obras 'p. e"., Salus, 3HHL,. ?aste con decir que, dado que casi todo
mundo pod.a obtener el cdi$o fuente, di!ersas or$anizaciones desarrollaron sus propias !ersiones
'incompatibles,, lo que condu"o al caos. Con ob"eto de que fuera posible escribir pro$ramas susceptibles de
e"ecucin en cualquier sistema &FS, el ### cre un estndar para &FS, llamado Posi7, que casi todas
las !ersiones actuales de &FS reconocen. 96SS define una interfaz m.nima de llamadas al sistema que
los sistemas &FS deben reconocer. 5e hecho, al$unos otros sistemas de pro$ramacin ya reconocen la
interfaz 96SS.
08< (a c,a"ta +ene"acin :0;CD1p"esente>: Comp,ta%o"as pe"sonales
Con la in!encin de los circuitos inte$rados a $ran escala '1S,, chips que contienen miles de transistores
en un cmI de silicio, naci la era de la computadora personal. #n t(rminos de arquitectura, las
computadoras personales no eran muy diferentes de las minicomputadoras de la clase 959433, pero en
t(rminos de precio s. que eran diferentes. Si bien la minicomputadora hac.a posible que un departamento de
una compa0.a o uni!ersidad tu!iera su propia computadora, el chip microprocesador permit.a que un solo
indi!iduo tu!iera su propia computadora personal. 1as computadoras personales ms potentes empleadas
por empresas, uni!ersidades e instalaciones del $obierno suelen llamarse estaciones %e t"a?a#o, pero en
realidad slo son computadoras personales $randes. 9or lo re$ular estas mquinas estn interconectadas
mediante una red.
1a amplia disponibilidad de la potencia de cmputo, sobre todo la potencia de cmputo altamente interacti!a
casi siempre acompa0ada por excelentes $rficos, dio pie al crecimiento de una importante industria
productora de software para computadoras personales. &na buena parte de este software era amistoso
con el ,s,a"io, lo que si$nifica que estaba diri$ido a usuarios que no slo no sab.an nada de computacin,
sino que adems no ten.an la m.nima intencin de aprender. Sin duda, esto representaba un cambio
drstico respecto al 6S-A<>, cuyo len$ua"e de control de traba"os, 8C1, era tan arcano que lle$aron a
escribirse libros enteros sobre (l 'p. e"., Cadow, 3HG>,.
5os sistemas operati!os dominaron inicialmente el campo de las computadoras personales y las estaciones
de traba"o% MS1DOS de +icrosoft y UNIF. +S456S se usaba ampliamente en la ?+ 9C y otras mquinas
basadas en la C9& ntel =>== y sus sucesoras, la =>I=<, =>A=< y =>L=< 'que en adelante llamaremos la
I=<, A=< y L=<, respecti!amente, y ms tarde la 9entium y 9entium 9ro. *unque la !ersin inicial de +S4
56S era relati!amente primiti!a, !ersiones subsecuentes han incluido caracter.sticas ms a!anzadas,
muchas de ellas tomadas de &FS. #l sucesor de +icrosoft para +S456S, BF56BS, ori$inalmente se
e"ecutaba encima de +S456S 'es decir, era ms un shell que un !erdadero sistema operati!o,, pero a partir
de 3HH@ se produ"o una !ersin autosuficiente de BF56BS, WINDOWS ;=J, de modo que ya no se
necesita +S456S para apoyarlo. 6tro sistema operati!o de +icrosoft es WINDOWS NT, que es compatible
con BF56BS H@ en cierto ni!el, pero internamente se reescribi desde cero.
#l otro competidor importante es &FS, que domina en las estaciones de traba"o y otras computadoras del
extremo alto, como los ser!idores de red. &FS es popular sobre todo en mquinas basadas en chips )SC
de alto rendimiento. #stas mquinas por lo re$ular tienen la potencia de cmputo de una minicomputadora,
a pesar de estar dedicadas a un solo usuario, por lo que resulta l$ico que est(n equipadas con un sistema
operati!o dise0ado ori$inalmente para minicomputadoras, a saber, &FS.
&na tendencia interesante que apareci a mediados de la d(cada de 3H=> fue el crecimiento de redes de
computadoras personales en las que se e"ecutan sistemas ope"ati$os %e "e% o sistemas ope"ati$os
%ist"i?,i%os 'Canenbaum, 3HH@,. #n un sistema operati!o de red los usuarios estn conscientes de la
existencia de mltiples computadoras y pueden in$resar en mquinas remotas y copiar archi!os de una
mquina a otra. Cada mquina e"ecuta su propio sistema operati!o local y tiene su propio usuario o usuarios
locales.
1os sistemas ope"ati$os %e "e% no son fundamentalmente distintos de aquellos para un solo procesador.
6b!iamente, estos sistemas necesitan un controlador de la interfaz con la red y software de ba"o ni!el para
operarlo, as. como pro$ramas para realizar inicios de sesin remotos y acceso a archi!os remotos, pero
estas adiciones no alteran la estructura esencial del sistema operati!o.
4C4
&n sistema ope"ati$o %ist"i?,i%o, en cambio, presenta el mismo aspecto a los usuarios que un sistema
tradicional de un solo procesador, aunque en realidad se compone de mltiples procesadores. 1os usuarios
no deben enterarse de en dnde se estn e"ecutando sus pro$ramas o almacenando sus archi!os; de todo
eso debe encar$arse el sistema operati!o automtica y eficientemente.
1os !erdaderos sistemas operati!os distribuidos requieren ms que la adicin de un poco ms de cdi$o a
un sistema operati!o uniprocesador, porque los sistemas distribuidos y centralizados difieren en aspectos
cruciales. 1os sistemas distribuidos, por e"emplo, a menudo permiten a las aplicaciones e"ecutarse en !arios
procesadores al mismo tiempo, por lo que requieren al$oritmos de planificacin de ms comple"os a fin de
optimizar el $rado de paralelismo.
#n muchos casos, los retardos de comunicacin dentro de la red implican que (stos 'y otros, al$oritmos
deban e"ecutarse con informacin incompleta, caduca o incluso incorrecta. #sta situacin difiere
radicalmente un sistema de un solo procesador en el que el sistema operati!o tiene toda la informacin
sobr( el estado del sistema.
08= )isto"ia %e MINIF
Cuando &FS era "o!en '7ersin <,, era fcil conse$uir el cdi$o fuente, ba"o licencia de *CTC, y se
estudiaba mucho. 8ohn 1ions, de la &ni!ersity of Few South Bales en *ustralia, incluso escribi un librito
que describ.a su operacin, l.nea por l.nea '1ions, 3HH<,. #ste librito se us 'con permiso de *CTC, como
texto en muchos cursos uni!ersitarios de sistemas operati!os.
Cuando *CTC liber la 7ersin G, comenz a darse cuenta de que &FS era un producto comercial !alioso,
as. que entre$ la 7ersin G "unto con una licencia que prohib.a el estudio del cdi$o fuente en cursos, a fin
de e!itar poner en peli$ro su situacin de secreto comercial. +uchas uni!ersidades simplemente
abandonaron el estudio de &FS e impartieron slo teor.a.
5esafortunadamente, cuando slo se ense0a teor.a el estudiante adquiere una !isin desbalanceada de
cmo se !e realmente un sistema operati!o. 1os temas tericos que suelen cubrirse con $ran detalle en
cursos y libros sobre sistemas operati!os, como los al$oritmos de planificacin, en la prctica realmente no
son tan importantes. 1os temas que en !erdad son rele!antes, como #-S y sistemas de archi!os,
$eneralmente se descuidan porque no hay mucha teor.a al respecto.
* fin de remediar esta situacin, uno de los autores de este libro 'Canenbaum, decidi escribir un nue!o
sistema operati!o desde cero que fuera compatible con &FS desde el punto de !ista del usuario, pero
completamente distinto en su interior. *l no utilizar ni una sola l.nea del cdi$o de *CTC, este sistema e!ita
las restricciones de la licencia, as. que puede usarse en clase o para estudio indi!idual. 5e esta forma, los
lectores pueden disectar un sistema operati!o real para !er qu( hay dentro, tal como los estudiantes de
biolo$.a disectan ranas. #l nombre MINIF si$nifica mini1UNIF porque es lo suficientemente peque0o como
para poderlo entender a pesar de no ser un $ur.
*dems de la !enta"a de eliminar los problemas le$ales, +FS tiene otra !enta"a respecto a &FS% se
escribi una d(cada despu(s de &FS y tiene una estructura ms modular. #l sistema de archi!os de
+FS, por e"emplo, no forma parte del sistema operati!o, sino que se e"ecuta como pro$rama de usuario.
6tra diferencia es que &FS se dise0 de modo que fuera eficiente; +FS se dise0 pensando en que fuera
comprensible 'hasta donde puede ser comprensible cualquier pro$rama que ocupa cientos de p$inas,. #l
cdi$o de +FS, por e"emplo, incluye miles de comentarios.
+FS se dise0 ori$inalmente de modo que fuera compatible con &FS 7ersin G '7G,. Se us como
modelo esta !ersin a causa de su sencillez y ele$ancia. * !eces se dice que la 7ersin G no slo
represent una me"ora respecto a sus predecesores, sino tambi(n respecto a todos sus sucesores. Con la
lle$ada de 96SS, +FS comenz a e!olucionar hacia el nue!o estndar, al tiempo que manten.a la
compatibilidad hacia atrs con los pro$ramas existentes. #ste tipo de e!olucin es comn en la industria de
las computadoras, pues nin$n pro!eedor desea introducir un sistema nue!o que nin$uno de sus clientes
existentes podr usar sin $randes con!ulsiones. 1a !ersin de +FS que se describe en este libro se basa
en el estndar 96SS 'a diferencia de la !ersin descrita en la primera edicin, que se basaba en 7G,.
*l i$ual que &FS, +FS se escribi en el len$ua"e de pro$ramacin C y se pretend.a que fuera fcil
transportarlo a di!ersas computadoras. 1a implementacin inicial fue para la ?+ 9C, porque esta
computadora se usa ampliamente. Subsecuentemente se lle! a las computadoras *tari, *mi$a, +acintosh
y S9*)C. *corde con la filosof.a de que :lo pequeo es !ermoso;, +FS ori$inalmente no requer.a siquiera
un disco duro para e"ecutarse, lo que lo pon.a al alcance del presupuesto de muchos estudiantes 'aunque
puede parecer asombroso ahora, a mediados de la d(cada de 3H=> cuando +FS !io por primera !ez la
luz, los discos duros an eran una no!edad de precio ele!ado,. *l crecer +FS en funcionalidad y tama0o,
4;4
lle$ al punto en que se hizo necesario un disco duro, pero en concordancia con la filosof.a de +FS basta
con una particin de A> me$abytes. #n contraste, al$unos sistemas &FS comerciales ahora recomiendan
una particin de disco de I>> +? como m.nimo indispensable.
9ara el usuario medio sentado ante una ?+ 9C, e"ecutar +FS es similar a e"ecutar &FS. +uchos de los
pro$ramas bsicos, como cat, $rep, is, maMe y el shell estn presentes y desempe0an las mismas funciones
que sus contrapartes de &FS. *l i$ual que el sistema operati!o mismo, todos estos pro$ramas de utiler.a
fueron reescritos completamente desde cero por el autor, sus estudiantes y al$unas otras personas
dedicadas.
#n todo este libro se usar +FS como e"emplo. Fo obstante, casi todo lo que se di$a acerca de +FS, a
menos que se refiera al cdi$o en s., tambi(n aplica a &FS. +uchos de estos comentarios tambi(n aplican
a otros sistemas. #sto debe tenerse siempre presente al leer el libro.
Como acotacin, es posible que unas cuantas palabras acerca de 1F&S y su relacin con +FS sean de
inter(s para al$unos lectores. 9oco despu(s de liberarse +FS, se form un $rupo de noticias de &S#F#C
para hablar de (l. #n pocas semanas, este $rupo ten.a L>>>> suscriptores, la mayor parte de los cuales
quer.a a$re$ar enormes cantidades de nue!as capacidades a +FS a fin de hacerlo ms $rande y me"or
'bueno, al menos ms $rande,. Cada d.a, !arios cientos de ellos ofrec.an su$erencias, ideas y fra$mentos
de cdi$o. #l autor de +FS resisti con (xito esta arremetida durante !arios a0os, a fin de mantener a
+FS lo suficientemente peque0o y aseado como para que los estudiantes lo entendieran. Kradualmente,
la $ente comenz a con!encerse de que su posicin era inamo!ible. 2inalmente, un estudiante finland(s,
1inus Cor!alds, decidi escribir un clon de +FS que pretend.a ser un sistema de produccin con
abundantes capacidades, ms que una herramienta educati!a. *s. fue como naci (INUF.
09 CONCEPTOS DE SISTEMAS OPERATIVOS
1a interfaz entre el sistema operati!o y los pro$ramas de usuario est definida por el con"unto de
:operaciones extendidas; que el sistema operati!o ofrece. #stas instrucciones se han llamado
tradicionalmente llama%as al sistema, aunque ahora pueden implementarse de !arias formas. 9ara
entender realmente lo que los sistemas operati!os hacen, debemos examinar con detenimiento esta
interfaz. 1as llamadas disponibles en la interfaz !ar.an de un sistema operati!o a otro 'aunque los conceptos
subyacentes tienden a ser similares,.
9or tanto, nos !emos obli$ados a esco$er entre '3, $eneralidades !a$as ':los sistemas operati!os tienen
llamadas al sistema para leer archi!os;, y 'I, al$n sistema espec.fico ':+FS tiene una llamada al sistema
)#*5, con tres parmetros% uno para especificar el archi!o, uno para indicar dnde deben colocarse los
datos y uno para indicar cuntos bytes deben leerse;,
/emos esco$ido el se$undo enfoque. #sto implica ms traba"o, pero nos permite entender me"or qu( es
realmente lo que hacen los sistemas operati!os. #n la seccin 3.L examinaremos de cerca las llamadas al
sistema presentes tanto en &FS como en +FS. 9or sencillez, slo nos referiremos a +FS, pero las
llamadas al sistema &FS correspondientes se basan en 96SS en la mayor parte de los casos. Sin
embar$o, antes de estudiar las llamadas al sistema reales, !ale la pena presentar un panorama $eneral de
+FS, a fin de tener una idea $lobal de qu( es lo que hace un sistema operati!o. #ste panorama aplica
i$ualmente bien a &FS.
1as llamadas al sistema de +FS pertenecen a dos cate$or.as amplias% las que se ocupan de los procesos
y las que se ocupan del sistema de archi!os. * continuacin las examinaremos por turno.
090 P"ocesos
&n concepto cla!e en +FS, y en todos los sistemas operati!os, es el p"oceso. &n proceso es
bsicamente un pro$rama en e"ecucin. Cada proceso tiene asociado un espacio %e %i"ecciones, una lista
de posiciones de memoria desde al$n m.nimo 'usualmente >, hasta al$n mximo, que el proceso puede
leer y escribir. #l espacio de direcciones contiene el pro$rama e"ecutable, los datos del pro$rama, y su pila.
* cada proceso tambi(n se asocia un con"unto de re$istros, que incluyen el contador del pro$rama, el
apuntador de la pila y otros re$istros de hardware, as. como toda la dems informacin necesaria para
e"ecutar el pro$rama.
7ol!eremos al concepto de proceso con mucho mayor detalle en el cap.tulo I, pero por ahora la forma ms
fcil de adquirir una idea intuiti!a de lo que es un proceso es pensar en los sistemas de tiempo compartido.
9eridicamente, el sistema operati!o decide de"ar de e"ecutar un proceso y comenzar a e"ecutar otro, por
e"emplo, porque el primero ya tu!o ms tiempo de C9& del que le tocaba durante el se$undo anterior.
Cuando un proceso se suspende temporalmente de esta manera, debe reiniciarse despu(s en el mismo
40D4
estado exactamente en que estaba en el momento en que se le detu!o. #sto implica que toda la informacin
acerca del proceso se debe $uardar expl.citamente en al$n lu$ar durante la suspensin. 9or e"emplo, es
posible que el proceso ten$a !arios archi!os abiertos para lectura. Cada uno de estos archi!os tiene
asociado un apuntador que indica la posicin actual 'es decir, el nmero del byte o re$istro que se leer a
continuacin,. Cuando un proceso se suspende temporalmente, es necesario $uardar todos estos
apuntadores para que una llamada )#*5 e"ecutada despu(s de reiniciarse el proceso lea los datos
correctos. #n muchos sistemas operati!os, toda la informacin acerca de cada proceso, aparte del
contenido de su propio espacio de direcciones, se almacena en una tabla del sistema operati!o llamada
ta?la %e p"ocesos, que es un arre$lo 'o lista enlazada, de estructuras, una para cada proceso existente en
ese momento.
*s., un proceso 'suspendido, consiste en su espacio de direcciones, por lo re$ular llamado ima+en %e
nGcleo 'recordando las memorias de ncleos ma$n(ticos que se usaban en el pasado,, y su entrada en la
tabla de procesos, que contiene sus re$istros, entre otras cosas.
1as llamadas al sistema de administracin para procesos cla!e son las que se ocupan de la creacin y
terminacin de procesos. Consideremos un e"emplo representati!o. &n proceso llamado intH"p"ete %e
coman%os o s*ell lee comandos de una terminal. #l usuario acaba de teclear un comando solicitando la
compilacin de un pro$rama. #l shell debe crear ahora un proceso nue!o que e"ecute el compilador. Cuando
ese proceso haya terminado la compilacin, e"ecutar una llamada al sistema para terminarse a s. mismo.
Si un proceso puede crear uno o ms procesos distintos 'denominados p"ocesos *i#os, y (stos a su !ez
pueden crear procesos hi"os, pronto lle$amos a la estructura de rbol de procesos de la 2i$. 34@. 1os
procesos relacionados que estn cooperando para realizar al$una tarea a menudo necesitan comunicarse
entre s. y sincronizar sus acti!idades. #sta comunicacin se llama com,nicacin ent"e p"ocesos, y se
estudiar con detalle en el cap.tulo I.
Figura 1-5. "n rbol de procesos.
El proceso # cre dos procesos
!ijos$ % y &. El proceso % cre tres
procesos !ijos$ '$ E y F.
/ay otras llamadas al sistema relacionadas con procesos que solicitan ms memoria 'o liberan memoria no
utilizada,, esperan que un proceso hi"o termine, y superponen otro pro$rama al suyo.
6casionalmente, se hace necesario comunicar informacin a un proceso en e"ecucin que no est
simplemente esperando recibirla. 9or e"emplo, un proceso que se comunica con otro proceso en una
computadora distinta lo hace en!iando mensa"es por una red. * fin de pre!enir la posibilidad de que un
mensa"e o su respuesta se pierda, el remitente puede solicitar que su propio sistema operati!o le notifique
cuando haya transcurrido cierto nmero de se$undos, a fin de poder retransmitir el mensa"e si toda!.a no ha
lle$ado un acuse de recibo. 5espu(s de establecer este temporizador, el pro$rama puede se$uir realizando
otros traba"os.
Cuando ha transcurrido el nmero de se$undos que se especific, el sistema operati!o en!.a una seal al
proceso. 1a se0al hace que el proceso suspenda temporalmente lo que estaba haciendo, $uarde sus
re$istros en la pila, y comience a e"ecutar un procedimiento especial de mane"o de se0ales, por e"emplo,
para retransmitir un mensa"e que al parecer se perdi. &na !ez que el mane"ador de se0ales termina, el
proceso en e"ecucin se reinicia en el estado en que estaba "usto antes de la se0al. 1as se0ales son el
anlo$o en software de las interrupciones de hardware, y pueden ser $eneradas por di!ersas causas
adems de la expiracin de temporizadores. +uchas trampas detectadas por el hardware, como la
e"ecucin de una instruccin no permitida o el empleo de una direccin no !lida, tambi(n se con!ierten en
se0ales que se en!.an al proceso culpable.
#l administrador del sistema asi$na un ,i% 'identificador de usuario, a cada persona autorizada para usar
+FS. Cada proceso iniciado en +FS tiene el uid de la persona que lo inici. &n proceso hi"o tiene el
mismo uid que su padre. &n uid, llamado s,pe",s,a"io, tiene facultades especiales, y puede !iolar muchas
4004
de las re$las de proteccin. #n las instalaciones $randes, slo el administrador del sistema conoce la
contrase0a necesaria para con!ertirse en superusuario, pero muchos de los usuarios ordinarios 'sobre todo
estudiantes, dedican un esfuerzo considerable a tratar de encontrar defectos en el sistema que les permitan
con!ertirse en superusuarios sin contar con la contrase0a.
098 A"c*i$os
1a otra cate$or.a amplia de llamadas al sistema se relaciona con el sistema de archi!os. Como ya se
apunt, una funcin importante del sistema operati!o es ocultar las peculiaridades de los discos y otros
dispositi!os de #-S y presentar al pro$ramador un modelo abstracto, aseado y bonito, de archi!os
independientes del dispositi!o. #s ob!io que se necesitan llamadas al sistema para crear, eliminar, leer y
escribir archi!os. *ntes de que un archi!o pueda leerse, debe abrirse, y despu(s de leerse debe cerrarse,
as. que tambi(n se incluyen llamadas para hacer estas cosas.
* fin de contar con un lu$ar para $uardar los archi!os, +FS tiene el concepto de %i"ecto"io como
mecanismo para a$rupar los archi!os. &n estudiante, por e"emplo, podr.a tener un directorio para cada
curso en el que est inscrito 'donde $uardar.a los pro$ramas necesarios para ese curso,, otro directorio
para su correo electrnico, y otro ms para su p$ina base de la Borld Bide Beb. 9or tanto, se necesitan
llamadas al sistema para crear y eliminar directorios. Cambi(n se incluyen llamadas para poner un archi!o
existente en un directorio, y para quitar un archi!o de un directorio. 1as entradas de directorio pueden ser
archi!os u otros directorios. #ste modelo tambi(n da pie a una "erarqu.a 4el sistema de archi!os4 como se
muestra en la 2i$. 34<.
/i+,"a 01A. Sistema de archi!os para un departamento uni!ersitario
1as "erarqu.as de procesos y de archi!os estn or$anizadas como rboles, pero hasta ah. lle$a la similitud.
1as "erarqu.as de procesos no suelen ser muy profundas 'casi nunca tienen ms de tres ni!eles,, en tanto
que las de archi!os comnmente tienen cuatro, cinco o incluso ms ni!eles de profundidad. 1as "erarqu.as
de procesos por lo re$ular tienen una !ida corta, $eneralmente de unos cuantos minutos como mximo, en
tanto que la "erarqu.a de directorios podr.a existir durante a0os. 1a propiedad y proteccin tambi(n es
diferente para los procesos y para los archi!os. C.picamente, slo un proceso padre puede controlar o
incluso acceder a un proceso hi"o, pero casi siempre existen mecanismos para permitir que los archi!os y
directorios sean le.dos por un $rupo ms amplio que slo el propietario.
Cada archi!o dentro de la "erarqu.a de directorios se puede especificar dando su nom?"e %e ",ta a partir
del tope de la "erarqu.a de directorios, el %i"ecto"io "a'I. Seme"antes nombres de ruta absolutos consisten
en la lista de directorios por los que se debe pasar partiendo del directorio ra.z para lle$ar al archi!o,
separando los componentes con dia$onales. #n la 2i$. 34<, la ruta del archi!o CS3>3 es -9rofesorado-9rof.
)uiz-Cursos-CS3>3. 1a dia$onal 'J, inicial indica que la ruta es absoluta, es decir, que comienza en el
directorio ra.z.
4084
#n todo momento, cada proceso tiene un %i"ecto"io %e t"a?a#o actual, en el cual se buscan los archi!os
cuyos nombres de ruta no comienzan con una dia$onal. 9or e"emplo, en la 2i$. 34<, si -9rofesorado-9rof.
)uiz fuera el directorio de traba"o, el empleo del nombre de ruta Cursos- CS3>3 se referir.a al mismo archi!o
que el nombre de ruta absoluta dado en el prrafo anterior. 1os procesos pueden cambiar de directorio de
traba"o emitiendo una llamada al sistema que especifique el nue!o directorio de traba"o.
1os archi!os y directorios en +FS se prote$en asi$nando a cada uno un cdi$o de proteccin binario de H
bits. #l cdi$o de proteccin consiste en tres campos de A bits, uno para el propietario, uno para otros
miembros del $rupo del propietario 'el administrador del sistema di!ide a los usuarios en $rupos, y uno para
toda la dems $ente. Cada campo tiene un bit para acceso de lectura, uno para acceso de escritura y uno
para acceso de e"ecucin. #stos tres bits se conocen como ?its "K7. 9or e"emplo, el cdi$o de proteccin
rwxr4x44x si$nifica que el propietario puede leer, escribir o e"ecutar el archi!o, otros miembros del $rupo
pueden leer o e"ecutar 'pero no escribir, el archi!o, y el resto de la $ente puede e"ecutar 'pero no leer ni
escribir, el archi!o. #n el caso de un directorio, 7 indica permiso de bsqueda. &n $uin si$nifica que el
permiso correspondiente est ausente.
*ntes de poder leer o escribir un archi!o, es preciso abrirlo, y en ese momento se !erifican los permisos. Si
est permitido el acceso, el sistema de!uel!e un entero peque0o llamado %esc"ipto" %e a"c*i$o que se
usar en operaciones subsecuentes. Si el acceso est prohibido, se de!uel!e un cdi$o de error.
6tro concepto importante en +FS es el de sistema %e a"c*i$os monta%o. Casi todas las computadoras
personales tienen una o ms unidades de disco flexible en las que pueden insertarse y de las que pueden
retirarse disquetes. * fin de contar con una forma con$ruente de mane"ar estos medios remo!ibles 'y
tambi(n los C54)6+, que tambi(n son remo!ibles,, +FS permite conectar el sistema de archi!os del
disco flexible al rbol principal. Considere la situacin de la 2i$. 34G'a,. *ntes de la llamada +6&FC, el disco
en )*+ 'disco simulado en la memoria principal, contiene el sistema %e a"c*i$os "a'I, o primario, y la
unidad > contiene un disquete que contiene otro sistema de archi!os.
Figura 1-7. (a) #ntes de montarse$ los arc!ivos de la unidad * no estn accesibles. (b) 'espus de
montarse$ esos arc!ivos forman parte de la jerarqua de arc!ivos.
Sin embar$o, no podemos usar el sistema de archi!os de la unidad >, porque no hay forma de especificar
nombres de ruta en (l. +FS no permite anteponer a los nombres de ruta un nombre o nmero de unidad;
(sa ser.a precisamente la clase de dependencia del dispositi!o que los sistemas operati!os deben eliminar.
#n !ez de ello, la llamada al sistema +6&FC permite conectar el sistema de archi!os de la unidad > al
sistema de archi!o ra.z en cualquier lu$ar en el que el pro$rama quiera que est(. #n la 2i$. 34G'b, el sistema
de archi!os de la unidad > se mont en el directorio b, permitiendo as. el acceso a los archi!os -b-x y -b-y. Si
el directorio b hubiera contenido archi!os, (stos no habr.an estado accesibles mientras estu!iera montada la
unidad >, ya que -b se habr.a referido al directorio ra.z de la unidad >. 'Fo poder acceder a esos archi!os no
es tan $ra!e como parece a primera !ista% los sistemas de archi!os casi siempre se montan en directorios
!ac.os.,
6tro concepto importante en +FS es el a"c*i$o especial. 1os archi!os especiales sir!en para hacer que
los dispositi!os de #-S seme"en archi!os. *s., esos dispositi!os pueden leerse y escribirse usando las
mismas llamadas al sistema que se usan para leer y escribir archi!os. #xisten dos tipos de archi!os
especiales% a"c*i$os especiales po" ?lo.,es y a"c*i$os especiales po" ca"acte"es. 1os primeros se
usan para modelar dispositi!os que consisten en una coleccin de bloques directamente direccionables,
como los discos. *l abrir un archi!o especial por bloques y leer, di$amos, el bloque L, un pro$rama puede
acceder directamente al bloque L del dispositi!o, pasando por alto la estructura del sistema de archi!os que
contiene. 5e forma similar, los archi!os especiales por caracteres se usan para modelar impresoras,
mdems y otros dispositi!os que aceptan o producen flu"os de caracteres.
4094
1a ltima caracter.stica que mencionaremos en esta rese0a $eneral se relaciona tanto con los procesos
como con los archi!os% los con%,ctos. #l conducto 'o t,?e"'a, es una especie de seudoarchi!o que puede
ser!ir para conectar dos procesos, como se muestra en la 2i$. 34=. Cuando el proceso * desea en!iar datos
al proceso ?, escribe en el conducto como si fuera un archi!o de salida. #l proceso ? puede leer los datos
leyendo del conducto como si fuera un archi!o de entrada. *s., la comunicacin entre procesos en +FS se
parece mucho a las lecturas y escrituras de archi!os normales. #s ms, la nica forma en que un proceso
puede descubrir que el archi!o de salida en el que est escribiendo no es realmente un archi!o, sino un
conducto, es emitiendo una llamada especial al sistema.
Fi+ura ,-.. 'os procesos conectados
por un conducto
099 El s*ell
#l sistema operati!o +FS es el cdi$o que e"ecuta las llamadas al sistema. 1os editores, compiladores,
ensambladores, !inculadores e int(rpretes de comandos definiti!amente no forman parte del sistema
operati!o, aunque son importantes y tiles. * ries$o de confundir un poco las cosas, en esta seccin
examinaremos bre!emente el int(rprete de comandos de +FS, llamado s*ell, que, si bien no es parte del
sistema operati!o, utiliza intensi!amente muchas de las caracter.sticas del sistema operati!o y, por tanto, es
un buen e"emplo de la forma en que pueden usarse las llamadas al sistema. #l shell tambi(n es la interfaz
primaria entre un usuario sentado ante su terminal y el sistema operati!o.
Cuando un usuario in$resa en el sistema, se inicia un shell. #l shell tiene la terminal como entrada estndar
y salida estndar, y lo primero que hace es exhibir la in%icacin 'p"ompt,, un carcter como un si$no de
dlar, que le indica al usuario que el shell est esperando para aceptar un comando. Si el usuario ahora
teclea
%ate
por e"emplo, el shell crea un proceso hi"o y e"ecuta el pro$rama %ate como hi"o. +ientras se est e"ecutando
el proceso hi"o, el shell espera a que termine. Cuando el hi"o termina, el shell exhibe otra !ez la indicacin y
trata de leer la si$uiente l.nea de entrada.
#l usuario puede especificar que la salida estndar sea rediri$ida a un archi!o, por e"emplo,
%ate La"c*i$o
5e forma similar, la entrada estndar puede rediri$irse, como en
so"t Ma"c*i$o 0 La"c*i$o8
que in!oca el pro$rama sort con entradas tomadas de archi!o3 y en!iando las salidas a archi!oI.
1a salida de un pro$rama puede usarse como entrada para otro pro$rama conectndolos con un conducto
*s.,
cat a"c*i$o0 a"c*i$o8 a"c*i$o9 N so"t LJ%e$Jlp
in!oca el pro$rama cat para concatenar tres archi!os y en!iar la salida a so"t para que acomode todas las
l.neas en orden alfab(tico. 1a salida de sort se rediri$e al archi!o -de!-lp, que es un nombre t.pico para el
archi!o especial por caracteres de la impresora. '9or con!encin, todos los archi!os especiales se $uardan
en el directorio -de!.,
Si un usuario escribe un si$no O despu(s de un comando, el shell no espera hasta que se completa, sino
que exhibe una indicacin de inmediato. 9or tanto,
cat a"c*i$o0 a"c*i$o8 a"c*i$o9 N so"t LJ%e$Jlp O
inicia el ordenamiento como traba"o de se$undo plano, permitiendo que el usuario si$a traba"ando
normalmente mientras se est realizando el ordenamiento. #l shell tiene !arias otras caracter.sticas
interesantes que no tenemos espacio para examinar aqu.
40<4

Vous aimerez peut-être aussi