Download 1 - TESIUAMI

Document related concepts

Arquitectura de Windows NT wikipedia , lookup

Windows NT wikipedia , lookup

Hilo de ejecución wikipedia , lookup

Proceso (informática) wikipedia , lookup

Windows 2000 wikipedia , lookup

Transcript
_..-
División de Ciencias Básicas e Ingeniería
&/i2JXc,rc?
Informe Final
Del
PROYECTO TERMINAL II
4’
Windows NT Administración, Programacion
tlnteracción de Unix con Windo
ASESOR : INGENIERO VICTOR ALCARAZ PARAMO
ELABORO : LUIS ROBERTO
SANCHEZ
’/
1
INDICE
1. lndice .................. 1
2. JUSTlFlCAClON ..................4
3. OBJETIVOS ...................................
6
4. INTRODUCCION A WINDOWS NT.................7
5. ARQUITECTURA GENERAL DE WINDOWS NT.................13
6. SISTEMA DE ARCHIVOS DE NT (FILE SYSTEM) .................17
6. MANEJO DE PROCESOS EN NT .................20
7. MANEJO DE MEMORIA EN NT .................44
8. NT EN RED .................72
9. NT COMO SERVIDOR DE ARCHIVOS .................110
1O.NT COMO SERVIDOR DE APLCIACIONES ( WEB Y E - M A l l ) .................111
11.NT COMO SERVIDOR DE IMPRESORAS .................113
14. LlNUX RED HAT .................114
15.ARQUlTECTURA GENERAL DE LINUXRED HAT.................126
16.SlSTEMA DE ARCHIVOS DE LlNUX (FILE SYSTEM) .................137
17.MANEJO DE PROCESOS EN LlNUX .................139
18.MANEJO DE MEMORIA EN LlNUX .................153
2
I
225933
19.LlNUX COMO SERVIDORDE ARCHIVOS .................173
20. LlNUX COMO SERVIDOR
DE APLICACIONES ( WEB Y E-MAIL ) .................174
21.LlNUX COMO SERVIDOR DE IMPRESORAS .................187
24. DIFERENCIASEN LlNUX REDHAT (UNIX) Y WINDOWS NT.................21 1
25. DIFERENCIAEN EL CONTROL DE PROCESOS DE WINDOWS NT Y LlNUX REDHAT (UNIX)
.................211
26. DIFERENCIA ENEL CONTROL DE MEMORIA DE WINDOWS NT Y LlNUX REDHAT (UNIX)
.................215
40. Diferencias entre sistemasde archivos NTFS y HPFS................,217
41. Diferencias entre WindowsNT y Unix como servidoresde E-mail y Web................,219
42. CONCLUSIONES
.................220
43. Otras experiencias
.................227
45.
GLOSARIO.................229
46.
BlBLlOGRAFlA.................230
t '
Y
L
1
,L"
.
I
.
'
3
..
4 , 1
L.
I
I
Actualmente en el mundo de la informática y de la computación en general, existen una serie de cambios
que se suceden en
Forma constante de manera casi imprevista. El objetivo principal de este trabajo así como del mismo
proyecto de investigación es
El de adentrarse al mundo de las redes en el mundo Windows NT debido a que este es
operativo de los "90s" como muchos
el sistema
Le llaman, no sin hacer a un lado los conocimientos adquiridos a lo largo de la carrera de computación.
Otro de los puntos importantes era poder "aterrizar"
los conocimientos adquiridos, esto es : poner en
práctica la teoría aprendida en nuestro caso en particular fue el de poder
Integraraunquefueradeforma
ficticia servidores NT conUNIX,paraellosetomocomomodelo
experimentalelcentrodecomputodelamaestríade
la Lic. enQuímica,en la cual se contaba con
máquinasconsistemaoperativolRlXqueestabansiendodesaprovechadas
y noexistíaninguna
administraciónde la redparapoderasegurarlaintegridad
y funcionamientoóptimodelcentro.Este
problemáticaseplanteamejoren
los ObjetivosporalcanzarparaelSistemaDeComputoDeLa
Maestría de Computo.
No obstante aunque se plantearon estos objetivos y metas no fue posible implementarlo en la realidad
aunque si hacer una "emulación del sistema" a través del sistema operativo LINUX y conello adentrarse
al mundo LINUX Red Hat y porlo mismo a UNlX y sus clones con ello fue posible integrase al mundo de
las redes de computadoras y enfrentarse a problemas tales como la Instalación de Windows, NT
Instalación de LINUX, Configuración de Linux y NT así como aspectos de administración de redes UNIX,
NT , Programación en 32 Bits para Windows NT, Manejo de Correo electrónico en LINUX y NT, compartir
recursos con SAMBA entre LINUX y NT, Correr programas de UNlX en con un telnet de Windows NT o
9X, usar cuentas FTP y en general planear la distribución de Servidores de Archivos, Servidores De
correo Electrónico, Servidores de Internet, Servidores de Impresión etc.
4
IIOBJETIVOS
Aplicar los conocimientos adquiridos a lo largo de la carrera y
las diferentes materias
Conocer a fondo la estructura y funcionamiento de Windows NT
a nivel dered, sistema operativo, programación etc,..,
Integrar sistemas enRed entre Windows NT y Linux Red Hat
NT y Unix
Simular un ambiente heterogéneo de redes
Diseñar un ambiente de red queatienda los problemas del
departamento de la maestría en la licenciaturade química
y funcionamientodela
Comprender y aplicarlaestructura
programación orientada a objetos bajo 32 bits con el lenguaje
Visual C++, aplicándolo en WindowsNT
Aprender y aplicarensimulaciónlaadministración
Windows NT y Unix "linux"
de redes
Detectar los puntos débiles de cada uno de los sistemas
operativos Windows NT y Unix
Ser capaces de instalar, poner a punto los sistemas operativos
Windows NT y Linux; así como aplicaciones que interactúen en
cada uno de los sistemas NT y Linux
3
5
INTRODUCCION WINDOWS NT
A lo largo de la historia de la ciencia dela computación ha sido de vital importancia,el poder contar con
una interfaz que oculte a la vista "acciones" del usuario
así como todas las instrucciones de lenguaje
ensamblador o máquina que se realizan cada vez que se formatea un disquete
o que se grabaun
archivo o se imprime etc.. . Esta es la laborde un sistema operativo por lo cual la mayoría de los
fabricantes de computadorasse vieron enla necesidad de además de crear,
el hardware deberían de
crear softwareo conjunto de programas para que
el usuario pudiera haceruso de todas las ventajas de
una computadora.
Uno de estos fabricantes fue IBM quien lanzo la primera computadora personal creo junto con un
asociadollamado Microsoft (De Bill Gates) crearonelprimersistemaoperativoparaestetipode
computadoras personales, llamado MS-DOS, que aunque era muy rústico en un principio cubría las
necesidades del usuariodeaquelentonces,mástarde
la aparición de Machintosh elcuallanzoal
mercadounsistemaoperativoque
no erabasadoentexto
o comandosdelínea, si no quepor el
contrario ofrecía al usuario una interfaz gráfica para el usuario (GUI), este esquema aunque eraya muy
,
conocido en sistemas UNIX,en el ámbito de las computación personal fue una novedad muy importante
por lo cual Microsoft decide crear su propio GUI llamado Windows X.Y que incluía además de los
comandos de su antecesor MS-DOS también incluía procesadores de palabras, un "Command Shell" o
administrador de archivos, yla oportunidad de poder manejar en un modo virtual la mukitarea, al poder
hacer uso de 2 ó hasta a veces más programas a la vez, con esto y otras necesidades que se fueron
adquiriendo en el transcurso de los años , como fue la aparición de las redes de computadoras, era
necesario poder implementa, estas opciones dentro del mismo sistema operativo sin dejar de atender las
necesidades antes mencionadas delos usuarios, para ello Microsoft crea su versión deWindows para
trabajo
en
queaunquenoeramásquelaunióndeprogramasdeunsistemaderedesllamado
MANAGER anexado a las utilidades de Windows.
P P O
LAN-
Más tarde Bill Gates viendo el crecimiento casi exponencial del mercado
de las redes de computadoras
piensa en crear un sistema operativo que contara además de las instrucciones de Lan-Manager con
otros tipos de protocolos de redes entre ellos TCP/IP, PWSPX y otros protocolos de fabricantes
llamadas "propietarias" tal comola Token Ring de IBM , NetBIOSPJetBEUI, DLC y las redes de Mac
System 7.x (Cliente) . Por lo mismo Windows NT se le llama un sistema operativo de red abiertoya que
. Para comenzarel
soporta diferentes tiposde conexión a diferentes protocolos y redes de computadoras
proyecto de Microsoft comenzó con
la creación de redes punto a punto de trabajo en grupo en
el caso de
Windows para trabajo en Grupo o 3.1 1 , en las cuales los usuarios de estos recursos pueden utilizar los
recursos mutuamente. Cada usuario puede decidir por si mismo que recursos de su computadora quiere
ofrecer a los miembros del grupo de trabajo y cuales no. La utilización
de archivos y directorios esta
graduada mediante simples derechos de acceso . Sólo es posible pasar a otros grupos de trabajo de la
misma red registrándose en la red en cuestión . Con la consecuencia de que un miembro de la misma
red o grupo de trabajo utilice los recursos de otro sin su autorización. Este tipo redes punto apunto que
diseñoMicrosoftnoexisteningunadiferenciaentreutilizaryofrecerservicios
ni tampoconinguna
instancia central para el control de los derechos de acceso y las utilizaciones en la red . Únicamente el
personal de Novel NetWare separa rigurosamente entre sí los grupos de trabajo incluso las redes punto
a punto.
Debido al avance en las aplicaciones que se estaban usando en las redes de computadoras yla falta de
seguridad que se estaba aplicando a las redes, punto apunto se decide crear leyes
de protección de
datosenellosebasoelconceptodelasredes
Cliente-Servidor en lascualescomomínimo una
computadora sume el papel de vigilante y coordinador (como el concepto de Dominios de Microsoft).
Mientras que un grupo de trabajo no es nada más que
el nombre de un grupo de computadoras que
6
comparten ciertos recursos, detrás deundominiodehayungrupodecomputadorasqueposeenun
concepto de seguridad común. Este concepto de dominio es aplicable a las redes
NT .
Pero no tan solo había que dominar los conceptos anteriores si no ir más allá por lo cual a partir de que
Windowsparatrabajoengrupo
3.11hizo su apariciónysevio
la necesidaddecrearunambiente
heterogéneoderedesentoncesseempezó,aplanearunsistemaoperativopara
la décadade los
noventas en el cual, además de poder usar las características de ser multitarea también se aprovechara
elconceptodeusarredesen
unambientecliente-servidorconunaseguridadaceptablepararedes
corporativas o conrecursosqueporsuscaracterísticasmerecieranunciertoniveldeseguridad,
así
como también que el código en
el cual fuera hecho no restringiera al usuario a instarlo
o echarlo en
marcha en una cierta plataforma solamente, si no que este nuevo sistema operativo pudiera portarse en
diferentes modelos de Hardware, para ellolos módulos de este sistema operativo deberían encapsularse
y separarse en módulos buen planeados para que al hacer la migración a otra plataforma de hardware
fuesecasitransparente la migracióndeesteúltimo,poresoNTfueescritoen
sumayorparteen
Lenguaje C el cual permite un rango de portabilidad muy grande y por ello mismo
NT puede instalarse
desde una máquina X86 o superior (con un procesador o varios procesadores CISC) o bien enuna
RISC)
Power PC o en una computadora de alto rendimiento como una HP-Netserver (con procesadores
ambas . No obstante lo anterior otro de los puntos centrales del diseño de este nuevo sistema operativo
de red, había que trabajar en la confiabilidad en cuanto a prueba de fallos en aplicaciones. Lo anterior
fue tomado en cuenta por que se deseaba mantener
la compatibilidad con aplicaciones de MS-DOS,
Windows 3.XY, Windows 9x, OS/2 y aplicaciones con el estándar POSK . Por lo cual era muy factible
que alguna de estas aplicaciones de un ambiente tan heterogéneo y multitarea dejara colgado al usuario,
por ello se diseña un sistema de Memoria Virtual muy adecuado, así como un sistema de archivo que
fuese capaz de soportar estas aplicaciones, ofrecer un nivel de seguridad contra virus y un margen de
.
seguridad contra fallo de aplicaciones mínimo que
no se había observado en Windows 3.xy
Lo anterior pudo ser previsto y planeado para poder asegurar un productoque no solo sirviera como un
ambiente de trabajo para escritorio o tan solo un ambiente agradable para un usuario como lo habían
sidoWindows3.XYywindows9xpor
lo quese dieron a la tarea de crear un sistema operativo con
ambiente de red con un cierto nivel de seguridad, que además pudiera ofrecer un buen desempeño en
manejo de memoria y de archivos, un sistema operativo que pudiera trabajar a nivelde red en cuanto a
funcionar como servidor de Archivos.
Aplicaciones, Impresión , Web, Correo Electrónico y de aplicaciones de 32 Bits para ambientes de rede
BackOffce que incluye aplicaciones de bases de datos como
SQL
Server,ExchangeServer,SNAServerySMSquesonpropiasdeMicrosoft.Comotambiénpoder
interactuar y estar conectados a un ambiente heterogéneo de redes es decir un sistema operativo que
pudiese soportar el acceso / manejo de diferentes tipos de protocolos de redes tales como son TCP/IP,
0.92, Novel1 IPX, Token Ring, o redes remotas con SLIPo PPP etc .
S como lo son los productos de
Conservando un ambiente de trabajo de escritorio amigable como el de Windows 9x pero con mayor
confiabilidadencuantoatolerancia
de fallos.Todo lo anteriorselogroconseguiren
2 productos
Windows NT Server y WindowsNT Workstation. Estos dos productos aunque tiene las mismas bases
en
cuanto a concepto de ser sistemas operativos ofrecen diferentes ventajas y obviamente desventajas a
continuación se muestra un resumen de componentes comunes y diferencias entre Windows NT Server
Y
Windows
NT
Workstation.
7
Con lo anterior se puede decir que Windows es un sistema operativo para los noventas; pero en realidad
conviene utilizarlo como plataforma de red , o como PC de escritorio ;Que ventajas tendrá sobre UNlX u
otro sistema operativo?.
8
de
un
El Verificador de archivos del sistema le sigue la pista
a los archivos críticos que aseguran la operación del
i?:: sistema. Si estos archivos son transferidos o
cambiados, este verificador ofrece una manera fácil
de restaurarlos. Una vez que se detectan los cambios
de archivo, se ofrece al usuario varias líneas de
: acción.
+
#&
La presentaciónWindows (2.0,2.1, 3.0y 3. l x o para trabajo en grupo)
Después de la aparición de Machintosh y su sistema operativo gráfico Microsoft espero u tiempo hasta
que llego el procesador 286 el cual se basaba en un BUS de 16 bitsque permitía manejar untotal de
memoria en direccionamiento de más de 1024 kb es decir borrar la limitante de el Mega de memoria.
Meses después hace su aparición el procesador 386 que se basaba en un direccionamiento de 16 bits
además de nuevas instrucciones en ensamblador para poder manejar máseficientemente este
direccionamiento y con ello rebasar el, límite de 2 mb físico de las 286 con ello los gráficos podrían
hacerse relativamente más fácil pues como se sabe un GUI esta basado en el número de píxeles que se
puedan administrar y manejar, con ello además de estos importantes descubrimientos en Hardware
Microsoft también implementa el concepto de Swap (Espacio en disco duro intercambiable, en el caso de
que la memoria RAM se agote).
10
Similitudes entre windows9x y windows NT
MS-DOS
El sistema operativo DOSes la primera interfaz no grafica que permite al usuariode una computadora
personal accederal hardware , ejecutar programas y sacar rendimientoun
a equipo capazde realizar
una gran variedad de trabajos. Proporciona el medio para identicar al hardware que programa
o
mandado se quiere ejecutar, donde se encuentra el programa
o mandato etc.
Historia
En el año de1981 después de IBM lanza su primera computadora personal se da cuenta que necesitaba
le pide ala empresa Microsoft Corporation en alianza
un S.O. para poder operar a su invento para ello
con la misma IBM que crearanal MS-DOS. Este primerS.O. permitia ejecutar ordenes básicas para su
funcionamiento , una de estas primeras ccaracteristicas el uso de un sistema
de archivos que ha
permitido compatibilizar estos en las sucesivas versiones así como
enotrosS.0. como OS/2 , windos
3.x y finalmente Windows NT, esta versión era utilizada y almacenada
en discos de5.25 pulgadas de
una sola cra con capacidad de160KB, posteriormene en 1982 se mejora esta versión almacenandola
en
discos de 360K. En 1983 se hizo una gran mejora hacendo una mejor gestión de dse archivos (aparecen
los subdirectorios, etc..) se amplian el conjunto de ordenes y mejorando las existentes
. En 1984
aparecne los disco de Alta densidad y con ello una nueva versión
DOS
de y con ellola primera versión
de red DOS3.1 que permitela conexión de computadoras personales bajo DOS en Redes de Area Local
y su utilizacióncomo servidores de entornos Multiusuario a continuación se explica muy brevemente la
estructura del sistema operativo DOS
m
Como se puede observar en
el esquema el primer componente que se ve interactuar el
es
el cual
hace un test del equipo permite intercambio de datos entre dispositivos de entrada y salida tales
el como
teclado yel monitor o el teclado y el Flopy etc.
El siguiente nivel esta integrado por
el el núcleo del sistema operativo que esta en memoria desde
que
se inicia el equipo, este núcleo esta compuesto por
el interprete de comandos Command.com que
es el
encargado de poder ejecutar una serie de comandos que quedan residentes en memoria así como
tambien de dos archivos denominados ocultos que permiten actualizar las variantes del hardware de la
computadora víaBIOS.
Direccionamiento de memoria principal
Este se hace de modo reales decir; se accede directamente a posiciones físicas de
la memoria . Se
y un desplazamiento. LAS direcciones
utliza ekl esquema de direccionamiento basado en un segmento
de un segmento son de
16 bits por lo tanto se puede hacer referncia
a 64 KB pero se puede desplazar a
la izquierda hasta4 bits sin perder los más significativos, con lo cual se dispone de1 .O24 K o 1 Mbyte .
Como los cuatro últimosbits son cero, las posiciones que se pueden direccionar van 16
de en 16
direcciones. Lo anterior se explicaya que debido a que MS-DOS se basaba en máquinas XT con un
2 a la 8 por lo que tenemos un direccionamiento de
256 bits
de 8 bits se tenía un direccionamiento de
posteriormente la AT 386 tenia un bus de 16 bits 2 a la 16 que hace un total de65536 bits, actualmente
BUS de 32 bits o sea 2 a la 32 4294967296
las máquinas486 a la pentium más reciente operan con un
bits o cuatro billonesde bytes (4 gigabytes).
9
No obstante todas las mejoras anteriormente mencionada se heredaba
la FAT, el commad. comy en
realidad todas las mejoras ofrecidas gráficamente para administrar los acrhivos desde
el File Manager
Ydministrador de archivos” era una mascara de pixeles de los antiguos pero eficientes comandos de
MS-DOS (format.com, Dir, tree.com, md, cdetc). También nmo podemos dejar
de mencionar el fatidoc
mensaje de APLICATION IN ERROR FATAL PROTECTIONMODE APLICATION etc que no eraotra
cosa que lapesima administración de memoria entre las aplicaciones
y el kernel, administradores de
archivos y demeoria del propio Windows,ya que en estas versiones así como en las actuales de
windows 9x una palicación puede
tratar de ocuparya seaen meoriafísica como en SWAPla misma
dirección de memoria que
el kernel o el administrador de archivoso hasta el mismo administrador de
gráficos, por lo que el “Semaforo delS.O. ” no permiteel paso del procesoy prefiere matar a laaplicación
, so siempre con exito ya que también con esto se puede quedar colgado
el S.O. ya que anteriormente
se pudo hacver accedidoa regiones de meoria prohibidos sin poder ser detectados
a tiempo.
Lo más importantey destacable dela aparición de Windows ademas de
la interfaz gráfica fué , la
precencia de incluir en sus conceptos de RED nuevas tecnologías
y también nuevos conceptos de redes
creadas por Microsoft que actualmente tienen
jucho peso.
11
modos
4
ARQUITECTURA GENERAL DE WINDOWS NT
Un sistema operativo es un programa de computadora complejo, actualmente los sistemas operativos
ofrecen dos servicios fundamentalmente . Hacen que el hardware de la computadora se más fácil de
utilizar creando una máquina virtual, que
es muy diferente dela máquina real . Su segunda labor es la de
que un sistema operativo compartelos recursos de hardware entrelos usuarios . Uno de estos recursos
más importantes es el procesador Además de compartir el procesador el sistema operativo divide la
memoria y regula el accesolos
a archivos y dispositivos dela computadora.
Los Modelos de Windows NT
El diseño de Windows NT se guió por una combinación de varios modelos
. El principal es el modelo
Cliente / servidor para con ello proporcionar múltiples entornos de sistemas operativos (Inicialmente
Windows, MS-DOS, 0S/2y POSIX) a sus usuarios .Emplea a la vez un modelo de objetos para
manejar uniformemente los recursos del sistema operativo y concedérselos después alos usuarios . Un
tercer modelo es el multiproceso simétrico (SMP, symetric multiprocessing), permite que Windows NT
consiga el máximo rendimiento en entornos con multiprocesadores.
Modelo Cliente Servidor
Un método sencillo y común en los sistemas operativos más pequeños como el MS-DOS, es crear el
sistema operativo como un conjunto de procedimientos y permitir que cualquier procedimiento invoque a
otro, esto obviamenterestafiabilidadyeficienciaal
S.O. ya queunaaplicaciónpuedetransgredirla
seguridad de otrao su espacio de memoria.. En todos los sistemas operativos excepto en
los monolíticos
mas sencillos las aplicaciones están separadas del propio sistema operativo
. Esdecir el código del
modo kernel), con
sistemaoperativo se ejecutaenunmodo
deprocesadorprivilegiado(llamado
acceso a los datos del sistema y al hardware; las aplicaciones se ejecutan en un modo de procesador
privilegiado (denominado modo usuario), con un número limitado de interfaces y con acceso limitado a
los datos del sistema. En la siguiente figura se muestra la estructura monolítica de un sistema operativo
con
separados.
Y
kernel
Un método diferente consiste en dividir el sistema operativo en módulos y estratificarlos . Cada módulo
proporciona un conjunto de funciones que pueden ser llamadas por otros módulos. El código de un nivel
concreto solamente hace llamadas a códigos de niveles inferiores.
solo a interfaces de
Una ventaja de la estructura estratificada es que a cada nivel de código tiene acceso
másbajonivelyalasestructurasdedatosqueprecisa,limitandodeestamanera
la dispersióndel
código.
Un tercer modelo en la estructura de un sistema operativo es el modelo cliente servidor . La idea es
dividir al sistemaoperativoenvariosprocesoscadauno
de los cuales seencargadeunconjunto
se
determinado de servicios . Cada servidor se ejecuta en modo Usuario, ejecutando un ciclo que verifica
si un cliente ha solicitado uno de sus servicios
. El cliente que puede ser
o bien un componente del
sistemaoperativo o bienunprogramadelaaplicación
, solicitaunservicioenviandounmensajeal
modo kernel envía el
servidor . Un kernel del sistema operativo (o microkernel) que se ejecuta en
mensaje al servidor, este efectúa la operación, y el kernel devuelve los resultados al siguiente con otro
como mensaje
muestra
en
la figura.siguiente
Elmétodo Cliente / servidor tienecomoresultadounsistemaoperativocuyoscomponentesson
pequeños y autónomos Puesto que cada servidor se ejecuta en un proceso modo usuario independiente,
un servidor puede fallar (y alo mejor ser reiniciado)
sin corromper ni dañar elresto del sistema operativo .
En la siguiente
figura
se
muestra
un
modelo
teórico
de
un
sistema
cliente
/ servidor .
El Kernelconsisteúnicamenteenunaherramientadepasodemensajes
. Enrealidadlossistemas
cliente / servidor pueden ser muy variados , algunos hacen muy pocas labores dentro del modo kernel y
otros hace más .
La estructura de Windows NT se beneficia tanto el modelo estratificado como del modelo cliente servidor
. La parte en modo kernel de Windows NT se denomina Windows NT Executive (El ejecutor de
la gestióndememoria
Windows NT) . Esteenglobauna serie decomponentesqueimplementan
virtual, administración de objetos (recursos), sistemas de archivosy de E/S (incluyendo drivers dered) de
comunicacióndeprocesos,ydiversosaspectosdelsistemadeseguridad
. Estoscomponentes
interactúan entre ellos básicamente de una forma más modular que
estratificada . Sin embargo el modelo
y en
estratificado del sistema operativo entra en juego en el sistema de E/S del ejecutor de Windows NT,
: el kernel de NTylacapa
deabstraccióndelhardware(HAL,hardware
susporcionesmásbajas
abstractionlayer) . Elrestode los componentesdelejecutordeNTestándistribuidosencapaspor
encima de estas dos partes
. El kernel de NT realiza funciones de sistema operativo bajo nivel, muy
parecidas a las encontradas en los sistemas operativos de cliente I servidor y microkernel (por ejemplo
planificación de tareas, distribución de interrupciones y excepciones, y sincronización de procesadores).
También proporciona un conjunto de rutinas y objetos básicos que el resto del ejecutor necesita utiliza
para implementar operaciones de
alto nivel. Por debajo del kernel se encuentra
la DLL (dinamic link
library, o librería de enlace dinámico) del HAL, una capa de código que protege
al kernel y al resto del
ejecutordeNT
de las diferenciashardwareespecificasdecadaplataforma.ElHALmanipula
directamente al hardware.El modelo cliente/ servidor que usa Windows NT se muestra a continuación.
13
delLas
ventajas
O
O
O
Simplifica el sistemaoperativobase,esdecir,
el ejecutordeWindowsNT.Unobjetivo
de
Windows NT es proporcionar API de Win32 MS-DOS, Windows de
16 bits, POSlX y OS12. El
trasladodecadaAPIaunservidorindependientementeevitaconflictosyduplicacionesdel
ejecutor y permite añadir nuevos API fácilmente.
Mejora la fiabilidad . Cada servidor se ejecuta en un proceso separado, dividido dentro de su
propia memoria,y de esa manerase queda protegido de otros procesos
Se adapta perfectamente al modelo de procesamiento distribuido. Puesto que las computadoras
conectadas de una red están basados en un modelo cliente/servidor y utilizan mensajes para
comunicarse, los servidores locales pueden enviar fácilmente mensajes a máquinas remotas y
en nombre de aplicaciones clientes. Los clientes no necesitan saber si ciertas solicitudes están
siendo atendidas localo remotamente.
Modelo de Objetos
Aunque no es estrictamente un sistema orientado a objeto (como Meyer
lo define), Windows NT utiliza
objetos para representar recursos del sistema. Cada recurso del sistema que puede ser compartido por
más de un proceso (incluyendo archivos, memoria compartida, y dispositivos físicos) está implementado
como un objeto y se maneja mediante
el empleo de servicios de objeto.
Además de reducir
algunas
los efectos de un cambio, construir un sistema operativo basado en objetos tiene
ventajas.
14
o
El sistema operativo accede y manipula sus recursos uniformemente . Crea, borra, y referencia
un objeto de evento dela misma forma que lo hace con un objeto de proceso.
0
La seguridad se simplifica, puesto que todos los objetos están protegidos de la misma forma.
0
Los objetos son un paradigma conveniente y uniforme para compartir recursos entre dos o más
procesos . Los controladores (handles) de objetose utilizan para manipular todo tipode objetos .
Dos procesos comparten un objeto cuando cada uno abre un handle a el . El sistema operativo
puederastrearcuantoshandlesestánabiertosaunobjetoparadeterminar
si elobjetoesta
todavía siendo utilizado.
Multiprocesamiento simétrico
Lamultitareaes la técnicaparacompartirun
Único procesadorentremúltiplestareas.Sinembargo,
cuando un ordenador tiene más de un procesador, el modelo de multitarea tiene que ser ampliado a un
modelo
multiproceso
. Un ordenador
que
tiene
dos procesadores
puede
ejecutar
dos
tareas
simultáneamente . De estaforma,dondeunsistemaoperativomultitareaaparentaejecutarmúltiples
tareas al mismo tiempo , un sistema operativo multiproceso lo hace realmente, ejecutando una tarea en
cada uno de sus procesadores.
WindowsNTincorporavariascaracterísticasquesonvitalesparasuéxitocomosistemaoperativo
multiproceso.
0
0
o
0
Laposibilidaddeejecutarelcódigodelsistemaoperativo
en cualquierade los procesadores
disponibles y en múltiples procesadores al mismo tiempo.
Múltiples hilos de ejecución(therads)dentrode
unÚnico proceso. Los hilospermitenaun
proceso ejecutar diferentes partesde su programa en diferentes procesadores simultáneamente.
Procesos de servidor que utilizan múltiples hilos para procesar llamadas de más de un cliente
simultáneamente.
Mecanismosadecuadosparacompartirobjetosentreprocesosyflexibilidaddecomunicación
entre procesos, incluyendo compartición de memoria y un pase de mensajes optimizado.
Para poder entender estos modelos yla forma en que esta diseñado Windows NT es necesario revisar la
Estructura de Windows NT
5
15
ablas
SISTEMA DE ARCHIVOS DE WINDOWS NT NTFS
las
Desde el punto de vista del usuario, NTFS organiza los archivos en directorios que, al igual
que en HPFS, están ordenados. Sin embargo, a diferencia de
FAT o HPFS, no hay objetos
"especiales" en el disco y no existe ninguna dependencia del hardware subyacente, como
los sectores de 512 bytes. Adem S, no hay ubicaciones especiales en el disco, como ocurre
O
los
superbloques
HPFS.
en
FAT
Los objetivosde
NTFS consistenenproporcionar:Fiabilidad,estabilidad,seguridady
accesibilidad de acuerdo a la siguiente tabla se muestran las características de este sistema
de archivos comparados contra FAT
erable porque realiza un seguimiento de las transacciones efectuadas en el sistema
Funcionalidad aaregada
Uno de los objetivos de diseño principales de WindowsNT en todos los niveles es
proporcionar una plataforma ampliable sobre la que se pueda construir, y NTFS no es una
excepción. NTFS proporciona una plataforma rica y flexible para se puedan utilizar otros
sistemas de archivos. Además, NTFS es totalmente compatible con el modelo de seguridad
16
de Windows NT y admite múltiples secuencias de datos. Un archivo de datos ya no es un
Único flujo de datos. Por último, en NTFS los usuarios pueden agregar sus propios atributos
personalizados a un archivo.
Compatibilidad con POSIX
NTFS es el más compatible con POSIX.l de los sistemas de archivos admitidos porque
acepta los siguientes requisitos POSIX.l:
Nomenclatura con distinción de mayúsculas y minúsculas:
En POSIX, LÉAME.TXT, Léame.txt y Iéame.txt son todos archivos distintos.
Marca de tiempo adicional:
La marca de tiempo adicional proporciona la hora a la que se tuvo acceso al archivo por
última vez.
Vínculos activos:
Un vínculo activo se produce cuando dos nombres de archivo distintos, que se pueden
encontrar en directorios distintos, señalan a los mismos datos.
Suuresión de limitaciones
En primer lugar, NTFS ha incrementado enormemente el tamaño de los archivos y de los
volúmenes, por lo que ahora pueden ser de hasta 2/\64 bytes (16 exabytes o
18.446.744.073.709.551.616 bytes). NTFS también ha vuelto al concepto FAT de los
clústeres para evitar el problema de HPFS de un tamaño
fijo de sector. Esto se ha hecho
porque Windows NT es un sistema operativo portátil y es probable encontrar en algún punto
una tecnología de disco distinta. Por tanto, se consideró que los 512 bytes tenían muchas
posibilidades de no ser siempre una buena opción para
la asignación. Esto se consigue al
permitir que el clúster se defina como múltiplos del tamaño de asignación natural del
hardware. Por último, en NTFS todos los nombres de archivo se basan en Unicode y se
mantienen los nombres de archivo 8.3 así como los nombres largos.
Ventaias de NTFS
NTFS es el mejor sistema para volúmenes de 400 MB o más. Esto se debe a que en NTFS no
se degrada el rendimiento con tamaños de volúmenes mayores, como sucedía en FAT.
El sistema de recuperación diseñado en NTFS es tal que nunca debería ser necesario
ejecutar un programa de reparación de discos en una partición NTFS. Para obtener
información acerca de las ventajas adicionales de NTFS, consulte:
-"Concepts and Planning Guide" (Guía de conceptos y diseño) de
Windows NT Server, capítulo 5, la sección titulada "Choosing a File
System" (Elección deun sistema de archivos)
Microsoft
-Kit de recursos de Microsoft Windows NT Workstation 4.0, capítulo 18,
"Elección deun sistema de archivos"
-"Resource Guide" (Guía de recursos) del Kit de recursos de Microsoft
Windows NT Server 4.0, capítulo 3, la sección titulada "Which File
System to Use on Which Volumes" (Qué sistema de archwos
utilizar en
cada volumen)
Desventaias de NTFS
No se recomienda utilizar NTFS en un volumen que sea menor de 400 MB,
17
aproximadamente, debido a la carga de espacio que supone NTFS. Esta carga de espacio
son los archivos de sistema NTFS que normalmente utilizan al menos 4 MB de espacio de la
unidad en una partición de 100 MB.
Actualmente, no se ha integrado en NTFS el cifrado de archivos. Por tanto, cualquiera puede
iniciar en MS-DOS, u otro sistema operativo, y utilizar un programa de modificación de
discos de nivel inferior para ver los datos almacenados en un volumen NTFS.
No es posible dar formato a un disquete con el sistema de archivos NTFS.
Windows NT da formato a los disquetes con el sistema de archivos FAT debido a que la
carga que implica NTFS no cabría en un disquete.
Para obtener más información acerca de las desventajas de NTFS, consulte:
-"Concepts and Planning Guide" (Guía de conceptos y diseño) de Microsoft
Windows NT Server, capítulo 5, la sección titulada "Choosing a File
System" (Elección de un sistema de archivos)
-Kit de recursos de Microsoft Windows NT Workstation 4.0, capítulo 18,
"Elección de un sistema de archivos"
-"Resource Guide" (Guía de recursos) del Kit de recursos de Microsoft
Windows NT Server 4.0, capítulo 3, la sección titulada "Wluch File System
to Use on Whch Volumes" (Qué sistema dearchivos utilizar en cada
volumen)
Convenciones de nomenclatura de NTFS
Los nombres de archivos y de directorios pueden tener una longitud de hasta 255
caracteres, incluida la extensión. Los nombres conservan las mayúsculas y las minúsculas,
pero no distinguen entre mayúsculas y minúsculas. NTFS no distingue los nombres de
archivo según el uso de mayúsculas o minúsculas. Los nombres pueden contener cualquier
carácter excepto los siguientes:
?"/\<>*I:
18
entre
MANEJO DE PROCESOS EN WINDOWS NT
PROCESOS E HILOS
Unprogramaesunasecuenciaestáticadeinstrucciones,mientrasqueunprocesoesunallamada
dinámica a un programa junto con
los recursos del sistema necesarios para que el programa se ejecute.
Un proceso representa una unidad de posesión de un recurso y el trabajo a realizar. Es un medio del
sistema operativo de organizar las múltiples tareas que debe llevar a cabo. El sistema operativo reserva
una parte de los recursos del ordenador para cada proceso, y se asegura de que cada programa de un
proceso es enviado a ejecución de forma ordenada y controlada en el tiempo.
Los sistemasoperativosgeneralmentetienenuncuerpodecódigoqueadministralacreacióny
eliminación de procesos, y las relaciones entre éstos. Este código se denomina estructura de proceso y
está implementado en Windows NT por el administrador de procesos. Mark Lucovsky, un desarrollador
de Windows NT que escribió los componentes de la estructura de proceso para el sistema UNlX y para
un sistema operativo basado en objetos, diseño y escribió el administrador de procesos del ejecutor de
Windows NT. Resume su objetivo fundamental en una frase: proporcionar un conjunto de servicios de
los subsistemasdeentornoparaemularsusparticulares
procesonativosquepuedanemplear
estructurasdeprocesos.EstepropósitoevolucionóconelobjetivodeWindowsNTdeproporcionar
múltiples
entornos
sistema
de
operativo
ejecutasen
se
que
modo
usuario.
en
Los procesos nativos de Windows NT tienen varias características quelos distinguen de los procesos de
otros sistemas operativos:
Los procesos de WindowsNT son implementados como objetos y se accede a ellos utilizando servicios
de objeto.
UnprocesodeWindows
direcciones.
NT puedetenermúltipleshilosdeejecucióndentrodesuespaciode
Los objetos proceso ylos objetos hilo tienen características de sincronización internas.
EladministradordeprocesosdeWindowsNTnomantienerelacionespadre
relaciones
crea.
los
que
procesos
/ hijo uotro. tipo de
Qué es un proceso?
En el más elevadonivel de abstracción, un proceso consta de:
Un programa ejecutable que define el código
y los datos iniciales.
Un espacio de direcciones privado, que es un conjunto de direcciones de la memoria virtual que puede
emplear un proceso.
Recursosdelsistema,comosemáforos,puertosdecomunicaciones,
operativo reserva para el proceso cuando se ejecuta un programa.
y archivos,que
el sistema
En Windows NT, un proceso ha de incluir un cuarto elemento antes de poder realizar un trabajo.
AI menos un hilo de ejecución
Procesos e hilos
19
Un hilo es una entidad dentro de un proceso que el kernel de Windows NT planifica para su ejecución.
Sin éI, el programa del proceso no puede ejecutarse.
Espacio de direcciones
El sentido común dicta que un procesono debería ejercer un control ilimitado sobre otros procesos. Una
manera que tiene Windows NT de conseguir esto es utilizar un sistema
de memoria virtual. Con memoria
virtual, los programadores (ylos procesos que ellos crean) tienenuna visión lógica de la memoria que no
se corresponde con la disposición física. Esto se ilustra mejor
en la siguiente figura:
d
C .
*
d
I
,
.
I
Memoria virtual versus memoriafísica
Cada vez que un proceso emplea una dirección de memoria,
el sistema de memoria virtual, traduce la
direcciónlógicaaunadirecciónfísica.Tambiénevitaque
los procesosaccedandirectamentea
la
memoria virtual ocupada por otros procesoso por el sistema operativo. Para ejecutar código del sistema
operativo o para acceder a la memoria del sistema operativo, unhilo tiene que ejecutarse enel modo no
restringido denominado modo kernel. Sin embargo, la mayoría de los procesos son procesos de modo
usuario, es decir, procesos cuyos hilos se ejecutan principalmente en el modo restringido del procesador
denominado modo usuario. Un hilo modo usuario consigue acceso al sistema operativo llamando a un
servicio del sistema. Cuando el hilo llama al servicio, el procesador lo atrapa y conmuta su ejecución de
modo usuario a modo kernel.El sistema operativo tomael control del hilo, validandolos argumentos que
el hilo pasó al servicio del sistema y ejecutando
el servicio. AI final, el sistema operativo vuelve a pasarel
hilo a modo usuario antes de dar el control al programa del usuario. De esta forma, el sistema operativo
se protege asimismo y a sus datos de cualquier modificación por parte
de
los procesos
de usuario.
Los programas de aplicación se ejecutan en modo usuario, y sucede
lo mismo con los subsistemas
protegidos de Windows NT. Estos últimos son procesos servidores en modo usuario que proporcionan
importantes prestaciones del sistema operativo. Están implementados
como servidores para simplificarel
20
sistema operativo base y hacerlo extensible. Los subsistemas se ejecutan en modo usuario para que el
espacio de direcciones de cada uno esté protegido de procesos de aplicaciones y de otros subsistemas.
Colección de recursos
Ademásdeunespaciodedireccionesprivado,cadaprocesotieneasociadounconjuntodiversode
y sus recursos.
recursos del sistema. La siguiente figura muestra un proceso típico
Si el proceso necesita información sobre su Token de acceso,
o cambiar alguno de sus atributos, el
proceso debe abrir un handle a su objeto Token. El sistema de seguridad determinarási se puede hacer
uno. Este proceso particular no ha abierto un handle a su Token de acceso; de ahí que
no haya una
flecha desde latabla de objetos al token de acceso.
Bajo el Token de acceso hay una serie de estructuras de datos creadas por el administrador de memoria
virtual para controlar o rastrear las direcciones virtuales empleadas por el proceso. El proceso no puede
leer o alterardirectamenteestasestructurasdedatos;
el administradorde VM lascrea y modifica
indirecta Procesos e hilos mente a medida que el programa reserva memoria.
En la parte inferior de la figura se muestra la tabla de objetos del proceso. El proceso ha abierto handles
a un hilo, a un archivo, y a una sección de memoria compartida. (La descripción de
la dirección virtual
registra las direcciones virtuales ocupadas por
el stack del hilo y el objeto sección, según indican las
flechas que van de la descripción de dirección virtual a esos objetos).
Además de los recursos tangibles mostrados en la figura, cada proceso tiene un conjunto de límites de
cuotas de recursos que restringen cuánta memoria pueden utilizar sus hilos para abrir handles a objetos.
Cada proceso tiene también una prioridad de ejecución base y una afinidad de procesador por defecto,
cuestiones que son descritas más adelante.
Objeto proceso
EnelejecutordeWindowsNT,
los procesossonsimplementeobjetoscreados
y eliminadosporel
administrador de objetos. El objeto proceso,
al igual que otros objetos, contiene una cabecera que el
administrador de objetos crea e inicializa. Esta cabecera almacena atributos estándar de objeto, como el
descriptor de seguridad del objeto proceso,
el nombre del proceso (si tiene alguno para propósitos de
compartición), y el directorio objeto en el cual está almacenado su nombre,
si es aplicable.
21
El administrador de procesos define los atributos almacenados en el cuerpo de los objetos proceso, y
también proporciona servicios del sistema que guardan y cambian estos atributos.
En siguiente figura4-3
se ilustranlos atributos y servicios para
Por ejemplo, en un ordenador multiproceso, la afinidad del procesador podría obligar a que los hilos del
proceso fueran ejecutados en un subconjunto de
los procesadoresdisponibles.Deformasimilar,
los
límites Atributos del cuerpo de objeto Procesos e hilos de cuota regulan cuánta memoria, espacio de
paginado de archivos, y tiempo de ejecución pueden emplear colectivamente
los hilos del proceso.
Objeto proceso
'
I
La prioridad base del proceso ayuda al kernel de WindowsNT a regular la prioridad de ejecución de los
hilos en el sistema. La prioridad de hilos individuales varía pero siempre permanece dentro del rango de
la prioridad base del proceso. Los subsistemas de entorno pueden emplearla prioridad base del objeto
proceso kernel. Qué sonlos hilos?
Si el lector está familiarizado con
el tema de los hilos, es probable quehaya
encontrado varias definicionesde hilo, entre las que se incluyen: "una unidadde ejecución", "un contador
de programaindependiente", o una entidad planificable dentro de un proceso". Aunque cada una de
estas definiciones es en esencia correcta, ninguna es satisfactoria. Qué es exactamente "una unidad de
ejecución?; quées lo que se ejecuta en un procesador?
Mientras que un proceso lógicamente representa un trabajo que el sistema operativo debe realizar, un
hilo representaunadelasmuchassubtareasnecesariasparallevaracabo
el trabajo.Porejemplo,
22
supóngase que un usuario pone en marcha una base de datos en una ventana. El sistema operativo
representaestainvocaciónalabasededatoscomounprocesosencillo.Ahorasupóngasequeel
usuario quiere que sea generado el informe de una nómina desde la base de datos y se envíe a un
archivo (supuestamente una larga operación). Mientras esta operación está en marcha, el usuario puede
hacer otra consulta a la base de datos.
El sistemaoperativorepresentacadaunadeestassolicitudes(elinformede
la nóminay la nueva
consulta a la base de datos) como hilos independientes dentro del proceso de
la base de datos. Los hilos
pueden planificarse para que se ejecuten independientemente en el procesador, lo cual permite que las
dos operaciones se
ejecuten al mismo tiempo (concurrentemente). Los sistemas operativos proporcionan hilos para lograr
esta concurrencia de una forma conveniente y eficaz. Se examinará con más detalle este asunto más
adelante.
A continuación se enumeranlos componentes esenciales de un hilo del ejecutor de Windows NT:
Un Único identificador, denominado ID cliente
Los contenidos de un conjunto de registros volátiles que representan el estado del procesador
Dos pilas, una para que la utilice el hilo mientras se ejecuta en modo usuario, y otra cuando se ejecute
en modo kernel
Un área de almacenamiento privado para ser empleada por los subsistemas, las librerías en tiempo de
ejecución, y las librerías de enlace dinámico (DLL)
Los registros volátiles, las pilas, y el área de almacenamiento privado se denominan contexto del
Los datos reales que componenel contexto de un hilo varían de un procesador a otro.
hilo.
Unhiloresidedentrodelespaciodedireccionesvirtualesdeunproceso,utilizando
el espaciode
direccionescomoalmacéndurantesuejecución.
Si existemásdeunhiloen
el mismoproceso,
comparten el mismo espacio de direcciones y todos
los recursos del proceso, incluyendo su Token de
acceso, su prioridad base, y los handles de objeto de su tabla de objetos. El kernel planifica la ejecución
de los hilos en un procesador. Por lo tanto, cada proceso de Windows NT debe tener al menos un hilo
antes de que se pueda ejecutar.
Multitarea y multiproceso
Unprocesador sólo puedeejecutarunhiloenunmomentodeterminado.Sinembargo,unsistema
operativo multitarea permite a los usuarios ejecutar múltiples programas, y parece ejecutar todos ellos al
mismo tiempo. Logra esta impresión dela siguiente manera:
1. Ejecuta un hilo hasta que la ejecución del hilo se interrumpa o hasta que el hilo tenga que esperar a
que quede disponible un recurso
2. Salva el contexto del hilo
3. Carga el contexto de otro hilo
4. Repite esta secuencia mientras haya hilos esperando a ser ejecutados
Cambiar la ejecución del procesador de un hilo a otro según se ha indicado, se denomina conmutación
de contexto. En Windows NT, la conmutación de contexto la realiza el componente kernel del ejecutor.
Como se ilustra con dos hilos en la figura4-4, un sistema operativo multitarea al tema continuamente su
ejecución de un hilo a otro. Eventualmente, cada hilo finaliza su subtarea y luego, o es finalizado, o se le
23
da otra tarea. La extraordinaria velocidad del procesador consigue la ilusión de que todos
están ejecutando al mismo tiempo.
los hilos se
La multitarea incrementa la cantidad de trabajo que realiza el sistema porque la mayoría de los hilos no
se pueden ejecutar continuamente. De vez en cuando, un hilo detiene su ejecución y espera hasta que
un lento dispositivo de E/S complete una transferencia de datos o mientras otro hilo está empleando un
recurso que necesita, por ejemplo. Cuando un hilo tiene que esperar, la multitarea permite que otro hilo
se ejecute, aprovechandolos ciclos del procesador que de otra manera se perderían.
r-----"---
Hecha
La multitarea preemptiva (multitarea real) es un tipo de multitarea
en la cual el sistema operativo no
esperaaqueunhilocedavoluntariamente
el procesadoraotroshilos.Enlugardeeso,elsistema
operativo interrumpe un hilo después de que haya estado ejecutándose durante un tiempo establecido,
denominado quantumde tiempo, o cuando un hilo con una prioridad más alta (como
el correspondiente a
una entrada del usuario) está listo para
su ejecución. Esta multitarea evita que un hilo monopolice el
procesador, y permite que otros hilos utilicen suparte del tiempo de ejecución compartido. El ejecutor de
Windows NT es un sistemaconmultitareareal
o preemptiva,comosuentornoWindowsprincipal
denominado subsistemaWin32. En las versiones de Windows no preemptivas, basadas en MS-DOS, un
hilo tenía que ceder voluntariamente el control del procesador para que pudiera haber multitarea. Las
aplicaciones primitivas o con mal comportamiento podían acumular mucho tiempo de procesador,
en
detrimentodeotrasaplicaciones
o delsistemaen
su totalidad.Algunasvecesdoshilosnecesitan
comunicarse entre ellos para coordinar sus actividades hacia la consecución
un de
objetivo común.
Eltérminohilo
es relativamentenuevo).Puestoquecadaprocesoteníaunespaciodedirecciones
o unarchivo
separado, dos procesosteníanqueestablecer,
o un áreadememoriacompartida,
compartido, para comunicarse. Las vías de comunicación (pipes) fueron y son utilizadas para llevar a
cabo este tipo de comunicación interprocesos. Ver
la figura sig .-
24
Figura 4-5. Compilación en dos procesos
..
Utilizar dos procesos (cada uno con un hilo) para preprocesar y compilar un programa sería más rápido
queemplearun Únicoproceso,debidoaqueunsistemaoperativomultitareapuedeentremezclar
la
ejecución de estos dos hilos. Tan pronto como el preprocesador deja algo en
el buffer compartido, el
compilador puede comenzar su trabajo. Las aplicaciones como estas que pueden ejecutarse en dos
o
más lugares se denominan aplicaciones concurrentes.
La concurrencia en una aplicación es útil para una máquina con un solo procesador pero es mucho más
útil en un ordenadorconmásdeunprocesador.Conmúltiplesprocesadores,
el preprocesadoryel
compilador,utilizandoelmismoejemplo,puedanejecutarseconcurrentemente.
Si unaaplicación
concurrente está bien diseñada y minimiza
la reserva de recursos que hacen sus hilos, se puede ejecutar
figura sig
másrápidoenunordenadormultiprocesadorqueenunoconun
Único
procesador.
La
comparada con la figura ilustra estas
r---------
;,
r
,..
1,
.*
Hecho
......
Hilo 1
......
........
. _
......
Multitarea
Unsistemaoperativomultiprocesoesaquélqueestáespecialmentedisetiadoparaejecutarseen
ordenadoresconmásdeunprocesador.Unsistemaoperativoconmultiprocesosimétrico
(SMP), tal
comoWindowsNT,puedeejecutarcódigodesistemaoperativoycódigo
deusuarioencualquier
procesador disponible.
Cuando hay más hilos a ejecutar que procesadores para ejecutarlos, un sistema operativoSMP también
los hilos en espera.
realiza multitarea, dividiendo el tiempo de cada procesador entre todos
25
,'
7..
Multihilo
No siempre es eficiente utilizar dos procesos para lograr concurrencia. En algunos sistemas
UNlX por
ejemplo, cuando un proceso crea o se bifurca en otro, el sistema tiene que copiar todo el contenido del
espacio de direcciones del primer proceso al espacio de direcciones del nuevo proceso. Para grandes
espaciosdedireccionesestaoperaciónconsumemuchotiempo.
Es más, los dosprocesosdeben
establecer un caminoparacompartirdatos,que
es untrabajorápidoyfácil
enalgunossistemas
operativosperonoenotros.WindowsNTresuelveestosproblemasproporcionandomecanismos
convenientes para la compartición de memoria: utilizando memoria de "copia-si-hay-modificación" para
evitar copiar un espacio de direcciones entero de un proceso a otro, e implementando una característica
de paso de mensajes optimizada localmente. Incluso con tales mejoras, hay veces que
es más ventajoso
un mecanismo distinto a
la concurrencia, denominado procesos Multihilo.
Como se dijo anteriormente, el término hilo se refiere al movimiento de un procesador a través
de las
instrucciones de un programa; cadahilo representa un contadorde programa independiente. Un proceso
Multihilo tiene doso más hilos (y contadores de programa) dentrode un mismo proceso, compartiendoel
mismo espacio de direcciones,los handles a objetos, y otros recursos.
Cada proceso de Windows NT se crea con un Único hilo. Un programa puede crear hilos adicionales en
el proceso a medida que los necesita. Estos hilos adicionales se suelen emplear para las operaciones
asíncronas de un programa (es decir, las operaciones que pueden ocurrir
en cualquier momento sin
afectar al flujo principal del programa). Las operaciones
de E/S suelen encajar en esta categoría.
Utilizando un hiloparaejecutar el programaprincipalycreandootroparacontrolar
el dispositivo, el
sistemapuedeplanificarambasoperacionesindependientemente
en unprocesador,yproporcionar
multitarea. AI ejecutarse
en
un
ordenador
multiprocesador,
los dos
hilos
pueden
ejecutarse
simultáneamente sinla sobrecarga de crear un segundo proceso e inicializar su espacio de direcciones.
Para lograr concurrencia empleando hilos, un programa crea dos
o más hilos para ejecutar distintas
partes de su programa dentro delmismo proceso. En lafigura 4-7 se muestra un compilador Multihilo.
"
. .. ..........
.,I:
Compilador Multihilo
Los procesosMultihilologran la concurrenciasinlasdesventajas
de utilizardosprocesos.Loshilos
requieren menos sobrecarga y sonmás rápidos de crear que los procesos. (Algunas veces se les llama
"procesos ligeros" por esta razón). También, debido a que todos los hilos de un proceso comparten la
26
misma memoria, excepto sus pilas (stacks) y el contenidode los registros, no se requieren mecanismos
especiales de paso de datos. Un hilo simplemente escribe su salida en memoria, y otro hilo la lee como
entrada. De forma similar, todos los recursos del proceso (objetos) están igualmente disponibles para
todos los hilos del proceso.
El kernel de Windows NT utilizaunesquemadeprioridadesparaseleccionarelordenenelcualse
ejecutan los hilos. Los hilos de prioridad más alta se ejecutan antes quelos hilos de prioridad más baja, y
el kernelcambialaprioridaddeun
hilo periódicamenteparaasegurarsedequetodos
los hilosse
ejecutarán.Unaaplicaciónpuede
permitir quesushilosseejecutenencualquierprocesadordeun
ordenador multiprocesador, o puede limitar su ejecución a un subconjunto de procesadores.
La creación de un proceso Multihilo es una solución ideal para aplicaciones de servidor (tales como los
subsistemas protegidos de Windows NT) que reciben peticiones de clientes y ejecutan el mismo código
para cada petición..La Figura ilustra este punto.
RocaKI&rrvMor
Servidor rnultihilo
Enestafigura,dosprocesosclientes(cadaunoconun
Únicohilo,representadoconuna
línea
serpenteante) utilizan el mecanismo de paso de mensajes para enviar un mensaje al proceso servidor.
y atender a los clientes.
Hay múltiples hilos de servidores disponibles para ejecutar código de servidor
27
Servidor multihilo
Servidor Multihilo
Nótese que escribir aplicaciones Multihilo requiere gran cuidado, debido a
quetodos los hilos de un
proceso
tienen
acceso
completo
al espacio
de
direcciones
del
proceso.
Los hilos
pueden
accidentalmente interferirse unos con otros, leyendo
o escribiendo en memoria cuando no deben.
Tal no es el caso de las aplicaciones que utilizan dos procesos para lograr la concurrencia y que se
comunican explícitamente a través de mensajes o vías de comunicación (pipes). Un proceso no puede
destrozar o corromper, ni accidental ni deliberadamente, el espacio de direcciones de otro proceso. Esta
es la razónporlaque
los subsistemasprotegidosdeWindowsNTseimplementancomoprocesos
servidoresindependientes(yporlaquerecibenelnombredesubsistemas"protegidos").Cada
subsistemamantiene el controlsobre suespacio de direccionesprivado,sininterferenciasdeotros
subsistemas o procesos de usuario. Dentro de un servidor, sin embargo, tiene ventajas que múltiples
hilos puedan ejecutar y compartirlos mismos recursos yel mismo espacio de direcciones.
Las dos técnicas para lograr la concurrencia, utilizar procesos múltiples e hilos múltiples dentro de un
proceso, son muy útiles. Los objetivos de la aplicación determinan qué estructuraes más beneficiosa en
un programa particular.
A continuación se repasan algunos términos relativos a la implementación de procesos de un sistema
operativo:
Multitarea. Dividir el tiempo del procesador entre los hilos que esperan a ejecutarse. Crea la ilusión de
que todos los hilos se ejecutan simultáneamente.
Multiproceso. Ejecutarel mismo código de sistema operativo en ordenadores con un sólo procesador y
en ordenadores multiprocesadores. Un sistema operativo con multiproceso simétrico ejecuta el código
del sistema y el código de usuario
en todos los procesadores disponibles.
Multihilo. Soportarmás de un hilo dentro de unÚnico proceso.
Un sistema operativo avanzado debería suministrar todas estas características
(Windows NTlo hace).
28
\
Hlk
swvkw
Objeto hilo
Un proceso de WindowsNT permanece inanimado hasta que tiene un hilo que puede ser asignado para
la ejecución. Una vez que un proceso tiene un hilo, ese hilo puede crear hilos adicionales.
Como los procesos, los hilos del ejecutor de Windows NT están implementados como objetos, y son
creados y eliminados por el administrador de objetos. El administrador de procesos define el cuerpo de
los objetos hilo y los servicios del sistema utilizados para manipular los hilos una vez que éstos han sido
creados. En
la figura que se representael objeto hilo.
La tabla describe los atributos del objeto hilo.
Propósito
Atributo
ID de cliente
__-
__..____
Valor imico que identifica a un hilo cuando invoca a un
servidor
Contexto de hilo Conjunto de valores deregistro y otros datos vol~tilesque
definen el estado de la ejecucibn de un hilo
Prioridad
dinhmica
Prioridad de la ejecuci6n del hilo en un momento
determinado
Prioridad base
Limite m& bajo de la prioridad d
d
im
c
ia del hilo
Afinidad con el
procesador del
hilo
Conjunto de procesadores en los cuales puede ejecutarse el
hilo, es un subconjunto de la afinidad con el procesador del
proceso del hilo
Tiempo de
ejecucibn del
hilo
Cantidad acumulativa de tiempo enla que un hilo se ha
ejecutado en modo usuario y en modo kernel
Estado de alerta
Flag que indica si el hilo debería ejecutar una llamada de
procedimiento asincrono (APC, asynchronowprocedure
call)
Cuenta de
suspensidn
Ntunero de veces que la ejecucidn del hilo ha sido
suspendida sin ser reanudada
Token de
imitacibn
Token de acceso temporal que permite a un hilo llevar a
cabo operaciones en nombre deotro proceso (utilizado por
los subsistemas)
Puerto de
teminaci6n
Canal de commicaci6n interprowso al cual envía un
mensaje el adminisbadm de procesos cuando el hilo
termina ( u t i l i ~ d opot los subsistemas)
Estado de salida Raz6n de la terminacidn de un hilo
del
hilo
~.
~-
~
Tabla 4-2. Atributos del objeto hilo
Como se puede ver,algunos de los atributos del objeto hilo se parecenasusanálogosdelobjeto
proceso. De hecho, ciertos atributos, tales como
la afinidad con el procesador del
hilo y la prioridad
dinámica, realmente restringen o cualifican los valores aplicados al proceso en su totalidad. Por ejemplo,
cada hilo tiene una afinidad con el procesador que es un subconjunto (igual o menor) de la afinidad con
el procesador asignada a su proceso. Por lo tanto, diferentes hilos dentro de un proceso pueden
ser
forzados a ejecutarse en diferentes subconjuntos
de procesadores.
De forma parecida, cada hilo tiene una prioridad de ejecución base que oscila desde dos niveles por
debajo de la prioridad base del proceso, hasta dos niveles por encima de ella, como se muestra en
figura
30
la
15
14
13
12
11
10
PrlorMsd
9
6
7
6
5
4
3
2
+
p
o
d
r
i
r
i
a
d
b
a
s
e
d
e
p
l
r
o
c
e
s
o
1
O
figura. Relaciones de prioridad2
En dichafiguraseobservaquecadahilotambiéntiene
una prioridaddinámica quecomienzaen la
prioridad base del hilo y varía de forma ascendente dependiendo del tipo de trabajo que el hilo esté
realizando. Por ejemplo, sí un hilo está respondiendo a la entrada de un usuario, el kernel de Windows
NT aumenta su prioridad dinámica; a medida que ese proceso llega a su fin, el kernel baja gradualmente
su prioridad dinámica a su prioridad base. AI bajar la prioridad base de un hilo y aumentar la prioridad
base de otro hilo, los subsistemas pueden controlar las prioridades relativas de los hilos dentro de un
proceso. La prioridad base del proceso controla cuánto pueden subir o bajar las prioridades de los hilos
de ese proceso y lasde los hilos de otros procesos relacionados con
estos.
Esta figura sólo ilustra los hilos de prioridad variable, que se ejecutan en prioridades desde O hasta 15.
Los hilos de tiempo real se ejecutan con prioridades desde
16 hasta 31.
AI igual que las prioridades de los hilos, existen otros atributos en el objeto hilo que permiten al sistema
operativo (y particularmente a los subsistemas de entorno) controlar los hilos que crea. Por ejemplo, el
atributocontextodehilocontienetodo
lo queelsistemaoperativonecesitasaberparacontinuarla
ejecución de un hilo después de que haya sido interrumpida (a saber, los valores almacenados en los
registros del procesador yen las pilas modo kernel y modo usuario del hilo).AI suspender un hilo, alterar
su contexto modo usuario, y después restaurar
el hilo,un subsistema de entorno puede modificar el
comportamientodelhilo
o comenzarsuejecución
en unlugardiferentedeaquél
enquefue
suspendida.(Los depuradores de modo usuario pueden utilizar también esta característica para controlar
la ejecución de los hilos).
"Alertar un hilo", es otro servicio proporcionado por los objetos hilo, es una característica que permite a
un subsistema de entorno u otras partes del sistema operativo, avisar asincrónicamente a algún hilo de
que debe ejecutar un procedimiento especial.Un hilo que espera ser alertado puede llamar un
a servicio
para comprobarsi hay pendiente una alerta.
El puerto de terminación de un hilo es similar a una excepción de proceso y alos puertos de depuración.
El puerto de terminación permite que un subsistema de entorno sea avisado cuando termina un hilo en
uno de sus procesos clientes. Puede entonces actualizar la información que mantenga sobre el
sobre el procesoen el cual reside el hilo.
El servicio actualizar hilo permite a
un hilo adquirir rápidamente un handle a
31
hilo o
sí mismo, sin abrir uno
específicamente. Puede utilizar el handle, por ejemplo, para recuperar información sobre
éI mismo, tal
como su tiempo de ejecución total, su prioridad de ejecución actual, y su afinidad con el procesador.
Sincronizacidn
Cuandoseejecutaunaaplicaciónconcurrente,sushilosrequierenamenudounamanerade
comunicarseentreellosparacoordinarsusactividades.Elpasodedatosatravésdevíasde
comunicación(pipes)es
un
ejemplo
de
comunicación.
Sin
embargo,
la
forma
más
simple
de
comunicación se denomina sincronización. La sincronización se refiere ala habilidad de un hilo de parar
voluntariamente su ejecución y esperar hasta que otro hilo lleve a cabo alguna operación.
Todos los sistemas operativos con multiproceso o multitarea deben proporcionar alos hilos una manera
de esperar a que otro hilo haga algo (por ejemplo, liberar una unidad de disco, o terminar de escribir en
un bufferde memoria compartida).
El sistemaoperativodebetambiénpermitirqueunhiloindiqueaotroshilosquehaterminadotal
operación. Una vez avisado, un hilo que esperaba puede continuar su ejecución.
En el ejecutor de Windows NT, estas características de espera e indicación están implementadas como
los que un hilo
parte de la arquitectura de objeto. Los objetos sincronización son objetos del ejecutor con
puede sincronizarsu ejecución. Los objetos sincronización incluyenlos siguientes:
Objetos proceso
Objetos hilo
Objetos archivo
Objetos evento
Objetos parde eventos
Objetos semáforo
Objetos timer (temporizador)
Objetos mutante
Los primeros tres objetos listados sirven a otros propósitos además la
desincronización, pero los últimos
cinco objetos sólo existen para soportar dicha sincronización. Juntos, estos objetos del ejecutor permiten
a los hilos coordinar sus actividades con una variedad de sucesos del sistema, aplicando diferentes
reglas según las situaciones.
los dos estados posibles siguientes: el
En un momento dado, un objeto sincronización está en uno de
estado señalado y el estado no señalado. El estado señalado se define de manera diferente según los
objetos. Un objeto hilo está en el estado no señalado durante su existencia, y el kernel de NT lo coloca
en el estado señalado cuando termina. De forma parecida, el kernel configura un objeto proceso en
el
estado señalado cuando termina el último
hilo del proceso. En contraste, el objeto Procesos e hilos timer,
como un cronómetro, es configurado para "dispararse" en cierto momento,y cuando el tiempo expira, el
kernel lo coloca en el estado señalado.
los serviciosdeesperadelsistema
Parasincronizarseconunobjeto,un
hilo llama aunode
proporcionadospor el administradordeobjetos,pasandounhandlealobjetoconelquequiere
sincronizarse. El hilo puede esperar a uno o varios objetos, y puede también especificar que su espera
deberíasercancelada si nofinaliza enunacantidad de tiempodeterminada.Siempreque
el kernel
coloca un objeto enel estado señalado, comprueba si hay algún hilo que esté esperandoal objeto. Si es
así, el kernelliberauno
o m& de los hilos de suestadodeesperaparaquepuedancontinuar
32
ejecutándose.
AI elegir un mecanismo de sincronización, un programa debe tener en cuenta las reglas que gobiernan el
comportamiento de los distintos objetos sincronización.
El que la espera de un hilo finalice cuando un objeto sea puesto en estado señalado, varía con el tipo de
objeto que elhilo está esperando, como ilustra latabla
Tipo de
objeto
Se coloca
en
señalado
cuando
Efecto sobre los
hilos que esperan
el
estado
Proceso
Termina
iiltimo
el
hilo
Todos liberados
Hiloliberados
Todos
hilo
Termina
el
Fichero
Se completan las operaciones
de US
Evento
Elestablece
hilo
evento
Todos
elliberados
Par deeventcs
El cliente o el hiloservidor
Otro hilodedicado
dedicados
establecen
el
evento
liberado
SemAforo
LasemAforo
cuenta
del
Todos
liberados
llega a cero
Timer
alcanza
Se tiempo
el establecida
Todos
o expira el intervalode tiempo
Mutante
Elmutante
libera
hilo
al
T ~ O liberados
S
liberados
Un liberado
hilo
..
Tabla. Definiciones del estado señalado
Cuando un objeto se coloca en el estado señalado,los hilos que esperan son generalmente liberados de
susestadosdeesperainmediatamente.Porejemplo,unobjetoeventoseutilizaparaanunciar
la
ocurrencia de algún evento. Cuando el objeto evento se coloca en
el estado señalado, todos los hilos
que esperan a ese evento son liberados. La excepción es cuando un hilo está esperando a más de un
objetoalmismotiempo;
tal hilotendríaquecontinuaresperandohastaque
los objetosadicionales
alcanzaran el estado señalado.
los
En contraste con el objeto evento, un objeto mutante (que se hace visible como un objeto mutex para
programadoresdeWin32)tieneundominioasociadocon
él. Seutilizaparaconseguiracceso
mutuamenteexcluyenteaunrecurso,y
sólo un hilo en un momento determinado puede sostener el
lo colocaenelestadoseñaladoyentonces
mutante.Cuandoselibera
el objetomutante,elkernel
selecciona uno de los hilos que esperan para que se ejecute. El hilo seleccionado por el kernel adquiere
el objeto mutante, yel resto de los hilos continúan esperando.
los programadores de
Las semánticas de sincronización del ejecutor de Windows NT son visibles para
Win32atravésde
las funcionesdel API WaitForSingleObjectOy WaitForMultipleObjectsQ, queel
subsistemaWin32implementaalllamaraserviciosdelsistemaanálogossuministradosporel
administrador de objetos de Windows NT. Un hilo de una aplicación Win32 puede sincronizarse con un
objeto proceso, hilo, evento, semáforo, mutex,o archivo de Win32.
Alertas y llamadas deprocedimientos asíncronos
En algunas situaciones, es útil permitir a un hilo que notifique asincrónicamente a otro hilo que pare
33
lo
que
esté
haciendo.
Esta
operación,
denominada
alerta
en
el
ejecutor
de
Windows
NT,
está
estrechamente relacionada con la sincronización.
Supóngase que una aplicación de base de datos está respondiendo a una operación de consulta. Podría
o en uno remoto. Para que no
no saber si los datos que necesita están disponibles en un ordenador local
haya posibilidad de fallar, poneen marcha dos hilos; uno busca los datos localmente, y el otro busca los
datos en la red. Tan pronto como un hilo encuentra los datos, alerta al otro hilo. En respuesta, al hilo
alertado detienelo que está haciendo y regresa, listo para trabajar en una nueva tarea.
Lacapacidad de alertano esde uso general enWindowsNT,
exceptoencombinaciónconotro
mecanismo de notificación
asíncrona,
denominado
llamada
de procedimiento
asíncrono
(APC,
asynchronous procedure calO. De vez en cuando, el sistema operativo necesita notificar a un hilo que
debe llevar a cabo alguna acción. A veces, el hilo debe hacer el trabajo después
de que ocurra un
evento. Por ejemplo, un usuario puede decirle a Windows que
le envíe un mensaje para recordarle la
horadeunareuniónprogramada.EnWindowsNT,estetipodenotificaciónasíncrona
es ejecutada
empleando una APC en modo usuario (es decir, el subsistema Win32 llama al ejecutor de Windows NT
para establecer un contador y proporciona un puntero a un procedimiento (una APC) que enviará un
mensaje al usuario.
Cuando expira el tiempo, el ejecutor de Windows NT insta aun hilo del subsistemaWin32 a que ejecute
el procedimientoAPC. Posteriormente, el hilo de Win32 prosigue con
lo que estaba haciendo.
Aunque algunas operaciones asíncronas son generadas por los programas de modo usuario,la mayoría
son generadas por el sistema operativo, y particularmente por el sistema de E/S de Windows NT. Dicho
sistema es asíncrono, lo cual significa que el que llama puede poneren marcha una operación de E/S y
luego hacer otro trabajo mientras un dispositivo completa la operación. Cuando
el dispositivo termina de
transferir los datos, el sistema de E/S debe interrumpir lo que quiera que el hilo solicitante estuviera
haciendo y copiar los resultados de la operación de E/S al espacio de direcciones del hilo.El sistema de
E/S utiliza unaAPC de modo kernel para llevar a cabo esta acción.
Las APC de modo kernel y modo usuario varían en diversos aspectos, pero hay una diferencia que es
especialmente notable. UnaAPCde modo kernel puede interrumpir la ejecución de un hilo de modo
usuario en cualquier momento y obligarle a ejecutar el procedimiento. Ordinariamente, esto sucede de
maneratransparenteparaunaaplicación.Ocurreunainterrupciónsoftware
y, comounainterrupción
hardware, el sistema simplemente "roba" el hilode la aplicación durante un breve periodo de tiempo y
lo
utiliza para ejecutarel procedimiento APC.
UnaAPC
de modousuario,por
el contrario, sólo puedeserentregadaenpuntosdecontrol
determinados, cuando el hilo que
la solicitó está preparado para ejecutarla.
Windows NT suministrados maneras en las que un hilo puede controlar cuando recibe una notificación
asíncrona de modo usuario (una alerta
o una APC de modo usuario).El hilo puede, o llamar a un servicio
que su espera
nativo para comprobarsi ha sido alertado, o esperar a un handle de objeto, especificando
puede ser interrumpida por una alerta. En cualquiera de los casos, si una APC de modo usuario está
pendientedelhilo, el kernel de Windows NT lo libera,yelhiloejecuta
el procedimiento.Elkernel
entonces reanudala ejecución delhilo desde el punto en el cual fue interrumpido.
Las alertas y las APC del API de Win32 son visibles a través de sus funciones de E/S extendidas (sólo
Windows NT). Las rutinas del API ReadFileExO y WriteFileExO permiten a un hilo leer o escribir en un
archivoasincrónicamente,proporcionandounafuncióndeAPCque
el hilo ejecutarádespuesde
WaltForMuItipleObjectsExQ
completar la operación de E/S. LasfuncionesWaitForSingleobjectExQy
permiten al hilo esperar en un estado de alerta, en algún punto, tras resolver
la llamada de E/S.
El subsistema POSIX no proporciona las características de APC a las aplicaciones POSIX, pero utiliza
las APC de modo kernel para emular la liberación de señales POSIX en procesos POSIX.
Deforma
similar, subsistemas de entorno futuros podrán utilizar las
APC para implementar otras características de
34
notificación asíncrona. El asuntodelasAPCreapareceendiscusionesposterioressobreelkernelde
Windows NT, que controla el procesamiento de las APC y el sistemaE/S,
de que las utiliza mucho.
Estructura de procesos
Losprocesossonestructurasdinámicas,creadasyeliminadasdurantelaejecucióndelsistema
operativo. Un proceso crea otro, y éste puede a su vez crear otros.
El término estructura de proceso
hacereferenciaacómounsistemaoperativocrea,manejaydescartaprocesosehilos,ycómoun
proceso se relaciona con otros durante su existencia.
los
LosprogramadoresqueescribenaplicacionesparaWin32,MS-DOS,OS/2,0POSIX,nuncaven
procesosehilosnativosdeWindowsNT.
El subsistemaWin32yotrossubsistemasescudana
los
programadores de ellos, creando entornos a medida en
los cuales un programador de Win32 sólo ve
procesos tipo Win32, un programador de POSIX sólo ve procesos tipo POSIX, etc. Sin embargo, son las
características internas de la estructura de procesos del ejecutor de Windows NT las que permiten que
estos entornos dispares coexistan en el mismo sistema operativo.
Requisitos del subsistema de entorno
Unade las principalestareasdeunsubsistemadeentornodeWindowsNTesemularelAPIque
esperan las aplicaciones cliente del subsistema (los API de Win32 o POSIX, por ejemplo). Otra función
importante es implementar las estructuras de proceso requeridas por dichas aplicaciones. Mark Lucovsky
y Steve Wood, que diseñaron el POSIX original de Windows NT y los subsistemas de Procesos e hilos
entornodeOS/2,consideraroncuidadosamente
las característicasque éstos y futuros subsistemas
requerirían para emular sus respectivos API. Ellos identificaron las siguientes características relativas a
los procesos, como las que podían ser requeridas por un entorno típico:
Creación y terminación de procesos e hilos
Registro y mantenimientode las relaciones entre procesos
Realización de operaciones (locales y de
red) en nombre de un proceso cliente
Lectura, escritura y otras acciones a llevar a cabo en el espacio de direcciones de un proceso cliente
Detención de un hilo de cliente, posibilidad de alteración de su contexto de modo usuario y restauración
del mismo
Captura y manejo de excepciones generadas por procesos cliente
La creación de un proceso, primer ítern de la lista, es una operación muy corriente en un subsistema, e
ilustra cómo los subsistemas de entorno realizan su trabajo utilizando servicios de proceso nativos. La
figura 4-77 representa la relación entre la creación de un proceso desde un programa de aplicación y la
creación de un proceso del ejecutor de Windows NT.
Unaaplicacióncliente(Win32,POSIX
o OS/2enesteejemplo)creaunprocesoutilizandoelAPI
adecuadoparasuentorno.Lainvocacióna
la creacióndeunprocesoestransmitidaatravésdela
característica de paso de mensajes del ejecutor de Windows NT al servidor adecuado, el cual llama al
administrador de procesos para crear un proceso nativo.
Tras crear un proceso nativo, el administrador de procesos devuelve un handle a un objeto proceso.
subsistema de entorno toma el handle y construye
el valor de devolución adecuado esperado por la
aplicación cliente original..€n la figura 4-72 se muestra lo que devuelve cada subsistema.
El
Nótese que un subsistema de entorno debe hacer algún trabajo adicional después de recibir un handle
de proceso del administrador de procesos y antes de devolver un resultado a
la aplicación cliente. Por
ejemplo, el subsistema puede llamar al administrador de procesos otra vez con el fin de crear un hilo
35
para el nuevo proceso.
Como muestra la figura , diferentes entornos de sistemas operativos devuelven diferentes resultados
cuando se crea un proceso. De forma parecida, los sistemas operativos, varían en cuanto a las reglas y
convenciones que adoptan para la administración delos procesos. Una de las diferencias fundamentales
entre los entornosdesistemaoperativodisponibles
en Windows NT es sucapacidadparasoportar
procesosMultihilo.Win32yOS/2,porejemplo,permitenmúltipleshilosporproceso,mientrasque
POSIX, MS-DOS, y el entorno de16 bits de Windows
Otro ejemplo de las diferencias entre entornos de sistema operativo es la forma en que los procesos de
cada subsistema se relacionan unos con otros.
POSIX y OS/2,porejemplo,organizansusprocesos
clienteenjerarquías,
o árbolesproceso.Cadaunodeéstoscreaunprocesoinicialquecrea
los
denominados procesos hijo.Los procesos hijos, a suvez, crean sus propios procesos hijo.
Exceptopara el procesoinicial,cadaprocesotieneunpadre
características. La figura4-1 3 ilustra estas relaciones.
del cualheredaciertosrecursosy
POSIX y OS/2 utilizan las relacionesentre sus procesos cliente para manejarlos. Por ejemplo, cuando un
proceso POSIX o un proceso OS/2 finaliza, el sistema Aplicación
Creaci6n de un proceso
. Creación de un proceso
El S.O. operativo sigue la pista y finaliza todos
los procesos que cuelgan de él. Además, un sistema
operativotipoPOSIXmantieneotrasclasesderelacionesentreprocesos,incluyendogruposde
procesos (colecciones de procesos relacionados) y sesiones (colecciones de grupos de procesos). Los
36
sistemas POSlX implementan una detallada semántica de control de procesos
procesos y sesiones, que no se contempla en otros sistemas operativos.
relativa a los grupos de
El ejecutor de Windows NT debe permitir que cada uno de sus subsistemas de entorno soporten las
relaciones de procesos que requieran. Aplicación
Figura Retorno tras la creación de un proceso
y elusodeprocesosdeunÚnicohilo
Ademásde las diferenciasenlaagrupacióndeprocesos
procesos Multihilo, los subsistemas de entorno difieren en las reglas que emplean para crear nuevos
procesos.La tabla 4-4 detallaalgunasde
las diferenciasentrelasestructurasdeprocesodetres
entornos de sistema operativo soportados por Windows
NT.
Jerarquía de proee;sos de OS2 o POSIX
Windows
(32 bits)
POSIX
os12
Figura Jerarquía de procesos de
OS/2 o POSlX
37
o
Tabla. Semánticas de la creación de procesos
Continuación
Windows
(32 bits)
X¡lOS
POSIX
0512
Crea un hilo y
Crea un hilo pero
Crea un hilo y
soporta multihilo no soporta multihilo soporta multihilo
Tabla. Continuación
Comosepuedever,
la jerarquíasdeproceso,
la inicializacióndelespaciodedirecciones,
los diferentes entornos.
identificación de proceso varían en
y la
Aunque algunas de las diferencias parecen secundarias,
el administrador de procesos debe soportar
todos los entornos igualmente bien y debe permitir que sus diferentes estructuras de proceso coexistan
sin conflicto.
38
Estructura de proceso nativo
AI diseñar la estructura de proceso nativo de Windows NT, los desarrolladores rápidamente se dieron
cuentadequeincluso
si fueraposible,proporcionartipos
múltiples deestructurasdeprocesoenel
sistema
operativo
básico
daría
como
resultado
un
sistema
enormemente
complejo
caótico.
y
Afortunadamente,lamayoríade
los detallespertenecientesalaestructuradeprocesonoson
fundamentales para el funcionamiento del sistema operativo subyacente.
Las estructuras de proceso podían ser implementadas enlos subsistemas de entorno de modo usuario
fuera del ejecutor de Windows NT. Para llevar a cabo esto, la estructura de proceso del ejecutor no hace
cumplirningúnconjuntodereglasquepuedaexcluiraotroconjuntodereglas.Enlugar
deeso,
suministraunconjuntobásico
demecanismosque los sistemaspuedenutilizarcomofundamentou
origen para implementar sus propias estructuras de proceso. Como ejemplo de esta idea, la
tabla 4-5
detalla el flexible proceso de creación de reglas del ejecutor de Windows NT.
El ejecutor contempla la creación de un proceso como la creación de un objeto, nada más. Cuando el
administrador deprocesosfinaliza
la creacióndeunnuevoproceso,devuelveelhandledelnuevo
proceso al subsistema de entorno. El subsistema es responsable de llamar al administrador de procesos
para crear un hilo en el proceso.
El administrador de procesos de Windows NT no registra qué procesos crearon otros procesos. Por lo
tanto, para emular las relaciones de procesos únicas, requeridas por sus aplicaciones, cada subsistema
de entorno mantiene registros de los procesos cliente que ha creado y las relaciones que existen entre
ellos.
Herencia El que llama especifica un padre desde el cual el nuevo proceso hereda los handles de objeto
que fueron abiertos con el atributo de herencia Inicialización del lnicializa el espacio de direcciones del
nuevo procesó espacio de con un programa ejecutable o como una copia del direcciones espacio de
direcciones del padre Identificación de Devuelve un handle de objeto de Windows
NT proceso para el
nuevo proceso Hilos No crea un hilo en el nuevo proceso automáticamente, pero soporta Multihilo Tabla
4-5. Semánticas de creación de procesos nativos de Windows NT
Administración de procesos cliente
Un proceso nativo de Windows NT debe recibir un conjunto mínimo de recursos, además de un hilo, para
poder llevar a cabo cualquier trabajo. Volviendo a
la figura 4-2, se observa que un proceso tiene un
Token de acceso, diversos contenidos en el espacio de direcciones, y handles a objetos.
Estos recursos,
más cuotas específicas de proceso y otros parámetros, son en su totalidado en parte heredadas de otro
proceso (un "proceso padre").
El término "proceso padre" se encierra entre comillas debido ala noción única que tiene
Windows NT de un padre asignable. Considérese ahorafigura
la
39
el ejecutor de
“r’q
.
. Asignación de un procesopadre
En esta figura,una aplicación POSlX llamaal subsistema POSlX para crearun nuevo proceso POSIX.El
subsistema, también un proceso, llama al ejecutor de Windows
NT para crear un proceso nativo. Debido
a que el subsistema POSlX está actuandoen nombre de la aplicación cliente, el nuevo proceso debería
heredar sus recursos del cliente, no del subsistema. Lo mismo ocurre en aplicaciones Win32 y OS/2 al
crear nuevos procesos. Para permitir a los subsistemas de entorno emular la semántica de herencia de
procesosquesusaplicacionesrequieren,elservicio
de creacióndeprocesosdelejecutorpermite
opcionalmente al que llama(el subsistema en este caso) especificar el padre del nuevo proceso.
El nuevo proceso nativo de Windows NT hereda del padre el Token de acceso, los límites de cuota, la
prioridad base,y la afinidad por defecto con el procesador.
También hereda los handles de la tabla de objeto del padre que fueron abiertos con una designación de
herencia. El espacio de direcciones del padre también puede ser heredado
si el subsistema lo solicita. El
subsistemaPOSlXutilizaestacaracterísticaparaemular
la funcióndel APIdePOSlXdenominada
forkQ, mientras que los subsistemas Win32 y OS/2 especifican que una imagen ejecutable sea cargada
en el espacio de direcciones del nuevo proceso.
Antes de que un nuevo proceso pueda ejecutarse, debe recibir un hilo. Para
una aplicación Win32 u
OS/2, la creación de un hilo no es considerada una operación independiente de la creación de un nuevo
de creación de
proceso. Las aplicacionesWin32 y OS/2 esperan queel hilo esté allí listo cuando la rutina
procesosretorne.Sinembargo,enWindowsNTnosecreaelhiloautomáticamente,asíque
los
subsistemas deben llamaral administrador de procesos de nuevo para crear
un hilo en el nuevo proceso.
AI crear un hilo, el administrador de procesos permite que
los subsistemas especifiquen el proceso al
cual pertenece el nuevo hilo. Esto permite al subsistema Win32, por ejemplo, crear un proceso para uno
de sus clientes y luego situar unhilo en el espacio de direcciones de
ese cliente.
Elnuevohilocomienzaejecutándoseen
la prioridadbasedelprocesocliente,en
el conjunto de
procesadores listados en la afinidad con el procesador del cliente, y bajo las restricciones del Token de
acceso
del
Además de la creación de procesos e hilos en nombre de otros procesos, el administrador de procesos
de Windows NT proporciona características que permiten que un subsistema se conecte al espacio de
40
direcciones de un cliente y lea o escriba en éI, reserve y libere la memoria virtual de un cliente, y que
suspenda los hilos de un cliente, altere
los estados de ejecución de los hilos, y los vuelva a pone en
marcha. El subsistema puede también duplicar handles de objeto desde su propia tabla de objetos a la
tabla de objetos del cliente. Además, puede finalizar
los hilos de un cliente así como un proceso cliente.
Estas potentes características proporcionan a
los subsistemasdemodousuariouncontrolqueen
la
mayoría de los sistemas operativos está limitado por el código del sistema operativo de modo kernel.
Dan libertad a los subsistemas de entorno para controlar sus aplicaciones cliente y para establecer un
entorno de sistema operativo para ellas que difiera del entorno nativo del ejecutor de Windows NT.
225933
Prevención de malos usos
La creación de procesos e hilos en nombre de otro proceso, la lectura y escritura en la memoria virtual
de otro proceso, y el control de los hilos de otro proceso, son todas operaciones que no deben hacerse
indiscriminadamente.
Para
prevenir
un
mal
uso,
el
sistema
de
seguridad
de
Windows
NT
(y
concretamente
sus
mecanismos
de
protección
de
objetos)
asegura
que
tales
operaciones
con
controladas cuidadosamente.
los subsistemasdeentornodeWindows
NT,sonsimplementeprocesos
Ensunivelmásbásico,
ordinarios. Como otros procesos, determinan qué derechos de acceso están garantizados
losaprocesos
queelloscrean.Debidoaqueprácticamente
todos los procesosdemodousuariosoncreadospor
subsistemas de entorno, los subsistemas controlan las acciones de todos los procesos de usuario del
sistema.
Por ejemplo, al crear un proceso cliente, un subsistema deniega al cliente la posibilidad de no tener en
cuenta al subsistema y finalizar porsí mismo llamando a un servicio nativo de Windows NT. Si no fuera
así, el proceso podría dejar las estructuras de datos globales del subsistema
en un estado inconsistente,
desbaratando posiblemente otros procesos
que estuvieran bajo el controlde ese entorno.
El subsistema previene de este acciónal no dar al nuevo proceso acceso de borrado de
su propio objeto
proceso en la lista de control de acceso del objeto (ACL). Sin el acceso de borrado, el proceso nunca
puede abrir un handle de objeto que
le permita terminar por sí mismo, y el sistema de seguridad no
permitirá que el serviciode terminación logresu objetivo, a menos que se
le pase un handle válido.
Debido a la forma en que trabaja la seguridad de objetos, a no ser que un subsistema explícitamente
confiera una característica a un proceso cliente, éste
no puede adquirirla. De este modo, el diseñadorde
un subsistema, no necesita pensar en todas las acciones erróneas que un proceso de usuario podría
hacer para prevenirlas. En lugar de eso, es suficiente decidir tan sólo lo que el proceso debería poder
hacer, y garantizar al cliente estas capacidades. En general, esto significa que ningún proceso de modo
usuarioordinariopuedellamarconéxitoaserviciosnativosdeWindowsNT.
Un procesodemodo
API proporcionadas por el subsistema que
lo creó.
usuario sólo puede llamar a las funciones del
Estos mismos mecanismos también evitan quelos procesos de modo usuario finaliceno manipulen otros
procesos. Un proceso sólo puede llamar a aquéllas funciones del API disponibles
en su entorno (Win32o
POSIX, por ejemplo) para manipular a otros procesos. Además,
la capacidad que tiene un proceso de
llamar incluso a aquellos servicios está restringida por sus derechos de acceso
los a
objetos nativos que estaría afectando. Una vez más, al nodar al proceso cliente derechos de acceso
para objetos nativos, un subsistema de entorno puede prevenir al cliente de un mal comportamiento. La
lo garantiza.
arquitectura de seguridadde Windows NT, trabajandosin descanso en modo background,
Conclusiones
Losprocesossonunadivisiónfundamentaldeltrabajoy
los recursos en WindowsNT.Permitenal
sistemaoperativodividir
su laborenunidadesfuncionales,paralograrunautilizacióneficientedel
los procesos enunidadesejecutablesdenominadashilos.Loshilos
procesador.WindowsNTdivide
41
permiten que un Único proceso ejecute concurrentemente diferentes partes de su programa y logre una
mejor utilización del procesador, especialmente
en ordenadores multiprocesador.
Unprocesoconstadeunespaciodedireccionesy
Comparten cuando se ejecutan.
un conjunto de recursosquetodossushilos
Laestructuradeprocesosdelejecutor
deWindowsNTesprimitivayflexible,permiteque
los
subsistemas deentornoconstruyancualquiersemánticaquerequieranparadarsoporteasus
aplicaciones clientes. Tienen libertad para establecer jerarquíasde procesos, implementar una herencia
de procesos, e inicializar el espacio
de direcciones de sus clientes cuando vean la necesidad.
Pueden tambi6n controlar sus procesos cliente de otras formas, llevando a cabo acciones en nombre de
sus clientes, y leyendo y escribiendolaen
memoria virtual
de sus clientes. Todas estas características son seguidas por el sistema de seguridad, que comprueba
los derechos de acceso que tiene un proceso sobre los objetos que está intentando manipular antes de
permitir tales operaciones.
la
El prbximo capítulose centra conmás detalle en la estructura delos subsistemas de Windows NT y en
característicadepaso de mensajesde la LPC, quepermitequeprocesosclienteysubsistemasse
comuniquen unos con otros.
42
MANEJO DE MEMORIA EN WINDOWS NT
Enalgúnmomento,
los computadorasfueronsistemasdeunÚnicoprocesoyunÚnicohilo.Los
programadores, tanto los experimentados como los aspirantes, tenían que reservar tiempo para trabajar
desdeunaconsoladelsistema.Elprogramadorera
el sistemaoperativo,responsabledecargar
manualmente un programa en la memoria utilizando conmutadores, cinta de papel,o tarjetas perforadas.
Unavezque el programasehabíacargado,elprogramadorintroducíaunadireccióndecomienzoy
dirigía el procesador a ella para comenzar la ejecución. No era posible cargar y ejecutar más de un
programa a la vez. No es necesario decir que el procesador permanecía ocioso gran parte del tiempo.
Enlatecnologíadesistemasoperativos,
el avancehasignificadoencontrarmanerasdemantener
ocupado al procesador el mayor tiempo posible, y de este modo, conseguir que haga más trabajos. Los
sistemasmultitareacargan
múltiples programasenmemoriaymantienenalprocesadorocupado
dedicándole a todos ellos. Cómo el sistema operativo distribuyela memoria disponible entre los procesos
a la vez que protege el código y los datos de cada proceso frente a los otros procesos, es el tema de la
administración de memoria, y en el caso de Windows NT,
la administración de la memoria virtual.
la
En los primeros días de la computación, no era posible ejecutar un programa que fuera mayor que
memoria física de la computadora. Más tarde, los programadores comenzaron a escribir overlays, que
son programas que pasan parte de su códigoal disco y cargan otras partes del programa en la memoria.
Cuando se necesitaba el código del disco, el programador
lo volvía a cargar en memoria, cubriendo el
código que ya no se utilizaba. Aparte de ser tediosos de programar y difíciles de mantener y actualizar,
los overlaysrequeríanquecadaaplicaciónrecrearaelcódigoqueintercambiabaelcontenidode
la
memoria con el disco.
La memoria virtual (VM) le quitó al programador la responsabilidad de la administración de memoria se
la confirió al sistema operativo. La VM es un sistema centralizado para hacer el intercambio (swapping)
de los contenidos de memoriaal disco cuando la memoria se llena.
Permite que los programadores creen y ejecuten programas que requieran más memoria de la que está
presenteensuscomputadoraes,ysehaconvertidoenlatécnicadeadministracióndememoria
los sistemasoperativosmássimples.
El componentedememoria
estándarparatodos,exceptuando
virtual del ejecutor de Windows NT, el administrador de VM, es el sistema de administración de memoria
nativo de WindowsNT.
Cualquierade
las características deadministracióndememoriaqueunsubsistemadeentorno
proporciona están basadas en el administrador de VM de Windows NT. Fue diseñado e implementado
por Lou Perazzoli, que también era
el coordinador de ingeniería y líder de proyecto de Windows NT.
los siguientes objetivos para el administrador de
Junto con otros miembros del equipo, Lou estableció
VM:
Hacerlo tan portable como fuera posible.
Hacer que trabajara de manera
fiable y eficiente en todos los tamaños de aplicación, sin que fuera
o de un administrador.
necesaria una sintonización por parte de un usuario
Proporcionar características de administración de memoria modernas, tales como archivos mapeados,
memoriadeescritura-sobre-copia,ysoportedeaplicacionesconespaciosdedireccionesgrandesy
posiblemente esparcidos.
Permitir a los procesos reservar y administrar memoria
privada.
Proporcionarmecanismosquesoporten
los subsistemasdeentorno,talescomo
permitir queun
subsistema (con los derechos de acceso apropiados) administrela memoria virtual de un proceso cliente.
43
Hacer un balance entre las necesidades del multiprocesamiento y la velocidad del acceso a memoria.
(Por ejemplo, proteger las estructuras de datos utilizando múltiples niveles de cierres puede incrementar
el paralelismo del administrador
de VM, pero cada cierrecrea una sobrecarga adicional).
La memoria tiene diversas características: una estructura física,una estructura lógica, y una manera en
la cual el sistema operativo traduce (o no traduce) de una estructura a otra. La memoria física está
organizadacomounaseriedeunidadesdealmacenamientode
1 byte.Losbytessenumeran
comenzando con el O hasta la cantidad de memoria disponible en la configuración del sistema (menos
I ) , como se muestra enla figura Fig.
OOBFFFFFh
OOBFFFFEh
003FFFFDh
OOBFFFFCh
0000001 1 h
OOOOOOlOh
OOOOOOOFh
0000006Eh
ooooóóosh
00000008h
00000003h
00000002h
O0000001 h
OOOOOOOOh
Espacio de direcciones físicas
Este conjunto de números (mostrados aquíen forma hexadecimal) abarca el espacio de direcciones
físicas de la máquina.2
La memoria lógica, comúnmente Ilambda memoria virtual, es la forma en la que un programa ve la
la estructura de la
memoria, y en los sistemasoperativosmodernosraramentesecorrespondecon
memoria física. Los sistemas de memoria virtual normalmente adoptan,
o una apariencia segmentada de
memoria o una apariencia
lineal.
Los
primeras
computadoras
es personales
basados
en los
componentesdeIntel,desde
el Intel 8086 hastaelIntel 80286, utilizan unmodelosegmentado.Un
sistema de direccionamiento segmentado dividela memoria física en unidades de direcciones contiguas
(normalmente)denominadassegmentos. Una direccióntípicaincluye
el número de segmento y un
desplazamiento (offset) dentro del segmento.
En contraste, la mayoría de los procesadores RISC, e incluso los recientes procesadores ClSC de Intel,
soportan una arquitectura de direccionamiento lineal.
El direccionamientolinealsecorrespondemáscon
la estructurafísicarealde
la memoriaqueel
direccionamiento segmentado. Las direcciones de un esquema lineal comienzan en O, y llegan, byte a
byte, hasta el límite superior del espacio de direcciones.
Un espacio de direcciones virtuales es un conjunto de direcciones de memoria disponibles para que
la
utilicen los hilosdeunproceso.Cadaprocesotieneunespaciodedireccionesvirtual
Único,
generalmente mucho más grande quela memoria física. Aunqueel número de direcciones físicasde un
computadora particular está limitado por la cantidad de memoria que tiene el computadora (en
la que
cada byte tiene una dirección única), el número de direcciones virtuales está limitadosólo por el número
de bits deunadirecciónvirtual.Cada
BIT puedeestará "1" o a "O"; deestemodo,porejemplo,el
procesador MIPS R4000, que tiene direcciones de32 bits,3 ostenta un espacio de direcciones virtual de
44
232, o cuatro billones de bytes (4 gigabytes), como ilustra la figura Siguiente.
La discrepancia entre un espacio de direcciones físicas y un espacio de direcciones virtuales exige las
dos tareas siguientes de un sistema de memoria virtual:
Traducir, o mapear, un subconjunto de las direcciones virtuales década proceso a localizaciones de
memoria física. Cuandoun hilo leeo
2. Tambib existenmáquinasorientadasapalabra,peroestecapítulo
máquinas orientadas a byte.
sólo hacereferenciaalas
3. El procesador MIPS R4000 realmente proporciona direccionesde 64 bits, pero permite que un sistema
operativo utilice direccionesde 32 o 64 bits. La primera versiónde Windows NT utiliza direcciones de 32
bits para ser compatible con
el procesador Intel 386.
-Jdo
Dl-#*
1-
eso
bytrr
FFFFFFFFh
FFFFFFFEh
FFFFFFFDh
FFFFFFFCh
FFFFFFF4h
FFFFFFF3h
FFFFFFF2h
FFFFFFFlh
4-k
003FFFFFh
OO3FFFFEh
003FFFFOh
003FFFFCh
= 4 M6
__~-
0000001 1 h
O O O O O O l Oh
OOOOOOOFh
OOOOOOOEh
OOOOOOOOh
OOOOOOOCh
OOOOOOO6h
OOOOOOOAh
OOOOOOOeh
00000008h
00000003h
00000002h
00000001h
OOOOOOOOh
Figura. Espacio de direcciones virtuales lineal
escribe en su espacio de direcciones virtuales,el sistema de memoria virtual (parte del cual puede estar
implementado en hardware) utilizaba dirección virtual para encontrar el espacio físico correcto antes de
transferir los datos.
45
Pasar algunos de los contenidos de memoria al disco cuando la memoria está sobre-comprometida, es
decir, cuando los hilos del sistema tratan de utilizar más memoria de la que está físicamente disponible.
La primera tarea, pasar las direcciones virtuales a direcciones físicas; permite que un programa sea
fácilmente colocado en memoria cuando se está ejecutando.
El sistema de memoria virtual mueve partes
del programaal disco y las vuelve a traer la
a memoria, posiblemente colocándolas en un lugar diferente.
Después actualiza las correspondencias entre memoria lógica y memoria fisica, para apuntar a la nueva
localización. La segunda tarea, trasladar
los contenidosdememoriaaldisco,esconsecuenciade
la
primera. Claramente, es imposible para un proceso, direccionar4 GB de memoria cuando sólo hay
4 MB
de memoriafísicapresentes
en la máquina.Lossistemasdememoriavirtuallogran
esta hazaña
utilizandolaunidad de discocomo"memoria"backup(denominadaalmacén
de apoyo).Cuando la
memoria
física
está
sobre-comprometida,
el sistema
de
memoria
virtual
selecciona
los datos
almacenadosenmemoriaquevanasertrasladados,yentonceslostransfieretemporalmentea
un
archivo del disco. Cuando los datos son requeridos de nuevo por un hilo que se está ejecutando, el
sistema de memoria virtual vuelve a transferirlosla amemoria.
Mover los datos de un lado para otro entre la memoria y el disco podría ser una tarea inaceptablemente
lenta si el administradordememoriavirtualmovieraunbytecada
vez.Por lo tanto, el espaciode
direccionesvirtualesestádivididoenbloquesdeigualtamañodenominadospáginas.Igualmente,
la
memoria física está dividida en bloques denominados marcos de página se
queutilizan para contener las
páginas. Cada proceso tiene un conjunto de páginas de su espacio de direcciones virtuales que están
presentes enla memoria físicaen un momento dado.
Las páginas que están presentes enla memoria física y están inmediatamente disponibles se denominan
páginas válidas. Las páginas que están almacenadas enel disco (o que están en memoria pero no están
.
inmediatamente disponibles)se denominan páginas inválidas, como ilustra la figura
Figura
46
Paso de paginasvirtuales a marcos de pkgina físicos
Cuando un hilo en ejecución accede a una dirección virtual de una página marcada
como "inválida", el
procesador emite un bloqueo de sistema denominado falta de página.
El sistema de memoria virtual
localiza la página requerida en el disco y la carga en un marco de página
libre de la memoria física.
Cuando disminuyeel número de marcos de página disponibles,el sistema de memoria virtual selecciona
marcos de página a liberar y copia sus contenidos
al disco. Esta actividad, conocidacomo paginación, es
imperceptible para el programador.
Las faltas de página pueden ser operaciones muy "caras", es decir, pueden requerir muchos ciclos de
procesador para completarse. Sin embargo, las páginas
de gran tamaño contrarrestan este coste, puesto
que se cargan más datos en memoria por cada falta de página, y por lo tanto, tienden a ocurrir menos
faltas de página. (Por supuesto, una página demasiado grande puede tener como consecuencia que se
estén cargandomás datos de los necesarios, así que hay que llegar a una solución
de compromiso entre
tamañosdepáginagrandesypequeños.)
El númerodebytesde
una páginaesgeneralmente una
potencia de 2, y a menudo est& determinado por el hardware. Windows NT adoptael tamaño de página
establecido por el procesador Intel 386,queesde212,04
KB. (El procesador MIPS R4000permite al
software determinar el tamaño de
la página.)
los datos hacia y desde el
Aunque trasladar las direcciones virtuales a direcciones físicas y transferir
almacén de apoyo son las tareas principales de un sistema de memoria virtual, debe realizar también
otras funciones,como son:
Permitir quedos procesos compartan memoria fácil y eficientemente.
A menos que se indique otra cosa, cuando este capitulo se refiere al Intel 386, se debe suponer que
la
el AMD386de
informaciónesigualmenteválidaparaprocesadorescompatibles386(talescomo
Advanced Micro Devices) y paralos procesadores Intel posteriores compatibles (comoel Intel 486).
Proteger tantola memoria compartida como la privada, de accesos no autorizados.
Si se ejecuta en computadora es multiprocesador, comoes el caso de Windows NT, debe responder a
faltas de página de más de un hilo a la vez.
47
Características del modo usuario
El administrador de VM de Windows NT proporciona una valiosa funcionalidad a los procesos en modo
usuarioatravésdesusserviciosnativos.
Los subsistemas de entornoutilizan los serviciospara
administrarsusprocesosclientes.ElsubsistemaWin32tambiénexportaalguna
de las capacidades
suministradas porlos servicios nativos de memoria del API de Win32.
El administrador deVM permite a los subsistemas en modo usuario compartir la memoria eficientemente
utilizandoobjetosquesonprotegidos,nombrados,ymanipuladoscomocualquierade
los demás
procesosdelejecutor.Lossubsistemaspuedenseleccionarelniveldeprotección
de páginaen la
memoria privada, y pueden "cerrar" páginas seleccionadas de la memoria. Pueden también aprovechar
los archivos mapeados y administrar el espacio de direcciones virtuales de sus clientes.
Las siguientes subsecciones se centran en las capacidades del administrador de VM, disponibles en
modousuario:gestionarelespaciodedireccionesvirtualesdeunproceso,compartirmemoriaentre
procesos, y protegerla memoria virtual de un proceso de otros procesos.
Administración de memoria
Como mostraba el Capítulo4 en el diagrama de atributos y servicios de los objetos proceso (figura 63),
el administrador de VM suministra un conjunto de servicios nativos que un proceso puede utilizar para
gestionar directamentesu memoria virtual.Estos servicios permiten que un proceso haga
lo siguiente:
Reserve memoria en un proceso de dos etapas
Lea y escribaen la memoria virtualEl administrador de memoria virtual
Cierre páginas virtuales dela memoria física
Obtenga informaciónsobre páginas virtuales
Proteja páginas virtuales
Pase páginas virtualesal disco
El administrador de VM establece un método
de dos fases para reservar memoria (reservarla y luego
comprometerla). La memoria reservada es un conjunto de direcciones virtuales que el administrador de
VMha reservadopara uso futurodeunproceso.Lareservadememoria,esdecir,
la reservade
direcciones virtuales, es una operación rápida y económica en WindowsNT. La memoria comprometida
esmemoriapara
la cual eladministradordeVMhaestablecidoespacioaparteensuarchivode
paginación, el archivo del disco en el cual escribe las páginas virtuales cuando las quita de la memoria.
Cuando un hilo reserva memoria virtual, puede reservar y comprometer la memoria simultáneamente,o
puede simplemente reservarla memoria, comprometiéndolasólo si es necesario.
Lareservade memoria es útil cuando un hiloestácreandoestructuras de datosdinámicas. El hilo
reservaunasecuenciadedireccionesvirtualesquecomprometehastadondeesnecesario,para
contener datos. Si la estructura de datos necesita crecer, el hilo puede comprometer memoria adicional
de la región reservada. Esta estrategia garantiza que ningún otrohilo que se ejecute dentro del proceso
(un paquete de librería, por ejemplo) o de otro proceso (tal como un hilo del subsistema Win32) pueda
utilizar los espacios virtuales contiguos que la estructura de datos podría necesitar para expandirse. Un
hilo puede seleccionar la dirección virtual de comienzo de una región reservada, o puede permitir al
administrador de VM encontrar un lugar para ellaelen
espacio de direcciones virtuales del proceso.
El administradorde VMdeducedelarchivodepaginacióndeunproceso
la cuotaparamemoria
comprometida,pero no la de memoriareservada.Estedobleniveldesernánticaspermiteaunhilo
reservar una gran regiónde memoria virtual pero evitar que se cargue en su cuota hasta que
la memoria
sea realmente necesitada. También ayuda a mantener el archivo de paginación libre para páginas de
48
memoria virtual que están siendo realmente utilizadas. Cuando
un rango de direcciones particular no
está siendo utilizado, un hilo puede "descomprometerlo" y de este modo liberar espacio del archivo de
paginaciónyrestaurarlacuotadelarchivodepaginacióndelproceso.(VerCapítulo
4 paramás
información sobre las cuotasde procesos.)
Para aplicaciones en las que el tiempo es un parámetro crítico y aplicaciones con otros requerimientos
de rendimiento, el administrador de VM permite que un subsistema de modo usuario u otros procesos
con privilegios especiales cierren páginas individuales seleccionadas en la memoria. Esto asegura que
una página crítica no será eliminada de
la memoria mientrasse esté
Como otros servicios de Windows NT, los servicios del administrador de VM permiten que el solicitante
suministre un handledeprocesoparaindicar
un procesocuyamemoriaindividual va asermanipulada.
El solicitante puede manipular su propia memoria individual o la de otro proceso. Esta característica es
muy potente, porque permite a un procesó en modo usuario gestionar el espacio de direccionesde otro.
Porejemplo,unprocesopuedecrear
otro proceso, dándose a sí mismo el derecho de manipular la
memoriaindividualdelnuevoproceso.Después,elprimerprocesopuedereservar
y liberar,yleery
escribirenmemoria,
en nombredelsegundoproceso,llamandoa
los serviciosdememoriavirtualy
pasando el handledelsegundoproceso.Estacaracterística
esutilizadapor
los subsistemaspara
gestionar la memoriade sus procesos clientes.
Las aplicaciones Win32 tienen acceso a muchas de estas características del administrador de
VM a
travésdelAPI
de Win32.Puedenreservaryliberarmemoriaindividual,leeryescribirenmemoria
individual,pasarpáginasindividualesaldisco,obtenerinformaciónacerca
de un rango de páginas
individuales,cerrarpáginasindividualesde
la memoria,yprotegerpáginasespecíficas.Sinembargo,
ninguna de estasfuncionesdel API permiten aun programaWin32manejar la memoriavirtualdeotro
proceso,con la excepción delasfuncionesReadProcessMemory()
y WriteProcessMemory-.Estas
funcionesestándestinadasalusodedepuradoresenmodousuario,paraqueestablezcanpuntosde
parada
mantengan
y
datos
instancia
deproceso
un
deque
está
siendo
depurado.
Compattición de memoria
Una tarea importante de cualquier sistema de administración de memoria es permitir que los
procesos compartan memoria cuando lo requieran o cuando dicha compartición haga más
eficiente al sistema operativo. Puesto que cada proceso tiene un espacio de direcciones virtuales
independiente, el sistema operativo puede cargar el compilador en memoria una vez, y cuando
otro proceso invoque al compilador, el administrador de memoria puede simplemente mapear las
direcciones indiindividuales del segundo proceso a los marcos de página fisicos ya ocupados por
el compilador, como ilustra la figura 6-4. De forma similar, s i dos procesos que están cooperando
crean un buffer de memoria compartida, el espacio de direcciones virtuales de cada proceso
puede ser mapeado a los mismos marcos de página fisicos ocupado por el buffer.
El subsistema Win32 hace que las características de compartición de memoria del ejecutor
de Windows
NT estén disponibles para las aplicaciones Win32 a través de sus funciones de mapeo de archivos del
API.
49
.',
_.
I.
..1:
S
1.-
'
<i-
'X
u
m
5 30
'ij
;$
J
L.
I .
ComparticiOn de memoria
Secciones, vistas,y archivos mapeados
AI igual que todos los otros componentes de Windows NT, el administrador
de VM es completamente
paralelo. Se ejecuta simultáneamente en todos los procesadores de un computadora multiprocesador y
debecompartirsusestructuras
de datosentre los hilosqueseesténejecutandoendiferentes
procesadores.Por lo tanto,eraimportantecrearunasolucióneficienteyseguraparacompartir
la
memoria en Windows NT,no sólo para los programas en modo usuario sino parael sistema mismo.
La memoria compartida puede definirse como memoria que es visible desde más de un proceso o que
esta presente en más dc un espacio de direcciones virtuales. El método de Windows NT para compartir
recursosesimplementarloscomoobjetosprotegidos,y
la memoria no esunaexcepción.
El objeto
sección, que el subsistema Win32 pone a disposición como un objeto mapeado de archivo, representa
un bloque de memoria que dos o más procesos pueden compartir. Unhilo de un proceso crea un objeto
sección y le da un nombre para que los hilos de otros procesos puedan abrir handles aél. Tras abrir un
handle a un objeto sección, un hilo puede mapear
la sección o partes de la sección en su propio espacio
de direcciones virtuales (o en el de otro proceso).
Un objeto sección de Windows NT puede ser bastante grande, abarcando decenas, centenas o incluso
miles de páginas. Para conservar su espacio de direcciones virtuales, un proceso necesita mapearsólo
la porción del objeto sección que requiere; la porción que mapea se denomina vista de la sección. Una
vistaproporcionaunaventanaaunaregión
de memoriacompartida,ydiferentesprocesospueden
mapear diferenteso incluso múltiples vistas de una sección, como muestra
Mapear vistas de una sección permite que un proceso acceda a grandes bloques
de memoria que de
otra forma no tendrían suficiente espacio de direcciones virtuales la
para
operación de mapeado.
AI igualque la memoria privada, los contenidosdelamemoriacompartidasonpaginadosaldisco
cuando la demanda de memoria es alta.El administrador de VM escribe la mayoría de las páginas, tanto
privadas como compartidas, en el archivo de paginación cuando las quita de la memoria. Sin embargo,
el administrador de VM también permite que los objetos sección sean paginados a un archivo mapeado.
La base de datos de los empleados de la empresa es un ejemplo de un archivo mapeado. El programa
de la base de datos utilizael objeto sección para traerlos contenidos del archivo dela base de datos ala
al archivocomo si fueraunagrancadena,
memoriavirtual. El programapuedeentoncesacceder
mapeando diferentes vistas del objeto sección y leyendo o escribiendo en la memoria antes que en el
archivo (una actividad denominadaE/S de archivo mapeado). Cuandoel programa accede a una página
inválida (una que no está en memoria física) tiene lugar una falta de página, y el administrador de VM
trae automáticamente la página a la memoria desde
el archivo mapeado. Si la aplicación modifica la
página, el administrador deVM escribe los cambios en el archivo durante sus operaciones de paginación
normales.
50
Objeto seccidn
El ejecutor de Windows NT utiliza archivos mapeados para cargar imágenes ejecutables en memoria, y
el administrador de cache del sistema utiliza archivos mapeados para leery escribir páginas cacheadas.
El sistema de E/S de Windows NT utiliza archivos mapeados en memoria para llevar las peticiones de
E/S, permitiendo queel administrador deVM pagine los cambios al disco como partede sus operaciones
normales de paginación. Las aplicaciones Win32 pueden utilizar archivos mapeados para llevar a cabo
convenientemente la E/S aleatoria (además de la E/S secuencial) a archivos grandes. La aplicación crea
unobjetoarchivo-mapeadodeWin32(quecorrespondeaunobjetoseccióndeWindowsNT),para
contener el archivo, y luego lee o escribe enlugaresaleatoriosdelarchivo.Eladministradorde
VM
página automáticamente las partes necesarias del archivo
y escribe los cambios enel disco.
Objeto sección
Losobjetossección,aligualqueotrosobjetos,sonreservados
y liberadospor el administradorde
objetos. Este crea e inicializa una cabecera
de objeto, que utiliza
paraadministrarlosobjetos;
el administradorde VM defineelcuerpodelobjetosección.También
implementa los servicios a los que pueden llamar los hilos en modo usuario, para recuperary cambiar los
atributos almacenados enel cuerpo delos objetos sección.En la figura 6-6 se muestra el objeto sección.
La siguiente tabla resumelos atributos únicos almacenadosen los objetos
51
'ramaiio máximo
Protección de
página
Protección de la memoria basada en phginas, asignada a
todas l a s páginas de la sección cuando es creada
Fichero de paginacibdfichero
mapeado
Indica si la sección es creada vacía (respaldada por el
fichero de paginación)o cargada con un fichero
(respaldada p o r el fichero mapeado)
Basaddno basada Indica si una secci6n es una secci6n basada, que debe
aparecer en la misma direcciónvirtual en todos los
procesos que la comparten,o una sección no basada, que
puede aparecer en direcciones virtuales diferentespara los
distintos procesos
Tabla de . Atributos del objeto sección
Mapear una vista de un objeto sección hace visible una parte de la sección en el espacio de direcciones
virtualesdeunproceso.Igualmente,desmapearunavistade
una sección la eliminadelespaciode
direcciones virtuales del proceso. La compartición tiene lugar cuando dos procesos mapean partes del
mismo objeto sección en sus espacios de direcciones. Cuando dos procesos comparten memoria de
esta forma, deben sincronizar su acceso a ella para evitar cambiar los datos al mismo tiempo. Pueden
utilizarse eventos, semáforos, o incluso cierres dependientes del hardware para sincronizar el acceso a
unaseccióncompartida.Losobjetossecciónnoestándefinidoscomoobjetossincronizaciónen
sí
mismos; es decir, un hilo no puede sincronizar su ejecución esperando un handle aun objeto sección.
LasaplicacionesWin32puedenutilizarmutexes,eventos,seccionescríticas
o semáforospara
sincronizar sus accesos al objeto mapeación de archivo
(su equivalente de un objeto sección).
Para mapear una vista de una sección, un proceso debe adquirir primero un handle a ella.
El proceso
que crea el objetosecciónsiempretieneunhandle.Si
la seccióntieneunnombre,otrosprocesos
pueden abrir handles a dicho objeto sección (aquellos que tengan los derechos de acceso adecuados).
También, a un proceso se le puede dar un handle al objeto sección a través dela herencia del procesoo
cuando otro proceso duplicasu handle de sección y pasael handle duplicado al proceso destinatario. En
todos estos casos tiene lugar la compartición de memoria. Si se crea una sección Compartida como un
objeto temporal, el administrador de objetos borra la memoria compartida cuando es liberada la última
referencia al objeto sección. Los objetos sección permanentes no son borrados.
Protección de memoria
La protección de memoriaen Windows NT seda de cuatro maneras. Las tres primeras son comunes a la
mayoría de los Sistemas operativos modernos:
Un espacio de direcciones independiente para cada
proceso. El hardware no permite que ningún
hilo acceda a las direcciones virtualesde otro proceso.
Dos modos de operación:modokernel,quepermitea
sistema; y modo usuario, que no
lo permite.
los hilosaccederalcódigoy
los datosdel
Unmecanismodeprotecciónbasadoenpáginas.Cadapáginavirtualtieneunconjunto
de flags
los tipos de acceso permitidosen modo usuario y en modo kernel.
asociados a ella que determinan
Y los siguientes mecanismos, exclusivos de WindowsNT, proporcionan una forma más de protección de
memoria:
52
Protección de memoria basada en objeto. Cadavez que un proceso abre un handle aun objeto sección
o mapea una vistade éI, el monitor de referenciade seguridad de Windows NT comprueba si el proceso
que intenta la operación tiene acceso permitido al objeto.
Memoria privada de
un proceso
Cada vez que un hilo utiliza
una dirección, el administradorde VM del ejecutor de Windows NT ,junto con
el hardware, interviene y traduce las direcciones virtuales a direcciones físicas. Un sistema de memoria
virtual, al controlar la traducción de direcciones virtuales, puede asegurar que los hilos de un proceso no
acceden a un marcode página de la memoriaque pertenezca a otros procesos.
Además de la protección implícita ofrecida por la traducción de direcciones físicas a virtuales, todos los
procesadoresquesoportanmemoriavirtualproporcionanalgunaformadeprotecciónde
memoria
controladaporhardware.Sinembargo,lasproteccionesqueproporcionanysusimplementaciones
hardware varían de unos a otros. A menudo la protección hardware es mínima y debe ser completada
con mecanismos proporcionados por el software
de memoria virtual.
Este hecho hace que el administrador de
VM de Windows NT esté más sujeto a diferencias de hardware
que otras partes del sistema operativo. La protecciónde páginas basada en hardware, tiene efecto cada
vez que un hilo accede a la memoria. En el procesador MIPS
R4000, por ejemplo, cada página de la
memoria virtual de un proceso está diseñada como, o una página en modo usuario (por debajo de 2
GB),o una página en modo kernel (por encima de 2 GB), y como página de sólo lectura o como página
de lectura y escritura. Siun hilo de ejecución está ejecutándose en modo kernel, el procesador
le permite
leer cualquier página válida de la memoria y escribir en páginas válidas que tengan la designación de
lectura y escritura. Si el hilo está ejecutándose en modo usuario,
sólo puede leer páginas de usuario
válidas y escribir en aquéllas páginas de usuario válidas
que tengan la designación de lectura y escritura.
Utilizando los servicios nativos de la memoria virtual, un subsistema de entorno puede controlar el nivel
de protección de las páginas virtuales privadas. Este control puede llevar a programas más fiables,
al
asegurar que los hilos no escriben en páginas que son
de sólo lectura. Esta característicaes también útil
El administrador deVM proporciona protección de página guardián para facilitar comprobación de
límites
automáticos en las pilas, pero este tipo de protección de página puede ser empleado para demarcar
también otras estructuras de datos. Cuando un hilo accede a una pagina guardián, el administrador de
VM
El administrador de memoriavirtualgeneraunaexcepción
depáginaguardián,yelquerealiza
la
llamadarecibe el mensajedequeestaba"tocando"
la páginaguardián.Eladministradorde
VM
entonces, permite que la operación continúe. Si un subsistema u otra aplicación nativa sitúa una página
guardián al final de un array dinámico, por ejemplo, el subsistema recibirá un aviso del administrador de
VM cuando acceda a la página guardián,
y puede extender el array dinámicamente.
La protección de página de no acceso se utiliza para prevenir que cualquier hilo lea o escriba a una
página concreta. El administrador deVM emite una excepción si se accede a una dirección de la página.
A las páginas virtuales que no han sido reservadas en absoluto,
o a aquéllas que han sido reservadas
pero no comprometidas, el administrador de
VM les asigna protección de página de no acceso. Esta
protección esutilizadaprincipalmentepor
los depuradores.ElsubsistemaWin32hacevisibleslas
protecciones de página del administrador de VM frente a las aplicaciones Win32 a través de su función
VirtualProtectQ.
sólo lectura,
Esta función permite a las aplicaciones designar páginas virtuales individuales como de
lectura I escritura, o no acceso. No proporciona las protecciones de página guardián, de sólo ejecución,
ni de escritura sobre copia.
53
Memoria compartida
Laprotección depáginadeescriturasobrecopiamencionadaenlasubsecciónprevia,esuna
optimización que utiliza el administrador deVM para ahorrar memoria. Cuando dos procesos quieren leer
y escribir los mismos contenidos de memoria (pero no compartirlos), el administrador de VM asigna la
protección de página de escritura sobre copia a esa región de memoria. Entonces compartela memoria
física entre los procesoscontaldequeningunodeellosescribaenella.Siunhilodeunode
los
procesosescribe enunapágina,
el administradorde VM copiaelmarcodepáginafísicoaotra
localización en memoria, actualizael espacio de direcciones virtuales del proceso que apunta a la copia,
y selecciona una nueva protección de página,la de lecturaI escritura. Como se muestra en la figura 6-7,
la página copiada no es visible para los hilos de otros procesos.Por lo tanto, el hilo puede escribir en su
copia dela página sin afectar alresto de los procesos que están utilizando
la página.
La protección de escritura sobre copia es útil para las páginas que contienen código; asegura que sólo
es afectado por el cambio el proceso cuyo hilo modifica
la imagen. Sin embargo, si un programador
establece un punto de parada (breakpoint) mientras depuraun programa, el depurador debe aiiadir una
instruccióndebreakpointalcódigo.Parahaceresto,primerocambia
la proteccióndelapáginaa
escritura sobre copia. El administrador de VM inmediatamente crea una copia privada de la página de
código para el proceso
cuyo hilo estableceel punto
de parada. Los demás procesos continúan utilizando el código sin modificar.
El subsistema Win32 no
PratecCidn ds eacriulra Miobre W a
hace directamente disponible la protección de página de escritura sobre copia a las aplicaciones Win32,
pero indirectamente utilizala protección de escritura sobre copia para implementar datos de instancia por
proceso en sus librerías de enlace dinámico (DLL) yen cualquier parte. La protección de escritura sobre
copiaesunejemplodeunatécnica
de optimizacióndenominadaevaluaciónperezosaque
el
administrador de VM utiliza siempre que es posible. Los algoritmos de dicha evaluación evitan llevar a
cabo una operación "costosa" hasta que sea absolutamente necesaria. Si la operación no se requiere
nunca, entonces no se pierde tiempo en ella. El subsistema POS IX es un componente que se beneficia
mucho de esta optimización. Típicamente, cuandoun proceso llamaa la función del API fork() para crear
otroprocesoenunsistemaPOSIX,
el sistemaoperativocopia el espaciodedireccionesdelprimer
54
proceso en el segundo, una operación que consume tiempo. La nueva aplicación frecuentemente llama
a la función del API execQ inmediatamente, que reinicializa el espacio de direcciones con un programa
ejecutable,haciendoportantosuperflua
la otraoperación de copia. El algoritmo de la evaluación
perezosadeladministradordeVM,encontraste,simplementemarcalaspáginaspadreconla
designación de protección de escritura sobre copia, y comparte dichas páginas padre con el hijo. Si el
procesohijo (o padre)nuncaescribe
ensuespaciodedirecciones,
los dosprocesoscontinúan
compartiendo y no se lleva a cabo ninguna copia. Si
uno de los procesos escribe, el administrador de VM
copia sólo las páginas en las que el proceso ha escrito, en lugar de copiar el espacio de direcciones
completo.
o en
Todos los mecanismosdeproteccióndememoriadescritoshastaaquísonimplementados
hardware, o en software de administraciónde memoria de bajo nivel, quese invoca cada vez que un hilo
utilizaunadirección.Laarquitectura
deobjetosdeWindowsNTproporcionaunacapaadicionalde
protecciónalamemoriacompartidaentre
dosprocesos. El subsistemadeseguridadprotegea
los
objetosseccióndela
misma forma queprotegeaotrosobjetosdelejecutor,utilizandolaslistasde
control de acceso (ACL). (Ver Capítulo 3). Un hilo puede crear un objeto sección cuya ACL especifique
qué usuarios o grupos de usuarios pueden leer, escribir, obtener información, o ampliar el tamaño de la
sección.
El monitor de referencia de seguridad compruebala protección de un objeto sección siempre queun hilo
intenta abrir un handle a una sección
o mapear una vista de la misma.Si la ACL no permite la operación,
el administrador de objetos rechazala llamada. Una vez que un hilo ha abierto con éxito un handle a una
sección,
sus
acciones
están
todavía
sujetas
a
las
protecciones
basadas
en
páginas
descritas
anteriormente.
Un hilo puede cambiar el nivel de protección de página en las páginas virtuales de una sección,
cambio no viola laACL del objeto sección.
si el
implementación de memoria virtual
Hastaaquí,estecapítulosehacentrado
en los principiosgeneralesdelamemoriavirtual
y las
características de modo usuario proporcionadas por
el administrador de VM del ejecutor de Windows NT.
Las siguientes subsecciones ahondanen asuntos internos, las estructuras de datos y los algoritmos que
no sonvisibles al código de modousuario,peroqueafectan
al funcionamiento y rendimientode la
memoria virtual. Primero se describe la disposición del espacio de direcciones virtuales de un proceso,
seguido por una explicación delos mecanismos de paginación y las políticas de gobierno del empleo de
la memoria de un proceso. Sigue una breve descripción de las
dos estructuras de datos principales dela
los asuntosdemásaltonivel,
el multiprocesamientoy la
memoriavirtual.Finalmente,setratan
portabilidad del sistema de memoria virtual.
Espacio de direcciones
Cada proceso nativo de Windows NT tiene un gran espacio de direcciones virtuales de
4 GB, de los
cuales 2 GB están reservados para el uso del sistema.5 La mitad inferior del espacio de direcciones
virtuales es accesible alos hilos de modo usuario y modo kernel, y es única para cada proceso. La mitad
superior es accesible sólo para los hilos en modo kernel y es la misma para todos los procesos. En la
figura 6-8 se ilustra el espacio de direcciones virtuales de un proceso.
(el código que hace la paginación, por ejemplo).
Cuando se crea un nuevo proceso, puede especificarse que el administrador de VM inicialice su espacio
de direcciones virtuales duplicando el espacio de direcciones virtuales de otro proceso, o mapeando un
archivo en suespaciodedireccionesvirtuales.Porejemplo,elsubsistemaPOSLXutiliza
la primera
El espacio de direcciones del proceso hijo es
táctica cuando uno de sus clientes crea un proceso hijo.
una réplica del espacio del proceso POSlX padre. (Realmente, el padre y el hijo comparten páginas de
escritura sobre copia, así que
la copia no tiene lugar inmediatamente). La segunda táctica
se utiliza
55
cuando se crea un nuevo proceso para ejecutar un programa ejecutable.
Por ejemplo, cuando un usuario
ejecuta la utilidadchkdsk,eladministrador
de procesosdeWindows
NT creaunprocesoy
el
administrador de VM inicializa su espacio de direcciones con
la imagen de chkdsk, que es entonces
ejecutada.
Lossubsistemasdeentornopuedenpresentarasusprocesosclientes,vistasdememoriaque
no
corresponden al espacio de direcciones virtuales de un proceso nativo de Windows NT. Las aplicaciones
Win32utilizanunespaciodedireccionesqueesidéntico
al espacio de direccionesnativo,pero
el
subsistema OS/2 y las máquinas DOS virtuales (VDM), presentan a sus clientes vistas de
la memoria
alteradas.
Paginación
El diseñodeuncomponentedeunsistemaoperativoamenudoserevela
preguntas importantes:
éI mismo al hacer dos
¿Qué mecanismos utiliza el componente para llevar a cabo su trabajo?
¿Qué políticas gobiernanlos mecanismos?
Los mecanismos de memoria virtual incluyen la manera en la que el administrador de VM traduce las
direcciones virtuales a direcciones físicas la
y manera en que introduce las páginasen la memoria física.
Las políticas de memoria virtual, encontraste, determinan por ejemplo cuándo introducir una página enla
memoria y dónde situarla.
A menudo el procesador proporciona mecanismos primitivos de paginación, que complementa
el sistema
de memoria virtual. El paginador, el código del administrador de VM que transfiere las páginas desde y
hacia el disco, es un importante intermediario entre los mecanismos hardware y las políticas software:
Haceválidaunapáginainválidacuandotienelugarunafaltadepágina(porejemplo,
al cargaruna
página en la memoria desde el disco).
Proporciona protección basada en páginas para las páginas inválidas, y mejora las protecciones que
proporciona el hardware a las páginas válidas.
Actualiza y mantiene las estructuras de datos de la administración de memoria. Además, el paginador
refuerza las políticas de paginación establecidas el
por
administrador de VM
Mecanismos de paginación
Cada procesador que soporta memoria virtual
lo hace de manera diferente.Por lo tanto, el código que se
relaciona directamente con el hardware de memoria virtual no es portable y debe ser modificado para
cada plataforma hardware. Las mejores circunstancias sedan, como en Windows NT, cuando tal código
es pequeño y está bien aislado. aplicable alos procesadores ClSC de Intel, pero por simplicidad, aquí no
se discuten en profundidad dichos
El MIPSR4000contienedosmódulos:unaunidaddeprocesamientoRlSCde
32 bits(denominada
CPl), y un módulo independiente situado en
el mismo chip (denominado CPO)que controla la traducción
de direcciones y el manejode excepciones. El CPO captura automáticamente cada dirección que genera
unprograma,y
la traduceadirecciónfísica.Si
la páginaquecontiene la dirección esválida(está
presente en memoria), el CPO la localiza y recuperala información.
Si la página es inválida (no está presente en memoria),el CPO genera una falta de página, y se invoca
al
R4000 (así
paginador del administrador de VM. Para asegurar accesos rápidos a memoria, el MIPS
como los procesadoresIntel),proporciona
un array de memoriaasociativa,denominado
buffer de
traducciónlookaside(TLB,translationlookasidebuffer).Lamemoriaasociativa,comoporejemplo
el
TLB, esunvectorcuyasceldaspuedenserleídassimultáneamenteycomparadasconunvalorde
referencia. En el caso del TLB, el vector contienelos mapeados de página virtual a física, de las páginas
56
utilizadas más recientemente, y el tipo de protecciónde página aplicado a cada página. La figura 6-9 es
una representación simplificada del TLB.
Lasdireccionesvirtualesutilizadasconfrecuencia
es probablequetenganentradasen
el TLB,que
proporciona una extremadamente rápida traducción de direcciones virtuales a fisicas, y por lo tanto, un
rápido acceso a memoria. Si una dirección virtual
no está presente en el TLB, podría estar todavía en
memoria, pero Dirección virtual el software de memoria virtual, más que el hardware, debe encontrarla,
en cuyo caso el tiempo de acceso es ligeramente mayor.Si una página virtual ha sido paginada fuera de
la memoria, el sistema de memoria virtual hace inválida su entrada en
el TLB. Si un proceso accede a
ella de nuevo, se da una falta de página, y el administrador de VM vuelve a traer la página a la memoria
y vuelve también a crear una entrada para ellaelen
TLB.
El kernel y el administrador deVM utilizan tablasde página creadascon software para encontrar páginas
quenoestánpresentesenelTLB.Dichastablasseencuentranenlamayoríade
los sistemasde
memoria
virtual;
algunas
veces
son
implementadas
por el
hardware
otras
y por
el software.
Conceptualmente, una tabla de página se parece a la estructura de datos mostradalaen
Fig.
I. Acceso al TLB
Una entrada de una tabla de página (PTE,page table entry), contiene toda la información necesaria para
que el sistema de memoria virtual localiceuna página cuando un hilo utiliza una dirección. En un sistema
de memoria virtual sencillo, una entrada inválida en una tabla de página quiere decir que
la página no
está en la memoria físicay debe ser cargada del disco. Seda entonces una excepción
de falta de página,
y el software de paginación carga la página solicitada en la memoria y actualiza la tabla
de página. El
procesador vuelve a emitirla instrucción que generéla falta de página. Estavez, sin embargo, la entrada
de la tabla de página es válida y se recuperan con éxito
los datos de la memoria.
57
1'
1
I
S
4
Entrrdas
- delatabla
5
8
7
n
Tabla de pcigina conceptual
El MIPS R4000 tiene direcciones de 32 bits,
o 232 posibles direcciones virtuales para cada proceso.
Organiza estas direcciones virtuales en páginas
de 212 bytes (4 KB), lo cual lleva a 220, o 1.048.576
páginas por cada espacio de direcciones. Si las entradas de
la tabla de página ocupan4 bytes cada una,
se necesitan 1024 marcos de página de almacenamiento (220 veces22, dividido por 212) para mapear
toda la memoria virtual.Y todo esto considerandosólo un espacio de direcciones.
Cada proceso tiene un espacio de direcciones independiente. Para evitar consumir toda
la memoria con
tablas de página, el administrador de VM página las tablas dentro
y fuera de la memoria cuando se
necesitan.
El procesador MIPS R4000 permite al sistema operativo estructurar las tablas de página en el formato
que sea más conveniente. Encontraste, el procesador Intel 386, establece un formato hardware para la
tabladepágina.Paraproporcionarlamáximaportabilidadentreambostipos
de procesadores,el
administrador de VM adopta una estructura de tabla de página de dos niveles que imita al formato de
Intel. La tabla del primer nivel, denominada directorio de página, apunta a las páginas de
la tabla de
página del segundo nivel. Este segundo nivel apuntalos
a marcos de página reales, como se muestra
en
la figura 6-77 Cuando localiza una entrada dela tabla de página, el administrador de VM (y el kernel de
WindowsNT)traduce una direcciónvirtualtipoMIPSaunadireccióntipoIntelutilizandodiferentes
partes de ella como desplazamientos(offsets) en la estructurade la tabladepágina.Además,una
entrada del TLB siempre contiene la dirección virtual base del directorio de página para
los procesos que
se estan ejecutando en ese momento. (Esta es la razón de que el proceso de un usuariono pueda "ver"
el espacio de direcciones de otro.Tienendiferentesdirectorios
de página,queapuntanadiferentes
tablas de psgina).
58
1
Lasentradasdeldirectoriodepágina
y de la tablas de página de un proceso pueden ser válidas
o
inválidas. Si una entrada del directorio de página es inválida, sucede una falta de página que carga la
página directorio y localiza una página de la tabla de página. Cuando esta página de la tabla de página
se hace válida, se comprueba la entrada correspondiente dela tabla de página. Si la entrada de la tabla
de página también es inválida, sucede otra falta
de página para localizar la página
de código o datos. Las
entradas de la tabla de página de estas tablas de página definidas en Windows
NT suponen una mejora
respecto a la página conceptual mostrada anteriormente. Cada entrada de la tabla de página (y cada
entradadeldirectoriodepágina)tiene
un flagdetransición. Si la entradade la tabladepáginaes
marcada como inválida y el flag de transición está habilitado, la página está destinada a ser rechazada,
pero sus contenidos son válidos todavía. Hacer válida una página transicional
es una operación muy
rápida porque el administrador de
VM
. Estructura de la tabla de página del Intel386 y del MIPS R40006 necesita leer la página de la memoria
desde el disco. Las entradas de la tabla de página también contienen flags que registran los niveles de
protección de páginas que
el administrador deVM aplica a cada página.
Cuando un marco de página es compartido entre dos procesos, el administrador de VM inserta un nivel
se
de indirección en sus tablas de página, como ilustra la figura. La estructura de datos que inserta
denomina entrada prototipo dela tabla de página (PTE prototipo).
59
La PTE prototipo, una estructura de 32 bits que se parece a una entrada normal de
la tabla de página,
permite que el administrador de VM gestione las páginas compartidas sin necesidad de actualizar las
tablas de página de cada proceso El administrador de memoria virtual Dirección virtual Figura siguiente.
Traducción de direcciónde la memoria compartida está compartiendola página. Por ejemplo, una página
decódigo o datoscompartida,podríaserpaginadaaldiscoenundeterminadopunto.Cuandoel
administrador de VM recupera la página del disco, sólo necesita actualizar el apuntador almacenado en
la PTE prototipo paraque apunte a la nueva localización física de la página. Las tablas de página de los
procesos que están compartiendo la página permanecen igual. Las PTE prototipo son reservadas del
espaciopaginadodelsistema,y
así, al igualquelasentradasde
la tabladepágina,puedenser
paginadas si es necesario.
DlncdlinvmJd
I
I
I
I
I
I
I
I
“
d
e
l
&
*
rFadu&&Mde dirmi6n da, la memaria compartida
Políticas de paginación y conjuntos de trabajo
Los sistemas de memoria virtual generalmente definen tres políticas que dictaminan cómo (o cuándo)
llevar a cabo la paginación: una política de búsqueda, una política de emplazamiento, y una política de
remplazamiento.)
Una política de búsqueda determina cuándo
el paginador trae una página del disco ala memoria. Un tipo
de política de búsqueda, denominada política de paginación por demanda, carga una página en memoria
física sólo cuando ocurre una falta de página. En un sistema de paginación por demanda, un proceso
incurre en muchas faltas de página cuando sus hilos comienzan su ejecución por primera vez, cuando
referencian el conjunto inicial de páginas que necesitan. Una vez que este conjunto de páginas está
cargado en memoria, disminuyela actividad de paginacióndel proceso.
60
El administrador de VM de Windows NT utiliza un algoritmo de paginación por demanda con agrupación
para cargar las páginasen memoria. Cuandoun hilo provoca una falta de página, el administrador de
VM
carga en memoria la página que falta, más un pequeño número de páginas circundantes. Esta estrategia
trata de minimizar el número de faltas de página en las que un hilo puede incurrir. Debido a que
los
programas, especialmente los más largos, tienden a ejecutarse en pequeñas regiones de sus espacios
de direcciones en un momento dado,cargandogruposdepáginasvirtualessereduceelnúmerode
faltas de página.
225933
Cuando un hilo recibe una falta de página, el sistema de administración de memoria debe determinar
también dónde poner la página virtual enla memoria física. El conjunto de reglasque utiliza se denomina
política de emplazamiento.
Las políticas de emplazamiento, aunque frecuentemente complicadas para las arquitecturas de memoria
segmentada, son normalmente sencillas para las arquitecturas lineales, que sólo requieren encontrar un
marco de páginalibre. En Windows NT, si la memoriano está llena, el administrador de VM simplemente
selecciona el primer marco de página de una lista de marcos de página libres.
Si la lista está vacía,
recorre una serie de otras listas de marcos de página que mantiene; el orden del recorrido depende del
tipo de falta de página que
haya ocurrido.
Si la memoriafísicaestállenacuandoocurreunafaltadepágina,
se utiliza una políticade
remplazamiento para determinarqué página virtual debe ser elimina de la memoria para hacer sitio a la
nueva página. Las políticas de remplazamiento más comunesson least recently used(el menos utilizado
recientemente,LRU)yfirst
infirst out(primero en entrar,primero en salir, FIFO). ElalgoritmoLRU
requiere que el sistema de memoria virtual controle cuándo se ha utilizado una página de
la memoria.
Cuando se requiere un nuevo marco de página, la página que no ha sido utilizada durante la mayor
cantidad de tiempo es paginada al disco, y su marco es liberado para satisfacer la falta de página. El
algoritmo FIFO es algo más simple; elimina la página que ha estado en memoria física la mayor cantidad
de tiempo sin tener en cuenta
con qué frecuencia ha sido utilizada.
Laspolíticasderemplazamientopuedensertambiéncaracterizadascomoglobales
o locales.Una
política de remplazamiento local reserva un númerofijo
(o, como enWindows
NT, unnúmero
dinámicamente ajustable) de marcos de página para cada proceso. Cuando un proceso utiliza todo
lo
que le corresponde, el software de memoria virtual libera (es decir, elimina de la memoria física) una de
sus páginas para cada nueva faltade página que ocurra. Una política de remplazamiento globalpermite
que una falta de página sea satisfecha por cualquier marco
de página, sea o no ese marco perteneciente
aotroproceso.Porejemplo,unapolíticaderemplazamientoglobalqueutiliceelalgoritmo
FIFO
localizaría la página que hubiera estado en memoria por más tiempo y la liberaría para satisfacer una
falta de página; una política de rernplazamiento local limitaría esa búsqueda a la página más antigua del
conjunto de páginas pertenecientes al proceso que hubiera emitido la falta de página.
Las políticas de remplazamiento global tienen unos cuantos problemas.
Primero, hacen vulnerables los
a procesos del comportamiento de otros procesos.
Por ejemplo, si uno o más procesos del sistema están utilizando grandes cantidades de memoria, es
más probable que una aplicación en ejecución tenga una paginación pesada.Se incrementará el tiempo
de ejecución. Segundo, una aplicación que no funcione bien puede minar el sistema operativo entero
los procesos. EnWindows
NT, es
induciendoaunaactividaddepaginaciónexcesivaentodos
importante que los subsistemas de entorno no compitan con otros procesos para que
la compartición de
memoria sea equitativa. Deben mantener un cierto número de páginas en memoria para ejecutar
de
manera
eficiente,
soportar
y
sus
aplicaciones
cliente
adecuadamente.
Por
estas
razones,
el
administrador de VM utiliza una política de remplazamiento local tipo FIFO. Este método requiere que el
administradorde VM mantenga unseguimientodelaspáginasdecadaprocesoqueestánencada
momento en memoria. Este conjunto de páginas
se denomina conjunto de trabajo del proceso.7
Cuando es creado, cada proceso se
le asigna un tamaño mínimo del conjunto de trabajo, que es
61
el
número de páginas que el proceso tiene garantizadas en memoria mientras se está ejecutando. Si la
memoria no está demasiado llena, el administrador de VM permite que el proceso tenga tantas páginas
como indique su conjunto de trabajo máximo.8 Si el proceso requiere
más páginas, el adminis7. P.J.
Denning, que publicó su artículo seminal en 1970, utilizó
el término working set (conjunto de trabajo) para
referirse al número mínimo de páginas que
un proceso debe teneren memoria física antesde que pueda
progresar su ejecución. Un proceso con menos de su conjunto de trabajo es susceptible de desgranarse
(continuas faltas de página). Nuestra definición, "el conjuntode páginas en memoria para un proceso en
un momento dado" es ligeramente diferente
de la definición de Denning, no
y deben ser confundidas.
8. El administrador deVM también puede permitir que un proceso se exceda de su máximo
si hay mucha
memoria disponible. Las políticas de remplazamiento pueden ser también caracterizadas como globales
o locales. Una política de remplazamiento local reserva un número fijo
(o, como enWindowsNT,un
número dinámicamente ajustable) de marcos de página para cada proceso. Cuando un proceso utiliza
todo lo que le corresponde, el software de memoria virtual libera (es decir, elimina dela memoria física)
una de sus páginas para cada nueva falta de página que ocurra. Una política de remplazamiento global
permite que una falta de página
sea satisfecha por cualquier marco de página,sea o no ese marco
perteneciente a otro proceso.
losa
Las políticas de remplazamiento global tienen unos cuantos problemas. Primero, hacen vulnerables
procesos del comportamiento de otros procesos. Por ejemplo,si uno o más procesos del sistema están
utilizando grandes cantidades de memoria, es más probable que una aplicación en ejecución tenga una
paginación pesada. Se incrementará el tiempo de ejecución. Segundo, una aplicación que no funcione
bienpuedeminarelsistemaoperativoenteroinduciendoaunaactividaddepaginaciónexcesivaen
todos los procesos. En Windows NT, es importante que
los subsistemas de entorno no compitan con
otros procesos para que la compartición de memoria sea equitativa.
Deben mantener un cierto númerode páginas en memoria para ejecutar de manera eficiente, y soportar
sus aplicaciones cliente adecuadamente. Por estas razones, el administrador de VM utiliza una política
deremplazamientolocaltipo
FIFO. Estemétodorequiereque el administradorde VM mantengaun
seguimiento de las páginas de cada proceso que están en cada momento
en memoria. Este conjuntode
páginas se denomina conjunto de trabajo del proceso.7
Cuando es creado, a cada proceso se le asigna un tamaño mínimo del conjunto de trabajo, que es el
número de páginas que el proceso tiene garantizadas en memoria mientras se está ejecutando.
Si la
memoria no está demasiado llena, el administrador de VM permite que el proceso tenga tantas páginas
como indique su conjunto de trabajo máximo.8 Si el proceso requiere más páginas, el adminis7. P.J.
Denning, que publicó su artículo seminal en 1970, utilizó el término working set (conjunto
de trabajo) para
referirse al número mínimo de páginas que un proceso debe tener
en memoria física antes de que pueda
progresar su ejecución. Un proceso con menos de
su conjunto de trabajo es susceptiblede desgranarse
(continuas faltas de página). Nuestra definición, "el conjunto de páginas en memoria para un proceso en
un momento dado"es ligeramente diferente de la definición de Denning, y no deben ser confundidas.
El administrador de VM también puede permitir que un proceso se exceda de su máximo si hay mucha
memoria disponible. Administrador de VM elimina una de las páginas del proceso por cada nueva falta
de página que el proceso genere. Para determinar qué página eliminar del conjunto de trabajo de un
proceso, el administrador de VM emplea un sencillo algoritmo FIFO, eliminando las páginas que han
estado más tiempo en memoria. (Debido a que las páginas eliminadas del conjunto de trabajo realmente
permanecen en memoria física durante un tiempo después del remplazamiento, pueden volver a traerse
al conjunto de trabajo Rápidamente sin que
sea necesaria una operación de lectura del disco.
Cuando la memoriafísicadisminuye, el administradorde VM utilizaunatécnicadenominadarecorte
automáticodelconjuntodetrabajoparaincrementar
la cantidad de memorialibredisponibleen
el
sistema. Examina cada proceso en memoria, comparando el tamaño actual de su conjunto de trabajo
con el tamaño mínimo. Cuando encuentra procesos que utilizan más de su mínimo establecido, elimina
páginas de sus conjuntosde trabajo, dejando esas páginas disponibles para otros usos. Si la cantidad de
memoria libre es todavía demasiado baja, el administrador de VM continúa eliminando páginas de los
62
Tablas de phgina y base de datos.de marcos de pagina
. . . -. . . . . .
.
.
. I * .
-v.
1
r
.
.
*.l.
. Tablas de página y base de datos de marcos de página de trabajo.
El administrador de memoria está
diseñado, a través de la utilización de la política de remplazamiento local y el recorte automático del
conjunto de trabajo, para controlar la carga en memoria, y ajustar la utilización de memoria de Apuntador
hacia delante manera acorde con ella. Pretende proporcionar
el mejor rendimiento posible para cada
proceso sin que ningún usuario individual
o administrador tenga que sintonizar el sistema para cada
caso.
Base de datos de marcos de página
Las tablas de página de un proceso controlan dónde se almacena una página virtual en
la memoria
física. El administrador de VM también necesita una estructura de datos para controlar el estado de la
memoria física. Por ejemplo, necesita registrar si un marco de página está libre, y sino, quién lo está
utilizando.Labasededatos
de marcosdepáginacubreestanecesidad.
Es un arraydeentradas
numeradas desde el O hasta el número de marcos de página de la memoria del sistema (menos 1).
Cada entrada contiene información sobre el correspondiente marco de página.
En la siguiente figura se representa la base de datos de marcos de página y sus relaciones con las
tablas de página. Como muestra esta figura, las entradas válidas de las tablas de página apuntan a
entradas de la base de datos de marcos de página, y las entradas de dicha base de datos apuntan a su
vez a la tabla de página que las está utilizando. El administrador de
VM utiliza el apuntador de avance
cuando un proceso accede a una dirección virtual válida. Sigue al apuntador para localizar la página
física correspondiente a una dirección virtual.
Algunas entradas inválidas de la tabla de página también se refieren a entradas en la base de datos de
marcos de página. Estas entradas "transitorias" de la tabla
de página se refieren a marcosde página que
64
pueden ser elegidos para volver a ser utilizados y que todavía no han vuelto a ser utilizados y que, porlo
tanto, están aún intactos en memoria. Si el proceso accede a una de estas páginas antes de que sea
utilizada de nuevo por otro proceso, el administrador VM
de puede recuperar su contenido rápidamente.
Otras entradas inválidas de la tabla de página contienen
la dirección del disco donde se almacena
página.Cuandounprocesoaccedeaunadeestaspáginas,tienelugarunafaltadepáginayel
administrador de VMlee la página del disco.
la
Los marcos de página pueden estar en uno delos seis estados siguientes, en cualquier momento
Válido. El marco de página es utilizado por un proceso, y una entrada válida de la tabla de página
apunta a él.
Cero. El marco de página estálibre y ha sido inicializado con ceros.
Libre. El marco de página está libre pero no ha sido inicializado.
Standby. Un proceso está utilizando el marco de página, pero dicho marco de página ha sido eliminado
delconjuntodetrabajodelproceso.Laentradadelatabladepáginapara
éI esinválidaperoestá
marcada con un flag de transición. Modificado. Este estado es el mismo que el estado standby, excepto
que el proceso que utiliza
la página también ha escrito en ella, y los contenidos no han sido escritos
todavía al disco. La entrada de la tabla de página para éI es inválida pero está marcada con un flag de
transición.
Malo. El marco de página ha generado error de paridad u otro tipo de error hardware y no puede ser
utilizado.
65
Figura Listas de páginas en la base de datos de marcos de página
De los marcos de página que no son utilizados, la base de datos de marcos de página enlaza aquellos
que están en el mismo estado, creando de este modo cinco listas independientes: la lista de ceros, lade
libres, lade standby, lade modificados, y la de malos. En la figura 6-14 se muestran las relaciones entre
la base de datos de marcos de página y las listas de página. Como se muestra en la figura, estas listas
llevan la cuenta de los marcos de página del computadora que no
se utilizan. Aquellos que son utilizados
por un proceso son apuntados por la tabla de página de ese proceso. Cuando un proceso termina con
un marco de páginao cuando el administrador deVM página sus contenidos al disco, el marco de página
se liberay el administrador deVM lo sitúa en unade sus listasde marcos de página.
Cuando el administrador de VM necesita un marco de página inicializado (uno que contenga todo ceros)
para atender una falta de página, trata de conseguir el primero de la lista de páginas de ceros; si la lista
está vacía, obtiene uno dela lista de libres y lo pone a cero.9 Cuando el administrador
de VMno necesita
una página a cero, utiliza el primero de la lista de libres; si la lista de libres está vacía, utiliza uno de la
lista de ceros. En cualquiera de estos casos, el administrador de VM utiliza la lista de standby si las dos
y standby
listascitadasestánvacías.Cuando
el número de páginasenlaslistasdeceros,libres
desciendepordebajodeunumbralmínimo,unhilodenominadoescritordepáginamodificada,
"despierta", escribe los contenidos de las páginas modificadasal disco, y después las sitúa en la lista de
páginas en estado standby para volver a ser utilizadas.
Si incluso la lista de paginas modificadas fuera demasiado corta, el administrador
66
de VM comienza a
de
Visor del pottafolm
Insta
Ed*- PIF
Subsistemas de entorno
El subsistema de entorno de Wín32proporcionaelinterfaz de usuario de WindowsNT. No sólo controla la
pantalladevideo,sinotambiénelteclado,elratón,
y otrosdispositivosdeentradaconectadosala
máquina.Además,esunservidordelasaplicacionesbasadasenWín32,implementando
el APIde
Win32.
No todas las aplicaciones son aplicaciones Win32,
y el subsistema Win32 no controla la ejecución de
aplicacionesquenoseanWin32.Cuandoelusuarioejecutaunaaplicaciónquenoreconoceel
subsistema Win32, el subsistema determina qué clase de aplicación es, y llama a otro subsistema para
ejecutarla, o al código para inicializar un entorno MS-DOS en el cual poder ejecutar
la aplicación (ver
figura ).
Cadaunode los subsistemasdeentornoproporcionanunAPIqueesutilizadoporsusaplicaciones
y el subsistema
cliente. Por ejemplo, el subsistema Win32 proporciona el API de Windows de 32 bits,
OS/2 el API de OS/2. Las aplicaciones no pueden mezclary enlazar rutinas API de subsistemas distintos
porque cada subsistema de entorno opera de forma diferente? Por ejemplo, un handle de archivo creado
por el subsistema Win32 no se puede trasladar al subsistema POSIX.
Es
más,esasaplicacioneshíbridasnoseejecutaríanen
los sistemasoperativosMS-DOS,Windows,
POSIX, u OS/2.
El MS-DOS y la emulación de Windows de 16 bits se suministra por un subsistema de entorno llamado
MáquinaDOSVirtual(VDM,virtualDOSmachine),queproporcionaunentornocompletodeuna
máquinaMS-DOS.LasaplicacionesenMS-DOS
y las basadasenWindowsde16bitsseejecutan
dentrodelcontextodeprocesosVDM,
y adiferenciadeotrossubsistemasdeentorno,pueden
ejecutarse múltiples procesos VDM al mismo tiempo. Puesto que el subsistema Win32 maneja todas las
salidas de video, los demás subsistemas de entorno deben dirigir hacia éI sus propias salidas de video
para que se visualicen.
El VDM, al ejecutar aplicaciones Windows de 16 bits, traduce las llamadas de salida de las aplicaciones
en llamadas a Win32 y las envía al subsistema Win32, mediante mensajes, para mostrar dichas salidas
y POSIX,asícomocualquiernúmerodeVDMejecutando
enpantalla.LossubsistemasdeOS/2
aplicacionesbasadasenMS-DOS,dirigen
las salidasenmodo-carácterdesusaplicacionesal
subsistema Win32, que muestra dichas salidas en ventanas de modo-carácter denominadas consolas.
Unsubsistemadeentornopuedesoportarmuchasaplicacionescliente.Cadasubsistemahaceun
seguimientodesusclientes
y mantienelainformaciónglobalquecompartenlasaplicacionescliente.
Aunque puedan ejecutarse varias VDMy subsistemas de entorno a la vez, Win32 es el Único subsistema
que se hace visible. De caraal usuario la impresión es que Windows ejecuta todas las aplicaciones.
72
Servicios nativos
Los subsistemasdeentornoimplementansusfunciones
API llamandoa los serviciosnativosde
Windows NT, queson los servicios del sistema proporcionados por
los componentes individuales del
ejecutor de NT. El administrador de memoria virtual proporciona los servicios de asignación y liberación
de memoria, por ejemplo, mientras que el administrador de procesos proporciona servicios para crear y
eliminar los procesos e hilos. Como ilustra
la figura 2-1 1, cuando un subsistema llama a un servicio
nativo de Windows NT, el hardware detecta la llamada y transfiere el control al ejecutor. El servicio se
ejecuta entonces en modo kernel.
73
FUNCIONAMIENTO EN RED
225933
Durante el desarrollodeWindows
NT,unopodíapasearporlassalasocupadas
por elequipode
desarrollo y ver quizás ala
mitad de las personas llevando alguna de las muchas camisetas que se
repartían entre los trabajadores de Microsoft en una u otra de las reuniones,
o por lograr algún objetivo.
Hastahacepoco,lasredesdeordenadorespersonaleseranañadidasgeneralmenteasistemas
operativos existentes cuando se presentaba
la necesidad de la comunicación entre ordenadores. Por
ejemplo,aMicrosoftLANManageramenudose
le denomina"sistemaoperativo
de red",pero en
realidadesunconjuntodesofisticadasaplicacionesydriversqueañadencaracterísticasdereda
sistemasoperativosexistentes (en concreto, MS-DOS, OS/2y UNIX). Suministraprestacionestales
como cuentas de usuario, seguridad de recursos, y mecanismos de comunicación entre ordenadores,
incluyendovíasdecomunicación(pipes)
con nombreybuzones
de correo. Aunque las primeras
versiones de LAN Manager todavía realizan estas funciones cruciales para otros sistemas operativos, en
Windows NT, el software de funcionamiento en red ya no está implementado como una capa que se le
añade al sistema operativo.En lugar de eso, es una parte del
ejecutor de WindowsNT, con las características listadas arriba incluidas
en el sistema operativo.
Así, ¿qué significa que el funcionamiento en red forma parte del sistema? Esta pregunta tiene varias
respuestas, pero la más básica es que el software de trabajo en red peer-to-peer o de igual-a-igual
(también llamado grupo de trabajo) está incluido en el producto Windows NT. El sistema está equipado
para soportar copia de archivos, correo electrónico, e impresión remota sin que sea necesario que
el
usuario instale un software de servidor especial en ninguna de las máquinas.
Debido a que el funcionamiento en red es una parte del sistema operativo,
el software de red puede
aprovechar los interfaces de sistema operativo internos utilizados por otros componentes del ejecutor de
WindowsNTparaoptimizar
su rendimiento.Esteasunto se tratacondetalle más adelanteeneste
capítulo.
Además de incluirlascaracterísticasdefuncionamientoen
red en el sistemaOperativo, el objetivo
predominantede la aplicación de reddeWindows
NT, comodescribióDaveThompson,
jefe de
desarrollo del equipo de red de Windows NT, fue proporcionar a los fabricantes de software y hardware
de red la posibilidad de "enchufar y jugar" (empezar a funcionar inmediatamente) con NT. Con esto, éI
queda decir que las redes, drivers de red, y servidores de red (como Novel1 NetWare, Banyan VINES, y
Sun NFS) existentes pueden interactuar e intercambiar datos con los sistemas Windows NT fácilmente.
Con tantos protocolos, tarjetas y drivers de red que soportar, Microsoft tenía que apoyarse
en otros
fabricantes que le ayudaran a producir varias partes del software de red
de Windows NT. Esta tarea está
facilitada, porque Windows NT contiene mecanismos que posibilitan que el softwarered
de integrado sea
cargado o eliminado del sistema operativo, y los mismos mecanismos pueden utilizarse para cargar o
eliminar otro software de red.
Además de permitir la carga y descarga del software de red, entre
los objetivos del funcionamiento en
red de Windows NT se incluyen los siguientes:
lnteroperar con versiones existentes
de LAN Manager que se ejecutan en otros sistemas operativos.
Permitir que las aplicaciones (sin modificarsu código) accedan a sistemas de archivos que no sean de
Microsoft, en otras redes que no sean LAN Manager.
Proporcionar las prestaciones apropiadas para construir aplicaciones distribuidas, tales como Microsoft
SQL Server, aplicaciones de procesamiento
de transacciones, etc.
Estecapítulopresentaalgunasdelascaracterísticasquehacen
Único el funcionamiento enredde
Windows NT. La primera sección describe los principales componentes del funcionamiento en red y sus
conexiones a los primeros productos de funcionamiento enreddeMicrosoft.Lasegundasecciónse
centrasobre el significadode"funcionamientoenredcomopartedelsistema".Latercerasección
Examina el diseño abierto de red de Windows
NT, que permite que LAN
Manager, NetWare, y otros componentesde red sean cargados en el sistema dinámicamente. La cuarta
seccióndescribealgunasdelasformasenlasqueestáequipadoWindowsNTparasoportar
74
Servicios nativos
Los subsistemasdeentornoimplementansusfunciones
API llamandoa los serviciosnativos de
Windows NT, que son los servicios del sistema proporcionados por
los componentes individuales del
ejecutor de NT. El administrador de memoria virtual proporciona los servicios de asignación y liberación
de memoria, por ejemplo, mientras que el administrador de procesos proporciona servicios para crear y
eliminar los procesos e hilos. Como ilustra la figura 2-11, cuando un subsistema llama a un servicio
nativo de Windows NT, el hardware detecta la llamada y transfiere el control al ejecutor. El servicio se
ejecuta entonces en modo kernel.
73
aplicacionesdistribuidasatravésdesusprestaciones
devíasdecomunicación(pipes)connombre,
buzonesdecorreos,yllamadasdeprocedimientoremoto'&(RPC).Laúltimaseccióndescribeel
funcionamientoenred
avanzado y las prestacionesdeseguridaddistribuida
de WindowsNT,que
soporta las necesidades de grandes redes de ordenadores, como por ejemplo, las redes que abarcan
toda una empresa.
Antecedentes
El funcionamiento en red esun asunto complicado, empapado en notas a pie de página históricas, e
inundado de acrónimos (incluso cuando la historia entera del funcionamiento en red de los ordenadores
tiene sólo unas dos décadas de edad). En su infancia, el funcionamiento en red simplemente significaba
la conexión de dos ordenadores con un cable y permitir que
los archivos fueran transferidos de uno a
otro a través de dicho cable. Con el tiempo, los fabricantes de ordenadores desarrollaron arquitecturas
de red únicas que trabajaban dentro de sus propios sistemas pero
no a través de diferentes tipos de
sistemas. En nuestros días, sin embargo, es común que tanto los individuos como las empresas tengan
una mezcolanzade hardware de ordenador, y que todos
los componentes se comuniquen.
En algunos aspectos, el reto de mezclar diferentes arquitecturas de red se parece al problema planteado
don los dispositivos de E/S que deben soportarlos sistemas operativos. Abundan las incompatibilidades,
y hay que establecer un modelo en el cual encajen
los diferentes componentes. En Windows NT,
el
software de funcionamiento en red está implementado en gran
parte como una serie de sofisticadas
extensiones del sistema de EISde NT. Esto tiene sentido sise entiendeel funcionamiento enred como el
medio por el cual los usuarios y las aplicaciones pueden acceder, no
sólo a los recursos locales, sino
también a recursos remotos tales como archivos, dispositivos,
al final,
y
procesadores.
Antes de examinar el software de funcionamiento en red de Windows NT, las siguientes dos secciones
tratanprimerosobre los precursoresdealgunos de los componentesdelfuncionamiento en redde
Windows NT, y después
sobre
cómo
esos
componentes
encajan
en
el
modelo
estándar
de
funcionamiento en red.
'
Historia
La historia de Microsoft en el negocio del funcionamiento en red comienza con la versión 3.1 de MSDOS. Esta versión de MS-DOS añadía al sistema de archivos FAT extensiones necesarias sobre cierre
de archivos y cierre de registro, que permitíanque más de un usuario accediera a los archivos MS-DOS.
Con la liberación dela versión 3.1 de MS-DOS en 1984, Microsoft también liberó un
productodenominadoMicrosoftNetworks,alquesehacereferenciademanerainformalcomo"MSNET".
MS-NET estableció algunas tradiciones que aún perduran en LAN Manager y ahora
en Windows NT. Por
ejemplo,cuando un usuario o una aplicaciónemitían una peticióndeE/Sdestinadaa
unarchivo,
directorio, o impresora remota, MS-DOS detectaba la referencia de red la
y pasaba a un componente del
software MS-NET denominado redirector. El redirector de MS-NET aceptaba la solicitud y la enviaba, o
"redirigía" aun servidor remoto. Aunque completamente rediseñado
y mucho más sofisticado, el funcionamiento en red de Windows NT también incluye un redirector. De
hecho puede incorporar múltiples redirectores, cada uno de
los cuales dirige las solicitudes de E/S a
sistemas de archivoso dispositivos remotos.
Otra parte de MS-NET que se ha conservado en Windows
NT es su protocolo de bloque de mensaje del
es el conjunto de regias y
servidor (SMB, Server message block). Dicho de manera sencilla, un protocolo
convencionesporlacualdosentidades,
en estecaso,ordenadores, se comunican.Elsoftwarede
funciona-mientoenredgeneralmenteconsta
de múltiplesniveles de protocolossituadosencapas.
Dependiendo de con qué ordenadores se vaya a comunicar un sistema, puede soportar (como
en el
caso de Windows NT) diferentes protocolos
en los diferentes niveles dela jerarquía. El protocolo SMB de
MS-NET es una especificación de alto nivel para formatear mensajes y enviarlos a través de la red. Un
API denominado inferfaz NetBlOS se utilizaba para pasar solicitudes de E/S estructuradas en el formato
SMBaunordenadorremoto.
El protocolo SMB yelAPINetBlOSfueronadoptadosennumerosos
productos dela industria del
funcionamiento en red y también aparecieron en Windows NT.
Otro descendiente de MS-NET es el servidor de red. El servidor de red de MS-NET era un software que
residía en el ordenador remoto, transformándolo en un servidor de archivos e impresión dedicado: El
75
software simplemente monitorizaba la conexión con la red y esperaba la llegada de los SMB. Entonces
los desempaquetaba, determinaba lo que solicitaban, llevaba a cabo
la operación
(como por ejemplo,leerdatosdeunarchivo),ydespuésenviabadevuelta
los resultadosenotro
mensaje SMB. El término servidor se utiliza a menudo en el contexto del funcionamiento en red, para
referirse a un ordenador que está configurado para aceptar peticiones
de unordenadorremoto.Sin
embargo, puede pensar que un servidor de red es funcionalmente equivalente a un servidor
local(unsubsistemaprotegido,según
la terminología deWindows NT) queaceptapeticionesdeun
proceso de otra máquina
en lugar de un proceso de
la misma máquina.
El software de funcionamientoen red que forma parte de Windows NT incluye un servidor de red básico
que habla el protocolo SMB (haciéndolo compatible con MS-NET y LAN Manager). Además, Windows
NT puede cargar otros servidores de red y ejecutarlos
junto a su servidor interno. Para grandes redes de
empresa,estarácompatibleunproductoadicional,tentativamentedenominadoLANManagerfor
Windows NT. Transformará una Workstation de red en un avanzado
servidor de dominio. Un servidor de dominio tiene
la característica de compartir cuentas de usuario e
información de seguridad con múltiples sistemas asociados, agrupados juntos en un dominio de red, y
con otros
dominios
de red de
confianza.
También
proporciona
prestaciones
que
posibilitan
características avanzadas como por ejemplo, discos tolerantes a fallos. Estas capacidades permiten a
Windows NT soportar las necesidades de grandes redesde empresa.
Incidentalmente, MS-NET también incluye un conjunto de utilidades y una sintaxis de comandos para
acceder a discos e impresoras remotas. Como se podía suponer, incluye la nomenclatura NET USE X:
\\SERVER \\SHARE. Los nombres precedidos de la cadena \\ indican nombres de recursos de la red se
denominan nombres de convención de nombrado uniforme (UNC).
El modelo de referenciaOS1
AndrewTanenbaum,ensulibroComputerNetworks,defineunareddeordenadores
como "una
colección
interconectada
de
ordenadores
autónomos".3
Es
decir,
cada
ordenadores
físicamente
independiente y ejecuta su propio sistema operativo. Este es
el entorno para el que fue diseñada
la
arquitectura de red de Windows NT.
El objetivo del softwarede redes tomar una petición (normalmente una petición de E/S) de una aplicación
deunamáquina,pasarlaaotramáquina,ejecutar
la peticiónen la máquinaremota,ydevolver
los
resultados ala máquina original.
Lograr esto requiere transformar la petición varias veces en el camino. Una petición de alto nivel, como
"lee x número de bytes del archivo y en la máquina" requiere que el software determine cómo llegar ala
máquina z, yelsoftware de comunicación que esamáquinaentiende.Despuéshayquecambiarla
solicitud para transmitirla a través de la red, por ejemplo, dividirla en cortos paquetes
de información.
Cuando la petición alcanza el otro lado, debe comprobarse que está completa, debe decodificarse, y
enviarse al componente correcto de sistema operativo para ejecutar
la petición. Finalmente, hay que
codificar la respuesta para enviarladel vuelta a travésde la red.
Para ayudar a que los diferentes fabricantes de ordenadores estandarizaran e integraransu software de
funcionamientoenred,
la OrganizaciónInternacional de Estándares (ISO, InternationalStandars
Organization) definió un modelo software para enviar mensajes entre las máquinas.
El resultado es el
051, Open
modelodereferenciapara
la interconexióndesistemasabiertos(modelodereferencia
Systems Interconnection).El modelo define siete capas de software, como muestra
la figura 9-1.
El modelo de referencia OS1 es un esquema idealizado que pocos sistemas implementan con precisión,
pero se utiliza con frecuencia para encuadrar el estudio los
de principios del funcionamiento en red. Cada
capa en una máquina supone que está "hablando" con su capa análoga de
la otra máquina. Ambas
máquinas"hablan"el mismo lenguaje, o protocolo,en el mismo nivel.Enrealidad,sinembargo,una
transmisión de red debe descender por cada capa de
la máquina cliente, transmitirse a través dela red,
ydespuésascender por cadacapade
la máquinadestinohastaquealcanzaunacapaquepuede
entender e implementarla petición.
El propósito de cada capa del modelo es proporcionar servicios a las capas más altas y abstraer cómo
se implementan los servicios en las capas más bajas. Detallar el propósito de cada capa
va más allá del
alcance de este libro, pero a continuación
se dan unas breves descripciones de cada una de ellas:
76
Capa de aplicación (nivel 7). Controla la transferencia de información entre dos aplicaciones de red,
incluyendo
funciones
como
las
comprobaciones
de
seguridad,
identificación
de
las
máquinas
participantes, e iniciación del intercambio de datos.
Capadepresentación(nivel
6). Controlaelformatode
los datos,incluyendocuestionescomo
si
colocar un fin de línea en el retomo de carrolalimentación de línea (CR/LF)o
sólo retomo de carro (CR),si
los datos son comprimidoso codificados, etc.
Capadesesión(nivel
5). Gestiona la conexiónentrelasaplicacionesqueestáncooperando,
incluyendo sincronización de alto nivel y seguimiento de qué aplicación está "hablando" y cuál está
"escuchando".
Capa de transporte (nivel4). Divide el mensaje en paquetes y les asigna números de secuencia para
asegurarqueserecibentodos
y enelordencorrecto.Tambiénprotegealacapadesesiónde
los
efectos
de cambios en el hardware.
Capa de red (nivel 3).Controla el encaminamiento, control de la congestión, y funcionamiento de red.
Es la capa más alta que entiende la topología de
la red, es decir, la configuración física de las máquinas
en la red, el tipo de cableado utilizado para conectarlas, y diversas limitaciones de ancho de banda,
longitud delos cables que se pueden utilizar,
etc.
Capa de enlace (nivel 2). Transmite las tramas de datos de bajo nivel, espera el reconocimiento de
que han sido recibidas, y retransmite las tramas que se pierden en líneas no fiables.
Capa física (nivel 1). Pasa los bits al cable de la red o al medio de transmisión física que se esté
empleando.
Las líneas punteadas de la figura 9-1 representan los protocolos utilizados para transmitir una petición a
una máquina remota. Como ya se ha dicho, cada capa de la jerarquía supone que está hablando conia
capa análoga de la otra máquina, y ambas utilizan un protocolo común. La colección de los verdaderos
protocolos a través de los cuales una petición recorre su camino ascendiendo y descendiendo por las
capas de la red se denomina stack (pila) de protocolos.
La figura 9-2 representa los componentes del funcionamientoen red de Windows NT, cómo encajan en
el modelo de referencia OSI, y qué protocolos utilizan entre las capas. Los diversos componentes
se
describen más adelante en este capítulo.
77
.. .
1.
u
Entwno NDISY
Modelo OS1 y componenteS .del funcionamiento en red de Windows
NT
Comomuestra la figura,lascapas
OS1 nosecorrespondenconelsoftwarereal.
El softwarede
transporte, por ejemplo, cruza frecuentemente varias fronteras. De hecho, a menudo se hace referencia
al conjunto de las cuatro capas inferiores de software como
el "transporte".Ya los componentesde
software que residen en las tres capas superiores se les denomina "usuarios del transporte".
El resto de este capítulo examina los componentes del funcionamiento en red mostrados en
la figura
anterior(asícomootroscomponentesnomostrados
en la figura),cómoencajanjuntos,
y cómose
relacionan con Windows NT para formar un todo.
Funcionamiento en red integrado
La sección previa trata cómo algunos delos componentes del funcionamiento en red de WindowsNT se
OSI. La figura sig muestracómoencajandichos
corresponden con elmodelodereferencia
componentes en Windows NT.
78
I
-
DrhlIHs
dew
Visión simplifkada dsl lado d e l Cliwds la EfS de'la red
El software de modo usuario (el API de E/S de Win32, por ejemplo) emite una petición de E/S remota
llamando a los servicios nativos de E/S de Windows NT. Tras algún procesamiento inicial (descrito más
adelante), el administrador de E/S crea un paquete de petición de E/S (IRP) y pasa la petición a uno de
sus drivers de sistemas de archivos registrados (en este caso,
el redirector de Windows NT).
El redirector remite elIRP a los drivers de la capa más baja (los drivers de transporte), que lo procesan y
lo sitúan en la red. Cuando la petición llega al Windows NT de destino, es recibida por los drivers de
transporte y luego pasa a través de más drivers. La figura
9-4 ilustra la recepción de una petición de
escritura de red. Una operación de lectura seguiría el mismo camino hacia el servidor, con
los datos
devueltos a través del camino inverso. Más adelante en este capitulo se presentan más detalles sobre el
redirector, el servidor, y los drivers de transporte.
79
dedisco
YS de la red
Los A P I de red
Windows NT proporciona diversos medios para que una aplicación acceda a la
red:
El APIdeE/SdeWín32.Lasrutinas
de E/S realizanfuncionesestándares de apertura,cierre,
lectura, escritura, y otras más. Pasan a través de la red sólo cuando el archivo o la vía de comunicación
(pipe) con nombre a
la que se pretende acceder reside en una máquina remota. Generalmente esto
significa que el nombre de archivoes un nombre UNC, o que el nombre comienza con una letra de disco
que se refiere a una máquina remota.
El API de red de Win32 (WNet). Estas rutinas son útiles para aplicaciones, tales como el Windows
File Manager (el administrador de archivos de Windows), que
se conecta e inspecciona sistemas de
archivos remotos. Las rutinas de WNnet pueden ser utilizadas para inspeccionar sistemas de archivos
Microsoft u otros, a través de redes como
LAN Manager, NetWare,y VINES, por citar algunas.
LosAPIdelasvíasdecomunicación(pipes)connombre
y buzonesdecorreos
de Win32.
Proporcionan un interfazde alto nivel parael paso de mensajes entredos procesos, independientemente
de si el proceso destinatario es local o remoto. Los buzones de correos son parecidos,. excepto que en
lugardeproporcionaruncamino
de comunicaciónunoauno"entre
el remitente y el destinatario,
proporcionan mecanismos de comunicación "muchos a uno" y "uno a muchos". Los buzones de correo
son útiles para difundir mensajes entre cualquier número de procesos.
El APINetBIOS.EsteAPIproporcionacompatibilidadparaaplicacionesMS-DOS,Windowsde32
bits, y OS/2 que pasan corrientes de datos directamente a través de la red. También se suministra una
nueva versión para32 bits.
80
El API de Windows Sockets. Este nuevo API proporciona sockets o enchufes de 16 y de 32 bits; que
son un interfaz estándar tipo UNIX para el funcionamiento en red. Windows NT también proporciona
capas más bajas decódigoquesoportanaplicacionesUNIXypermitenqueWindowsNTparticipe
fácilmente en la red de área extendida Internet.
Lacaracterísticadellamadadeprocedimientoremoto(RPC).librería
en tiempodeejecucióny el
compilador permiten que los programadores escriban fácilmente aplicaciones distribuidas (ver secci6n
9.4.1 para más información).
Cada API encuentra su camino haciala red a través dc diferentes rutas.La figura 9-5 muestra rutinasde
E/SdeWin32quecIsubsistemaWin32irnplementallamandoa
los servicios del sistema de EIS de
El APIdeWindows
WindowsNT.4 El administrador de E/S entoncesmanda los IRPalredirector.
Sockets y el API deNetBIOS, en contraste, son DLL que llaman a servicios deE/S de Windows NT, y el
administrador de E/S lmanda los IR? a los drivers de Windows Sockets
y NetBlOS respectivamente.
Como muestra la figura sig, llama al API de WNet (implementado como una DLL) dando un rodeo a
través del componente de funcionamiento en red denominado
servicio de Workstation. En la jerga del
funcionamiento en red, el término servicio se refiere a un proceso servidor que proporciona una función
específica (refiriéndose aun trabajo) y que quizás exportaun AH que soporte esa función. Las funciones
de servicio incluyen las siguientes:
Administrar el redirector integrado(el servicio de workstation) y el servidor(el servicio de servidor).
Enviar mensajes de alerta a los usuarios conectados (el servicio de alerta). Por ejemplo, cuando se
llena el disco duro.
Recibir mensajes de otros sistemas (el servicio de mensajería), como por ejemplo, la notificación de
que se ha completado un trabajo de impresión.
81
Diferentes rutas para llegara la red
Unservicioesunprocesoparecidoa
unsubsistemaprotegidodeWindowsNT.Algunosservicios
simplemente se ejecutan en modolatente(ensegundoplano,
o background),mientras que otros
los hilosdeotrosprocesospuedenllamarenviandomensajes
al servicio.A
proporcionanAPIque
diferencia de los subsistemas protegidos, los servicios que proporcionan API generalmente utilizan
la
característica de paso de mensajes RPC en lugar de la LPC para comunicarse con los clientes. Utilizar
las RPC pone el servicio a disposición de los procesos de máquinas remotas, así comode los procesos
locales (ver sección9.4.1 para más información).
El serviciodeWorkstationesesencialmenteuna"cubierta"
de modousuarioparaelredirectorde
Windows NT. Realizael trabajo para cl soporte del API de WNet, proporciona funciones de configuración
paraelredirector, y contienecódigodemodousuarioparadevolverlasestadísticasdelredirector.
82
Cuando una aplicación llama auna función del API de WNet,la llamada pasa primero al Un componente
denominado el controlador de servicio es responsable de cargar y poner en marcha
los servicios de
Windows NT. Es también el medio por el cual aquellos drivers que no se han cargado al iniciar el sistema
se pueden cargar y descargar después. Muchos de
los componentes de funcionamiento en red están
implementadoscomodriversypor
lo tanto,soncargadosenelsistema(oeliminadosde
éI) por el
controlador de servicio.
Componentes de funcionamiento en red integrados
Aunque muchos componentes de software están involucrados en el funcionamiento en red de Windows
NT, dos de los más importantes son los que tienen la historia más larga en Microsoft: el redirector y el
servidordered.Como
en el softwareoriginalde MS-NET, el redirectordirigelaspeticionesdeE/S
emitidas localmente a un servidor remoto, y el servidor recibe y procesa tales peticiones. Desde luego,
excepto por los nombres, poco más acerca del redirectoro el servidor se parece al software original. Los
originales fueron escritos en lenguaje ensamblador y entrelazados en tomo al software del sistema MSDOS existente.
Aunque el nuevo redirector y servidor forman parte de Windows
NT,nodependen de la arquitectura
hardware en la que se está ejecutando el sistema operativo. Están escritos en C e implementados como
drivers de sistemasdearchivos,quepuedensercargados
o eliminadosdelsistemaencualquier
momento. Pueden también coexistir con
los redirectores y servidores de otros fabricantes.
lmplementar el redirector y el servidor como drivers
de sistemas de archivos les hace ser parte del
ejecutor de Windows NT. Como tales, tienen acceso a los interfaces especializados que proporciona el
administrador de E/S a los drivers. Estos interfaces, a su vez, fueron diseñados teniendo presentes las
necesidades de los componentes de red. Este acceso a los interfaces de driver, más la posibilidad de
llamar directamente a funciones del administrador de cache, contribuye
enormemente a aumentarel rendimiento del redirector y el servidor. El modelo de driver estratificado del
administrador de E/S imita la estratificación natural delos protocolos de red. Puesto queel redirector y el
servidor son drivers, pueden ser colocados en capas sobre cuantos drivers
de protocolo de transporte
sea necesario.Estaestructurahace
que los componentesderedseanmodulares,ycreaunas
transiciones eficientes desde la capa del redirector o del servidor, hacia la capa de transporte y la capa
física de la red.
Redirector
Un redirector de red proporciona las prestaciones necesarias para que una máquina basada en Windows
NT acceda a los recursos de otras máquinas de la red. El redirector de Windows NT puede acceder a
archivos, vías de comunicación (pipes) con nombre, e impresoras remotas. Debido a que implementael
protocolo SMB, trabaja conlos servidores existentes de MS-NET y LAN Manager, permitiendo el acceso
a los sistemas MS-DOS, Windows yOS/2 desde Windows NT Los
mecanismos de seguridad aseguran que los datos de Windows NT compartidos en la conexión de red
están protegidos de accesos no autorizados. AI igual que un driver de sistema de archivos, el redirector
funciona como otros drivers. Cuando se carga en el sistema, su rutina de inieialización crea un objeto
Devicekedirector) pararepresentarlo.Larutinadeinicializacióntambién
dispositivo(denominado
establece códigos de función que representan las operaciones que controlan y registran
los puntos de
entrada del driver (rutinas de despacho) para esas operaciones. Cuando el administrador de E/S recibe
una petición de E/S de red, crea un IRP y llama a una rutina de despacho del redirector, pasando de
largo el IRP. Después de queel redirector procesa la petición (al acceder ala red), se completa el IRP, y
se devuelven los resultados al solicitante.
Entreelenvíodeunapeticiónylarecepción
de unaréplica,elredirectordesempeñaunatarea
primordial: proporcionar un "sistema de archivos" que se comporte como un sistema de archivos local
aunque funcione sobre un medio inherentemente informal (una red). El enlace físico de un ordenador a
otro sencillamente falla mucho más a menudo que
el enlace entreun ordenador y su
disco duro o unidad de disco flexible. Cuando falla
el enlace, el redirector es responsable de recuperarla
conexión, hasta donde sea posible,
o de que el fallo ocurra de manera que las aplicaciones puedan
volver a intentar la operación. El redirector utiliza varias técnicas para lograr esto. Por ejemplo, vuelve a
conectar tranquilamente a un servidor cuando se pierde una conexión. También recuerda qué archivos
83
estaban abiertos y vuelve a abrirlos bajo ciertas circunstancias. (Bajoel redirector, la capa de transporte
asegura la fiabilidad en las transmisiones de datos a nivel de bits).
AI igual que otros drivers de sistemas de archivos, el redirector debe trabajar dentro del modelo de E/S
asíncrono,permitiendooperacionesdeE/Sasíncronocuandosonemitidas.Cuando
una peticiónde
modo usuario es emitida asincrónicamente (comose describía en el Capitulo 8) el redirector de red debe
la mayoría de los casos,una
volverinmediatamente,haya o noterminadolaoperacióndeE/S.En
petición de red de E/S asíncrona no termina inmediatamente,
así que el
redirector debe esperar a que se complete tras devolver el control al solicitante. Paradójicamente, el
código de driver es activado siempre por un hilo que llama, dentro del contexto de ese hilo. No tiene
espacio de direcciones de su propiedad
ni otros hilos. ¿Cómo puede entonces
el driver llamar a otra
rutina para que espere? Este problema no es exclusivo de los redirectores; la mayoría de los drivers de
sistemas de archivos presentan elmismo dilema. En el diseño del sistema de E/S original, los drivers de
sistemasdearchivosquenecesitabanrealizarprocesamientoensupropiocontexto,simplemente
creaban un proceso de modo kernel asociado con el driver y utilizaban sus hilos para llevar a cabo el
procesamientoasíncrono.Sinembargo,estasolucióneracostosaentérminosdeutilizaciónde
la
memoria del sistema. Por lo tanto, fue ideada una nueva solución.
Windows NT tiene un proceso especial del sistema para inicializar el sistema operativo cuando se pone
en marcha. Este proceso tiene varios hilos trabajadores que entran
en un bucle, esperando a ejecutar las
peticiones en nombre de los drivers y otros componentes del ejecutor que realizan trabajos asíncronos.
Si un driverde sistema de archivos necesitaun hilo para realizarun trabajo asíncrono, sitúa enla cola de
este proceso especial un elemento de trabajo antes de devolver
el control y uncódigodeestado
al
solicitante original. Se activa un hilodel proceso del sistema que lleva a cabo las operaciones necesarias
para procesar la petición de E/S y completarel IRI' del solicitante original .El redirector envía y recibe
los
SMB para realizar su trabajo. Aunque por simplicidad, la figura 9-2 representa al redirector y al servidor
como componentes de la capa de sesión del modelo
OSL de funcionamiento en red,el protocolo SMB es
en realidad un protocolo de
la capa de aplicación, como ilustrala figura 9-6.
El interfaz sobre el que el redirector envía sus SMB se denomina interfaz de driver de transporte (TDI,
transport driver interface). El redirector llama a rutinas del TDI para transmitir
los SMB a los diversos
drivers de transporte cargados en Windows NT. Para llamar a funciones del IDI, el redirector debe abrir
un canal denominado circuito virtual hasta la máquina de destino y después enviar sus SMB sobre ese
circuitovirtual El redirectormantiene un circuitovirtualparacadaservidoralcualestéconectado
Windows NT, y multiplexar las peticiones destinadas a ese servidor a través mismo
del
circuito virtual. La
capa de transporte bajo el redirector determina cómo implementar realmente
el circuito virtual y enviar
los
datos a través dela conexión de red.
LarryOsterman,eldesarrolladoquetransformóelredirectordeMS-NETenelredirectorde
LAN
Manager 1.0 para MS-DOS, y después lo volvió a escribir para LAN Manager
2.0, también diseño el
redirector de Windows NT. Además de mejorar la fiabilidad,lese
exigió que proporcionan el cien por cien
de compatibilidad conel protocolo SMB existente. Para lograr esto, utilizó el mismo
protocolo que para pasar mensajes a servidores de nivel inferior
(los servidores MS-NET yLAN Manager
existentes). Mantener este protocolo permite que Windows
NT interactúe conlos servidores de Windows,
OS/2 o MS-DOS que ejecuten LAN Manager. Para las transmisiones entre los sistemas Windows NT.
Ostermanmejoróelprotocolo
SMB parasoportarlasoperacionescomunesdelsistemade
E/S de
Windows NT. Por ejemplo, el protocolo mejorado puede acomodar operaciones específicas de Windows
NT, como por ejemplo, abrir un archivo con acceso de borrado, abrir un directorio, situar listas
de control
deacceso(ACL)enarchivosconpropósitosdeseguridad,yrealizaroperacionesdeconsultapara
recuperar información acerca de archivos. Además, el nuevo protocolo SMB pasa las cadenas de texto
como caracteres Unicode, para asegurar una transmisión correcta
de los caracteres de conjuntos de
caracteres internacionales.
Servidor
AI igualque el redirector, el servidordeWindowsNTestáescritoparateneruncienporciende
compatibilidadcon los protocolosSMB de MS-NETyLANManager.Estacompletacompatibilidad
permite que el servidor procese las peticiones que se originan, no sólo en otros sistemas Windows NT,
AI igual que el
sino también en sistemas en los que se esté ejecutando el software de LAN Manager.
redirector, el servidor está implementado como un driver de sistema de archivos.
84
Alguien podría preguntarse por qué algo llamado "servidor", no está implementado como un proceso
servidor. Podría ser razonable esperar que un servidor de red funcionara como un subsistema protegido
(un proceso cuyos hilos esperan alas peticiones que llegan dela red, las ejecutan, y después devuelven
el resultado a través de la red). Este método era la elección más obvia, y Chuck Lenzmeier la consideró
cuidadosamentecuandocomenzó
el diseñodelservidordeWindowsNT.Lenzmeier,
el principal
desarrolladordelservidor,con
siete añosdeexperienciaen
el funcionamientoenredbasadoen
VAXNMS y en RPC, decidió implementar el servidor como un driver de sistema de archivos. Aunque el
servidor no es un driver en el sentido usual, y aunque no gestiona un sistema de archivos, utilizar
el
modelo de driver proporciona ventajas respectolaaimplementación del servidor como un proceso.
La principal ventaja es que,como un driver, el servidor existe dentro del ejecutor de Windows NT y
puede llamar directamente al administrador de cache de WindowsNT para optimizar sus transferencias
de datos. Por ejemplo, si el servidor recibe una petición para leer una gran cantidad de datos, llama al
administrador de cache para localizar los datos en el cache (o para cargar los datos en el cache si aún
no están allí) y para cerrarlos datos en memoria. El servidor entonces, transfierelos datos directamente
desde el cache a la red, evitando de ese modo operaciones innecesarias de acceso al disco o copia de
datos. De manera, similar, si se le pide que escriba datos, el servidor llama al administrador de cache
los datosquese
van arecibir,ypara
que les seaasignadauna
paraquereserveespaciopara
localización de cache. Después,
el servidor escribelos datos
directamente en el cache. AI escribir en el cache en lugar de en el disco, el servidor puede devolver el
control al cliente más rápidamente. El administradordecacheescribedespués
los datos al disco en
modo latente (utilizandoel software de paginación del administrador de VM).
AI llamar
al
administrador
de
cache,
el servidor
está
en
efecto,
asumiendo
algunas
de
las
responsabilidades del administrador deE/S en lo que respecta a lograr un procesamiento más agilizado.
Otraformaen
la queelservidorasumeestepapelesalformatearsuspropiosIR?ypasarlos
directamente a los drivers de NTFS, FAT y HPFS. Puede también elegir copiar datos en
o desde el
cache en lugar de crear IRP. Si fuera un subsistema de modo usuario (o incluso uno de modo kernel),
tendría que llamar a los servicios de E/S de Windows NT para procesar las peticiones que llegaran, lo
cual requeridaun poco más de sobrecarga.
Como driver de sistema de archivos,
el servidor también tiene un poco más de flexibilidad de la que
tendría como proceso.Por ejemplo, puede registrar tina rutina de terminación de
E/S, lo cual permite que
seallamadoinmediatamentedespuésdeque
los drivers de lascapasmásbajasfinalicensu
procesamiento, de forma que puede llevar a cabo cualquier procesamiento posterior que
sea necesario.
Aunque el servidor de Windows NT está implementado como un driver de sistema de archivos, otros
servidores pueden ser implementados
o como drivers o como procesos servidores.
AI igual que el redirector, el servidor utiliza el proceso de sistema inicial para controlar las operaciones de
E/S asíncronas y aquéllas operaciones con una elevada sobrecarga utilizadas ocasionalmente que no
requieren una velocidad óptima, por ejemplo, abrir un archivo. Las operaciones que requieren la mayor
velocidad, como por ejemplo, las operaciones de lectura y escritura, son ejecutadas directamente en el
driver siempre que sea posible para evitar la sobrecarga de una selección de contexto. Aunque requiere
unaseleccióndecontexto,utilizar
el procesodesistemainicialpararealizarlasoperacionesde
red
permite que el servidoresperea los handles de objeto cuando sea necesario
o quetomefaltasde
página, y ninguna de estas operaciones pueden hacerse cuando se ejecuta en
el contexto de afro hilo en
un IRQL elevado. La posibilidad de tomar faltas de página quiere decir que menos cantidad del código de
servidor debe permanecer residente
en memoria.
CuandoWindowsNT
seponeenmarcha,
el administradordeE/Scargaaquéllosdriversquese
requieren primero en la secuencia de inicialización (como por ejemplo,los drivers de sistema de archivos
y de disco, el driver de video, y los drivers de ratón y teclado). Cuando la secuencia de inicialización ha
progresado lo suficiente para pasarde modo kernel a modo usuario, se invocaal controlador de servicio
para cargar el resto de los drivers, incluyendo el servidor, el redirector ylos drivers de transporte de red.
El controlador de servicio carga estos drivers llamando alas servicios del sistema de
E/S, que las copian
en memoria y ejecutan sus rutinas de inicialización. Cada rutina de inicialización de driver crea un objeto
dispositivo y lo inserta en el espacio de nombres del administrador de objetos. El controlador de servicio
puede ser invocado también en cualquier momento cuando el sistema está ejecutándose, para cargar
o
descargar servidores de redo para detenero poner en marcha servicios de red.
85
Resolución de nombres
Uno de los principales objetivos que implementa Windows NT
es extender el alcance del sistema deE/S
local para incluir recursos remotos. Puesto que tales recursos son objetos,
el software de funcionamiento
en red debe trabajar dentro de la estructura de objetos locales para acceder a esos recursos. Cuando
una aplicación abre un archivo, realmente abre un handle aun objeto archivo de Windows NT.El objeto
archivo contiene datos específicos para esa "instanciade apertura" del archivo, por ejemplo, datos tales
como el modelodecomparticióny
el punterodearchivo. El procesamientoes el mismo cuando el
archivo a ser abierto está localizado en un ordenador remoto. El administrador
de objetos se involucra al
crear un objeto archivo y abrir un handle
él. a
Como con los archivos locales, hay que resolver el nombre de archivo que abre
la aplicación, es decir, el
sistema operativo debe determinaren qué dispositivo está el archivo, y dónde está el archivo dentro del
sistemadearchivos.Paraarchivosremotos,
el sistemaoperativotambiéndebedeterminar
enqué
máquina está almacenadoel archivo y cómo enviar
una petición ala máquina.
Supóngase, que el usuario ha asignado una letra de unidad de disco a un servidor remoto emitiendo el
comandoNETUSET:\\TOOLSERV\TOOLS.
El serviciode Workstation creaunobjetodeenlace
simbólico denominado T: en el espacio de nombres del administrador objetos de Windows NT, como
muestra la figura sig.
\
FbPPYo
...
Redrectnr
...
A:
Espacio de nombres del administrador de objetos
Más tarde una aplicación Win32 abre el archivo remoto T: \editor.exe. El subsistema Win32 traduce el
nombre a un objeto del Windows NT,\DosDevices\T:\editor.exe y llama al ejecutor de Windows NT para
abrir el archivo. Durante el procesamiento, el administrador de objetos descubre que \DosDevices\T: es
un objeto de enlace simbólico y sustituye el nombre especificado por \DosDevices-T:. Como muestrala
figura siguiente , \Device\Redirector es el nombre del objeto dispositivo que representa el redirector de
Windows NT,y T: se refiere al recurso remoto compartido de
LAN Manager, que localizará el redirector.
86
\
.
Resolución del nombre de fichero de red
LosobjetosdispositivoseutilizanenWindowsNTcomopuntodelanzamientohaciaunespaciode
nombres de objeto que no está controlado por el administrador de objetos de Windows NT. Al analizar un
nombre de objeto, si el administrador de objetos encuentra un objeto dispositivo en el PATH, llama al
métododeanálisisasociadoconelobjetodispositivo.Enestecaso,elmétodoesuna
rutina del
administrador de EIS que llama al redirector. El redirector construye los SMB y los pasa a través de un
driver de transporte a un servidor de SMB remoto,
el cual abre el archivo \edítor.exe de \\TOOLSER
JITOOLS. El administrador de objetos de Windows NT crea un objeto archivo local para representar el
archivo abierto y devuelve un handle de objeto al solicitante. De ahí en adelante, cualquier operación
sobre el handle de objeto pasa directamente
al redirector de Windows NT.
Un espacio de nombres de objeto parecido existe en el sistema de destino de Windows NT. El espacio
de nombres de objeto contieneel nombre \Device\Server, que se refiere al driver de sistema de archivos
que implementa las funciones del servidor que forma parte de Windows NT. Sin embargo, este objeto
dispositivo no se utiliza cuando el servidor recibe una petición. Sólo se utiliza cuando un administrador
del sistema serefiere al servidor porel nombre mientras lo gestiona.
Arquitectura abierta
Puesto que el servidor de red está integrado en Windows NT, podría parecer que está "cableado" allí,
pero no lo está. El objetivo de conectividad inmediata de Dave Thompson dictaba que Windows NT fuera
lo tanto, no sólo el redirector, el servidor y los
capaz de enlazarse a una gran variedad de redes. Por
drivers de transporte tienen que cargarse y descargarse dinámicamente, sino que deben poder coexistir
muchos de estos componentes. Windows NT soporta redes distintas de LAN Manager de varias formas:
ProporcionaaccesoasistemasdearchivosquenosondeMicrosoft,paraconexiónderecursose
inspección de red, y para E/S a archivos y dispositivos remotos, a través del API común Win32
WNet).
(el API
Permite que estén cargados al mismo tiempo múltiples drivers para protocolos de transporte de redy
que los redirectores llamen a uninterfaz Único y común para acceder a ellos.
Proporciona un interfaz y un entorno para drivers de tarjetas de red (NDIS
3.0) para acceder a los
drivers de transporte de Windows NT,
y para ganar portabilidad hacia sistemas MS-DOS futuros. Las
siguientesseccionesexaminancadaunadeestascaracterísticas,yelsoftwareempleadopara
implementarlas.
Acceso en modo usuarioa sistemas de archivos remotos
87
Como se dijo en
la sección 9.2.1, el WNet
y los APIde E/S de Win32 proporcionan dos formas de
acceder a archivos de sistemas remotos (y otros recursos) a las aplicaciones modo usuario. Ambos API
utilizan las características del redirector para encontrar su camino en la red. Aunque el análisis anterior
se centró en el software de red que forma parte del sistema, se pueden cargar redirectores adicionales
en el sistema para acceder a distintos tipos de red. Esta sección amplía el ejemplo original examinando
el softwarequedecidequéredirectorinvocarcuandosesolicitanpeticionesremotasde
E/S. Los
componentes responsables son:
Proveedordeencaminamientomúltiple(MPR,
multipleprovider router). UnaDLLquedeterminaa
quéredaccedercuandounaaplicaciónutilizaelAPIWNetdeWin32parasupervisarsistemasde
archivos remotos.
Proveedor múltiple de UNC (MUP,múltipleUNC(MUP,
múltiple UNCprovider).Undriverque
determina a qué red acceder cuando tina aplicación utiliza el API de
E/S de Win32 para abrir archivos
remotos.
Proveedor de encaminamiento múltiple parael API WNet
Las funciones WNet de Win32 permiten a las aplicaciones (incluyendo al Administrador de Archivos de
Windows) conectarse a recursos de red, como servidores de archivos, impresoras, e inspeccionar
los
contenidos de cualquier sistema de archivos remoto. Puesto que el API puede ser llamado para trabajar
a través de diferentes redes utilizando diferentes protocolos de transporte, tiene que haber software para
enviar correctamente la petición por la redy para comprender.
los resultados devueltos por los servidores remotos. La figura muestra el software responsable de esta
tarea.
88
Software de proveedor múltiple
Un proveedor es software que configura a Windows NT como cliente de un servidor de red remoto.
Algunas de las operaciones realizadas por un proveedor WNet incluyen el establecimiento yla liberación
de conexiones de red, impresión remota, y transferencia de datos. El proveedor WNet que forma parte
del sistema incluye una DLL, el servicio de Workstation, y el redirector. Otros fabricantes de redes
sólo
necesitan suministrar una DLL y un redirector.
Cuando una aplicación llama a una rutina WNet la llamada pasa directamente aIaDLL del proveedor de
encaminamientomúltiple(MPR),uncomponentedereddiseñadoporChuckChan.
El MPRtomala
llamada y determina qué proveedor WNet reconoce el recurso al que se está accediendo. Cada DLL de
89
proveedor bajo el MPR proporciona un conjunto de funciones estándares llamadas interfaz de proveedor.
Este interfaz permite al MPRdeterminaraquéredestáintentandoacceder
la aplicación, y dirigir la
petición al proveedor adecuado de WNet.
Cuando la rutina del API WNetAddConnection() llama al MPR para conectarse con un recurso de red
remoto, el MPR comprueba el registro de configuración para determinar qué proveedores de red están
cargados. Los llama de uno en uno en el orden
en el cual están listados en
el registro, hasta que un
redirector reconoce el recurso, o hasta que se ha llamado a todos
los proveedores. (El orden puede
cambiarse también editando este registro).
La función Wnetaddconnection() también puede asignar al recurso remoto una letra de unidad
o nombre
dedispositivo.Cuando
selellamaparahacereso,Wnetaddconnection()encaminalallamadaal
proveedor de red adecuado. El proveedor, a su vez, crea un objeto de enlace simbólico de Windows NT
que mapea la letra de unidad que se está definiendo al redirector (es decir, el driver del sistema
de
archivos remoto) para esa red. La figura ilustra cómo los nombres de recursos de red encajan en el
espacio de nombres del administrador de objetos de Windows NT.
AI igualqueel.redirectorintegrado,otrosredirectorescrean
un objetodispositivo en el espaciode
nombresdeladministradordeobjetoscuandosoncargadosen
el sistemaeinicializados.Entonces,
cuando el WNetuotrosAPIllaman
al administradordeobjetosparaabrirunrecurso
enuna red
diferente, el administrador de objetos utiliza el objeto dispositivo como punto de acceso al sistema de
archivosremoto.Llamaa
un método deanálisisdeladministrador
de EIS asociadocon el objeto
dispositivo, para localizar el driver de sistema
de archivos del redirector que puede manejarla petición .
, Proveedor
múltiple de UNC (MUP)
Proveedor de UNC múltiple para la EIS de archivos de Win32
90
El proveedor múltiple de UNC (MUP), diseñado por Manny Weiser, es un componente de red parecido al
MPR.Gestionalaspeticionesde
E/S destinadasaunarchivo
o dispositivoconunnombreUNC
(nombres que comienzan con los caracteres \\, indicando que el recurso existe en la red). El MUP toma
esas peticiones, y al igual que
el MPR, determina qué redirectorlocal va a reconocer el recurso remoto.
A diferencia del MPR, el MUP es un driver de Windows NT (cargado en
el momento de arrancar el
sistema) que realiza peticiones de EIS a drivers de capas más bajas, en este caso a redirectores,según
muestra la figura .
91
El driver MUP recibe la petición y envía asincrónicamente un IRP a cada redirector registrado. Entonces,
espera a que alguno de ellos reconozca el nombre
de recurso y conteste. Cuando un redirector reconoce
nombre
es
\\
el nombre,
indica
qué
parte
del
nombre
es sólo para él. Por ejemplo, si el
HELENC\PUBLICUnside\scoop.doc, elredirectordeWindowsNT
lo reconoceytomalacadena
\ILIELEMPUBLICcomopropia.EldriverMUPcogeestainformaciónydespuésenvíapeticionesque
comienzan con esa cadena, directa- mente
al redirector de Windows NT, saltflndose
la operación de
"sondeo". El cache del driver MUP tiene una característica de time-out, de forma que después de un
período de inactividad,da por terminada la asociación de cadenas con un particular.
Si más de un redirector llama a un recurso particular, el driver MUP utiliza la lista de registros cargados
del registro de configuración para determinar qué redirector tiene preferencia. La lista de redirectores
puede reordenarse editandola base de datos del registro.
Protocolos de transporte
Después de que una petición de red alcanza un redirector, la petición debe entregada a la red. Durante
la última década, se han desarrollado muy protocolos diferentes para transmitir información a través de
los protocolos,peroalmenosdebepermitirquepuedan
redes.Windowsnoproporcionatodos
proporcionados. Y cuanto más fácil sea esto, mejor.
En Windows NT, los protocolos de transporte están implementados con drivers, que al igualque los
servidores y los redirectores, pueden cargas descargarse del sistema. En el modelo de red tradicional,
un redirector que útil un protocolo de transporte concreto, debe saber qué tipo de entrada está esperar el
92
driverdeprotocolo
y enviarlelaspeticioneseneseformato.Lascapasbajasredirectordebenser
escritas para soportar diferentes mecanismos de paso de da para cada transporte utilizado.
Windows NT evita este problema proporcionando un
Único interfaz programación denominado interfaz de
driver de transporte (TDI, Transp. driver interface) para redirectoresy otros drivers de red de alto nivel.El
1 permite que redirectores y servidores permanezcan independientes de los transportes. De esa forma,
unaversiónúnicadeunredirector
o unservidorpuedeútil:cualquiermecanismodetransporte
disponible, según muestra la figura
El TDIesuninterfazasíncronoindependientedeltransporte,queimplementaunmecanismode
direccionamiento genérico y un conjunto de servicios y librerías. Cada driver de transporte proporcionael
interfaz en su capa más alta, de manera quelos redirectores (y los servidores en máquinas Windows NT
remotas) puedan llamarlosin importar qué transporte esté utilizándose por debajo del interfaz.
Para enviar una petición, el administrador de EIS llama a un redirector pasándole un IRP para que lo
procese. El redirector integrado controla la petición pasando SMB a través de una conexión de
circuito
virtual a un servidor remoto.
El TDI proporciona un conjunto de funciones que pueden utilizar los redirector para enviar cualquier tipo
y
de datos a través del transporte. El TDI soporta transmisiones orientadas a conexión (circuito virtual)
transmisionesnoorientadasaconexión(datagrama).AunqueLANManagerutilizacomunicación
orientadas a conexión, el software IPX de Novel1 es un ejemplo de red que empleo comunicaciones no
os siguientes transportes:
orientadas a conexión. Microsoft proporciona inicialmente1
93
TransporteNetBEUl(NetBIOSExtendedUserInterface).Protocolo
de transportedeárea
desarrollado para operar bajo el interfaz de red NetBlOS de Microsoft.
local
TransporteTCP/IP(TransmissionControl
Protoco//lnfernefProtocol).Setratadeunprotocolo
desarrollado por el Departamento de Defensa de EE.UU. para conectar sistemas heterogéneos en una
red de área extendida. TCP/IP es utilizado comúnmente en las redes basadas en UNlX y permite que
WindowsNTparticipe en los famososBBS,noticias,yserviciosde
correo electrónico.Eltransporte
TCPllP opera en un entorno compatible con STREAMS.
Otros transportesque existen o se están desarrollando en Microsoft
o en otros fabricantes son:
IPX/SPX (Internet Packet Exchange/SequencedPacket Exchange). Es un conjunto de protocolos de
transporte utilizado por el software
NetWare de Novell.
TransporteDECnet. Es unprotocolopropietarioutilizadoporDigitalEquipmentCorporationquese
suministra para enlazar sistemas Windows NT con redes DECnet.
.
.
AppleTalk.
Protocolo
desarrollado
por
Apple
Computer
Inc.,
que
permite
sistemas
a
Apple
Machintosh comunicarse con Windows
NT.
Transporte XNS
(Xerox
Network
System).
Protocolo
de
transporte
desarrollado
por
Xerox
Corporation que se empleaba
en las primeras redes Ethernet.
El entorno STREAMS merece una mención especial. Es un entorno de desarrollo de drivers para UNlX
System V que permite a los drivers
de transporte lograr un alto grado de portabilidad de un sistema
operativo a otro. Este entorno (que tiene por encima a TDI y por debajo
NDlS
a 3.0) permite que muchos
drivers de transporte basados en STREAMSque ya existen,puedanconectarseaWindowsNTcon
pocas o ninguna modificación. Los drivers de transporte como IPX/SPX, DECnet, y otros pueden ser
implementados como drivers basados en STRIEAMS
o como drivers monolíticos (como por ejemplo,
NetBEUl).
Entorno NDlS para driversde red
Los drivers de protocolo en la sección anterior no realizan labores a nivel físico. La conexión física
la
proporciona una tarjeta de red
que, o está integrada, o se añade en una ranura de expansión de
la
máquina. Cada tarjeta de red (a veces denominadas adaptadores
de red) es capaz de comunicarse a
través de un tipo particular de cable, utilizando una topología concreta de. red5
Lastarjetasderedvienencondriversdered,queen
el pasadoimplementabanconfrecuenciaun
protocolo específico de red (por ejemplo,
XNS o TCPIIP). Debido a que Windows NT permite cargar
muchos protocolos diferentes, cada fabricantede tarjetas de red que emplee este método podría querer
prescribir sus drivers para soportar varios protocolos (lo cual no es una estrategia ideal). Para ayudar a
los fabricantesaevitarestetrabajoinnecesario,WindowsNTproporciona
un interfazy un entorno,
denominado especificación de interfaz de driver de red
(NDIS, network driver lnferface specification) que
aíslaa los driversderedde
los detallesdelosdiferentesprotocolosdetransporte,yviceversa.
Se
ilustra en la figura
.
94
.'
Enlugarde
escribir undriverespecíficodetransporteparaWindowsNT,
los fabricantesderedes
proporcionan el interfaz NDlS como la capa más alta de un driver de red aislado. Hacer eso permite que
cualquier driver de protocolo dirija sus peticiones de red a la de red llamando a su interfaz. De esa forma,
un usuario puede comunicarse a través de una red TCP/IPy una NetBEUl (o DECnet, NetWare, VINES,
etc.) utilizando una tarjeta de redy un Único driver de red.
EJ interfaz /NDIS ha estado disponible en LAN Manager, pero esta actualizado en Windows NT mediante
la versión 3.0 deNDIS.6Laversión
3.0 esportable(escritaenC),estáactualizadaparautilizar
direcciones de 32 bits en lugar de direcciones de 16 bits,
y soporta multiprocesador. Como versiones
anteriores,puedecontrolarmúltiplesconexionesderedindependientes
y múltiplesprotocolosde
transporte simultáneamente.
Cada driver de red NDlS es responsable de enviar y recibir paquetes a través de su conexión de red, y
de gestionar la tarjeta física en nombre del sistema operativo. En su nivel más bajo
el driver NDlS se
comunica directamente con la tarjeta o tarjetas que sirve, utilizando rutinas NDlS para acceder a ellas.El
driver NDlS pone en marcha la E/S en las tarjetas y recibe interrupciones de ellas. Llama a los drivers
de protocolo de niveles superiores para indicar que ha recibido datos
y para advertirles de la terminación
de una transferencia de datos.
NDlS permite que los drivers de red sean portables sin que sea necesario que tengan conocimiento del
procesador o del sistema operativo bajo el cual se están ejecutando.Los drivers de red pueden llamar a
sí mismosdeinformaciónespecíficade
la plataforma,demaneraque
rutinasNDlSparaaislarsea
puedan moverse fácilmentede un sistema Windows NT a otro,o de Windows NT a futuros sistemas MSDos / Windows NT. En Windows NT,el software NDlS llama alas rutinas del kernel de Windows NT para
95
c
adquirir y liberar cierres de giro (para operaciones seguras en multiprocesadores) y llama a rutinas del
administrador de E/S para conectar objetos interrupción al IRQL adecuado de la tabla de despacho del
kernel.Estosson sólo dosejemplosdetareasqueeldriverdetarjetaderedpodríanecesitarpara
hacerlo por si mismo si estuviera escrito como un driver de Windows NT. Al llamar por
el contrario a
rutinas de NDIS, los drivers de NDIS escritos para Windows NT se mueven fácilmente al entorno de
driver de dispositivo virtual de Windows.
Entorno de aplicación distribuida
Encontrasteconsudefinicióndeunareddeordenadores,AndrewTanenbaumdefineunsistema
distribuido como aquél en el cual "la existencia de múltiples ordenadores autónomos es transparente (no
visible) al usuario") Es decir, un Único sistema operativo controla varios ordenadores conectados en red,
yplanificasusprocesadores.WindowsNTno
esun sistemaoperativodistribuido.
Se ejecuta en
ordenadores multiprocesador, planificando todos los procesadores, pero requiere que los procesadores
compartan memoria.
Aunquenoesunsistemaoperativodistribuido,Windows
NT proporcionaprestacionesparacreary
ejecutaraplicacionesdistribuidas.Elprocesamientodistribuidosuelesignificarqueunusuariopuede
imprimir desde uno de varios ordenadores al enviar un trabajo de impresión a un servidor de impresión
remoto. De manera similar, era habitual que un ordenador entero fuera utilizado simplemente como un lugar para almacenar archivos compatibles, quelos usuarios pueden recuperar y copiar
a máquinas locales para su procesamiento. Ahora, el procesamiento distribuido es más sofisticado. En
lugar de almacenar archivos de bases de datos en una máquina remota y copiarlos a una máquina local
cada vez que un usuario quiere consultar
la base de datos, las aplicaciones, como por ejemplo, Microsoft
SQL Server, permiten al usuario emitir una petición de consulta buscando y clasificando las operaciones
en la máquina remota. Cuando se completa el procesamiento, sólo sedevuelven los resultados a la
máquina del usuario. Este tipo de operación cliente/servidor minimiza la carga en la parte de la red que
tiene la menor capacidad para controlarla, y manda el trabajo a un procesador remoto dejando libre el
procesador local. La ventaja de tales aplicaciones es que extienden la capacidad de procesamiento de
una Workstation de un solo usuario, explotando los ciclos de procesador de ordenadores remotos ya
menudo más potentes.
Este tipo de procesamientoes una extensión del modelo cliente/servidor presentado en el Capítulo5, en
el cual un proceso cliente envía una petición a un proceso servidor para su ejecución. Aquí la diferencia
es que el proceso servidor se ejecuta en un ordenador diferente. En
el modelo cliente/servidor local de
Windows NT, los dos procesos utilizan una herramienta de paso de mensajes denominada llamada de
procedimiento
local
(LPC)
para
comunicarse
través
a de
sus
espacios
de
direcciones.
Para
procesamientodistribuidosenecesitaunaherramientamásgeneralpara
el pasodemensajes.Se
necesitaeliminardeestaherramientalassuposicionesacerca
de aquéproceso le seráenviadoel
mensaje y en qué ordenador se está ejecutando el proceso. También, puesto que no es probable que
compartan memorialos procesos cliente y servidor
(a menos que se
estén ejecutando en el mismo ordenador), la herramienta debe asumir que todos los datos se copiarán
de un espacio de direcciones discreto a otro, a través la
dered.
El procesamientocliente/servidorrepresenta la aproximacióndeunaaplicación(másque
la deun
sistema operativo) al procesamiento distribuido, pero no puede tener éxito sin el adecuado soporte del
sistema
operativo.
El
sistema
operativo
debe
proporcionar
las
siguientes
características
para
implementar con éxito el procesamiento cliente/servidor
de red:
Una manera de crear y ejecutar partes de una aplicación en
ordenadores locales y remotos
Mecanismos a nivelde aplicación para paso de mensajes entre procesos locales
y remotos
Soporte para operacionesde red, incluyendo herramientas de transporte
Granpartedeestecapítulose
ha dedicadoadescribirlaterceracaracterística.Lassiguientes
subsecciones examinan las dos primeras.
Llamada de procedimiento remoto*
96
Una llamada de procedimiento remoto (RPC, remote procedure call) es una herramienta que permite al
programador crear una aplicación con cualquier número de funciones, algunas de las cuales se ejecutan
localmente, y otras en ordenadores remotos gracias a una red. Proporciona una visión funcional de las
operaciones de red más que una visión orientada al transporte, simplificando de esa forma el desarrollo
de aplicaciones distribuidas.
El software de funcionamiento en red está estructurado tradicionalmente en tomo a un modelo deE/S de
procesamiento.EnWindows NT, porejemplo,seiniciaunaoperaciónderedcuandounaaplicación
realizaunapeticiónde
E/S remota. El sistemaoperativo lo procesaporconsiguienteenviándola
al
redirector que actúa como un sistema de archivos remoto. Después de que el sistema remoto completa
lapetición y devuelve los resultados,latarjetaderedproduceunainterrupción.
El kernelgestionala
interrupcióny se completa la operación original de E/S, devolviendo
los resultados al solicitante.
La RPC emplea un método distinto. Las aplicaciones de RPC son como otras aplicaciones estructuradas,
conunprogramaprincipalquellamaprocedimientos
o afuncionesde
librería paraejecutartareas
específicas, según se muestra en la figura .
Empleo de librerías por parte de una aplicación
LadiferenciaentreaplicacionesRPC
y aplicacionesnormales,esquealgunasdelasfuncionesde
librería de unaaplicaciónRPCseejecutanenordenadoresremotos,mientrasqueotrasseejecutan
localmente según muestra la figura .
97
Para la aplicación RPC, todos los procedimientos parece que se ejecutan localmente. En otras palabras,
en lugar de hacer que el programador escriba código para transmitir peticiones de procesamiento
o
relacionadas con E/S a través de la red, para manejar protocolos de red, para tratar errores de red,
esperar resultados, etc, el software de RPC controla estas tareas automáticamente. La prestación de
RPC de WindowsNT puede trabajar a travésde cualquier transporte disponible cargado enel sistema.
Para escribir una aplicaciónRPC, el programador decide qué procedimientosse ejecutarán localmente y
cuáles se ejecutarán de forma remota.
Por ejemplo, supóngase que una Workstation cualquiera tiene
una
conexión
través
a de
red
con
un
superordenador
Cray,
o con
una
máquina
diseñada
específicamente para operaciones vectoriales de alta velocidad.Si el programador estuviera escribiendo
unaaplicaciónquemanipularagrandesmatrices,tendríasentido,desdeelpuntodevistadel
rendimiento, mandar los cálculos matemáticos al ordenador remoto escribiendo el programa como una
aplicación RPC.
LasaplicacionesRPCtrabajandeestaforma:amedidaqueseejecutaunaaplicación,llamaa
procedimientos locales así como a procedimientos que
no están presentes en la máquina local. Para
gestionarestoúltimo,seenlazalaaplicaciónconunaDLLlocalquecontieneprocedimientos
fragmentados, uno para cada procedimiento remoto. Los procedimientos fragmentados tienen el mismo
nombreyempleanel
mismo interfazque los procedimientosremotos,pero enlugarderealizarlas
operacionesrequeridas, el fragmentotoma los parámetrosquese le hanpasado y los forma para
transmitirlos a través de la red. Formar los parámetros quiere decir ordenarlos y empaquetarlas de una
forma determinada para adecuarlos a un enlace de red, como por ejemplo, resolver referencias y hacer
copia de las estructuras de datos referidas por
un puntero.
98
El fragmentollamaentoncesa
los procedimientosRPCentiempodeejecuciónquelocalizanel
ordenador donde residen los procedimientos remotos, determina qué mecanismos de transporte utiliza
ese ordenador, y le envía la petición utilizando software de transporte local. Cuando
el servidor remoto
recibe la petición RPC, toma los parámetros, reconstruye la llamada de procedimiento original, y llama al
procedimiento. Cuando finaliza el servidor, lleva a cabo la secuencia inversa para devolver resultados al
solicitante. La RPC en tiempo de
ejecución se ilustra en lafigura
.
Además de la RPC en tiempo de ejecución, la prestación de RPC de Microsoft incluye un compilador
de
definición
de
interfaz de
Microsoft
(MIDL, Microsoftlnterface Definition
denominado lenguaje
Language), que simplifica la creacióndeaplicacionesRPC.
El programadorescribeunaseriede
prototiposdefunciones(suponiendounaaplicaciónConC++)quedescribenlas
rutinas remotas,y
entoncessitúaalas
rutinas enunarchivo.Entoncesañadeaestosprototiposalgunainformación
adicional, como por ejemplo, el identificador exclusivo de red para el paquete de rutinas y un número de
versión, además de atributos que especifican si
los parámetros son de entrada, salida, o ambas cosas.
Los prototipos "adornados" forman el archivo lenguaje de definición de interfaces (IDL) del programador.
UnavezquesehacreadoelarchivoIDL,elprogramador
lo compilaconelcompiladorMIDL,que
producerutinasfragmentodelladoclienteydelladoservidor,asícomoarchivoscabeceraparaser
incorporadosa la aplicación.Cuandolaaplicacióndelladoclienteseenlazaalarchivoderutinas
fragmentadas, se resuelven todas las referencias a procedimientos remotos. Los procedimientos remotos
son entonces instalados, utilizando un proceso similar de
la máquina del servidor. El programador que
99
quiere llamar a una aplicación existente sólo necesita escribir el software del lado cliente y enlazar
la
aplicación ala herramienta localRPC en tiempo de ejecución.
La RPC en tiempo de ejecución utiliza un interfaz proveedor de transporte de
RPC genérico para comunicarse con un protocolo de transporte. El interfaz proveedor actúa como una
estrechacapaentre la herramientade RPC yeltransporte,mapeandooperacionesdeRPCenlas
funciones proporcionadas por el transporte. La característica de RlPC de Windows NT implementa DLL
proveedorasdetransporteparalasvíasdecomunicación(pipes)connombre,NetBIOS,TCP/IP,y
DECnet.SepuedensoportartransportesadicionalesescribiendonuevasDLLproveedoras.
De forma
similar, la herramienta RPC está diseñada para trabajar con distintas herramientas de seguridad de red.
AI igualquelasDLLproveedorasdetransporte,lasDLLdeseguridadpuedenañadirseentrelas
herramientas RPC y la red.En ausencia de otras DLL de seguridad, el software de RPC de Windows
NT
utiliza la seguridad integrada de las vías de comunicación (pipes) con nombre. La sección 9.4.2 describe
éstas con más detalle.
Para que una RPC interaccione con aplicaciones de RPC en otras máquinas, ambas deben emplear los
mismos convenios deRPC. La característica de RPC de Microsoft se atiene al estándar de RPC definido
por el Open Software Foundation(0SF) en su especificación de entorno de procesamiento distribuido
(DCE).Deesaforma,lasaplicacionesescritasutilizando
la RPCde
Microsoftpuedenllamara
procedimientos remotos puestos a disposición en otros sistemas que utilizan
el estándar DCE.
La mayoría de los servicios de red de Windows NT son aplicaciones RPC, lo cual significa que pueden
ser llamados por procesos locales y procesos en ordenadores remotos. Entonces, un ordenador cliente
remoto puede llamar al servicio de servidor de un usuario para enumerar recursos compartidos, abrir
archivos, imprimir colas,o activar usuariosen el servidor de ese usuario,o puede
llamar al servicio de mensajería de ese usuario para dirigirle mensajes (por supuesto, todo sujeto a las
restricciones deSeguridad). Chuck Lenzmeier, que desarrollóel servidor de Windows NT, considera los
a
serviciosconposibilidadde
RPCcomounode
los másútilesyquemásconvieneconsiderardel
funcionamiento en red de Windows NT.
Vías de comunicación con nombre
Las vías de comunicación (pipes) con nombre fueron concebidas originalmente por Microsoft como un
interfaz de alto nivel para NetBIOS. NetBlOS supuso para las aplicaciones de funcionamiento en red lo
que BIOS supuso para MS-DOS (realizó una abstracción del hardware). De esa forma, adoptó una visión
de bajo nivel de las comunicaciones de red. Las vías de comunicación (pipes) con nombre proporcionan
uninterfazmásabstractoyadecuadopara
la red.Antesqueestarrelacionadas
con laboresde
encaminamiento, transmisión de datos, etc, un programador que las utilice puede simplemente abrir una
vía (pipe) y situar datos en ella. Un usuario de la vía, la abre y lee datos de ella. La entrega a través de
ordenadoresestácontroladaautomáticamente,yunallamadaaunavíadecomunicación(pipe)con
nombre es equivalente a muchas operaciones
de nivel de transporte.
Las vías con nombre están implementadas en Windows NT por el driver de sistema de archivos de vías
con nombre, un sistema de pseudo-archivos que almacena datos de
la vía en memoria y los recupera
según la demanda. Actúa como. un sistema de archivos normal a la hora de procesar peticiones a vías
con nombre localeso al recibir peticiones de vías con nombre
de un ordenador remoto.
Cuando un programa local utiliza una vía con nombre que tiene un nombre
UNC (nombre de red), el
procesamiento se lleva a cabo como para cualquier otra petición de "archivo" remoto. El driver MUP
intercepta la peticióny la envía al redirectorresponsable de esared.Lafigura9-18ilustrael
procesamiento local y remoto a través de las
vías de comunicación (pipes) con nombre.
Las vías con nombre, como los archivos, están representadas como objetos archivo en Windows NT, y
operanbajo los mismosmecanismosdeseguridadqueotrosobjetosdelejecutor
de WindowsNT.
Cuando un hilo local trata de abrir una vía con nombre, el acceso requerido por el hilo se comprueba con
laACL del objeto archivo de la vías con nombre. Si no hay coincidencia, se deniega el acceso. La vía
con nombre, por lo tanto, lleva seguridad integrada. Además, permite que un proceso adopte el contexto
de seguridad de otro, una característica denominada imitación. Esta característica permite, por ejemplo,
que un subsistema tomela identidad deun proceso clienteal abrir una vía con nombre remota.
Debidoaquepuedenexistirtantoenordenadoreslocalescomoremotos,lasvíasconnombre
los procesosclientesyservidoresdeunaaplicacióndistribuidase
proporcionanmediosparaque
comuniquen y compartan datos. Esta comunicación interprocesos esconde
la comunicación intermáquina
1O0
de la aplicación. Por debajo de su API, la herramienta de vías con nombre utiliza uno de los transportes
de menor nivel para transmitir sus datos.
A diferencia dela RPC, las vías con
nombre operan en un modelo centradoen E/S y son útiles para enviar corrientes de datos de un proceso
a otro.
LaRPCpuedeejecutarsesobremúltiplestransportesutilizandodiferentestiposdemecanismosde
seguridad. Sin embargo, al operar en la red LAN Manager, utiliza vías
de comunicación con nombre
como transporte de red. AI hacer esto, las operaciones de RPC se benefician de la seguridad integrada
que Windows NT aplica a las
vías con nombre.
Redes corporativas y seguridad distribuida
ElsistemaWindowsNTestándarvieneconcaracterísticasdeservidorintegradasen
él. EJservidor
permiteoperacionesdetrabajo
engrupo,talescomolacopiadearchivosentredossistemas
o la
configuración de una impresora que puede ser compartida por varias workstations. Este tipo de trabajo
en red a baja escala es útil para pequeñas oficinas, redes caseras, o workstations individuales que se
conectan a redes a través de líneas telefónicas. En oficinas más grandes o laboratorios, sin embargo,
podrían requerirse más prestaciones.
En capítulos anteriores de este libro se han descrito varías facetas de la seguridad de Windows NT. La
seguridad es una parte importante de cualquier operación de red, necesaria para proteger los datos de
un usuariodelaccesodeotrosusuarios.Laseguridad,sinembargo,tieneciertaslaboresdc
administraciónasociadas. Por ejemplo,elCapítulo
5 describecómodebenacceder
los usuariosa
WindowsNT y cómosuinformacióndcpeticióndeacceso(logon)esautentificadaporelsistema
operativo. Para que un usuario sea reconocido por el sistema operativo,
un administrador de sistema
debe establecer una cuenta parael usuario en el sistema al que quiere acceder. Windows NT almacena
los nombres de cuentaycontraseñasenunabasededatosdenominada
la basededatosde
administración de cuentas de seguridad (SAM).
Cuando un usuario trata de acceder a su propia Workstation, Windows NT comprueba la base de datos
SAM asociada con su Workstation para autentificar su contraseña. En una pequeña red de sistemas
cada usuario opera en una Workstation Windows NT y cada Workstation tienesu propia base de datos
privada de cuentasde usuario, según ilustra la figura .
workstation1
SAM1
workstation2 SAM2
workstation3 SAM3
Pequeña configuraciónde red
Si un usuario particular quiere acceder a archivos(o dispositivos) de cada una de las workstations, debe
tener una cuenta independiente en cada máquina. En términos prácticos, esto significa que si carga su
contraseña y quiere mantenerla misma en cada una de las máquinas a las que accede, debe actualizar
su contraseña en cada sistema por separado.
Este tipo de mantenimiento de sistemas
no tiene sentido para grandes negocios
o instalaciones de redes
corporativas. A medidaque se incrementa el número deworkstations, la labordeadministrarlas se
incrementa proporcionalmente. Para acomodar las necesidades de redes de negocios, Cliff
Van Dyke,
101
Jim Kelly, yJimHorne,diseñaronmejoraspara
el software de red integradodeWindowsNT.El
tentativamentedenominado LAN ManagerparaWindowsNT,añadecaracterísticas
al soportede
funcionamiento en red peer-fo-peer que existe en Windows NT.’ Permite la creación de dominios de
red(una versión más primitiva apareceen LANManager 2.x) para simplificar la tarea de la administración
del sistema. La figura ilustra un ejemplo de dominio de red.
Configuración de red de tamario medio
En la figura, el circulogranderepresentaundominiodereden
el queestánenlazadostodos
los
ordenadores. El dominio incluye varias workstations y varios servidores denominados controladores de
dominio. Cuando un usuario hace una petición de acceso (logon) selecciona
si acceder a una cuenta
definida en su propia Workstation o acceder a una cuenta situada en su dominio primario (el dominio al
cual pertenecesu máquina).
Si el usuarioaccedeaunacuentadesuWorkstation,
el software de autentificaciónlocalutiliza la
informaciónalmacenadaen la basededatos 5AMdelaWorkstationparaautentificarsulogon.En
contraste, si el usuario accede al dominio, el software de autentificación local envíala petición de acceso
al dominio para lograrla autentificación. El controladorde dominio primario tieneuna base de datosSAM
que se aplica al dominio entero, y los controladores de dominio de backup mantienen copias dela base
de datos. Esto libera al usuario de adquirir cuentas
en cada servidor y mejora la tolerancia a fallos. Si un
controlador de dominio particular cae, el sistema puede dirigir dinámicamente la petición de acceso aun
servidor diferente.
E n la figura anterior, la línea entre la Workstation y el controlador de dominio primario representa una
relación de confianza, un término de seguridad que significa que
la Workstation confía al dominio la tarea
de determinar si el acceso de usuario es legitimo. Una relación de confianza permite a Windows NT
establecer un canal seguro entrelos dos sistemas y acceder a recursos del dominio. Un efecto lateral de
establecer un dominio es queelusuariotambiénpuedeaccederaldominiodesdecualquierotra
102
Workstation (o servidor) del dominioy acceder a su propia Workstation de forma remota. Por ejemplo,sí
un grupo ha establecido un laboratorio de desarrollo o test de sistemas Windows NT, y esos sistemas
son agrupados en un dominio,un usuario que tiene una cuentaen el dominio puede acceder a su cuenta
desde cualquier sistema del laboratorio. La posibilidad de crear un dominio de red es conveniente para
instalaciones de red de mediano tamaño, en las cuales se utilizan varios servidores porun gran número
de workstations. En instalaciones aúnmásgrandes,talescomoredescorporativas,
los dominiosson
aún más valiosos; permiten a una compañía dividir sus recursos en varias unidades discretas (dominios)
y gestionar las unidades de una manera flexible. La figura muestra una configuración de red de gran
tamaño.
Configuraciónde red de tamaño medio
Estaredcontienetresdominiosdiferentes:dosparagruposdedesarrollo(denominados
TEAMI y
TEAM2) y unoparapersonaldeadministración
del sistema(denominadoOPERATIONS).Existen
relaciones de dominio de con- fianza entre
los dominios de desarrolloy entre los dominios de desarrolloy
el dominio de operaciones. Esta estructura permite a un desarrollador
de TEAM 1,por ejemplo, acceder a
su dominio primario desde una máquina del dominio TEAM2. Más interesante, sin embargo,
es que esta
y acceda
estructura permite queunmiembrodelgrupodeoperacionesaccedaasucuentanormal
transparentemente a los recursos de los dominios TEAMI y TEAM2 como si pertenecieran al dominio
OPERATIONS. Los primeros productos LAN Manager, requerían personal de operaciones para obtener
una cuenta en cada dominio que necesitaba administrar, pero
LAN Manager for Windows NT suprime
este requisito. En este ejemplo, después de que un administrador
de sistema hace logon, puede acceder
a los recursos de otros dominios. Cuanto se conecta al dominio TEAMI, el software de seguridad de
de
TEAM 1 comprueba si tieneunarelacióndeconfianzaconeldominioOPERATIONS.Larelación
confianzaexiste,por lo queeldominio TEAMI utiliza su canal deseguridadparapasarunapetición
implícita de logon al dominio OPERATIONS, que autentifica el usuario (accediendo a la base de datos
SAM de OPERATIONS). Si la autentificación tiene éxito, el administradordelsistemapuedeinstalar
103
software, realizar backups, y otras labores de mantenimiento. Este tipo de seguridad distribuidapermite
que un organismo con múltiples dominios gestione sus recursos
más fácilmente a la vez que proporciona
acceso a todoslos recursos dela red.
Aunque las configuraciones de red
de tamaño mediano y grande permitan alos usuarios flexibilidad enel
acceso a los recursos, cada usuario puede configurar su propia máquina para limitar otros accesos
ella a
en los siguientes términos:
o
Aplicandolistasdecontroldeacceso(ACL)aarchivosyaotrosrecursoslocalesquepermiten
deniegan el acceso a usuarios individuales
o grupos de usuarios.
Asignando o no privilegios a usuarios individualeso grupos de usuarios.
Permitiendo explícitamente a individuoso grupos, el acceso al sistema mediante alguna o algunas de
las siguientes formas:
O Interactiva. Haciendola petición de acceso desdeel teclado
O Red. Haciendo la petición de acceso a través de una conexión de red
O Servicios.Haciendolapeticióndeaccesocomounservicio(comoporejemplo,
mensajería o el de alerta)
el serviciode
Un usuario mantiene el control sobresu entorno denegando los privilegios a un individuo o aun grupo de
individuos, asignando ACL a objetos locales, y limitando qué usuarios pueden acceder a una Workstation
individual. Si el usuario quiere puede, denegar a todo el mundo excepto a éI mismo la posibilidad de
acceder
su
amáquina
por
alguna
razón.
Haciendo
una
reflexión
sobre
su
versatilidad,
los
desarrolladores se refierenalgunasvecesalsoftwaredeadministración
de WindowsNTcomo
"FlexAdmin".
Ademásde los dominios, los dominios deconfianza, y la seguridaddistribuida,LANManagerfor
WindowsNTproporcionaredundanciadealmacenamientoendisco,duplicación
de archivos, y
herramientas gráficas de administración de servidor.
Conclusiones
La proliferación de grandes redes de ordenadores y
la necesidad de los usuariosdecomunicarse
y
compartir bases de datos centralizadasde información, ha elevado el software de red desdela esfera de
la utilidad a la esfera de la necesidad. Participando en una o más redes, un sistema operativo puede
incrementar su potencia de proceso y características de almacenamiento, permitir alos usuarios que se
comuniquenyquecompartandatos,yproporcionarunconjuntomásrico
de posibilidadesasus
aplicaciones de lo que podría ofrecer si estuviera solo. Para proporcionar estas ventajas de una manera
eficiente, el software de red de Windows NT forma parte de éI, operando en la misma base que el resto
del ejecutor de Windows NT. Aunque estén integrados, los componentes de red no están cableados en
el sistema. Los flexibles modelos de DLL y del sistemade E/S de Windows NT permiten al software ser
añadido y eliminado dinámicamentedel sistema operativo.
Windows NT proporciona varios interfaces de red que
le permiten enlazarse a diferentes tipos de redes e
interaccionarcondistintasclases
de sistemasdeordenadores.
El interfazproveedor permite a los
fabricantes de redes distintos de Microsoft enlazarse a la supervisión de Win32 y a los API de E/S de
archivos; la capa ID1 permite a los redirectores de red y a
los servidores acceder y utilizar cualquier driver
de transportedisponible sin modificar su código; la capa NDlS permite a los drivers de transporte
acceder a cualquier tarjeta de red y dará portabilidad de drivers de
red desde sistemas Windows Ni al
entorno de driver de dispositivo virtual de Windows.
Las prestacionesde las aplicaciones distribuidas, incluyendola RlPC y los mecanismos de comunicación
interprocesos, permiten a los desarrolladores de aplicaciones explotar ordenadores bajo red al mandar
trabajos intensivos a otras máquinaso accediendo a recursos remotos como si fueran locales. Además,
LAN Manager para Windows NT amplía las posibilidades de red del sistema Windows Ni estándar para
hacer frente a grandes redes
con características de administración y seguridad distribuidas. Con sus
104
extensascaracterísticas dered,Windows
NI puedetransformarelentornodetrabajodeunasola
Workstation en una extensa red de recursos de ordenador.
EPILOG0
Windows NT fue diseñado como un sistema operativo extensible, de forma que pudiera evolucionar de
una manera consistente y modular a lo largo del tiempo. De hecho, ya ha comenzado a evolucionar en
direcciones no resaltadasen este libro. El administrador de configuración, por ejemplo,
se menciona solo
muy brevemente pero representa la desaparición de
los archivos AUTOEXEC.BAT y CONFIG.SYS, y de
todos los archivos*.lNl que los usuarios sehanacostumbradoaver,trivializaryavecesromper.
Diseñado principalmente por Bryan Willman y KeithLogan, el administrador de configuración tiene varios
componentes,siendoelmásimportantedeelloselregistro
de configuración,que es unlugarde
almacenamiento de las características hardware de la máquinaen la que se está ejecutando el sistema
operativo, el software instaladoen el sistema, y la personao personas que empleanel sistema.
El primer y más importante objetivo del registro y su software asociado es hacer que los sistemas sean
fáciles de emplear. Lo logra examinando el hardware y averiguando lo que puede en el momento del
arranque, configurando automáticamente todo lo posible, preguntando al usuario el mínimo número de
preguntas cuando se instala el sistema operativo, y almacenando toda esta información para no se le
moleste al usuario varias veces por los mismos temas. Los drivers de dispositivo, las aplicaciones, y los
usuariostambiénpuedensituarinformaciónenesteregistro,ypuedensolicitar
la información que
necesitendelmismo.
El usuariopuedever,actualizar,
o modificarlainformacióndeconfiguración
utilizando el editor gráfico del registro. La información de este registro se almacena en objetos llave,
que
a objetos del ejecutor
son sometidos alos mecanismos de seguridad y a otros mecanismos aplicados los
de Windows NT. Este diseño le permite a Windows NT mantener una herramienta de almacenamiento
unificadaparasuaparentementealeatoriainformación
y, al mismotiempo,
le permiteponer la
información a disposición de
los sistemas de la red de una forma distribuida pero segura.
En la primera versión de Windows NT se introdujo
un componente importante de tolerancia a fallos,
gracias a los esfuerzos hercúleos de Bob Rinne y Mike Glass. Su driver de disco tolerante a falloses un
driver con estructura de capas que intermedia entre el driver
de disco y el driver del sistema. Según Bob,
éste proporciona "protección de datos de disco a través de redundancia de particiones". Esto significa
que una partición de disco puede ser duplicada dinámicamente
de una o varias formas, de manera quesi
el disco falla, todavía se encuentra accesibleuna copia de los datos. La función de "duplicado de disco"
se refiere a duplicación de una partición de disco en otro disco y, si es posible, a un disco conectado a
otro controlador de manera que los datos permanecen seguros sí falla uno de los dos. El "franjeado de
disco" se refiere a la combinación de un conjunto de particiones de disco de igual tamaño que residen en
discosseparados, en un Único volumen (o letradeunidad).Losdatosalmacenadosenelvolumen
expanden los discos, formando una "franja" virtual a través de ellos; una técnica de almacenamiento que
mejora las prestaciones de E/S permitiendo que se efectúen múltiples operaciones concurrentes de E/S
sobre el mismo volumen. La versión mejorada del "franjeado de disco" llamada franjeado de disco con
paridad, proporciona tolerancia frente a fallos de disco manteniendo la información de paridad a través
delasfranjas dedisco,demaneraquesiunaparticiónfalla,
los datosdeesaparticiónpuedenser
recuperados realizando una operación de OR-exclusivo a través del resto de las particiones de la franja.
Idénticamente, todas estas características son únicamente una parte de las herramientas de gestión de
volúmenes mejorado deWindowsNT,que
permite configurar el espacio del disco de forma lógica y
física. Además de soportar tolerancia a fallos de disco, la gestión de volúmenes permite que porciones
discontiguas de unoo más discos, sean combinadas en un disco lógico.
Latoleranciaafallosdedisco
de WindowsNT,combinadaconlascaracterísticasdesuministro
ininterrumpido de alimentación (UPS) descrito en el Capítulo 8 , proporcionará un modo de bajo coste
para la protecciónyrecuperación
dedatosporpartede
los administradoresdesistemas.Ciertas
aplicacionesespecialescomolasbancarias,requieren
un nivelextradetoleranciaafallos.Estas
aplicaciones se basan en una redundancia hardware completa de cara a proporcionar una operación
ininterrumpida del sistema. Aunque la operación continua se utiliza solamente para software final
de
aplicación, Windows NT da muchos de los soportes necesarios. El sistema de E/S, por ejemplo, puede
borrar o volver a crear objetos dispositivo de forma dinámica para acomodar cambios en
la configuración
delprocesode
E/S. Entrelascaracterísticasadicionalesqueseríannecesariasseencuentra
la
105
posibilidad de reasignar dinámicamente letras de dispositivo a diferentes recursos físicos sin necesidad
de arrancar el ordenador a continuación.
Unode los proyectos más importantes con el que todavía se enfrenta
el equipo de Windows NT, es
hacer del sistema operativo un sistema completamente internacional. Este objetivo será
el centro de
atención principal del equipo tras la liberación de la primera versión de Windows NT. Un objetivo para
versionesposteriores será proporcionar unaúnicaversiónejecutableparatodos
los mercadosdel
mundo. Aunque el ejecutor de Windows NT y el API Win32 están completamente internacionalizados,
hay porciones del shell de Win32 y de las utilidades del sistema que todavía no soportan Unicode, se
necesitanciertascaracterísticasdeinternacionalización,
y el componenteGDIdel
Win32 necesita
mejoras para haceral sistema completamente utilizable en Japón y en otros mercados asiáticos. Algunas
de las necesidades internacionales incluyen un API de métodos de entrada, una nueva arquitectura
de
fonts (frentes de caracteres) con caminos de búsqueda para permitir fonts combinados desde
el punto de
vista lógico, la integración de caracteres definidos por el usuario en
la arquitectura delos fonts, y mejoras
para permitir entradas con multiescritura.
Para las versiones japonesa, china y coreana del sistema, se tiene que realizar trabajo adicional.
Se
necesitan fonts que soporten estos lenguajes,y hace falta un editor de método de entrada para traducir
pulsaciones múltiples en caracteres individuales. Además, está planificado cierto trabajo en común con
los sociosOEMparaasegurarqueWindowsNTseejecutarábienenordenadorespersonales
propietarios o especializados. Por ejemplo, NEC ha portado con éxito
el Windows NT a su ordenador
personalbasado en 9800. Puestoqueesteordenador
no compatible AT seutilizaampliamente en
Japón, es un importante objetivo para Windows NT.
Finalmente, para poder ejecutar aplicaciones internacionales ya existentes, los subsistemas de entorno
Windows de 16 bits y MS-DOS tienen que acomodarel esquema de codificaciónde doble byte empleado
tradicionalmente para representar caracteres japoneses y de otros lenguajes asiáticos. El entorno MSDOS también ha de hacerse compatible con la versión japonesa de MS-DOS, que ha evolucionado de
maneradistintaque
el empleadoenEuropa
y enEstadosUnidos.Unequipode20ingenieros
americanos y japoneses dirigidos por David McBride, espera lanzar la primera versión internacional de
Windows NT y Windows NT-J (la versión japonesa del sistema) seis meses después
de lanzar la versión
americana.
El temade la seguridadestátratadoa
lo largo de estelibro, dada la naturalezadistribuida de la
seguridad de Windows NT. Sin embargo, es un tema intrincado cuyas complejidades son tratadaslos
en
grandescomponentesdeWindowsNT(seguridaddeobjetos,seguridaddistribuida,etc).Sepodría
escribir un libro entero acerca de
los detalles de seguridad.
Lasdireccionesdeltrabajofuturoacerca
de la seguridadson
muyinteresantes.
El modelo de
autentificación descrito brevemente en el Capitulo 5 no sólo se presta a soportar nuevos interfaces de
usuario,comocajerosbancarios,escáneresderetina
o huelladactilar,sino
que tambiénpermite
implementar diferentes arquitecturas de seguridad en lo "alto" de Windows NT. Por ejemplo, el popular
modelodeseguridadKerberos,queemite"tickets"deseguridadalasentidadesquequieren
comunicarse para intercambiar datos, está bajo desarrollo como paquete de autentificaci6n y como API
de Windows NT. Las aplicaciones que emplean el modelo Kerberos simplemente llamarían al API de
Kerberos, que estaría encaminado a través del sistema de seguridad de WindowsNT y a un paquetede
autentificación especial y cargable. Similarmente, podrían añadirse al sistema los modelos de seguridad
específicos de la industria, comolos empleados por los bancos.
La extensión de Windows NT para soportar el nivel de seguridad B del gobierno delos Estados Unidos.
NT y su monitor
Moverse del nivel C al nivelB implicaría actualizar la arquitectura de objetos de Windows
de referencia de seguridad para poder reconocerlos niveles de seguridad (el nombramiento de usuarios
particulares y de sus procesos como "Secreto", "Alto secreto", etc> y a aportar compartimentos (grupos
de usuarios aislados de otros grupos de usuarios). Los controles de acceso obligatorio se emplearían
para restringir alos procesos el uso de recursos pertenecientes a procesos de nivel más alto
o el uso de
procesos de compartimentos diferentes.En este libro se omitela descripción del servidor de archivos de
Windows NT (NTFS),los detalles de diseño de los dispositivos del ejecutorde Windows NT, y los drivers
de red. Igualmente, el administrador de cache, un componente Único de Windows NT, se le deja en gran
parte a la imaginación del lector. Estos temas merecerán librosmás adelante.. Cada subsistema tiene su
propia estructura y filosofía, y aunque el subsistema Win32 es el interfaz de usuario preeminente de
Windows NT, los demás subsistemas evolucionarán hacia entornos con características completas. No se
106
ha descrito el interfaz de usuario de Windows NT, principalmente porque es visible, y por
lo tanto más
accesible a los usuarios del sistema que la mayoría de
los detalles invisibles" de diseño que dominan
este libro. Sin embargo, las utilidades de Windows NT evolucionarán por las líneas del Administradorde
Disco; es decir, tendrán más aspecto "Windows" y menos reminiscencias del aspecto de
i las
aplicaciones MS-DOS.
Comosistemaoperativoportable,WindowsNTemigraráhacianuevasAplataformashardware.Por
ejemplo, los ingenieros de Digital Equipment Corporation están portando el sistema a su procesador Alfa
de 64 bits (inicialmente Windows NT se ejecutará con direcciones de 32 bits en el Alfa APX, como hace
en los procesadores MIPS e Intel).
Finalmente hay que señalar que se ha oído mucho sobre el software de Windows orientado a objetos,
que será el protagonista en la era de ia "información", según la visión de Bill Gates para las próximas
décadas. Llamado internamente Cairo, este software se espera que exista como un conjunto de DLL
paraWin32,enWindowsNTyMS-DOS.Estableceunentornodetrabajoorientadoaobjetosque
permite a los usuarios crear, ver, organizare imprimir recursos sin importar el tipo de recurso, su formato
interno, o su localización en la red.
LaautorapretendíaacabarestelibroconuncapitulodefinitivoacercadelfuturodeWindowsNTe
inclusopredecirelfuturo
dela"mesadetrabajo".Sinembargo,laindustriaavanzamuyrápidoy
Microsoft responde rápidamente alos cambios del mercado. Los pronósticos son, sin embargo,
una labor
arriesgada. Es suficientedecirqueWindowsNTproporcionauna"carreterabienpavimentada"enel
futuro de los ordenadores, cualquiera que sean las curvas de pueda tener la carretera.
107
108
WINDOWS NT COMO SERVIDOR DE ARCHIVOS
UnadelasgrandesventajasquetieneWindows
NT y su familia eslaquedesdeunprincipiofue
pensado enun ambiente abierto o cliente-servidor, por lo cualtodosudiseñosebasoenpoderdar
soporte a múltiples ambientes o tipos de archivos de otras plataformas que no fuera exclusivamente de
Microsoft, comolo es en el caso de archivos de tipo Unix, Mac OS/2,
y
En nuestro caso particular el que Windows NT se comporte como un servidor de archivos significa en
que un usuario pueda acceder vía red aun archivo remotamente, ya sea conla finalidad de poder leerlo,
escribir o hasta copiarlo. En esta sección solo nos podría interesar como NT puede ser un servidor de
tipoFTP, o bienlaseguridadquesepuedellegaraimplementarpara
que exista una verdadera
seguridad enuna red de tipoNT .
Si tratásemos de acceder a un archivo en Windows NT desde una computadora Linux tendremos que
implementar el protocolo NFS , ya que a través de samba se ofrece también un tipo de FTP que en
realidad no es aconsejable usar , ya que establece un conexión de tipo directa, es decir una conexión
permanente,atrayendorecursosde
la red que permanecenociososynosepuedenocupar
congestionando nuestra red y los recursos de la computadora (memoria, CPU etc). Por la vía NFS es
necesario poder conseguir el software que pueda fungir como el servidor
de NFS.
,
el sistema
Por lo demás solo es necesario instalar este software y poder montar en nuestra mauina linux
remoto de archivos, de tipo NTFS solamente ya que si lo pensamos hacer con un sistema de archivos
tipo FAT el sistema no noslo permitirá debido alas limitantes que FAT nos ofrece a este respecto.
En nuestrocasoparticularnuestroobjetivo
nofueelpoderconfigurarNTFSennuestrosistemasin
embargo se mencionala siguiente documentación y ligas las cuales pueden ser de interés.
FIGURAS Y SITES DE NFS
La forma en que se puede acceder a un archivo o conjunto de estos a través de la red en Windows es
muy sencillo ya que tan solo basta el poder compartir e, subdirectorio o hasta el mismo archivo que se
requiera compartir. Así como también las propiedades de seguridad para cada usuario o los grupos de
estos ya sean locales o globales.
1o9
WIND0WS
NT
A PLICACIONES
COMO
SERVIDOR
DE
Windows NTSERVER como servidor de aplicaciones es muy dependiente del hardware, es decir
, se
requiere de muchísimos recursos tales como memoria, espacio
en disco duro y velocidad del
procesador, a comparación de Linux que en realidad no requiere de muchos recursos. Sin embargo
si
hablamos de aplicaciones nativasde Windows NT tales como el Back Office u otros, que están
programados bajo 32 bits
en PO, entonces será necesario meditar
en el uso de Windows NT ya que
existen algunas libreríasque lógicamente por ser nativas de Windows se
nocargaran en Linux.
No obstante su sistema de archivos NTFS
es muy confiable y se puede recuperar información aunque no
en su totalidad cuando un medio
o disco duro se ha dañado, gracias a su sistema de respaldo entre sus
inodos, en cambio linux es un poco mas difícil y menos natural
la recuperación de archivos.
NT no hay manera de matar a sus
Sin embargosi un hiloo de objeto se llegase a trabar en
predecesores o antecesores por lo que la clfisica ventanita delDr Watson se pone en acción y nos cierra
la aplicacióno varias aplicaciones, por ejemplosi el error ocurreen un pagina de Internet y hay otras
paginas abiertas sin nadaen común se cerraran todoslos Internet Explorer.
Esto no sucede en Linux
ya que gracias al proceso de herencia de procesos linux mata
losahijos o
padres deun proceso en particular y noen general.
3. i X) WINDOWS NT COMO SERVIDORDE WEB-EMAIL
Gracias a Microsoft existe
el Internet Information Server sin embargo
es poco configurable, mas halla de
los botones, es estable sin embrago demanda de
2 tarjetas de red para manejar dominios,
así como de
una exagerada cantidaden disco duro y procesamiento.
¿Cuántos sitios Web puedo ejecutar de manera eficiente enun servidor?" Después de hablar conlos
clientes de ISP, descubrimos quela respuesta sería de unos 250 sitios Web para unÚnico servidor IIS
4.0; esto supone un problema paralos clientes de ISP que necesitan alojar miles de sitios enÚnico
un
servidor. El equipo de IIS resolvió este problema paraIIS 5.0 y mejoró considerablementeel rendimiento
de IIS en cuanto a alojamientode sitios. Ahoraes posible ejecutar miles de sitios en un servidor. Con
IIS
5.0, la respuesta a la pregunta de
IIS 4.0 produce una nueva pregunta:
"'Qué carga se espera que
admita este servidor?" El número de sitios que puede alojar un servidor
IIS 5.0 es directamente
proporcional a la carga esperada. La carga esperada es igual al número esperado de solicitudes en un
servidor individual por segundo y ve
se afectada porel tipo de contenido, donde tipo de contenido se
refiere a la proporción de páginas dinámicas frente a páginas estáticas. Enlos últimos años, el
contenido Web publicado sigue siendo cada vez más dinámico,
lo que plantea nuevas consideraciones
acerca del rendimiento. Centrándonos en esta tendencia, creamos una prueba para analizar el
rendimiento de las páginas dinámicas y estáticas que se ejecutan en un servidor
IIS 5.0 dentro de un
ISP, donde el contenido dinámico seha creado a partir de secuencias de comandos
ASP y Perl.
Número de usuarios
100 (Ilimitado)
110
Incluido
L
Incluido
Incluido
Incluido
Incluido
de Red
Base de Datos
Relaciona1
Solid Data Base SQL (ODBC, JDBC)
SQL Server 6.5
US$800.00
Código fuente del
Kernel
Servidor DNS
I
1
Herramientas de
Desarrollo
i
sí
Cornpiladores C and C++, Ped 5,0, JDK
sí
Pentium 2001MMX. 32 Mb, DD 2,O Gb
Hardware
Recomendable
Necesario
JS$1,299.00
sí
Soporte TBcnico
Gratuito
(AppleTalk), NetBEUl Netr
3. x ) WINDOWS NT COMO SERVIDOR DE IMPRESORAS
Es elmasamigablespooler
y administrador de impresión masauncuandosehaceuso
de un
Administrador de impresióncomoJetadmin. U otrossetienelascapacidad
de administraciónpor IP,
Nombre Net Bios etc. Linux no tiene estas facilidades tan a la mano
y su Configuracion es tenebrosa
111
I N TR ODU CCI ONA
HA T"
UNIX "LINUX RED
Unix es uno de los más populares sistemas operativos en todo el mundo debido
al gran soporte que
tiene y su distribución, a través de diversas compañías de computación tales como son HP, IBM, SUN ,
SantaCruzetc
. Estesistemaoperativofuedesarrolladocomounsistemaoperativomultitarea
originalmente para minicomputadoras y mainframes, pero en realidad
en la década de los 70's se dio un
gran paso al poder instalarlo
en cualquier tipo de plataforma hasta que se logro su estandarizaci6n
.
Cual es la verdaderarazónpor la cualUNlX espopular ? MuchosHackersopinanqueporserun
sistema operativo verdadero "multitarea preemtiva, multiproceso real, una administración de archivos y
memoria muy eficiente" UNlX es el sistema operativo por excelencia, aunado con ello , el que linux es
un sistema no propietario "Sin necesidad de licencias corporativas o de un hardware muy sofisticado"
linux a tenido una aceptación
muy grande.
Además de lo anterior linux es gratuito o freeware ya que desde Internet se puede obtener el sistema
operativo en su totalidad sin necesidad de pagar nada, no conforme con ello la "filosofía" del
creador Linus Torvalds [email protected], quería que linux pudiera cambiarse al antojo
del usuarioelcódigofuente,con
la finalidaddequesi
es necesario el uso deunnuevo
controlador o driver para una cierta tarjeta, este driver se pueda programar sin tener que esperar
al release correspondiente,o al update del sistema operativo
.
Por lo anterior Linux fue desarrollado directamente desde Internet a través
de intercambio de correos
electrónicos, chats . Es decir todo mundo puede participar en los desarrollos constantes de linuxya sea
mejorando su Interface, sistema de archivos etc véase la USENET newsgroup comp.os.minix desde el
cual Linus Torvalds se baso para el
desarrollo de linux .
AI igual que UNlX linux en su gran mayoría esta desarrolladoen lenguaje C con objetos y otras técnicas
de programación . No obstante que también se pueden hacer desarrollos en lenguajes como Perl, Rexx,
Fortran etc.., entre otros . Solo basta con volver a recompilar el kernel
del mismo Linux para que el
cambio sea interno como por ejemplo enuso
el de drivers o manejos o el manejador de archivos etc.
Otras de las bondades de LINUX es su bajo costo ya que a comparación de otros sistemas operativos,
no es necesario contar conun Hardware del alto costo; a continuación
se muestra una tabla en la cual
se
puede apreciar las diferencias técnicas, de requerimientos y de mas información.
Introducción
112
El propósito de este artículo es el de proveer a los responsables de empresas la información necesaria
para
tomardecisionescorrectas(inteligentes)
en la compradelhardwareysoftware
de servidores.Esta
informaciónestábasada
enlaexperienciadeexperimentadosprofesionalescertificadosMIS.La
intención es la de comparar y contrastar las implicaciones de escoger un sistema operativo u otro en
términos no técnicos, o al menos con la mínima jerga técnica posible. Debida a la urgente necesidad de
información como la presentada aquí, esta página es lanzada prematuramente y debe ser considerada
como un trabajo en progreso. Cualquier persona que desee contribuir a este proyecto es bienvenida y
puede dirigirse a e-mail. Por favor, limite sus mensajes a comentarios
o críticas constructivas.
Sistemas Operativos
Costes y aspectos de las licencias
Muchosdirectivosestarán
deacuerdoqueelmerocostedeunsistemaoperativoestrivialen
comparación con los costes globales. Aunque Windows NT Server4.0 puede ser más caro que algunos
UNlXcomerciales(NTServerparacincousuarios
- $809; 10-usuarios $1129); WindowsNTServer,
edición Enterprise 4.0 para 25 usuarios - $3,999; Edición Enterprise 4.0 para 50 usuarios - $4,799; NT
Server 4.0 Kit de documentación $69.95; Fuente: Microsoft), esto puede ser tomado como cantidades
triviales en ferias de productos.
Si una solución comercial económica está siendo buscada, BSD (Berkley Software Design) ofrece un
sistema operativo UNlX con más funcionalidades que Windows NT sólo
por $995. Si queremos equiparar
la funcionalidad ofrecida porBSD, tenemos que añadir al paquete NT varios productos de Microsoft y de
terceros fabricantes, lo que deja el precio final de la solución NT al rededor de los $4,000, de acuerdo
conBSDI.MaggieBiggs,unaanalistaseniorenInfoWorldespecializadaentecnologíasdebasesde
datos y diseño de aplicaciones, desarrollo y desarrollo vía intranets y otras redes, estima un precio de
$4,636 para una solución Windows NT4.0 comparable en su artículo en el cual compara NT4.0 al Linux
comercial Red Hat (por sólo $49.95). Aquí uno puede apreciar que un buen marketing puede a menudo
distraer alos clientes de considerar sus verdaderas necesidades.
Para el cliente más consciente de los costes, Linux o FreeBSD deberían ser las elecciones obvias. No
cuestan nada, y además son estables y ofrecen tantas funcionalidades, si no todas, como los sistemas
UNlX
comerciales.Unlector me informóquemencionarLinuxpodríarepercutiren
la credibilidaddeeste
artículo. Siento discrepar. La existencia de una alianza como la mencionada en el artículo Andreessen
Sees Mozilla-Linux Upset of Windows muestra claramente que Linux está reforzando su presencia en
entornos
comerciales.
(Para
iniciados
en este
terreno,
Mozilla
es
el nombre
del
programa
Netscape/CommunicatoryMarcAndreessen
es el CEOdeNetscape.).Históricamente,grandes
corporaciones han ignorado el software libre debido ala Asunción infundada que cualquier cosa libre no
puede ser productiva. La tendencia recienteen algunas compañías es utilizar estos sistemas operativos
bajos en costes.Hewlett-Packard usó LinuxenvezdesupropioHP-UX
UNlX cuandoestaba
desarrollando su nueva arquitectura para procesadores PA-RISC. Schlumberger anunciará una solución
para telefonía que incorpora Linux.
Es interesante señalar que
SunWorld On-Line da a Linux una prensa muy positiva en uno de sus artículos, Linux lines up for the
enterprise.Debidoaqueestossistemasoperativossonlibrespara
su uso,inclusoenentornos
comerciales, numerosos lSPs funcionan con Linuxo FreeBSD. De los dos, Linux es mucho más popular
debido a que correrá en prácticamente cualquier hardware imaginable: Sun, Intel, DEC Alpha, PowerPC,
PowerMac,etc.Actualmente,Linuxesprobablemente
el sistemaoperativoenelmercadoconmayor
crecimiento. Para más información ver Linux Resources
ó Red Hat Software.
Funcionalidad
¿Que funcionalidades podemos esperar de
unservidorWindows NT? ¿Y deunservidorUNIX?NT
puede
comunicarsecondiferentestiposdecomputadoras.UNlXtambién.NTpuedeasegurarinformación
113
sensible y mantener usuarios no autorizados fuera
de la red. UNlX también. En esencia, ambos sistemas
operativos cumplen los mínimos requisitos de los sistemas operativos para funcionar en un entorno de
red. Brevemente, UNlX puede hacer cualquier cosa que NT pueda hacer y más.
NT esconsideradoamenudounsistemaoperativo"multi-usuario",peroestoesalgoimpreciso.Un
servidor NT puede validarun usuario autorizado, pero una vezel usuario ha accedido ala red NT, todo lo
que puede haceres acceder a archivos e impresoras.El usuario NT no puede ejecutar aplicación alguna
en el servidor NT (a fin de obtener la ventaja de la potencia de procesamiento del hardware superior del
servidor).UnusuarioNT
sólo puedeejecutaraplicacionesespecialesquehansidoescritasendos
partes, ¡.e. aplicaciones cliente/servidor. Cuando un usuario entra en un servidor UNIX, el / ella puede
y portanto
ejecutarcualquieraplicación(siemprequeelusuarioestéautorizadoparahacerlo),
descargando tareas de procesamiento de su estación de trabajo. Esto incluye asimismo las aplicaciones
gráficas dado que el software para servidores X es una característica estándar en todos
los sistemas
operativos UNIX.
Para muchos negocios,el correo electrónico se ha convertido en una herramienta indispensable para
la
comunicación, y muchas compañías ejecutan sus propios sistemas de correo internos / externos. Con
Windows NT, tendrá que adquirir un paquete de software aparte para instalar un servidorde correo. Los
sistemas operativos UNlX vienen con un programa llamado Sendmail. Existen otros paquetes servidores
de correo (o MTA, Mail Transport Agent (Agentes para el Transporte de Correo)) disponibles para UNIX,
pero este es el más extendido, y es libre. Algunos administradores de UNlX piensan que exim o qmail
son mejores opciones debido que no son tan difíciles de configurar como el sendmail. Ambos exim y
qmail,comosendmail,sonlibresparasuusoinclusoenentornoscomerciales.Algunascompañías
basadasen NT utilizanMicrosoftExchangeServercomo
MTA. Estaesunasolucióncaraconun
resultado limitado en entornos empresariales. Más adelante, en estemismo artículo, la sección dedicada
a los Servidores de Correo (MTAs) ofrece una guía para comparary contrastar estos dos servidores de
correo.
DadoqueMicrosoft ve NTcomounaalternativaviablealrestodesistemasoperativosdereddel
mercado, UNlX y Novell incluidos, uno puede creer que
NT viene con todas las herramientas necesarias
paracumplirlastareas
más básicasrequeridas:servicios
de archivoseimpresoras.Cualquier
administrador de sistemas sabe por experiencia que haydos aspectos importantes a considerar cuando
se está configurando un servidor de archivos o añadiendo un nuevo usuario de red: seguridad, esto es,
palabras de paso y permisos de archivos; y cuotas para limitar el uso del disco de cualquier usuario o
grupo nuevo o existente. Aunque NT provee de seguridad básica mediante palabra de paso,
sólo permite
seguridad a nivel de archivo si se escoge como el sistema de archivos el denominado NTFS. Algunos
departamentosdeinformáticasonreaciosaincorporarestesistemadearchivos(almenos
en las
máquinas de los usuarios), porque creen quela recuperación de problemas de disco es difícil conel uso
de NTFS. Es una creencia común que los dispositivos formateados con NTFS no puedenser leídos por
el DOS, un sistema operativo importante en
la recuperación de problemas. Rune Knapstad
me comunicó la existencia de una utilidad DOS llamada NTFSDOS que puede montar particiones NTFS.
Es
interesante destacar que es un producto de terceros y node Microsoft. Más importante que este hecho
es que iNT no provee de mecanismo alguno para limitarel uso del disco por partede los usuarios! UNIX
yNovell,porotraparte,disponendesoftwarepararealizaresteaparentementeelementalcontrol.
Microsoft ha anunciado, sin embargo, que su todavía no lanzado NT Server
5.0 dispondrá de "nuevas
capacidades de almacenamiento tales como cuotas de disco(ver su anunciode lanzamiento,
Windows NT 5.0 Beta Delivered to Over 200,000 Developers).Resumiendo,unavezustedentraen
una red NT, todo lo que puede hacer es leer archivos e imprimir. En un entorno UNIX, una vez usted
entra en un servidorUNIX, puede estar en esta máquinay hacer cualquier cosaen ella como si estuviera
sentado frente al teclado de ésta. Con NT, no espere ser capaz de instalar un servidor de correo con el
software disponible. Necesitará adquirir por separadoel software servidor de correo caro como Microsoft
Exchange Server. Si su servidor NT debe funcionar como servidor de archivos - ¿Qué otra cosa puede
...I'
114
hacerconésterealmente?
- noesperesercapazdeprevenirque
los usuarioscuelguenelservidor
llenando el/los disco(s) con sus datos.
Cuandovamosaunascapacidadesderedmássofisticadas,parecequeMicrosoftNTServer4.0
Enterprise Edition no puede compararse a los más maduros sistemas operativos UNIX. Aunque no es
esencial para el rendimiento de la red, el procesamiento a 64 bits está aquí hoy con estos sistemas
operativos UNlX (en oposición a los 32 bits del NT). D.H. Brown Associates Inc. muestran los resultados
de sus análisis como sigue(la siguiente cita junto conla tabla y los tres gráficos mostrados con extractos
de la página de Digital Equipment Corporation, AIX 4.3 Leaps To 64-Bits In Dead Heat With Digital UNIX
4.0): AIX 4.3 toma la cabeza en servicios de red Internet / lntranet ofreciendo el más amplio conjunto de
extensiones TCP/IP y añadiendo valor con
el servidor Notes. Digital UNlX vienen segundo lugar con
potentes sistemas de seguridad en redes, acompañado no
sólo de herramientas para navegar por el
web, sino con herramientas de creación de las mismas, con Navigator Gold, y un sólido conjunto de
extensionesTCPIIP.Sinembargo,DigitalUNlXadolecedecapacidadesdeNFSavanzadascomo
CacheFS y AutoFS. IRlX 6.4se sitúa en tercer lugar, incorporando CacheFS y AutoFS y características
para seguridad en red tan potentes de Digital. Pero IRlX no tiene las utilidades para tiempo en red (NTP)
y posibilidades de TCP/IP tales como IPv6 e IPSec. A continuación viene Sun, con un buen soporte para
NFS y un segundo lugar en conjunto de extensiones TCP/IP. Sin embargo, Sun confía en su propio
servidor Web, en vez de Netscape, Microsoft
o Apache, y no tiene herramientas para
la creación de
páginasWebasícomodeimportantesservicioscomo
el serviciodedirectoriosde
Novel1NDS.HP
proporciona un potente soporte para Internet en su HP-UX, apoyado por su buen que hacer en funciones
de protocolos para Internet y seguridad en red, mientras que flaquea en
el soporte de características
avanzadas del NFS. HP-UX, junto con AIX, han establecido una primacía en el soporte de NDS. Mientras
que el soporte que Microsoft NT 4.0 ofrece para Internet/ lntranet con una valoración global de "Bueno",
NT se queda por detrás de los mejores UNlX comerciales debido a su pobre soporte parael servicio de
directorios, seguridad de redes, NFS, y sus pocas extensiones TCP/IP. Microsoft ha estado largo tiempo
añadiendo valores a su servidor Web y perfilando su Máquina Virtual Java.
Fiabilidad
Hoy en día, la fiabilidad es a menudo más importante que la velocidad. Aunque el rendimiento es, en
términos generales, una función de la plataforma hardware (ver la próxima sección), es la fiabilidad la
quemás influye alahoradeelegirunsistemaoperativo.Aunqueunsistemaoperativoofrezca
numerosas posibilidades, sea muy escalable, y ofrezca gran sencillez de uso, ¿cómo de buenas son
estasventajascuandounservidorprocesandotransaccionesfinancierasentiempo
real sufre de
frecuentes caídas causando en pérdidas de tiempo inaceptables?. La analogía de un rápido y económico
automóvil con cantidad de extras y apariencia deportiva que se avería provocando repetidas visitas al
servicio técnico autorizado es actualmente muy representativa del Windows NT.
Uno a menudo escucha la mención de Windows NT Server como un sistema operativo "estable", pero
esto no es del todo cierto. Si lo fuese, no deberíamos leer artículos como Corporate IT needs an engine
that never quits (Peter Coffee, PC Week 3-30-98). Por otra parte, Windows NT supone una gran mejora
sobre Windows 3.1 o Windows 95, pero todavía le queda un largo camino que recorrer hasta alcanzarel
nivel de estabilidad ofrecido incluso por los sistemas operativos UNlX libres. Cualquier profesional que
haya trabajado en un entorno Windows NT tiene conocimiento de la infame "Pantalla Azul de la Muerte",
una situación en la cual el entorno normal de trabajo desaparece y es sustituido por una pantalla llena de
cifrashexadecimalesconunfondoazul.
El Único métodopararecuperarsedeestasituaciónes
apagando la máquina y arrancando de nuevo.
lo siguiente puede crear
Las causas de la "pantalla azul" son muy diversas. En mi propia experiencia,
este estado:
Cuando los protocolos IPX/SPX y TCP/IP son utilizados juntos y los técnicos instalan una máquina con
una dirección IP estática en una sub-red diferente; Cuando algunas aplicaciones de 16 bits de Visual
Basic no son ejecutadas en un espacio de direcciones de memoria separado. NT no
las ejecuta en un
espacio de direcciones aparte por defecto. ÉSta es una configuración manual que debe ser fijada para
cada una de las aplicaciones de 16 bits de la máquina; Ciertos módulos de memoria
o cache pueden
115
inducir esto, aunque este mismo hardware funcione correctamente
bajo otros sistemas operativos,como
Windows 95. Esta lista no estácompleta.Dehecho,TimNewsham,undesarrolladorenplataformas
Windows y UNIX encontró esta corta lista muy confusa: En la sección BSOD menciona algunos puntos
que pueden causar este problema. Pienso que esta (pequeña) lista es muy confusa para el lector. Hay
muchas más causas para que unNT falle, por lo que enumerando una lista pequeña puede causar una
idea incorrecta. Más peligroso todavía
es el hecho de que sus casos implican a una persona que está en
la consola haciendo algo MALO para provocar un error. Muchas de las veces que falla un sistema NT
ocurren inadvertidamente en la operación del día-a-día del sistema (esto es, dejando
al sistema largo
tiempo mientras ejecuta miles de aplicaciones puede causar fallos extraños con poca información de su
causa). Adicionalmente usuarios maliciosos pueden causar fallos debido a la mala implementación
de los
módulos software como el programa de entrada (1oggin)en
el sistema (LSA)o la pila TCPIIP.
La "Pantalla Azul de la Muerte" puede ser común en algunos entornos de computación y a menudo es
difícil de afrontar demasiado críptica. Además de esto, NT es particularmente sensible al ataque
de virus
en el hardware Intel. Microsoft continua escribiendo su sistema operativo de tal forma que lea el Sector
Principal de Arranque(MBR) de los discos duros. Esto significa que, un Servidor NT puede teóricamente
ser abatido por un virus escrito hace 10 años para ordenadores con MS-DOS. Cualquiera que planee
encontrado virus de arranque (MBR virus)
enentornoscorporativoscorriendoWindowsNT
4.0 (isin
clientes Windows 95!), y sus efectos son devastadores. Una situación de la vida real relacionada con la
fiabilidad de NT fue descrita por
el responsable del departamento de Sistemas de Información de la
Universidad de Nebraska, Quinn P. Coldiron, que escribió: La vida después de portar Cats (un sistema
para el rellenado de formulariosycontroldeinventario)a
NT fueunapesadilla. El sistemaestaba
fallando dos o tres veces al día sin una razón que pudiera encontrar. Me puse en contacto telefónico con
Microsoft y Cats constantemente, pero ninguno podía
dar con el problema. Microsoft me hizo instalarlos
ServicePacksdesde el unohasta el tres y algunosparches,queayudaron,perotodavíafallaba
al
menos doso tres veces ala semana
con la infame"PantallaAzuldelaMuerte".Despuésdevariassemanasyalrededorde$1500.00de
soporte telefónicode Microsoft, el representante me dijo que debía encontrarun software mejor que "The
Cat's Pajamas". ÉSta no fue la solución que yo buscaba, debido a que éste es el paquete que la mayoría
de nuestras sucursales en la nación estaban utilizando, por lo que estuve obligado a volver a instalar
nuestro servidorNovel1 hasta que pudiera encontrar algo
mejor... Catorce meses
después, estamos utilizando Linux como servidor. El equivalente UNlX a la "Pantalla Azul de la Muerte"
podría ser el denominado "kernel panic". Obviamente existe, porquehe ido y le-ido sobre el mismo, pero
nunca me he enfrentado a éste enmi carrera profesional. Aunque estoy seguro quelos servidores UNlX
fallan en ocasiones, son sucesos extremadamente raros.
Si un servidor UNlX cae,
la mayoría de las
veces es debido a unfallo en el hardware de algún tipo. Cualquier software que provoque problemas en
un entorno UNlX generalmente se da a conocer en un período
de tiempo, a menudo en la forma de una
bajada gradual del
rendimiento del sistema, dando al administrador un amplio margen de tiempo para encontrar la fuente
del problema, corregirlo, y paradarrancar el proceso (raramente la máquina) que causó el problema. En
general, se ha de parar a un servidor UNlX sólo en las siguientes situaciones: Debido a un fallo del
hardware, por ejemplo, un fallo de un disco duro; La necesidad de una actualización del hardware; Una
larga caída del suministro eléctrico y los sistemas alternativos se han agotado; El núcleo (kernel) ha de
ser actualizado. Si nada de lo anterior ocurre, un sistema UNlX en marcha puede durar años. Noticias
de tiempos en marchadehasta 3 añosnosonextraños
en la comunidadLinux.Administracióndel
Sistema El argumento de que Windows NT es más sencillo de manejar debido a su entorno gráfico es
infundado. La ventaja,si existe, de un entorno gráfico sobre la línea de comandos, esto es, teclear todos
los comandos desdeel
teclado, es cuestionable. La primera idea es que WindowsNT tiene la ventaja sobre UNlX de su interfaz
gráfico (GUI).Estoesincorrecto.LossistemasUNlXtienenentornosgráficosbuenos(verejemplo
gráfico). "NTha
disfrutadodeunintuitivoentornográficopara
el manejodesistemassencillos,
largamente beneficiado de la excepcional familiaridad del "look-and-feel" del Windows adoptado por el
interfaz NT. Pero, cuando los usuarios empiezan a desarrollar gran cantidad de servidores, y servidores
116
pacio
geográficamente dispersos, algunosde los defectos de la arquitectura NT para el manejo del sistema se
vuelvenmásvisibles,derivadoprimeramentedesudiseñoparaunsistemamono-usuario.Eldiseño
multi-usuario de Unix soporta acceso remoto en múltiples niveles, incluyendo la posibilidad de acceder
enunasesióndetexto,víatelnet,paraeditar
los archivosdeconfiguración,ejecutarherramientas
gráficas utilizando las capacidades de red del sistema XWindow,
y ahora sobre las versiones Java de
dichasherramientas.NTactualmente
no disfrutadeningunadeestasposibilidades.Además,la
administración remota con NT típicamente incluye instalar un experto local el cual Microsoft espera que
o confiar en los productos
será muy sencillo debido a la similitud con las otras versiones de Windows
para la administracióndeMicrosoft o deterceros.Ningunaopción,además,alcanza
la eficienciade
manejo de sistemas Unix distribuidos."
-- Extraídode:Análisisafondodecincosistemasoperativos
UNlX comerciales y Windows NT Server
4.0 (Enterprise Edition)por D.H. Brown Associates, Inc.
Rendimiento
La potencia de procesamiento es, a grandes rasgos, función del hardware en vez del sistema operativo.
Dado que muchos sistemas operativos UNlX comerciales sólo pueden ejecutarse en grandes estaciones
de trabajo o servidores, sería ridículo comparar un: IBM SP2
o un Sun Enterprise 10000 a cualquier
productoCompaq o Dell.UNlXhasidohistóricamenteunsistemaoperativoparagrandessistemas.
Afirmar que UNlX supera a NT basándonos en
los resultados de diferentes plataformas hardware podría
ser injusto paraMicrosoft.Porotraparte,Microsofthareducido,envezdeincrementar,
el numerode
plataformas hardware que soporta. NT para MIPS ha sido abandonado debido a
la falta declientesy
soporteparaPowerPCes
sólo marginal.NT,ahorareducidoalasarquitecturasx86yAlphaseguirá
siendo
"servidor
un
de
los pobres"
como
ytal
llamado
es en
el mundo
de
los IT.
;
(.
'
'
,
..'.:
I-
: ,
f.
*.. ;
4)
I
de
Paraser justos, unodebecompararelrendimientodeunservidorNT
al queLinux o FreeBSD,debidoa
que los tres sistemasoperativospuedenejecutarseenelmismohardware.Desafortunadamente,un
análisisrealmenteobjetivodelrendimientodeberíabasarseenpruebasderendimiento(benchmarks),y
estos,a mi entender,noexistenparacompararLinux
o FreeBSDaNT. El consensogeneralentre
profesionales IT es, sin embargo,queLinuxyFreeBSDsuperanampliamenteaNT.Considerandoque
estosnúcleosdeUNlXsonpersonalizadosycompiladosparacontener
sólo el softwarerequeridopor el
administrados,Linux y FreeBSDpuedenfuncionarmáseficientementequeNT.Además,cualquier
sistemaoperativoquerequieramenosrecursosrendirámejorqueunsistemahinchadocomoNT.UNlX
no requiere un interfaz gráfico para funcionar. NT sí. Cualquiera sabe que los gráficos requieren gran
cantidad
memoria. y en
Lomismosecumplepara
los archivosdesonido,queparecensermuyimportantespara
los sistemas
operativosdeMicrosoft.BenchmarksejecutadosensistemasUNlXsimilaresutilizando
el mismo
hardware son más explicativos. Net Express, un vendedor vía Internet de hardware x86, cuyos sistemas
son"diseñadosparacientíficos,ingenieros
y laindustriade
la telecomunicación,"muestraque
los
resultados pueden ser conseguidos con
el sistema operativo correcto:
Byte UNlX Benchmark 3.2 para comparar Sistemas Operativos: Además presentamos estos resultados
de Byte UNlX Benchmark 3.2 para compararla relativa velocidad de tres populares implementaciones de
UNIX.LostestsfueronejecutadosenmáquinasPentium133MHzcon32MB'sdeRAM,elchipset
Triton4 430HX y una controladora SCSl BusLogic: Sistemas
Resultados Linux en un Pentium 133MHz
12.2
BSD en un Pentium 133MHz
9.8
Solaris 2.5 en un Pentium 133MHz
6.2
Solaris en un SunSparc-ll Ultra 167MHz
System
13.7
Solaris 2.5 en un Orion Pentium Pro 200MHz
117
,
;i!
j .
-. .,
;:
%
P,.
e;
f
f
f& ;
O)
* m
r
o ;<
4
(2
i:' $3
Lo
13.5
En los resultados podemosver que Linux es un sistema operativo muy eficiente. Las marcas para Linux
2.5 enunaSparcUltraa
167 Mhz. o un
en unPentium133soncasitanrápidascomounSolaris
PentiumPro de 200 Mhz!!!
Quizá un ejemplo de la ganancia de rendimiento que uno puede espera encontrar cuando escoge un
sistema operativo Unix junto con el servidor Web libre Apache puede ser encontrado en
el artículo de
Sean Fulton que apareció en INTERNETWEEK el 5 de Mayo de 1997, Towrs of Power -- We test five
muscular Web servers aimed at high-end intranet applications. Para NT, los resultados del test fueron
casi devastadores:
"Telnet System Solutions produjo la mayor sorpresa durante los tests, con un sistema BSDi y un solo
procesador, alcanzó y en algunos casos superó a un sistema con doble CPU corriendo Windows NT."
"El factordiferenciadorenestecasofueelsistemaoperativoBSDi3.0
junto con el servidorHTTP
Apache. Todas las máquinas con doble CPU funcionaron
con Windows NT4.0 con "Microsoft Internet
Information Server2.O." Admitiendo que el siguiente ejemplo posiblemente no es el test más científico de
diferencia de rendimiento entre Linux y NT, pero la información de Richard Betel's da una idea de que
puede uno esperar en situaciones de la vida real: He estado ejecutando el cliente para el"distributed.net
RC5 cracking" durante dos meses aproximadamente ... Está instalado encada servidor que tiene una
cantidad de tiempo inactivo considerable. Esto incluye dos máquinas idénticas: Ambas son Dual-Pentium
I I a 300 Mhz,128Mb.RAM.Una
está ejecutandoNT,ytiene
un "exchangeServer"libre(estamos
planeando ofrecer servicio con este, pero de momento esta totalmente inactivo), la otra está ejecutando
Linux (lo hemosinstaladoparaquemuestresuscapacidades.EsunservidorSambayestamos
recopilando toda clase de cosas en ésta). La máquina Linux intenta claves1.8
a veces la velocidad de la
máquina NT. Algunas Falsas Ideas NT es un sistema operativo "de juguete" Para un sistema operativo
que ha evolucionado de un sistema operativo de juguete, ofrece algunas funcionalidades profesionales.
Aunque no rinda muy bien-- el rendimiento decrece conm& de 4 CPUs en un servidor-- ha recorrido un
largo camino. Aunque no lo recomendaría como sistema operativo principal en un entorno empresarial,
debe ofrecer un rendimiento satisfactorio para pequeños negocios con menos de 250 usuarios que no
ejecuten procesos críticos.
MigrandotodoaWindows
NT unacompañíapuedeeliminar
los problemasdeunentornodered
heterogéneo. La primera idea aquí es que un entorno
de red heterogéneo es un problema. Yo trabajé
una vez en una compañía donde NT y Novell coexistían sin demasiados problemas. De echo,la principal
razón de esta coexistencia fue que Novell superaba a NT en el área de compartir archivos e impresoras.
Con UNIX, uno puede compartir archivos e impresoras de forma compatible con Microsoft sin que
los
usuarios nunca conozcan que estos servicios emanan de un servidor UNIX. Para ellos, es un servidor
NT.Estacapacidad
la incorpora el UNlXdeSun,Solaris.Linuxpuedeutilizarunsoftwarellamado
Samba, que viene con muchas distribuciones, para conseguir esto. Y, de nuevo, es gratis. UNlX es ese
sistema operativo caduco, críptico y basado en comandos.
ifalso! CDE (Common Desktop Environment)es un interfaz de usuario (Vd. utiliza un ratón para señalar
y pulsar, o pinchar y arrastrar en un entorno coloreado; esta es la base del éxito de Microsoft.). CDE
viene con muchos sistemas operativos UNlX comerciales: Sun's Solaris, IBM's
AIX Hewlett Packard's
HP-UX, DEC's Digital UNIX, por nombrar algunos. Por alrededor de $90 puede adquirir CDE para Linux
si está insatisfecho de los cuatro entornos gráficos que vienen con Linux:OpenLook, el GUI que Solaris
utiliza; FVWM, un GUI libre que tiene muchas similitudes conel del Windows 3.2; o FVWM-95, otro GUI
libre que imita al del Windows'95 (viendo una simple ventana, uno no puede distinguir entre FVWM-95 y
Windows 95). TWM es el predecesor de los varios gestores de ventanas del estilo FVWM que también
incorpora Linux. Si nunca ha tenido la oportunidad de sentarse
frente a un ordenador corriendo UNIX, he
118
aquí algunas CAPTURAS de estos gestores de ventanas: CDE, TED
(TriTeal's CDE for Linux), KDE,
F W M I.24, FVWM 2.x, FVWM-95, olvwm (OpenLook Virtual Window Manager). Estos son sólo algunos
to Window
de los interfaces disponibles para los usuarios de UNIX. La guía de Matt Chapman's Guide
ManagersforTheXWindowSystemesunaexcelentefuentedeinformaciónsobreestetema.
Encontrará muchas más capturas de pantallas en sus páginas web que
las que yo he sido capaz de
enumerar aquí. Piense que la mayoría de estos gestores de ventanas son altamente configurables; no
debe
sorprenderse
de
ver
imágenes
extraídas
del
mismo
gestor
de
ventanas
que
aparecen
completamentedistintas.ComoMattmencionaensupágina,"Afrontémoslo,
la genteesdiferente,y
aquellosqueutilizanordenadores
los utilizandediferentesformasparadiferentestareas.Luego,
¿porqué pensar que debemos usar (¿sufrir?) el mismo interfaz?" Irónicamente, es el interfaz gráfico de
Microsoft el que adolece de características de personalización.
Contra la afirmación dequeUNlXestácaduco(desfasado),estodavíaelsistemaoperativode
la
ciencia, ingeniería, desarrollo y educación de alto nivel. Muchos ingenieros escogerían UNlX sobre
NT
sin dudarlo.Conocenperfectamentelasposibilidadesdeserpersonalizadoysuscapacidadesde
configuración parala optimización de tareas de computación especializadas.
Todo el mundo está migrando a NT, deberemos reemplazar gradualmente nuestros servidores UNlX
con servidores NT. Es el camino al futuro.
Si habla con los responsables de los sistemas de información (MIS) de grandes empresas que tuvieron
UNlXyNovellhace
dosaños,yquereemplazaron
sus servidoresNovellporservidoresconNT,
encontrará que ninguno de ellos puede pasar sin sus servidores UNIX. Parece ser que el procesamiento
"pesado" se realiza mejor con servidores UNIX. Hasta ahora en mi carrera, cada servidor Oracle que he
visto estaba corriendo en un servidor UNIX. Un profesional, por otra parte, me envió un e-mail diciendo,
"Mantengo varias instalaciones de ORACLE en NT. Hay características de rendimiento y funcionalidad
que he encontrado que nunca he visto con UNlX (Pyramid)."
Opiniones de otros profesionales de
sistemas de información (MIS)
Tim Newsham escribe en respuesta a este artículo:
"DesarrollosoftwareenNTyUNIX.AborrezcoNT.Esunabestiahorrible,
tiene unrendimientomuy
pobre y también demasiado inestable. Algunas partes del NT son tan imperfectas que la mayor parte
deltiempo empleadoenportarsoftwareaNTincluyetrabajarcon
los erroresdeMicrosoft.Me
preocupa que mucha gente está migrando de Unix a NT. Sólo puedo imaginar que en algún momento
surgiráunmovimientoanti-NT
cuando los puestosderesponsabilidadse
den cuenta decuantoha
dañado NT a su organización. Joseph Day, consultor en Chicago, contesta a Jessie Berst: "Hago una
gran cantidad de desarrollo de software en NT y 95. No puedo llegar a comprender porque la gente alaba
a estas plataformas comosi fueran grandes... El soporte que se obtiene en la comunidad Linux a través
de "las news" es muy superior a cualquier cosa que usted haya podido ver con
los productos Microsoft...
NT tiene mucho que tiene Linux. -- Fragmentos de una carta de Joseph Day titulada, How did Microsoft
pay you to writet his article?, Source: Jesse Berst's Anchor
Desk. February 16, 1998, ZDNet. Torsten Holvak, administrador de sistemas en Laramie, WY, contesta a
los 60s, le encantaría hacer creer a la
Jessie Berst: "Jesse: Estoy seguro que Microsoft, como IBM en
gente que escoger algo diferente a sus productos puede ser un movimiento limitador en su
evolución. ¡Pero no es así! He despedido a un empleado por instalar aplicaciones
críticas de correo y
servidor de Web en un NT en vez de en una máquina UNIX. Utilizamos FreeBSD para todo y no existe
nada más estable. No sólo los servidores UNlX son más rápidos, más potentes, y más estables que NT,
sino que el soporte es mejor también. Intenta obtener una respuesta de Microsoft sin pagar grandes
facturas y/o estando a la espera. Y considérese afortunado si resuelve su problema. Encuentro que es
duro de creer que esta historia apareció en su página.
Es embarazoso. Estoy seguro
de que no estabas interesado en propagandas de
tonterías de Microsoft. -- Extracto de una carta de
TorstenHolvaktitulada,I'd
fire someoneforusingNT,Fuente:JesseBerst'sAnchorDesk.16de
Febrero, 1998 ZDNet.
119
QuinnP.Coldiron,responsabledelDepartamentodeSistemasdeInformación
de la Universidadde
Periodismo de Nebraska, escribe sobre su experiencia con Novell, Windows NT, y Linux: "Después de
completar las tareas matutinas, normalmente ejecutamos una copia
completa de "Cats" (sistema de
el cierrequeusualmente
rellenadode formularios y controldeinventario)antesdecontinuarcon
tardaba unas dos horas con el servidor NetWare. La máquina Linux fue capaz de hacer la copia entera
en45minutos,superandoenalgoaunahoradeltiempodecierre.Estoaumentó
la velocidad y
disminuyó el hardware debido a que el servidor Linux
sólo disponía de 32 MB de RAM y discos duros
IDEmientrasqueelservidorNetWaretenía64MBde
RAM ydiscosdurosSCSI.Elaumentode
velocidad se notó asimismo en el trabajo diario. Recibí noticias diarias de que el sistema parecía correr
más rápido y ser más fiable." "Recientemente hemos actualizado la CPU a un Pentium 200Mhz y
la
memoriaa 64MB para podermanejar los nuevosplanesdehaceresteservidorsustitutode
los
servidores de archivos e impresoras Windows NT, que todavía fallan unas dos veces al
mes sin razón
aparente, después de $1,500 en soporte técnico de Microsoft. Este simple ordenador corriendoRed Hat
Linux reemplazaráal servidor Novell NetWare 3.1 1 yal Windows NT 4.0, mientras que disminuirán los
requisitos de hardware. Con los recientes avances del equipo del Samba soportando
la estructura de
dominios de NT y el lanzamiento en Diciembre de 1997
de Red Hat 5.0, espero tener un eficiente y
-- Extraídode:
económicoservidorparanuestrosclientesWindows95,WindowsNTyMachintosh."
Replacing Windows NT Server with Linux El 29 de Septiembre de 1997, Nick Johnson escribió en Byte
Forum:"Desde la perspectivade un administrador, me esmuydifíciltomarenserioaunsistema
operativo cuando necesita 128 MB. de RAM, dos procesadores a 200 MHz. y ocho "gigas" de espacio en
disco duro sólo para ejecutar un servidor web en una pequeña intranet, especialmente cuando
el sistema
operativo falla y rearranca por un simple paquete estándarTCP. NT es imposible de considerar cuando
fiabilidad y velocidad son requeridos. Usted puede realizar la misma tarea que he mencionado con un
386con16Mb.deRAMconFreeBSD,sinpagar
los elevadospreciosdeMicrosoft.MikeHucka,
administrador UNlX y programador en Michigan, escribe:"¿Lo que perturba mi pensamiento es porqué la
genteestáinvirtiendomuchoensolucionesNTcuandoexistendemasiadasevidenciasquelas
soluciones UNlX son mucho más maduras, estables, menos caras y funcionan mucho mejor? ¿Porqué?
¿Qué le pasa a la gente? "Simplemente la gente no conoce las posibilidades de UNIX?"
"¿Piensa la gente que los sistemas UNlX son demasiado difíciles
de utilizar? Puedo ser subjetivo pero
cuando veo un entorno gráfico como el CDE en una Sun, o KDE, pienso que está muy cerca de lo que
puedeencontrarse en unPC o unMac. Y existe unaTREMENDA cantidad de documentación
disponible para UNlX-- considere todoslos libros publicados por O'Reilly & Associates, o los manuales
en línea disponibles en el sitio de Sun http://docs.sun.com, o cualquiera de los cientos de sitios con
información tratando cualquier aspecto imaginable
de UNIX.
"Y no sólo eso, usted puede obtener versiones libres de UNlX que son comparables
en estabilidad y
escalabilidad a Solaris, y que funcionarán muy bien en hardware PC si lo desea. "Y sobre todo, puede
obtenerse el código fuente." "¿Porqué,
en el nombre de dios, la gente insiste en intentar usar NT?"
Servidores Web El líquido de la vida, o la sangre de Internet es la We.ÉSta es la cara que el público ve.
Si tu sitioeslento,llenodeproblemastécnicos,
o inaccesible,estotendráseguramenteefectos
adversos. Desde que muchas organizaciones están orientadas hacia UNIX, normalmente funcionan con
servidores como Apache o Netscape-Enterprise. Apache fue concebido con UNlX en mente. Es libre y
actualmente guía Internet. Aproximadamentela mitad de los servidores Web en Internet son Apache (ver
the Netcraft Web Server Survey). Microsoft'sIIS Web Server no llega a un cuartode todos los servidores
Web conectados a Internet. Apache actualmente está siendo utilizado por: Javasoft, The FBI, Financial
Times, The Movies Database, W3 Consortium, The Royal Family, Oxford University Libraries Automation
Service, M.I.T., Harvard University, and the Universityof Texas at Austin. Netcraft también menciona esta
compañía de ''Virtual hosting" (hospedaje virtual) Rapidsite ocupa actualmente
el quinto puesto en su
categoría. Su sistema de hospedaje, funcionando con una versión personalizada de Apache, soporta
44,280 nombres de dominios con39,905 direcciones ip diferentes. Un logro, y probablemente el sistema
de hospedaje más grande del mundo." Leerá que en
la sección de rendimiento de este artículo UnixApache marriage put the NT-IIS one to shame. Ni sólo Apache es más rápido, es gratis. Para I servidor
120
más robusto que una organización pueda necesitar, Netscape-Enterprise es una gran elección. Aunque
no es gratuito como Apache, afrontará las más altas necesidades. Netscape-Enterprise es utilizado por
compañíascomo:BMW,Dilbert,SiliconGraphics,Shell,SunMicrosystems,Sybase,
Ferrari andThe
Vatican.Microsoft's
IIS esunadelaspocascosasqueacompañanactualmenteaWindowsNT.No
posee ninguna cualidad especial o única que no se encuentre en otros programas servidores Web. No
destaca ni en velocidad, popularidad ni en el número de conexiones concurrentes que puede soportar.
Actualmenteestásiendoutilizadopor:Compaq,Nasdaq,TheNationalFootballLeague,Exxon,and
Tesco. Dado el hecho que Microsoft debela mayoría de su éxito al hardware de bajo coste tipo PC, esto
es, máquinas basadas en Intel usted podría pensar que su gran aliado debería utilizar IIS. Bien, ipues se
equivoca de nuevo! www.intel.com utiliza Netscape FastTrack Server.
Para los usuariosdeWindows95yNT,unode
los lugaresmáspopularesdondeobtenersoftware
gratuito y shareware es un lugar denominado www.windows95.com. Debido la
a inmensa popularidad del
lugar requiere un sistema operativo robusto y un servidor Web orientado a un buen rendimiento. Como
todo el software ofrecido en este lugar es exclusivamente para Windows 95o NT, y la tendencia general
tiendeaserpro-Microsoft,unopuedepensarqueservidores
NT corriendo IIS deberíaser la opción
lógica para sus soluciones en Internet. Bien, he aquí un fragmento de una de sus propias páginas Web.:
Qué hardware y software está ejecutándose en Windows95.com? Utilizamos ordenadores Pentium
Pro ejecutando el sistema operativo UNlX BSDl con el servidor Web Apache. Nuestros servidores están
conectados a
Internet vía múltiples conexiones T3.
Nota: Este fragmento es de Febrero de 1998. Recientemente cambiaron su nombre de Windows95.com
a WinFiles.com aunque todavía disponen del uso del nombre de dominio windows95.com. Este cambio
se hizo en Marzo de 1998. Otra mirada a Apache versus Microsoft's
IIS "Ed Frankenberg, responsable
de productos de PSlWeb -- la división de servicios de hospedaje de PSlNet
Inc. -- no apuesta por la
solución Microsoft. Dice que PSIWeb, uno de
los líderes en hospedaje a empresas con más de
2,000
clientes,utilizaelservidorWebgratuitoUNlXApacheporqueesmásrápidoqueNT."Fuente:John
Evan Frook, "Windows NT Bidsto Oust UNlX at lSPs (9/4),"InteractiveAge, 1996.
Servidores de Correo (MTAs)
Opiniones de profesionales (MIS):
Billy Bob Thornton escribe:
Exchange también tiene la "ventaja" de requerir que pague a Microsoft por cada conexión
al servidor
(cargo por-uso). Puede poner juntos un sistema utilizando, por ejemplo una Sun Ultra 1(7K ballpark) y el
servidor de correo Solaris Internet Mail Server (viene incluido con Solaris 2.6) y servir POP e IMAP a un
grupo de miles de personas. Alguien me dijo que puede hacerse lo mismo por dos veces este coste con
servidores NT y Exchange.
Brad Van Orden, consultor de Sistemas y Redes, escribe: ... Como he señalado anteriormente, incluso
ignorando los costes, Exchange le costará mucho más de mantener. Debe tener alguien manteniendola
aplicación. Si está utilizando correo Unix, desde el momento en que su sendmail.cf sea correcto,la única
cosa que normalmente tendrá que hacer para administrarlo será añadir
o borrar alias. ÉSta es la gran
diferencia en costes "sobrela marcha".
Tom Moore de Dayton, Ohio escribe:
La tendencia parece ser tener alos novatos como administradores. Leí un articulo sobre servidores web
que mencionaba que aunque Apache era el servidor predominante en Internet hoy, "probablemente no
era adecuado" para las empresas en parte porque no tiene un interfaz
gráfico para la administración y
portantonecesitabaunadministradorexperimentadoparaconfigurarlo.
El problemaparecíaserque
tener un interfaz gráfico significaba que cualquiera podría simplemente señalar y pinchar y tenerlo todo a
punto correctamente.
121
La misma "lógica"podríaseraplicadaasendmailvsMSExchange.Sendmailtieneunarchivode
configuraciónenmodotexto,necesitaunadministradorexperimentado.Exchangetieneuninterfaz
gráfico por lo que no lo necesita. Habiendo trabajado con ambos, no me lo creo. Ambos se configuran
fácilmente en su configuración por defecto. Ambos requieren experiencia como administrador para hacer
cosas algo complicadas. Cuando tiene cosas complicadas como filtros anti-SPAM, no puede hacerse con
Exchange.
Conclusión
Irónicamente, parece por las observaciones de los experimentados administradores de sistemas que
UNlXdeberíaser el sistemaoperativoescogidoinclusoparaunainstalaciónpequeña
o engrandes
corporaciones con una demanda de gran potencia, servidores multi-procesador que requieran un sistema
operativo escalable. Una escritora del Washington Post, Elizabeth Corcoran, nos muestraun ejemplo de
la vida real:
CincinnatiBELLInformationSystems,porejemplo,hautilizadoestacionesSunyservidorespara
procesarchequesdurante
años. RecientementeadquirióvariosservidoresSunúltimomodelopara
manejar la demanda de un millónde facturas al día. La elección, dijo James Holtman, vice-presidente de
CBIS, fué entre servidores Sun o estaciones IBM. La tecnología de Microsoft "todavía no está apunto.
Tiene mucho que crecer para alcanzar a estos sistemas," dijo. (The Washington Post, Domingo,
8 de
Febrero,1998;PaginaH01)Dadoqueunacompañíapequeña
o medianatienequeejecutarpocos
procesos críticos, es deseable contratar administradores adicionales para su Microsoft Exchange y
InternetInformationServer(s),ytenerunsustanciosopresupuestopara
el esquemadelicencias
Microsoft "por servidor" y "por puesto", entonces
NT sería el sistema operativo a elegir. Aberde Group ha
publicadounexcelentecaso
deestudiodemigraraWindowsNT.NTestambiénunaexcelente
elección para directores que necesitan demostrar que
han utilizado su presupuesto fiscal anual para
pagos de hardware/software. Quizá por esto es por lo que no se necesita tener la aprobación previa de
compra en las agencias federales; "NT seha convertido en el sistema operativo standard "no-oficial" del
gobierno federal.
Los empleados federales cuya responsabilidad incluye la adquisición de hardwarelsoftware requieren
unaaprobaciónpreviaporescritoantesdeadquirirunsistemaoperativo
UNlX o hardwarequeno
funcione con Windows NT. Para hardware basado
en Intel o WindowsNT,nohacefaltaaprobación
previa." (como informaun vendedor de soluciones Sun que desea permanecer el
enanonimato).
Para pequeñas tiendas o usuarios en su conjunto, o incluso medias y grandes empresas que están
comenzando a escapar a la anticuada idea que rendimiento es alcanzado por la fácilmente superar el
rendimiento y funcionalidad de una solución NT, con hardware Intel de bajo coste, y por un precio de
$0.00, un precio que Bill Gates encontrará dificil de alcanzar. ¿Porqué invertir en un sistema operativo
que
requiere
entrenamiento
re-entrenamiento
y
muy
caro
con
cada
nueva
versión
NT?
Los
administradores UNlXlLinux sonmuchosygeneralmentemáscapacitadostécnicamentequesus
homdlogos NT (muchos administradores UNlX tienen conocimientos para codificar/programar, raramente
encontradas en la nueva generación de "administradores NT"). ¿Porqué malgastar cientos
de dólares
para MS Exchange Server que, en algunas compañías, parece quesólo es capaz de manejar el correo
de algunos cientos de empleados cuando puede utilizar el servidor de correo "Sendmail" que acompaña
a Linux, un programa testado y probado capaz de soportar demandas de miles de empleados? Con las
característicasgeneralesyrendimientoactuales
de los dossistemasoperativos,parecequeUNlX
vence.Ofreceunavariedaddevendedores(sinposibilidaddemonopolio),escalabilidad,usomás
eficiente de los recursos del sistema, administración remota, computación remota, multi-usuario,
gran
variedad de recursos software (profesionales), independiente de vendedores, estándar (POSIX), control
del uso del disco por parte de los usuarios (no como el NT), y no puede ser abatido por virus escritos
hace 10 años para sistemas
DOS.Pero la cosa más importante de todo a recordar de este artículo
cuando se intenta escoger entre WindowsNT y unodel los múltiples sistemas UNlX existentes
es está:
Un sistema operativo UNlX le dará opciones: cualquier tipo de hardware, CLI o GUI, comercial o GNU y
variedad de vendedores para elegir; WindowsNT le dará restricciones:solo Intel
122
o Alpha; sin CLI, un solo GUI (intente arrancar NT en modo solo-CLI) y solo un GUI (no hay posibilidad
del amplio abanico de gestores de ventanas que pueden encontrarse en solo
X); MTAs comerciales, solo
Microsoft(¿haoídoalgunacompañíaofreciendosistemasoperativos"clones
de NTServer"?),etc.
AunqueMicrosoftno
eselÚnicovendedor"orientadoarestricciones"promoviendo
sus propias
soluciones cerradas y propietarias, uno puede esperar que organizaciones
que promocionan sistemas
abiertos y soluciones deben permanecer. Netscape es un vendedor que promueve diversidad y puntos
contra"lasrestricciones"Microsoft"anti-escoger",ofreciendovariosproductos:[Nuestra]estrategia
consiste en un fuerte contraste frente a vendedores como Microsoft, cuyo modelo de negocio depende
de clientes actualizándose a la más reciente versión de cada sistema operativo. Considere lo siguiente:
el primer cliente de correo de Netscape funcionaba con Windows3.1, Machintosh y Unix; el de Microsoft
en ninguno de estos. El primer servidor de Internet de Netscape funciona en Windows NT 3.51 y Unix, el
de Microsoft en ninguno. Netscape ofrece acceso nativo a
lnformix, Oracle, Sysbase, DB/2, y ODBC;
Microsoft ofrece acceso nativosólo a sus bases de datos, ejecutando sólo Windows NT. Netscape ONE
ofrecedesarrollodeaplicacionesmulti-plataforma;laplataformadeMicrosoftestálimitadaasus
-- Netscape, The Networked Enterprise: The Netscape Advantage
versiones recientes de Windows.
Parece ser que la cuestión de qué sistema operativo escoger debería ser académica en este punto
basada en la
informaciónquehemostradoaquí,todavíacadadíaalgúnaltamente-capacitadoadministrador
de
jefe que la compañíaestámigrandoaNT.
El
sistemas / redesestásiendoinformadoporsu
administrador se siente alterado y confuso, el
/ ella ya conoce la información de este artículo.
Es la
dirección de su empresa la que debería leer este artículo. Si usted es un director, intente utilizar esta
informaciónapropiadamenteparamejorarelentornoinforrnáticodesudepartamento.Hableconsu
personal técnico y pregúnteles qué funciona.
Realicelasdecisionescorrectas.Noseconfundadebidoa
los vendedoresqueutilizanabsurdas
palabras que ni siquiera saben explicar, sencillamente explíqueles las necesidades informáticas de su
compañía. Busque compañías que han implementado servidores
NT y UNlX para el tipo de solución que
está considerando. Intente entrevistarse con su personal técnico para ser objetivo, informes de primera
manodelaposibilidad,dificultaddeimplementación,ycostesinicialesdepuestaenmarchay
mantenimiento asociados conla solución propuesta por usted.
Linux yNT Server 4.0 a grandes rasgos
Como NT es a menudo escogido sobre
la base del coste de la solución en hardware, Linux será el
sistema UNlX para la comparación, por
su buen quehacer en hardware Intel. Nota:
Solo los puntos /
características que actualmente acompañan a cada sistema operativo están listados aquí. Per1 5.0, por
ejemplo,estádisponibleparatodaslasplataformas,peroMicrosoftno
lo incluyeensussistemas
operativos.Porotraparte,muchasdistribucionesdeLinuxvienenconalrededordecuatro
GUls
(gestores de ventanas) a escoger,
como se vio en una sección anterior, esto es
sólo un pequeño número
UNlX para estas tareas
de los disponibles para Linux,o cualquier otro sistema operativo
¿Qué están haciendo las Grandes
Compañías?
Amazon.com
Amazon.comBooks, la libreríaon-linemásgrandedelmundo,confía
ensistemasDIGITALUNlXa
Server00 para mantener sus negocios en Internet abiertos las 24 horas. La tecnología DIGITAL VLM64
mantiene la información disponible para los clientes. "Las amplias capacidades de servidor Web de la
serie Alphaserver, junto con su facilidad de renovación, ofrece la solución perfecta para nuestra rápida
123
curva de crecimiento."
The Dallas Cowboys Sistemas operativos: IRlX (Silicon Graphics UNIX) y UNlX System V Release
4.0
MTA:NetscapeMessagingServer3.01Web:Netscape-Enterprise3.0DowCorning"Somos
un
operador global y siempre hemos utilizado estaciones de trabajo. Escoger Sun fue más arriesgado que
otras opciones, pero realmente nos impresionaron con su tecnología y su confianza. Ahora que hemos
trabajado con Sun, si lo tuviéramosquehacerotravez,noconsideraríamosotradecisión.Sunestá
-- MarkSmith,Directorde"InformationTechnologySystems",Dow
realizando un fabulosotrabajo."
CorningYahoo!
. . UnosdíasdespuésañadimosunamáquinaconFreeBSDanuestroclusterde
servidores Web. No sólo superó al resto de nuestras máquinas sino que fue más estable. Unas pocas
semanas con este experimentos y estábamos convencidos. Aunque el precio era realmente atractivo, fue
la estabilidad, rendimiento y el acceso al código fuente lo que nos convenció. Desde entonces hemos
utilizadoFreeBSDexclusivamenteparaproducciónycomoentornodedesarrollo."
-- DavidFilo,Cofundador de Yahoo! (FreeBSD News, Número l ) Esta lista de compañías que utilizan Linux en su día a
día busca informar al público sobrela realidad de Linux como alternativa viable los
a sistemas operativos
UNlX comerciales. Compañías como Cisco Systems Inc., Sony World Wide Networks, Mercedes-Benz,
and Yellow Cab Service Corporation son mencionadas. Una descripci6n de las capacidades en las que
Linux está siendo utilizado acompaña a cada compañía listada.
Enlaces de Interés
I'.
OnSite - Caso de Estudio: Dolores de Cabeza por
la
Migración
por The Aberdeen Group, 1997.
Windows NT noes rival para UNIX, dice IDC
por Rob Guth, Computer
world, 7-24-97.
Premio al Producto del Año 1997: Sistemas Operativos
Operativos deRed.
por Eric Hammond, InfoWorld Laboratorio Técnico.
- Sistemas
Premio al Producto del Año 1997: Premio al Mejor
Soporte Técnico.
por Ed Foster, InfoWorld Laboratorio Técnico.
Linux Revisiones y Artículos por Christopher Blizzard.
Esta página lista 65 artículoso revisiones sobre Linux.
Linux Crece: Linux Red Hat's Linux golpea a NT en su propio terreno, por Maggie Briggs. La autora es
una analista senior en el Laboratorio Técnico de InfoWorld. Está especializada en tecnología de bases
de datos y diseño de aplicaciones, y desarrollo vía intranet y otras redes. Linux ficha por la empresa:
¿Hay un lugar en tu tienda para este económico Unix? por Rick Cook, en: SunWorld
- Enero1998.
Haciendo cuentas para resolver
el debate NT vs. Unix Doing the mathto resolve the NT vs. Unix debate
por Wayne Spivak, Network World, 18 de Agosto de 1997 Las ventajas de utilizar BSDl BSD/OS sobre
Windows NT Server ¡Server - Verio Web Hosting Inc. - Viruta1 Servers Linux: Not Just For Geeks And
College Kids Anymore, por Jason Perlow, ZDNet, 11 de Febrero de 1998. Aprendiendo acerca de Linux:
Potente, robusto, y gratis, Linux es un firme candidato, especialmente si planea instalar un dominio de
Internet por Neil Randall, ZDNet- PC Magazine Online, Julio 1997, Vol 16, No. 13. Cambiando Windows
NT porLinuxporQuinn
P. Coldiron,responsabledelDepartamentodeSistemas
de informacióndel
Universidad de Nebraska Press.
Un Análisis profundo de cinco sistemas operativos UNlX y Windows
NT 4.0(EnterpriseEdition)por
D.H.BrownAssociates,Inc.Comparando
BSDl yNT:Construyendo
servidores de Internet e lntranet con BSDl y Windows NT The Standish Group
- SUN también crece:
Solaris Vs. NT Bitwizard B.V. "UNIX vs. NT" El Informe H: 'Que sistema operativo para su 'Intranet'?
¿Porqué escribió este artículo? y ¿Cuál es
mi interés personal? Como persona que trabaja en esta
124
industria, ha llamado mi atención la creciente implementación de soluciones sólo NT en situaciones para
las cuales no está bien concebido. Actualmente, la frase "solución NT" es una mala elección de palabras
si ello implica que ello funciona para satisfacción del cliente. He
escrito este artículo como un servicio
Los Monopoliosnosirven al
públicopara la empresa,corporación,ypequeñosnegociosdelmundo.
cliente. Microsoft está lentamente convirtiéndose en un monopolio, no un estándar, comoellos desearían
que usted creyese. Java es un estándar. No hay nada abierto en
las APlsde Microsoft. Ellos son, y
seránpropietarios.LasaplicacionesJavafuncionanencualquierplataforma,lasaplicacionesde
Microsoft no.
Misingresosprovienendesoportarsoftwarecomercialquefuncionaentodaslas
plataformas. Si todos los sistemasoperativosUNlXdesaparecieranmañana,noestaríaafectadoen
modo alguno. Como puede ver, no tengo intereses creados en ningún sistema operativo en concreto. No
herecibido,recibo,yprobablementenuncarecibiréningúnsoporteeconómicodeningunafuente
destinado a promover este artículo.
ARQUITECTURA GENERAL DE LINUX RED HAT
Además de compartir muchas de las características de UNlX tales como son cumplir con los estándares
IEEE PPOSlX 1, System V y características de BSD , todas las versiones incluyen una opción de instalar
el código fuente del kernel, administrador de archivos, memoria y otros para que el propio usuario pueda
cambiarlos , así como también los diferentes ambientes de Shell que se incluyen desde el KSH de HP
hasta el BSH de IBM además de otros, así como la oportunidad de poder crear un shell propietario . En
su sistema de gráficos puede soportar consolas virtuales desde una terminal "tonta" hasta una emulación
de los productos de Microsoft tales como Windows 3.1 y más adelante winSX, además se puede a
la
vezpersonalizar el ambientedelescritorio,paraconelloevitar
el modotexto.Linuxsoportavarios
sistemas de archivos para almacenar datoslos de tipo Minix-1 y Xenix , MS-DOS o leer archivos de dos
desde un disquete . Además de lo anterior se cumple la norma I S 0 9660 del, sistema de archivos de los
formatos estándares de CD-ROMs. Linux provee además de opciones de sistema operativo de red muy
avanzadas, como ya sabemos UNlX por si mismo soporta TCP/IP pero además de lo anterior, linux es
capaz de soportar los protocolos SLIP, PLIP, PPP, el sistema NFS. Linux fue escrito en modo protegido
para máquinas 386 y superiores aprovechando con ellola memoria extendida además de poder manejar
Swap (esto es obligatorio que se configure cuando se esta instalando
el S.O. y el rango esta entre 60 MB
a256MB),y
las instruccionesdeensambladordeunprocesador386
o superior . El kernelsoporta
paginación de programas ejecutables , esto es solamente para porciones de memoria en
el disco que
sonleídasdediscoamemoria
. Asícomotambiéncadaunodelosprogramasejecutablesysus
procesosestánseparadosenáreasprotegidasevitándolechoquedeaplicaciones
o los candados
mortales o abrazosmortales.También
la facilidaddepoderregenerarelKernel,recompilarlosin
necesidad de hacerlo por medios muy sofisticados.
AI inicio del sistema cuando la computadora es encendida, no se ha ejecutado ninguna operación del
CPU , ya que en el proceso de encendido primero se cargan en memoria y detectan todas las unidades
de almacenamiento para después de ello cargar las imágenes correspondientes de los programas que
se deban de ejecutar.
los programasqueresidenen
Muchossistemasdelmicroprocesadorcomienzanautomáticamente
dispositivos permanentes del storage tales como memorias readonly programables (EPROMs). Una vez
que se cargue el programa del ollhe de la imagen, la CPU debe éI dirigió la ejecución baja del comienzo
en el oll local del on de la memoria del hrs el programa cargado. Este proceso del hilo en un programa
en el execution se utiliza para comenzar cualquier programa a ejecutarse en una CPU. En este capítulo,
125
examinamos cómo se ata con correa el núcleo de UNIX,
o cualquier otro programa similar. Entonces
estudiamos la operación del sistema durante la fase de la inicialización, que lleva el sistema de un skn't
frío la puntaen la cual los programasdelutilizador-modopuedenserejecutados.
Unasecciónfinal
examina los asuntos que se relacionan con el procedimiento de lanzamiento. Estos asuntos incluyen el
configuración de la imagen de la carga del núcleo, cerrando abajo de un sistema corriente, y poner a
punto fallos del sistema.
La descripción 13J ' el núcleo de UNlX es solamente un programa, no obstante grande. Como cualquier
programadeUNIX, suimagenbinariaresideenuninputen
el hie system hastaquesecargay
funcionamientofijado. 4.3BSD presumeque la imagenejecutabledelnúcleoresideenunarchivo
nombrado vm-unix en el file system que se señala como el filecs\stcm de la raíz. Cuando UNlX se ata
con correa en una máquina, un programa especial, nombrado ul, es ahora cargado y es
el ejecutarse
comenzado.Latareadelprogramadelululatoescargareinicializarlaimagenejecutabledeun
programa y comenzarla a ejecutarse. El cargador del programa inicial puede venir del mismo dispositivo
de almacenaje que archivo del Ihe
éI las cargas iniciales, o puede ser cargado de un dispositivo de
almacenaje utilizado por el procesador
de la consola de la máquina específicamente para atar propósitos
con correa. 394 el lanzamiento de sistema de Char picr 13 que elpm ram del ululato lee el im3c hmary
de un programa bajo éI ató con correa en memoria principal y después firma con iniciales ¡/.es la CPU
parapodercomenzar el programacargado.Losprogramascargaronporululatosonfuncionamiento
fijadoconvirtual-lasinterrupcionesde
la dotaciónfísicadelaiid
de laconversióndedirección
invalidadas. El programacargadoes1'ore.nablingresponsableestosrecursosycualquierhardwaic.
adicional tal como dispositivos de entrada-salida, de que se prepone utilizar.
Cuando el núcleo de UNlX es cargado por el programa del ululato, el núcleo pasa a través de varias
etapas de la dotación física y del software lógica initiali.action en
la preparación para la operación de
sistema normal. La primera etapa es responsable de i/.ing inicial el estado del (' pi I, incluyendo asociar
de la pila runtime y de la virtual-memoria. La memoria que asocia, incluyendo virlual- la conversión de
dirección, se permite temprano en el favorable de lanzamiento * el procedure a minimi/e la cantidad de
that de lenguaje de ensamblaje special-purpose del código debe ser escrito. Una vez que se permita el
asociardelavirtual-memoria,elsistemahace
la inicialmáquina-dependientei/alionsyentonces
initiali/.actionsindependientedelamáquina.Lasoperacionesmáquina-dependientesincluyen
los
vectores de paginacióndelavirtual-memoria
de la creacióny los dispositivosdeentrada-salidade
configuración: las acciones independientes de la máquina incluyen montar el file system de la raíz y el
iling inicial las estructuras de datos innumerables del sistema. Este orden es necesario porque muchos
del initialitations independiente de la máquina dependen de los dispositivos de entrada-salida que son
initialitedcorrectamente.Following la disposicióndelasporcionesindependientesde
la máquinadel
los programas
núcleo, el sistema está en estatus operacional. Se creanlos procesos del sistema y hecho
runnable.yuser-level
setraenadentro
de los filesystemsejecutarse. A estepunto,elsistemaes
aplicaciones normales del funcionamiento bajo listo,
es una operación máquina-dependiente. En la
13,2 El atar con correa atando un programa con correa
mayoría de las máquinas, esta operación es cither utilizado al lado de un procesador secundario llamado
el procesadorde la consola, o porunmonitorde
la consola. El programadelconsola-monitores
residente en el almacenaje permanente y se invoca automáticamente cuando (se reajusta el ' pi I. Los
off standalonedel book ¡rap programa.La
recursos de laconsolaesperanqueayudabajaqueel
mayoríade los procesadoresyde
los momloisdelaconsolatambiénejecutanoperacionesdel
diagnostie cuando una máquina esloss reajustado (la dotación física del llie del sombreroes functionnig
los d')esdelmonitor de la consoladeloidelprocesadorde
la
propulsaly.MientoululatoProuram
consola a menudo no entenderel formato del file system 4.3BSD. En lugar, el formato propietario delfile
system de un vendedor, o un cierto file systemmásaceitosoformal,esinterpretadopor
el software
lógica que utiliza atar operaciones con correa.Por esta razón, el núcleo de UNlX se ha atado con correa
históricamenteconelprograma
del ululato.Esteprogramaesunprogramadeusogeneraldel
126
\standalone que se puede utilizar para cargar y para ejecutar otros programas del
standalone. Esté
parado-idonc el programa es un programa que es capaz del funcionamiento sin la ayuda del núcleo de
UNIX. Los programas independientes se conectan generalmente al sltitulame 110 lihíufy, una biblioteca
que utilice un interfaz de la entrada-salida de UNIX-like enunavariedaddedispositivosdedotación
física. La biblioteca independiente de la entrada-salida proporciona a estos recursos a través de
una
colección
(de Boots irapping 395 o de la sección 13,2 ' (hicri.h ansii una biblioteca (ayuda del lhat de las rutinas
del) tl() (azulejos de los file systems de UNlX que residen en los dispositivos. Una vez quesehaya
cargadoysehayacomenzadoelprogramadelcargadordelprogramainicial,debecargarellile
conteniendo la imagenejecutabledelprogramaqueseataráconcorrea
y despuéscomenzar el
funcionamientodelprogramacargado.Paracargarel
hie apropiado,elcargadordelprogramainicial
debe saber el path name del archivo que se cargarán y del dispositivo de dotación físicaen los cuales el
hie reside. Esta información se comunica para anudar en una de dos maneras. En el VAX, dos registros
de dotación física son initiali/.ed para contener los valores que especifican cómo cargador del programa
inicial si ' funcione y que debe ser utilizado el dispositivo cuando se cargan las imágenes del programa.
Otras máquinas comunican la información que ata con correa al programa del cargador del programa
de la misma manera
inicial por initialli la pila run-time y entonces poniendo parámetros del Ihe en la pila
el núcleo de UNlX pasa argumentoslos
a programs.
Los registros usados en elVAX se llaman el registro del hool howto
y el registro del ululato-dispositivo. El
registro del Boot. howto es interpretado por el cargador del programa inicial cuandoel último ' comienzo
del Ihe que ejecuta dependiendo del valor del registro, cargador del programa inicial cargará el the, el
vm-unixde un dispositivoespecificadoen el registrodelbootdevice, o incitaráen la terminalde la
consola del Ihe parael me de un archivo para cargar y de un dispositivo delos cuales obtener el archivo
especificado. El valor puesto en el registro del boothowlo se define de los indicadores mostrados en el
vector 13,l. El valor puesto en el registro del boot device para identificar el ' el dispositivo de dotación
física para utilizar para atar con correaes dependiente en la configuración de la biblioteca independiente
de la entrada-salida a la cual se conecta el cargador del programa inicial. Puesto quela composición de
estabibliotecaesdependiente
en los dispositivosdedotaciónfísicadisponibles
en unamáquina,el
contenido del Ihe del registro del boot device puede variar entre diversos tipos de máquinas, por nuestra
discusión, es suficiente saber que el contenido del registro especifica una partición del dispositivo y del
file system del valor por defecto de la cual leer programas. Anude siempre
los programas de cargas en la
posición de memoriaO. Puesto que el cargador del programa inicial se carga inicialmente en memoria en
la localización O, debe copiar su propia imagen a otro lugar en programa del archivo del Ihe del I() del
piisscd en la librería de los I'higs Tablé13.1 y a la llamada del sistema del rrhoof.
I,
OF el prog main que ata con correa encima de
sí mismo
la memoria baja evita de cargar la imagen
(véase fig. 13,l). Esta realocación implica que el programa del cargador del programa inicial se
debe
crear con su direccionamiento que comienza fijado a la posición de memoria en la cual será copiado; si
no, las referencias a las estructuras de datos en el programa del cargador del programa inicial tendrán
acceso a las posiciones de memoria incorrectas después de que se copie el cargador del programa
inicial (recuerde que el cargador del programa inicial funciona con virtual- la conversión de dirección
invalidada).LosmediadelaconsoladeVAX
la mayoríade los ordenadoresdeVAXincluyenun
procesador dela consola y una cierta forma de almacenaje secundario
que sea accesible del procesador
de la consola. El subsistema de la consola de VAX-1 1/7"0 incluye un mecanismo impulsor del disco
blando, mientras que VAX-11/750 y los subsistemas de la consola VAX-1 1/730 incluyen un pequeño
cartucho- el bobinador. La secuencia exacta de las medidas tomadas durante atar
un VAX con correa
varía de la máquina a la máquina. En la operación normal,
el procesador de la consola de VAX busca
para un archivo llamado 1 ) l BOO. (' VII) en sus media de la consola. el archivo de las enfermedades
contiene los comandos que el procesador de la consola debe interpretar para atar la CPU con correa.
Los comandos en los compartimientos típicamente la restauración los subsistemas de la CPU y de la
127
entrada-salida,initiali/.ecolocavaloresconocidosbajos,yentoncescargaunhilodeldispositivode
almacenaje de la consola y lo comienza a ejecutarse. El utilizador puede solicitar acciones alternativas
en las máquinas de algún VAX fijando los interruptores del panel delantero, o por comandos especiales
el pulsar en la terminal de
la consola.
Cuandoeldispositivodealmacenajedelaconsolaseutilizaenelprocesoqueataconcorrea,
el
programa del cargador del programa inicial
debe residir en este dispositivo de almacenaje.4.3BSD utiliza
dos programas utilitarios que manipulenel formato del file system usado por el procesador de la consola
-- arfT y ficopv. Estos programas se utilizan para poner programas tales como cargador del programa
inicial en media de almacenaje de
la consola de VAX. 13,3 Núcleo Initialization cuando el núcleo de
UNlX es comenzado por el programa del cargador del programa inicial, hace un lnitialitation en la IO de
la preparación los programas de aplicación del 01 de la ejecución. El núcleo de proceso lnitialitation 397
de la sección 13,3 deinitiali/.actionsedivideáspero
en tresetapas.Laprimeraetapaseescribe
enteramente en lenguaje ensamblador y hace el trabajo necesario para el código del no-ensamblajelenguajeparafuncionar.Lasegundaetapahaceoperacionesmáquina-dependientesincluyendo
la
configuración y la inicialización de los dispositivos de entrada-salida en
la máquina. La tercera etapa
hace las operaciones independientes de la máquina, terminando su trabajo comenzando encima de los
procesosdelsistema-residentequecomponen
la fundaciónparaelambientenormaldeltiempode
pasada de UNIX.
El lanzamiento de Assembly-Language las primeras medidas tomadas por el sistema durante lnitialitation
es realizado por código de lenguaje de ensamblaje. Este trabajo es muy máquina-dependiente; incluye
*Settingencimade la pilarun-time*Identifying el tipoofCTUenelcual
el sistemaestáejecutando
Calculating lacantidaddememoriafísica
en la máquina*Enabling la dotaciónfísicavirtual-addiess
*Inilialiting de la traducción la dotación física *Graftingde la memoria-gerencia el contexto dela dotación
física para el del proceso O que invoca el punto de entrada C-c-based inicial del sistema que nuestra
discusión de estos pasos de progresión se concentrará en el trabajo requerido para utilizar el VAX; las
accionessimilaressonnecesariasparacualquiermáquinaen
la cual 4.3BSD seejecute.Cuandoel
programadelcargadordelprogramainicialcomienza
el funcionamientodelnúcleodeUNIX,instala
solamente dos componentes del estado de la máquina: 1. La prioridad de la interrupción se fija en su
nivel m& alto para bloquear todas las interrupciones de la dotación física. 2. El hardware layer invalidó
de modo que todas las referencias
de la memoria estén a las posiciones de memoria físicas.
El núcleo de UNlX no presume nada sobre el estado de la máquina en la cual se está ejecutando. El
núcleo se carga en memoria física en la localización O. En la operación normal, se permite la dotación
físicade la tratar-traducción de VAX ylaimagendelnúcleoseasociaen
la memoriavirtualque
comienza en la localización hexadecimal AOOOOOOO. En la preparación para permitir la conversión de
dirección, la memoria física usada por el núcleo se asocia en las localizaciones virtuales idénticas. El
este asociar del doble es necesario porque VAX
el no entrará en modo asociado hasta que se permite
la
conversión de dirección y se ejecuta una instrucción
de ramificación. El asociar doble de la memoria
física se asoció al núcleo se asegura de que una instrucciónde ramificación a una instrucción que tiene
éxito (especificada como un direccionamiento virtual) irá ala localización física correcta.398 la tarea del
capítulo 13 System.Startup S A segunda del código de lanzamiento es a la identidad el tipo
de VAX en el
cual el sistemaseestéejecutando.Aunquetodosloscomputersde
VAX utilizanunconjuntode
instrucción común, la configuración de la entrada-salida varía entre las máquinas. Además, las puestas
enpráctica del alguno-microprocesadordelarchitecture de VAX utilizandirectamentesolamente un
subconjunto del conjunto de instrucción completo de VAX. Para estas máquinas, el núcleo debe emular
los instmetions que falta de
la dotación física en software lógica.
El núcleo identificael tipo de VAX en el cual se esté ejecutando interrogandoal contenido del registro del
identification del sistema (SID). **time-out** contenido este colocar incluir uno bien conocido constante
que Único identificar tipo VAX. 4.3BSD utilizar sistema tipo *To distinguir entre diferente tipo consola
128
almacenaje media y consola procesador interfaz *To decidir que dotación dispositivo y entrada- interfaz
poder ser configured en uno máquina *To dirigir excepcional máquina condición{ máquina controlar) *To
calcularentiemporealretrasarponerwith'>/"bucle*Todecidircómo
fijar paraarribainterrumpir
programa 4.3BSD poder ser configured tal que uno solo núcleo carga imagen poder utilizar un número
diferente VAXes. Inicialización después de que el código de lenguaje de ensamblaje haya terminado su
trabajo, de Machine-Dependent llama la primera rutina del núcleo escrita en
C, la rutina del mnin(). Un
parámetro se pasa a esta rutina -- número del Ihe de la primera paginación disponible de la memoria. El
sistema calcula este valor, considerando (la mentira site dela imagen de la carga del núcleo del Ihe y de
cualquier paginación afectó un aparato holguras bajas de la ejecutar-cal y a otras estructuras de datos.
La rutina delmain{)llamainmediatamentela
rutina delstnftup{)parahacerinitialitationsmáquinadependiente.SfartupOseprovee
el mismonuiin{delvalor)recibidodelcódigodelenguajede
ensamblaje.**time-out**tasksIhemáquinadependientestartupcódigoincluir
inicialinitationIhe
efectuar en el buffer *Allocation memoria para sistema dato estructura
inicialización núcleo memoria
allocator*Autoconfigurationyinicializaciónentrada-dispositivoalguno
otro dotación-específicoparte
máquina ser inicializar después de que llamada stUftup{) vuelta, este operación ser describir tarde, en
nuestro discusión independiente dela máquina de lanzamiento código.
El mensaje BlifTer del núcleo lnilialitation 399 de la sección 13,3 el buffer del mcssn es 4 un kilobyte en
un buffer circular situado en la memoria superior de la comprobación del
ot. Los mensajes de diagnóstico
visualizados en la consola con la rutina de (o una de sus variantes) son kepi en este bulTer como ayuda
en problemas que siguen. Antes de 4.3BSD,
el almacenador intermediario de mensaje era accesible
solamenteatravésdeldispositivoespecial
/ dev/kmem.Además, los utilitariostalescomoeldmest
programanque lee el almacenadorintermediariodemensajeycopianelcontenidodelalmacenador
intermediario bajo un hie administrativo del registro no podían sincronizar sus actividades correctamente
con la generación de nuevos mensajes de diagnóstico. Por estas razones, 4.3BSD agregó, especial
/
dev/lO del dispositivo. Este dispositivo proporciona a un interfaz inalterable al almacenador intermediario
de mensaje que utiliza la llamada del sistema del \ctcct. Además, la mayoría del diagnóstico del sistema
ahora se genera en un formato que sea interpretado por el programa del svslogd. Estos cambios se
asegurandequeeldiagnósticodelsistemaestésalvadoconfiablementeenhiesdelregistro.La
inicialización del almacenador intermediario de mensaje es directa. Primero, la memoria de los cates del
alloc del sistema para el almacenador intermediario deduciendo el site del almacenador intermediario de
mensaje del Hie site de la memoria física calculaba por el código del lenguaje ensamblador. Entonces,
una correspondencia privada de la paginación, ntfs, es initialited para referirse a las paginaciones físicas
apenas afectadas un aparato.
Sistema dato estructura asignación de memoria para sistema dato estructura es fácil a este punto ende
lanzamiento procedimiento, ' shúlup rutina es provisto identidad de primer disponible paginación de físico
memoria que sigue, residente *.v/@//* del núcleo. Además, el núcleo se sabe para residir en la memoria
virtual que comienza en el Así, bajo afecte un aparato el espacio para
las estructuras de datos contiguas,
el sistema asigna simplemente el direccionamiento virtual del bloque disponible siguiente de la memoria
física a cada estructura de datos, segmento de boot(-y entonces incrementos el o1 del valor ' por el site
de la estructura de datos. La memoria afectada un aparatolas
a estructuras de datos de esta manera no
es necesariamente initialited a cero; las rutinas del initialization llamaron de main{) se aseguran de que el
contenido de cada estructura de datos está instalado correctamente. La técnica apenas descrita se utiliza
alamemoriadelallocateparacadaestructuradedatoscontiguadelsistema.Lamayoríadeestas
estructuras de datos son sited cuando
el sistema es configured, con las tallas basadas en el número
máximo de los utilizadores esperados (véase también la sección 13,5). La memoria inmediata y la base
del almacenador intermediario asocian, sin embargo, están sited según la cantidad de memoria
física
disponible en la máquina. La talla de la almacenador-memoria inmediata se calcula como 10 por ciento
de los primeros 2 M B M E de la memoria física y 5 por ciento de la memoria restante, " el sistema se
aseguran de que haya un mínimo de 16 almacenadores intermediarios, aunque este
límite más bajo
debe nunca ser un problema a menos que
el sistema se configure con el bloque muy grande sites file
del
la memoriainmediatadel
system. la adicióndel fn a los almacenadoresintermediariosdedicadosa
129
almacenador intermediario, el sistema debe también afectar un aparato las cabeceras del almacenador
intermediario para
intercambio de operaciones: las cabeceras de la entrada-salida buffer del hie del
ot del número en el
onc-halt'ofthc son intercambio enfermo afectado un aparato del uso del tor y los operations al pagar. El
sistema debe calcular el site dela correspondencia dela base altera allocator(mL ' las estructuras de la
memoria inmediata del buffer y de datos estáticos, becau-e que el valor está utilizado para asociar toda
la memoriafísicaafectada
un aparatonodeotramanera
al sistema.Unavezque
la memoriacorrespondenciay el allocatorde la sistema-memoriahayansidoinitialited(descritoen
la sección
tollowing),losmecanismosnormalesde
la memoria-asignacióndelsistemadebenserutilizados.
El
allocator de la memoria el paso de progresión pasado en el procedimiento de lanzamiento máquinadependiente antes del autoconfigurationes el allocator de la memoria de sistema del Ihe initiali/.action
01.
Los I/O del núcleo afectaron un aparato ya toda
la memoria física que requiere para llevar a cabo las
estructuras de datos del sistema: cualquier memoria restante se hace uso general del lor disponible. El
allocator dela memoria es initialited por una llamada a
la rutina del mcminit{) con la primera y a la
memoria disponible pasada delo1 de las paginaciones. La estructura de la correspondencia de
la base es
initialitated a la referencia en esta memoria y el valor del MBR se hace uso para estas, y (las variables
del ncfc usadas por el sistema de memoria-gerencia (véase la sección 5,12)se fijan encima de basado
en la memoria disponible. Autoconfigurationes el procedimiento realizado porel sistema al no reconocer
loquepermitealosdispositivosdedotaciónfísicapresentesenunsistema.Labraprocesofue
introducido enlasecciónK.5,donde
los requisitos éI loslugares en driversdedispositivofueron
descritos. En esta sección, nos concentraremos en los funcionamientos centrales del proceso de la auto
configuración. En detalle,estudiaremoslasestructuras
de datosqueseutilizanparadescribirla
topología de la dotación física de un sistema y la manera en las cuales los dispositivos son alcanzados
por el sistema.
Paraentenderelprocesodelautoconliguration,debemosprimeroganarunaciertafamiliaridadcon
structure del Ihede un ordenador deVAX. Los dispositivosde entrada-salida queel lor un VAX reside en
losmegabusesde
la entrada-salidacombinauninputloutputdeunaCPUde
VAX con un busdel
sistema. Los dispositivos de entrada-salidasepuedenconectardirectamentecon
el megabusdel
sistema informático o, más comúnmente, los megabuses existentes bajos dela entrada-salida que están
conectados con los megabuses del sistema con acklpto del bus
de la dotación física (véase fig. 13,2).
Cada conexión física baja el megabus del sistema de un VAX, incluyendo los adaptadores del megabus,
sehaceconunnexo.Unnexohacecualquierarbitrajedelsistema-megabusquelosdispositivos
necesiten para tener acceso al megabus del sistema. Cada nexo también proporciona a una batería de
Kbyte de registros en el megabus del sistema a través de el cual la CPU puede tener acceso y controla
el dispositivo asociado. Los registros asociados a un nexo están situados en
la porción de la entradasalida del Ihe de la región del sistema. Nexuses es el núcleo 1nitilli.h
de la sección 13,3
Cuadro 13,2configuración básica del ordenador deVAX uno mismo-self-describing: un registro en cada
madeja del registro del nexo contiene un valor que únicamente identiFies el tipo de dispositivo asoció a
ése nexo. Autoconfiguration trabaja muy sistemáticamente sondando los nexuses posibles en
un VAX
que busca las conexiones activas bajas el megabus del sistema. Para cada nexo que esté en uso, se
interpreta el bajo asociada dispositivo del 01 del tipo el nexo y dependiendo de este tipo, las acciones
necesarias se llevan initialite y el configure el dispositivo. Para los reguladores de la memoria asociados
a un nexo, el sistema debe initialiteel regulador y permitir señalarde los errores de la memoria. Para los
adaptadores del megabus, las rutinas del configuration deben sondear para los dispositivos de entradasalida que pudieron estar presentes en los megabuses asociados de la entrada-salida. Para configurar
un dispositivo de entrada-salida, el sistema del tlie requiere que seael dispositivo specified en la entrada
fijó dedispositivos
comopotencialmentepresenteenelsistema(véase
la sección 13,5).yqueéI
130
posibles es organizado en cualquiera de las dos librerías uno para
los dispositivos que pudieron residir
en un MASSIUJS y uno para los dispositivos que pudieron estar presentes en un UNIBUS. Cuando un
adaptador de la entrada-salida se encuentra en el tiempo del autoconliguration, el sistema busca
los
vectores de initialitation para los dispositivos que se pudieron configurar en ese adaptador. **time-out**
paracadacorrespondercondispositivo,unosondearoperaciónserhacer
o pordevicedriverde
dispositivo (para UNIBUS dispositivo) o por auto configuración código (para MASSBUS dispositivo) y, si
punta de prueba ser acertado, dispositivo ser registrar en sistema dato estructura
.
Apartedeltrabajoimplicado
ensondearpara
los dispositivos, el procesode la configuracióndebe
también identificar donde los dispositivos de entrada-salida interrumpirán, y entonces debe instalar las
rutinasapropiadasdelserviciodelainterrupción
demodoquelasinterrupcionesfuturasde
los
dispositivos sean manejadas por los drivers de dispositivo que utilizan. la ' configuración dinámica del
archivo de los dispositivos de entrada-salida y de los programas pilotos de interrupción permite que un
solo núcleoseaconfiguradoparaunnúmerodediversasconfiguracionesdedotaciónfísica:esta
flexibilidad es importante en mantenimiento del sistema minimizado.402 el sistema bajo la milicia de los
programas pilotos clínicos. del configuración del lanzamiento de sistema capitulo3 todo el tcp posible
vectors el tope a la punta baja del adaptador dela entrada-salida a una rutina special-purpose. I su rutina
registra simplemente el vector de la interrupción y el nivelde la prioridad de la interrupción en los cuales
una interrupción ocurre en registros bien conocidos, y después vuelve. Las rutinas la
depunta de prueba
del dispositivo-programa piloto se escriben tales que ellas definen un largo uso de estos registros, pero
las carga de la novela realmente un valor en los registros. En la consonancia del cargador del programa
inicial, las rutinas de la punta de prueba del tlie de los comodines del sistema del azulejo tales que no
salvarán a los registros en entrada, ' 11ns permiten los valores puestos en el valor de los registros que
una rutina dela punta de prueba se llama baja sea alterada por una llamada del programa piloto especial
de la interrupción del propósito. Para sondear lor un dispositivo y una configuración bajo su vectores de
interrupción. la lata simplemente inicialice del sistema los valores conocidos de los registros, llaman el
driver de dispositivo punta de prueba baja el dispositivo y para generar una interrupción, y después
controlan los valoresen los registrosbajosconsideran si eselejemplodellasinterrupciones.del
dispositivo del Ihe, lor rutinario de la punta de prueba del Iheel driver de dispositivo ascendente
Machine-IndependentInitialitationconlasestructurasdedatosestáticasdelsistemaafectadas
un
aparato y los dispositivos de entrada-salida configurados e inicializados, el system es listo terminar el
procedimiento de initialitation y comenzar para arriba los primeros procesos de bajo nivel. La acción del
historial de la rutina del nuit{) en el hierro es baja instalada el proceso O del lor del contexto; El lhat de
proceso de Hie pondrá eventual la política en ejecución de intercambio del sistema de la virtual-memoria.
El primer entiv en el vectorde proceso es el proceso afectado un aparatoO del lor, y el proceso de llie es
runnable marcado y está instalado puesel proceso actualmente quese ejecuta (véase el capítulo4). La
estructura del utilizador, ejecuta -tinie la pila, y el bloque de control de procesos para las latas
que el
proceso era initialited en el código de lanzamiento de lenguaje de ensamblaje, tan solamente trabajo de
menor importancia se requiere para terminar el initialitation. La paginación pasada de la pila run-timees
inalterable marcado a actuar como f:()iu se asegura de
que el proceso no amplíe su holgura más allá del
hxed el espacio afectado un aparato a éI sin causar un desvío del sistema. Varios apuntador adentro (la
estructura del utilizadorde la mentira es initialited, y los parámetros de valor por defecto del sistema
en el
utilizador estructuran se establecen que se heredan a través de una llamada del sistema de
la fork. El
últimosincluyen los límitesdelrecursodelilie,lamáscarade
la archivo-creación,yelarsenaldel
identificado del grupo. Cuando los los hilos del proceso O las rutinas hechas a mano, varias se llaman a
inicializando cadauna los datos del sistema:
la rutina del inicio del sistema instala parámetros del ilie utilizados por
el sistema que pagina del ilie.
Estos parámetros son dependientes en la cantidad de memoria física disponible y
(éI numera de los
131
dispositivosdeentrada-salidaidénticosseráutilizadopara
la paginacióneintercambiar.Miento
los
límitesdelrecurso
enlapiladeunprocesoysegmentosdedatos,tanbien
como el residenteseleccionado. está instalado en la estructura del utilizador del proceso O. Estos límites entonces auto
inicializa-fácilmente
serán
heredados
cerca
afligen
procesos
más
aceitosos,
puesto
que
son
descendientes del proceso O. 404 el sistema de control de los recursos del contingente del disco del
lanzamiento de sistemadelcapítulo
13 *El esKill / cd:incluye
los procesosresidentesde
los
contingentes del I/O de la memoria inmediata así como las estructuras del ita del uper-uside la memoria
inmediata.
El reloj en tiempo real
de *Este se enciende con llamada del sistema.
Esta rutina prepara la dotación física del necesario que provee interrupciones regulares
al sistema. La
tarifa de reloj. el IL programable, es seleccionado para arriba según la variable / / r que es denegado el
sistema está en ese entonces configurado.Por el default, 4.3hSD se ejecuta con un lo()-hertz / un reloj
01 de la frecuencia menos de 50
en tiempo real. Este valor puede ser alterado, pero seleccionando un
hertz / degradan la cala los dispositivosdeentrada-salidasevotanque,susalgunosmultiplexores
terminales de la respuesta de sistema de la dotación física, bajando el reloj y su frecuencia pueden
permitir el bajo rendimiento del sistema.\ frecuencia de las altas tarifas delflujo de datos del :VIV)*sc'TII
pueden también causar los errores en ciertos cálculos, su ejemplo de round out con un 6()-hertz / una
tarifa de reloj, cálculos del número entero involing el reloj de la frecuencia que se sesgarán. El sistema
evita normalmente labra problema manteniendo valores del time out en términos que el reloj del 01 se
lame.Unaconsideraciónfinalenelegirunrelojfrecuenciaesquelafrecuenciadefine
el intervalo
observable mínimo del tiempo en el sistema. I el suyo es importante para los cálculos estadísticos, tales
como programa que perfila y las estadísticas, donde el reloj del clinico se lame son bajas cargado un
valor del proceso o del programa-contador en la cal que se mantiene una interrupción delreloj en tiempo
real. En general, la frecuencia de reloj se debe seleccionar para ser como alto como posible sin
loo
mucho de arriba del sistema que es incurrida en.
Después del initialitation del reloj,el sistema de memoria-gerencia de la redes initialited con una llamada
al mhinit{) (véase el capítulo 10). **time-out** carácter lista dato estructura usado por terminal entradarecurso ser fijar para arriba por a desecho y subsecuente llamar ser entonces hacer initialite *La su
red y
interfaz ' \ mentircomunicacióndominioyredcomunicaciónprotocolo
proceso-gerenciadato
estructura *El textodelvector*Thehashedinodememoriayinodevector*Theintercambiar-espacio
gerencia dato estructura 4 mentira del sistema oculto nombre memoria Belore sistema poder alcanzar
single-user operación, éI deber aún montar raíz filesystem, y crear proceso yo (proceso que ejecutar
vtdinit) y proceso 2 (proceso que copia paginación memoria secundario almacenaje en utilizar virtualmemoria sistema). La identidad del filesystemde la raíz es definida por el valor del Ihe de la variable del
rooldcv.Estevalorsedefineinicialmenteeneltiempode
la configuración,aunque los utilizadores
pueden cambiarlo en el tiempo del cargador del programa inicial atando el sistema con correa
de un
dispositivo con excepción configurado (véasela discusión anterior de la auto configuración). El inode de
la raíz delfile system montadode la raíz es initialite necesario
Directoriodetrabajoactual
de la sección13,4User-Levellnitialitation405yproceso
O dellordel
directorio de raíz. Además,la fecha pasada de la modificación enel file system de la raíz del superhi ock
of the se utiliza en initialite.in
el día del 01 de la cal del sistema. El time stat del lrom
el superhiock es bajo
comparado cualquier tor actual del valorla hora disponible enla dotación física, yla hora actual se obliga
para ser en el plazo de 6 meses del tiempo en el filesystem (a menos que el tiempo del filesystem es
totalmente increíble). Este cheque de estado coherente se asegura
de que el sistema sea atado con
-- talescomo el timedaemon,
correaconunahorarazonablementeexacta.Losrecursosuser-level
medidoeltiempo
-- utilizan el tiemposynchroni/ationyrecalibraciónenunambiente
de la red.
Finalmente, el sistema es bajo listo ejecuta programas del utilizador-modo. El proceso I se crea con una
llamada al ticwpr()c(), entonces el contenidode un programa de lenguaje de ensamblaje pequeño que
se
compile en el núcleo se copie en el espacio de direccionamiento del utilizador del proceso y
se fija el
proceso el ejecutarse. El contenido de este programa está básicamente como sigue
Es decir, el programa comienza para arribael programa / etchit, exiling el il que la llamada a falla. Esto
132
hace / ctclinit crítico a la operación: II no ejecuta el correctivo.il no está allí,o si las partes delfile system
necesario para alcanzarlose dañan, el sistema del ¡he no se puede anudar de esefile system. Este error
es más serio que un incorrecto / un vmunix, porque la carga inicial permite el nombrar del 01 un diverso
archivo objeto para el núcleo, pero no hay un camino directo bajo especifica programa diferente del init
de i. Cuando bastante espaciode disco está disponible, la salvaguardia generalmente es mantenidabajo
los 110 disponibledel file systemdeldiferentestalescasospatológicos.
El segundoprocesoquese
comenzará es , del identificador segundo con 2 más identificador de proceso. Este proceso se ejecuta
enteramente en modo del núcleo invocando la rutina del pc/mt, el procedimiento que nunca vuelve o
regresa valor. Como el proceso O, el CPU en sus inicios marca su estructura de proceso para asegurar
eso que la estructura no será quitadade memoria. El CPU.kútn()n también amplía su segmento de datos
paraproporcionarse al sitio deasociarlaspaginacionesdelamemoriaqueescribirá
el almacenaje
secundario bajo (véasela sección 5,12).
La acción pasada o mnin{) es llamada baja la rutina del scluck{) dentro del procesoO. Como el CPU de
identificador de este proceso se ejecuta enteramente en modo del núcleo y la llamada al schcd{) nunca
vuelve.Larutinadelschcd{)pone
la política en ejecución de intercambiodelsistemadelavirtualmemoria: se describe en la sección 5,13.13,4La inicialización de User-Level con el comienzo de la
ejecucióndelproceso
I, la mayoríadel o1 elsistema esdefuncionamientoyfuncional.Hayvarias
medidasadicionalestomadasentreestapuntay
el tiempocpudel486definidodelcapítulo
la
System.Startup un proceso a inicios en el stein Ilic. Todas las acciones tliese forman arcos (solitario por
el program user-level que utilizan los LlNlX estándares sistema-llaman el interfaz que los lista descritos
en capítulos anteriores. abreviadamente examen: éI camina que ocurre en) un sistema típico 4.3HSI:
esté enterado, sin embargo, que éstos la lata de los pasos de progresión varían drast-time\ entre popas
sys de LlNlX
El programa / ctclinit se invoca como paso de progresión del último del tlie enel procedimiento de carga
inicial. Miento los parámetros especificados cuando era UNIX bootsrapped se pasa al initen un terminal
machme-dependiente. Enel VAX. (los retrasos pasados bajo el programa del cargador del programa
inicial se pasan al init en el mismo registro de dotación física que el en las cuales fueron pasados bajo el
núcleo.Initutiliza
los valoresdeestosTagsparadeterminarse
si debetraerelsistemahastaa
la
operación sola o multiuser. En single-user operación, init bifurca proceso que invoca, estándar
/ binlsh
delshell de UNIX.Laentradadeinformación,lasalida,
y los descriptoresestándaresdelerrordel
proceso se dirigen al, / dev/handle de la terminal de la consola de sistema. Este shell entonces funciona
normalmente, pero con privilegios del superuser, hasta que termina.
En la operaciónmultiuser,elinit
primer spawdgenera un shellparainterpretar los comandosen el azulejo / etclrc. Estos comandos
hacen cheques de estado coherentedel file system, procesos del upsystem del comienzo, y dados de la
base de datosdeinitialite,talescomoarchivo
/ etdmtab ese los comandos la lista de filesystems
montados. Si la escritura / etc/rc termina con éxito, el init entonces bifurca una copia de sí mismo para
cada dispositivo terminal que esté marcado para el uso en el archivo / ctc/ttvs del the. Estas copias del
/ ctdcttv, para manejar la muestra estándar en
init invocan otros programas del sistema, por ejemplo
procedimiento. El proceso I actúa siempre como el proceso que coordina principal para la operación de
sistema. Es responsable de spawnlgenerar nuevos procesos como se terminan las sesiones
de terminal,
y de manejar la parada normalde un sistema corriente/ etc/rc
Cheques de la escritura del comando / etc/rc primero la integridad de los filesystems. Esto cheque es
necesarioasegurarsedequecualquierdañosquepudieranhaberocurridodeunfallodelsistema
anterior está reparada. La ayuda del filesystem dentro del núcleo
es solamente referidos filesystems
existentes de la lectura y de la escritura de la voluntad). Cualquier inconsistencia en un filesystem es
reparada por programas user-level. El program / vlc/fsck es tlie que la herramienta importante issed en
controlar estado coherente del filesystem y en la reparación de filesystems dañados. Normalmente. lsfk
se invoca de la escritura del Ihe
/ ctc/rc para examinar y del filesystem del ea.h de
la reparación antes de
que se monte. El botín filesystem.
del lié II montado por el núcleo se invoque antes deque / etdrc,
requiere las reparaciones,4.3BSI.)ilselfdelreboot
de la necesidadparaasegurarestadocoherente
entre los datos en la memoria inmediata del almacenador intermediario ylos datos en el filesystem. Esta
operación del reboot se hace automáticamente, según lo descrito más adelante. Following los cheques
133
del filesystem, los filesystems se monta y se permite cualquier dispositivo que deba ser utilizado para
intercambiar y paginar. Los contingentes del disco después se controlan y se permiten,
el comienzo
y
del
sistemalosprocesosdefondoqueponenvariosserviciosdesistemaenejecución.Estosincluye
/
etdupdate, el programa de los procesos
Asuntos 407 de la sección 1 3 3 System.Startupque los silencios el discoescriben de la memoria
inmediata de huffer cada 30 segundos: / L*(c/crlt el programa que ejecuta comandos en los intervalos
periódicos del tiempo: / etclaccn. el favorable gramo que permite el sistema accolinting: y / ctc/svsl(" el
proceso de registración del error del sistema. Algunos de estos procesos se comienzan de la escritura/
etc/rc.localdelcomando.En
/ etc/rc.localde los comandos seadaptasegún la necesidaddecada
ordenadorprincipal,mientras que en / ctc/rc de los comandosescomúnatodos
los ordenadores
principal. El ejemplodel IOR, los procesosqueproporcionanaservicios
de red es labiotípicamente
encendido del programa / etc/tty del archivo de comando / etc/rc.local / etc/getty es lor spawdgenerado
por / etc/init cada línea de terminalde la dotación física en un sistema. Este programa
es responsable de
la apertura y de initiali/.ing la línea de terminal. Abriéndose, la terminal hace el sistema asignar un grupo
de proceso (si los favorables cess tenían ya un grupo de proceso, aplicaciones k t t y / ero de la llamada
del sistema del primero
éI). El programa getty fija los parámetros iniciales del Ihe para una línea
de
terminal y estableceel tipo de terminal asociado a la línea. Para las líneas asociadas a un módem, getty
puede ser ordenado para validar conexiones en una variedad de velocidades,
(el icttv selecciona esta
velocidad cambiando la velocidad de la línea
de terminal del Ihe en la respuesta baja un carácter de
rotura o un error que enmarca, generada típicamente como resultado del utilizador golpeado ting un
clave de rotura. Los claves de rotura sucesivos se pueden golpear por un utilizador para completar un
ciclo con un número de velocidades de línea hasta que se encuentra el Ihe el apropiado, (las acciones
del icttv son conducidos por " una base de datos de la terminal-configuración que esté situada enel
archivo / etdgettvtah. Gettv finalmente lee un nombre de la conexión, e invoca el programa / hm/login
bajo termina una secuencia
de la conexión.
/ binhoginelprogramade
la conexiónesresponsable de firmar a un utilizador sobre
el sistema:es
generalmente por invocado / etc/gettv con el nombre del utilizador que desea abrir una sesión bajo el
sistema. Mensajes de conexión a la comunicaciónel utilizador para una palabra de paso (después
de dar
vuelta de producir eco terminal
si es posible). Si la palabra de paso provista por el utilizador cifra al
mismo valor que eso salvada en el archivo principal
/ ctc/passwd de la palabra de paso, la conexión
escribe un expedientedelamuestraencendidoenvariosarchivos
de estadísticas,initialites los
identificadores del utilizador y del grupo a ésos especificados en los archivos y / etc/group de la palabra
de paso, y los cambios bajos el directorio de la conexión del utilizador. Finalmente, la conexión utiliza
c.shellparasobreponerseconelshelldelutilizador.Elprogramade
la conexióntambiénseinvoca
cuando un utilizador incorpora el sistema con un conexión de la red, gettv y el init se desvía para tales
conexiones. Antes de que esta complicación fuera agregada (en
4.2BSD), el sistema podría recognite un
shell de la conexi6n notando que el procesode padre del shell era init. Estoera útil para las estadísticas
y para limitar el número de conexiones simultáneas. El indicador SLOC fue agregado a la estructura del
proa para que la conexión fije para marcar un shell de la conexión. La conexión4.3BSD no fija ni utiliza
este indicador, pero el indicador del Ihe ha sido a otra parte usado
IEl /, 19841. 13,5 Los asuntos del
lanzamiento de sistema en estasección,consideramos
los asuntosque
se relacionanconel
procedimiento del lanzamiento de sistema.
Estotraecomoresultado
que la entrada de undirectoriopuedasertanlargo
como serequiera.El
espacio asignado aun directorio puede ser completado a partir del conteo para
el total del tamaño de
entradas; es decir, en resumen las entradasde un directorio tienen una longitud variable y son dinámicas
los valores delos tamaños de las entradas.
y para que no existan espacios muertos se toman
Cuando un archivo o entrada es borrada desde un directorio, el sistema colecciona este espacio dentro
de otraentradapreviaen
el mismodirectorioparaconellopoderincrementar
el cunaparaser
incrementado de acuerdo al tamaño de la entrada borrada .Si la entrada de un directorio en su primer
campo del chunk esta libre entonces el apuntador a la entrada del inodo se toma como O para que esta
no pueda ser tomada en cuenta por el sistema. En las nuevas versiones
de UNlX el tamaño de un
134
directorio es de 14 caracteres y consiste en entradas de un arreglo de 16 bits, los primeros 2 bits son el
númerodeinode,
los restantes14bitssonelnombredelarchivo.Losprogramaspuedenbuscar
directorios paraleerlosposteriormentecomoarchivosnormales.Otrode
los beneficioseselanexar
rutinas de acceso de directorio que puede emular sistemas de archivos
tipo MS2 en UNIX.
LIGAS
Todos los archivostieneasociadosuninodequecontieneinformacióndescribiendo
los permisosde
acceso, esto incluye desde el dueño del archivo, la fecha y hora de la última modificación y un arreglo
de indices que apuntan alos bloques de datos del archivo.
Cada directorio tiene un solo inode pero puede tener múltiples entradas de directorio, esto debido a que
el sistema de archivos puede hacer referencia a un solo archivo con múltiples nombres . Cada entrada
al directorio creaunaligaestáticadeunnombredearchivo
al inodequedescribesucontenido.El
concepto de liga de inode es fundamental ya que un inode no puede estar dentro de un directorio, pero
existe en forma separada y siempre ese inode hará referencia a una liga del directorio. Cuando todas las
ligas de un inode son borradas, el inode se pierde. Si una liga aun archivo es borrada y el nombre del
archivoescambiadaconunnuevocontenido,secontinúaconotraligahaciaelapuntadordelviejo
inode. La fig..7-3 muestra dos tipos diferentes de entradas de directorio de la Pág. 189.
Elsistemapuedesoportarligassimbólicas
o softlink,unaligasimbólicaesimplementadacuando
el
archivocontieneelnombredelaruta.Cuandoelsistemalocalizaunaligasimbólicaestapuedeser
interpretada mientras por una ruta con su nombre; y el nombre puede ser la ejecución de otra tarea. Si
una liga simbólica contiene una dirección absoluta de ruta esta es usada en otros casos, es decir, el
contenido de esta liga simbólica es evaluado en forma relativa de acuerdo a una estructura jerárquica de
la localización de ligas de un archivo, un ejemplo de una liga simbólica se muestra en
la fig. 7-4 de la
Pág. 190.
Una liga simbólica tiene grandes ventajas sobre una ligadura, específicamente una liga simbólica puede
hacerreferenciaaun
directorio aunarchivoaunsistemadearchivos.Unaligaduranopermite
referenciaaundirectorioperoprevieneciclosenlaestructurajerárquicadelsistemadearchivos;
la
implernentación de ligaduras previene la referencia a archivos de diferente
un
sistema de archivos.
Algunas ligas simbólicas pueden causar ciclos infinitos en un sistema de archivos, el kernel checa para
un número largo “ 8 el que una liga se traslape en el nombre de una ruta.
Si el limite es rechazado el
kernel produce un error.
CUOTAS
Los recursos pueden ser compartidos tradicionalmente, esto se hizo en el diseño original de UNlX en
algunas implementaciones un usuario común y corriente puede determinar el espacio disponible en el
sistema de archivos, en ciertos ambientes esto no es aceptable. Consecuentemente el UNlX original
restringe a través de un mecanismo de cuotas el acceso a los recursos del sistema de archivos que un
usuario pueda obtener.
El mecanismo de cuotas obtiene los límites del número de archivos y de sectores del disco que cada
usuario pueda utilizar. Estas cuotas puedenser obtenidas por separado para cada usuario en el sistema
de archivos.
Los recursos pueden ser obtenidos a través de limitantes restringidas. Cuando un proceso excede estas
limitantes un aviso de prevención es enviado al usuario en su terminal, si al sistema no se le hace caso
este puede terminar la decisión de terminar este proceso si se ha excedido en el limite de restricción. La
idea es que el usuario solo pueda obtener un limite de espacio para cada sección; pero también esto se
los
puede cambiar de acuerdo a
la actividad de trabajo que se tenga. Las cuotas para cada uno de
usuarios del sistema y su uso se guardan en un archivo de log.
135
El sistema de archivos tiene una implementación para evitar que el usuario no tenga una abstracción
hacia lo quesignificaelmanejodeunarchivo,paraesteelarchivo
esun arreglodebytesquees
colocado dentro de un medio físico como puede ser un disco magnetic0 ordenado de acuerdo con un
tamaño determinado de sectores. El usuario puede escribir un
solo byte del disco que puede leerse
y
escribirse solamente en múltiples sectores,es aquí donde el sistema empieza a acomodar en un arreglo
de sectores esos bytes y a reemplazar o reacomodar estos sectores en el disco. Esta operación es
aleatoria y es escrita en el sector del disco conocida como bloque de entrada
y salida.
Primero el sistema obtiene la petición del usuario de haceruna operación de lectura o escritura, esto es
aceptado como un cambio interno lógico
de bloque. Los bloques lógicos son descritos de acuerdo
al
tamaño del bloque, el sistema calcula los bloques lógicos necesarios para ser divididos en un arreglo de
byte dentro del sistema de archivos. La fig. 7-5 muestra el flujo de información que es requerido para
acceder al sistema de archivos de un disco de
la pág. 192.
Las operaciones para reordenar el arreglode byte y localizarlos dentro del arreglo se pueden resumir en
5 pasos principales:
1- Localización deun buffer.
2- Determinación de la localización correspondiente al bloque físicoelen
disco.
y
3- Petición del controlador del disco para leer el contenido del bloque físico dentro del sistema buffer
esperar la transferencia de información completa.
4-
Elcopiardentro
de memoriaamemoriadesdeeliniciode
apropiada porción del sistema de buffer.
la entrada y salidadelbuffera
la
5- La escritura del bloqueen el disco.
Si la petición del usuario no se completa el proceso es repetido a partir del siguiente bloque lógico del
archivo, esto es transparente para otro proceso algunas veces el inode es bloqueado durante
la petición
de otro recursoy este es retornado hasta que se termina
la operación de lecturay escritura del bloque.
LOCALIZACION Y SEÑALAMIENTO DE BLOQUESEN EL DISCO
El sistema de archivos contiene identificadores de localización pasara nuevos bloque y archivos, una
simple técnica para poder localizar archivos dentro de
un sistema es que estos sean continuos uno
después del otro, pero al ser removidos se tiene que reutilizar este espacio en
el disco, a la vez el
sistemadearchivospuedemovera
los otrosarchivosaeseespacionoutilizado;losarchivos
solo
pueden ser creados para ser utilizados en un cierto tiempo también.
Para poder contener un proceso de localización adecuado UNlX y otros sistemas utilizan el concepto de
índice por inode como se muestra en
la fig. 7-6 de la pág. 194.
los bloques del archivo. El
En esta se puede observar que el inodo tiene un arreglo de apuntadores a
sistema puede convertir a un número de bloques lógicos a un sector físico con
su correspondiente índice
en el arreglo usando el número lógico del bloque. La entrada
enelarreglodeunnullindicaqueun
y menos leído. AI
bloque no puede ser localizado por lo tanto un archivo ahí no puede ser colocado
escribir nuevas entradas en un nuevo bloque estas son colocadasen el arreglo, siendo este actualizado
con el nuevo número de bloque
y los datos que son escritos al disco.
Enadición el mapeológicohaciaunbloqueeneldisco,
la informacióncontenidaenelinodoque
contiene otra información del archivoy de su contenido es:
136
0
El modo de acceso y el tipo de acceso para el archivo.
0
Eldueñodelarchivo.
0
El identificador del grupo de acceso.
0
Elnúmerodereferenciasalarchivo.
0
El tiempo más reciente de la última lectura y escritura al archivo.
0
El tiempo que el inodo tardo para ser sustituido por el sistema o actualizado.
0
Eltamañodelarchivoenbyte.
0
El número de bloque físicos usados por el archivo (incluyendo
indirectos).
los bloques usados por apuntadores
ESTRUCTURA DEL SISTEMA DE ARCHIVOS
y 7-9 de la pág. 204 y 191, este está más detallado.
Este se muestra en la fig. 7-1
MANEJO DEL BUFFER
La semántica del sistema de archivos de UNlX implica el localizar las entradas y salidas en el disco, las
tareas que son asignadas para el manejo del buffer son de dos tipos:
La primera es la de controlar el acceso de la memoria hacia el buffer y los datos que se transfieren del
buffer hacia el disco. La segunda y más importante es tomar en el acto el cache más reciente usado por
el bloque del disco, como se muestra en la fig. 7-13 del formato de un buffer, este esta compuesto por
dospartes: la primerapartees la cabeceradelbufferquepuedecontenerinformaciónusadapara
localizar al buffer y describir su contenido,
la segunda parte es el contenido actual delbuffer.
137
MANEJO DE PROCESOS EN (LINUX Red Hat)
Introducción
, tales
Un proceso es un programa en ejecución . Un proceso debe de obtener recursos del sistema
como sonmemoriayusarademásal
CPU. UNlXsoportalaejecuciónyplaneacióndemúltiples
procesos al mismo tiempo de controlarlos y conjuntar los procesos que están listos para poder ejecutarse
y ser leídos .
Un proceso en UNlX opera bajo el modo usuario o el modo kernel . En modo usuario un proceso no se
ejecuta en código máquina y que no tiene todoslos privilegios de recursos del sistema es decir se tiene
por decirlo así un modo de protección. Cuando un procesos requiere de un servicio desde el sistema
operativo hacia adentro de este hace una llamada,
en este caso el sistema operativo toma la decisión de
cambiar los privilegios y actuar enmodo kernel.
Los recursos de un procesosonsimilares y sepuedendividir en dospartes. Los recursosqueson
requeridos para la ejecución del proceso en modo usuario son definidos por la que incluye el CPU en sus
registrosdepropósitogeneral
, el contadordelprograma,elregistrodelestatus-procesador,y
los
registros de la pila relacionados . Como también los contenidos de memoria en sus segmentos de
la
programación usadas tales como son las partes de texto, datos
los segmentos
y
de pila.
Los recursosquesonocupadospor
el modokernelincluyeademásde
los requerimientosde
registros que son usados por el CPU tales como : contador de programa, el apuntador haciala pila
tambiénrequieredelusodelKernely
su intervenciónparapoderobtenerunaoptimizaciónde
recursosdelsistema.
En esteestadoelkernelincluyeparámetroscomosonllamadasalsistema
concurrentes.,elestadoactualdelaidentificaciónde
los procesosusadosporelusuario.
información de la planeación de los procesos, y otros más. . Unix divide el estado del kernel en dos
estructuras de datos diferentes como son
: la estructura procy la estructura user.
Laprimeracontieneinformacióndelestadoactualdelamemoriaprincipaldelsistema
estructura la de usuario contiene información necesaria para los procesos que actualmente
usando . Estas estructuras son controladasy creadas de manera dinámica.
los
pero
los
, la
, laotra
se estén
Mulfiproceso
Unix soporta ten forma transparente la ilusión de que múltiples programas son corrido y usados por
múltiples programas y procesos . Esto es aceptado en el contexto de intercambio esto es por se debe de
obtener un intercambio de recursos del sistema entre un procesos y otro . Un mecanismo proveído para
estos es el poder planificar la ejecución de procesos, estos es para poder decidir cual es el siguiente
proceso que se ejecuta. Las facilidades que son aseguradas para poder proveer de un acceso constante
de los recursos que son compartidas en un conjunto de procesos.
Laconmutacióndecontextoesunaoperaciónhardware-dependientequepuestaenprácticaes
138
influenciada
por
los recursos
subyacentes
del
hardware
físicamente.
Algunas
configuraciones
proporcionana las instruccionesdemáquinaquesonsalvadasyrestauradasenelcontextodel
hardware-ejecucióndelproceso,peroelestadodelsoftwarelógicoutilizadopor
el kernelsedebe
cambiartambién.Laconmutacióndecontextosehaceconfrecuencia,asíque
el aumentodela
velocidad de un interruptor del contexto perceptiblemente disminuye el tiempo con forme pasa el tiempo
en el kernel y proporciona más tiempo para ejecutar aplicaciones de usuario. Puesto que la mayoría del
trabajodeuninterruptordelcontextosegeneralizaenelahorroyrestablecimientodelcontextode
funcionamiento de un proceso, la reducción dela cantidad de la información requerida para ese contexto
es una manera eficaz de producir interruptores más rápidos del contexto.
MuchossistemasdeUNlXseevitandecopiar
los estadosdelcontextode
los procesosresidentes
usando el hardwarefísicodelaadministraciónde
la memoria (si estádisponible)paraasociarla
estructura usuario del nuevo proceso corriente en el manejador que el programar el tipo de la estructura
de procesos.
Planeación de Procesos
Esto es una tarea implicada que es dependiente en
los tipos de programas ejecutables y en metas
programar de la política. Los programas son charaterized según la cantidad de cómputo y la cantidad de
entrada-salidadelqueestahaciendouso.Tentativamenteelprogramarlas
políticas típicamentede
balancear la utilización del recurso contra el tiempo toma para que un programa termine. La prioridad de
un proceso periódicamente se recalcula basada en parámetros tales como la cantidad de tiempo de
la
CPU que ha estado utilizando, los recursos de la memoria , la cantidad que se lleva o requiere para la
ejecución, etcétera.
UNlX utiliza una política de planeación prioridad-basada que se predisponga para favorecer programas
los programas
interactivos,talescomoeditoresdetextos,trabajosconcluidosporlotesyelque
interactivos tienden para exhibir las ocupaciones de los periodos cortos de cómputo seguidas por
los
períodos de inactividad o la entrada-salida. La política de planeación asigna a cada proceso una alta
prioridad de la ejecución y permite inicialmente que el proceso se ejecute de a cuerdo a un parámetro de
tiempo determinado para que estos se ejecuten para
la duración de su rebanada de tiempo en CPU y
hagan la tarea de bajar su prioridad bajar Usualmente un proceso cambia suprioridad a un más alta en
CPU debido a una llamada de una operación de entrada salida. Los procesos que son inactivos tienen su
prioridadlevantada. Así, los trabajosqueutilizangrandesmontonesdecalculodeCPUsehunden
los trabajos interactivos que son sobre
rápidamente a una prioridad baja, mientras que sigue habiendo
todo inactivos en una alta prioridad de modo que, cuando están listos para ejecutarlos se instalan con
derecho preferente, esto son los trabajos duraderos de la bajo-prioridad. Un trabajo interactivo tal como
un editor de textos que busca una cadena, puede convertirse en un cálculo persistente. y conseguirá
una prioridad más baja, esto es hasta que se escoja una vez más se volverá a una
alta prioridad y de
nuevo seran inactivada otra vez.
El sistema también necesita una política de planeación de procesos
para poder ocuparse de los problemas que se presentan de no tener bastante memoria principal para
llevaracabo
los contextosdelaejecucióndetodos
los procesosquedeseenejecutarse.Lameta
principaldeesta política deplaneaciónesreduciralmínimoeltrahsing
-- unfenómenoqueocurre
cuando la memoria original corta más tiempo del necesario un proceso que está pasado en el sistema,
esto se maneja por incidentes de paginación y la planeación de procesos hace ejecutar código de la
aplicación en modo usuario para evitar problemas de este tipo.
139
AI iniciar el sistemapuededetectaryeliminareldesperdiciodememoria.Estadetecciónpuede
observarse en el montón de la memoria libre y en las peticiones de velocidad de memoria. Cuando el
sistema hace una petición de un pie de pagina libre
o una petición de memoria de alta velocidad de
memoria,esto es consideradoparaevitareltrahsing.Elsistemaeliminaeltrahsingalrastrear
los
procesos muy largos y evitar
el compartimiento dela memoria de esos procesos muy largos. Lamemoria
compartida puede ser liberadaal sacar el proceso y en procesos distribuidos remanentes. Cada proceso
usualmente puede ser eliminado de esta forma.
Este criterio de selección favorece a los trabajos que son cortos e interactivos sobre las tareas por lotes
largos, si el desperdiciocontinúa,procesosadicionalessonseleccionadosparasercompartidosy
liberarse en memoria posteriormente; con ellos se logra que
los procesos sean o estén disponibles y
corran efectivamente.
Eventualmente los procesos pueden liberar la memoria cuando estos se han completado, esto es debido
a que la memoria de salida compartida puede regresar a la memoria principal recursos de ejecución,
algunas veces si la memoria no es liberadael proceso de comparticiónde memoria aloja estos después
de 20 segundos. Usualmenteel trahsing pude seruna condición para retorno, pero el proceso de entrada
de compartición no puede ser muy largoya que existe un limite de tiempo enla memoria residente, esto
es que en ese tiempo algunos procesos pueden ser seleccionados paras ser liberados en la salida de
compartición.
.
*
.
I
j
La orientación de las políticas de planeación reflejan en forma interactiva el original diseño
de UNlX para
las tareas, esto se ve en el uso del ambiente del tiempo compartido de memoria. Existen infinidad de
documentación escrita acerca de las políticas de planeación de memoria, cada una puede mencionar
procesosenlotes
o ambientes de sistemasentiemporeal.Usualmenteestaspolíticasrequieren
cambios en el sistema para poder ir agregando políticas de planeación.
ESTADO DE PROCESOS
Estas son estructuras de datos principales que describen
el estado de un proceso como
se muestra en la
Fig. 4-1 pág.72,algunasdeestasestructuraspuedenser
los remanentes o lamemoriaprincipal
residentecuandoestasotraspuedensermovidasaunalmacenamientosecundarioescuando
los
recursos del sistema son bajos. La estructura procla yText son dos estructuras de datos que siempre se
encuentran en el remanente de la memoria principal. La estructura lusec y los procesos de psginas de
tabla son necesario solamente cuando un procesos
es residente y corre.
140
text structure
r-”l
-
_............
process
control
block
proc StNCtUre
1
user area .
LA ESTRUCUTRA PROC
Contiene los procesos de estado que estén residentes sen memoria en todos el tiempo como se muestra
en la Fig. de la tabla 4-1 de la pág. 73, que muestra el estado lógico de categorías de información, estas
se obtiene como se muestralo siguiente:
Planeación: La prioridad del proceso, el modo usuario, son prioridades planeadas,
CPU y la cantidad de tiempo de espera del montón de memoria.
la utilización de
Identificación: El identificador de proceso, el identificador del proceso padre y el identificador real del
usuario.
Controldememoria:Esunapuntadora
la entradadelatabladetextosqueesutilizadapara
controlar la compartición del segmento de texto, un apuntador a la tabal de páginas parael proceso,
el tamaño del conjunto de páginas residentes en la memoria principal actualmente, y una dirección
para la estructura de usuario en la tabal de páginas cuando son compartidos a un almacenamiento
secundario.
Sincronización: El canaldeespera,estaesunadescripcióndeuneventoparacadoprocesoen
espera.
Señales:Laseñalrecibidapendiente
y la acciónatomarcuandounaseñalesasignadaaun
proceso, como es el proceso de un grupo.
Conteo de recursos: Es la estructura de reuso que describe
provee el sistema, y un apuntador a las cuotas del disco.
Controlador de tiempo: El tiempo utilizado
fijada.
la utilización de muchos recursos que
o a que una cantidad de tiempo
real expira previamente
El valor del estado de un proceso pude mostrarse en la tabla 4-2 de la pág.74. Cuando un proceso es
creadoporprimeravezconunallamadadeforzadaestaesmarcadacomoun
SIDL. Elestadoes
cambiadoaSRUNcuando
los recursossonllenosesrelocalizadoelprocesoaparteunaposterior
ejecución desde que se ver que un proceso fluctúa entre un estado de SRUN
o de SSLEEP y SSTOP se
SZOMB hastaque la
dicequeunprocesotermina.Lamuertedeunprocesoesmarcadacomo
terminación del estado del proceso es comunicada al proceso padre.
El sistema orgánica la estructura PROC dentro de un árbol de listas donde se marcan
las velocidades de
141
los estados de proceso. Estas listas son asignadas por
P-NXT que es un campo dela estructura PROC.
Las entradas de la tabla de procesos que se usan por lista de procesos de ZOMBPROC hasta que
muestra el estado SZOMB listados hasta quela estructura en SZOM es terminada.
se
Muchos de los procesos excepto los queseestánejecutandoactualmentesonalmacenadosendos
colas, una cola de espera o una cola de ejecución. Los procesos que están en procesos de ejecutables
son puestos en la cola de ejecución, cuando un proceso que ha sido bloqueado espera un evento en
localizado en la cola de espera, es parado el proceso hasta queotro evento lo pase o lo cambe a la otra
cola. La cola de ejecución esta organizada de acuerdo a una prioridad de planeación de procesos. La
cola de espera es organizada con el método de
HASAH esta estructura es optimizada al encontrar
el
número de evento del proceso de acuerdo al canal de espera para cada uno los
de procesos en espera.
Existenmuchasbanderasparaverlaoperacióndelproceso,
y estassonutilizadasfinalmentepara
marcar dentro del kernel los estados de transición de las operaciones que involucren una elección de
muchoscontextos.Otrotipodebanderassonusadasparaguardarinformacióndecomunicación
usuario.
al
o PID, estos son mecanismos
Todos los procesos dentro del sistema se les asigna un identificador Único
usados por las aplicaciones y por el kernel en referencia a. Los PlDS son usados por
las aplicaciones
cuando envían señales de otros procesos
y cuando reciben el estado de salida de un proceso por
la
muertedelmismo.DosPIDSsonimportantesespecialmenteparacadproceso:
El PIDdelproceso
dueño y el PID de proceso padre.
Existen muchos campos relacionados para localizar el parentesco entre los procesos, los procesos hijos
activos y el tiempo que han estado activos,
la liga entre ellos, cual es el proceso más joven
y el más
viejo.
Esto se muestre enla fig,.
A
142
Un grupo de procesos es una colección de procesos relacionados entre
sí, cada uno tiene su pipeline
que puede ser asignado al identificador de procesos del grupo.
Los grupos de procesos tienen partes
integrales de facilidad de señales como puede ser la muerte de un grupo de procesos que han sido
llamados por el sistema o el intercambio de una señal en el grupo de procesos. Las entradas y salidas
del sistema en la terminal es un ejemplo de ellas, esto se puede ver cuando se sincroniza el acceso a
unaterminalparapermitirquesolamenteungrupodeprocesospuedaaccederaestaterminalen
cualquier tiempo esta sincronizaciónfacilita la combinación con otros grupos de procesos además de sus
mecanismos de señales previendo elcontrol de las tareas .
El tiempo deCPUestadisponiblecuandounprocesoesliberadodeacuerdoaunaprioridadde
planeación. Un proceso puede llegar a tener dos prioridades de planeación: una es la de planeación de
modo usuario y la otra es la planeación de modo kernel. El rango de prioridades se puede encontrar
entre O y 127, esto es un valor bajo es interpretado como una
prioridad alta, ver tabla siguiente. Las
prioridades en modo usuario están en el rango de
50-127, estas son usadas solamente por procesos que
están esperando un evento en elkernel, un proceso del kernel puede tener una prioridad de espera en el
rango deO hasta 50
Hasta que se le asigne otra señal. Pero nunca un señal puede cambiar intempestivamente una prioridad
a cero, esta regla es necesaria para evitar que las seiiales pueda interferir con la transferencia de datos
en disco. Todas las prioridades del kernel pueden ser asignada a procesos de usuario.
_.
."
El uso de estas prioridades pueden ser especificadas para la llamada de señales de interrupciones del
sistema , estas son implementadas y guardadas en
el espacio de texto del kernel de UNIX.
LA ESTRUCTURA DE USUARIO
Estos estados incluyen:
0
Estado de ejecución del modo kernel y del modo de usuario.
143
0
El estado relacionado con las llamadas del sistema.
0
Latabladedescripción.
o
Elconteó de la información.
0
Elcontrol de los recursos.
0
La relación entre procesos semejantesde ejecución y la pila para el kernel.
2050 bytespara la rutina de
El tamañototaldeestaestructurapuedellegaraalcanzarcercade
ejecución de la pila, el tamaño del kernel en la pila, en la estructura de usuario solamente es restringida
cuando el código de ejecución falla en una llamada de sistema.
MEMORIA
La memoria utilizada por un proceso puede ser descrita por
los campos de las estructuras PROC y
USER. Un proceso de modo usuario es descrito en la información de la tabla de paginas que describe
los procesos residente actuales en la memoria principal. Antes de que un proceso pueda ejecutarse la
taba1 de páginas debe ser cargada memoria apropiadamente.
LA ESTRUCTURA DE TEXTO
La versión estándar de UNlX 4.3 describe o soporta la compartición de memoria en código natural, es
decir,estecódigonopuedesercambiado.Sellegaaexplicar
lo anteriorcuando la imagendeun
programa de ejecución es cargado ante una llamada de sistema, si el segmento de código es marcado
comopuro,elsistemapuedecargaralsegmentodetextosdelaimagenseparadamentedesde
la
inicialización para no utilizar con ello el segmento de datos. Esto permite
la ejecución del proceso de una
manera más ágil.
EL INTERCAMBIO DE CONTEXTO
El kernel intercambia el amontonamiento de procesos en una forma efectiva al compartir el CPU, a este
termino se le llama intercambio de contexto. Cuando un proceso ejecuta por un largo tiempo bloques de
memoria este requiere de más recursos que tal vez no estén disponibles,
en este momento el kernel
encuentraunprocesoquepuedeintercambiardecontextoparasalir.
A lavezelsistemapuede
interrumpirlaejecucióndeprocesosactuales,esto
se hacedeformaasíncrona,elintercambiode
procesos ocurre en forma asíncrona con respecto los
a procesos en ejecución actualmente.
Un intercambio voluntario de contexto ocurre cuando un bloque de procesos requiere
de recursos no
disponibles: un intercambio de contexto involuntario ocurre cuando un proceso se ejecuta por
un largo
tiempo o cuando el sistema identifica la ejecución de un proceso con prioridad
más alta un evento de
hardware es resuelto asincrónicamente.
EL ESTADO DE PROCESOS
Los contextos se pueden intercambiar de acuerdo alos requerimientos del inicioen el modo kernel y en
el modo usuario, esto facilita y asegura que todos los proceso en el modo usuario estén localizados con
su correspondiente estructura auque algunas veces esto puede cambiarse, las siguientes convenciones
se aplica a este tipo:
0
0
Modokernel-Estado
de ejecucióndehardware:Estecontextosepuedetomarsuscambios
solamente en el modo kernel pero puede ser llamado desde
la estructura de usuario.
Modousuario-estadodeejecucióndehardware:Cuandoexiste
144
unaejecuciónenmodokernelel
estadodemodousuariodeunproceso(existeunacopiadelcontadordelprograma,unadel
apuntador de pila y otra de los registros del propósito general) todas estas residen en el kernel en la
pila de ejecución que esta localizada en la estructura de usuario, el kernel asegura esta localización
enelmodousuarioparacualquierrequerimientodelsistemayparasalvarelambientede
los
registros en el modo de ejecución del contexto.
0
0
0
LaestructuraPROC:Estaseencuentraresidenteenmemoriasiempreyconunapuntadorala
estructura para poder con ello salvaguardar la cabecera la
deestructura de usuario.
La estructura de texto: Este permite tener un apuntador a la estructura de PROC.
Recursosdememoria:Finalmente
los recursosde
la memoriadeunprocesosondescritos
detalladamente por la base de lo largo de los registros. Después de que un proceso es compartido
enunmediodealmacenajesecundario
los valoresde los recursosdememoriaserecalculany
estos recursos regresan a la memoria principal.
INTERCAMBIO DE CONTEXTODE BAJO NIVEL
La localización del contexto de un proceso dentro de una estructura permite que el kernel intercambie el
contexto de una forma muy simple de acuerdo a la estructura actual que se este corriendo.
INTERCAMBIO DE CONTEXTO VOLUNTARIO.
Esto ocurre cuando un proceso espera la disponibilidad
de un recurso o el arribo de un evento, esto
suelesucedernormalmenteenoperacionesdesistema.Loscanalesdeesperatípicamenteestán
los recursos o los eventos
direccionadoshacialaestructuradedatosqueidentificanacadaunode
seleccionados para la espera de los procesos, algunas de estas son como se muestran en la tabla dela
pág. 81
Estas prioridades pueden ser clasificadas como "mandar a dormir" y "el de despertar" estas prioridades
son intercambiadas de acuerdo al intercambio de llamadas que sucedan, esto se puede observar en la
cola de estructuras para mandar a dormir procesos de la fig..
slccp queue
hash-(ahlc hcadcr
.'
U
145
INTERCAMBIO DE CONTEXTOS ENTRE PROCESOS
los GOTOS queevitanlasllamadasdeprioridadesentre
Estoevita la llamadaentreprocesosde
procesos, aunque algunas veces pueden ser utilizados en condiciones excepcionales como el aborto de
una operación en proceso.
Alternativamente los recursos pueden ser parcialmente reordenados, si es necesario solamente cuando
se pierdael orden de incremento de estos.
Lo anterior puede ser usado solamente sin prioridades en computadoras con un
solo procesador ya que
en computadoras con múltiples procesadores
la sincronización no se puede aplicar en la compartición de
memoria
Los gotos no locales son utilizados cuando
el sistema tiene necesidad de que el sistema tenga una
llamadaycuandoelcontexto
de ejecuciónnecesiterestaurarsedespués
de habercompartidoeste
recurso en un medio de almacén secundario respectivamente, una excepción may general
es cuando se
necesita acceder a un identificador particular para reducir
la complejidad de algunas partes del sistema.
SlNCRONlZAClON
La sincronización entre procesos se resuelve típicamente con la implicación de cuatro banderas dos de
ellas principales llamadas de bloqueo y de espera, cuando un proceso requiere de un recurso entonces
ve si la bandera de bloques esta apagada, si es así entonces se hace uso del recurso y se enciende la
bandera de bloqueo.Si el recursoestaen
uso entoncesprende la banderadeesperacon
su
correspondiente canal asociadode espera, con el recurso, cuando un proceso no muy largo requiere de
un recurso entonces se limpia la banderade bloqueo y se invoca a la bandera de despertar un proceso
para poder con ello acceder un recurso.
Las rutinas que se ejecutan al mismo tiempo que el kernel deben a veces de no poder disponer de los
recursos para eso se hace esperala llamada de la bandera de espera de recursos. Cuandolos recursos
están siendo accedido porel kernel al mismo tiempo que se comparteno que se tratan de compartir con
otro proceso se hace uso de un identificador del kernel para que la bandera de bloqueo no asegure su
exclusivo uso para otro proceso que no sea el mismo kernel. Con las rutinas de sincronización se debe
de mantener un adecuado control de comunicaciones entre el kernel y las rutinas que en ese momento
seestánejecutando.Paraello
la mayoríadelascomputadorastienencódigodependientede
ensamblador y una tabla de prioridad de interrupciones como se muestra en la tabla 4-5 de la pág. 85
Alternativamente los recursospuedenserreordenadosparcialmente
si seincrementaelorden
de
prioridad de un proceso.
146
Larazónde
la prioridadde
los procesosesdesalvaguardarelcorrectofuncionamientode
interrupciones
en
la arquitectura
de
un
solo procesador;
ya
que
en
múltiples
procesadores
compartición de recursos tiene otras políticas y el kernel por
lo mismo se controlade otra manera.
las
la
PLANEANDO LOS PROCESOS
El UNlX estándar utiliza un algoritmo de planeación de procesos basado el colas con múltiples niveles de
acceso. Todos los procesosquesonejecutablesconasignadosaunaprioridaddeplaneación
determinada de acuerdo a una cola de ejecución. Enla selección de la ejecución de un nuevo proceso el
sistema rastrea desde el más bajo hastael más alto nivel de prioridad y selecciona
al proceso un nivel de
prioridad que sea semejante al que éI necesita. Si existen muchos procesos de la cola de ejecución con
el mismo nivel de prioridad y quiere entrar uno nuevo entonces el sistema corre el algoritmo de ROUND
ROBIN y esto asegura queel orden de que se corre un proceso será adecuadolaacola de ejecución de
proceso.
Si unprocesoestabloqueadoentoncesestepuedeserregresadoacualquiernivelde
la colade
ejecución. Si el proceso utiliza un QUANTUM de tiempo este será llevado
o relocalizado al final de la
cola hasta que sele asigne un nivel adecuado de prioridad para ser seleccionado como un proceso.
La ordenación de un QUANTUM de tiempo esla mejor de las respuestas interactivas ya que esto provee
al sistema de un alto nivel de no error, por esto el sistema puede tener overhead en sus procesos
y el
intercambio de contexto. El QUANTUM de tiempo utilizado en el UNlX estándar tiende a un segundo,
estevaloresempíricamenteperosehanencontradoQUANTUMmáslargosde
lo queseutilizan
normalmente para poder responderal uso de editores y de procesos interactivos.
los requerimientosa los
Elsistemaajustala
prioridad deunsistemadinámicamentedeacuerdoa
recursos al montón de recursos usados o consumidos por el proceso incluyendo el tiempo de CPU. Por
ellos los procesos pueden ser movidos entre colas de ejecución y cambiar sus niveles de
prioridad al
final o al inicio de la cola de ejecución.
Cuando un proceso y otro están corriendo con el mismo nivel de prioridad
o con un alta prioridad el
sistema intercambia a los procesos de acuerdo al QUANTUM de espera; si el proceso ya expiro el nivel
de prioridad se reasignaal otro proceso.
los
Si un proceso esta dormido y otro esta esperando la llamada de un sistema entonces este retoma
recursos del dormido. Existe un algoritmo de planeación llamada
de ordenación de términos,el cual hace
un reordenamiento de prioridades entre procesos cuando bloquea a un proceso con un tiempo de espera
para la entrada de una entrada salida y para ir sumando
o agregando niveles de prioridad bajas del
147
tiempo de CPU.
CALCULO DE PRIORIRDADDE PROCESOS
La planeación de prioridades de procesos esta directamente determinada por
dos valores contenidos en
la estructura PROC llamados P-CPU, y P-NICE; el primero contiene una estimación del tiempode CPÚ
recientemente utilizado por el procesoy el segundo contiene un rango numérico entre - 20 y 20, este se
mueve de acuerdo al tiempo de prioridad del proceso, ver
la ecuación 4-1 de la pág.87 y las demás
ecuaciones.
Los procesos que son ejecutables de acuerdo a una prioridad ajustada se reajustan periódicamente y
siempre el CPU ignora en esos momentos a los procesos bloqueados esperando un nuevo evento: esto
es, los procesos no pueden ser acumulados en el tiempo de CPU, estos tienen que ser estimados por un
filtro.
RUTINAS DE PRIORIDAD DE PROCESOS
Los cálculos de prioridad de rutinas son ejecutados a través del algoritmo de organización de éerminos,
estos se pueden también asociar a
dos rutinas ROUNDROBIN y RECOMPENSA DE PLANEACION,
está última recompensa las prioridades de rutina una vez por segundo,y realiza cambios en el valor de
la rutina de espera de un proceso bloqueado para la llamada posterior de
la rutina de mandar dormir
procesos posteriormente, la otra rutina se ejecuta 10 veces por segundo
y origina que el proceso se
replaneé desde una alta prioridad hastala más baja.
El CPU hace un cambio cada100 veces por segundo de acuerdo alreloj del proceso, cada uno deesos
tiempos de proceso son acumulados de acuerdo
al pulso del reloj delCPU.
La cola de procesos ejecutablesy el intercambio de contextos
La planeación de prioridadeses calculado de acuerdoaun orden de procesos ejecutables,la prioridad de
planeación esta entre un rango de 0-127 con otro rango más de 0-49 reservado para procesos que se
de modo usuario,
ejecuten en el modo kernely otro rango más de 50-127 para procesos que se ejecuten
el número de colas usadas alo largo de la colección de procesos ejecutableses calculado de acuerdoal
costo de mantener las colas, si solamente se utiliza una sola cola ordenada, entonces simplemente se
32 colas de estastienenque
pueden utilizar un solo costo de orden. El sistema normalmente utiliza
seleccionar las colas de ejecución de procesos para poder dividir
la prioridad de los procesos, la cola de
los procesosqueestén
ejecucióncontieneprocesosejecutablesen
la memoriaprincipal,excepto
corriendo actualmente, la Fig. 4-6 de la pág. 89 muestra la organización de cada una de las colas con
una doble liga a lalista de estructuras de procesos.
148
UNlX no puede ejecutar procesos preemtivos en un tiempo real,
ya que la respuesta a cada uno de estos
eventos es dependiente del tiempo de actividad del sistema. En adición
los procesos que no pueden
obtener una ruta para determinar una página que son residentes en memoria no pueden asegurarse del
correcto funcionamiento de su secuencia de instrucciones incurriendo en una o más páginas con fallas.
Alguno de los sistemas UNlX garantizan el obtener bonos de duración de la actividad de un sistema, esto
lo realizaUNlXenuntiemponoreal,paraelloseutilizanprocesosentiemporealquehacenuna
planeación de procesos para direccionar estos problemas en otros caminos.
CREACION DE PROCESOS
En UNlX un proceso es creado con la llamada del sistemaFORK o de bifurcación, el proceso creado por
una bifurcación es llamado proceso hijo del termino del original proceso padre, desde el punto de vista
de un usuario el proceso hijo es exactamente igual al proceso padre excepto por dos valores
el pit de
cad uno de los procesos, una llamada de bifurcación retorna el pit con unO de el proceso padre, con esto
se pueden distinguir al proceso padre y el proceso hijo, con elloel programa puede identificar al proceso
padre del proceso hijo en una llamada de bifurcación, una
bifurcación involucra tres pasos principales.
1- La localización e inicialización dela estructura proc para el nuevo proceso hijo.
2-
La duplicación del contexto del padre (incluyendo la estructura iusek y las direcciones virtuales de
los recursos para el procesohijo).
3-
La planeación del proceso hijo para correrse.
El sistema mantiene una liga a la lista de la tabla de procesos libres, esto puede ser no usado a veces
cuando se puede examinar lalista de los procesos.
Mientras la creacióndeunnuevoprocesoutilizalainicializacióndelsistemapara
los hijos en la
estructura proc desde un proceso padre. Un valor que no puede ser hecho a un lado para propagar el
valor del pit a lo largo de todoslos procesos.
149
El proceso hijo inherentemente tiene limitantes en todoslos privilegios de acuerdo a su padre. En adición
la apertura de un archivo y de otra información contenida son obtenidas de un área llamada
U-DOT
como se presentaen la siguiente información:
0
La señal de estado: El UID determinala señal, el grupo de procesos y las señales en acción.
o
El segmento del programa da la información del tamaño de cada segmento en la tabla de páginas y
organiza el segmento de texto para comenzar a usarlo, un apuntador es asociado en la tabla de
textos en su entrada.
0
El detalle de las cuotas del disco
El duplicar un proceso tiene como ventajas el manejo más facilita que se involucra para hacer unas
llamadas y señales más rápidas hacia el kernel de acuerdo a la llamada del
procedimiento Proc-duc.
Finalmente el nuevo procesohijo hace un reconocimiento de las planeación de procesos para poder ser
localizado en la cola de procesos de ejecución y regresar el valor desde el procedimiento proc-duc que
es pasado asu vez al llamado de bifurcación del sistema.
TERMINACION DE PROCESOS
o aatrvésdeunallamadadelsistemadesalida,
o
Un proceso puedeterminarvoluntariamente
involuntariamenteante el resultadodeunaseñal.
En el primercaso la terminacióndelprocesoes
causada por un código de estatus donde el padre regresa
el código de determinación de proceso, este a
su vez se puede dividir entre dos tipos de valores: espera y espera3. El espera 3 es una variante del
valor espera que permita que una aplicación
sea parada y posteriormente cancelada.
Dentro del kernel un proceso termina cuando es llamada la rutina exit, en esto se incluyen tres pasos
para la cancelación del procesoen el kernel y estos sonlos siguientes:
0
Cancelacióndecualquier periodo pendiente.
0
Relación entre los recursos y la memoria virtual.
o
Cierre y apertura de descriptores.
0
Identificación de los procesos hijos al ser parados.
Cuando el modo kernel se encuentra en estado de reinicio el proceso es entonces removido desde la
los
lista de procesosactivosenotraspalabras,
la rutina de exitentoncestienequellevaracabo
siguientes procesos:
o
Salvado del estatus determinación en la estructura proc.
o
Hacer una copiadel paquete de procesos acumulados de los recursos usados .
o
Notificar la muerte del proceso hijo al proceso padre.
Finalmentedespués deque el procesopadrehasidonotificado,
150
el CPUreplaneadirectamentesus
procesos para ser cambiados.
Nóteseque los recursosusadosporunproceso
hijo sonacumuladossolamentecuando
existe una
llamada de espera. Cuando se intenta analizar el tiempo de ejecución de un programa
el usuario final
puede obtenerla a partir de la terminación de un proceso.
SEÑALES
UNlX define un conjunto de señales para condiciones de software y hardware comolas condiciones que
se pueden dar durantela ejecución normal de un programa; estas señales son mostradas en
la lista de la
tabla 4-6 de la pág.95.Lasseñalespuedenserasignadascomoasíncronas
o puedenresultarde
acciones por default. Como cada proceso tiene una terminación estas pueden ser conducidaso conducir
a la salida del sistema, las señales son diseñadas a través de software para obtener su equivalente de
las interrupciones de hardware o trampas, cada señal puede ser asociada a una acción que define un
identificador de acuerdo a lo que vaya a hacer un proceso. Cada señal tiene una acción por default que
puede ser cualquiera delos que se enlistan a continuación:
0
Ignorando la señal.
0
Terminacióndelproceso.
0
Terminacióndelprocesodespuésdegenerarlasecciónprincipaldeunarchivoquecontieneel
proceso de ejecución en el estado del tiempo de la señal que fue tomada.
Paro de un proceso "Una aplicación o programa puede usar una llamada al sistema específica y una
acción para una señal incluyendo".
0
Tomarlaacciónpor default.
o
Ignorar la señal.
0
Cachar la señal con un identificador.
El identificador de una señal en modo usuario es una
rutina de sistema que puede involucrar a su vez
cuando el proceso recibe otras llamadas a su vez. La señales son clasificadas hacia el proceso cuando
el sistema detecta un evento enel hardware como una instrucción ilegal,o un evento de software parala
detención de una requisición de la terminal. Una señal puede ser identificada por otro proceso cuando
existen llamadas de muerte o eliminación del sistema. El envío hacia procesos de señales etiquetadas
solamente se reciben con los procesos que tienen identificadores del usuario únicos, una excepción a
esto es el super usuario. Una simple excepción de esta regla es
la señal continúa que puede enviar
señales a procesos descendientes. Las razón para a esta excepción es que todos
los usuarios pueden
reinicializar o parar un programa desde el teclado.
Las interrupciones de hardware son determinadas por una mascara de señales de acuerdo a un proceso;
elestadodeejecucióndecadaprocesocontieneunconjuntodeseñalesactivasdesde
la máscara
determinadasporelproceso.
Si unaseñalesetiquetadaporunprocesoentoncesse
le asignauna
máscara, la señal es grabada dentro del conjunto de señales pendientes del proceso pero esta un actúas
hasta que la señala no sea desenmascarada.
Las señales de finalización son relacionadas fácilmente por llamadas del sistema de regreso, este es el
equivalente de la carga de la operación del contexto del procesador a nivel usuario. Un apuntador a las
operaciones de ensamblador dependientes en el bloque de contexto son las que describen la ejecución
en el nivel de usuario del estado de un proceso que es pasado al kernel. Este estado es usado para
restaurar el ambiente y resumir la ejecución después de un retorno normal del identificador de
la señal al
usuario.
151
GRUPOS DE PROCESOS
Ungrupodeprocesosestaidentificadopornúmeros
de 16 bit's,estoidentificaunacolecciónde
procesoscadaunocon
un pipeline que
es
utilizadoporelshell,
el grupodeprocesostiene
identificadores para terminacióny la obtención de prioridades de las llamadas del sistema que manejala
identificacióndeunacoleccióndeprocesos
y paraelidentificadordeunaterminalseutiliza
el
mecanismo de identificación de multiplexación para el accesos hacia una terminal. lnherentemente un
proceso es asignado a un grupo de procesos de acuerdo
al proceso padre. El sistema nunca podrá
hacer cambios en el grupo de procesos y solamente el usuario puede hacerlo a través del shell, esto lo
hace conla llamada del sistema SETPGRP para inicializar a un grupo de procesos
MANEJO DE MEMORIA EN UNIX.
Un componente central de cualquier sistema operativo es
el administrador de memoria en el sistema.
Como su nombre lo indica eselresponsabledefacilitar
el control de los recursosdememoria
disponibles enlacomputadora.Estosrecursossontípicamentecatalogados
y clasificadosenforma
jerárquica de acuerdo ala proximidad que inversamente proporcionalmente se tiene con
la proximidad al
CPU, como se muestra en la figura5.1 de la página 109. El sistema primario d e memoria
es llamado parte
principal del sistema ; el siguiente nivel de almacenamiento es llamado almacenamiento secundario
o
almacén de respaldo. El sistema principal de memoria es construido usualmenteen sus partes para dar
un acceso aleatorio a la memoria, puesto que el almacenamiento secundario es movido de su posición
de acuerdo a la cabeza del disco. En algunos ambientes
de estaciones de trabajo comúnmente se tienen
dos nivel es jerárquicos y un tercer nivel jerárquico se agrega en
los servidores de archivos conectados a
reales de una red de área local con las estaciones de trabajo.
En un ambiente de multiprogramaciónes critico que el sistema operativo tenga disponibles recursos para
compartir su memoriapara los recursos y también los procesosque lo requieran.Laoperaciónde
cualquier política en el control de la memoria esta directamente relacionada con la memoria requerida
para un proceso en ejecución esto es si un proceso reside directamente enlamemoriaprincipalde
acuerdo a un ordende ejecución, entoncesel controlador dememoria del sistema debe orientarse hacia
la localización de unidades de memoria larga . Por otra parte si un proceso puede ejecutarse cuando
esta solamente en un lugar parcial de la memoria principal como residente, entonces el controlador de
memoria y sus políticas querrán actuar de forma diferente .El controlador de memoria facilita usualmente
los intentos de optimizarel número de procesos ejecutables que son residentes en la memoria.
152
Aunqueladisponibilidadde
los almacenamientossecundariospermitequemuchosmásprocesos
puedanserresidentesen
la memoriaprincipalademásestoimplicaalgoritmosadicionalesmás
complicados. Típicamente el espacio se controla con políticas diferentes y algoritmos que son usados
para la memoria principal, y una política debe ser revisada para decidir cuando se mueve un proceso
entre la memoria principal y un medio de almacenamiento secundario.
Memoria y Procesos.
Cada proceso opera dentro de una máquina virtual esto es definido por la arquitectura que se ejecute de
acuerdo al hardware en el cual existe . Nosotros nos interesaremos solamente enlas máquinas la noción
de un espacio virtual de direcciones. Un espacio virtual de direcciones es un rango de memoria en dónde
se localiza las referencias de un proceso independientemente de
la representación física que se tenga el
hardware las referencias que se tengan a
los espacios de direcciones virtuales son traducidas por el
hardware como direcciones físicas de memoria. Esta operación es llamada traducción de direcciones
que permite un programa cargarse dentro de la memoria fuera de
éSta de acuerdo a los requerimientos y
la dependencia de las posiciones de sus direcciones enel programa que fue cambiado. La traducción de
direcciones son muy importantes además para
la eficiencia y la compartición d e un CPU, por esto
la
independencia de las posiciones permite usualmente el cambio d e contexto rápido.
Muchas computadoras proveen de direcciones de memoria continuas virtualmente para procesos que
requieren de sus espacios de memoria . Algunas máquinas sin embargo escogen que un proceso tome
unadirecciónvirtualvisibledentroderegionesllamadossegmentos(INTEL)
. Cadasegmento
usualmentedebedecontenerfísicamenteespacioscontiguosdememoriaydebenempezaren
direcciones fijas de memoria esto nos obliga en lo concerniente a nosotros tomar en cuenta sistemas
que algunas veces no tengan segmentos visiblemente de memoria y direcciones virtuales de memoria.
Esto seveen el usodelsegmentodepalabrasesto
no es lo mismoque el usocuandonosotros
describimos segmentos de datos de
los procesos de Unix en la parte de sus segmentos, como cada
texto y segmento de datos se podrá disponer de ellos posteriormente
.
Cuando múltiples procesos coexisten dentro de la memoria principal, la memoria física asocia a cada
uno de los procesos de direcciones virtuales que deben ser protegidas para asegurar que cualquier otro
proceso no pueda alterarel contenido del proceso residente en memoria actualmente esta protección es
implementada en el hardware y usualmente asegurada a la par con la implementación de la traducción
de las direcciones consecuentemente estas dos operaciones son definidas e implementadas junto con el
hardware en las unidades de administración de memoria.
Cuandoefectivamenteunrangodelasoperacionesdememoriasonlocalizadasporunproceso
independientementedeltamañode
la memoriaocupadanosotrosdecimosquelamáquinasoporta
los requerimientosdeunprocesoenteroocupendireccionesde
memoriavirtualcuandoademás
memoria virtual no es necesario que este proceso se coloque la
enmemoria principal para ejecutarse.
La memoria virtual puede ser implementada de dos formas algunas de estas están basadas en software
tales como los solapamientos. La mayoría están en escenarios de memoria virtual estos sin embargo
también pueden estar basados en hardware. En este esquema las direcciones de memoria virtual están
dividida en tamaños fijos de unidades de memoria, llamadas paginas cómo se muestra en la figura 5.2
de la página i. Las referencias a la memoria virtual son resueltas a través de la traducción de direcciones
de espacios virtuales en unidades de paginas en memoria principal y con compensaciones de páginas.
Las protecciones en hardware son aplicadas por el administrador de memoria en unidades de páginas
por páginas.
153
.
,
Algunos sistemas proveen de dos hileras de memoria virtual en lagunas de estas páginas se les agrupa
en segmentos
Paginación.
La traducción delos controladores es el principal requerimiento del apareamiento dela memoria virtual y
los espacios de procesos de memoria física en los espacios de direcciones del CPU . La satisfacción
del segundo requerimiento es de que cada páginas de memoria virtual sea marcada como residente o
noresidentedentrodelamemoriaprincipal.
Si la referenciaa un procesoen una localización de
memoria virtual es encontrado como no residente
el hardware envía una señal llamada fallo
de página.
Losservicios de fallo depágina o la paginaciónpermitenque
los procesossepuedanejecutar
cualquier lugar dentro dela memoria principalya sea parcialmente o virtualmente.
en
Existen tres tipos de políticas principales
en los fallos de página
1 Cuando el sistema carga una página dentro de
la memoria a ésta política se
le llama de ir por
2 Cuando el sistema coloca una página en
la memoria a esto sele llama políticade colocación
3 Cuando el sistema selecciona páginas que han sido borradas en la memoria principal , cuando estas
páginas no están disponibles se cambian de lugar y se hace un requerimiento para
la política llamada de
reemplazamiento .
En circunstancias normales todas las páginas dela memoria principal son igual de válidasy las políticas
de colocación no tienen efecto en el ambiente del sistema de paginación éstos sistemas de paginación
y políticas dereemplazamientobajo
la
tienenconductasquesondependientesdepolíticasfijas
154
demanda pura de la paginación del sistema
una política fija dedemandaesusadasolamenteenlas
páginas que son traídas o buscadas como perdidas y son reemplazadas solamente cuando la memoria
principal esta llena consecuentemente el ambiente de una demanda pura de paginación en el sistema
depende solamente de las políticas de reemplazamiento . En la práctica los sistemas de paginación no
pueden implementar un algoritmo de demandas de paginación pura . Automáticamente las políticas de
paginaciónavecestraenconsigoalgoritmos
que reemplazana lo anterioryconellolapolíticade
reemplazamiento es implementado enla memoria principal.
Algoritmos de reemplazo
de paginación .
Las políticas de reemplazo es uno de los más críticos aspectos de cualquier sistema
Estos se encuentran en un ancho rango de algoritmos desde los que se pueden elegir por el diseno de
estrategias de reemplazo para la paginación del sistema.
Unprocesodepaginacióntiene
un comportamientoparaobtenerunaentradaque
es descrita en
términos de las referencias de paginas sobre el tiempo de ejecución de el proceso. Esta secuencia de
paginas son llamadas una cadena de referencias , y representan el comportamiento de los procesos en
unintervalodetiempodiscretodurantelavidadelproceso.
. Lacorrespondenciade los ejemplos
mencionados que constituyen una referencia de
la cadenadereferenciasobre
los valoresrealesde
tiempo que en todo caso reflejan la asociación de las referencias
losen
resultados de fallos de página.
Una medida útil del comportamiento deun proceso es la velocidad por default, esta es un número de
fallos de página encontrado o registrados durante la corrida del proceso en su cadena de referencia ,
normalmente es del largo de
la cadena de referencia.
Los algoritmos de reemplazo típicamente son evaluados en términos de esta efectividad en la referencia
de cadena que pueden ser coleccionados a partir de una corrida de real de un programa . Un análisis
formalpuedeserusado
, noobstanteestatambiénofrecemuchasdificultadessinmuchasmenos
restricciones que son aplicadas en la ejecución del programa en un cierto ambiente. Las más comunes
medidassonusadasparamedirlaefectividadde
los reemplazosdelaspaginasenelalgoritmode
velocidad por default.
Obtención del modelode trabajo
La obtención de un modelo de trabajo hace referencia a que un proceso S e exhibe de acuerdo a muy
pequeños cambios en sus referencias locales . Esto es para un periodo de tiempo un proceso opera bajo
un conjunto de subrutinas o ciclos , causando que toda las direcciones de memoria hagan referencia a u
subconjunto de direcciones físicas de memoria , llamadas conjunto de trabajo. . Los procesos cambian
periódicamenteesteconjuntodetrabajo
, abandonandociertasáreasdememoriaycomenzandoel
accesoanuevas.Después
de unperiododetransición
los procesosdefinenunnuevoconjunto
de
páginas como un nuevo conjunto de trabajo. En general si el sistema puede proveer de procesos con
algunas páginas sobre las paginas retenidas en un conjunto de trabajo,
el proceso puede experimentar
una velocidad por default de
un fallo de página a alta velocidad.
Swapping (Intercambio de memoria)
155
Swapping es el término que se usa para describir la política de control de la memoria en el cual en un
medio de almacenamiento primario se pueda mover un proceso entero que se encuentre en
la memoria
principal . Los sistemas de control de memoria basados en
swap son menos complicado que los que
demandan paginación. Desde entonces la planeación de los sistemas ha sido movida hacia la técnica
deswap,aunqueestossistemassonmenosefectivosque
los depaginación por demanda,desde
entonces el grado de multiprogramación es muy bajo para los requerimientos delos procesos completos
que se están ejecutando.. El Swapping es algunas veces combinado con
la técnica de paginación por
demanda, por donde la paginación es usada para satisfacer a varios datos de procesos en ejecución de
una instrucción, esto debe proveer un mecanismo para salvar
los estados de las instrucciones de las
máquinas para poder continuar o reiniciar los procesos después. El CPU puede implementar el reinicio
parasalvar
los suficientesestadoscuandounainstruccióncomienza
el estadoquepuedeser
reinicilizado cuandose ha descubierto una falla.
o modificado o cambiadoelaspecto
Alternativamentelasinstruccionespudieronhaberseatrasado
solamente después de cualquier falla de haberse descubierto.,
solo que algunas instrucciones necesitan
no ver un pasado o un historial para poder reiniciar
. En algunas computadoras, el respaldo de la S
instrucciones requierela ayuda del sistema operativo.
Muchas maquinas han sido diseñadas para poder soportar la paginación por demanda incluyendo ala
memoria virtual con hardware y el soporte para una colección de programas que hacen referencia ala
de ser
memoria del programa. Cuando el sistema selecciona un pagina para ser reemplazada esta debe
salvado el contenido de esta pagina en cualquiera desus facetas esto debido ser llevado ala memoria,.
El hardware usualmente mantiene pagina por pagina mostrando una bandera en todo caso que la pagina
ha sido cambiada. Muchas máquinas además incluyen banderas de respaldo en cualquier algoritmo de
reemplazo usado en una paginación.
Cambios en la versión 4.3 BSD
Los cambios hechos a esta versión son las orientaciones que han sufrido el sistema de memoria virtual
para poder adaptarse a las cambios en la tecnología del hardware.
0
Las imágenes, el texto y las tablas de paginas de todos
los programas son retenidas en un cache
después de la instrucción de exit . muchos como el antiguo mecanismo de sticky-bit fueron usados
para forzarel alto usos de los programas que retenían espacio en swap.
0
Los algoritmos de reemplazo fueron modificados para poder independizar el tamaño de la memoria
principal; estos cambios proveen de un mejor ambiente de paginación en el sistema con memorias
principales muy largas.
0
Las estaciones de trabajo utilizanel sistema de archivos remotos a través de un servidor de archivos
, combinados con la memoria principal larga, hacen que el merito para poder hacer una suma de
expansión de memoria.
156
Traducción del sistema de direcciones
Cada región e el espacio de direcciones mapeadas son separados por una tabla de paginas . El sistema
es mapeado en la tabla de paginas
, los espacios contiguos en la memoria principal , dos registros de
hardware obtienen la dirección y el largo de la taba1 de paginación algunos de estos cuando se corre el
sistema de booto de inicio . El sistema que es basado en registros
(SBR) contiene las direcciones físicas
de la tabla de paginas , y el sistema con registros largos (SLR) contiene le número de entradas en la
tabla de paginas . En la versión 4.3 la tabla de paginas esta localizada en forma estática y el tamaño del
sistema es mapeado cuando se compilael kernel .
Algunas regiones han sido seleccionadas para poder contenerel remanente de las direcciones en bits
de
las páginas que son interpretadas como el número de pagina dentro de la región y por el byte de offset
dentro de la pagina es decir el byte de desplazamiento. Después de que cada página se
le asigna un
tamaño de 512 bytes, se obtiene la dirección más pequeña de desplazamiento dentro de esta pagina.
Los restantes 21 bits se utilizan específicamente para indexar a la región.
La traducción de direcciones virtuales se hacen a través del kernel como se muestra en la fin 5.5 de la
panina 121 Algunas direcciones son identificadas como un aparte del sistema colocándose entre
los bits
30 y 31 de direcciones, el índice de las páginas serán extraídas desde los bits en el contenedor 29. El
índice es checado al mismo tiempo que el largo de
los registros y es validad y agregado al sistema
basándoseapartirdelregistroencontradoPTE.Comoelcontroladordelamemoriatraducelas
direcciones partir del registro PTE , se checan las paginas residentes y estas piden que el acceso se
autorizado , y poder extraer el número de pagina físicamente. Finalmente el numero de pagina física es
combinada con el byte de offset
o de desplazamiento dentro de la dirección de memoria físicamente
generada.
157
o o
Traducción de las direcciones de usuario
Aunque los sistemas estén basadosen tablas de paginas , el usuario pude mapearseen la tabla a partir
de las regiones PO y P1 estas son localizadas en velocidades virtuales que se encuentran en
la memoria
física. Por ello 4 bytes de entrada son necesarios para mapear 512 bytes de un espacio de direcciones,
el mapeo necesario para una región de 1 gigabyte serán requerido 8 Mbyte de entradas en la tabla de
paginas .
AI mapear la región creada sin embargoel hardware localiza estas paginasen las tablas del kernel en la
memoriavirtual, y despuésnotodaslaspaginasde
la tablasonnecesariasparapoderresidir
simultáneamente (Aunque si bien puede no tener ventajas de esta capacidad) . Como un resultado de
lasdireccionesvirtualeselprocesodetranslaciónpara
los usuariosestabasadoen
2 pasosde
traducción usándose dos niveles
de la tabla de paginas.
Algunos sistemas requieren de la tabla de paginas a partir de la
PO esta es descrita a través de dos
registros de hardware. El PO se basa en el registro
(POBR)queesuna
dirección virtual de inicio de
pagina en la tabla para la región de PO en el proceso actual. El largó del registro P esta contenido en el
registro POLR que contiene el número de entradas de P en la tabla . Estos registros son un conjunto de
desde el PCVB en cada cambio de contexto , como estos son generalmente diferentes para cada uno
de estos procesos. La regiónP I es descrita de forma similar a través de registro basado enP! Existe un
P1 BR y el largo del registro se encuentra a su vez en el registro P I LR. . El inicio de los registros es el
comienzo para el mapeo de una región de 1 gigabyte. Sin embargo
el POLR especifica el número de
PTEs presentesen el mapeo de PO, el largo de P I especifica el número de entradas que son localizadas
fuerade la región . Esteesquemaesoptimizadoporelsegmentodesarrollado,desdeentoncesla
expansión requiere solamente de el cambio en
la longitud del registro.
158
El procedimiento para las direcciones para
la traducción de la memoria virtual hacen referencia a las
direcciones PO o P1en formasimilar que el procedimientode la traducción delasdireccionesdel
sistema , expto por la localización en la tabla de paginas. El alto orden de bits en la región seleccionada
de la dirección , entonces es tomada como una dirección del sistema,
el índice de pagina es extraído
desdeelbit9hastaelcontenidodel29
enladirección.Esteíndiceescomparadocon
la longitud
apropiada del registro.. Si el índice es menor que el valor del largo del registro para
PO (El agrandar a un
tamaño igual que el largo del registro P1 ) el valor de la página es validado. El índice es combinado con
la base del registro paradar una dirección virtual del sistema parael PTE como se muestra en fiqura 5.6
de la Daqina 123 la traducción en los indices dentro de la tabla es localizada en la entrada que se pidió
en la pagina. El sistema de direcciones es traducido como se describió anteriormente para calcular las
direcciones físicas desde el ir a traer el PTE
de usuario. Finalmente el PTE es checado para validar
y
proteger a la página , y obtener el numero de página físicamente. El desplazamiento de la pagina o su
offset es añadido ala dirección de la pagina que se produce finalmente.
a
f
Nota que la localización del PO y el P1 del usuario se encuentra en la dirección virtual de la tabla del
kernel, que son intentadas traducir en 2 pasos que son necesarios para obtener la dirección del usuario
físicamente, una traducciónseutilizaporelsistemaparapoderusarel
PO o elP1de la tabla. El
mecanismo de traducción puede ser estimadoen 2 niveles de la tabla para la dirección del usuario . Por
esto la tabla de paginas de usuario son localizadas en las paginas
y sonmapeadaspor la tabla de
paginas , el índice de paginas va del bit 9 al contenido del bit 29 para
la dirección virtual del usuario,
puedeseconsideradoqueseobtiene
endospartesdesde
el bit16alcontenidodelbit29
es
seleccionado una pagina de PTEs y desde el bit 9 al 15 es seleccionado otra pagina de PTEs. Esto en u
kernel es mapeadoun tamaño de 512 byte en el contenido dela memoria de 128 PTEs, los que se estén
en turno del mapeo de 64 Kbyte de memoria de usuario. El sistema de traducción de direcciones usa
159
solamente un pagina de la tabla
traducción.
, sin embargo algunos sistemas pueden hacerlo en un
solo nivel de
Fallo de paginas
Mientras se realiza la traducción de las direcciones virtuales, el controlador de la memoria del hardware
puede descubrir un PTE que no esta validad en el conjunto de bits validos. Cuando uno de estos PTEs
es localizado la instrucción actual no puede ser completada hasta que
se necesite ser traído un PTE
desde la memoria que sea valido . El controlador de memoria en el hardware inicializa una señal defallo
de pagina en el modo de sistema. La instrucción que quedo pendiente es resguardada desde que se
inicia,hastaquepuedeserotravesrestaurada.
LA restauraciónrequierequesepuedalocalizar
cualquier modificación en el aspecto o ambiente modificado del registro. Estos puede no ser aceptado
hastaquenoseaambientadoUnaspocasinstruccionespuedensermovidasencadena
, pudiendo
obtener el conjunto de estados , aunque algunas instrucciones pueden ser resumidas y restauradas a
gran velocidad . Cuando una falla ocurre el sistema operativo obtiene
de nuevo el control y analiza la
falla. En un caso normal m la pagina es traída desde el disco o una nueva pagina es colocada en
el
proceso. Des pues de actualizar el PTE
, el sistema regresa a parar de la señal. El regreso al modo
usuario se autorizado el reintento de ejecución de
la instrucción original.
Elhardwaredelcontroladordememoriapuededescubrirotrascondicionesqueprevienenqueuna
dirección se traducida de forma completa . Un índice de pagina puede estar fuera del rango especificado
para una longitud apropiada del registro , o un acceso puede no ser autorizado para ala protección del
campo PTE . Si el hardware detecta cualquiera de estas condiciones , esto causa una señal a partir del
kernelinstantaneamenteen la direccióntraducida.Muchosdeestasseñalescausanque
el kernel
describa un señal (SIGSEGV o SIGBUS) el proceso obtiene una nueva velocidad para poder continuar
su ejecución . Esto tiene en una excepción cuando el apuntador a la pila esta por abajo del segmento
actual de la pila pero este ‘puede estar fijoen la región de P I , el kernel automáticamentese extiende la
pila y regresa el programa de usuario.
Traducción de Buffers
El uso de los niveles de paginas enla tabla y la localización de la memoria principal implican que mucho
de estas tres referencias a la memoria
sean requeridas para ir al contenido de una dirección virtual
.
Comoesteprocesopuedeserprohibidoenunarequerimientoencadareferenciadememoria,
el
hardware atrapa un PTE, llamado translation lookside buffer que es mantenido. Cuando una dirección es
traducida , la traduccióndelbuffer eschecadapara
la igualacióndelasentradas.,
esto puedeser
esquivado en los acceso de memoria. Siel requerimiento de traducción no esta listo
en el cache , este es
de sus entradas.
traído y colocado en el cache, posiblemente desplazado en el orden
La presencia de una traducción de cache requiere de
la operación de purga o depuración del sistema
en cualquiera delos estados de traducción cuando
un PTE es modificado enla memoria.
El manejo de la memoria de la memoria principal:La esencia del mapeo
Enlaversión 4.3 de BSD la memoriaprincipal es lógicamentedivida en 2 partes . El kernelesta
permanentemente residente en memoria y usa el agarre del segmento de texto y además de datos. En
adición , ciertamente las estructuras dedatosdelKernel,paracadaprocesoestaenunatabal,esto
además deben ser remanentes y localizados al mismo tiempo que el kernel es inicializado. El remanente
de la memoria principal es localizado en el proceso de acuerdo a su demanda como se muestra en la
finura 5.7 de la Daaina 124 Una pequeña área de memoria esta enel tope del la memoria es usada para
160
sujetar pocosmensajesquesonimpresoenlaconsola
haber depurado unafalla del sistema .
: Estosarreglossonautorizadosdespuésde
El corazón del mapeo es una estructura central usada en el manejo de la memoria . Esta consiste en un
arreglo de estructuras , una entrada para cada cluster delas paginas en la memoria principal , estos son
excluidos y localizado en el segmento de datos y de texto del kernel. El corazón del mapeo es localizado
al inicio al mismo tiempo que se inicia la estructura de bootstrap del procedimiento de inicio de
I sistema .
El corazón del mapeo es mapeado en una sección contigua de
la memoria principal desde elfirtsfree que
se encuentre hasta el final del segmento de datos del kernel como se muestra en
la FIG 5.7 DE LA
PAGINA 124 .Esta región contigua es la parte de la memoria principal disponible para los procesos de
usuario.
Elcorazondelmapeoesmantenidocomounarreglocontinuodeunaestructuras,unapaginapor
cluster. Aunque los elementos son pequeños (16 bytesen 4.3 BSD) si estos son muchos el total del
tamañoquepuedanllegaratener.Estossondeseablesparacadapaginaporclusterdeltamaño
reducido al número de elementos
y altamañodelarreglo.Ladefinicióndeelcorazóndelmapeodel
corazón del sistema se puede ver en
la Fiw. 5.8 de la Pág. 125
161
"
c .- t y p e : % ,
.
/*
!
Por esto se obtiene una relación 1 1 1 correspondiente entre el corazón del mapeo por arreglo
y los
clusters por pagina de la memoria principal disponible para
la localización . Esto es simplemente localizar
una pagina por cluster para obtener el corazón del mapeo en su estructura y viceversa. Esto es común
para el manejo dela memoria principal en las rutinas de
4,3 BSD en el manejo de las referencias y
porciones de la memoria principal.
El corazón de las estructuras son usadas para definir diferentes funciones.
0
El registrodeinformación
de lasestructurasacerca
dela paginaactualenelcluster
. Esta
información puede ser usada para mapear físicamentelas direcciones de la memoria virtual con las
direcciones de la memoria física.
0
Los elementos del corazón del mapeo para ligarlos elementos libres con la lista de la memoria libre
0
El poder localizary sincronizar cada cluster basado en traer la estructura del corazón del mapeo.
0
Localizar las paginas libresy los contenidos de estas con el corazón del mapeo
La Siguiente sección marcara pocos aspectos
de cada unade estas funciones
162
La traducción virtual ala traducción física
L a primera función de la escencia o el corazón del mapeo es almacenar la información acercar del uso
actual de las paginas correspondientes. Esta información es almacenada y compactada para utilizar
el
mínimo de espacio . El tipo de pagina en su entrada en el corazón del mapeo es única en el sistema de
texto,datos o en la pila .Lasentradasdelcorazóndelmapeoparaelsistemanonecesitandemás
información, como estos son inmunes a las operaciones hechas por el corazón del mapeo del sistema.
Otras prudentes consideraciones en las entradas es el poder utilizar un índice dentro de loa sección de
texto de la tabla o dentro de la tabla de procesos(para datos y pilas de las paginas ejecutables con los
segmentos que se puedan escribir en segmento de textos) al identificar la pagina actual del usuario con
la pagina actual del cluster. . La entrada del corazón de las entradas además deben de contener
el índice
de la pagina que describe la posición de la pagina en el segmento virtual que contiene a esta pagina
.
Estosdositemssonsuficientesparalocalizar
los PTEsporprocesousandounaasociacióncon
la
estructura del corazón del mapeo. Esta información dentro del corazón del mapeo permite la traducción
de las direcciones virtuales a las físicas , muchas de estas tablas soportan las traducciones hacia otras
direcciones.
Lista de la memoria libre
El segundo uso del corazón del mapeo es la creación de una lista de memoria
libre . Todas los cluster no
puedenserlocalizadosdesde
la memoriaprincipalestosdebendecontenerunadoble
liga quees
formada a partirde dos campos dela estructura principal de mapeo.
Las lista de la memoria libre es guardad en el mas reciente de sus usos (LRU) en orden, y actúa como
un cache para uso potencial de los datos. Esto es el cluster es usado y puede ser reclamado dentro de
todos sus contenidos desde la ultima lista libre hasta que pueda ser reescrito nuevamente . Por esto es
el usado del cache , esta lista libre de memoria es mantenida través de una lista doblemente ligada. Una
bandera en cada estructura del corazón del mapeo c-free
indica que el cluster contiene una lista de
memoria libre .
Sincronización
Los servicios a punto del corazón del mapeo incluyen el uso dela sincronización para las funciones dela
. Fueradeestos
memoriavirtuallibre,estasoperacionessonindividualesdelaspaginasporcluster
encuentran 2 banderas c-clock y c-want que son almacenadas dentro de. Las paginas de memoria son
aseguradasdurante el serviciodeunfallodepaginamientrasqueunprocesodeentradasalidaes
inicializado : esto son además asegurados durante el rw de las operaciones de entrada salida al leer o
escribirunadireccióndirectamentehaciaelprocesodeusuarioysuspaginas.
El algoritmode
reemplazo ya ha sido descrito y debe ser escrito de acuerdo al demonio de aseguramiento para cada
pagina durantela operación de esquivarla confusión con las paginas con fallos y el controlador
pagein().
Una adicional bandera ewes usada durante el relleno delas operaciones de sincronización en las paginas
enelprocesodecomparticióndepaginas.Estabanderaesllamadain-transit
flag estaesobtenido
dentro del proceso en que se leen e inicializan una pagina en un cluster yel tiempo en que el cluster es
leído para su uso. Si múltiples usuarios de un cluster no residente intenta el usar este cluster al is0 a su
o ser el primero en iniciar este
tiempo , la bandera previene que cualquier proceso pueda comenzar
163
proceso.
El cache de las paginas de texto
Como se ha mencionado anteriormente , las paginas que están libres pueden agarrar y usar el total de
los datos. UN caso particular es que las paginas solamente contengan el segmento de texto , esto es
requerido para propósito especial en el mantenimiento de
la información . Esta información es usada
paraidentificar los archivosobtenidodesdelaspaginasoriginales.Lainformaciónesgrabadaen
el
corazón del mapeo en uso dela estructura como un dispositivo, o un número de bloque . La información
del dispositivo especifica a cada archivo que esta montado , esto se usa con asociación del índice del
sistema de archivos montado de acuerdo a su tabla , o un pseudo montaje de dispositivos en su índice
reservado par el dispositivo de swap . El número de bloques en el sistema de archivos se obtiene de los
datos que han sido obtenidos.
Limitantes de la esencia del mapeo
El denso empaquetamiento del corazón del mapeo en su estructura forzan muchas campos que son
es la mayor
limitados en sutamaño . Comounresultado dela estructuradelcorazóndelmapeo
limitación en el tamaño de los otros objetos que supuestamente son soportados por
el sistema . La
esencia del mapeoen sus limitante son
La cantidad de memoria principal que pueden
campos
ser soportados en su contenido de
la ligas de los
El numero de dispositivos que son montados
en el sistema de archivos son usado en el índice usado
para identificarel origen deun cluster asociado conla pagina
El tamaño del sistema de archivos incluyen el entrelace entre el espacio de swap (el contenido del
sistema de archivos en los campos de acuerdo al numero de
blocks)
El numero de procesos y la compartición de las imágenes de texto (el contenido de los campos
usados enel índice en el proceso y comparticiónen la tabla de textos)
Los rutinas de localizaciónde la memoria
2 rutinas llamadas memall y vmemall.
La memoria principal es localizada y su contenido a través de
Estas rutinas difieren solamente en un aspecto la primea regresa
el valor de la falla que se pueda haber
encontrado al disponer de una porción de memoria disponible, mientras que la otra espera el regreso de
las posiciones de memoria libre , esto siempre ocurre después de que
el primer proceso pueda ser
localizados . Como una nueva localización de memoria puedeser mapeada siempre en alguna dirección
de memoria virtual antes de ser usada por esta rutina operación en
el relleno de las direcciones virtuales
dentro de un rango.
. La rutina de memeall es llamado por un apuntadoral PTE mapeado al principio del rango, un contador
de pagina y un tipode procesos parael uso de I inicio del corazón del mapeo en sus entradas. Para cada
pagina por cluster en el rango de memall se encuentra un a entrada de memoria que ha sido removida
en la primera entrada del desde la lkiksta de memoria libre . Si un usuario previamente a hecho uso de
164
esta pagina se fija la referencia a esta pagina , a su correspondiente PTEs son localizados y limpiados .
El numero de paginas que son grabadas en cada PTE dentro del cluster y el corazón del mapeo en sus
entradas es inicializado con la información que es suplida por el llamador.
DOS interfacessonproveídasparaliberar
la memoria . La rutinamemfreereclamatodalamemoria
asignadaalasdireccionesvirtualesdentrodesurango,presumiblementetodaslaspaginasson
residentes . Una interfaz la alternativa es proveida por vmemfree , que reclama solamente la memoria
que es asociada con las paginas residentes en el rango de la memoria virtual ignorando las paginas no
residentes.
La memoria principal en su porción es inicializada en el inicio del sistema esto incluye todas las paginas
que nos son estáticas en el kernel . Las paginas por usuario y por proceso y las tablas de paginas son
localizadas a partir de esta posición . Ciertas partes del kernel para cada red además de la localización
de la memoria desde esta posición. Sin embargo por esto las redes a veces de
la localización de la
memoria en un cierto nivel de interrupción , estos es importante que la memoria este disponible para
poder esquivar paquetes extraviados. Por esta razón
y otrasrazoneselkernelintentamanteneruna
mínima cantidad de memoria libre (esta cantidad es configurable
de acuerdo a unos ciertos parámetros).
Lacantidadactualdememorialibre
es guardadaen
unavariableglobalfreememquepuedeser
. Estavariable es
checadaporlasrutinasquesonnecesariasynosonnecesariasparacadablock
además para los procesos de sincronización que pueden estar dormidos en la dirección de freemem
esperando
otra
a memoria
mas
, estos
pueden
ser
agregados
cuando
se
pueda
hacer
un
almacenamiento en forma agradable.
Manejo delespacio de swap
Las primeras versiones de unix reservaban solamente una sola área en el disco de área de swap . Los
procesos son swapedos desde esta área si un proceso esta activo no puede encontrase en la memoria
principal . En general la actividad de swap es muy baja en
los sistemas cuando son configurados para
evitar el swap , por esto el ambiente del sistema es no aceptable cuando se activa un proceso para ser
swapeado. La adición de la memoria virtual es movida para nuevas demandas enel dispositivo del swap
. Losprogramaslargosdemandandelargosespaciosde
swap ycontienepaginasgeneradaspor
muchastransferenciashaciaelespaciode
swap . Parobtenerunaltodesempeñoen
la paginación
desde el disco 4.3BSD sus áreas de swap en múltiples discos. Un solo dispositivo lógico es interlazado
también en el espacio particular disponible del swap en las particiones libres del disco. Los dispositivos
son entrelazados en dmmax-bloc en los limites que se pueden obtener de forma máxima en el tamaño
localizado pero nunca en otro espacio de dispositivo. Dmmax es evaluado dependientemente dela limite
delamemoriavirtualconfiguradaporelsistemadentro
de los rangosdesde 0.5 a 2.0 Mbyte. Los
dispositivos de swap son usado para configurar en el kernel al mismo tiempo que, el tamaño de cada
computosecalculadurante
la autoconfiguración . El.Áreadeswapnonecesitasiempredelmismo
tamaño , el entrelazado es computado utilizando el máximo tamaño de los dispositivos disponibles . El
orden delos bloques de swap en los dispositivos entrelazados es mostrado en la Fiu. 5.9 de la Páq. 128
cada casilla representalos bloques dmmas , con un numero de bloques virtuales incrementándose como
se muestra enla figura,.
165
Como el dispositivoobtieneelmenor
de los dispositivos dispOoniblers inmediatamente , el primer
dispositivo de swap es disponible al iniciado del tiempo , el virtual dispositivo de swap es mapeado y
puede ser movido en un recursos disponible del mapa de swap nuevamente . Los otros dispositivos de
swap son habilitados por el swapon que es un llamada al sistema durante el inicio del sistema., en otras
los dispositivos deswap que son hechos disponibles al mismo tiempo.
secciones del entrelazado de
El espacio de swap para cada segmento de un proceso es localizado cuándo
el segmento tiene un
ciertodesarrollo . Elrecursosdelocalizaciónnosiempreregresa
el bloque de swapquetengauna
extensión por esto es necesario el entrelazado. Estos individuales trucos son usado para un segmento
de mapa en un simple dispositivo . El uso del entrelazado obtiene una concatenación de la velocidad de
los dispositivos de swap que tienden a ser distribuidos en
la localización del espacio nivelado en los
dispositivos del swap que son extendidos al transferir
la cantidad de espacios de disco usados en el
swap y la paginación
Recursos deun proceso
Cda proceso es descrito por una estructura llamada de proc , esta es localizada desde un arreglo para
cada entrada del kernel en
el segmento dedatos , y por la estructura de usuario esta es localizada
dinámicamente . En esta sección nosotros examinaremos la utilización de la memoria en los procesos
de UNlX BSD 4.3 ,. Nosotros iniciaremos por examinar como
los procesos se describen enla tabla de los
procesos de la memoria virtual . Esta presentación esseguidaporunadiscusióndevariostiposde
PTEs que pueden existir durante el tiempo de vida de un proceso . Finalmente nosotros asociaremosla
comparticióndedelosrecursosconeláreadesegmentosdedatos
y el espaciolocalizado en un
almacenamiento secundario para cda proceso considerado
.
Espacios de direcciones virtuales en
los procesos
La región PO es usada para sujetar el segmento de textos de un proceso , seguid por el segmento de
datos . La pila del kernel y la estructura de usuario son almacenados en el principio de la región P1 con
la pila de usuario al crecer la demanda por debajo de Io requerido. El conjunto de tablas de paginas para
las regiones P y P I para cda proceso son salvadasy restauradas durante el intercambiode procesos de
contexto.. El movimiento de la pila del kernel y la estructura de la región P I que contiene los objetos que
sonmovidosadireccionesfijadas
, y algunasdeestasdireccionesdebendeserremapeadas
rápidamente como una parte de las direcciones de usuario en espacio del intercambio de contexto. El
tope de la paginas de la región P I que sujetan la estructura de usuarioy el kernel en la corrida de tiempo
son hechas de tipo lectura solamente paralos procesos de usuario. Unade las ventajas de tener paginas
solo para lectura al usuario es que las señales enviadas pueden ser almacenadas
en estructuras de
usuario que son de lectura disponibles solamente.
166
Tabla de paginas
Cda proceso debe de tener
un conjunto de tablas de paginas que describen la asociación que existe
de traducciónimplica que los procesosagarrendostipos
de
entre los procesos . Losdosniveles
recursos : Las tablas de paginas de usuario al ,mapearse en regiones P I y PO y la porción del sistema
de paginas mapeadasen la tabla de paginas de usuario.
En el 4.3 BSD el sistema de tablas de paginas es estático estos hace con la localización de un numero
muypequeño de tablas de paginascomo se muestra en la Fia. 5.10 de la Páa. 130 . las entradas
estáticas enelmapasonllenadasaliniciodelsistema
y otrossonllenadoscuandosonrequeridas
solamente . la primera sección Sysmap mapea la región fijade la parte del código del kernel, en datos y
tablas localizadas al inicio del sistema.
...
La segunda área de la tabal de paginas del sistema es dividida en 2 secciones que son usadas por
diferentes áreas del kernelel mapeo hacia las estructuras de procesos que son actualmente ejecutados.
La tercera área contiene el mapeo para localizaciones dinámicas de
la memoria del kernel y acceso
temporales hacia secciones principalesde paginas de memoria . La cuarta secciónes el mapeo hacialas
direcciones de entrada-salida y la velocidad necesaria para poder acceder a estas algunos dispositivos
tiene controladores de autoconfiguración que pueden acceder a dispositivos de periféricos
y registros
directamente . las piezas anteriores de el sistema de tablas de paginas son mapeadas por la tabla de
usuario o por el Usrptmap es usado porel proceso de paginación de tablas dentro de las direcciones del
kernel en sus direcciones de espacio. Por esto existe un gran dificultad en la localizar adicionalmenteen
espacios contiguos físicamente de memoria
al expandir la tabal de paginasel Usrptmap a un tamaño fijo.
El tamaño estándar es de 32 paginas, pudiendo ser mapeados4096 paginas en la tabla de usuario, las
paginadas mapeadas en turno pueden ser 524,288 paginas a memoria Un estándar en
la configuración
es la que soporta las tablas de paginas para procesos residentes en
la memoria virtual con u tamaño
total por arriba delos 256 Megabytes.
UnprocesonecesitadecontiguosPTEsdelsistema
al mapearsesobre el dueñodelastablas.La
localización d las entradas de Usrptmap son manejadas con recursos del mapeo llamados del mapa del
kernel. Los recursos del mapa de son reordenados en un arfregoo con netrdas base, size
, este par
describe los segmentos de recursos libres ver Fiq. 5.1 1 Páa 130 . Un segmento se obtiene al localizar
desde un recursos la estructura con rmfree el mapeo del kernel es inicializado al inicio del sistema que
contiene todas las entradas de Usptmap.Un índice dentro del kernel map puede localizar estos espacios
cuandosonusadoalprincipiocomo
el índicedentro de unarreglodePTEsyelíndicedentrodel
correspondiente arreglo de direcciones virtuales correspondientes a estas paginas . El PO y el P I en la
entrada de paginas son movidas en áreas adyacentes usándose un conjunto de netrads del kernel amp.
167
1 .
1 .
.
.-
,
.
~~~~
~
~
Figure 5.11 A kernel rcsourcc map.
Reservandounaaredeusuarioparalatabaldepaginasquesonproveídasporunprocesocon
direccionesvirtualesen el rangodentro de estastablasdepaginas
. Sinembargolaspaginaslas
paginas de memoria física pueden ser fijas y deben de ser asignadas a las direcciones de memoria
virtual dentro del rango. Estas paginas son localizadas con
la rutina vmemall o memall , al ionicomde
estos que fueron descritos.
Nota que todos los procesos de las tablas de paginas de usuario son localizado durantes este proceso,
algunosdeestosmalosde
los correspondientessistemas de PTEsnopuedenserremanentese
inválidos . 4.3 BSDno puedensoportar la paginacióndelastablasdepaginas
, estossonsiempre
localizados en la memoria para todos los procesos de las tablas de paginas
. Esta política es lo que
queda desde varias versiones previas de el sistema pero esto no afecta ala velocidad ya que el tamaño
máximo de crecimiento de un proceso puede estar sobre
el tiempo de crecimiento.
La fia 5.12 de la Pás. 131 muestra los arreglos de las paginas por procesos la pagina de tablas por
proceso que es mostrador que se ocupan
4 paginas de memoria que pueden ser mapeadas por
el
kernel a través de 4 PTEs . La primera secci6n del proceso en tabla de e paginas es PO con un POBR
apuntando al inicio . El valor de POBR es almacenado en un PCB para el uso del hardware, y este debe
de ser almacenado en un PCB . El P1 de la tabal de paginas son movidos después de las entradas de
PO a final para evitar un desvió,. En adición el autojuntador dela tabla es mantenido ; la estructura proc
contiene un campo al apuntador de del primer PTE desde la estructura de usuario (cerca del final el
mapeo de P1 ) . Un boquete entre las 2 secciones autoriza para una pequeña cantidad de expansión en
el sitio.
:
-0
Physical memory
. . . . . ...
.. ... ... .,. ................
.
... ... ... ... ... ... ......
.. .. . . . . . . . . ... ...
A
B
-C
D
Tipos de entradasen la tabla de paginas
168
.........
.
Cuando un proceso es creado el espacio direcciones están vacías , algunos PTEs son o están validados
de acuerdo al bit off. Como el proceso se ejecuta, las referencias de memoria al segmento
de textos casi
queexistaunafalladepagina
como resultado eneliniciodelaspaginasqueestraídodesde
la
asociación que se tiene conlos , objetos . Estos fallos de paginas son terminados cuandose llena estas
demandas de paginas y son asociados PTEs en
el estado inicia llamados demanda de relleno de PTEs
.
Cuandounapagina esvalidaentoncesseasumequepudeestarresidenteenmemoria
. validando
siempre los PTEs se desincronizan a no cero un número de paginas , las direcciones de memoria física
son el número de paginas que pueden ser mapeadas
en direcciones.
El demonio de paginación
El remplazo de paginaes aceptado con la rutina pageout. Cuando Pageout reclama las paginas que han
. Esta rutina pude de
sido modificadas es el responsable también de escribir hacia el espacio de swap
ser disponible desde el uso normal de el kernel en el procesos de sincronización y los mecanismos de
dormir . Si estos corren después de que es iniciadoel proceso , el demonio de paginación con el dueño
de la estructura proc , la estructura de usuario y la pila del kernel . Se inicia el demonio de paginación
esta es creado por la llamada de fork durante el inicio del sistema o siempre y cuando el modo del
kernel sea remante yse llama después por la rutina fork . El demonio de paginación es simplemente una
, quenuncahasidodevuelta.Paraconveniencia
, eldemoniode
entradaalallamadapageout
paginación tiene una larga entrada de espacios dentro de la paginación de mapeos estas paginas son
escritas en el espacio de swap . Aunque esto no se quiera también se afecta las entradas de entradasalida , el proceso de pageout necesita de operaciones hacia disco que son asíncronas y
que pueden
continuar al rastrearse paralelamentecon las escrituras hacia disco.
Parámetros de paginación
los controladoresde los fallosde
Laslocalización de memoriarequieredeprocesosquecontienen
paginas que constantemente provocan unvuelcodelsistemaencompetenciacon
los mantenimiento
mínimos de la listas de las paginas libres. Como el sistema opera necesitade un monitor en la memoria
principal al intentar procurar la corrida del demonio de paginación después de querer utilizar una cierta
cantidad de memoria libre cerca de
un espacio mínimo conun mínimo de espacio para comenzar.
El demonio de paginación dormita hasta quela memoria principal lo necesita . El trabajo del demonio de
paginación es el controlar el numero de parámetros que son calculados en
la rutina de schedpaging . En
general la meta de esta política es la de mantener libre la memoria para poder esquivar un mínimo de
problemas . La política es implementada por el algoritmo de CLOCK estas paginas son reclamadas por
el demonio de paginacióncomounafunciónque
la memorianecesitaparaelsistema.Como
una
memoria mas es necesita por el sistema , muchas paginas son rastreadas y al mismo tiempo mostradas
susreferenciasalaspaginasmáscercanas
. Estoprovocaqueelnúmerodepaginaslibresse
incremente.
Cuatro veces por segundo el sistema checa cuando se requiere de mas memoria . Si la velocidad de la
paginación es determinada por el demonio de paginación que siempre esta esperando una llamada del
sistema. La velocidad de la paginación es obtenida de acuerdo al numero de paginas por cluster que
. ElSchepagingdetermina la necesidaddemás
hayansidorastreadas encadacuartodesegundo
. Elprimer
memoriaparacompara el numero de clusterslibresysusotrosparámetrosnecesarios
parámetro lostfree , especifica el comienzo en kybites del tope del demonio de paginación. Cuando hay
169
memoriadisponible quenoesteporencimadelcomienzo,estaspaginas
no fueronrastreadas o
paginadas por el demonio de paginación . La rutina de lostfree es normalmente de 512 kbyte y esto es
multiplicado por 4 en la memoria de usuario. Los otros interesantes limites especifican
la petición de
cantidades de memoria libre que pudo haberse mantenido libre
, desfrfee y el libre de memoria por
considerar tolerar bvte para un Swapping comenzando por minfree . Desfree usualmente esta obtenida
en un rango de 200 kbyte y mas además de I parámetro minfree que usualmente ocupa 64 kbyte y es
mas de 60 partes de memoria. La velocidad que pude llegar a obtenerse son rastreadas
de acuerdo a los
reemplazos variables de 200 paginas o a veces más del 200 % de memoria por segundo cuando están
completamente fuera de memoria las 100 paginas por segundo cuando la memoria esta libre e igual al
valor de lostfree .
Los valores pedidos para los parámetros de paginación son comunicados al demonio de paginación de
acuerdo al contenido de lasvariablesglobales . Del mismo modo el demonio de paginación guarda
progresivamente , en términos de paginas rastreadas sobre cda a intervalo de tiempo que esta corriendo,
de acuerdoal contenido dela variable global.
La operación de Pageout
Cuando no se puede conocer las información a examinar el demonio de pageout
, es implementada
como rutina a través de la politica de reemplazamiento de pagina . Pageout comienza por obtener los
apuntadoresquesonimplementadosden
la política dereemplazamiento,parapoderapuntarados
controladores de reloj quesonpropiosparaunaciertadistanciaapropiada.
Los apuntadoresson
realmenteindicesdentrodelcorazóndelmapeo
de memoria , estossontratados como unarreglo
circular . el rastreocontiene los principalespaginasquesonestáticasporelkernel.
El procesode
pageout entonces es alcanzado para mandarse a dormir mientras que se encuentra
otro espacio de
memoria libre por abajo. Esto es esperado a
la vez en cuatro veces por segundo mientras que se obtiene
corre mientras
el mínimo de memoria por lotsfree. Cda vez que el tiempo se ha tomado por pageout este
se limpia el reloj el corazón del mapeo mientras es diseñado el número de pares de clusters que deben
de ser examinados enel diseño de la cantidad de memoria libre que 'puede ser rechazada. Cda iteración
que llegue a borrar dentro de los dos exámenes de las 'paginas por cluster en
cda frente del cluster
habrá un controlador entonces que habilitarsua vez otro controlador por cluster
Los cluster al principio son examinados para determinar cual el
es,estado en que se encuentran para ser
candidatos a ser reemplazados . Si un cluster no esta libre el pageout , invalida sus PTEs para estos
clusters, si el cluster es compartido en el segmento de textos, se propaga el cambio de los PTEs hacia
otro procesos que es compartido en la pagina.. Cuando un pageourt examina la entrada en el control
anterior , este checa cuando el cluster ha sido usado por otro controlador anteriormente. Si esto ha sido
usado se valida un bit que indica que anteriormente ha sido inicializado este cluster . Si este no ha sido
usado se le considera de nuevo libre hasta que existe un proceso que libre totalmente este cluster a
través del pageout. Otra de las opciones es que el cluster sea liberado . Si cualquier de estas paginas
han sido modificadas o no han sido anteriormente escritas a través de swap, esta puede ser liberada
antes de que esta se considere libre
. Si las paginas que se tengan como libres inmediatamente.
El procedimiento para poder escribir procesos enlas paginas de acuerdo al dispositivode swap, es que
un pagina es obtenida o push sin ninguna comp0licación . La prelocalización del espacio de swap paras
este proceso es descrito dentro de la estructura de usuario. Sin embargo el swap es hecho a través del
contexto del proceso de pageout , con esto se hace referencia al dueño de esta estructura. Después de
queunatabladepaginasprivadaspushmanesusadoelmapeohacia
la estructuradeusuariose
apodera de las paginas dentro de las direcciones del kernel dentro de sus espacio.
170
Como el largodelprocedimientodepageout
esnecesarioparapodersalvarlapaginaactual
, las
paginas adyacentes de el proceso son residentes y sucios por el cluster contiguo son reescritos estos en
un almacenamiento secundario. Si estos son libres antes de que el siguiente sea modificado , entonces
estos no requieren deoperacionesseparadasdepageoutr
. No mas quelaspaginasdedmminson
normalmente 32 comenzando por el valor de dmmin-page, son clustereadas juntas ()dmmin es
udadoi
para asegurar el uso de todas estas paginas en cada block que hubiese sido contiguo en el espacio de
swap).
El mecanismo usado por pageout escribe hacia las paginas de swap hacia diferentes áreas desde las
entradas mas importantes de entrada-salida en2 importantes caminos.
La primera pagina no valida o sucia son mapeadas dentro de las direcciones de memoria virtual de
acuerdo al demonio de paginación y la velocidad es considerada desde el inicio de las direcciones
virtuales usadas porel espacio de procesos.
0
Las operaciones de escritura son diseñadas asincrónicamente.
AI inicio de las operaciones estas son admitidas por la rutina
deswap y reconocidas si estas no son
. El buffer ensuencabezadousa
la
validasparasacarlasconunabanderaespecialqueespasada
descripciónde la operacionesdeentradasalidaquesoninicializadasdeformacorrectapor
el
procedimiento . Los PTEs para las paginas invalidas son copiadas por el demonio de paginación hacia
la tabla de paginas ; las direcciones de la pagina que son consideradas como libres son grabadas en el
buffer de swap en el campo b-pfcentAdemásporestoelpageotno,puedemandarseadormirlas
salidas sean aceptadas , supuestamente como no normales reobteniendo el control, después de una
operación de entrada salida completa. Antes del swap se marca el buffer con una llamada anterior y con
la obtenciónde unabanderaqueesobtenidaporunallamadahaciaatrás
. Cuando el arrojo o la
evacuación de las paginas es completa swapdone es llamada , este coloca al buffer en la lista de las
paginas completasy se llaman a su vez alas rutinas awakens pageout.
171
UNIX (LINUX) COMO SERVIDOR DE ARCHIVOS
La implementaciónde un servidor UNlX para archivos nativos es muy sencilla y confiable, ya que gracias
a sus administradores de archivos, de memoria y de procesos los archivos solo son controlados en su
seguridad enred de manera más abstracta y menos transparente para
el usuario.
La capacitación que requiere un usuario de UNlX
es más compleja que en Windows NT debido a
la
administración de seguridad que se maneja; los sistemas de archivos pueden ser locales o remotos en
UNIX, si son remotos se pueden implementar conel protocolo NFS del sistema de archivo,ya sea desde
un sistema operativo Windows
NT o UNIX.
Si nosotrostrataremos de compartirarchivosdesdeunamáquina
UNlX haciaunamáquinaNT
deberemos de hacerlosatravésde
dos técnicas:pormediode
NFS o pormediode Samba; si lo
hacemos a travésde NFS se tendrá que haceruso del montaje de sistema de archivos NFS como cliente
en Windows NT y como servidor en UNIX, como se muestra en las siguientes figuras:
En nuestro caso el sistema de archivos fue montado a través de
siguientes pasos:
Samba, por lo cual se siguieron los
1. Instalar el sistema de Sambaen UNIX.
los archivosquesemuestran:Véase
2. Configurarcomosemuestraenlassiguientesfiguras
el
siguiente apartado
3. Crear un acceso directo o una conexiónderedenWindowsNThacia
correspondiente a UNIX.
la unidaddered
los permisos alos archivos de los usuarios que
4. Configurar como se muestra en las siguientes figuras
tengan acceso y derecho a estos recursos.
5. Configurar los demonios de Samba
Lo anterior se explicaconmásdetalleenlasecciónInstalación,ConfiguraciónyAdministraciónde
Samba en UNlX y Windows NT.
Lacomparaciónqueexisteentrelaconfiabilidadyaccesibilidad
siguiente cuadro:
deNFSySambaseresumeen
PROTOCOLO
Configuración
Soporte
multiplataformas
NFS
Difícil
SI (Unix/NT/Novell)
I SAMBA
1 Fácil
I NO
el
I Confiabilidad
Alta
I Regular
Concluyendo que un servidor de archivo de UNlX nativo
o de archivos de Windows NTo de MS-DOS es
confiable y con muy pocos costos
de administración, configuración y recursos del sistema.
Haciéndose un resumen en la siguiente tablade los archivos y recursos usados paraeste fin.
172
I
UNIX COMO SERVIDOR DE APLICACIONES
Las aplicaciones de tipo UNlX o de forma nativamente se pueden manejar localmente o remotamente
con NFS y de manera transparente para sistemas UNIX, la única limitante que se puede presentar, es
encontrar la versión adecuada de la aplicación para el kernel y versión del sistema operativo, así como
las librerías, controladores y otros archivos
que sean necesarios para poder correr estas aplicaciones.
En nuestro caso Linux RED HAD tiene una amplia distribución ya sea para prueba, de uso comercial o
de distribución gratuita a través de Internet en comparación con Mandrake , Slakcware y otros tipos de
UNIX.
Solamente
es
cuestión
de
pasar
horas
navegando
buscando
y
las
aplicaciones
sus
y
componentes que se requieran para poder instalarse.
Acontinuaciónseenlistan
los sitiosdeInternet
en los cualessepuedenbajardiferentestipos
aplicaciones, actualizaciones y drivers para LinuxRED HAD.
de
En el caso de querer utilizar a UNlX como un servidor de archivos de NT o Windows es necesario el
poder instalar y configurar adecuadamente a Samba,
los pasos que se requieren para poder llevar a
cabo lo anterior sonlos siguientes:
1. Instalar y configurar Samba.
HAD.
El instalar Samba se hace automáticamente con la instalación de UNlX RED
II.
Laconfiguración de Sambasehaceatravés
figura.
de los siguientesarchivoscomo se muestraenla
173
Se deberán agregar usuarios de Windows NT con el mismo loginy password en ambos sistemas, con la
instrucción adduser de Linux y con las siguientes modificaciones a los usuarios , esmeralda, domingo,
aldebaran, ezequiel, paulina, josefina, Administrador
iii.
El archivo SMB.CONF sedebehacerdelasiguienteforma,parapodercorrerennuestrocaso
Word, Excel, Power Point y Paint Shop Pro.
# This is the main Samba configuration
file. You should read the
# smb.conf(5) manual pagein order to understand the options listed
# here. Samba has a huge number
of configurable options (perhaps
too
# many!) most of which are not shown
in this example
#
# Any line which starts with a; (semi-colon) or a# (hash)
# is a comment and is ignored. In this example
we will use a#
# for commentry and a
; for parts of the config file that
you
# may wishto enable
#
# NOTE: Wheneveryou modify thisfile you should run the command "testparm"
# to check that you have not many any basic syntactic errors.
#
. . . . . . . . . . . . . . . . . . . . . . . . Global Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
[global]
#workgroup = NT-Domain-Nameor Workgroup-Name
workgroup = Atlantis
174
# server string is the equivalent of the NT Description field
server string = Samba Server
# This option is important for security.It allows you to restrict
# connections to machines which areon your local network. The
# following example restricts access
to two C class networks and
# the "loopback" interface. For more examples of the syntax see
#the smb.conf man page
; hosts allow = 192.168.1. 192.168.2. 127.
#CAMBIO
# if you want to automatically load your printer
list rather
# than setting them up individually then you'll need this
; printcap name = /etc/printcap
; load printers = yes
# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, Iprng, aix, hpux, qnx
; printing = bsd
# Uncomment this if you want a guest account, you must add to
this
/etc/passwd
# otherwise the user "nobody" is used
guest account = nobody
lock directory= /var/lock/samba
share modes = yes
#this tells Samba to use a separate log
file for each machine
# that connects
log file = /var/log/samba/log.%m
# Put a capping on the size of log
thefiles (in Kb).
max log size= 50
# Security mode. Most people will
want user level security. See
# security-1evel.M for details.
; security = user
# Use password server option only with security
= server
; password server = CNT-Server-Name>
# Password Level allows matching of
-n- characters of the passwordfor
# all combinations of upper and lower case.
password level= 8
username level= 8
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
encrypt passwords= yes
smb passwdfile = /etc/smbpasswd
# Unix users can map
to different SMB User names
username map= /etc/smbusers
# Using the followingline enables youto customize your configuration
175
# on a per machine basis. The%m gets replaced with the netbios name
# of the machine that is connecting
; include = /etc/smb.conf.%m
# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
socket options= TCP-NODELAY
#"""""
/// OJO EL
"
"
"
"
"
"
"
"
"
"
CAMBIO
ES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
[homes]
comment = Directorios principales
path = /home
browseable = yes
read only= yes
. . . . . . . . . . . . . . . . . . . . . . . . . AGREGAMOS AL ADMINISTRADOR . . . . . . . . . . . . . . . . . . . . . . . .
[Adminis]
comment = Configuracion del Administrador de NT Server
path = /home/Administrador
valid users= Administrador
browseable = yes
public = yes
writable = yes
write list = @Administrador
read list = @Administrador
run list = @Administrador
readonly = no
[word]
comment = Subdirectorio de word
path = /home/office/word
valid users = word
browseable = yes
public = yes
writable = yes
readonly = no
[excel]
comment = Subdirectorio de excel
path = /home/office/excel
valid users = excel
browseable = yes
public = yes
writable = yes
readonly = no
[power]
comment = subdirectorio pp7
path = /home/office/power
valid users = power
browseable = yes
public = yes
writable = yes
readonly = no
¡v.
Los siguientesarchivossedebeneditarparaquesolamenteciertosusuariostenganaccesoa
Word, Excel y Power Point. En el caso de Paint Shop Pro cualquier usuario que este
dado de alta en
176
UNIX y en Windows NT puede ejecutarlo.
Tambiénen el archivo/etc/groupsedeberánhacer
las siguientesmodificacionessobretodoen
los
usuarios de cierto grupo según sean sus derechos por ejemplo: si
josefina va a usar solamente word y
excelse le deberáasignargruposadicionalescomosemuestraen
la figura,también si esmeralda
quiere hacer uso de word, excel, PowerPoint y word se deberá también asignar estas entradas de grupos
adicionales al archivo como se muestra.
da,josefina,lrhs,root,~dministrador,lina,ezequiel,aldebaran,morelia,domingo
lda,word,excel,power
write list = @Administrador
read list = @Administrador
run list = @Administrador
readonly = no
[word]
comment = Subdirectorio de word
path = /home/office/word
valid users= word
browseable = yes
public = yes
writable = yes
readonly = no
[excel]
comment = Subdirectorio de excel
path = /home/office/excel
valid users= excel
browseable = yes
public = yes
writable = yes
readonly = no
[power]
comment = subdirectorio pp7
path = /home/office/power
valid users = power
browseable = yes
public = yes
writable = yes
readonly = no
2. En Windows NT se deberá hacer lo siguiente:
I.
Se
deberán
agregar
los siguientes
usuarios
en
Windows
NT
Server
con
caracterísitcas que se muestran a continuación
en las siguientes figuras:
los atributos
y
La anteriores la pantalla generalde Administradores de usuario, para poder agregar a usuarios
Esta esla pantalla de agregarun usuario con determinadas características
Samba.org
If2
@
Invitado
IUSR-TITAN
Cuenta Dara acceso m m o invitado al equip
Cuenta de invitado a InterrAccesoanónirno alnternet Server
Usuario de wctn 98 para Internet
IUlS
his roberto hernandez
Adrnon llnux
Admlns del dominio
Dupltcadores
Invitados
Invitados de dominio
Operadores de copla
Opers. de cuentas
Administradores designados del dominio
Pueden duplicar archivos en un dominio
Pueden acceder como invitados al equipo o dominio
Todos los invitados del dominio
Pueden eludlr la protección de archivos para realizar copias de segur1
Pueden administrarcuentas de usuarios ygruposde dominio
- .
.
.
. . . . .
f$ lrhs
f$ root
. .
ii.
.
'
Enelcaso de Windows98 y aveces NT Serverse (
siguientes entradas en el registro como se muestralaen
sil
)erá correr el siguiente archivo, con las
iente figura:
O bien ejecutar un archivo llamado Win95-PlainPassword.reg In el siguiente contenido desdeel menú
de arranque conla opción ejecutar el archivo x:Win95_PlainPa! vord.reg con el siguiente contenido
REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services tD\VNETSUP]
"EnablePlainTextPassword"=dword:00000001
Lo anterior es debido a que Windows 98 y Samba tiene difere
?S tipos de encriptación por ello cuando
ere hacer uso de este programa, se le
pedirá una contraseña y esta debe ser encriptada y desencrip la por Windows para aceptar las claves
planas o desencriptacion o plana que tiene Samba si no es así rechazara la conexión.
un usuario con cierto nivel de seguridad como los de Word
iii.
ecto y una conexión a red de acuerdo al
En caso desernecesariosedeberáhacerunacceso
perfil del usuario que se quiera para poder correr Word, E: ?Io Power Point como se muestra enla
figura siguiente:
179
180
La figura anterior muestra la petición
de el password para poder hacer uso de Word en Samba
Las siguientes figuras muestran el path y las características de seguridad en este caso de Word para
poder accedercomo acceso directo a Word
en Samba.
3. Cada vez que se hagan cambios en
los archivos de configuración mencionados anteriormente, se
deberáreiniciarWindows NT o Windows 98 y tambiénsedeberáparar
y correreldemoniode
Samba como se muestra a continuación:
181
Nótese que la ruta para poder parar
/etc/rc.d/init.d
o reiniciar el demonio de Samba smb se encuentra en el path
Y que como no es un directorio que deba encontrarse en la variable de shell, PATH por seguridad se
deberá de ejecutar comoun comando externo del ambiente
de Shell de Linux comoes ./smb stop
4. Para cada uno de los cambios que se hagan en los sistemas es necesario que este uno firmado en
cualquiera delos sistemas operativos comosuper usuario.
Para poder investigar más acerca de Samba véase las siguientes ligas y documentaciónde Samba; es
necesario hacer notar que no todas las aplicaciones nativas de Windows podrán correr remotamente en
un servidor de aplicaciones tipo Samba; ya que es preferible
el poder obtener la versión adeucada de
red e instalarla en UNlX remotamente desde Windows NT; este es el caso de Word por ejemplo,
ya que
como sabemos éI ofrece la capacidaddeautoguardarundocumentoenciertointervalodetiempo
automáticamente; y debido a que las librerías de nuestra versión no son las adecuadas no se puede
hacer esto de forma automática. Cabe hacer mención que las versiones más actuales de Office “2000
tampocoofrecíanestascapacidades,perosipodíanofrecerunmayornivel
deseguridadparacada
usuario. (véasela documentación de Office 2000)
En conclusión el usar un servidor de aplicacionesen UNlX a través de Sambaes más económico, fiable
y rápido (en tiempo de ejecución y no de conexión)
que en Windows NT.
Tal como se muestra en
el siguiente monitoreode recursos.
182
UNIXCOMO SERVIDOR DE WEB Y E-MAIL
En nuestro caso el implementar a UNlX como servidor de Internet es sencillo si ya se tiene instalada la
versión de apache que se requiera, solamente en el caso de quererlo hacer en una lntranet o de salir a
Internet se complican las cosas. Aunque la administración y configuración
es más o menos sencilla si se
sigue la documentación ylos ejemplos que se enlistan a continuación:
1. Se deberán configurar a UNlX como un servidor de dominio de acuerdo
como se muestra enlas
siguientes figuras conlos archivos correspondientes:
2. Se deberá hacer los cambios si se requieren los siguientes archivos como se muestran:
3. En el casodequeserequierannuevaspáginasdeInternet,
CGI, Programasde Java; estosse
deberán colocar en el subdirectorio como se muestra en la figura y hacer los cambios en el archivo
de configuración como se muestra en la siguiente figura:
##
## httpd. conf-- Apache HTTP server configuration file
##
# This is the main server configuration file. SeeURL http://w.apache.org/
# for instructions.
# Do NOT simply read the instructions in here without understanding
# what they do, ifyou are unsure consultthe online docs. You have been
# warned.
# ServerType iseither inetd, or standalone.
ServerType standalone
# If you are running from inetd, go to "ServerAdmin".
# Port: The portthe standalone listens to. For ports
< 1023, you will
# need httpdto be run as root initially.
183
Port 80
# HostnameLookups: Log the names of clientsor just their IP numbers
# e.g. www.apache.org (on) or 204.62.129.132 ( o q
# The default is off because it’d be overall better forthe net if people
# had to knowingly turn this feature on.
HostnameLookups off
# If youwish httpd to run as adifferent user or group, you must run
# httpd as root initially
and it willswitch.
# User/Group: Thename (or #number) of the user/group to run httpd as.
# On SCO (ODT 3) use User nouser and Group nogroup
# On HPUX you may notbe able to use shared memory as nobody, and the
# suggested workaround is to create a user www and use that user.
# NOTE that some kernels refuse to setgid(Group) or semctl(1PC-SET)
# when the value of (unsigned)Groupis above 60000;
# don’t use Group nobody on these systems!
User nobody
Group nobody
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.
ServerAdmin root@localhost
# ServerRoot: The directory the server’s config, error, and log files
# are kept in.
# NOTE! If you intendto place this on a NFS(or otherwise network)
# mounted file system then please read the LockFile documentation,
#you will save yourself a lot of trouble.
ServerRoot/etc/httpd
4. Todos los anteriores cambios deberán ser hechos como superusuario, además de parar y reiniciar
el
demonio correspondiente como se muestra a continuación:
En conclusión UNlX como servidor de Internet es barato, confiable; pero requiere de un alto costo de
configuración y mantenimiento.
UNlX como servidor de E-Mail, es sumamente complejo y complicado el poder implernentarlo,
en el caso
propio la instalaciónyconfiguración de los archivos ya que estabahecha,sinembrago;
se hicieron
algunas modificaciones comose ilustra en las figuras siguientes:
Los siguientes archivos y sitios pueden ser de utilidad para poder configurar un servidor de E-mail en
UNIX, pero en conclusión este tipo de servidores es el quemás abunda en Internet y en las lntranets del
Mundo,yaqueesmuyconfiableysusoporteeselmásantiguodetodos
los servidoresdeE-mail
existentes en el programaSMTP.
Aunque aparentemente los servicios de mail de cualquier servidor parecen ser lo mismo, Unix o Linux
ofrecen mas ventajas al poder configurar de maneracasi automatica la seguridad dentro de su sistema,
ya que en este se puede configurar de manera autonoma a traves
de los servicios de administración las
“quotas” de usuario es decir, si diésemos de alta la cuenta de un usuario nuevo en Linux es posible
184
asignarle un espacioen disco duro para que pueda almacenar
sus mails, atachment u otros archivos, as¡
como tambien se puede, configurar de manera mas personal la mascara de derechos
de cada uno delos
usuarios.
Linux es popular para correr programas
CGI en el lenguaje Perl. Windows por otro lado
le permite
utilizar varias herramientas de Microsoft para crear sitios interactivos.
Por ejemplo, si usted usa Accesso
SQL serverparacrearbasesdedatos,sicuentaconunservidorWindowsustedpuedecrear
aplicaciones web.
Existen diferentes aplicaciones que pueden lograr
un optimo desempeiio como servidor de mail, pero sin
duda todos se apoyan en la versatilidad que tiene Unix para poder ser administrado.
185
UNIX COMO SERVIDOR DE IMPRESION
El uso de la impresión de UNlX ha estado desde que
se creo el sistema operativo como tal, sin embargo;
no ha evolucionado hasta la forma en como lo hizo en Windows NT, por lo que la impresión de archivos
en forma nativa se deberá hacer como
se muestra enla siguiente figura:
Si se quiere utilizar una máquina conectada una
a impresora de tipo UNlX e imprimir desde Windows NT
los
solamente se podrá hacer de forma transparente a través de Samba, para ello se requiere de seguir
mismos pasos que enla sección UNlX como servidor de aplicacionesy además los que se muestran en
la figura siguiente:
Enconclusión UNlX ofrecemuchasdesventajasenmantenimiento
Windows NT.
186
y operaciónencomparacióncon
IIF
Desactiva la comprobación de los archivos disponibles en los diskettes de
inicio.
6IC
IPasa por alto los controles de espacio disponibles enlos diskettes de inicio.
. ..
.
1 1 "
.
.I.
."
"
Para hacer la instalación sin los diskettes de inicio. Mediante /Sindicaremos
larutade
los archivosdeinstalación
si noesdesdeelCD-ROMenel
directorio 1386.
Permite la instalaciónautomática.Mediante /S indicaremoslarutade
archivos de instalación si no es desde
el CD-ROM en el directorio1386
los
Para todos los casos de instalación NT 4.0 necesita un volumen de discolocal compatible con NT, con al
menos119
espacio
de
Mbcomprimido
libre,
no
y formateado
con
FAT o NTFS.
Podemos encontrarnos con distintas circunstancias al hacer
la instalación:
0
Si tenemos un sistema operativo instalado con acceso a un lector de CD, desde el directorio 1386
187
del CD ejecutamos WINNT/B para que comience la instalación y no se generen los tres discos
de inicio.
0
0
Para realizar una instalación a través de red necesitamos tener instalado el cliente para red de
MS-DOS(vieneincluidoenelCDdeNTserver
o descargarsedesde el web de microsoft),
Windows 3.1 1 o Windows 95, nos conectamos aunCD compartido en redo a un disco duroque
contenga los archivos de instalación y ejecutamos WINNT/B desde el directorio
1386.
Si no tenemos nada instalado en el disco duro, introduciremos el CD-ROM en su lector, el disco
1 en la disquetera y después encenderemos
el sistema.
0
Si estamosinstalandoNT 4.0 en unequipoquepuedaarrancardesde
el lector de CDROM
podemoscambiar enlabios
la secuenciadearranquedemaneraqueempiecepor
el CD,
aunque el discoduroestésinformatearyconsecuentemente
sin ningúntipodesistema
operativo instalado, el programa de instalación se iniciasólo y te permite hacer la instalación sin
tener nada en el disco duro y sin tenerquegenerar los diskettes de instalación. {Anotación
enviada porJosé Eunenio Miralles López)
0
Unaveziniciada
esquema.
la instalacióntodaslasopcionesanterioressiguenprácticamente
el mismo
Reconocimiento
del
Lo primero que hace es reconocer el hardware indispensable para empezar a trabajar y comprobar que
no exista una versión de NT, en este caso se detendrá la instalación y tendremos que realizarla desde
esesistema NT ya instalado(usandoWINNT32) o eliminar la particióndondeestuvieraubicado.A
continuacióncomenzará la cargade los archivosnecesariospara
la instalacióny nos pediráque
introduzcamos el disco 2 o en el caso de estar haciendo una instalación sin discos pasará a un menú
donde nos pregunta:
0
Si queremos ayuda sobre la instalación ( F l )
0
SiqueremosinstalarNT (ENTRAR)
0
Si queremos reparar (R), este apartado lo veremos en un próximo documento.
0
Si queremos salir de la instalación (F3)
Nosotros
el
pulsaremos
"ENTRAR"
Configuración
almacenamiento
de
de
unidades
Pasara a la fase de detección de los controladores ESDIIIDE, SCSl y unidades de CDROM conectadas,
preguntándonos si queremos detectar controladoras SCSl (ENTRAR) o no detectarlas (I); éste sería el
caso si no tuviéramos ningún dispositivo SCSI.¡Cuidado!, en este caso no se detectaríael CDROM IDE,
Y
NT
a
quedispositivo un
lo
como
trata
SCSI.
Nosotros
pulsaremos
"ENTRAR"
Nos pedirá el disco 3, apareceunapantallacon
el resultadode la detección. Sino hubierasido
detectado alguno de nuestros discos duros o lectores de cdrom, tendríamos que instalar el driver del
fabricante
presionando
( S ). Si los hubiera
detectado
todos
pulsaremos
"ENTRAR").
Aparece en pantalla la licencia del producto la cual leeremos atentamente dandoal avance pagina hasta
que nos permita dar a ( F8 ) para continuar, siempre que estemos de acuerdo conlas condiciones de la
licencia.
Seguidamentenosdará un listadodecomponentesinstalados
en el sistema, los cualespodremos
cambiar en caso necesario, creo que sería mejor dejar las cosas como están y luego cambiar
lo que
desde queramos
Ya
instalado.
el cual nos pregunta:
Ahora pasaremosal gestor de particionesde disco y de ubicación de la instalación
¿Dónde queremos instalar NT? .Para ello nos moveremos con el cursor hasta la partición donde
188
queremos instalarlo y luego presionaremos
(ENTRAR).
pero
0
Si tenemos espacio sin asignar nos moveremos con
el cursor a ese espacio no particionado y
pulsando la tecla ( C ) crearemos una nueva partición, iojo!, yo lo haría desde el administrador
dediscounavezinstalado
el sistemaoperativo. Lo más importante estenerunespaciode
aproximadamente 300 Mb para la instalaciónde NT 4.0.
0
Si queremos borrar una partición moveremos el cursor a la partición existente y pulsaremos( E ) .
En nuestro caso tenemos una partición FAT con el tamaño necesario para la instalación del NT, por lo
quemoveremoselcursorhastasituarloencima
dedichaparticiónypulsaremos
( ENTRAR ).
Pasará a preguntarnos si queremos convertir la partición a NTFS o dejarlo como está, con el cursor nos
moveremosalaopción
quedeseemos.Lainstalaciónes
más rápidasobreFAT,yasí
lo haremos
nosotros,recordandoquecuandoterminemoslainstalacióntendremosqueejecutarCONVERTC:
/FS:NTFS para convertir a NTFS, siempre que queramos convertir
el sistema de archivo a este tipo.
NOTA: NTFS nos permite configurar permisos de seguridad sobre archivos y directorios; FAT es más
rápido
de
seguridad.
También nos preguntaráel directorio donde queremos ubicarel bloque de programas delNT, por defecto
"\WINNT" y pasará a examinarlos discos para comprobar su integridad, para ello pulsaremos
(ENTRAR);
si
consideramos
que
los discos
perfecto
están
en
estado
pulsaremos
(ESC).
Llegadoaestepunto
el sistemasepondráacopiar
los archivosnecesariosparalainstalacióndel
sistema NT,cuandoacabeesteprocesoretiraremos
el disco de ladisqueteraydelCD-ROMy
(
ENTRAR
1.
presionaremos
Con esto concluye la primera parte de la instalación, que sería igual para el NT server y workstation. La
segunda fase, basada en el entorno gráfico de NT, es distinta para cada versión:
Una vez pasada
basada
la primera Dartede la instalación, se reinicia el ordenador y comienza la instalación
Comienzan
las
ventanitas
Nos saldrá una pantalla donde nos indica los pasos que va a seguir la instalación, donde pulsaremos
(SIGUIENTE), y pasaremos a otra donde nos indica
el tipo de instalación que vamos a realizar:
0
Típica: Recomendada para la mayoría de los equipos
0
Portátil: Se instalará con opciones útiles para equipos portátiles
Compacta: Paraahorrarespacio
opcionales
0
Personalizada: Parausuarios
instalación disponibles
endisco,noseinstalaráningunode
los componentes
más avanzados.Puedepersonalizartodaslasopcionesde
usaremos
Nosotros
la
personalizada
Y
pulsaremos
(SIGUIENTE).
En el pasosiguientepondremos
el nombreylaorganizacióna
la que va apertenecer la licencia
(SIGUIENTE), e introduciremos la clave delCD de NT, la cual viene enla carátula del CD, (SIGUIENTE),
pasaremos a poner el nombre que va ha tener el equipo para su reconocimiento en red, i NO PUEDE
ESTARDUPLICADO!, (SIGUIENTE), y nospreguntarálacontraseñadeladministrador¡Nossenos
puedeolvidar!, en casodeolvidotendremosquereinstalarelsistemaoperativo,
(SIGUIENTE). No
pregunta si queremos un disco de rescate. El disco de rescate es importante por si existe un bloqueo o
un fallo en el arranque de NT, este disco se tendrá que acuatiza cada cierto tiempo, y siempre antes de
hacer un cambio en el equipo, sobre todo si es un cambio
de hardware. En este caso la utilidad para
generarlo es "RDISK queseráampliadamasadelante,
(SIGUIENTE), lapantallaquesigue
es la
seleccióndecomponentes
en actuaremoseligiendo o descartando los componentesquecreamos
lo quequeremosinstalara
le daremosa (SIGUIENTE).
adecuados,unavezdeterminadoquees
189
en
Configurando
el
acceso
a
red
Si el equipo está conectado a una red a través de RDSl (ISDN)o un adaptador de red pulsaremos como
activo
Si a su vez va ha tener control de acceso telefónico a redes también marcaremos
el cuadro a tal efecto
Si nuestro equipo no va ha tener nada de lo anterior pulsaremos el botón redondo que
nos indica tal
opción
en red una
(No aequipo
conectar
este
este
momento)
(SIGUIENTE)
Nuestro
equipo
esta
conectado
a
una
LAN
a
través
de
un
adaptador
de
red.
Pulsaremos la búsqueda automática de adaptadores de red, en el caso que no lo detectase tendremos
que utiliza un disco del fabricante o un adaptador existente en la lista de adaptadores de NT. Una vez
instalado el adaptador de red, pasaremos a la instalación de los protocolos con los que van a trabajar
nuestro sistema, los cuales pueden ser TCP/IP, IPS/SPX, NetBEUI, pudiéndose seleccionar otros desde
una lista o instalarlos desde un disco del fabricante. Nosotros instalaremos TCP/IP, si tuviéramos que
instalar un cliente para NETWARE tendríamos que instalar IPXISPX, si
y lo queremos compatibilizar con
unaantiguasredes
de Microsoft o queremosunainstalaciónsencillahasta
8 equipoutilizaremos
NetBEUl
solamente.
Nosotros instalaremos TCP/IP ya que será imprescindible para el acceso a Internet a través de acceso
(SIGUIENTE).
telefónico
Pantalla
de
los
servicios
de
red
Sale un listado con los servicios mínimos de red que no se pueden tocar desde
la instalación, en el caso
que queramos quitar algunos tendremos que esperar a que se acabe
la instalación, podremos ampliarlo
dependiendo de los que queramos, en el caso de una red Netware tendremos que instalarel servicio de
Cliente
para
Netware.
Ya hemos acabado la instalación de red Pulsaremos (SIGUIENTE), si tenemos alguna duda (ATRÁS).
Comenzado la instalacióndetodo
lo que le hemosindicadoen
los pasos previos.Pasandoa
la
introducción
de
lospara
datos
el TCPIIP.
protocolo
Si nuestro equipo adquiere la dirección IP desde un servidor DHCP automáticamente le daremos que
(SI), en
el dirección
tener
una
fija
de
caso
IP
le
daremos
que
(NO).
Ahoraseguiremos con la introducción de los datos del TCPAP de nuestroequipo, si tenemosuna
dirección fija de red la pondremos una vez activada la casilla a para tal efecto, con la mascara de red
adecuada, si no tenemosningúnROUTER
o GATEWAYpara la solución de encaminamiento lo
dejaremos en blanco, en caso de que existiera pondríamos la dirección de este. Esta es la Instalación
mínima mas adelante la analizaremos con mas detenimiento. Si utilizados WINS para
la resolución de
nombres le indicaremos el servidor de WINS en caso contrario le diremos que (SI) queremos continuar.
Nos indica los niveles de enlace entre los servicios, los protocolos y los adaptares de comunicaciones
tanto de red como de RAS los cuales podemos habilitaro deshabilitar a nuestro gusto.(SIGUIENTE). NT
esta listo para iniciar la red (SIGUIENT€,J si lo tenemos claro, (ATRÁS) si nos hemos equivocado en algo.
Ahora llega el momento de decirle si vamos a formar parte de un dominio NT o en un grupo de trabajo
en el caso de trabajar en un dominio necesitamos la asistencia del administrador para que de alta la
máquina.
Nosotros
en
un
principio
no
trabajamos
en
un
dominio
sino
en
un
grupo
de
trabajo.
Pondremos el Nombre, (SIGUIENTE), ya hemos
terminado
la instalación
de
la red.
Pasaremos a poner la fecha y la hora (CERRAR), y las características de la tarjeta gráfica, aunque
recomiendo dejar la que nos haya dado por defecto y continuar la instalación, posteriormente podremos
cambiar el tipo. Si ha detectado una tarjeta tendremos que pulsar
(PRUEBA), antes de (ACEPTAR).
Copiará el resto de los archivos, guardará la configuración y nos pedirá que insertemos un disco
que
etiquetaremos como "Disco de reDaración" (ACEPTAR), borrará los archivos temporales y nos pedirá
que reiniciemos.
Instalaci6n de Windows NT server
En este apartado veremos parte de la instalación de NT server basada en modo gráfico, que es distinta
de
NT
workstation.
Una vez pasada la primera Dartede la instalación, se reinicia el ordenador y comienza
la instalación
Lo primeroquehaceesmostrar
una pantallaindicando el procesode
basadaenentornográfico.
instalación
190
En el paso siguiente pondremos el nombre y
la organización a la que va a pertenecer la licencia , e
introduciremos la clave del cdrom que viene en
la funda. Pasaremos a poner el nombre que va a tener el
en equipo
la
red,
¡atención!,
no
puede
estar
duplicado.
Llegamos al menúdondetenemosqueindicarquefunciónrealizaránuestroequipo,antesquizás
te
convenga tener clarolo que es un dominio:
0
0
0
Controlador principal de dominio (PDC): seráelquegestione
equipos, y los inicios de sesión, sólo existe uno por dominio.
las cuentasdeusuariosyde
Controlador de reserva del dominio (BDC): tiene una copia de la base de datos de usuarios y
puede sustituir al PDC en caso de fallo, pueden existir varios en un mismo dominio.
Servidor Independiente: servidoresnointegradosenundominio
funciones de PDCo BDC
o quenorealizaneneste
Supondremos aquí que estamos instalando un PDC, lo seleccionaremos y nos preguntará la contraseña
el sistema
deladministrador, que no podemos olvidar, encuyocasotendríamosquereinstalar
operativo.
Ahoranospregunta si queremosgenerarundiscoderescate,estediscoesimportante
si existe un
bloqueo o un fallo en el arranque de NT, se tendrá que actualizar cada cierto tiempo y también antes y
despuésdehaceruncambioimportanteen
el equipo,sobretodosiesuncambiodehardware.
Preparamosun diskette vacíoy lo creamosahora.Lapantallaquesigueesladeselecciónde
componentes accesorios al sistema, elegiremos los componentes que creamos adecuados o dejamos la
configuración
defecto
por
si
familiarizados
estamos
muy
ellos.
no
con
la
Comenzando
red. de
la
Si el equipo está conectado a una red,
yaseaatravésdeRDSl(ISDN)
o con un adaptador de red,
tendremosqueactivarelcuadrocorrespondiente,sinecesitamosaccesotelefónicoaredestambién
el
marcaremos
efecto.
En caso contrario pulsaremosel botón redondo que nos indicatal opción (No conectar este equipo a una
red
Nuestro
equipo
esta
conectado
una
a LAN
través
a de
un
adaptador
de
red.
(SIGUIENTE)
En esta pantalla nos pregunta si queremos instalar el IIS (Internet Información Server) cuya instalación
veremos en un próximo documento,solo anticipar que es para poner nuestro equipo como un servidor de
quitamosLe Internet.
la
selección
Y
pulsaremos
(SIGUIENTE).
Pulsaremos la búsqueda automática de adaptadores de red, en el caso que no lo detectase tendremos
que utiliza un disco del fabricante o un adaptador existente en la lista de adaptadores de NT. Una vez
instalado el adaptador de RED, pasaremos a la instalación de los protocolos con los que van a trabajar
nuestro sistema, los cuales pueden ser TCPAP, IPS/SPX, NetBEUI, pudiéndose seleccionar otros desde
una lista o instalarlos desde un disco del fabricante. Nosotros instalaremos TCP/IP,
si tuviéramos que
instalar un cliente para NETWARE tendríamos que instalar IPWSPX, y si lo queremos compatibilizar con
una antiguas redes de Microsoft
o queremos una instalación sencilla de hasta
8 equipos utilizaremos
NetBEUl
solamente.
Nosotros instalaremos TCPAP ya que será imprescindible para el acceso a Internet a través de acceso
telefónico
(SIGUIENTE).
Pantalla
RED.
enlos
servicios
Sale un listado con los servicios mínimos de RED que no se pueden tocar desde
la instalación, en el
casoquequeramosquitaralgunostendremosqueesperaraqueseacabelainstalación,podremos
ampliarlo dependiendo de los que queramos, en el caso de una red NETWARE tendremos que instalar el
servicio
Ya hemos acabado la instalación de RED Pulsaremos (SIGUIENTE),si tenemos alguna duda (ATRÁS).
Comenzado la instalacióndetodo
lo quelehemosindicadoen
los pasosprevios.Pasandoala
de introducción
TCP/IP.
protocolo
el
lospara
datos
Si nuestro equipo adquiere la dirección IP desde un servidor DHCP automáticamente
le daremos que
dirección
tener
una
(SI),
de
IP
caso
el en
fija
le daremos
que
(NO).
Ahoraseguiremoscon
la introducciónde los datosdelTCP/IPdenuestroequipo,
si tenemosuna
191
n
dirección fija de red la pondremos una vez activada la casilla a para tal efecto, con la mascara de red
adecuada, si no tenemos ningún router o gateway para la solución de encaminamientolo dejaremos en
blanco, en caso de que existiera pondríamos la dirección de este. Esta es
la Instalación mínima mas
adelante la analizaremos con mas detenimiento. Si utilizamos WINS para la resolución de nombres le
indicaremos el servidor
de
WINS encasocontrariolediremosque
(SI) queremoscontinuar.
Nos indica los niveles de enlace entre los servicios, los protocolos y los adaptares de comunicaciones
tanto de red como de RAS los cuales podemos habilitaro deshabilitar a nuestro gusto.(SIGUIENTE). NT
esta listo para iniciar la red (SIGUIENTE) si lo tenemos claro, (ATRÁS) si no hemos equivocado en algo.
Ahora llega el momento de decir el nombre queva a tener nuestro dominio NT. Pondremos el Nombre,
(SIGUIENTE)
Ya terminado
hemos
la
instalación
de
red.
Pasaremos a poner la fecha y la hora (CERRAR), y las características de la tarjeta gráfica, aunque
recomiendo dejar la que nos haya dado por defecto y continuar la instalación, posteriormente podremos
cambiar el tipo. Si ha detectado una tarjeta tendremos que pulsar
(PRUEBA), antes de (ACEPTAR).
Copiará el resto de los archivos, guardara la configuración y nos pedirá que insertemos un disco que
etiquetaremos como "rescate" (ACEPTAR), borrará los archivos
temporales
nos
y pedirh
que
reiniciemos.
Este documento sigue abierto para cualquier ampliación
o corrección que quieras mandar.
Elecci6n de unprotocolo de red
Una de las ventajas más importantes que ha tenido siempre NT es la elasticidad que tiene a la hora de
integrarse con otros equipos en red, de hecho convive sin problemas con redes basadas en sistemas
Novell, AppleTalk, UNIX, SNA y cualquier cosa que sele eche, sirviendo incluso de pasarelaentre estos
mundos tan distintos. Este comportamiento tan vershtil
se debe a la gran cantidad de protocolos que
incorpora
que
pueden
y convivir
simulthneamente
en sistema
un con
Windows
NT.
Para cualquier administrador de sistemases obvio que si necesita conexión con Novell habrá de instalar
el protocolo IPWSPX, para convivir con UNIX echará mano de TCP/IP
y si los Macintosh abundan tendrá
que
usar
Lo que a veces no queda tan claro es el protocolo a utilizar en una red basada únicamente en sistemas
operativos de Microsoft (MSDOS, Windows 3.x, Windows 95 y el propio Windows NT), es aquí donde el
ponerpretende
documento
presente
"de
Protocolos
IPWSPX
Y
NetBEUI.
AI instalar Windows NT los protocolos que se instalan por defecto son IPWSPX y NetBEUI. Aunque la
elección de IPWSPX me parece acertada no entiendo porque senos endosa NetBEUl cuando la propia
Microsoft nos dice que no le parece un protocolo adecuado para una red que se precie de serlo. Con el
vamos
NetBEUI.
Es el protocolo utilizado por las antiguas redes basadas en Microsoft LAN Manager. Es muy rápido en
pequeñas redes que no lleguen a la decena de equipos y que no muevan archivos de gran tamaño, a
partir de ahí es mejor otra opción y lo desinstales de tus clientes y tus servidores, esto último siempre
que que equipo
no ningún
tengas
utiliceManager.
LAN
IPWSPX.
Este protocolo, implementado por Novell, ha demostrado sobradamente su valíaen redes de área local,
es rápido, fácil de configurar y requiere pocas atenciones.
Es el protocolo que Microsoft recomienda para
redes
área
de
local basadas
DOS,
enWindows
3.x,
Windows
95 Windows
y NT.
El principal inconveniente que presenta para redes medianas y grandes es que no se puede enrutar o
sea que no puede pasar de una subred a otrasi entre ambas hay un encaminador (router), porlo que no
puedeusarseenredesWAN.
Otro inconvenientequepresentaenredescon
un ciertonúmerode
equipos es que puede llegar a saturar la red con los broadcast que lanzan los equipos para anunciarse
en
la
TCPIIP.
Este protocolo juega aquí con ventaja pues se trata de mi favorito y adernhs se hace imprescindible si
estás conectado a Interneto quieres crear una intranet. La capacidad de TCP/IP para mover información
en una red, por grande que sea, sin perder datos, su sistema de nombres y direcciones, y su facilidad
192
"Si"
parasaltardeunaredaotra
lo conviertenenelcandidatoidealparacualquierreddeordenadores
dispuesta a no quedarse dentro de las paredes de un edificio. No obstante pueden achacársele algunos
inconvenientes como la dificultad de configuración para el usuario y la necesidad de un mantenimiento
constante
administrador
Por
del
parte
de
la
red.
El primerinconvenientesedebealanecesidadquetieneelusuario
de conoceralgunosdatos
imprescindiblesantesdeque
el sistemaempieceafuncionarenred:direcciónIP,
máscara dered,
dirección del servidor de nombres y dirección del encaminador, afortunadamente este problema puede
resolverse utilizando elservicio de configuración dinámica de equipos (DHCP),que viene incluido en
Windows NT Server, este servicio asignalos datos mencionados arriba a cada equipo en
el momento en
que este se conecta en red de manera transparente para
el usuario. El trabajo de mantenimiento por
parte del administrador tampoco es insignificante: asignación de direcciones
IP a los nuevos equipos,
mantenimiento de la tabla de nombres en el servidor de nombres si este existe o, peor aún, en cada
equipo si no existe y vigilar que no
haya direcciones duplicadas por citar
sólo algunos. De nuevo NT
Server nos hecha una mano
si combinamos la potencia de DHCP con el
servicio de nombres para
Windows
(WINS)
reciente
el y
servicio
de
nombres
dominio
de
(DNS).
Otroinconvenientequeaúnnohemosmencionadoeslafaltadeseguridad
de TCP/IPfrentea los
"mirones" que tengan acceso físico a la red,
ya que las tramas TCP/IP no van codificadas y con un
software adecuado podría capturarse parte dela información que estamos enviando. Para este problema
comienzan a surgir soluciones como el protocolo punto a punto apantallado (PPTP), que encripta las
tramas TCP/IP que enviamos, estableciendo de esta forma un canal seguro incluso a través de Internet.
NetBIOS,
No podemos nunca hablar de NetBlOS como una alternativa a los protocolos mencionados arriba, pues
los anteriores(máscercadel
setratadeunprotocoloque
seencuentraunescalónmásarribaque
usuario). NetBlOS es un intermediario entre dichos protocolos y nuestras aplicaciones, que nos permite
conectarnos al restode los equiposdenuestraredusandonombressencillosyfácilesderecordar
(SERVIDOR,COMPRAS,ANDROMEDA)sinimportarqueprotocoloderedestemosusandopara
comunicarnos con ellos. De esta manera para el usuario la red se convierte en algo transparente por la
que puede navegar usando el icono "Entorno de red". Además no tenemos que preocuparnos nunca de
éI pues
instalará
se solito
sobre
los protocolos
que
configuremos
nuestro
en equipo.
Conclusiones
finales
La recomendación es que mantengas tu red funcionando con el menor número de protocolos posibles,
siendo muy conveniente quehaya homogeneidad entre los equipos que vayan a compartir recursos entre
si,yaquelas
máquinasquenotenganalmenos
un protocolocomúnnopodránverseentre
si ni
compartir
recursos.
Si por motivos de tamaño no vas a usar NetBEUI, la elección queda entre IPX/SPX y TCP/IP, usa el
primero enuna red localsinaccesoaInternety
el segundoenunarednolocal(WAN,MAN)
o si
necesitas Interneto intranet. Si, como es habitual, en tu red hay máquinas que no salen a Internet y otras
que si lo hacen puedes instalar en todas IPX/SPX y en las que acceden a Internet añades TCP/IP, de
esta manera las máquinas que no acceden a Internet están
más seguras y todas se ven entre si.
Instalación del servicio de acceso remoto
Vamos a estudiar aquíla configuración del servicioy del cliente que nos permitirán acceder a nuestra red
a
través
La instalación se realiza desde el icono"Red" en el panel de control, accediendo ala solapa "Servicios".
de
Pulsando el botón "Agregar" nos saldrá
la lista de servicios disponibles, elegimos "Servicio de acceso
"Aceptar". Y
pulsamos
remoto"
Siaúnnohemosinstaladoningúnmodemnosapareceráelsiguientecuadrodediálogo,
si va está
instalado
Dasamos
Pulsamos
el
193
modem.
Si queremos que intente detectar automáticamente el modem pulsamos "Siguiente", si el módem está
dentro de la lista que detecta NT y sabemos el puerto COM donde está ubicado, marcamos el cuadro
detectar "No
el
módem..."
Y
"Siguiente".
pulsaremos
Si hemoselegido la detecciónautomáticaNTexaminará
los puertosparaaveriguar si existe algún
módem, en el caso de no encontrar ninguno, nos
lo indica y pasaremos a la introducción manual de
datos
pulsando
Nos saldrá el menú anterior con todoslos módem que tiene NT, lo seleccionaremos o en el caso de que
no exista le tendremos que decir que vamos a "Utilizar
disco", si el disco que acompafia a nuestro
modem no traecontroladoresparaNT(cosabastantecomún)
lo mejorseráseleccionarunode
los
módem estándar o alguno que aparezca en la lista que sepamos que sea compatible con el nuestro.
Si nuestro
módem
esta
en
la lista, lo seleccionamos,
pulsamos
y "Siguiente".
Y"Siguiente". pulsamos
seleccionamos
el
puerto
Este cuadro nos pide algunos datos sobre nuestra linea telefónica. Si no dependemos de una centralita
dejamosenblanco
la casilladelnúmeroparalineaexterior.Unavezcumplimentadopulsaremos
"Siguiente",nosapareceunapantalladeconfirmación,
si todo es correctopulsamos"Finalizar".
Nota: si al introducir los datos advertimos que hemos cometido algún error siempre podemos volver hacia
atrás.
Una vez hecho esto si todo ha ido correctamente NT ya debe reconocer nuestro dispositivo de modem,
seguiremos
configurando
ahora
remoto.
acceso
el
de Servicio
No muestra los dispositivos que pueden funcionar,en este caso solo nos muestra el módem que hemos
instalado. Si tenemos otro elegimos "Instalar módem" y se repetirá el proceso anterior,
si no tenemos
instalarmás
que
Seleccionamospulsamos
"Configurar".
el
utilizar
y vamos
amódem
que
En este cuadro de dialogo no pregunta en definitiva si vamos a instalar el módem como dispositivo de
salida (acceso telefónico a redes) o como dispositivo de entrada (RAS) o de entrada y salida lo cual
englobaría las dos cosas, una vez lo tengamos claro picamos en "Aceptar". Volveremos al cuadro
de
"Red".
instalación
pulsamos ahora deremoto, acceso
Aquí se configuran los protocolos que vamos a utilizar, distingue
entre la parte cliente (hacer llamadas) y
servidorala
parte
Los protocolos que vamos a usar para el cliente son en este caso TCP/IP para Internet y NetBEUl o
IPWSPXparaotrasredesalascualesnosqueramosconectar,incluyendoaunareddeNT.
Para recibir llamadasse seleccionara los protocolos que vamos a usar y configuraremos cada uno ellos.
En
el
TCP/IP,
delcaso
lo
seleccionaremos
pulsaremos
"Configurar".
y
Lo primero es decirle si cuando llaman, al que llama, se le muestra solo este equipo o todos lo equipo
que
la
red.
Si utilizamos servidor DHCP lo indicaremos y si no tendremos que decirle un rango de direcciones IP
suministrar
para
Se puede permitir aun equipo pedir una dirección IP fijasi no esta ocupada, para ello marcaremos enel
que
cuadrado
opción.
esta
indica
se
nos
Una vez configurado los protocolos entrada tenemos que decir comose va a autentificar en el caso del
simple
autentificación,
cualquier
permitir
texto
TC
incluso
P/IP
o cifradas especial de Microsoft con
En el caso de otros protocolos podremos exigir autenticación cifrada
datos
cifrados.
Pulsamos
"Aceptar".
Y le diremos que queremos reiniciar el equipo para que todos
los cambios se realicen.
Introducción al concepto de dominio
194
La administración de una red local bajo Windows NT se basa en los dominios y relaciones de confianza,
auténticas pesadillas para el administrador novato.
Intentemos
aclarar estos conceptos.
Dominios,
relaciones
Y
otros
Un dominio es un conjuntodeordenadores(servidores
+ estacionesdetrabajo)quecomparten
características comunes en cuanto a accesos. Un usuario registrado en un dominio con un nombre de
usuario y una palabra de paso, automáticamente es capaz de acceder a todos los servidores de dicho
dominio
utilizando
el
mismo
nombre
y
la paso.
palabra
misma
de
Dentro de los servidoresdeundominioexistendosjerarquías:elservidor
PDC (PrimaryDomain
Controller) y los servidores BDC (Backup Domain Controller). Por cada dominio ha de haber un PDC
y sólo uno,yposiblementevariosBDC.Cuando
el administradordeldominiodadealtaunnuevo
usuario, lo hace sobre el PDC. Los datos sobre los usuarios se guardan en una base de datos llamada
SAM, que la tiene cualquier servidor. El PDC se encarga de copiar esa base de datos de usuarios a
todos los BDCs de su dominio de manera periódica. Notemos la liberación de trabajo que esto supone
para un administrador de red. Con sólo dar de alta un usuario en el PDC, ese usuario automáticamente
puede acceder a cualquier servidor del dominio y además usando el
mismo nombre de usuario y la
misma palabra de paso.Esteproceso
de copiaperiódicade
la SAM se denominareplicación.
los protocolosadecuadosparasoportardiversostipos
de
Windows NT Servervienepreparadocon
clientes:
MS-DOS,
Windows
Trabajo
para
Grupo,
en
OS/2,
Windows
95
...
Ahora que tenemos la idea intuitiva de lo que es un dominio, pasemos a ver cómo se relacionan
los
dominios
una
mediante
red
de
el concepto
de
Trust o Relación de Confianza.
Se dice que un dominio A confía en otro B, o que hay establecida una relación de confianza desde A
hacia B, cuando cualquier usuario autorizado en el dominio B puede entrar sin
más en el dominio A.
Un grupo local es un grupo de usuarios, de manera que cualquier usuario del grupo puede entrar y
acceder a los recursos del servidor PDC del dominioal que pertenece el grupo.Un grupo local se define
como
Un grupo global es igual que el anterior excepto en que puede ser visto también por todos los dominios
que confían enel dominio al que pertenece el grupo. La diferencia entre local y global es, pues,
el ámbito
de visibilidad. Si A confía en B, y definimos en B un grupo global, entoncesese grupo también se puede
utilizar
en
ente.
os
con
red
Un
ejemplo
Como hemos dicho al principio, el dominio sirve para administrar de una manera lógica los recursos,
servidores
una
Y de
estaciones
Por ejemplo,supongamosunafacultaden
la quehay departamentos. Encadadepartamentohay
servidores,estacionesyrecursos(discosduroseimpresoras).Podemoscrearundominiopor
los
departamento. Encadadepartamento,elegiremosunservidorcomoPDCdondesedandealta
usuarios
Nos damoscuentadeque
en undepartamentoAnosinteresatenertrestiposdegrupos:
los
Administradores, los Profesores y los Becarios, cadaunocondiferentespermisosencuantoa
accesibilidad. Creamos en principio tres grupos locales al dominio. A la hora de dar
de alta un nuevo
usuario en el departamento, basta meterlo en el grupo correspondiente para que tengalos permisos por
defectode ese grupo.Siqueremosquetengaalgúnpermisoespecial,tambiénse
lo podemosdar.
Supongamosque el administradordadealtaaunprofesor,BaltasarGonzález,en
el grupolocal
Profesores
El PDC copia la SAM en los restantes BDCs del departamento A, de manera que el profesor Baltasar
pueda hacer logon en cualquier servidor de su departamento usando su nombre de usuario balgon y el
mismo
password.
Supongamos que nos interesa que el departamento A pueda utilizar los recursos del departamento B.
Entonces
lo
siguiente:
Creamos un grupo global en el PDC de A. En ese grupo global meteremos todos los usuarios de A que
van a acceder a B. Ahora establecemos un trust desde B hacia A, de manera que B confía en A, y por
tanto ve el grupo global definido en A. Por último, en el dominio B damos al grupo global los permisos
necesarios para que acceda a los recursos de B, o mejor lo incluimos en el grupo local más adecuado.
Lo anterior es sólo una manera de gestionar la organización de la facultad, pero hay más posibilidades.
195
A.
Podemos
tener
un
dominio
Único definir
y
un
grupo
local
por
departamento,
por
ejemplo.
El
Dominio
Master
Una organización distinta sería la del
dominio master. Supongamos que tenemos un dominio donde
almacenamostodas las cuentasde los usuariosde la red(dominiomaster).En
éI definimosvarios
grupos
globales,
por
ejemplo
uno
por
departamento.
Creamos
ahora
tantos
dominios
como
departamentos hay, y hacemos que todos esos dominios confíen en el master. Ahora, en el dominio del
departamento X creamos un grupo local donde meteremos todos los globales del master cuyos usuarios
nos interese que accedan a los recursos de las máquinas de X. Por tanto, en el dominio X bastará dar
permisos de accesoal grupo local definido, y automáticamente heredarán esos permisos
los usuarios de
los globales metidos en ese local. Un mismo grupo global puede estar metido
en varios locales de varios
dominios.Repetiremosestaoperaciónparacadadepartamento.Estodalugaraunaadministración
centralizada.
Otro modelo esel de múltiples masters. Un dominioen general puede albergar hasta15000 cuentas de
usuario.Cuandonecesitamosmás,podemosdefinirvariosmasters.Entre
los mastersdefiniremos
relaciones de confianzaen ambos sentidos (por ejemplo,si tenemos dos masters M I y M2, haremos que
M I confíe en M2 y M2 confíe en MI). Si ahora hacemos que todoslos restantes dominios confíen enM I
y en M2, habremos conseguido lo mismo que en el modelo de master Único pero ampliando el número
de
cuentas
hasta
de
usuario
30000.
Los
grupos
de
trabajo
Para terminar me gustaría seiíalar la diferencia de los dominios con los grupos de trabajo de Windows
para trabajo en grupo. Un grupo de trabajo es un conjunto de ordenadores en el que cada uno puede
funcionar tanto como cliente como servidor, o ambos a la vez. El administrador tiene la responsabilidad
de mantener la base de datos de usuarios en cada ordenador del grupo. Además, un usuario
de un
ordenador podría fácilmente trastear con
éI y echar abajolos servicios.
Gestión de usuarios.
Las cuentas de usuario y de grupo permiten quelos usuarios participenen un dominioy tengan acceso a
los recursos
&te
de
en función
de
los derechos y permisos
que
tengan
asignados.
Cuentas
de
usuarios
Y
grupos
Es muy importante planificar cuidadosamente la administración de las cuentas de usuario y grupos, no
obstante
disponemos
de sencillas
potentes
y herramientas
para
llevarlo
a
la práctica.
Aquí tienes algunos consejos importantes para realizar con éxito dicha planificación:
El mantenimiento de los permisos y derechos de un grupo
es más sencillo que el de varias
cuentas de usuario, generalmente usaremoslos grupos para administrarel acceso a los recursos
(puestos, archivos, impresoras, etc.):
Es obvio que sobre el directorio personal de un usuario aplicaremos permisos específicos para
dichousuario,perosinecesitamosquevariosusuariosdedistintos
o deunmismogrupo
accedan al mismo recurso es recomendable crear un nuevo grupo para tal fin,
ya que un usuario
puede pertenecer a varios grupos.
Muchas
veces
creamos
grupos
utilizando
el mismo esquema
de
nuestra
empresa
u
organización, sin embargo también es aconsejable pensar en los grupos de usuarios en función
de los recursos que van a necesitar.
Cambiaremos los permisos proporcionados a un conjunto de usuarios utilizando
grupo perono modificaremos cada cuenta.
la cuenta de
Intentaremos aprovechar los grupos predefinidos de Windows NT, a los que se han asignado
útiles conjuntosde derechos y capacidades.
196
NT
En un dominio de Windows NT Server se pueden mantener
dos tipos de grupos: grupos locales y grupos
globales, para comprender la utilidad de cada uno hemos hecho un pequeño extracto de los manuales
de
ayuda.
Grupos
globales
Un grupo global contiene una serie de cuentas de usuario de un dominio que están agrupadas bajo un
nombre de cuenta de grupo. Un grupo global
sólo puede contener cuentas de usuario del dominio donde
se creó el grupo global. Una vez que se crea un grupo global, se le puede asignar permisos y derechos
en su propio dominio sobre estaciones de trabajo o servidores miembro, o sobre dominios que confían.
Sin embargo, lo mejor es asignar derechos y permisos a grupos locales, y usar
el grupo global como
para
método
Los grupos globales se pueden agregar a grupos locales del mismo dominio, en dominios que confían en
dicho dominio, o en servidores miembro o equipos que ejecuten Windows NT Workstation en el mismo
dominio o en uno que confía. Los grupos globales
sólo contienen cuentas de usuario de dominio.
No
puede crear un grupo global en un equipo que ejecute Windows
NT Workstation o en un equipo que
Windowsejecute
La palabra "globales" en "grupos globales" indica que el grupo está disponible para recibir derechos y
permisos
(globales).
dominios
en
múltiples
Un grupo global sólo puede contener cuentas de usuario; no puede contener grupos locales
ni otros
grupos
globales.
ontener
s puede
Grupos
locales.
Ungrupolocalcontienecuentasdeusuarioycuentasdegrupoglobalesdeuno
o másdominios,
agrupados bajo un nombre de cuenta de grupo. Los usuarios ylos grupos globales de fuera del dominio
local sólo se pueden agregar al grupo local si pertenecen a un dominio que confía. Los grupos locales
hacen posible la rápida asignación de derechos y permisos sobre los recursos de un dominio (es decir, el
dominio
local)
usuarios
a
grupos
y
de dicho
dominio
y otros
dominios
que
confíen
en él.
LosgruposlocalestambiénexistenenservidoresmiembroyequiposqueejecutanWindowsNT
Workstation,
pueden
contener
cuentas
y
degrupos
globales.
usuario
y
Lapalabra"locales" de"gruposlocales"indicaqueelgrupoestádisponiblepararecibirderechosy
Único
permisos
dominioen
un
no Un local grupo
Estrategias
para
utilizar
grupos
locales
Y
globales.
Un grupo local es una entidad de seguridad única a la que se puede conceder acceso a muchos objetos
de una única ubicación (un dominio, una estación de trabajoo un servidor miembro) en vez de tener que
editar
los objetos
deesos
permisos
todos
sobre
forma
independiente.
Con los grupos globales puede agrupar las cuentas de usuario a las que podría conceder permisos para
minios
últiplesen objetos
usar
trabajo.
Y
estaciones
de
los grupos globales como
Por ejemplo, en una configuración de múltiples dominios, puede pensar en
medio para agregar usuarios alos grupos locales de dominios que confían. Para extender
los derechos y
permisos de los usuarios a recursos de otros dominios, agregue sus cuentas a un grupo global de
su
dominio
después
y
agregue
el
grupo
global
a
un
grupo
local
de
un
dominio
que
confía.
Incluso en un dominio Único, si recuerda que puede agregar dominios adicionales en el futuro, puede
usargruposglobalesagregadosagruposlocalesparaconcedertodos
los derechosypermisos.
Posteriormente, si se crea otro dominio,los derechos y permisos asignados a sus grupos locales pueden
extenderse a los usuarios del dominio nuevo creando
una relación de confianza y agregando grupos
globales del dominio nuevo a sus grupos locales. De la misma manera, si el dominio nuevo confía en su
dominio,
sus
grupos
globales
se
pueden
agregar
a
los grupos
locales
del
dominio
nuevo.
Los grupos globales de dominio también se pueden usar para propósitos administrativos en equipos con
Windows NT Workstation o en servidores miembro con Windows NT Server. Por ejemplo, el grupo local
Administradores
de
dominio
se
agrega
de
forma
predeterminada
al
grupo
local
incorporado
Administradores en todas las estaciones de trabajo
o servidores miembro que se unen a un dominio
existente. La pertenencia al grupo local Administradores de una estación de trabajo o servidor miembro
197
permite queel administrador de red administreel equipo de forma remota creando grupos de programas,
instalando software y solucionandolos problemas del equipo.
El administrador de discos
En este apartado veremos las atractivas posibilidades de/ administrador de disco, una herramienta fdcil
usar de
potencia
insospechada.
yuna con
altamente
intuitiva
pero
Posibilidades
que
ofrece
El administrador de disco esla herramienta gráfica que emplea NT parala gestión de discos duros, con
dicha herramienta podemos:
0
Gestionar particiones de disco y unidades lógicas.
0
Dar formato a volúmenes y asignarles nombres.
0
Leer la información del estado de los discos.
o
Leer la información del estado de los volúmenes, la etiqueta y la letra del volumen, el sistema de
archivos y su tamaño.
0
Crear y modificar las asignaciones de letras.
0
Ampliar un volumen o un conjunto de volúmenes.
0
Crear y eliminar conjuntos de volúmenes.
0
Crear o eliminar conjuntos de bandas cono sin parida
0
Regenerar un miembro no encontrado de un conjunto de bandas.
0
Establecer o romper conjuntos de espejos
0
Antes de entrar en materia debes tener claro algunos conceDtos sobre discos duros,
Un
vistazo
Antes de comenzar un par de
advertencias: el administrador de discos nos permite trabajar sobre
la
partición de sistema (normalmenteC: ), ya que contiene los archivos necesarios para queNT se ejecute,
el resto de las particiones son totalmente moldeables pero tendrás que tener cuidado con lo que haces
contengan
datos, que
aquellasen
perderlos.
Yapodríasque
En este gráfico puedes ver al administrador de discos trabajando sobre un sistema con tres discos físicos
(0,l y 2) y un lector de cdrom,aquí puedes apreciar:
o
Una partición primaria y activa de
515 MB que contiene la unidad lógica C: en el disco duro O.
0
Un conjunto de espejos para integridad de datos (unidadD:) en el disco duro 1.
0
o
0
Una unidad lógica repartida en dos particiones de dos discos distintos, el
volúmenes J:). fijate en que aun está sin formatear.
O y el 1,(conjunto de
Un disco duro con cinco particiones: tres de unidades lógicas E:, F:, G: y un espejo de la unidad
D: del disco 1.
Espacio disponible sin particionar en el disco 2.
Con esta configuración hemos conseguido:
198
rápi
e
0
Realizarunespejo(oseaunacopiaexacta)deunvolumen(D:)quecontiene
los datosmás
importantes almacenados en este servidor, si mañana
me falla uno de los discos duros puedo
romper el espejo en el que ha quedado funcionando y seguir trabajando como
si nada, incluso
podré hacer un nuevo espejo con un tercer disco duro que siga en funcionamiento.
0
Hemos aprovechado el espacio sobrante en dos discos duros para crear un solo volumen (J:) de
mayor capacidad.
0
También existe unazona sin asignarde 47 MB quepodemosutilizarcontotallibertadpara
ampliar cualquiera delos volúmenes que se nos quede pequeño.
Y todo esto se ha realizado usando solamente el administrador de discos y una cierta planificación a la
hora de adquirir los discos duros para el equipo (mejor dos o tres más pequeños que uno
sólo más
grande).Tambiénesmuyimportantesabercomoparticionarcorrectamenteundiscoduroantes
o
durante
de la
instalación
Vamos a repasar ahora el entorno de trabajo de esta herramienta
si has trabajado anteriormente con ella
puedespasardirectamentealapartepráctica,encasocontrariosigueleyendoyluegoiremosala
praxis.
NT.
vista
epartido
que
El
entorno
de
trabajo
Para empezar dale un vistazo a estas dos imágenes. Nos dicen casi lo mismo pero en distinto formato,
sonde
los
tipos
dos
El modo de vista "Volúmenes" resalta más las unidades lógicas y es más completa en cuanto a datos
numéricos como la capacidad, el espacio disponible yel porcentaje de espacio disponible en relación ala
capacidad total, datos muy interesantes para ver que volúmenes se están quedando pequeños
y como
tienes
almacenamiento. de
el
espacio
La vista "Configuración de disco" muestra como están organizadas las particionesy volúmenes dentro
de los discos físicos, es la más adecuada para el trabajo fuerte con el administrador de discos, o sea,
extender volúmenes, crear o eliminar particiones, establecer espejos, etc. Es la que usaremos a lo largo
de
estas
En esta última imagen puedes ver de una manera muy intuitiva como está repartido
el espacio en el
discoduro.Cadacuadraditorepresentaunvolumen,
los códigosdecoloresindicancomoestá
configurado cada volumen, también aparecen aquí la etiqueta, el tipo de formato y el espacio total. El
significado de cada color viene dado porla leyenda de la penúltima barra que puedes configurar desde
el
menú
Opciones.
Si picascon
el ratónsobrealgunode
los cuadritosquerepresentan
los volúmenes lo habrás
seleccionado para poder trabajar conéI, deja pulsada la tecla de mayúsculasy picas en nuevos cuadritos
si quieresseleccionarvariosa
la vez,delmismomodopuedesseleccionar
las zonasrayadasque
representan
volumen.
ningún el
asignado
a
disponible
no
espacio
Pulsando el botón secundario del ratón sobre cualquier cuadrito accedes a un pequeño menú con
las
tareas
Las acciones que vayas realizando no serán efectivas hasta que
registres los cambios que has hecho;
ésto, que a veces despista o resulta tedioso, es una buena medida de seguridad frente a la pérdida de
datos.Pararealizardeterminadasacciones(porejemploformatearunvolumendespuésdecrearlo)
tendrásqueirconfirmando
los cambiossobre la marchausando el comando ParticiÓnlRegistrar
cambios ahora. Si sales del programa sin haber registrado los cambios un diálogo te dará la posibilidad
de hacerloo de salir sin registrar nada.
Nociones sobre discos duros
MBR, particiones, volúmenes, formatos, son conceptos que tendremos que tener claro si pretendemos
gestionar
adecuadamente
nuestros
discos
duros
bajo
Windows
N T.
199
ados
de
onar
La
parte
dura
Un disco duro es básicamente un conjunto de platos recubiertos con un material sensible a alteraciones
magnéticas que giran a gran velocidad (cuya misión
es la de almacenar los datos) y unos cabezales
móvilesdegranprecisión
(los encargadosdeleeryescribiren
los platosmagnéticos).Los
dos
más
estándares
Y
SCSI.
La
Una vez que la ROM ha detectado el disco duro principal lee el primer registro que se encuentra en éste,
dicho registro es el Master Boot Record (MBR, literalmente registro maestro de arranque), que contiene
un programa ejecutable y una tabla donde están definidas las particiones del disco.
El ejecutable del
MBR llama a su vez a otro programa contenidoen el primer sector de la partición primaria activa quees
memoria.enoperativo
el sistema
encargado
el cargar de
ventaja
Particiones
Y
extendidas
Antes de comenzar a trabajar con un disco duro creamos enel una serie de particiones (de una a cuatro
con NT) que contendrán los datos. Existen dos tipos de particiones:la partición primaria y la partición
extendida.
La partición primaria es la única desde la que puede arrancar el sistema operativo, aquí es donde el
MBR buscará el programa que controla el arranque (boot manager), que en NT se configura con el
archivo
BOOT.IN1.
En NT podemos definir por cada disco hasta cuatro particiones primarias pero
sólo una puede estar
activa.Graciasaestopodríanconvivirennuestroequipocuatrosistemasoperativosdistintos
La partición extendida no puede usarse como partición de arranque de un sistema operativo, pero tiene
la
volúmenes.
varios
en
Sin embargo el usuario nunca trabaja directamente sobre las particiones de
un disco duro, ni notará
ninguna diferencia por trabajaren una primaria o en una extendida, para trabajar conlos datos se define
el concepto de volumen, cada volumen lleva asignada una letra de unidad que la identifica para poder
trabajar
con
Aunque se hayan definido las particiones en las que se va a estructurar el disco, todavía éstas no son
accesibles al sistema operativo. Para ello tenemos que formatear cada una de las particiones con un
formato reconocible por el sistema operativo que vayamos a instalar. Una vez formateadas podemos
definir
de el
concepto
volumen.
Volúmenes
Los volúmenes o unidadeslógicas sonporciones deuno o variosdiscosdurosque
el sistema
operativo trata como si fueran una sola unidad física, comosi dijéramos un disco duro virtual. De manera
podemos
que ellas,
datos
escribir
leer
formatearlas,
eny
buscar
errores,
etc.
Un volumen puede abarcar:
o
Unaparticiónprimariacompleta,
la particiónprimaria sólo puedealbergar un volumen,de
hecho el administrador de discos de NT identifica este tipo de volumen como "partición primaria".
0
Un fragmento de unaparticiónextendida, en una partición extendida podemos incluir tantos
volúmenes cómo queramos ;-) , este tipo de volumen recibe el nombre de "unidad lógica" en el
administrador de disco de NT.
0
Una o varias particionesprimarias ylo una o variasparticionesextendidasendiscos
duros diferentes, el administrador de disco marcará este tipo de volumen
como "conjunto de
volúmenes".
Eladministradordediscos
de NT nospermite
jugar contodasestasvariablesanuestroantojo.
Porqué
El hacer particiones en un disco duro puede representar interesantes ventajas:
o
duro
Flexibilidad: si tenemosennuestrosistemasólo
un discocon unasolaparticiónprimariano
podremos acceder a las interesantes opciones que nos permite el administrador
de discos, ya
200
queestaparticiónalbergaráelsistemaynopuedesermodificada.Sitenemosuno
discos con unas cuantas particiones podremos crear nuevos volúmenes, ampliar
las unidades existentes, crear discos espejo, etc.
o varios
el espacio en
0
Organización: esadecuadotenerseparadoslosgrandesbloques
de
datos
en
distintas
particiones de manera que nuestro árbol de directorio sea menos complicado y más intuitivo.
0
Seguridad: paraimplementarnivelesdeseguridadRAIDtendremosquedisponerdediversas
particiones y discos en nuestro sistema
0
Rendimiento: endiscosdurosdegrantamañoformateadosconFATganaremosespaciosi
hacemos un adecuado número de particiones.
Porotroladonorecomiendoanadietenerunasolaunidad
de discoduro enunservidor,esmás
aconsejable tener dos o tres dispositivos, si sólo tenemos un disco de gran capacidad os animo a crear
varias particiones. Tener más de un dispositivo puede ayudarnos en el momento
en que uno de ellos
decida fallar, perderemos menos información y siempre podremos mover esta a otro disco antes de un
desastre total, en sistemas críticos tendremos que implementar el nivel adecuado de RAID. Por lo que
respecta a las visitas indeseadasel tener varias unidades (físicas o lógicas) dificultará el movimiento del
posible intruso, pues una vez que acceda a una unidad podrá moverse por esta con relativa facilidad, sin
complicado.
más
algo
embargo
es otra unidad
a una
el desalto
Unavezcreadaslasparticionesyasignados
los volúmenesquedaaúnunimportantetrabajoque
tocaremos en un próximo artículo: decidir el sistema o los sistemas de archivos a utilizar y formatear
cada volumen. Para ir abriendo boca diremos que NT sólo puede formatear bajo FAT y NTFS, aunque
también entiende HPFS (OS/2) y CDFS(el de los cdroms), desgraciadamente la versión4.0 de NT no es
capaz aún de leer FAT32, el sistema
de archivos usado por Windows
95 en su versión OSR2.
Decálogo de seguridad
Siguiendoestosdiezconsejospodremosconseguirungradobastanterazonabledeseguridadbajo
Windows
N T.
Debido a su diseño WindowsNT es un sistema que apuesta por la seguridad y que ha llegado a obtener
el certificado de seguridad C2, sin embargo ningún administrador debe perder de vista que una vez
acabadalainstalación aun quedaunbuentrechoporrecorrerparallegaraungradorespetablede
seguridad, aquí tienes un pequeño croquis que te ayudará ano perderte. No obstante para conseguir un
mayor grado de seguridad debes recurrir a manuales especializados en el tema; para llegar
al nivel de
C2 existe una utilidad en
el Kit de recursos deWindowsNT 4.0 quenospermitechequearafondo
nuestro
sistema.
Divide
Y
vencerás.
No recomiendo a nadie tener una sola unidad de disco duro en un servidor, es más aconsejable tener
dos o tres dispositivos, si sólo tenemos un disco de gran capacidad debemos crear varias particiones.
Tenermásdeundispositivopuedeayudarnos
enelmomentoenqueunodeellosdecidafallar,
perderemos menos información y siempre podremos mover esta a otro disco antes
de un desastre total,
en sistemas críticos tendremos que implementar el nivel adecuado de RAID. Por lo que respecta a las
visitas indeseadas el tener varias unidades (físicaso lógicas) dificultará el movimiento del posible intruso,
pues una vez que acceda a una unidad podrá moverse por esta con relativa facilidad, sin embargo el
salto de una unidad a otra es algo más complicado. En principio recomiendo tres particiones/unidades
distintas:
0
Unidad de sistema: seránuestraunidaddearranque
(C:), contendrá el directorio raíz de
Windows,lasaplicaciones
de sistemayarchivoscríticosparaeladministrador(registrode
actividades, información de usuarios, utilidades de diagnóstico...).Es muy importante restringir al
enla
máximo los permisosenestaunidad,puedesleerunaconfiguraciónidónea(revisar)
sección compartiry permitir.
20 1
I
0
Unidad de usuarios: incluiríalascarpetaspersonales, los datoscomunesy los archivospara
instalaraplicaciones,aunque los contenidossondenaturalezadispartienenunaimportante
característicacomún: los usuarioshabitualesdenuestrosistemanecesitanaccederaellas
constantemente. Se darán los permisos necesarios a nuestros usuarios y se denegaránal resto
de los mortales.
0
Unidad de uso público: contendría todos los archivos accesibles desde el exterior: ftp publico,
paginas html de nuestro servidor web, etc. Todoel mundo tendrá acceso aquí pero es importante
que los permisos seande sólo lectura.
NTFS.
Si queremos seguridad no podemos dudarlo, NTFS es nuestro sistema de archivos. Aunque
lo más
lógico es elegirlo durante la instalación, no debemos olvidar que la conversión de FAT a NTFS puede
convert
usando
momento
cualquierenrealizarse
el
comando
convert
unidad:
NTFS implementa seguridad a nivel de archivo, cada archivo o directorio posee su lista de control de
acceso (ACL) y "sabe" en todo momento quien tiene derechos sobre éI, permitiéndonos hilar muy fino
con los permisos. Por el contrario el sistema FAT carece totalmente de gestión de seguridad, una vez
queunintrusoentreennuestrosistematodos
los archivosestaríanasualcance,ademásnuestros
propios
usuarios
podrían
acceder
o borrar
con
total
impunidad
cualquier
archivo
del
sistema.
Usuarios
Existen tres cuentasde usuario que no podemos perder
de vista:
indeseados
0
Administrador,root,supervisor
y otras sencillasvariaciones: la cuentafavoritade
los
piratas informáticos, garantiza acceso totalal sistema, no se bloqueaal pasarle un diccionario de
claves y existe forzosamente enel sistema. Por razones obvias te aconsejo bloquear esta cuenta
y crear unoo dos usuarios con derechos de administrador y un nombre que pase desapercibido.
0
Invitado: esta cuenta también se crea por defecto durante la instalación y suele asignársele una
sencilla clave para uso y disfrute de filibusteros y curiosos, el
Único consuelo es que suele tener
pocos privilegios, aúnasí lo mejor es bloquearla y crear otra del
mismo estilo sólo si realmente la
necesitamos.
0
Todos: el nombre de estegrupoquieredecir
todos, o sea,TODOS,CUALQUIERA,EL
PRIMERO QUE LLEGUE. Es muy peligroso y para colmo al instalarse
NT resulta que "todos"
tienen permiso sobre todo, vamos un desastre absoluto. Elimina este grupo cuanto antes y si
necesitas algo parecido crea un nuevo grupo con otro nombre.
Los usuariosconderechosdeadministradordebentener
dos cuentas
distintas,
una
de
uso
administrativo y otra para tareas generales. Usa la cuenta con privilegios de administrador sólo cuando
tengas que realizar en
tu servidor trabajos que requieran dichos privilegios. Para
tu trabajo cotidiano
debes usar siempre una cuenta de usuario normal, de esta manera podrás minimizar
el impacto causado
accidentales,
errores
por
infecciones
de
virus
osistema.
ataques
al
Las
cuentas
claras.
Tras el rimbombantenombrede"política
de cuentas"seesconde
un conceptoque esdevital
importancia para la seguridad del sistema, podemos resumir este concepto haciéndonos la siguiente
pregunta: 'qué voy
permitir
a mis
ausuarios
hacer
con
sus
cuentas
sus
yclaves?.
NTnos permite unamplioabanicodeposibilidadespara
no perderdevistalascuentasennuestro
sistemaaquítienesalgunasdelasopciones
más interesantesquepuedesconfigurardesdeel
administrador de usuarios, concretamente en
el menú directivas cuentas:
-
0
Duracióndecontraseña:
es recomendableacostumbrara los usuariosacambiardeclave
periódicamente por si alguna cuenta es pirateada, suele recomendarse una vez
al mes pero esto
dependerá del grado de seguridad requerido
o la frecuenciade intrusiones.
202
ceso
rol
Longitud de contraseña: paraevitarlacapturadeclavesnoesrecomendableusarpalabras
cotidianas ni siglas o cifras relacionadas con el usuario, el sistema, la fecha actual,
el lugar de
trabajo, etc. Si usamos combinaciones alfanuméricas de corta longitud quedamos expuestos a
un ataque de fuerza bruta que consiste en generar combinaciones hasta que coincidan con
la
nuestra,recomiendoparaempezarunaclavede
9 caracteresquecontenga cifras, letrasy
signos de puntuación. Si necesitamos máxima seguridades interesante saber que una clave de
14 caracteres con cifras, letras, signos y caracteres extendidos puede darle a un Pentium Pro
200 trabajo para unos veinte años.
Bloqueo de cuentas: nos permite bloquear una cuenta después de cierto número de intentos
incorrectos, con esto evitamos que puedan reventarnos una clave usando un diccionario
o un
generador de claves. Tenemos la opción de que la cuenta se restablezca pasado un tiempo o
dejarla bloqueada hasta que intervenga el administrador.
Otras opciones para evitar el uso indebido de cuentas aparecen en las propiedades de la cuenta de cada
usuario, son las siguientes: limitar el horario de uso de la cuenta, permitir al usuario iniciar sesión sólo
cuentas.
las
caducidad
ponerle
de
afecha
ciertas
desde
máquinas
y
de
Compartir
Y
permitir. Y+,;
Durante la instalación de NT se asignan por defecto permisos de control total a todos lo usuarios sobre L”* .,
todos los archivos,estapeligrosasituacióndebesermodificadaporeladministradorantesdeque
.-\“,.”
alguiencause un desastre enelsistema,aquítienes
el procedimientocorrectoparaconfigurar
los
,.
permisos
sistema.
de
unidad
la
en
11,.
ATENCION: estos cambios sólo debe realizarse inmediatamente después de haber instalado el sistema,
si ya tenemosaplicacionesinstaladaspodríandejardefuncionarcorrectamente,encualquiercaso
es
,.,
necesaria
cierta
experiencia
en
el afrontar
para
tema
drástico
este
cambio.
i3:
77 .._
.a
Configura la unidad completa, incluyendo subdirectorios y archivos, los
consiguientes permisos:
:m
7;’
”
Administrador
1
(Sistema
lcontrol total
203
El resto de archivos y directorios debe ser configurado por el administrador a tenor de las necesidades
de las aplicaciones y los usuarios, algunas aplicaciones necesitarán quelos usuarios tengan permisode
escritura
en
el de
directorio
la
aplicación
Algunasvecesseocasionan
líos grandísimoscon los permisos de los recursoscompartidosy
los
permisos de archivo, a veces podemos colocar permisos contradictorios de manera que mis usuarios no
acceden a lo que necesitan y tienen control total sobre lo que no deben. Si eres un recien llegado ten
cuidado, debes tener claro que cuando estos permisos entren en contradicción siempre se impondrá el
más restrictivoy si quieresunbuenconsejoasigna
los permisos sobre los recursoscompartidosa
gruposgeneralesdelsistemaparaluegoafinarmáscon
los permisosdearchivosydirectorios.
ntrol
los de panel del
Cuidado
con
el
protocolo.
NT se caracteriza por ofrecer una amplia variedad de protocolos y servicios de red que hacen de éI un
sistemaversátilyconcapacidad
de integraciónendiversosentornosdered,estaprofusiónpuede
volverse contra nosotros. Planifica y decide que protocolos necesitas en tu red y elimina desde el icono
red
no
vayas
usar. a
Nota: los sistemas operativos de Microsoft utilizan para comunicarse entresi el protocolo NetBIOS, este
protocolo a su vez debe ir sobre otro
de inferior nivel que puede ser uno de los siguientes: NetBEUI,
IPX/SPX, TCP/IP; es por ello que hablaremos de NetBlOS sobre TCP/IP
o NetBlOS sobre NetBEUI.
Otrasaplicacionesyserviciosaccedena
la redutilizandodirectamenteIPX/SPX o TCPAP perosin
utilizar
NetBIOS.
Aquí tienes algunas situaciones frecuentes:
0
PequeñaredLANsinaccesoaInternetysinintra
o extranet: si tenemos clientes basados en
DOS o algún equipo usando LAN Manager necesitamos forzosamente NetBlOS sobre NetBEUI,
si además tenemos algún servidor Novell también necesitamos IPXISPX aunque no necesitamos
activar el enlace de NetBlOS sobre IPX/SPX. Si los clientes son todos NT, 95 o Windows 3.x lo
más recomendable es NetBlOS sobre lPX/SPX de
y paso tendríamos acceso a Novell.
0
RedesLANconInternet,intranet
o extranet:necesitamosclaramenteTCP/IP,
si queremos
seguridadpodemosusarNetBlOSsobreIPXISPXy
no activar el enlaceNetBIOS-TCP/IP, si
tenemos clientes DOS o LAN Manager vamos a necesitar NetBEUl en cuyo caso podríamos
quitar IPX/SPX. Otra opción es usar NetBlOS sobre TCP/IP y filtrar en nuestro router
los puertos
135 a 139o usar un cortafuegos.
o
RedesWAN:sehacenecesarioNetBlOSsobreTCP/IP,debemoseliminar
el restode
protocolossinosonestrictamentenecesarios.Siqueremosseguridaddebemosimplementar
cortafuegos en nuestra red.
los
Cada
servicio
una
puerta.
Con los servicios de red nos enfrentamos a la misma cuestión que con los protocolos, tenemos muchos
disponibles pero sólo hemos de implementarlos si realmente los necesitamos, sabemos como funcionan
y conocemos las repercusiones que puedan tener sobre la seguridad de nuestro servidor. Si queremos
probar algún servicio que no dominemos debemos instalarlo en un entorno aislado y someterlo a todos
los ataques que conozcamos y algún otro que se nos ocurra, cómo por ejemplo
ver que carga de trabajo
soportar
puede
los servicios
No entraremos de momentoen detalles pero no quiero dejar de advertir que en este sentido
con los que tenemos que tomar más precauciones son todos los basados sobre TCPIIP: FTP, SMTP,
POP,
HTTP,
Procura además que tus servicios no den al visitante información sobre el sistema operativo, el servicio
que estamos usando o cualquier característica de nuestro sistema que no sea estrictamente necesaria
intruso.
sabiamente
ser
un
pueda
explotada
por
usuario
y
el para
Auditoría
de
sucesos.
Si en cualquier otro contexto hablamosde seguridad, el primer concepto que nos viene ala cabeza es el
de vigilante. Por muchas medidasde seguridad mecánicas y electrónicas que se implanten la presencia
204
humana
respuesta
garantía
siempre
una
de
(ejem)
ante
es
lo
imprevisto.
Este es el papel que juega en NTel concepto de auditoría. En ciertos lugares estratégicos colocamos un
vigilantequenosvahaciendouninformedetodos
las incidenciasqueseproduzcan,mástarde
revisamos estas listas y tomamos las decisiones oportunas, la valiosísima herramienta que nos ayudará
a estar al tanto de todo
lo que ocurre en nuestro sistema minuto a minuto es el
visor de sucesos.
Recomiendo a todos los administradores de red colocar un acceso directo a esta utilidad en el menú de
inicio, de manera queal llegar cada mañanalo primero sea echar un vistazo a todolo que ha ocurrido en
nuestra
ausencia.
Debemos
activar
las auditorías
de
todos
aquellos
recursos
susceptibles
de
ser
manipulados
indebidamente o degenerarerrorescríticos,normalmentepodremoshacerlodesdecadarecurso,
editandosuspropiedadesyeligiendolasolapilladeauditoría.Aquítienes
los queconsideromás
importantes:
0
Accesos al sistema (correctos o erróneos)
0
Accesoserróneosaarchivos.
Cambiosenelplandeseguridad
0
Problemasdeimpresión.
0
Entradas a través de RAS (correctas o erróneas).
En general cualquier servicio es susceptible de ser auditado (mail, ftp, web y todos
los mencionados
arriba) sin embargo siempre habremos de buscar un equilibrio entre la cantidad de sucesos auditados y
los
sistema,
recursos
esto
del
yadiscreción
administrador.
del
queda
a
Manténgase
alerta
Si sigues los consejos anteriores vas a poder dormir plácidamente durante un tiempo, sin embargo cada
díasedescubrennuevosagujerosdeseguridadinclusoen
los sistemasmásfiables,esimportante
mantenersealdíasobreestetipodenoticias,plantearnos
los riesgosqueimplica
la instalaciónde
nuevos servicios en nuestra red y revisar que todas las puertas estén cerradas tan a menudo como nos
sea posible.
Reparación de un sistema dañado.
Previsión
Y
análisis.
Cuando nuestro sistema nos da algún error en el arranque, no se puede inicializar NT o se ha dañado
alguna parte del registro, tenemos que actuar con calma y serenidad, aún no está todo perdido, sobre
alizado.
eparación de todo disco si un tenemos
Paraprevenir la pérdidade los datos y elsistema,siempretenemosquetenerunjuegodedisco
compuesto por los tres de instalación y otro que generamos con la utilidad RDISK del sistema operativo,
siempre que vayamos a hacer un cambio importante en
el sistema, sobre todosi es de hardware hay que
generar el disco de rescate antes de hacerloy si todo va bien habrá que volverlo ha generar después de
la instalación. En el caso de un cambio del sistema de seguridad o un cambio en el registro, habrá que
generar el disco. Siempre tendremos la costumbre de tener por
lo menos dos o tres discos de reparación
iremos
los
cuales
Nota importante: Si utiliza el disco de reparaciones de emergencia de Windows NT para reparar su
sistema Windows NT en algún momento después de instalarel Service Pack, deberá reinstalar el Service
Pack después de terminar la reparación. Esto se debe a que el disco de reparaciones de emergencia
operarestaurando los archivosoriginalesde
la instalacióndeWindowsNT
4.0. Unavezquela
reparación ha terminado, simplemente siga
las instrucciones de instalación (sección 2.0) para instalar
otravezelServicePack.Paramásinformaciónsobre
la utilizacióndeldiscodereparacionesde
http://support.microsoft.com/suppotV
ybusqueel
emergencia,consulteMicrosoftKnowledgeBaseen
artículo (2146887. Nota: Para utilizar el programa del disco de reparaciones de emergencia necesita una
el
versiónactualizadadeSETUPDDSYS,queseencuentraen
el ServicePack 3. Paraello,copie
205
archivo SETUPDD.SYSdesde el ServicePackaldisco
de inicionúmero 2. Paramásinformación
consulteMicrosoftKnowledgeBaseen
http://support.microsoft.com/supportl busque
y
el artículo
QI 58423.
Lo primero es hacer un análisis de lo último que hemos hecho que haya podido provocar
el error, si nos
ha salido una pantalla azul repleta de números de arriba a abajo (pantalla azul de la muerte) donde el
sistema nos da un volcado de la memoria y los archivo implicados en el cuelgue, algo malo ha pasado
(caídas de tensióneléctrica,fallos
del hardware,controladoresdedispositivosincompatibles,
etc.).
Ultima
configuración
correcta.
La actuación es la siguiente primero intentaremos arrancar con
la última configuración buena reconocida,
para ello cuando nos pregunte en la pantalla que presionemos espacio para ver el menú de perfiles de
los perfilesdehardwarey
hardware, lo haremos,ynossaldráunapantallaconunlistadode
configuración, para arrancar conla ultima configuración buena conocida presionaremos
( L ), nos dará la
opción ( D ) para arrancar con la predeterminada, nosotros le daremos (ENTRAR), en el caso de que de
esta forma arrancara y que el sistema funcione adecuadamente, ya no hay que hacer nada más. Si
el
funcionar
pasaremos
a sin sigue
sistema
la
actuación.
siguiente
Arranque
con
los
discos
de
inicio.
Para ello introduciremosel disco unode instalación, luego nos pediráel disco dos y nos saldrála pantalla
de
bienvenida
donde
pulsaremos
(
R ) es
que
la reparación.
opción
de
Nos saldrá otra pantalla donde nos pregunta qué reparar. La selección se hará con
los cursores y la
barra espaciadora, por defecto está seleccionado todo,
lo debemos de dejarasí si nosabemosque
seleccionar.
ARCHIVOS LOS
REGISTROS. DE
[XI
INSPECCIONAR
ENTORNO
INICIO.
DE
[XI
EL
DE
ARCHIVOS
LOS
SISTEMA
DE
NT.
[XI
COMPROBAR
INICIO.
SECTOR
DE
[XI
EL
Una vez marcadas las opciones que deseemos pulsaremos continuar
la reparación y nos pedirá que
introduzcamos el disco tres, pasando con el a la detección de los controladores de disco y de CD. Una
vez detectados o introducido los driver del fabricante continuaremos ynos preguntará si disponemos de
un
Opciones
de
reparación.
Una vez introducidose pondrá a examinarlos disco del sistema, pudiendo tardar varios minutos en hacer
este reconocimiento.Apareceunaplantilladondedebemosdecidirquepartedelregistroqueremos
restaurar, moviéndonos con los cursores y seleccionándolos. Es muy importante saber la antigüedad del
disco de reparación ya que si le decimos que recupere la SEGURIDAD y no está actualizada podemos
estropearparte de nuestrotrabajocomoadministradordelsistema,poresarazóntodovienesin
seleccionar
Por
defecto.
sistema).
del
(Configuración
1
SISTEMA
Software).
[
de
1 (Información
SOFTWARE
predeterminado).
t
usuario
1
del
PREDETERMIDADO
(Perfil
usuario
[
1
NTUSER.DAT
(Perfil
denuevo).
[ ] SEGURIDAD(Directivas de seguridad)y SAM (Basededatosde
los usuariosdecuentas).
(Realizar
CONTINUAR
También en el caso de habernos equivocado a la hora de configurar la seguridad del sistema haciendo
podemos
prueba
recuperarla
alguna
desde
elreparación.
proceso
de
Solo debemos reparar los archivos de registro que sepamos que están dañados
o desaparecidos, porque
podemos quitar algunas actualizaciones de archivos realizadas por programas que las necesitan para
funcionar,
Un ejemplo: si el sistema se nos estropeo instalandoel driver de una tarjeta que hemos puesto nueva en
el ordenador, solo tendría
que
repararse
el
SISTEMA,
dejando
sin
señalar
todo
lo demás.
Una vez aclarado todo lo que deseamos restaurar nos moveremos con el cursor hasta continuar y le
daremos (ENTRAR). El proceso de reparación se pondrá en marcha. Si se encuentran archivos dañados
intentará restaurarlos desdeel CD-ROM pero antes siempre pregunta:
206
sistema.
0
Si queremos ignorarlo presionar ( ESC ).
o
Si queremos repararlo presionar ( ENTRAR ).
Para reparar el archivo y todos
lo demás no originalespulsamos ( T ) , aunque esta opción suele ser poco
recomendable, como hemos dicho antes sólo debemos restaurar aquellos archivos que nos estén dando
problemas
del desaparecido
hayan
O
que
los discos (disquetera y CD),
Una vez reparado todos los archivo erróneos nos pedirá que retiremos
reiniciemos el sistema y crucemos
los dedos.
Introducción a la arquitectura del sistema
Comprender cómo funcionaWindowsNTes
fundamenta/ para programar y recomendable para
administrarlo.
Vamos
a hacer
un
recorrido por /as profundidades de este sistema operativo.
equipado
versión
1.
Introducción
WindowsNTpresentaunaarquitecturadeltipocliente-servidor.
Los programasdeaplicaciónson
contemplados por el sistema operativo como si fueran clientes a los que hay que servir, y para lo cual
viene
Uno de los objetivos fundamentales de diseño fue el tener un núcleo tan pequeño
como fuera posible, en
elqueestuvieranintegradosmódulosquedieranrespuestaaaquellasllamadasalsistemaque
necesariamentesetuvieranqueejecutarenmodoprivilegiado(tambiénllamadomodokernel,modo
núcleo y modo supervisor).El resto de las llamadas se expulsarían del núcleo hacia otras entidades que
se ejecutarían en modo no privilegiado (modo usuario), y de esta manera el núcleo resultaría una base
compacta, robusta y estable. Por eso
se dice que Windows NT es un sistema operativo basado
en microkernel.
Por tanto en un primer acercamiento a la arquitectura distinguimos un núcleo que se ejecuta en modo
privilegiado,ysedenomina
Executive, yunosmódulosqueseejecutanenmodonoprivilegiado,
llamados
subsistemas
protegidos.
Los programasdeusuario(tambiénllamadosprogramasdeaplicación)interaccionanconcualquier
sistema operativo(s.o.en adelante) a travésde un juego de llamadas al sistema propio
de dicho sistema.
En el mundo Windows en general, las llamadas al sistema se denominan API (Application Programming
Interfaces, interfaces para la programación de aplicaciones). En Windows NT y en Windows 95 se usa
una
AP I
AP
llamada
I
Win32.
2.
Los
subsistemas
protegidos.
Son una serie de procesos servidores que se ejecutan en modo no privilegiado, al igual quelos procesos
usuario,
de pero
que
tienen
algunas
características
propias
que
los hacen
distintos.
Se arrancar
inician
alel
S.O.existen
y
tipos:
dos
integrales
entorno.
de y
Un subsistema integral es aquel servidor que ejecuta una función crítica del S.O. (como por ejemplo el
que gestiona la seguridad). Un subsistema de entorno da soporte a aplicaciones procedentes de
S.O.
distintos, adaptándolas para su ejecución bajo Windows NT. Existen tres de este tipo:
0
Win32,
que
es el principal,
proporciona
y
construidas para Windows NT.
la interfaz
para
aplicaciones
específicamente
0
POSIX,quesoportaaplicacionesUNIX.
0
o s / 2 , que da el entorno a aplicaciones procedentes del S.O.del mismo nombre.
El
subsistema
Es el m& importante, ya que atiende no sólo a las aplicaciones nativas de Windows NT, sino que para
aquellos programas no Win32, reconoce su tipo y los lanza hacia el subsistema correspondiente. En el
caso de que la aplicación sea MS-DOSo Windows de 16 bits (Windows3.1 1 e inferiores),lo que hace es
crear un nuevo subsistema protegido. Así,la aplicación DOS o Win16 se ejecutaría en el contextode un
proceso llamado VDM (Virtual DOS Machine, máquina virtual DOS),
que no es más que un simulador de
unordenadorfuncionandobajoMS-DOS.Lasllamadas
al APIWin16seríancorrespondidasconlas
homónimas en API Win32. Microsoft llama a esto WOW (Windows On Win32). El subsistema soporta
207
una buena parte del API Win32.
Así, se encarga de todo
lo relacionado con la interfaz gráfica con el
usuario(GUI),controlandolasentradasdelusuarioysalidasde
la aplicación. Porejemplo,unbuen
número de funciones de las bibliotecas
USER32 y GD132 son atendidas por Win32, ayudándose del
Executive cuando es necesario. El funcionamiento como servidor
de Win32 lo veremos un poco más
madas
.os de
apartadoel
en
adelante,
El
subsistema
La norma POSIX (Portable Operating System Interface for UNIX)
fue elaborada por IEEE para conseguir
la portabilidad de las aplicaciones entre distintos entornos UNIX. La norma se ha implementado no sólo
en muchas versiones de UNIX, sino también en otros S.O. como Windows NT, VMS, etc. Se trata de un
conjuntode 23normas,identificadascomoIEEE1003.0aIEEE1003.22,
o tambiénPOSIX.0a
POSIX.22, de las cuales el subsistema POSIX soporta la POSIX.l, que define un conjunto de llamadas
al sistema en lenguajeC. El subsistema sirve las llamadas interaccionando conel Executive. Se encarga
también de definir aspectos específicos delS.O. UNIX, como pueden ser las relaciones jerárquicas entre
procesospadresehijos(lascualesnoexisten
enelsubsistemaWin32,porejemplo,yquepor
aparecen
implementadas
consiguiente
nodirectamente
en
el
Executive).
El
subsistema
os/2.
Igualque el subsistemaPOSIXproporcionaunentornoparaaplicaciones
UNIX, estesubsistemada
soporte a las aplicaciones del S.O. OS/2. Proporciona la interfaz gráfica y las llamadas al sistema; las
vidas
son
llamadas
ayuda
Executive.
del
proceso
El
subsistema
El proceso de inicio (Logon Process) recibe las peticiones de conexión por parte de
los usuarios. En
realidad son dos procesos, cada uno encargándose de un tipo distinto de conexión: el proceso de inicio
local, quegestiona la conexióndeusuarioslocalesdirectamenteaunamáquinaWindows
NT; y el
proceso de inicio remoto, el cual gestiona la conexión de usuarios remotos a procesos servidores de
NT.
de
El
subsistema
Estesubsistemainteraccionacon
el procesodeinicioy
el llamado monitordereferenciasde
seguridad (del que trataremos en el Executive), de esta forma se construye el modelo de seguridad en
Windows NT. El subsistema de seguridad interacciona con
el proceso de inicio, atendiendo las peticiones
deacceso
al sistema.Constade
dossubcomponentes:
la autoridad de seguridadlocal
y el
administrador
de
cuentas.
El primero es el corazón del subsistema de seguridad,en general gestiona la política de seguridad local,
así, se encarga de generar los permisos de acceso, de comprobar que el usuario que solicita conexión
tiene acceso al sistema, de verificar todos los accesos sobre los objetos (para lo cual se ayuda del
monitor de referencias a seguridad) y de controlar la política de auditorías, llevando
la cuenta de los
generados
auditoría
por mensajes
de
referencias.
el
demonitor
los usuarios (login,
El administrador de cuentas mantiene una base de datos con las cuentas de todos
claves,identificaciones,etc.).Proporciona
los serviciosdevalidacióndeusuariosrequeridosporel
subcomponente
anterior.
3.
obietos
El
Executiv
Nodebemosconfundir el Executivecon el núcleodeWindowsNT,aunquemuchasvecesseusan
(incorrectamente) como sinónimos. El Executive consta de una serie de componentes software, que se
ejecutan en modoprivilegiado,unode
los cuales es el núcleo.Dichoscomponentessontotalmente
independientes entre sí, y se comunican a través de interfaces bien definidas. Recordemos que en el
diseño se procuró dejar el núcleo tan pequeño como fuera posibley, como veremos, la funcionalidad del
núcleo
es
mínima.
El
de
administrador
Se encarga de crear, destruir y gestionar todoslos objetos del Executive. Tenemos infinidad de objetos:
procesos, subprocesos, archivos, segmentos de memoria compartida, semáforos, mutex, sucesos, etc.
Los subsistemasde entorno (Win32, OS/2 y POSIX) también tienen sus propios objetos. Por ejemplo, un
objetoventana es creado(conayudadeladministrador
de objetos)ygestionadopor
el subsistema
Win32. La razónde no incluir la gestión de ese objeto en el Executive es que una ventana sólo es innata
o OS/2.Portanto, el Executivenose
de las aplicacionesWindows,ynodelasaplicacionesUNIX
de cada S.O. concreto, sino de los objetos
encarga de administrarlos objetos relacionados con el entorno
208
comunes
los
a
tres.
El
Se encarga (en colaboración con el administrador de objetos) de crear, destruir y gestionar los procesos
y subprocesos. Una de sus funciones es la de repartir el tiempo de CPU entre los distintos subprocesos.
Suministra sólo las relacionesmásbásicasentreprocesosysubprocesos,dejando
el restode las
interrelacionesentreellosacadasubsistemaprotegidoconcreto.Porejemplo,en
el entornoPOSlX
existe una relación filial entre los procesos que no existe en Win32, de manera que se constituye una
jerarquía de procesos. Como esto sólo es específico de ese subsistema, el administrador de objetos no
trabajo
y ese
entromete
en
se
subsistema.
manos
del
lo endeja
virtual
El memoria
administrador
de
(Virtual Manager).
Memorv
Windows NT y UNlX implementan un direccionamiento lineal de 32 bits y memoria virtual paginada bajo
demanda. El VMM se encarga de todolo relacionado con la política de gestión dela memoria. Determina
los conjuntos de trabajo de cada proceso, mantiene un conjunto de páginas libres, elige páginas víctima,
sube
baja
y páginas
entre
memoria
la
RAM
archivo
ely de
intercambio
en
disco,
etc.
La procedimiento
facilidad
a llamada de
local Facilitv).
(LPC
Este módulo se encarga derecibiryenviar
las llamadas a procedimiento local entre las aplicaciones
cliente
Y
servidores.
los
subsistemas
entraddsalida
El
de administrador
( I/O
Manager).
Consta de varios subcomponentes: el administrador del sistema de archivos, el servidor de red, el
redirector de
red,
los drivers de dispositivo
del
sistema
el
y
administrador
de
cachés.
Buena parte de su trabajo es la gestión dela comunicación entre los distintos drivers de dispositivo, para
lo cual implementa una interfaz bien definida que permite
el tratamiento de todos los drivers de una
manera homogénea, sin preocuparse del funcionamiento específico de cada uno. Trabaja en conjunción
conotroscomponentesdelExecutive,sobretodoconelVMM.Leproporcionala
E/S síncronay
asíncrona, la E/S a archivos asignados en memoria y las caches de
los archivos. El administrador de
caches no se limita a gestionar unos cuantos buffers de tamaño fijo para cada archivo abierto, sino que
es capaz de estudiar las estadísticas sobre
la carga del sistema y variar dinámicamente esos tamaños
de
acuerdo
con
trabajo.
suparecido
en
la
realiza
algo
VMMEl
carga.
deEl
monitor
Este componente da soporte en modo privilegiado al subsistema de seguridad, con el que interacciona.
Su misión es actuar de alguna manera como supervisor de accesos, ya que comprueba si un proceso
determinado tiene permisosparaaccederaunobjetodeterminado,ymonitorizasusaccionessobre
dicho objeto. De esta manera es capaz de generar los mensajes de auditorías. Soporta las validaciones
a que acceso de
local.
seguridad
el
de
subsistema
inistrador
hardware
El
núcleo
Situado en el corazón de Windows NT, setrata de un micro-kernel que se encarga de las funciones más
básicas de todo el sistema operativo: ejecución de subprocesos, sincronización multiprocesador, manejo
de
El de
abstracción
nivel
de
Es unacapadesoftwareincluidaenelExecutivequesirvedeinterfazentre
los distintosdriversde
dispositivo y el resto del sistema operativo. Con el HAL,
los dispositivos se presentan al S.O. como un
conjunto homogéneo con el cual interacciona a través de un conjunto de funciones bien definidas. Estas
funciones son llamadas tanto desde
el S.O. como desde los propios drivers. Permite a
los drivers de
dispositivo adaptarse a distintas arquitecturas de
E/S sin tener que ser modificados en gran medida.
los detalleshardwarequeconlleva
el multiprocesamientosimétricode
los niveles
Ademásoculta
superiores
del
S.O.
4.
Llamadas
a
procedimientos
locales
Y
remotos.
WindowsNT,
al tenerunaarquitecturacliente-servidor,irnplementaelmecanismodellamadaa
procedimiento remoto (RPC) como medio de comunicación entre procesos clientes y servidores, situados
ambos en máquinas distintas de la misma red. Para clientes y servidores dentro de
la misma máquina, la
RPCtoma la formadellamadaaprocedimiento
local (LPC).Vamosaestudiarendetalleambos
mecanismos
constituyen
pues
aspecto
fundamental
un
diseño
del
NT. de
RPC).Procedimiento
Procedure
Call
(Remote
Remoto
a Llamada
209
(Kernel).
Se puede decir que el sueño de los diseñadores de Windows NT es que algún día se convierta en un
sistemadistribuidopuro,esdecir,quecualquieradesuscomponentespuedaresidirenmáquinas
distintas,siendo el kernel encadamáquina
el coordinadorgeneraldemensajes
entre los distintos
componentes. En la última versión de Windows NT esto no es aún posible. No obstante,
el mecanismo
de RPC permite a un proceso cliente acceder a una función situadaen el espacio virtual de direcciones
de otro proceso servidor situado en otra máquina de una manera totalmente transparente. Vamos a
conjunto.
explicar
en
el
proceso
Supongamos que tenemos un proceso cliente ejecutándose bajo una máquina A, y un proceso servidor
bajo una máquina B. El cliente llama auna función f de una biblioteca determinada.El código de f en su
biblioteca es una versión especial del código real; el código real reside en el espacio de direcciones del
servidor. Esa versión especial dela función f que posee el cliente se denominaproxy. El código proxy lo
Único que hace es recoger los parámetros de la llamada a f, construye con ellos un mensaje, y pasa
dicho mensaje al Executive. El Executive analiza el mensaje, determina que va destinado a la máquina
6, y se lo envía a través del interfaz de transporte.
El Executive de la máquina B recibe el mensaje,
determina a que servidorva dirigido, y llama a un código especial
de dicho servidor, denominadostub, al
cual le pasa el mensaje. El stub desempaqueta el mensaje y llama a la función f con los parámetros
adecuados, ya en el contexto del proceso servidor. Cuandof retorna, devuelve el control al código stub,
queempaquetatodos los parámetrosdesalida (si los hay), forma asíunmensajeyse
lo pasa al
Executive. Ahora se repite el proceso inverso; el Executive de B envía el mensaje al Executive de A, y
este reenvía el mensajeal proxy. El proxy desempaqueta el mensaje y devuelve al cliente
los parámetros
de retorno def. Por tanto, parael cliente todo el mecanismo ha sido transparente. Ha hecho una llamada
a f, y ha obtenido unos resultados; ni siquiera tiene que saber si el código real de f está en su biblioteca
o en
una
máquina
situada
tres
plantas
más
abajo,
esta
es
elegancia
la
de
las
RPC.
edure
(Local
procedimiento
local
a Llamada
Las LPC sepuedenconsiderarunaversióndescafeinada
de lasRPC.Seusancuandounproceso
necesita los servicios de algún subsistema protegido, típicamente Win32. Vamos a intentar descubrir
su
funcionamiento.
El proceso cliente tiene un espacio virtual de
4 Gb. Los 2 Gb inferiores son para su uso (excepto 128 Kb).
Los 2 Gb superiores son para uso del sistema. Vamos a suponer que el cliente realiza una llamada a la
función Createwindow. Dicha función crea un objeto ventana y devuelve un descriptor al mismo. No es
gestionada directamente por el Executive, sino por el subsistema Win32 (con algo de colaboración por
parte del Executive, por supuesto; por ejemplo, para crearel objeto). El subsistema Win32va guardando
en su propio espacio de direcciones una lista con todos
los objetos ventana que le van pidiendo los
procesos. Por consiguiente, los procesosnotienenaccesoalamemoriadondeestán
los objetos;
simplemente obtienen un descriptor para trabajar con ellos. Cuando el cliente llamaCreatewindow,
a
se
salta al código de esa funciónquereside en la biblioteca USER32.DLLasignadaen
el espaciode
direcciones del cliente. Por supuesto, ese no es el código real, sino el proxy. El proxy empaqueta los
parámetros de la llamada, los coloca en una zona de memoria compartida entre el clientey Win32, pone
al cliente a dormir y ejecuta una LPC. La facilidad de llamada a procedimiento local del Executive captura
esa llamada, y en el subsistema Win32 se creaun subproceso que va a atender a la petición del cliente.
Ese subproceso es entonces despertado, y comienza a ejecutarel correspondiente código de stub. Los
códigos de stub de los subsistemas se encuentran en los 2 Gb superiores (los reservados) del espacio
virtual del proceso cliente. Aunque no he encontrado más documentación al respecto, es muy probable
que dichos 2 Gb sean los mismos que se ven desde el espacio virtual de Win32. Sea comosea, el caso
es que el stub correspondiente desempaquetalos parámetros del área de memoria compartida y selos
pasa a la función Createwindow situada en el espacio de Win32. Ese sí es el código real de la función.
Cuando la función retorna, el stub continúa, coloca el descriptor a la ventana en la memoria compartida,
y devuelve el control de la LPC al Executive. El subproceso del Win32 es puesto a dormir. El Executive
despierta al subproceso cliente, que estaba ejecutando código proxy. El resto de ese códigolo que hace
es simplemente tomarel descriptor y devolverlo como resultado de la función
Createwindow.
NT
Comandos
NET
NT 5.0
210
DIFERENCIAS ENTRE MANEJO DE PROCESOS
ENTRE WINDOWS NT Y UNIX
Aunque el inventor del administrador de procesos sea el mismo, existen diferencias sustanciales en
el
diseño de UNlX y NT. Una de las más importantes es que mientras NT debe de hacer uso de un mayor
uso de recursos debido a que no tansolo hace uso de un solo tipo de procesos nativos como sonlo de
tipo Posix que son nativosde UNIX, sino que también deben cargarse de ejecutar procesos y programas
de Windows (bajo 32 bits y 16 bits), aplicaciones de MS-DOS (de
8 16 bits), aplicaciones tipo OS/2,
aplicaciones MASHINTOS y aplicaciones de tipo Posix, la
a vez de que en el sistema operativo como tal
su metodología se basa en hilos y objetos y UNIX. El sistema operativo UNlX
al inicio de su creación
utilizo la metodología de programaciónC y ensamblador en algunos aspectos, mientras que WINDOWS
NT fue creado desde sus inicios en programación orientada a objetos y su código en ensamblador es
muy reducido.
Lo anterior es muy importante ya que aunque UNlX sea aparentemente más estable para poder correr
de vista muy diferente que WINDOWS NT.
programas concurrentes ala vez lo hace desde un punto
lo manuales técnicos y de publicidad de
Tan solo por mencionar un aspecto, aunque poco claro por
Microsoft (vease ....) tan sólo el GUI para ser cargado en memoria requiere de 32 megas en memoria y
16 megas adicionales según la aplicación por cada ventana que se abra, pero gracias a su excelente
administrador de memoria virtual logra obtener un SWAPP que es excelente. (vease las comparativas
del monitorde procesos entre WINDOWSNT y UNlX RED HAT).
UNlX hace uso deunaexcelenteseparacióndeprocesosservidoresyprocesosusuariospudiendo
establecer con ello una seguridad muy alta para poder manejar procesos de tipo servidor y usuario. En
UNlX los procesos servidores son aquellos que tienen acceso directolos
a recursos del servidor.
en los procesos de
Esto es muy importante ya que debido alo anterior las instrucciones que se manejan
UNlX en su formadekernelaccedendirectamenteainstruccionesenensambladorparahaceruso
directode los dispositivos de hardwarea los quedebaacceder.
Ya que UNlX manejatambién el
multiproceso. Los procesos son separados en dos tipos: procesos de tipo usuario y procesos de tipo
servidor. En WINDOWS NT también se hace algo similar, pero en este caso se hace uso de un tercer
elemento que es también muy importante llamado HILL, el cual es una estructura de datos que se crea
en adición para poder diferenciar entre
los tipos de procesos que se estén ejecutando.
Mientras que UNlX utilizael modelo antiguode jerarquización delos procesos esto seve cuando se crea
un proceso padre y un proceso hijo, por ejemplo cuando
un usuario hace una petición deun programa se
crea un proceso padre que asu vez es hijo del kernel que es el padrede todos los procesos; este nuevo
procesotienecaracterísticascomo los sonunidentificadorpropioyotrasestructuras
deusuarioasí
como un ambiente de memoria que le es propio a ese proceso, por ello cuando el usuario hace
una
peticiónaesteprocesocreadoparaobtenermásrecursos
o paraejecutarotratarea,
secrearáun
proceso hijo quetendrálasmismascaracterísticasyambientedelprocesopadre.Enesteaspecto
WINDOWS NT marca una diferencia y ventaja muy marcada que al principio, pero que a la larga si se
continúan creando procesos con esta metodología la administración de esta jerarquía de procesos es
confusa: esto es, debido a que en
un proceso de tipo NT no se heredan todas las características del
proceso padre al proceso hijo, así como también no se guardan todas las variables del ambiente de los
procesos gracias a I a metodología orientada a objetos; sin embargo,si vemos el árbol de procesos NT
con el de UNlX el de NT va a tener más número de ramificaciones y de hijas; debido a que se hace una
diferenciación mayor enlos hilos de ejecución de los procesos padre e hijo.
21 1
Los procesos padre en UNlX comose menciono anteriormente sondel tipo servidores o usuario, esto es
debido a la jerarquización que se usa y a las prioridades que se manejan, esto es muy importante para
evitar los abrazos mortales quesepuedandaren
los procesos al tratar de hacer
uso de un mismo
recurso al mismo tiempo, así como también existen otras estructuras de datos que pueden hacer uso de
una administración en el procesador o en la memoria con características como tiempos de espera para
cada proceso, prioridad enlos procesos, recompensade planeación de procesos, bloqueode procesos,;
pero no puede ejecutar procesos preemtivos, debido a que
la respuesta a cada unode estos eventos es
dependiente del tiempo de actividad del sistema
o quantum de tiempo.
Otra de las ventajasen UNlX además de la administración de tipo linealen los procesos ya que si no se
mata al proceso padre de uno de estos procesos, no se podrá eliminar por completo esta tarea del
sistema.UNlXllevaunprocesocasidirectoparapodermanejar
los registros de la memoriay los
dispositivos y gracias asu kernel una mayor velocidad antela petición de interrupciones a Hardware.Ya
que como se verá en la sección de la memoria el kernel encapsula una importante cantidad de memoria
de interrupciones deotros procesos.
para sí mismo y a través de ello puede responder a las peticiones
Es debido a esto que el tiempo en que se ejecuta un programa en UNlX es menor
al de NT; debido a que
en NT por cada proceso padre se creaun hilo de ejecución que puede ser diferenteal hilo de ejecución
del proceso hijo y este a su vez debe de estar checando a cada momento a que entorno pertenece ya
sea WINDOWS, MS-DOS, UNIX, etc. Además de que la seguridad en UNlX es manejada a trabes de
una administración menos centralizada (por cada sección de usuario se creará un Único proceso padre
con susvariablesdeentornoyambientequesonigualesy
de forma más linealque en NT).Si
comparamos como se muestran en las figuras siguientes la estructura de datos que se realiza en la
creación de procesos de NT contrade
la UNlX el número de elementos es mayor.
La administración de procesos en WINDOWS
NT se basa principalmenteen la estructura de base delos
hilos ya que como se verá más adelante la administración de los hilos de ejecución es vital (para mayor
referencia veaseel tema Manejo de procesos en NT).
Otro de los aspectos importanteses que WINDOWS NT en cada sección de usuario debe
de administrar
muchas veces el poder guardar todo un ambiente en cada cambio de contexto dela multitarea. UNlX no
hace estos cambios, es responsabilidad de cada uno de los usuarios el poder guardar y no permitir que
se degeneren sus ambientes de operación, tal comolo puede hacer en un ambiente gráfico.
de
Comoseveráen
la siguienteilustración los recursosquellegaautilizarWordenunservidor
aplicaciones tipo UNlX y en un servidor de aplicación de tipo NT, es menor, también es notable que la
estabilidad del sistema operativo UNlX es mayor que la estabilidad de un servidor WINDOWS NT en
aplicaciones de tipo . Esto se observo al tratar de crear un gif animado conel mismo número de frames y
el tamaño de los mismos usándose en los dos sistemas operativos; el tiempo de espera para poder
salvar, editar y crear la animación fué mayor en WINDOWS NT (sin mencionar que en WINDOWS
98
dejo de funciaoar definitivamente con la misma aplicación y carga de trabajo). En la siguiente tabla se
resume la actividad antes mencionadaasí como las cantidadesen tiempo y en megabits usados en este
proceso.
212
Lo anterior se puede explicar gracias ala administración de procesos que existe entre uno otro
y sistema
, mientras que WINDOWS NT debe hacer uso
de una mayor cantidad de estructura de datos, tales como
son: hilos deejecución,identificadoresdeámbito,controladoresdeseguridad,identificadoresde
recursos y otros más a UNlX le es inclusive “toda esta burocracia” y
lo hace de forma más sencilla y
lineal.
) Cada hilo de ejecución debe manejar diferentes
(vease las comparativas de UNlX y WINDOWS NT
tipos de eventos y estarse sincronizando entre uno y otro hilo aunque sean diferentes para poder hacer
usodelkernel
, aunqueestaasociaciónteóricamenteestá
prevista alpoderencapsularacada
subsistema protegido.
Por ello la gran ventaja de WINDOWS NT al poder manejar múltiples ambientes en multitarea; a veces
es su talón de Aquiles, ya que ante el exceso de subsistemas WINDOWS
32 este puede caer.
Sinembargo,laadministraciónporpartedelsuperusuarioenUNlXyenWindowsNTesabismal.
Debido al ambiente gráfico que existe en NT. No obstante se puederastrear a través de instrucciones de
UNlX la jerarquía de un proceso a lo largo de toda su descendencia y ascendencia. Por el número de
identificador de proceso; sin embargo, si uno de estos procesos queda colgado será muy difícil el poder
eliminar al proceso y a todos sus descendientes o ascendientes para que ya no puedan seguir haciendo
uso del sistema. Windows NT solamente puede identificar en su monitor de procesos a
los procesos
padre, pudiendo con ello eliminar a toda su descendencia en forma más práctica.
Cuando se probaron emular los dos ambientes en forma cruzada (esto es ejecutar aplicaciones nativas
de Windows un UNlX y viceversa) se notó que UNlX está muy por debajo; por no decir en el suelo, que
Windows NT; el emulador que se utilizo para probar las aplicaciones de Windows NT en UNlX se llama
WINEynopudocorrertodas
las aplicaciones,asícomotambiéndeberíaespecificarse
el tipode
aplicación, la cantidad de memoria,la ruta y otros parametros.
Mientras que Windows NT corre en forma automática y casi transparente a través de los X SERVER y
sus componentes cualquier tipo de programa UNlX ya sea gráfico o de tipo texto, ofreciendo con ello el
poder usar una PC de escritorio como una estación de trabajo de tipo UNIX.
Lo anteriorseexplicaaque
existe comercialmentemayorrespaldoyapoyoparaaplicacionesde
Windows NT que en el mundo UNIX. En otros aspectos no se pudo comprobar
la corrida de aplicaciones
y sus procesos de otros sistemas operativos en ambas plataformas debido
la falta
a
de estos.
A continuación se muestrael árbol de procesos de la aplicación Word corrida en ambas plataformas.
Como conclusión si queremos utilizar a Windows NT como un servidor de aplicaciones debemos de
tomar en cuenta la cantidad de recursos en procesos que se requieren al tener que usarse cada vez que
se corre una nueva aplicación aunque debemos admitir que el administrador de procesos es más robusto
ydesarrolladoenWindowsNTqueenUNIX.Sinembargo,debidoalacantidaddeambientesque
maneja su confiabilidad disminuye considerablemente.
213
DIFERENCIAS ENTRE EL MANEJO DE MEMORIA
DE WINDOWS NT Y UNIX
El manejo de la memoria es un aspecto muy importante para la confiabilidad de los sistemas operativo,
esto es lo que marca segundos o milésimas de segundo es entre el poder hacer un cambio de contexto
en la multitarea de los sistemas operativos, aspecto que es de vidao muerte ya que de esto depende el
poder asegurar queuna aplicación pueda seguir corriendo de manera natural.
La diferencia radical que existe entre la administración de memoria y en UNlX y en Windows NT es la
forma en como se traducen las direcciones de memoria virtual a memoria física ya que en Windows NT
este proceso se lleva cabo en el modelo segmentado de la memoria haciéndose de una manera lineal
la forma en la cual se hace referencia a unaregión de la memoria ya sea virtual o fisica, sin embargo; la
traducción de la memoria en UNlX se hace en el modelo de memoria virtual y no segmenteda sino a
través de direccionamiento basado en palabras. No obstante
lo anterior los dos utilizan la técnica de
paginación para poder soportar las operaciones de Swap
al correr diferentes aplicaciones.
Las técnicas son iguales entreuno y otro sistema pero el tamañode página y su traducciónes diferente;
mientras que en Windows NT el tamaño de pagina es de 64 kilo bites aunque este puede variar yel de
UNlX esde alrededor de 138 kilo bites.
Windows NT debe de poder diferenciar entre ambientes heterogéneos para poder manejar y administrar
la paginación, el mapeo y traducción de las páginas se hace a través de los identificadores de objeto de
cadaproceso,porello
esmuyimportanteque
el administradordeprocesosy
el de memoria se
comuniquen constantemente a través delos hilos de ejecución, aquí entra otra variable que no se toma
en cuenta en UNlX tanto como en NT, tal como lo es un hand1 para poder identificar a cada objeto y lo
ejecución yo proceso que se este ejecutando y que requiera memoria
.
A partede los implementosdeseguridadnormalesde
los otrossistemasoperativosWindowsNT
implementaunaproteccióndememoriabasadaenobjetosytambiénunmonitor
de referencia que
comprueba si un proceso tiene acceso permitido a un objeto.
El mapeo y traducción de las direcciones virtuales de memoria en UNlX son más complicados que en
Windows NT debido a que los procesos son monitoreados a través de un quantum de tiempo, lo que
divide a los recursos utilizados como recursos que están muertos, dormidos, en ejecución, o en espera
de alguna petición; en Windows NT lo anterior es importante, pero no estan complicado gracias a los
hadle que se utilizan para la administración dela memoria.
Otra diferencia también es en el uso de la segmentación de páginas, ya que en UNlX los registros del
segmento de datosy de textos es más accesible queen Windows NT.
UNlX tiene una seria desventaja al tratar
de ligar almacenamientos secundarios de archivos; esto es
obvio debido a que el suap realiza
el 90% de sus operacionesen un almacenamiento secundario.
En Windows NT es más transparente y fácilel montar almacenamiento secundarios que en UNIX, debido
a su sistema de archivos; por lo que la liga entre un almacenamiento secundario que sea remoto es más
seguro que enUNlX (vease “sistema de archivosde Windows NT contra sistema de archivos
de UNIX”).
En UNlX aunque queda residente el montaje de un sistema de archivos remoto siempre los demonios
son los demonios o procesos
residentes
en memoria
que
hacen
referencia
al montaje
de
almacenamientos secundarios deben de estar siempre inspeccionándose que estén arriba
o cargados
para poder hacer el swap no teniéndose un buffer de almacenamiento intermedio tan eficaz como el de
Windows NT encasodequeocurraunadesconexión
o fallaen el almacenamientosecundario.La
214
traducción virtual de la memoria a la traducción física es más fácil en un sistema de tipo UNlX que en
Windows NT ya que debido a que en Windows NT
la memoria esta segmentada se debe realizar una
operación extra que es la de calcular el desplazamiento de memoria virtual a memoria física y en UNlX
no se realiza esta operación más que el de traspasar y calcular el tamaño de páginas a cada uno delos
clusters en el sistema de archivos.
Una ventaja muy grande en el sistema de archivos y de memoria de 32 bits es muy importante ya que
se puede direccionar virtualmente la memoria a 64 gyga bytes los cuales en UNlX son reservados para
el kernel y el sistema operativo de 0.5 a 2 mega bytes para el kernel y puede crecer hasta
256 mega
bytes y lo demás es utilizado para otras aplicaciones, protegiendoal kernel de otras operaciones válidas,
evitando con ello que quede colgado
el sistema.
Sin embargo; Windows NT deja de los 64 gyga bytes deja 2 giga bytes para el sistema operativo y los
otras 2 gyga bytes para uso de otras aplicaciones ya sea de Windowso de otros sistemas operativos.
y su uso pareciera más indiscriminado que en
En conclusión el manejo de memoria en Windows NT
UNIX, no obstanteel uso de la memoria en Windows NT es más optimizado y jerarquizado que en UNIX;
debido a que los dos sistemas operativos fueron creados en diferentes plataformas( ClSC Y RISC) en la
paginación y su traducción se hacen de forma muy diferente aunque
la técnica en la paginación es la
misma.
215
DIFERENCIASENTRESISTEMA
NTFS Y HPFS
DE ARCHIVOS
High-Performance File System (HPFS)
HPFS es el mismo sistema de archivos usado
en OS/2, NT no le provee mejoras. Típicamentees usado
durante la
migración de OS/2 hacia NT.
Convenciones de Nombres en HPFS
. Soporta nombres largos de hasta 254 caracteres con multiples extensiones.
. Los nombres preservan las mayúsculas y minúsculas, pero no hace diferenciación.
. Los nombres pueden contener cualquier caracter (incluyendo espacios) excepto:
?"/ \ < >* I
Consideraciones del Sistemade Archivos HPFS
. Los nombres largos no son visibles
en las aplicaciones Windows 16ni DOS ejecutándose enNT,
porque no
se tiene soporte a nombres cortos.
Las particiones HPFS son normalmente usados para migrarOS/2
de hacia NT.
. HPFS no soporta adecuadamente discos muy grandes. Hay una degradación del rendimiento a partir
de los
400 MG.
. HPFS consume aproximadamente 2MG parael sistema de archivos.
. Una partición HPFS no puede ser protegida con
la seguridad NT.
La siguiente tabla describe algunas caracteristicas básicasHPFS:
de
Longitud del Nombre del Archivo y del Directorio 254
Tamaño del archivo 4GB (232 bytes)
Tamaño de la partición 4TB teóricamente (241 bytes),
7.8 GB actual (debido a la geometria
de los discos)
Atributos Solo lectura, ARchivo, Sistema, Oculto y *extendidos
Sistema de directorios Arbol Binario
Accesible a través de OS/2 y Windows NT
*permite atributos adicionales representados como textos y pueden ser usados de manera arbitraria por
las
aplicaciones, por ejemplo iconos para
el archivo o el nombre de la aplicación asociada.
New Technology File System (NTFS)
NTFS esel sistema de archivos más usados en NT por varias razones, principalmente la seguridad. Sin
embargo,
puede haber casos en donde es necesario usar otros sistemas de archivos como por compatibilidad con
otros sistemas
en una NT Workstation con arranque dual.
Otra ventajade NTFS es el soporte a particiones de hasta
16 hexabytes, muy superior a otros sistemas
de archivos.
Sin embargoel tamaño mínimpode una partición es de 5MB.
Cybercursos.net
Página 54
Propósitos de Diseño de NTFS
. Proveer una mejor confiabilidad (suficiente para servidores de archivos y sistemas
de misión crítica).
. NTFS es un sistema de archivos recuperables porque mantiene
un registro de las transacciones
efectuadas
en el sistema de archivos. Esta información puede ser usada para areintentar
o deshacer una operación
fallida debido a algún error, pérdidas
de corriente, etc.
. Además NTFS soporta Hot Fixing. Hot fixing es una técnica parala resolución de problemas.Por
ejemplo,
si un error ocurre por algún sector dañado,
el sitema de archivos mueve
la información aun sector
diferente
216
y marca el sector como defectuoso, sin que
la aplicación se de cuenta.
. Soporta el modelo de seguridad deNT, permite configurar permisos y registro de auditoría sobre
archivos y
directorios.
. Soporta los requerimientos de POSIX: distingue nombres con mayúsculas y minúsculas, registra
la
ÚHima
hard links (dos nombres de archivos
en diferentes directorios,
hora de acceso al sistema y soporta
apuntan a
la misma información).
Convenciones de Nombres en NTFS
. Los nombres de archivos pueden ser
de hasta 255 carácteres de longitud, incluyedo varias
extensiones.
. Se preservan las mayúsculas y minúsculas aunque NTFS
no hace distinción.
. Los nombres pueden contener cualquier caracter (incluyendo espacios)excepto:
?"/ \ < > * I :
Consideraciones del Sistema de Archivos NTFS
. La recuperación está diseñadaen NTFS para quelos usuarios no necesiten ejecutar utilerías para la
recuperación de partición NTFS.
. NTFS provee seguridaden archivos y directorios, pero no encripción de archivos.
. No hay formade recuperar un archivo borrado.
. NTFS consume más recursos que FAT
o HTPS.
. El tamaño mínimo recomendado de las particiones es de
50MG.
. No es posible formatear discos flexibles con NTFS por el consumo de recursos.
. La fragmentacion es enormemente reducida
en particiones NTFS.NTFS siempre trata de localizar un
bloque contiguo de espacio
en disco lo suficientemente grande para almacenar
el archivo completo. Una
vez almacenado en disco. Para defragmentar
el archivo, se recomienda copiarlo a otro disco y de al
ahí
disco original.AI copiarse al archivo original, NTFS iantentará localizar un bloque contiguo de espacio en
disco.
La siguiente tabla describe algunas características básicas de NTFS.
Longitud del Nombre del Archivo y del Directorio 255
Tamaño del archivo16 EB (264 bytes)
Tamaño de la partición 16 EB teóricamente (264 bytes),
Atributos Solo lectura, Archivo, Sistema, Oculto y *extendidos
Sistema de Directorios Arbol Binario
Accesible a travésde Windows NT
217
DIFERENCIAS ENTRE WINDOWS NT Y UNIX
COMO SERVIDORES DE MAIL Y WEB
Realmente aunque aparentementebla instalación de un servidor mail o de web en NT es mas sencilla y
rapida que en Unix a la larga, es mas efciente, "facil de administrar" y versátil un servidor Unix que NT
esto es debido a que por sus habilidades administrativas, como son las utlizacion
de quotas en Unix, los
scripts shell de usuarios y otras aplicaciones. Por ejemplo el Apache que es
el servidor WEB de linux
viene
Por ejemplo al dar de alta un usuario en un ambiente Unix es mas sencillo el configurar grupos, quotas,
shell, home directory y otras cosas. Mientras que NT se tiene que bajar un programa adicional para
manejar quotas de disco, otro mas para configurar scripts etc.
Simplemente con un shell script podemos lanzar programas, añadir seguridad, configurar quotas etc, por
Tan solo vea el siguiente script de
ende El servidor Web y de Email es mas poderoso en Unix que en NT.
NT comparado conun shell scriptde Unix
¿Porqué invertir en un sistema operativo que requiere entrenamiento y re-entrenamiento muy caro con
cada nueva versión NT? Los administradores UNIX/Linux son muchosy generalmente m& capacitados
técnicamente quesushomólogos
NT (muchosadministradoresUNIXtienenconocimientospara
codificar/programar, raramente encontradas en la nueva generación de "administradores NT"). 'Porqué
malgastar cientos de dólares paraMS Exchange Server que, en algunas compañías, parece que sólo es
capaz de manejar el correo de algunos cientos de empleados cuando puede utilizar el servidor
de correo
"Sendmail" que acompaña a Linux, un programa testado y probado capaz
desoportardemandasde
miles de empleados?
Microsoft's IIS es una de las pocas cosas que acompañan actualmente a Windows NT. No
posee ninguna cualidad especial o única que no se encuentre en otros programas servidores
Web. No destaca ni en velocidad, popularidad ni en el número de conexiones concurrentes que
puede soportar. Actualmente está siendo utilizado por: Compaq, Nasdaq, The National Football
League, Exxon, y Tesco. Dadoel hecho que Microsoft debela mayoría de su éxito al hardware
de bajo coste tipo PC, esto es, máquinas basadas en Intel usted podría pensar que su
gran
aliado debería utilizar IIS. Bien, ipues se equivoca de nuevo! www.intel.com utiliza Netscape
FastTrack Server.
218
CONCLUSIONES
Por lo anterior podemos resumir todolo antes mencionado en:
COMPARACIóN DE WINDOWS NT Y UNIX
Funcionalidad
El sistema operativo UNlX puede hacer todo
lo que hace Windows NT y más:
multi usuario, pero esto puede provocar
-A veces se considera a Windows NT como un sistema operativo
confusión. Un Servidor NTvalida a un usuario autorizado, y una vez que
el usuario está conectado ala
red NT, lo Único que puede hacer es acceder archivos e impresoras. Un usuario de sólo
NT puede correr
aplicaciones especiales tipo cliente/servidor.
-El sistema UNlX esmulti usuarios y los usuarios en UNlX pueden correr cualquier aplicación en el
servidor.
-El correo electrónico se ha convertido en una herramienta indispensable de comunicación.
-En Windows NT setiene que adquirir un paquete de software adicional para configurar un servidor de
correo electrónico. Muchas compañías usanMicrosoft Exchange Server(licencia para 25 usuarios $
3,495 USD, 50 usuarios $ 4,859 USD).
Sendmail (gratis).
-El sistema operativo Unix viene con el programa
Seguridad (password y permisos de archivos) y cuotas:
-Windows NT utiliza NTFS para seguridad de archivos
(a veces no lo usan) y aún carece de cuotas, para
limitar el uso de disco a usuarios
o grupos de usuarios.
-Unix contempla seguridad y cuotas.
Facilidad de configuración y capacidad de configurar
al servidor sin deshabilitar el sistema.
-Cualquier cambio ala configuración de NT requiere apagar el sistema y reinicializarlo (cambio de IP,
gateway, modem, etc.).
-En UNlX se pueden activar
o desactivar drivers o dispositivos sin necesidad de reiniciar el sistema.
Fiabilidad
-Actualmente quizás la fiabilidad es preferible a la rapidez. Aunque el rendimiento depende enormemente
de la plataforma hardware, el sistema operativo influye más en la fiabilidad.
-Se dice que NT es un sistema operativo
estable, pero esta afirmaciónno es muy precisa. Es cierto que
NT es una gran mejora comparado con Windows
3.1 o Windows 95, pero dista mucho de alcanzar la
estabilidad que ofrecen aúnlos sistemas operativos UNlXfreeware.
-Pantalla Azul de la Muede. La pantalla que muestra unos números hexadecimales sobre un fondo azul.
la única salida es reinicializar el sistema apagándolo.
-El equivalente UNlX a la "Pantalla Azul de la Muerte" podría ser el denominado "kernel panic".
Obviamente existe,. Aunquelos servidores UNlX fallan en ocasiones, son sucesos extremadamente
raros. Si un servidor UNlX cae, la mayoría de
las veces es debido a un fallo en el hardware de algún tipo.
Cualquier software que provoque problemas en un entorno UNlX generalmente se da a conocer en un
período de tiempo, a menudo en la forma de una bajada gradual del rendimiento del sistema, dando al
administrador un amplio margen de tiempo para encontrar la fuente del problema, corregirlo, y
219
paradarrancar el proceso (raramente la máquina)
que causó el problema. En general,se ha de parar a
un servidor UNlXsólo en las siguientes situaciones:
0
Debido a un fallo del hardware, por ejemplo, un fallo de un disco duro;
0
La necesidad deunaactualizacióndelhardware;
Una larga caída del suministro eléctrico ylos sistemas alternativos se han agotado;
0
El núcleo (kernel) ha de ser actualizado.
-NT es propenso alos virus para plataformas INTEL. Los sistemas operativos de
Microsoft siguen
leyendo del MBR delos discos duros. NT puede ser afectado por virus diseñados hace 10 años para
MS-DOS.
-El equivalente ala Pantalla Azul de la Muerteen UNlX es elpdnico de kernel. Las caídas de sistema en
UNlX son eventos raros, casi siempre se deben a fallos de hardware. En general un servidor UNlX se
apaga debido dichos fallos, actualizaciones
de hardware, apagones extensos, actualizaciones delkernel.
Administración del Sistema
-La afirmación de que NT
es más fácilde administrar debido a su GUI (Graphical User Interface)
le faltan
argumentos. La ventaja de cualquier GUI sobre CLI (Command Line Interface)
es de cuestionable.
-NT viene con un GUI.
No se puede trabajar a nivel de CLI.
-UNIX puede trabajaren CLI. Tambien existe una variedad de GUI para cada sistema (OpenLook, X1 1,
etc.)
Rendimiento
-La potencia de procesamiento depende principalmente del hardware.
Decir que UNlX tiene mejor rendimiento que NT sería inapropiado, si comparamos sistemas de distinta
arquitectura. En una misma plataforma,no existen formas para comparar Linux
o FreeBSD contra NT.---Sin embargo hay consenso en que Linux
o FreeBSD tienen mejor rendimiento que NT.
Considerando quelos kernels de UNlX se confeccionan a las necesidades, y a veces
sólo contienen lo
necesario para el sistema, Linux
o FreeBSD puden funcionarmás eficientemente que NT. Cualquier
sistema operativo que requierade menos recursos vencerá a un sistema operativo inflado como sería
NT.
-UNIX no requiere de una interface gráfica como
lo requiere NT. Es bien sabido que las gráficas
requieren de mayor espacio
de disco y memoria. Lo mismo sucede para archivos de sonidos, que
parecen ser muy importantes para
el sistema operativo deMicrosoft.
Un ejemplo de rendimiento de un servidor UNlX acopladoelcon
servidor WWW contra NT, son los
siguientes registros de rendimiento:
-NT: 1,878 operacioneslsegundo. Hewlett-Packard NetServer LXrPro 61200 de 4-CPU corriendo
Microsoft IIS.
-UNIX: 7,214 operacioneslsegundo. Silicon Graphics Origin2000 8-CPU corriendo Netscape Web
Server.
Linux vs. Windows NT Sewer 4.0
-Debido a quela plataforma que NT utiliza más es INTEL, escogemos
al sistema Linux para realizar una
comparación.
220
."
Sistema Operativo
Gratis o $49.95 US (CD-
Número de sistemas de archivo
posibles
22 1
1O-Usuarios $1 129 US
Enterprise Ed. 25-Usuarios
Conclusión
El sistema operativo UNlX seríala elección para sitios con presupuesto limitado
o en corporaciones
enormes que demanden servidores de varios procesadores y que requieran de sistemas operativos
escalables.
Una compañía pequeñao mediana, que tenga que correr procesos en tareas no críticas, que esté
dispuesto a contratar administradores adicionales para operar
el servicio de correo Exchangeo el
Servidor de Información de Internet de Microsoft, que tenga presupuesto substancial para
licencias de
Microsoft "por servidor"o "por usuario", entonces NT seríala elección.
El sistema Linux o FreeBSD pueden fácilmente rebasar el rendimiento y funcionalidad de una solución
NT, realizarlo sobre una plataforma INTEL relativamente económica y cuyo costo sería
$0.00, un precio
que Bill Gates difícilmente puede mejorar.
El sistema UNlX gana en definitiva.
Ofrece una variedad de proveedores (no hay monopolio)
Es escalable
Hace uso delos recursos más eficientemente
Permite la administración remota del sistema
Ofrece la capacidad de realizar cómputo remotamente
Posee capacidad de multiusuarios
Existe una gran variedad de software
Los estandares son independientes delos proveedores (POSIX)
los usuarios
Tiene control sobre el espacio de disco de
No le afectan los virus de hace1O años diseñados para MS-DOS.
En síntesis:
Windows NT sólo brinda restricciones. Sólo corre en plataformas INTELo Alpha, no tiene CLI, unsólo
GUI, sólo hay agentes de transferencia de correo comerciales, etc.
Windows NT esestático, es decir no es posible
construir un kernel apropiado.
Microsoft se está convirtiendo en un monopolio, no en un standard.
UNlX ofrece opciones. Corre en cualquier tipo de plataforma, trabaja con oCLI
GUI, opciones de
software comercial yfreeware, diversos proveedores a escoger.
UNlX es dinámico, se puede configurar unkernel apropiado a nuestras necesidades.
Windows NT vs. otros U N E
I
Entre los aspectos que se pueden utilizar para evaluar
el rendimiento delos UNlX comerciales y el
Windows NT, se consideran:
Soporte 64-bits.
Soporte de protocolos TCP/IP de red
Internetllntranet.
Fiabilidad y escalabilidad.
Administración del sistema.
lnteroperabilidad con PC's.
¿Que Sistema Operativousan algunas compañías?
UNlX
Amazon.com Digital UNlX Alpha Server2000.
Boeing. HP-UX, IRIX, Solaris y algo de NT.
Dallas Cowbovs. IRlX y UNlX System
V Rel. 4.0.
Dow Corning. Solaris.
los
Hotmail (Pertenece a Microsoft). Solaris, FreeBSD. Intentaron emigrar a NT, pero para ofrecer
servicios a más de10,000,000 de usuarios, fué demasiado para NT.
Servicio Postal de Estados Unidos. Cuentan con
900 sistemas Linux alo largo del E.U. para determinar
automáticamente el destino dela correspondencia. Cada sistema consiste de5 Pentium Pro dual
200MHz o un sistema dual sencillo.
Yahoo!. FreeBSD.
GLOSARIO
Backoffice.- Suite de aplicaciones creado por Microsoft
BIOS.- (Basic Input OutPut) residente en memoria desolo lectura (Read Only Memory-ROM) podría decirse que es
la unidad fundamental de entraday salida de una computadora entre sus misiones estánla de realizar un test de todo
el equipo en cada proceso de arranque donde se examinan los elementos conectados y en que estado se encuentran
como Disco duro, flopys etc., otra de sus misiones es la de hacer una interfaz entre el software de los niveles
superiores y el hardware a través de una serie de rutinas, cada una de ellas con una función especifica.
BUS.- Cable de 62 líneas, mediante el cual pueden cargarse en la memoria datos de la CPU y desde allí
transportarse a la CPU . Por así decirlo es la autopista de los datos dentro de la PC . Este se controla y maneja desde
la CPU.
CISC
Cliente Servidor Sistema de computadoras o aplicaciones en las cuales se tieneun programa o computadora que
presta servicios (archivos, recursos, funciones, datos etc.) a otro programa o a una computadora que requierede un
cierto servicios o recurso de otra
. En un programa cliente servidor una aplicación solicita información o servicios de otro programa llamado Servidor
siendo este último el que da esos servicios . En una red de computadoras hacemos mención de un ambiente en la
cual, una computadora hace una petición por ejemplo de compartir una archivo, subdirectorio, impresora o hasta una
aplicación completa. FAT.-(File Allocation Table ) Tabla de localización y/oasignación de archivos ,es el sistema
223
de archivos m á s sencillo ,ejemplo téngase un archivo detipo FAT consta en que sectores del disco duro (o del
disquete) se encuentra cada parte de un archivo. Para ello
FAT , divide el disco duro enbloques . El número de
bloques es limitado y todos los bloques de un disco duro deben tener siempre el mismo tamaño
. En discos duros
grandes con solo una partición FAT se ofrece mucho espacio. Además los bloquesFAT grandes provocan errores
de disco duro con facilidad, ya que utilizan una tabla de asignación de archivos encual
la se indica el número en el
cual inicia y termina un archivo
así como una listade listas que contiene la secuencia de continuación
de un archivo
provocando que cuando unarchvo no es guardado correctamente se pierda su ubicación fisica
(cadenas perdidas) o
bien que en unsolo bloque de HDo de disco sea utilizadopor doso m á s archivos (vínculoscruzados), también en
esta tabla se indicael número de sectoreslibres y defectuosos como segundo elemento
el directorio donde aparecen
informaciones referentes a los archivos existentes
con sus nombres, direccionesy una serie de datos
complementarios. A la vez los sistemas de archivos
FAT hasta ahora imponían al usuario la limitante
de 8+3
caracteres parael nombre de archivos y directorios.
LAN-MANAGER .- Producto de Microsoft que permitía conectarvanas
a
computadoras en una plataforma
Windows 3.1 o 3.1 1 o hasta en MS-DOS con redes propietariasde Microsoft sistemasUNIX ,OS/2 etc.
HANDLE.- Índice de una tabla de objeto especifica de un proceso . Se utiliza para hacer referencia a un
objeto
abierto e incorpora un conjuntode derechos de acceso garantizadosal proceso que tiene el handle . También
contienen una designación de herencia que determinasi el handle es heredado por los procesoshiio . Los programas
utilizan los handles parareferirse a losobjetos cuando llaman aservicios de objeto .
Hardware.- Parte fisica de una computadora, esdecir es la parte electrónica, o la cual lleva a cabo las operaciones
electrónicas entre los diferentesprocesos que se llevan acabo,el hardware incluye desde la fhentede poder dela
computadora hasta un módem,no dejandode incluir teclado yotros dispositivos de entraday salida de la
computadora.
HILOS.- Entidadejecutable que pertenece a un proceso
(y solo a uno).Comprende un contador de programa,
una
pila de modo usuario, una pila de modo kernel y un conjunto de valores de registro.
Todos los hilos de un proceso
tiene igual acceso al espacio de direcciones de un proceso, los
a handles de objeto, y a otrosrecursos. LOS hilos se
implementan como objetos.
1PWSPX.- Intercambio de paqueteso mensajes entre rededintercambio de paquetes secuenciados (Internet work
Packet Exchange/SequencedPacket Exchange). Protocolo de red estándar en entornos Novel1 Netware
(acceso a
recursos Netware mediante servicios especiales Netware en Windows
NT).
Memoria Extendida.Monousuario .- Sistema residenteen una sola máquinao computadora que solamente puedeatender a un usuario.
Monotarea.- Sistema operativo residente en una sola computadora que solamente puede realizar una tarea a la ovez
rutina y no podráatender otra petición de un usuario hasta que termine
esta ultima tarea.
m,
MULT1TAREA.- Ejecución porparte de unprocesador de m á s de un
realizando selección de contacto de uno a
otro, y proporcionando la ilusión de que
todos los h d se ejecutan simultáneamente.
MULTITAREA Preemptiva o real .- Forma de multitarea en la cual el sistema operativo interrumpe periódicamente
la ejecuciónde un hilo y ejecuta otros hilos que están esperando
. Evita que un hilo monopolice procesador
el
y
permite que seejecuten otros hilos.
NFS.NetBIOSlNetBEU1.- Sistema de entrada básico dered (Network Basic Input/Output System). Interfaz
de software
"protocolo", para comunicaciones de red. Se emplea en las sencillas redes punto apunto, en las que
las
comunicaciones entre computadoras se realiza con menos 20
de comandos . Fue desarrollado parael ambiente de las
redes MS-DOS por Microsoft, porlo que se le denomina protocolo
el
más simple para redesde computadoras
personales .NETBEUI es la interfaz de usuario extendida
Netbios (NetbiosExtendet User Interface) . Protocolo de
red desarrollado por IBM para redes pequeñas . NETBEUI no tiene capacidad deencaminamiento
POSIX .- La interfaz del sistema portátil para UNIX (POSIX, Portable Operating System Interfacefor UNIX ) es un
224
conjunto de normasde desarrollo por el IEEE y el ANSI para promover normas de interfazgenéricas en el entorno
UNIX. En 1984 inicia el trabajo original ,el objetivo de POSIX fue la creación de un entorno de sistemas operativos
y de unas aplicaciones portadles que se pudiesen transferir en diferentes plataformas . También se intentaba crear
una estructura de información mediante la cual las aplicaciones compatibles con POSIX pudiesen intercambiar entre
ellas aunque estuviesen en distintas plataformas . Posix defme unainterfaz común, pero permite la realización de
plataformas especificas. Con Posix los desarrolladores pueden crear aplicaciones que se mueven fácilmentea otras
plataformas y que trabajan con diversas estructuras de archivos.
PROCESO.- División lógica dela labor de un sistema operativo . En WindowsNT comprende unespacio de
direcciones virtuales, unprograma ejecutable, uno o más hilos de ejecución, algunas partes de las cuotas de recurso
del usuario y los recursos del sistema que el S.O. ha reservado para los hilos del proceso . Esta implementado
también como objeto.
PROCESO HIJO.- Proceso creado por otro proceso denominado proceso padre . El proceso hijo hereda algunos o
todos los recursos del proceso padre.
PROCESO PADRE.- Proceso que ha creado otro proceso, denominado proceso hijo . El proceso hijo hereda alguno
o todos los recursos del proceso padre.
PROTOCOLO DE RED.-Conjunto de reglas y convenciones paraque 2 ó mas computadoras puedan comunicarse a
través de una red decomputadoras y no son m á s que un conjunto deprogramas que interactúan entre sí para poder
llevar a cabo una transferencia dedatos en forma óptimacon el mínimo de errores posibles y perdidas.
REDES DE AREA LOCAL.-(LAN) Denominación para redes
locales que actualmente se realizan mediante
topologías T h n Ethernet o Twisted Pair esto se hace conectando dos computadoras o m á s siempre y cuando estas se
encuentren próximas , en algunos casos local significa dentro de la misma habitación no edificio , en otros se refiere
a computadoras ubicadas a varios metros de distancia.
RISC
SERVIDORES MULTIUSUAFUO o NO DEDICADOS.SISTEMA OPERATIVO .- Conjunto de programas para una computadora que proporciona un entorno en el cual
pueden ejecutarse otra serie de programas desde otra computadora, permitiendo beneficiarse del uso del CPU,
dispositivos de E/S tales como dnves, monitor y teclados , es decir se crea un ambiente virtual el cual es factible que
un usuario común y comente pueda hacer uso de las mayoría deoperaciones de la computadora, ocultando los
detalles de programación.
TCP/IP.- Son las siglas de del Protocolo de Control de transporte (Transport Control Protocol), e IP Protocolo de
Internet (Internet Protocol) . Cuando se combinan ambos tenemos TCPAP,esto es debido a que Internet se basa en
una colección de protocolos cooperativos y complementarios . El conjunto de protocolos de TCP/IP incluye los
protocolos de control de transporte e Internet.
Token Ring .VFAT.-Sistema dearchivos virtual FAT de Windows95 y 97 la cual permite la escritura de nombres dearchivos
con m á s de 8+3 caracteres el nombre de archivos ,sin embrago este no ha podido mejorar la seguridad y la
estabilidad del sistema dearchvos ,además se produce una fragmentación muyrápida debido a que la información
se escribe en los bloques FAT de todo el disco.
225
EXPERIENCIAS PERSONALESY ALREDEDOR DEL MUNDO
La alternativa a Microsoft
Sábado, 13 de noviembre de1999
PROGRAMAS LIBRES
La alternativa a Microsoft
Internet propiciael uso de programas de ((código abierto)), de libre
difusión
JUAN GONZALO
MADRID.- Puede que el juicio más sonado en Internet -el que enfrenta a Microsoft y al
Departamento de Justicia norteamericano- acabe diluyéndose ante
la imposibilidad de cambiar las
reglas dejuego que impone la ley del más fuerte. Pero,al menos, la instrucción deljuez Thomas
Penfield Jackson está sirviendo para que los medios de información general se ocupen de lo que
podría ser la revolución social del sigloXXI: el modelo de código abierto (open source) o de programas
libres (free software).
Imagen tomada enla Redacción de EL MUNDO de un escritorio con aplicaciones de código
abierto (1 50 k).
En un reflejo dela importancia que está adquiriendo este fenómeno,
ha sido el propiojuez el que se
ha ocupadode ello en su escrito de hechos probados, aludiendo
al entorno de programas de libre
distribución en general y a GNUlLinuxen particular.
Actualización constante
Así, en el apartado de ((Sistemas operativos marginales)), el documento explica que ((Linux es un
sistema operativo de código abierto creado y actualizado constantemente por una
red mundial de
programadores que contribuyen a su desarrollo de forma desinteresada))y, cabe añadir, gracias a la
existencia de Internet.
Jackson empleael carácter no comercial y ((embrional)) de este entorno informático para refutar la
tesis de queno existen barreras de entradaen el mercado de sistemas operativos, esgrimida por
Microsoft en su defensa.
Es más, el juez afirma que el modelo de código abierto ({puede aumentar,
en la práctica, el número
226
de aplicaciones que funcionan en sistemas operativos para ordenadores personales distintos delos de
Microsoft)). No obstante, concluye el escrito, ello no puede disolver la barrera que impide que dichos
sistemas puedan competir con Windows.
Una afirmación conla que no estarán de acuerdolos partidarios de este entorno, cuyadifusión ha
sido posible gracias ala licencia pública GNU, también conocida como GPL, que permite la
libre difusión
y modificación de un programa informático.
La culpa de todoello la tiene Internet, cuyos pioneros(los creadores del protocolo TCP/IP)
decidieron hace 30 años quela mejor formade depurar y mejorar una tecnología era exponiendo sus
entrañas e introducir las mejoras aportadas por todala comunidad de usuarios.
Esta filosofía esla que ha permitido que en Internet se pueda conseguir,
de forma gratuita, desde un
potente servidor web (Apache) hasta herramientas de desarrollo
y lenguajes de automatización (gcc,
PHP, Perl,
Python) o paquetes de aplicaciones de gestión (Linux-Kontor), sin olvidarlos entornos gráficos
(Gnome, KDE).
El ingeniero norteamericano Quinn Coldiron relató en 1997 su odisea cuando decidió instalar
Windows NT en una empresay reemplazarlo después con aplicaciones de tipo GNU/Linux. Entonces,la
combinación de sistema operativo, servidor de correo y base de datos, entre otros productos de
8.000
Microsoft, costaba más de tres millones de pesetas. Con aplicaciones de código abierto, apenas
pesetas, el coste del CD-Rom).
Experiencias de este tipo pueden contrastarse con la llamada Guía Práctica de Linux para
los puntos débiles del entorno (desde las
Ejecutivos, obra de Ganesh Prasad. En ella se revisan tanto
dificultades para su instalación hasta la escasez de aplicaciones) como sus puntos fuertes, cuya
valoración, en último término, depende de la curiosidad del usuario por conocer
si hay alternativa alos
programas de Microsoft.
OPINION
Un sueño... ¿real?
Por JESUS M. GONZALEZ-BARAHONA
13 de noviembre de 1999
Linux en la sociedad cubana. Linux es un sistema que puede tener un impacto particular en el
proceso deinformatizaciónde
la sociedadcubana ya quenoestáatadoaningunacompañía
comercial. Linux constituye una alternativa económica por su carácter
libre y una buena plataforma
de desarrollo por su carácter abierto. Adicionalmente es una plataforma de lanzamiento mucho más
justa
queotrossistemasoperativoscomerciales,puesofreceunaopcióndeparticipaciónmucho
más democrática que depende del talento, la creatividad y
el trabajo de quienes lo usen. AI trabajar
conunaconcepcióndesistemaabiertoofreceunaoportunidad
infinita deadicióndevalor
agregado.Además
filosóficamente, unsistemaconstruidoydesarrolladosobrelabasedela
cooperación y la solidaridad entre sus usuarios en todo el mundo, de
la ayuda entre las personas que
gratuitamente laboran por hacerlo mejor cada día, constituye un paradigma de proyecto común. En
los
nuestropaís,donde
el trabajoencolectivo,lasolidaridady
la colaboraciónentretodos
interesados en hacerlo avanzar hacia nuevas metas son vitales para el desarrollo de la sociedad,
227
Linux mas que un injerto tecnológico se inserta como una componente totalmente orgánica.
El Proyecto Linux Cuba se propone promover a nivel nacional el uso de Linux así como
la
creación de un conjunto de recursos que facilitenel
trabajo y crecimiento de la comunidad de
usuarios Linux en nuestro país.
Entre estos recursos figuran un sitiowww ( www.linux.cu ), un sitio ftp
( ftp.linux.cu ),con mirrors
de las más importantes distribuciones y recursos acerca de Linux en español de la Internet que
podrán ser accedidos libre y fácilmente desde dentro de Cuba. Un servidor irc y un servidor de
listas de discusión ( linux-l ).
Como parte del proyecto se prevé la impartición de conferencias, cursos
,
talleres y exposiciones acerca del sistema, así como facilitar el
acercamiento entre los diferentes
grupos o desarrolladoresindividualesdispersosporelpaís.Además
se proponecoordinar
reuniones de carácter nacional en las que pueda lograrse
un intercambio mas vivo entre los
participantesdelproyecto.Unpaísquehainvertidotanto
en la formacióndesusrecursos
humanos,quehapracticadolasolidaridadyquehasoñadocon
una sociedad justa ymoderna
tiene en el Linux una herramienta tremenda. Desde Infomed, Red Telemática de Salud en Cuba,
hacemos un llamado a todos cuantos estén interesados en formar parte de este esfuerzo para de
estaformacontribuiraldesarrollodenuestrasociedad.OtrosGrupos
deLinuxeros
Bibliografía
Windows NT Interno 3era Edición
Uníx 4.2 BSD
Enciclopedia de redes
www.redhat.com
www.todolinux.com
www.microsoft.com
www.microsft.com/latam/technet.html
http://www.unm.edu/-dave/security/appc.html
http://www.radium.ncsc.mil/tpep/libra~/rainbow/5200.28-STD.html
228