Sei sulla pagina 1di 16

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 bsuedas 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, ue
controlan la operacin de la computadora misma, y pro%ramas de aplicacin, ue realizan las tareas
reales ue el usuario desea. $l pro%rama de sistema ms fundamental es el sistema ope"ati$o, ue
controla todos los recursos de la computadora y establece la base sobre la ue 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 ue 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 ue ocuparse de cmo traba#an las unidades de disco, y
de las docenas de cosas ue pueden fallar al leer un bloue de disco, es poco probable ue pudieran
escribirse muchos pro%ramas.
0ace muchos a1os se hizo muy e"idente ue deb/a encontrarse al%una forma de prote%er a los
pro%ramadores de la comple#idad del hardware. 2a solucin ue ha e"olucionado %radualmente consiste en
poner una capa de software encima del hardware solo, ue se encar%ue de administrar todas las partes del
sistema y presente al usuario una interfaz o m./,ina $i"t,al ue sea ms fcil de entender y
pro%ramar. $sta capa de software es el sistema operati"o, y constituye el tema de este libro.
2a situacin se muestra en la 3i%. 4-4. $n la parte inferior est el hardware ue, en muchos casos, tambi)n
se compone de dos o ms capas. 2a capa ms ba#a contiene los dispositi"os f/sicos, ue consisten en chips
de circuitos inte%rados, alambres, fuentes de potencia, tubos de rayos catdicos y otros aparatos f/sicos
similares. 2a forma en ue )stos se construyen y sus principios de funcionamiento pertenecen al campo del
in%eniero electricista.
0i+,"a -1- 'n sistema de computadora consiste en hardware,
pro%ramas de sistema y pro%ramas de aplicacin.
+ continuacin (en al%unas muinas- "iene una capa de software primiti"o ue 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, ue obtiene las
instrucciones de len%ua#e de muina como +55, ,67$ y 8',9 y las e#ecuta en una serie de pasos
peue1os. 9or e#emplo, para e#ecutar una instruccin +55 (sumar-, el micropro%rama debe determinar
dnde se encuentran los nmeros ue se "an a sumar, obtenerlos, sumarlos y almacenar el resultado en
al%n lu%ar. $l con#unto de instrucciones ue el micropro%rama interpreta define el len+,a#e %e
m./,ina, ue no es realmente parte de la muina f/sica, aunue los fabricantes de computadoras
siempre lo describen en sus manuales como tal, de modo ue 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 muinas, el hardware e#ecuta las instrucciones de len%ua#e
de muina directamente. 9or e#emplo, el ,otorola <=>x> tiene un ni"el de micropro%ramacin, pero el !?,
9ower9C no.
$l len%ua#e de muina por lo re%ular cuenta con entre @> y A>> instrucciones, la mayor parte de ellas
-2-
para
-3-
trasladar datos dentro de la muina, 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 ue 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 reuieren 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 desempe1a 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 ue pueda traba#ar. 9or e#emplo, 2$$* ?26D'$ 5$
+*C0!76 es conceptualmente ms sencillo ue tener ue preocuparse por los detalles de mo"er cabezas
de disco, esperar ue se estabilicen, etc)tera.
$ncima del sistema operati"o est el resto del software de sistema. +u/ 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 ue estos pro%ramas definiti"amente no
forman parte del sistema operati"o, a pesar de ue casi siempre son pro"istos por el fabricante de la
computadora. Este es un punto crucial, aunue sutil. $l sistema operati"o es la porcin del software ue se
e#ecuta en mo%o 4e"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 ue no tienen
nin%una proteccin de hardware-. 2os 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
4
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, ue 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. 2os 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.
-- 56U7 ES UN SISTEMA OPERATIVO8
2a 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 u) es un sistema operati"o. 9arte del problema consiste en ue el
sistema operati"o realiza dos funciones ue bsicamente no estn relacionadas entre s/ y, dependiendo
de a ui)n le pre%untemos, por lo %eneral se nos habla principalmente de una funcin o de la otra.
7eamos ahora las dos.
--- El sistema ope"ati$o como m./,ina e9ten%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 muina 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 eui"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 4< comandos, cada uno de los cuales se especifica
car%ando entre 4 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.
2os comandos ms bsicos son *$+5 y B*!C$, cada uno de los cuales reuiere 4A parmetros
empacados en H bytes. $stos parmetros especifican cosas tales como la direccin del bloue de disco ue
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 u) hacer con una marca de :direccin de datos eliminada;. Si
usted no entiende a u) 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 arranue lar%o- antes de ue 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 euilibrio entre los retardos de arranue lar%os y el des%aste de los discos
flexibles (y la p)rdida de los datos ue contienen-.
Sin entrar en los "erdaderos detalles, debe uedar claro ue el pro%ramador ordinario se%uramente no
1 l debe leerse l o ella a lo largo de todo el libro
-:-
uiere inter"enir de manera demasiado /ntima en la pro%ramacin de los discos flexibles (o de los duros,
ue son i%ualmente comple#os, y muy distintos-. $n "ez de ello, lo ue el pro%ramador uiere es mane#ar
una abstraccin sencilla, de alto ni"el. $n el caso de los discos, una abstraccin t/pica ser/a ue 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. 2os 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 ue oculta la "erdad acerca del hardware y presenta al pro%ramador una "ista sencilla y bonita
de archi"os con nombre ue 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 ue el sistema
operati"o ofrece es ms sencilla y fcil de usar ue el hardware subyacente.
$n esta "ista, la funcin del sistema operati"o es presentar al usuario el eui"alente de una m./,ina
e9ten%i%a o m./,ina $i"t,al ue es ms fcil de pro%ramar ue el hardware subyacente. 2a forma en ue
el sistema operati"o lo%ra este ob#eti"o es una historia lar%a, ue estudiaremos con detalle a lo lar%o del
libro.
--2 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 ue el sistema operati"o est
ah/ para administrar todos los componentes de un sistema comple#o. 2as 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 ue compiten por ellos.
!ma%ine lo ue suceder/a si tres pro%ramas ue se e#ecutan en al%una computadora trataran de imprimir sus
salidas simultneamente en la misma impresora. 2as primeras l/neas del listado podr/an ser del pro%rama 4,
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 ue el otro
pro%rama puede continuar %enerando salidas, a#eno al hecho de ue 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 ue de otra manera los usuarios
podr/an interferirse. +dems, es frecuente ue los usuarios ten%an ue 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 ue su tarea primordial es se%uir la pista de ui)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.
-2 )ISTORIA DE (OS SISTEMAS OPERATIVOS
2os sistemas operati"os han estado e"olucionando durante muchos a1os. $n las si%uientes secciones
examinaremos bre"emente este desarrollo. 5ado ue, histricamente, los sistemas operati"os han estado
de manera muy estrecha "inculados con la aruitectura de las computadoras en las ue se e#ecutan,
estudiaremos las sucesi"as %eneraciones de computadoras para "er u) 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 ue de otra forma ser/a inexistente.
2a primera computadora di%ital "erdadera fue dise1ada por el matemtico in%l)s Charles ?abba%e
(4GHI-
4=G4-. +unue ?abba%e in"irti la mayor parte de su "ida y su fortuna tratando de construir su :muina
anal/tica;, nunca lo%r ue funcionara correctamente porue 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 ue )l reuer/a. 0uel%a decir
ue la muina anal/tica no contaba con un sistema operati"o.
Como acotacin histrica interesante, diremos ue ?abba%e se dio cuenta de ue necesitar/a software para
su muina anal/tica, as/ ue contrat a una #o"en mu#er, +da 2o"elace, hi#a del famoso poeta britnico,
2ord ?yron, como la primera pro%ramadora de la historia. $l len%ua#e de pro%ramacin +daJ recibi su
-;-
nombre en honor a ella.
-2- (a p"ime"a +ene"acin <-=:;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 ue se lo%raron en la
construccin de computadoras di%itales hasta la Se%unda Kuerra ,undial. + mediados de la d)cada de
4HL>, 0oward +iMen en 0ar"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 muinas calculadoras usando tubos de "ac/o. $stas muinas eran
enormes, y ocupaban cuartos enteros con decenas de miles de tubos de "ac/o, pero eran mucho
ms lentas ue incluso las computadoras personales ms baratas de la actualidad.
$n esos primeros d/as, un solo %rupo de personas dise1aba, constru/a, pro%ramaba, operaba y manten/a a
cada muina. Coda la pro%ramacin se realizaba en len%ua#e de muina absoluto, a menudo
alambrando tableros de conmutacin para controlar las funciones bsicas de la muina. Fo exist/an los
len%ua#es de pro%ramacin (ni siuiera los de ensamblador-. Fadie hab/a o/do hablar de los sistemas
operati"os. 2a forma de operacin usual consist/a en ue el pro%ramador se anotaba para recibir un bloue
de tiempo en la ho#a de reser"aciones col%ada en la pared, lue%o ba#aba al cuarto de la muina,
insertaba su tablero de conmutacin en la computadora, y pasaba las si%uientes horas con la esperanza
de ue nin%uno de los cerca de I>>>> tubos de "ac/o se uemara 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 4H@>, 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.
-22 (a se+,n%a +ene"acin <-=;;1A;>: T"ansisto"es @ sistemas po" lote
2a introduccin del transistor a mediados de la d)cada de 4H@> alter el panorama radicalmente. 2as
computadoras se hicieron lo bastante confiables como para poderse fabricar y "ender a clientes comerciales
con la expectati"a de ue se%uir/an funcionando el tiempo suficiente para realizar al%o de traba#o til. 9or
primera "ez, hab/a una separacin clara entre dise1adores, constructores, operadores, pro%ramadores y
personal de mantenimiento.
$stas muinas se encerraban en cuartos de computadora con acondicionamiento de aire especial, con
euipos 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 36*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 ue 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. 2ue%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 reuer/a el compilador de 36*C*+F, el operador ten/a ue 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 muina.
5ado el alto costo del euipo, no es sorprendente ue la %ente pronto buscara formas de reducir el
desperdicio de tiempo. 2a solucin ue 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 peue1a y (relati"amente- econmica, como una !?,
4L>4, ue era muy buena para leer tar#etas, copiar cintas e imprimir salidas, pero no para realizar clculos
num)ricos. 6tras muinas, mucho ms costosas, como la !?, G>HL, se usaban para la computacin
propiamente dicha. $sta situacin se muestra en la 3i%. 4-I.
-A-
0i+,"a -12. 'no de los primeros sistemas por lotes. (a- 2os pro%ramadores traen tar#etas a la 4L>4. (b-
2a 4L>4 lee lotes de traba#os y los %raba en cinta. (c- $l operador lle"a la cinta de entrada a la G>HL. (d-
2a G>HL realiza la computacin. (e- $l operador lle"a la cinta de salida a la 4L>4. (f- 2a 4L>4 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 muina, donde se montaba en una unidad de cinta. $l operador car%aba entonces un pro%rama especial
(el antepasado del sistema operati"o actual-, ue le/a el primer traba#o de la cinta y lo e#ecutaba. 2a salida
se escrib/a en una se%unda cinta, en lu%ar de imprimirse. Cada "ez ue 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 ue
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 4L>4 para la impresin B,e"a %e l'nea (o sea, no
conectada a la computadora principal-.
2a estructura de un traba#o de entrada t/pico se muestra en la 3i%. 4-A. $l traba#o comenzaba con una
tar#eta
P86?, ue especificaba el tiempo de e#ecucin mximo en minutos, el nmero de cuenta al ue se deb/a
cobrar el traba#o, y el nombre del pro%ramador. 2ue%o "en/a una tar#eta P36*C*+F, ue ordenaba
al sistema operati"o leer el compilador de 36*C*+F de la cinta de sistema. $sta tar#eta iba se%uida
del pro%rama por compilar y por una tar#eta P26+5, ue ordenaba al sistema operati"o car%ar el
pro%rama ob#eto reci)n compilado. (2os pro%ramas compilados a menudo se escrib/an en cintas
temporales y ten/an ue car%arse expl/citamente.- 2ue%o "en/a la tar#eta P*'F, ue ordenaba al sistema
operati"o e#ecutar el pro%rama con los datos ue 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
2as 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 muinas %eneralmente se
pro%ramaban en 36*C*+F y len%ua#e ensamblador. 2os sistemas operati"os t/picos eran 3,S (el
Fortran Monitor System- e !?SQS, el sistema operati"o de !?, para la G>HL.
-23 (a te"ce"a +ene"acin <-=A;1-=CD>: Ci"c,itos inte+"a%os @ m,ltip"o+"amacin
+ principios de la d)cada de 4H<>, 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, ue se usaban para clculos num)ricos en ciencias e
-E-
in%enier/a. 9or el otro, estaban las computadoras comerciales orientadas hacia los caracteres, como la
4L>4, ue los bancos y las compa1/as de se%uros utilizaban ampliamente para ordenar e imprimir desde
cinta.
2a 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 muina
peue1a ue ms adelante les resultaba insuficiente, de modo ue uer/an una muina ms %rande ue
e#ecutara todos sus "ie#os pro%ramas, pero ms rpidamente.
!?, trat de resol"er simultneamente ambos problemas introduciendo la System.A<>. 2a A<> era una serie
de muinas de software compatible ue iban desde tama1os comparables a la 4L>4 hasta computadoras
mucho ms potentes ue la G>HL. 2as muinas difer/an slo en el precio y el rendimiento (memoria
mxima, "elocidad del procesador, nmero de dispositi"os de $.S permitidos, etc.-. 9uesto ue todas
las muinas ten/an la misma aruitectura y con#unto de instrucciones, los pro%ramas escritos para
una muina pod/an e#ecutarse en todas las dems, al menos en teor/a. +dems, la A<> estaba dise1ada
para mane#ar computacin tanto cient/fica como comercial. +s/, una sola familia de muinas pod/a
satisfacer las necesidades de todos los clientes. $n a1os subsecuentes !?, produ#o sucesoras
comparables a la l/nea
A<>, usando tecnolo%/a ms moderna, conocidas como series AG>, LA>>, A>=> y A>H>.
2a A<> fue la primera l/nea importante de computadoras en usar (a peue1a escala- circuitos inte%rados
(!C-, ofreciendo as/ una "enta#a de precio.rendimiento considerable respecto a las muinas de la se%unda
%eneracin, ue 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.
2os descendientes de estas muinas toda"/a se emplean en uno ue otro centro de cmputo en la
actualidad, pero su uso est en rpido decli"e.
2a %ran "enta#a de la idea de :una familia; fue tambi)n su %ran debilidad. 2a intencin era ue todo el
software, incluido el sistema operati"o, funcionara en todos los modelos. $l software ten/a ue funcionar en
sistemas peue1os, ue en muchos casos simplemente sustitu/an a la 4L>4 para copiar tar#etas en cinta, y
en sistemas muy %randes, ue con frecuencia sustitu/an a las G>HL para realizar pronsticos del tiempo y
otros traba#os de computacin pesada. $l software ten/a ue ser bueno en sistemas con pocos y con
muchos perif)ricos; ten/a ue funcionar en entornos comerciales y. cient/ficos y, sobre todo, ten/a ue
ser eficiente para todos estos usos distintos.
$ra imposible ue !?, (o al%uien ms- pudiera escribir un pro%rama ue satisficiera todos esos reuisitos
opuestos. $l resultado fue un sistema operati"o enorme, extraordinariamente comple#o, tal "ez dos o tres
rdenes de ma%nitud mayor ue 3,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, reuiri)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 ue es probable ue el nmero de errores se mantu"iera constante con el
tiempo.
'no de los dise1adores de 6S.A<>, 3red ?rooMs, escribi despu)s un in%enioso e incisi"o libro (?rooMs,
4HG@- describiendo sus experiencias con el 6S.A<>. +unue ser/a imposible resumir au/ ese libro, baste
con decir ue la portada muestra una manada de bestias prehistricas atascadas en un foso de brea. 2a
portada del libro de Silberschatz y Kal"in (4HHL- es una alusin similar.
+ pesar de su enorme tama1o 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 ue 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 ue se completara una operacin de cinta
u otra operacin de $.S, la C9' simplemente permanec/a ociosa hasta ue la $.S terminaba. $n los
clculos cient/ficos, con %ran uso de C9', la $.S es poco frecuente, as/ ue 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 ue al%o deb/a hacerse para e"itar ue la C9' estu"iera
ociosa tanto tiempo.
2a solucin a la ue se lle% fue di"idir la memoria en "arias secciones, con un traba#o distinto en cada
particin, como se muestra en la 3i%. 4-L. ,ientras un traba#o estaba esperando ue 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
reuiere 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 euipados con este hardware.
-C-
0i+,"a -1:. 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. 2ue%o, cada
"ez ue un traba#o terminaba su e#ecucin, el sistema operati"o pod/a car%ar uno nue"o del disco en la
particin ue hab/a uedado "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 4L>4 ya no eran
necesarias, y desapareci una buena parte del transporte de cintas.
+unue 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 a1oraban los d/as de la primera %eneracin cuando ten/an toda la muina para
ellos solos durante unas cuantas horas, lo ue 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
ue 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 ue cada usuario tiene una terminal en l/nea. $n un sistema de tiempo compartido,
si I> usuarios in%resan en el sistema y 4G de ellos estn pensando, hablando o tomando caf), la C9'
puede asi%narse por turno a los tres traba#os ue reuieren ser"icio. 9uesto ue las personas ue 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. +unue el primer sistema serio de tiempo
compartido (CCSS- fue creado en el ,.!.C. en una G>HL especialmente modificada (Corbato et al., 4H<I-,
el tiempo compartido no se populariz realmente hasta ue se %eneraliz el uso del hardware de
proteccin necesario durante la tercera %eneracin.
5espu)s del )xito del sistema CCSS, ,!C, ?ell 2abs y Keneral $lectric (por ese entonces un fabricante
importante de computadoras- decidieron emprender el desarrollo de un :ser"icio de computadora; una
muina ue 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. 2os
dise1adores de este sistema, llamado MU(TICS (servicio de informacin y computacin multiplexado-,
contemplaban una enorme muina ue proporcionara potencia de cmputo a todos los usuarios de ?oston.
2a idea de ue muinas mucho ms potentes ue su K$-<L@ se "endieran como computadoras
personales por unos cuantos miles de dlares slo A> a1os despu)s no era sino ciencia ficcin en ese
entonces.
9ara resumir un poco la historia, ,'2C!CS introdu#o muchas ideas seminales en la literatura
de computacin, pero su construccin fue mucho ms dif/cil de lo ue nadie hab/a ima%inado. ?ell
2abs abandon el proyecto, y Keneral $lectric de# el ne%ocio de las computadoras por completo.
3inalmente, ,'2C!CS 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, ,'2C!CS tu"o una influencia enorme sobre
los sistemas subsecuentes; se le describe en (Corbato et al., 4HGI; Corbato y 7yssotsMy, 4H<@; 5aley y
5ennis, 4H<=; 6r%anicM, 4HGI; Saltzer, 4HGL-.
6tro a"ance importante durante la tercera %eneracin fue el crecimiento fenomenal de las
minicomputadoras, comenzando con la 5$C 959- 4 en 4H<4. 2a 959-4 slo ten/a LN de palabras de 4=
bits, pero a P4I> >>> por muina (menos del @R del precio de una G>HL-, se "endieron como pan caliente.
9ara ciertos tipos de traba#os no num)ricos, la 959-4 era casi tan rpida como la G>HL, e hizo nacer una
-=-
industria totalmente nue"a. + esta muina pronto si%ui una serie de otras 959 (todas incompatibles,
a
diferencia de la familia !?,-, culminando en la 959-44.
'no de los computlo%os de ?el! 2abs ue hab/a traba#ado en el proyecto ,'2C!CS, Nen Chompson,
encontr subsecuentemente una peue1a minicomputadora 959-G ue nadie estaba usando y se propuso
escribir una "ersin de ,'2C!CS reducida al m/nimo, para un solo usuario. $ste traba#o posteriormente
e"olucion para con"ertirse en el sistema operati"o UNIFJ, ue se populariz en el mundo acad)mico, las
dependencias del %obierno y muchas compa1/as.
2a historia de 'F!S se cuenta en otras obras (p. e#., Salus, 4HHL-. ?aste con decir ue, dado ue casi todo
mundo pod/a obtener el cdi%o fuente, di"ersas or%anizaciones desarrollaron sus propias "ersiones
(incompatibles-, lo ue condu#o al caos. Con ob#eto de ue fuera posible escribir pro%ramas susceptibles de
e#ecucin en cualuier sistema 'F!S, el !$$$ cre un estndar para 'F!S, llamado Posi9, ue casi todas
las "ersiones actuales de 'F!S reconocen. 96S!S define una interfaz m/nima de llamadas al sistema ue
los sistemas 'F!S deben reconocer. 5e hecho, al%unos otros sistemas de pro%ramacin ya reconocen la
interfaz 96S!S.
-2: (a c,a"ta +ene"acin <-=CD1p"esente>: Comp,ta%o"as pe"sonales
Con la in"encin de los circuitos inte%rados a %ran escala (2S!-, chips ue contienen miles de transistores
en un cmI de silicio, naci la era de la computadora personal. $n t)rminos de aruitectura, las
computadoras personales no eran muy diferentes de las minicomputadoras de la clase 959-44, pero en
t)rminos de precio s/ ue eran diferentes. Si bien la minicomputadora hac/a posible ue un departamento de
una compa1/a o uni"ersidad tu"iera su propia computadora, el chip microprocesador permit/a ue un solo
indi"iduo tu"iera su propia computadora personal. 2as 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 muinas estn interconectadas
mediante una red.
2a amplia disponibilidad de la potencia de cmputo, sobre todo la potencia de cmputo altamente interacti"a
casi siempre acompa1ada 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 ue si%nifica ue estaba diri%ido a usuarios ue no slo no sab/an nada de computacin,
sino ue 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, 8C2, era tan arcano ue lle%aron a
escribirse libros enteros sobre )l (p. e#., Cadow, 4HG>-.
5os sistemas operati"os dominaron inicialmente el campo de las computadoras personales y las estaciones
de traba#o& MS1DOS de ,icrosoft y UNIF. ,S-56S se usaba ampliamente en la !?, 9C y otras muinas
basadas en la C9' !ntel =>== y sus sucesoras, la =>I=<, =>A=< y =>L=< (ue en adelante llamaremos la
I=<, A=< y L=<, respecti"amente- y ms tarde la 9entium y 9entium 9ro. +unue la "ersin inicial de ,S-
56S era relati"amente primiti"a, "ersiones subsecuentes han incluido caracter/sticas ms a"anzadas,
muchas de ellas tomadas de 'F!S. $l sucesor de ,icrosoft para ,S-56S, B!F56BS, ori%inalmente se
e#ecutaba encima de ,S-56S (es decir, era ms un shell ue un "erdadero sistema operati"o-, pero a partir
de 4HH@ se produ#o una "ersin autosuficiente de B!F56BS, WINDOWS =;J, de modo ue ya no se
necesita ,S-56S para apoyarlo. 6tro sistema operati"o de ,icrosoft es WINDOWS NT, ue es
compatible con B!F56BS H@ en cierto ni"el, pero internamente se reescribi desde cero.
$l otro competidor importante es 'F!S, ue domina en las estaciones de traba#o y otras computadoras del
extremo alto, como los ser"idores de red. 'F!S es popular sobre todo en muinas basadas en chips *!SC
de alto rendimiento. $stas muinas por lo re%ular tienen la potencia de cmputo de una minicomputadora,
a pesar de estar dedicadas a un solo usuario, por lo ue resulta l%ico ue est)n euipadas con un sistema
operati"o dise1ado ori%inalmente para minicomputadoras, a saber, 'F!S.
'na tendencia interesante ue apareci a mediados de la d)cada de 4H=> fue el crecimiento de redes de
computadoras personales en las ue se e#ecutan sistemas ope"ati$os %e "e% o sistemas ope"ati$os
%ist"i?,i%os (Canenbaum, 4HH@-. $n un sistema operati"o de red los usuarios estn conscientes de la
existencia de mltiples computadoras y pueden in%resar en muinas remotas y copiar archi"os de una
muina a otra. Cada muina e#ecuta su propio sistema operati"o local y tiene su propio usuario o usuarios
locales.
2os sistemas ope"ati$os %e "e% no son fundamentalmente distintos de auellos 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.
--D-
'n sistema ope"ati$o %ist"i?,i%o, en cambio, presenta el mismo aspecto a los usuarios ue un sistema
tradicional de un solo procesador, aunue en realidad se compone de mltiples procesadores. 2os
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.
2os "erdaderos sistemas operati"os distribuidos reuieren ms ue la adicin de un poco ms de cdi%o a
un sistema operati"o uniprocesador, porue los sistemas distribuidos y centralizados difieren en
aspectos cruciales. 2os sistemas distribuidos, por e#emplo, a menudo permiten a las aplicaciones e#ecutarse
en "arios procesadores al mismo tiempo, por lo ue reuieren 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 ue )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 ue el sistema operati"o tiene toda la informacin
sobr) el estado del sistema.
-2; )isto"ia %e MINIF
Cuando 'F!S era #o"en (7ersin <-, era fcil conse%uir el cdi%o fuente, ba#o licencia de +CTC, y
se estudiaba mucho. 8ohn 2ions, de la 'ni"ersity of Few South Bales en +ustralia, incluso escribi un
librito ue describ/a su operacin, l/nea por l/nea (2ions, 4HH<-. $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 ue 'F!S era un producto comercial
"alioso, as/ ue entre% la 7ersin G #unto con una licencia ue 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 'F!S e impartieron slo teor/a.
5esafortunadamente, cuando slo se ense1a teor/a el estudiante aduiere una "isin desbalanceada de
cmo se "e realmente un sistema operati"o. 2os temas tericos ue 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. 2os temas ue en "erdad son rele"antes, como $.S y sistemas de
archi"os, %eneralmente se descuidan porue 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 ue fuera compatible con 'F!S 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/ ue puede usarse en clase o para estudio indi"idual. 5e esta
forma, los lectores pueden disectar un sistema operati"o real para "er u) hay dentro, tal como los
estudiantes de biolo%/a disectan ranas. $l nombre MINIF si%nifica mini1UNIF porue es lo suficientemente
peue1o como para poderlo entender a pesar de no ser un %ur.
+dems de la "enta#a de eliminar los problemas le%ales, ,!F!S tiene otra "enta#a respecto a 'F!S& se
escribi una d)cada despu)s de 'F!S y tiene una estructura ms modular. $l sistema de archi"os de
,!F!S, por e#emplo, no forma parte del sistema operati"o, sino ue se e#ecuta como pro%rama de usuario.
6tra diferencia es ue 'F!S se dise1 de modo ue fuera eficiente; ,!F!S se dise1 pensando en ue fuera
comprensible (hasta donde puede ser comprensible cualuier pro%rama ue ocupa cientos de p%inas-. $l
cdi%o de ,!F!S, por e#emplo, incluye miles de comentarios.
,!F!S se dise1 ori%inalmente de modo ue fuera compatible con 'F!S 7ersin G (7G-. Se us como
modelo esta "ersin a causa de su sencillez y ele%ancia. + "eces se dice ue 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 96S!S, ,!F!S comenz a e"olucionar hacia el nue"o estndar, al tiempo ue 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 ue nin%uno de sus clientes
existentes podr usar sin %randes con"ulsiones. 2a "ersin de ,!F!S ue se describe en este libro se basa
en el estndar 96S!S (a diferencia de la "ersin descrita en la primera edicin, ue se basaba en 7G-.
+l i%ual ue 'F!S, ,!F!S se escribi en el len%ua#e de pro%ramacin C y se pretend/a ue fuera fcil
transportarlo a di"ersas computadoras. 2a implementacin inicial fue para la !?, 9C, porue esta
computadora se usa ampliamente. Subsecuentemente se lle" a las computadoras +tari, +mi%a, ,acintosh
y S9+*C. +corde con la filosof/a de ue :lo pequeo es !ermoso;, ,!F!S ori%inalmente no reuer/a
siuiera un disco duro para e#ecutarse, lo ue lo pon/a al alcance del presupuesto de muchos estudiantes
(aunue puede parecer asombroso ahora, a mediados de la d)cada de 4H=> cuando ,!F!S "io por
primera "ez la luz, los discos duros an eran una no"edad de precio ele"ado-. +l crecer ,!F!S en
funcionalidad y tama1o,
----
lle% al punto en ue se hizo necesario un disco duro, pero en concordancia con la filosof/a de ,!F!S
basta
con una particin de A> me%abytes. $n contraste, al%unos sistemas 'F!S comerciales ahora recomiendan
una particin de disco de I>> ,? como m/nimo indispensable.
9ara el usuario medio sentado ante una !?, 9C, e#ecutar ,!F!S es similar a e#ecutar 'F!S. ,uchos de los
pro%ramas bsicos, como cat, %rep, is, maMe y el shell estn presentes y desempe1an las mismas funciones
ue sus contrapartes de 'F!S. +l i%ual ue 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 ,!F!S como e#emplo. Fo obstante, casi todo lo ue se di%a acerca de ,!F!S, a
menos ue se refiera al cdi%o en s/, tambi)n aplica a 'F!S. ,uchos de estos comentarios tambi)n aplican
a otros sistemas. $sto debe tenerse siempre presente al leer el libro.
Como acotacin, es posible ue unas cuantas palabras acerca de 2!F'S y su relacin con ,!F!S sean de
inter)s para al%unos lectores. 9oco despu)s de liberarse ,!F!S, 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
uer/a a%re%ar enormes cantidades de nue"as capacidades a ,!F!S 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 ,!F!S resisti con )xito esta arremetida durante "arios a1os, a fin de mantener a
,!F!S lo suficientemente peue1o y aseado como para ue los estudiantes lo entendieran. Kradualmente,
la %ente comenz a con"encerse de ue su posicin era inamo"ible. 3inalmente, un estudiante finland)s,
2inus Cor"alds, decidi escribir un clon de ,!F!S ue pretend/a ser un sistema de produccin
con abundantes capacidades, ms ue una herramienta educati"a. +s/ fue como naci (INUF.
-3 CONCEPTOS DE SISTEMAS OPERATIVOS
2a interfaz entre el sistema operati"o y los pro%ramas de usuario est definida por el con#unto de
:operaciones extendidas; ue el sistema operati"o ofrece. $stas instrucciones se han llamado
tradicionalmente llama%as al sistema, aunue ahora pueden implementarse de "arias formas. 9ara
entender realmente lo ue los sistemas operati"os hacen, debemos examinar con detenimiento esta
interfaz. 2as llamadas disponibles en la interfaz "ar/an de un sistema operati"o a otro (aunue los conceptos
subyacentes tienden a ser similares-.
9or tanto, nos "emos obli%ados a esco%er entre (4- %eneralidades "a%as (:los sistemas operati"os tienen
llamadas al sistema para leer archi"os;- y (I- al%n sistema espec/fico (:,!F!S 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;-
0emos esco%ido el se%undo enfoue. $sto implica ms traba#o, pero nos permite entender me#or u) es
realmente lo ue hacen los sistemas operati"os. $n la seccin 4.L examinaremos de cerca las llamadas al
sistema presentes tanto en 'F!S como en ,!F!S. 9or sencillez, slo nos referiremos a ,!F!S, pero las
llamadas al sistema 'F!S correspondientes se basan en 96S!S 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
,!F!S, a fin de tener una idea %lobal de u) es lo ue hace un sistema operati"o. $ste panorama aplica
i%ualmente bien a 'F!S.
2as llamadas al sistema de ,!F!S pertenecen a dos cate%or/as amplias& las ue se ocupan de los procesos
y las ue se ocupan del sistema de archi"os. + continuacin las examinaremos por turno.
-3- P"ocesos
'n concepto cla"e en ,!F!S, 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, ue 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, ue 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 aduirir una idea intuiti"a de lo ue 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, porue el primero ya tu"o ms tiempo de C9' del ue le tocaba durante el se%undo anterior.
Cuando un proceso se suspende temporalmente de esta manera, debe reiniciarse despu)s en el mismo
--2-
estado exactamente en ue estaba en el momento en ue se le detu"o. $sto implica ue toda la
informacin
acerca del proceso se debe %uardar expl/citamente en al%n lu%ar durante la suspensin. 9or e#emplo, es
posible ue el proceso ten%a "arios archi"os abiertos para lectura. Cada uno de estos archi"os tiene
asociado un apuntador ue indica la posicin actual (es decir, el nmero del byte o re%istro ue se leer
a continuacin-. Cuando un proceso se suspende temporalmente, es necesario %uardar todos
estos apuntadores para ue 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, ue 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 ue se usaban en el pasado-, y su entrada en la
tabla de procesos, ue contiene sus re%istros, entre otras cosas.
2as llamadas al sistema de administracin para procesos cla"e son las ue 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 ue 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 3i%. 4-@. 2os
procesos relacionados ue 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.
0ay otras llamadas al sistema relacionadas con procesos ue solicitan ms memoria (o liberan memoria no
utilizada-, esperan ue un proceso hi#o termine, y superponen otro pro%rama al suyo.
6casionalmente, se hace necesario comunicar informacin a un proceso en e#ecucin ue no est
simplemente esperando recibirla. 9or e#emplo, un proceso ue 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 ue un
mensa#e o su respuesta se pierda, el remitente puede solicitar ue su propio sistema operati"o le notifiue
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 ue se especific, el sistema operati"o en"/a una seal al
proceso. 2a se1al hace ue el proceso suspenda temporalmente lo ue estaba haciendo, %uarde sus
re%istros en la pila, y comience a e#ecutar un procedimiento especial de mane#o de se1ales, por e#emplo,
para retransmitir un mensa#e ue al parecer se perdi. 'na "ez ue el mane#ador de se1ales termina, el
proceso en e#ecucin se reinicia en el estado en ue estaba #usto antes de la se1al. 2as se1ales 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
se1ales ue se en"/an al proceso culpable.
$l administrador del sistema asi%na un ,i% (identificador de usuario- a cada persona autorizada para usar
,!F!S. Cada proceso iniciado en ,!F!S tiene el uid de la persona ue lo inici. 'n proceso hi#o tiene el
mismo uid ue su padre. 'n uid, llamado s,pe",s,a"io, tiene facultades especiales, y puede "iolar muchas
--3-
de las re%las de proteccin. $n las instalaciones %randes, slo el administrador del sistema conoce la
contrase1a 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 ue les permitan
con"ertirse en superusuarios sin contar con la contrase1a.
-32 A"c*i$os
2a 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 ue se necesitan llamadas al sistema para crear, eliminar, leer
y escribir archi"os. +ntes de ue un archi"o pueda leerse, debe abrirse, y despu)s de leerse debe
cerrarse, as/ ue tambi)n se incluyen llamadas para hacer estas cosas.
+ fin de contar con un lu%ar para %uardar los archi"os, ,!F!S 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 ue 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 uitar un archi"o de un directorio. 2as entradas de directorio
pueden ser archi"os u otros directorios. $ste modelo tambi)n da pie a una #eraru/a -el sistema de
archi"os- como se muestra en la 3i%. 4-<.
0i+,"a -1A. Sistema de archi"os para un departamento uni"ersitario
2as #eraru/as de procesos y de archi"os estn or%anizadas como rboles, pero hasta ah/ lle%a la similitud.
2as #eraru/as de procesos no suelen ser muy profundas (casi nunca tienen ms de tres ni"eles-, en tanto
ue las de archi"os comnmente tienen cuatro, cinco o incluso ms ni"eles de profundidad. 2as #eraru/as
de procesos por lo re%ular tienen una "ida corta, %eneralmente de unos cuantos minutos como mximo, en
tanto ue la #eraru/a de directorios podr/a existir durante a1os. 2a 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 ue los archi"os y
directorios sean le/dos por un %rupo ms amplio ue slo el propietario.
Cada archi"o dentro de la #eraru/a de directorios se puede especificar dando su nom?"e %e ",ta a partir
del tope de la #eraru/a de directorios, el %i"ecto"io "a'I. Seme#antes nombres de ruta absolutos consisten
en la lista de directorios por los ue se debe pasar partiendo del directorio ra/z para lle%ar al archi"o,
separando los componentes con dia%onales. $n la 3i%. 4-<, la ruta del archi"o CS4>4 es .9rofesorado.9rof.
*uiz.Cursos.CS4>4. 2a dia%onal (J- inicial indica ue la ruta es absoluta, es decir, ue comienza en el
directorio ra/z.
--:-
$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 3i%. 4-<, si .9rofesorado.9rof.
*uiz fuera el directorio de traba#o, el empleo del nombre de ruta Cursos. CS4>4 se referir/a al mismo archi"o
ue el nombre de ruta absoluta dado en el prrafo anterior. 2os procesos pueden cambiar de directorio de
traba#o emitiendo una llamada al sistema ue especifiue el nue"o directorio de traba#o.
2os archi"os y directorios en ,!F!S 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 "K9. 9or e#emplo, el cdi%o de proteccin
rwxr-x--x si%nifica ue 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, 9 indica permiso de bsueda. 'n %uin si%nifica ue 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 peue1o llamado %esc"ipto" %e a"c*i$o ue se
usar en operaciones subsecuentes. Si el acceso est prohibido, se de"uel"e un cdi%o de error.
6tro concepto importante en ,!F!S 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 ue pueden insertarse y de las ue pueden
retirarse disuetes. + fin de contar con una forma con%ruente de mane#ar estos medios remo"ibles (y
tambi)n los C5-*6,, ue tambi)n son remo"ibles-, ,!F!S permite conectar el sistema de archi"os del
disco flexible al rbol principal. Considere la situacin de la 3i%. 4-G(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 disuete ue 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 >, porue no hay forma de especificar
nombres de ruta en )l. ,!F!S 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 ue 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 cualuier lu%ar en el ue el pro%rama uiera ue est). $n la 3i%. 4-
G(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 ue .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 ,!F!S es el a"c*i$o especial. 2os archi"os especiales sir"en para hacer ue
los dispositi"os de $.S seme#en archi"os. +s/, esos dispositi"os pueden leerse y escribirse usando las
mismas llamadas al sistema ue 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. 2os primeros se
usan para modelar dispositi"os ue consisten en una coleccin de bloues directamente direccionables,
como los discos. +l abrir un archi"o especial por bloues y leer, di%amos, el bloue L, un pro%rama puede
acceder directamente al bloue L del dispositi"o, pasando por alto la estructura del sistema de archi"os ue
contiene. 5e forma similar, los archi"os especiales por caracteres se usan para modelar impresoras,
mdems y otros dispositi"os ue aceptan o producen flu#os de caracteres.
--;-
2a ltima caracter/stica ue mencionaremos en esta rese1a %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 ue puede
ser"ir para conectar dos procesos, como se muestra en la 3i%. 4-=. 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
,!F!S se parece mucho a las lecturas y escrituras de archi"os normales. $s ms, la nica forma en ue
un proceso puede descubrir ue el archi"o de salida en el ue est escribiendo no es realmente un
archi"o, sino un conducto, es emitiendo una llamada especial al sistema.
-33 El s*ell
Fi+ura ,-.. 'os procesos conectados
por un conducto
$l sistema operati"o ,!F!S es el cdi%o ue e#ecuta las llamadas al sistema. 2os editores, compiladores,
ensambladores, "inculadores e int)rpretes de comandos definiti"amente no forman parte del sistema
operati"o, aunue son importantes y tiles. + ries%o de confundir un poco las cosas, en esta seccin
examinaremos bre"emente el int)rprete de comandos de ,!F!S, llamado s*ell, ue, 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 ue 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 ue hace es exhibir la in%icacin (p"ompt-, un carcter como un si%no de
dlar, ue le indica al usuario ue 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 ue 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 ue 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 - La"c*i$o2
ue in"oca el pro%rama sort con entradas tomadas de archi"o4 y en"iando las salidas a archi"oI.
2a salida de un pro%rama puede usarse como entrada para otro pro%rama conectndolos con un conducto
+s/,
cat a"c*i$o- a"c*i$o2 a"c*i$o3 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 ue acomode todas las
l/neas en orden alfab)tico. 2a salida de sort se rediri%e al archi"o .de".lp, ue 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 ue se completa, sino
ue exhibe una indicacin de inmediato. 9or tanto,
cat a"c*i$o- a"c*i$o2 a"c*i$o3 N so"t LJ%e$Jlp O
inicia el ordenamiento como traba#o de se%undo plano, permitiendo ue el usuario si%a traba#ando
normalmente mientras se est realizando el ordenamiento. $l shell tiene "arias otras
caracter/sticas interesantes ue no tenemos espacio para examinar au/

Potrebbero piacerti anche