Вы находитесь на странице: 1из 9

La sociologa de las computadoras

Claudio Gutierrez

Me propongo en lo que sigue introducir el tema de la sociologa de las


computadoras. No me refiero a la sociologa de los usuarios de
computadoras sino a la sociologa de las computadoras mismas. Tal
disciplina o rama de una disciplina, habra que entenderla como una ciencia
que aplica conceptos y leyes descubiertas en el anlisis de las relaciones
entre los seres humanos a las relaciones entre ciertos seres no humanos:
los procesadores electrnicos.
INTRODUCCIN
Me propongo en lo que sigue introducir el tema de la sociologa de las
computadoras. No me refiero a la sociologa de los usuarios de computadoras
sino a la sociologa de las computadoras mismas. Tal disciplina o rama de una
disciplina, habra que entenderla como una ciencia que aplica conceptos y leyes
descubiertas en el anlisis de las relaciones entre los seres humanos a las
relaciones entre ciertos seres no humanos: los procesadores electrnicos. Si tal
ciencia existe, o est a punto de existir, ello tendr tremendas repercusiones para
la filosofa de la ciencia y para la imagen que el ser humano tenga de s mismo.
De cualquiera de los dos modos que se vea, se trata de un asunto trascendente
para la ciencia del conocimiento. Tradicionalmente se habla de las "ciencias
duras" (las matemticas, la fsica, la biologa) y las "ciencias suaves" (las ciencias
sociales, bsicamente). Voy a sostener que esta distincin ha comenzado a
perder sentido por obra de la existencia misma de las computadoras. Pero esta
vez no es porque las ciencias suaves se hayan hecho duras -como las ciencias
especulativas se han transformado en empricas- sino, curiosamente, porque las
ciencias duras se estn haciendo suaves. Quiero referirme concretamente a la
informtica, que es la nica ciencia dura que conozco suficientemente.

LA COMPUTADORA, NUNCA SE EQUIVOCA?


A una primera poca en el desarrollo de la informtica, digamos que es su poca
clsica, en que todo es proporcionado y apolneo corresponden aforismos como
"La computadora nunca se equivoca; solo el programador, que es humano, lo
hace" -es decir errare humanum est-. Es la poca de la computadora gigante,
muy impresionante en su tamao, pero fundamentalmente simple en su
arquitectura y en su programacin; el gran tamao esconde un poder muy
reducido, se trata de la "calculadora de cuarto" que difiere solo en tamao de la
calculadora de bolsillo. Tales computadoras solo tenan una fraccin del poder de
cmputo y de la complejidad de arquitectura de muchas de las
microcomputadoras existentes hoy, por ejemplo la computadora con que escribo
este artculo.
Tengo ante m un volumen de la revista ACM Computing Surveys donde se
describe lo que ser muy pronto la arquitectura estndar de la maquinaria de
cmputo: el sistema operativo distribuido, es decir, una mquina virtual cuya
unidad funcional frente al usuario esconder una multiplicidad de
microprocesadores (equivalentes a las actuales computadoras) conectados por
medio de una red local. Encuentro el artculo interesante por razones que no
tienen que ver directamente con la tcnica informtica. La mayor de ellas me ha
reforzado en la conviccin de que estamos ante el advenimiento de la
computadora falible, de la computadora que se equivoca por las mismas causas
que el cerebro se equivoca, a saber: su misma complejidad. Errare complexum
est.
Si una computadora consiste en un solo procesador -o unidad lgica- y su
respectiva memoria, un fallo del procesador paraliza a la computadora, no la hace
equivocarse. Pero si la computadora es una sociedad de computadoras
conectadas por una red (como sern todas las computadoras del cercano
maana), si uno de los procesadores deja de funcionar, la computadora no se
para, simplemente se degrada, ... o se equivoca. Toda suerte de equvocos y
malos entendidos pueden entonces suceder. Por ejemplo, uno de los
procesadores que deba recibir un mensaje del procesador afectado podra seguir
trabajando como si el procesador daado hubiera cumplido su funcin, pero con
informacin incompleta. Si por ejemplo la computadora daada deba enviar un

mensaje indicando haber recibido un mensaje anterior (una transferencia de


fondos, tal vez) y ese acuse de recibo nunca llega, el procesador destinatario
puede decidir que el mensaje nunca fue recibido y enviar de nuevo el mensaje
original; esta vez el mensaje lo recibe un procesador de reemplazo que ha
sustituido al procesador daado, pero lo recibe con un atraso que posibilita la
inscripcin por ejemplo de una doble transferencia de fondos.
Adems, aun suponiendo que todos los procesadores funcionen bien, la
computacin en paralelo puede ocasionar extraos efectos, muy difcilmente
evitables; un tpico ejemplo es el bloqueo recproco, cuando cada uno de dos
procesadores se pone a esperar que el otro procesador desocupe un recurso que
necesita para finalizar una operacin, por ejemplo el acceso a cierta parte de un
disco de almacenamiento de datos o a algn lugar de una memoria compartida.
Las consecuencias de un tal bloqueo, o de otras situaciones parecidas, son
impredecibles, y los resultados de la computacin global pueden muy bien resultar
incorrectos.
CIENCIAS "SUAVES" Y CIENCIAS "DURAS"
Ante esta clase de problemas, y algunos otros que mencionar en seguida, los
cientficos de la informtica estn comenzando a comportarse de manera muy
inesperada: los cientficos de la informtica han encontrado soluciones a los
problemas que plantea la computacin distribuida, en la sociologa, en la ciencia
administrativa y hasta en la ciencia poltica. La diferencia entre las ciencias duras
y las ciencias suaves comienza a desaparecer cuando se aplican soluciones de
las ciencias sociales a los problemas estrictamente computacionales y comienza
a surgir una sociologa de las computadoras.
Un sistema operativo es un programa fundamental que se ejecuta directamente
sobre la arquitec- tura electromecnica de la computadora y ofrece al usuario o
usuarios de esta toda clase de servicios necesarios, como acceso a unidades de
almacenamiento de datos en discos, acceso a aparatos de impresin, etc. En
realidad, es un programa bastante elaborado una de cuyas principales
responsabilidades es la administracin de los recursos de cmputo y su oportuna
puesta a disposicin del usuario o usuarios. Cuando, como en los sistemas
distribuidos a que me vengo refiriendo, los procesadores son varios, entre los

cuales se distribuyen distintas operaciones independientes para ser ejecutadas en


paralelo -lo que indiscutiblemente aumenta la eficiencia del sistema- las
responsabilidades del sistema operativo se complican hasta lo indecible.
Manejar la adjudicacin de recursos sin tener informacin exacta sobre el estado
global del sistema es muy difcil. Y esa informacin exacta es prcticamente
imposible de tener si varios procesadores trabajan simultneamente a la
velocidad de la electricidad envindose mensajes recprocamente y alterando el
estado de la memoria compartida por medio de procesos mutuamente
independientes.
LA IMPORTANCIA DE LA REDUNDANCIA
Cuando algo muy serio est en juego en la vida social -pinsese en el caso de
una enfermedad grave o de una crisis nacional- normalmente se recurre al
concurso de varios solucionadores de problemas que operen simultneamente:
en el caso de la enfermedad, llamamos a esta solucin "junta de mdicos"; en el
caso de la crisis nacional, la llamamos "junta de notables"; en el caso
computacional, la llamamos simplemente redundancia. Durante su ejecucin, un
programa se pone a "correr" simultneamente en un cierto nmero de mquinas,
en paralelo. Cada vez que un proceso termina, las mquinas comparan sus
resultados; si coinciden, no hay problema; pero si difieren, las mquinas recurren
a un procedimiento para dirimir los conflictos muy bien experimentado: las
mquinas votan, y la solucin que obtenga la mayora de los votos ser el
resultado que todas las mquinas tomen como dato para sus cmputos en los
mdulos siguientes. Claramente, se trata de la importacin de un mtodo social
para la solucin de problemas informticos.
LA JERARQUA SOCIAL
Uno de los problemas ms serios que puede enfrentar un sistema operativo
distribuido es el de asignar el trabajo requerido entre los distintos procesadores
que forman el sistema. El problema es muy similar al de distribuir el trabajo entre
los componentes humanos de una gran organizacin. La solucin estndar en
estos casos es organizar a los trabajadores de una manera jerrquica. La solucin
computacional es organizar a los procesadores como se organiza a la gente en la

gran corporacin, el ejrcito, la universidad, o cualquiera otra de las jerarquas del


mundo social. Algunas mquinas se declararn obreros y otras administradores.
Por cada grupo de un cierto nmero de obreros se asignar una mquina
administradora (el jefe de departamento) con la tarea de supervisar quin est
ocupado y quin no.
Las cuestiones normales en una jerarqua humana surgen tambin en una
jerarqua informtica: qu pasa cuando un jefe de departamento deja de
funcionar? Una solucin es promover a uno de los subordinados directos para
llenar el puesto vacante. El escogimiento podrn hacerlo los subordinados
mismos, o los iguales del "difunto", o -en sistemas ms autocrticos- el jefe del
procesador descartado.
Todas estas son por supuesto decisiones polticas. Si se quiere evitar tener un
solo administrador (vulnerable) en la cspide de la jerarqua, es posible decapitar
el sistema y poner en la cumbre a un comit de mquinas en las que resida la
autoridad suprema. Cuando un miembro del politbur funciona mal, los restantes
miembros promueven a alguien del nivel inferior como repuesto. Puede haber
tambin soluciones anarquistas, donde nadie tiene autoridad final, y lo interesante
del caso es que tales sistemas pueden funcionar, por lo menos tan bien como los
de autoridad centralizada. En esos sistemas todos los problemas se resuelven por
intercambio de mensajes y, por supuesto, por la disposicin de los distintos
elementos a asumir las posiciones vacantes cuando ello resulte necesario para el
funcionamiento del sistema, tal como ellos lo ven. Por supuesto, puede haber
colisiones, pero existen soluciones para resolver conflictos sin que haya un rbitro
de la disputa.
LA HETERARQUA
Un ejemplo interesante de solucin de conflictos sin intervencin de un rbitro se
presenta en la transmisin de mensajes por medio de una red local del tipo
ethernet. En este tipo de red las estaciones estn todas conectadas por un simple
cable coaxial, el mismo que se usa para instalar una antena de televisin.
Cualquier estacin puede poner en cualquier momento una seal en el cable, y
esta seal es oda por todas las otras estaciones. Si dos o ms estaciones
trasmiten al mismo tiempo, ocurre una colisin, es decir, los mensajes se

interfieren unos a otros y llegan a su destino adulterados. Como la estacin que


enva tambin est oyendo, al no reconocer su mensaje sabe que ha fracasado
en su intento y que tiene que reenviar su mensaje. Esto ocurre pocas veces, por
lo que tiene un impacto insignificante en el rendimiento de la red. Para reducir la
probabilidad de colisiones, la estacin que fall espera un ratito antes de volver a
trasmitir; si se produce una nueva colisin, espera el doble, y as sucesivamente
hasta tener xito. Este sistema de resolucin de conflictos es perfectamente
eficaz, y no difiere mucho del que se usa en la conversacin normal, sin director
de debate, para evitar que la gente hable al mismo tiempo. Vemos aqu un caso
de una buena solucin a un problema computacional que se inspira en un modelo
social: la conversacin humana normal.
EL DOBLE EFECTO EN LAS CIENCIAS SOCIALES Y EN LA INFORMTICA
En su libro La miseria del historicismo, Karl Popper introduce el concepto del
"doble efecto" en la dinmica social. Segn este concepto, todo acto social
produce dos efectos: uno deseado, que es el propsito del acto, y otro no
deseado -pero inevitable- que debe ser soportable para el actor si el acto ha de
realizarse en absoluto. De este concepto saca Popper su conclusin de filosofa
de la tica en el sentido de que el objetivo ltimo de la moral es disminuir lo ms
posible el mal general en vez de maximizar la felicidad del mayor nmero, como
postulaban los utilitaristas. Uno tendra que esperar que esta doctrina del doble
efecto, tpica de las sociedades humanas, se aplicara tambin a los sistemas de
cmputo desde el momento en que estos comiencen a ser "sociales"; y as es, en
efecto.
Para comprobarlo, analicemos el caso de un grupo de procesadores que trabajan
en paralelo en la solucin de un problema complicado. As como desde el punto
de vista del hardware (la parte fsica de la mquina) la computadora se
descompone en procesadores, cada uno independiente de los otros, desde el
punto de vista del software (la parte intelectual de la mquina) el programa se
descompone en procesos independientes. Para "correr" el programa, diversos
procesos tendrn que ejecutarse en otros tantos procesadores; por razn de la
misma limitacin en el nmero de procesadores, pero tambin porque algunos
procesos son prerrequisito de otros, los procesos irn siendo asignados a los
procesadores consecutivamente; pero para maximizar la eficiencia, se procurar

que un buen nmero de procesos se ejecuten paralelamente.


La decisin estratgica de cmo lograr la mejor asignacin de procesos a
procesadores y la mejor distribucin de la ejecucin entre un arreglo secuencial y
un arreglo paralelo constituye el problema de la asignacin de recursos. Si
tomamos en cuenta que los distintos procesos, por ser parte de un programa
integral que soluciona un mismo problema, tienen que comunicar entre s para
enviarse datos y resultados, pareciera que los procesos que comunican
frecuentemente deberan ejecutarse simultneamente. As, Ousterhout sugiere
que los procesos que trabajan juntos se asignen a diferentes procesadores para
que puedan "correr" en paralelo. Pero otros investigadores no estn de acuerdo:
Chow y Abraham, por ejemplo, consideran que los procesos que trabajan juntos
deben ponerse en la misma mquina, para reducir los costos de la comunicacin.
Se ve claramente aqu que si pretendemos aumentar la eficiencia por la
computacin en paralelo, el sistema se degrada por los requerimientos de la
comunicacin; pero si queremos disminuir esos requerimientos, el sistema se
hace ms lento porque la computacin debe hacerse secuencial. Un ejemplo
tpico del doble efecto de Popper.
Pero todava hay ms: un tercer grupo de investigadores, por ejemplo Stankovik y
Sidhu consideran que la estrategia fundamental debe ser velar porque ningn
procesador est sobrecargado mientras otros permanecen ociosos. Para estos
autores, balancear las cargas es la estrategia razonable, tomando en cuenta que
en sistemas complejos de hecho no sabemos nada sobre los detalles del
comportamiento del sistema en cada ejecucin concreta. En la ejecucin de esta
estrategia, se pueden presentar efectos secundarios muy graves, pues hacer
migrar un proceso de un procesador a otro implica una serie de acciones muy
costosas: hay que interrumpir su ejecucin, para lo cual deben guardarse muchos
temes de informacin que permitan volver a ponerlo en ejecucin en el punto en
que estaba al llegar al nuevo procesador. En la prctica, lo que se recomienda es
ms bien dejar los procesos que estn ejecutndose llegar a su fin en el
procesador en que se encuentren, pero crear los nuevos procesos solamente en
las mquinas menos cargadas; solucin que recuerda los mtodos para
desburocratizar una institucin: no nombrar nuevo personal para llenar las
vacantes que se produzcan, en vez de despedir personal. En resumen, los
objetivos de maximizar la produccin, minimizar el tiempo de respuesta y

uniformar las cargas entran en conflicto. Toda solucin al mismo implica una
transaccin: de igual tipo que las transacciones sociales o polticas.

UN BOOMERANG EPISTEMOLGICO
Una vez que los modelos han sido aplicados con xito a la informtica, puede
darse un efecto boomerang sobre las ciencias humanas, las cuales pasan a
beneficiarse de las mismas tcnicas informticas que ellas inspiraron. Es decir, la
misma tcnica, al ser refinada y hecha mucho ms rigurosa en su versin
computacional, puede ser retomada en aplicaciones directamente sociales. Veo
innumerables aplicaciones de esta tesis en las disciplinas sociales, pero muy
especialmente en la ciencia administrativa y en la ciencia poltica.
Tomemos algunos de los casos analizados antes. Creo que la sociologa, la
ciencia poltica y la administracin pueden beneficiarse de los anlisis
computacionales sobre bloqueos recprocos o sobre organizacin, reparacin y
funcionamiento de jerarquas. Igualmente, la sociologa y la ciencia poltica tienen
mucho que aprender de la forma en que se analizan y deciden las transacciones
entre objetivos en conflicto para maximizar la satisfaccin o, como dira Popper,
minimizar la insatisfaccin.
Otra rea muy fecunda de reflexin es la teora de la redundancia, sobre todo si
se combina con la consideracin de su complementaria la teora de la
programacin estructurada. En efecto, ciertos problemas por su naturaleza,
admiten ser descompuestos en subproblemas, supuestamente ms fciles de
resolver que sus progenitores; este es el origen de los expertos, tanto en la vida
social real como en el reino de la informtica. Cuando existe un conocimiento
claro sobre una materia, cuando el problema es un problema bien formado, lo
procedente es descomponerlo en sus distintos aspectos y pasar los subproblemas
a la consideracin de los respectivos expertos. La famosa "comisin especial", a
la que suelen mandarse los asuntos difciles, es un caso claro de esta
metodologa informtica, por la que el asunto se divide en sus partes y cada parte
la asume el proceso especializado correspondiente. Contrasta con esto el caso
del problema no bien formado, para cuya solucin no se puede articular ninguna

experticia determinada. En este caso lo que corresponde convocar no es al


"comit de expertos" o "comisin especial" sino ms bien a la igualmente famosa
"junta de notables", en la que reina no la descomposicin de saberes
especializados, sino la redundancia de saberes de sentido comn.