You are on page 1of 19

La Evolucin de los Sistemas Operativos en una interesante infografa.

Historia dcada a dcada de los Sistemas


Operativos ms conocidos. Muchas personas nos preguntamos cuando se empezaron a desarrollar los ms famosos
Sistemas Operativos que funcionan en nuestras Pc's, laptops, netbooks, smartphones o cuanto dispositivo lo integre;
pues te aviso que fu en la dcada de 1950 y que aos tras ao se fueron perfeccionando. Si t todava no comprendes
que es un sistema operativo, te explico que es un programa conjuntos de programas que gestionan en un sistema
informtico, los recursos del hardware y provee a la vez de mltiples servicios a los programas de aplicacin,
ejecutndose en modo privilegiado respecto a los otros.

El primer Sistema Operativo que se us fu el GMOS creado la General Motors en 1950 y a travs de muchos aos los
genios de la informtica de aquellos tiempos, comenzaron a seguir creando ms sistemas operativos logrando dar en
los aos 70 un espectacular salto instalndose en miles y miles de computadoras personales gracias a genios como Bill
Gates, Steve Jobs y Linus Torvalds, los mismos que convirtieron estos Sistemas Operativos a lo que conocemos hoy
como Windows, Mac o Linux.

Es as que resumo esta coleccin de sistemas operativos que nos detalla la infografa que detallo ac ontinuacin, donde
podremos encontrar por dcada, los nombres de estos programas, y como estos evolucionaron y se convirtieron en los
pilares de la informtica y la tecnologa de hoy en da.
1. Ao 1950.- General Motors OS, BESYS, SHARE OS, UMES, GM-NAA I/O.
2. Ao 1960.- Atlas Supervisor, DOS/360, EXEC I., SABRE, OS/360, Master Control Program.
3. Ao 1970.- CP/M, UNIX, Apple, PLATO, PARC, VMS. DOS 3.1.
4. Ao 1980.- PC-DOS, MS-DOS, GNU, Mac OS, Sun OS, OS/400, Windows 1.0, Liso Office System 7/7.
5. Ao 1990.- MAC OS 7.06, Windows 98, Windows 3.1, Red Hat Linux, Mac OS 9, WINDOWS 95, LINUX, Open
BSD, Minix.
6. Ao 2000.- Windows XP, Windows Vista, Windows 2000, Windows 7, UBUNTU, Apple iOS, MAC OS X Snow
Leopard, Google Android.
7. ENSAMBLADORES
8. Ensamblador se refiere a un tipo de programa, informtico que se encarga de traducir un fichero fuente escrito
en un lenguaje ensamblador, a un fichero objeto que contiene cdigo mquina ejecutable directamente por la
mquina para la que se ha generado, en si la funcion de un ensamblador es traducir un programa en lenguaje
de

ensamblador

al

cdigo

correspondiente

Ventajas

lenguaje

para

Mayor

control

de

Independencia
La

en

mayora

las

la

computadoras

maquina.

utilizarlo:
computadora.

de
de

de

lenguaje.
pueden

ensamblar.

Los programas hechos en lenguaje ensamblador son generalmente ms rpidos y consumen menos recursos
del

sistema.

Desventajas

para

no

utilizarlo:

Demasiado

complejo.

Comprensin

ms

Errores

profunda

ms

de

frecuentes

Mayor

la

en

tiempo

computadora.
el

de

programa.
codificacin.

Difcilmente portable, es decir, un cdigo escrito para un microprocesador en particular necesita ser modificado
muchas veces en su totalidad para poder ser usado en otro microprocesador.

Tipos de ensambladores:

Ensambladores cruzados: Se denominan as a los ensambladores que se utilizan en una computadora que
posee el procesador diferente al que tendrn las computadoras donde se va a ejecutar el programa objeto
producido.

Ensambladores residentes: Son aquellas que permanecen en la memoria principal de la computadora y cargar
para su ejecucin al programa objeto producido.

Micro ensambladores: Al programa que indica al intrprete de instrucciones de la CPU como debe actuar se le
denomina microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador.

Macro

ensambladores:

Son

ensambladores

que

permiten

el

uso

de

macroinstrucciones.

Ensambladores de una fase: Leen una lnea y la traducen directamente para producir una instruccin de
lenguaje maquina o la ejecuta si se trata de una pseudosinstruccin. Se construye la tabla de smbolos a
medida

que

aparecen

las

definiciones

de

variables,

etiquetas,

etc.

Ensambladores de dos fases: Realiza la traduccin en dos etapas: 1 fase leen el programa fuente y
construyen la tabla de smbolos, 2 fase vuelve a leer el programa fuente y pueden ir traduciendo totalmente
pues reconocen la totalidad de los smbolos.
ntrprete (informtica)
En ciencias de la computacin, intrprete o interpretador es un programa informtico capaz de analizar y
ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intrpretes se diferencian de
los compiladores en que mientras estos traducen un programa desde su descripcin en un lenguaje de
programacin al cdigo de mquina del sistema, los intrpretes slo realizan latraduccin a medida que sea
necesaria, tpicamente, instruccin por instruccin, y normalmente no guardan el resultado de dicha traduccin.

Usando un intrprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente
diferentes (ej. una PC y un PlayStation 3). Usando un compilador, un solo archivo fuente puede producir resultados
iguales solo si es compilado a distintos ejecutables especficos a cada sistema.
Los programas interpretados suelen ser ms lentos que los compilados debido a la necesidad de traducir el
programa

mientras

se

ejecuta,

pero

cambio

son

ms

flexibles

como

entornos

deprogramacin y depuracin (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes
enteras del programa o aadir mdulos completamente nuevos), y permiten ofrecer al programa interpretado
un entorno no dependiente de la mquina donde se ejecuta el intrprete, sino del propio intrprete (lo que se
conoce comnmente como mquina virtual).
Para mejorar el desempeo, algunas implementaciones de programacin de lenguajes de programacin
pueden interpretar o compilar el cdigo fuente original en una ms compacta forma intermedia y despus
traducir eso al cdigo de mquina (ej. Perl, Python, MATLAB, y Ruby). Algunos aceptan los archivos fuente
guardados en esta representacin intermedia (ej. Python, UCSD Pascal y Java).
Comparando su actuacin con la de un ser humano, un compilador equivale a un traductor profesional que, a
partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intrprete corresponde
al intrprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito.
En la actualidad, uno de los entornos ms comunes de uso de los intrpretes informticos es Internet, debido a
la posibilidad que estos tienen de ejecutarse independientemente de la plataforma.
Cargador de programas
En informtica, un cargador es la parte de un sistema operativo que es responsable de cargar programas en memoria
desde los ejecutables (por ejemplo, usb y cd). El cargador es usualmente una parte del ncleo del sistema operativo y
es cargado al iniciar el sistema y permanece en memoria hasta que el sistema es reiniciado o apagado. Algunos
sistemas operativos que tienen un ncleo paginablepueden tener el cargador en una parte paginable de la memoria,
entonces a veces el cargador hace un intercambio de memoria.
Todos los sistemas operativos que soportan la carga de programas tienen cargadores. Algunos sistemas operativos
empotrados de computadoras altamente especializadas corren un nico programa y no existen capacidades de carga
de programas, por lo tanto no usan cargadores. Ejemplos de estos sistemas embebidos se encuentran en equipos de
audio para automviles. En los sistemas Unix, el cargador es el manejador para la llamada del sistema execve().
Algunas computadoras necesitan cargadores relocalizables, los cuales ajustan direcciones de memoria (punteros) en
un ejecutable para compensar las variaciones en la cual la memoria disponible de la aplicacin empieza. Las
computadoras que necesitan de los cargadores relocalizables son aquellos en los cuales los punteros son direcciones
absolutas en vez de compensaciones de direcciones base del programa. Un ejemplo muy conocido est en
los mainframes IBM Sistema 360 y sus descendientes, incluyendo la serie de los sistemas Z9.
Los enlazadores dinmicos son otro tipo de cargador que carga y liga biblioteca de enlace dinmico, como lo son los
archivos dll o so.

En informtica, un buffer de datos es una ubicacin de la memoria en una computadora o en un instrumento digital
reservada para el almacenamiento temporal de informacin digital, mientras que est esperando ser procesada. Por
ejemplo, un analizador TRF tendr uno o varios buffers de entrada, donde se guardan las palabras digitales que
representan las muestras de la seal de entrada. El Z-Buffer es el usado para el renderizado de imgenes 3D.
En electrnica es un dispositivo que evita el efecto de carga en un circuito. En su forma ms sencilla es un
amplificador operacional funcionando como seguidor. Por consiguiente el voltaje y la corriente no disminuye en el
circuito, ya que ste toma el voltaje de la fuente de alimentacin del operacional y no de la seal que se est
introduciendo, por lo que si una seal llegara con poca corriente, el circuito seguidor compensara esa prdida con la
fuente

de

alimentacin

del

amplificador

operacional,

ya

sea

ste

unipolar

bipolar.

En un Sistema de Informacin Geogrfica, polgono que encierra el rea de influencia resultante de dar una
determinada distancia en torno a un punto, lnea o polgono. Se utiliza mucho para procesos de anlisis espacial.
Un buffer o Tampn qumico, en trminos qumicos, tambin es un sistema constituido por un cido dbil y su base
conjugada o por una base y su cido conjugado que tiene capacidad "tamponante", es decir, que puede oponerse a
grandes cambios de pH (en un margen concreto) en una disolucin acuosa.
hace 6 aos

En informtica, el spooling hace referencia al proceso de transferir datos ponindolos en un rea temporal de trabajo,
donde otro programa puede acceder para su procesamiento en otro momento. Este rea de trabajo temporal suele
estar

en

un archivo o

Usos

en

un dispositivo

del

de

almacenamiento.

spooling

El spooling es til en caso de dispositivos que acceden a los datos a distintas velocidades. O en aquellos casos en
que no hay comunicacin directa entre los programas que escriben los datos y aquellos que los leen.

Los datos del rea temporal solo pueden ser modificados agregando o eliminado al final del rea (en general, no hay
acceso

aleatorio

ni

edicin).

Tambin es muy usado en la impresin (print spooling), donde los documentos a imprimir son cargados al spool de
impresin, y la impresora los va tomando en su debido tiempo para imprimirlos. El spooling permite poner documentos
en una "cola de impresin", que irn imprimindose en ese orden, mientras el usuario hace otras tareas.

Otro uso del spooling es email spool, un rea temporal de almacenamiento de emails a ser enviados por el programa

agente transmisor de emails. De todas maneras este tipo de spooling es diferente, dado que permite el acceso
aleatorio a los mensajes de email del rea de almacenamiento temporal.
Procesamiento

por

lotes

En microcomputadoras, la ejecucin de una lista de comandos del sistema operativo uno tras otro sin intervencin del
usuario. En los ordenadores ms grandes el proceso de recogida de programas y de conjuntos de datos de los
usuarios, la ejecucin de uno o unos pocos cada vez y la entrega de los resultados a los usuarios.
Procesamiento por lotes tambin puede referirse al proceso de almacenar transacciones durante un cierto lapso antes
de su envo a un archivo maestro, por lo general una operacin separada que se efecta durante la noche.

Caractersticas

del

Procesamiento

por

Lotes

Requiere que el programa, datos y rdenes al sistema sean remitidos todos juntos en forma de lote.

Permiten poca o ninguna interaccin usuario/programa en ejecucin.

Una mayor potencial de utilizacin de recursos que procesamiento serial simple en sistemas multiusuarios.

No conveniente para desarrollo de programas por bajo tiempo de retorno y depuracin fuera de lnea.

Conveniente para programas de largos tiempos de ejecucin (ej, anlisis estadsticos, nminas de personal, etc.).

Se encuentra en muchos computadores personales combinados con procesamiento serial.

La planificacin del procesador es sencilla, tpicamente procesados en orden de llegada.

La planificacin de memoria es sencilla, generalmente se divide en dos: parte residente del S.O. y programas
transitorios.

No requieren gestin crtica de dispositivos en el tiempo.

Suelen proporcionar gestin sencilla de manejo de archivos: se requiere poca proteccin y ningn control de
concurrencia para el acceso.

MONITORES.
Los semforos son una herramienta bsica, pero potente y flexible, para hacer cumplir la exclusin mutua y
coordinar procesos. Sin embargo, puede resultar muy difcil construir un programa correcto por medio de semforos.
La dificultad est en que las operaciones wait y signal deben distribuirse por todo el programa y no es fcil advertir el

1.

efecto global de estas operaciones sobre los semforos a los que afectan. En los semforos, tanto la exclusin mutua
como la sincronizacin son responsabilidades del programador. Los monitores son estructuras de un lenguaje de
programacin que ofrecen una funcionalidad equivalente a la de los semforos y que son ms fciles de controlar.
Los monitores fueron propuestos por Brich Hansen y mejorados por Hoare para poder utilizar procesos
automticos de sincronizacin. Un mdulo monitor encapsula la mutua exclusin de datos y procedimientos que
pueden acceder a los datos protegidos. Los usuarios pueden hacer llamadas a estos procedimientos usando al
monitor como una tabla de estado para determinar cuando proceder y cuando suspender operaciones.
Monitores con seales
Un monitor es un mdulo de software que consta de uno o ms procedimientos, una secuencia de inicializacin y
unos datos locales. Las caractersticas bsicas de un monitor son las siguientes:
Las variables de datos locales estn slo accesibles para los procedimientos del monitor y no para procedimientos
externos.
2.

Un proceso entra en el monitor invocando a uno de sus procedimientos.

3.

Slo un proceso puede estar ejecutando en el monitor en un instante dado; cualquier otro proceso que haya
invocado al monitor quedar suspendido mientras espera que el monitor est disponible.

Monitores.
Un monitor es una estructura formada por una cabecera que los identifica, un conjunto de variables globales a todos
los procedimientos del monitor, un conjunto de procedimientos y un bloque de inicializacin, el cual se ejecuta una
nica vez, cuando se crea el monitor.}
Sistemas

operativos

multiprogramacin

>Los sistemas de multiprogramacin son capaces de soportar dos o ms procesos concurrentes mltiples, permiten
que residan al mismo tiempo en la memoria primaria las instrucciones y los datos procedentes de dos o ms procesos.
Estos sistemas implican la operacin de multiproceso, para el manejo de la informacin. Se caracterizan
principalmente por un gran nmero de programas activos simultneamente que compiten por los recursos del sistema,
como el procesador, la memoria , y los "dispositivos de E/S". Estos sistemas monitorean el estado de todos los
programas activos y recursos del sistema.

sistemas

Operativos

de

Multiprogramacion

Se distinguen por sus habilidades para poder soportar la ejecucion de dos o mas trabajos activos (que se estan
ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre

tenga alguna tarea que ejecutar, aprovechando al maximo su utilizacion.


Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno esta usando el procesador,
o un procesador distinto, es decir, involucra maquinas con mas de una UCP.
Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la
multitarea.
Las caracteristicas de un Sistema Operativo de multiprogramacion o multitarea son las siguientes:

Mejora productividad del sistema y utilizacion de recursos.

Multiplexa recursos entre varios programas.

Generalmente soportan multiples usuarios (multiusuarios).

Proporcionan facilidades para mantener el entorno de usuarios individuales.

Requieren validacion de usuario para seguridad y proteccion.

Proporcionan contabilidad del uso de los recursos por parte de los usuarios.

Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de


tiempo real.

Sistemas multiprocesadores son sistemas multitareas por definicion ya que soportan la ejecucion
simultanea de multiples tareas sobre diferentes procesadores.

En general, los sistemas de multiprogramacion se caracterizan por tener multiples programas activos
compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifericos.

Qu es un Sistema Operativo de multiprogramacin?


Un sistema operativo de multiprogramacin es la tcnica que permite que dos o ms procesos ocupen la misma
unidad de memoria principal. Multiprogramacion implica multiproceso,sin embargo multiproceso no implica
multiprogramacin.
Aporta
- Aumenta

las
el

siguientes
uso

de

ventajas:
la

CPU.

- Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dnde estar el proceso
dado que el sistema operativo es el que se encarga de convertir la direccin lgica en fsic
Proceso.
Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:

Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.

Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.

Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.

Otra informacin que permite al sistema operativo su planificacin.


Esta definicin vara ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o
ms hilos, la memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de
instrucciones y estado de ejecucin.
Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo de
la comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea
otro proceso se denomina bifurcacin (fork). Los nuevos procesos son independientes y no comparten memoria (es
decir, informacin) con el proceso que los ha creado.
En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un
proceso solamente puede crear hilos para s mismo y en que dichos hilos comparten toda la memoria reservada para
el proceso.
roceso informtico. Proceso referido a las instrucciones que ejecutar el microprocesador mientras lee un programa
determinado. Esto tambin implica a la memoria reservada y a sus contenidos, el estado de ejecucin en determinado
momento, y la informacin que permite al sistema operativo planificar.

Partes que lo conforman


Un proceso es un programa en ejecucin, los procesos son gestionados por el Sistema operativo y estn formados
por:

Las instrucciones de un programa destinadas a ser ejecutadas por el Microprocesador.

Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.

Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.

Otra informacin que permite al sistema operativo su planificacin.

Esta definicin vara ligeramente en el caso de Sistemas operativos multihilo, donde un proceso consta de uno o ms
hilos, la memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de
instrucciones y estado de ejecucin.
Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo de la
comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea
otro proceso se denomina Bifurcacin (fork). Los nuevos procesos pueden ser independientes y no compartir el
espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria.

En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un
proceso solamente puede crear hilos para s mismo y en que dichos hilos comparten toda la memoria reservada para
el proceso.
Algunos tipos de procesos

Proceso distribuido: Es una forma de proceso en la que los datos y las funciones estn distribuidos en los distintos
elementos de una configuracin o sistema.

Proceso paralelo: Es un tipo de proceso asimilable a los grandes sistemas.

Proceso cooperativo: Alude al hecho de que una nica aplicacin se gestiona desde dos (o ms) diferentes
configuraciones hardware.

Estados

de

un

proceso

El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados
discretos El principal trabajo del procesador es ejecutar las instrucciones de mquina que se encuentran en memoria
principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el
sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un
entorno de multiprogramacin, el procesador intercalar la ejecucin de instrucciones de varios programas que se
encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignacin
de recursos a cada proceso.

Estados de los procesos


3.2 Estados de los procesos
Todo proceso en un sistema operativo presenta un estado que indica la situacin de la ejecucin en que se encuentra.
El nmero de posibles estados vara de un sistema operativo a otro.
Diagrama de estados simplificado
Consideramos que todo proceso puede estar, como mnimo, en uno de los siguientes tres estados:

Activo: el proceso est empleando la CPU, por tanto, est ejecutndose. Pueden haber tantos procesos activos
como procesadores haya disponibles. Por tanto, si el sistema dispone de un nico procesador, nicamente puede
haber un proceso activo a la vez.

Preparado: el proceso no est ejecutndose pero es candidato a pasar a estado activo. Es el planificador el que,
en base a un criterio de planificacin, decide qu proceso selecciona de la lista de procesos preparados para
pasar a estado activo.

Bloqueado: el proceso est pendiente de un evento externo que le ha hecho bloquear, tales como una operacin
de lectura/escritura, la espera de finalizacin de un proceso hijo, una seal o una operacin sobre un semforo. El
dispositivo/hecho externo "avisa" al S.O. cuando ha terminado la accin que realizaba mediante una
INTERRUPCIN, dejando el S.O. lo que est haciendo para atender a esta ltima. Tras esto, el S.O. comprueba
cuales son los procesos que fueron bloqueados por ese evento externo, cambindolos al estado de preparado.

La transicin de activo a preparado y viceversa depende de decisiones tomadas por el planificador del sistema
operativo en base a un cierto criterio. La transicin de activo a bloqueado, y de bloqueado a preparado puede
inducirlas el programador mediante llamadas al sistema.

Qu es concurrencia?
n Definicin de diccionario: coincidir en el espacio o en el tiempo dos o ms personas o cosas.
En Informtica, se habla de concurrencia cuando hay una existencia simultnea de varios procesos en ejecucin.
n Ojo, concurrencia existencia simultnea no implica ejecucin simultnea.
En

computacin,

la

concurrencia

mltiplesprocesos sean ejecutados al

es

mismo

la
tiempo,

propiedad
y

que

de

los

sistemas

potencialmente

puedan

que

permiten

interactuar

entre

que
s.

Los procesos concurrentes pueden ser ejecutados realmente de forma simultnea, slo cuando cada uno es ejecutado
en diferentes procesadores. En cambio, la concurrencia es simulada si slo existe un procesador encargado de
ejecutar los procesos concurrentes, simulando la concurrencia, ocupndose de forma alternada en uno y otro proceso
a pequesimos intervalos de tiempo. De esta manera simula que se estn ejecutando a la vez.

Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros tambin en ejecucin, el
nmero de caminos de ejecucin puede ser extremadamente grande, resultando en un comportamiento sumamente
complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de
programacin y conceptos que permitan hacer la concurrencia ms manejable.

dministrador de Procesos y del Procesador


2.4.2

Sincronizaicon

de

Procesos

En muchos casos, los procesos se reunen para realizar tareas en conjunto, a este tipo de relacion se le llama
procesos cooperativos. Para lograr la comunicacion, los procesos deben sincronizarse, de no ser asi pueden ocurrir
problemas no deseados. La sincronizacion es la transmision y recepcion de senales que tiene por objeto llevar a cabo
el trabajo de un grupo de procesos cooperativos.
Es la coordinacion y cooperacion de un conjunto de procesos para asegurar la comparacion de recursos de computo.
La sincronizacion entre procesos es necesaria para prevenir y/o corregir errores de sincronizacion debidos al acceso
concurrente a recursos compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos
contendientes.

La

sincronizacion

entre

procesos

tambien

permite

intercambiar

senales

de

tiempo

(ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones especificas de precedencia
impuestas por el problema que se resuelve.
Sin una sincronizacion adecuada entre procesos, la actualizacion de variables compartidas puede inducir a errores de
tiempo relacionados con la concurrencia que son con frecuencia dificiles de depurar. Una de las causas principales
de este problema es que procesos concurrentes puedan observar valores temporalmente inconsistentes de una
variable compartida mientras se actualizan. una aproximacion para resolver este problema es realizar actualizaciones
de variables compartidas de manera mutuamente exclusiva. Se pueden mejorar permitiendo que a lo mas un proceso
entre a la vez en la seccion critica de codigo en la que se actualiza una variable compartida o estructura de datos en
particular.
Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender
bajo determinadas circunstancias la ejecucion de un proceso. Los principales mecanismos de sincronizacion que
ofrecen los sistemas operativos son:

Senales

Tuberias

Semaforos

Mutex y variables condicionales

Paso de mensajes

Concepto:
Un Interbloqueo supone un bloqueo permanente de un conjunto de procesos que compiten por recursos o bien se
comunican o sincronizan si.
Los procesos de los sistemas no solo son independientes, sino que compiten en el uso exclusivo de recursos, se
comunican y se sincronizan entre si. El sistema operativo debe encargarse de asegurar que estas interacciones se
llevan a cabo aproximadamente proporcionando la exclusin mutua requerida por las mismas. La necesidad de los
algunos procesos pueden entrar en conflicto entre si causando que estos se bloqueen indefinidamente.

El Interbloqueo surge debido a que produce un conflicto entre las necesidades de los procesos y el recurso que
necesita cada proceso lo posee el otro.
Se caracteriza por la existencia de un conjunto de entidades activas que utilizan un conjunto de recursos para llevar a
cabo su labor.

Entidades: activas que corresponden con los procesos existentes en el sistema. Un SO proporciona threads

que representan las entidades activas y son la unidad de ejecucin del sistema.
-

Recursos existentes en el sistema: son utilizados por los procesos para llevar a cabo su valor.

Tipos de recursos:

1-Recursos reutilizables o consumibles:


Se caracteriza por que el recurso existiendo despus de que un proceso lo use queda disponible para otros procesos.
El recurso es independiente de su utilizacin.
2-Recursos consumibles:
Estos se caracterizan por que dejan de existir una vez que los usa.
3-Recursos compartidos o exclusivos:
Estos recursos no se ven afectados por Interbloqueos ya que los procesos que quieran usarlos pueden hacerlo
inmediatamente sin posibilidad de quedarse bloqueados.
4-Recursos con un nico ejemplar o con mltiples:
Una solicitud de este recurso por parte de un proceso podra satisfacerse con cualquier ejemplar del mismo.

Prevencin de interbloqueo
Con la estrategia de prevencin se intenta eliminar el problema de raz, asegurando que nunca se pueden producir
interbloqueos. Dado que, como se realiz previamente, es necesario que se cumpla las cuatro condiciones de
Coffman

(exclusin mutua, retencin y espera, sin expropiacin, espera circular) para que se produzca un

interbloqueo, bastara nicamente con asegurar que una de estas condiciones no se puede satisfacer para eliminar los
interbloqueos en sistema. A continuacin se analizaran cada una de estas cuatro condiciones para ver si es posible
establecer estrategias que aseguren que no puede cumplirse.

Evitar interbloqueos
En vez de restringir la forma o el orden en que los procesos deben solicitar recursos, antes se debe conocer si es
seguro otorgar dichos recursos. Es decir, si se presentan las condiciones suficientes para un interbloqueo, todava es
posible evitarlos por medio de una restriccin en la asignacin de los procesos para tratar de buscar estados seguros.
Estas restricciones aseguran que al menos una de las condiciones necesarias para el interbloqueo no pueda
presentarse y por lo tanto, tampoco el interbloqueo.
Otro mtodo para evitar los interbloqueo consiste en requerir informacin adicional sobre cmo se solicitar los
recursos. Esta informacin puede ser:
1. La necesidad mxima de recursos de los procesos que se est ejecutando
2. La asignacin actual de recursos a procesos
3. La cantidad actual de instancias libres de cada recurso
En base al orden en que se solicitarn los recursos, se puede tomar la decisin de ejecutar el proceso o si debe
esperar. Por lo tanto, la evitacin del interbloqueo solo anticipa la posibilidad de interbloqueo y asegura que no exista
nunca tal posibilidad.
En los mecanismos para evitar interbloqueos viene relacionado los estados seguros e inseguros de los procesos en
los sistemas operativos.
Los estados seguros e inseguros
Un estado de asignacin de recursos se considera seguro si en l no hay posibilidad de interbloqueo. Para que un
estado sea seguro, es necesario que los procesos formen una secuencia segura. Una secuencia segura es una
ordenacin de los procesos de modo que los recursos que an puede pedir cualquier proceso pueden ser otorgados
con los recursos libres ms los recursos retenidos por los dems procesos. En base a ello, cuando un proceso realice
una solicitud de recursos, el sistema se los conceder slo en el caso de que la solicitud mantenga al sistema en un
estado seguro. Un estado inseguro es aquel en el que puede presentarse un interbloqueo.
An presentndose las condiciones para un interbloqueo, todava es posible evitarlo mediante una asignacin
cuidadosa de los recursos. Tal vez el algoritmo ms famoso para evitar el interbloqueo sea el algoritmo del banquero
de Dijkstra, cuyo interesante nombre se debe a que un banquero que otorga prstamos y recibe pagos a partir de una
determinada fuente de capital.
Algoritmo Dijkstra
El algoritmo del banquero permite la asignacin de unidades de cinta a los usuarios solamente cuando la asignacin
conduzca a estados seguros, y no a estados inseguros. Un estado seguro es una situacin tal en la que todos los
procesos son capaces de terminar en algn momento. Un estado inseguro es aquel en el cual puede presentarse un
bloqueo mutuo.
Ejemplos de interbloqueo

El Interbloqueo se puede definir como el bloque permanente de un conjunto de procesos que compiten por los
recursos del sistema, todos los interbloqueos suponen necesidades contradictorias de recursos, por parte de dos o
ms procesos.
Un ejemplo clsico de interbloqueo es el interbloqueo de trfico

Agaranta de seguridad
Eleccin del sistema operativo
Generalmente los motivos por los que un individuo elije un sistema operativo u otro tienen ms que ver con la facilidad
de uso o la gama de aplicaciones disponibles que con la seguridad. Sin embargo, la eleccin del sistema operativo
determinar en gran medida la garanta de seguridad que se podr conseguir al acceder a servicios ofrecidos a travs
de Internet. Por tanto, cuando se necesite esta garanta deben conocerse bien las caractersticas en lo que a
seguridad se refiere tienen los distintos sistemas operativos. Introducir estas caractersticas ser el objetivo de este
apartado.
Muchas veces se ha dicho que GNU/Linux es un sistema muy seguro (especialmente en comparacin con Windows),
pero esta afirmacin hay que matizarla: la verdad exacta es que GNU/Linux tiene el potencial para convertirse en
enormemente seguro. Pero de entrada no tiene porque serlo. En particular debemos ser conscientes de que se trata
de un sistema operativo pensado para entornos de red y por ello tiene grandes capacidades de conexin con otros
ordenadores y de ofrecerles servicios. En la mayora de distribuciones tras realizar la instalacin inicial se dejan
activos una serie de servicios como puede ser un servidor web, un servidor de ficheros (FTP), servicios de bajo nivel
(hora, caracteres aleatorios, etc). Desde el punto de vista de seguridad conviene desactivar todos los servicios que no
se deseen ofrecer para reducir el nmero de oportunidades que se le dan a un posible atacante para encontrar una
vulnerabilidad. Este sera el primer paso para configurar el sistema para que sea ms seguro. Slo mediante una
configuracin cuidadosa y exhaustiva del sistema operativo y sus aplicaciones se podr decir que el ordenador es
seguro. Y GNU/Linux ofrece las herramientas y la capacidad de configuracin necesaria para hacer esto posible.
Otra opcin, tambin libre, son los sistemas operativos de la serie BSD: NetBSD, OpenBSD y FreeBSD. Todos ellos
son de tipo UNIX y al igual que GNU/Linux tienen una gran capacidad de configuracin, lo que permite prepararlas
para que sean enormemente seguros. Cabe destacar el proyecto OpenBSD, que tiene como principal objetivo
construir un sistema operativo tan seguro como sea posible. Para ello auditan el cdigo tanto del ncleo como de las

herramientas y aplicaciones bsicas del sistema. Si se necesita un sistema muy seguro esta es una gran opcin.
Simplemente debe tenerse en cuenta que habitualmente son las aplicaciones bsicas las que son auditadas de forma
habitual.
En general los sistemas operativos propietarios estn en igualdad de condiciones frente a la seguridad que los
sistemas operativos libres que acaban de presentarse. Una ventaja que s han tenido hasta ahora es que el propio
fabricante daba soporte tcnico y garantas de seguridad de sus sistemas (especialmente en los UNIX propietarios).
De igual forma, otra ventaja adicional ofrecida por estos sistemas operativos, inexistente actualmente en GNU/Linux,
es que los fabricantes persiguen de forma activa la certificacin del sistema operativo (o una parte de ste) frente a los
estndares de seguridad del mercado. Por ejemplo, Solaris (de Sun) cuenta con una versin reducida (Trusted Solaris
7) que ha sido certificada B1 y que cumple el Common Criteria (CC, http://www.commoncriteria.org/) al nivel EAL4,
AIX de IBM tambin tiene una versin que cumple EAL4 del CC.
Pero ahora tambin estn apareciendo un nmero interesante de empresas de soporte que ofrecen este mismo
servicio para todo tipo de software libre. La diferencia es que no hay una nica opcin, sino tantas como el mercado
permita. Y con ello se est descubriendo tambin la ventaja que supone no estar atado a un proveedor del servicio. No
slo por la posibilidad de cambiar sino porque esta posibilidad obliga a las empresas que dan el servicio a esforzarse
en hacerlo lo mejor posible.
la seguridad informtica o seguridad de tecnologas de la informacin es el rea de la informtica que se enfoca en la
proteccin de la infraestructura computacional y todo lo relacionado con esta y, especialmente, la informacin
contenida o circulante. Para ello existen una serie de estndares, protocolos, mtodos, reglas, herramientas y leyes
concebidas para minimizar los posibles riesgos a la infraestructura o a la informacin. La seguridad informtica
comprende software (bases de datos, metadatos, archivos), hardware y todo lo que la organizacin valore (activo) y
signifique un riesgo si esta informacin confidencial llega a manos de otras personas, convirtindose, por ejemplo, en
informacin privilegiada.
El concepto de seguridad de la informacin no debe ser confundido con el de seguridad informtica, ya que este
ltimo solo se encarga de la seguridad en el medio informtico, pero la informacin puede encontrarse en diferentes
medios o formas, y no solo en medios informticos.
La seguridad informtica es la disciplina que se ocupa de disear las normas, procedimientos, mtodos y tcnicas
destinados a conseguir un sistema de informacin seguro y confiable.
Amenazas[editar]
No solo las amenazas que surgen de la programacin y el funcionamiento de un dispositivo de almacenamiento,
transmisin o proceso deben ser consideradas, tambin hay otras circunstancias que deben ser tenidas en cuenta,
incluso no informticas. Muchas son a menudo imprevisibles o inevitables, de modo que las nicas protecciones
posibles son las redundancias y la descentralizacin, por ejemplo mediante determinadas estructuras de redes en el
caso de las comunicaciones o servidores en clster para la disponibilidad.

Las amenazas pueden ser causadas por:

Usuarios: causa del mayor problema ligado a la seguridad de un sistema informtico. En algunos casos sus
acciones causan problemas de seguridad, si bien en la mayora de los casos es porque tienen permisos sobre
dimensionados, no se les han restringido acciones innecesarias, etc.

Programas maliciosos: programas destinados a perjudicar o a hacer un uso ilcito de los recursos del sistema. Es
instalado (por inatencin o maldad) en el ordenador, abriendo una puerta a intrusos o bien modificando los datos.
Estos programas pueden ser un virus informtico, un gusano informtico, un troyano, una bomba lgica, un
programa espa o spyware, en general conocidos como malware.

Errores de programacin: La mayora de los errores de programacin que se pueden considerar como una
amenaza informtica es por su condicin de poder ser usados como exploits por loscrackers, aunque se dan
casos donde el mal desarrollo es, en s mismo, una amenaza. La actualizacin de parches de los sistemas
operativos y aplicaciones permite evitar este tipo de amenazas.

Intrusos: persona que consiguen acceder a los datos o programas a los cuales no estn autorizados
(crackers, defacers, hackers, script kiddie o script boy, viruxers, etc.).

Un siniestro (robo, incendio, inundacin): una mala manipulacin o una mala intencin derivan a la prdida del
material o de los archivos.

Personal tcnico interno: tcnicos de sistemas, administradores de bases de datos, tcnicos de desarrollo, etc.
Los motivos que se encuentran entre los habituales son: disputas internas, problemas laborales, despidos, fines
lucrativos, espionaje, etc.

Fallos electrnicos o lgicos de los sistemas informticos en general.

Catstrofes naturales: rayos, terremotos, inundaciones, rayos csmicos, etc.

Tipos de amenaza[editar]
Existen infinidad de modos de clasificar un ataque y cada ataque puede recibir ms de una clasificacin. Por ejemplo,
un caso de phishing puede llegar a robar la contrasea de un usuario de una red social y con ella realizar una
suplantacin de la identidad para un posterior acoso, o el robo de la contrasea puede usarse simplemente para
cambiar la foto del perfil y dejarlo todo en una broma (sin que deje de ser delito en ambos casos, al menos en pases
con legislacin para el caso, como lo es Espaa).
Amenazas por el origen
El hecho de conectar una red a un entorno externo nos da la posibilidad de que algn atacante pueda entrar en ella,
con esto, se puede hacer robo de informacin o alterar el funcionamiento de la red. Sin embargo el hecho de que la
red no est conectada a un entorno externo, como Internet, no nos garantiza la seguridad de la misma. De acuerdo
con el Computer Security Institute (CSI) de San Francisco aproximadamente entre el 60 y 80 por ciento de los

incidentes de red son causados desde dentro de la misma. Basado en el origen del ataque podemos decir que existen
dos tipos de amenazas:

Amenazas internas: Generalmente estas amenazas pueden ser ms serias que las externas por varias razones
como son:

Si es por usuarios o personal tcnico, conocen la red y saben cmo es su funcionamiento, ubicacin de la
informacin, datos de inters, etc. Adems tienen algn nivel de acceso a la red por las mismas
necesidades de su trabajo, lo que les permite unos mnimos de movimientos.

Los sistemas de prevencin de intrusos o IPS, y firewalls son mecanismos no efectivos en amenazas
internas por, habitualmente, no estar orientados al trfico interno. Que el ataque sea interno no tiene que
ser exclusivamente por personas ajenas a la red, podra ser por vulnerabilidades que permiten acceder a la
red directamente: rosetas accesibles, redes inalmbricas desprotegidas, equipos sin vigilancia, etc.

Amenazas externas: Son aquellas amenazas que se originan fuera de la red. Al no tener informacin certera
de la red, un atacante tiene que realizar ciertos pasos para poder conocer qu es lo que hay en ella y buscar la
manera de atacarla. La ventaja que se tiene en este caso es que el administrador de la red puede prevenir una
buena parte de los ataques externos.

Amenazas por el efecto


El tipo de amenazas por el efecto que causan a quien recibe los ataques podra clasificarse en:

Robo de informacin.

Destruccin de informacin.

Anulacin del funcionamiento de los sistemas o efectos que tiendan a ello.

Suplantacin de la identidad, publicidad de datos personales o confidenciales, cambio de informacin, venta de


datos personales, etc.

Robo de dinero, estafas,...

Amenazas por el medio utilizado


Se pueden clasificar por el modus operandi del atacante, si bien el efecto puede ser distinto para un mismo tipo de
ataque:

Virus informtico: malware que tiene por objeto alterar el normal funcionamiento de la computadora, sin el
permiso o el conocimiento del usuario. Los virus, habitualmente, reemplazan archivos ejecutables por otros
infectados con el cdigo de este. Los virus pueden destruir, de manera intencionada, los datos almacenados
en un computadora, aunque tambin existen otros ms inofensivos, que solo se caracterizan por ser molestos.

Phishing.

Ingeniera social.

Denegacin de servicio.

Spoofing: de DNS, de IP, de DHCP, etc.

Amenaza informtica del futuro[editar]


Si en un momento el objetivo de los ataques fue cambiar las plataformas tecnolgicas ahora las tendencias
cibercriminales indican que la nueva modalidad es manipular los certificados que contienen la informacin digital.
El rea semntica, era reservada para los humanos, se convirti ahora en el ncleo de los ataques debido a la
evolucin de la Web 2.0 y las redes sociales, factores que llevaron al nacimiento de la generacin 3.0.

Se puede afirmar que la Web 3.0 otorga contenidos y significados de manera tal que pueden ser
comprendidos por las computadoras, las cuales -por medio de tcnicas de inteligencia artificial- son capaces
de emular y mejorar la obtencin de conocimiento, hasta el momento reservada a las personas.

Es decir, se trata de dotar de significado a las pginas Web, y de ah el nombre de Web semntica o Sociedad
del Conocimiento, como evolucin de la ya pasada Sociedad de la Informacin

En este sentido, las amenazas informticas que viene en el futuro ya no son con la inclusin de troyanos en los
sistemas o softwares espas, sino con el hecho de que los ataques se han profesionalizado y manipulan el
significado del contenido virtual.

La Web 3.0, basada en conceptos como elaborar, compartir y significar, est representando un desafo para
los hackers que ya no utilizan las plataformas convencionales de ataque, sino que optan por modificar los
significados del contenido digital, provocando as la confusin lgica del usuario y permitiendo de este modo la
intrusin en los sistemas, La amenaza ya no solicita la clave de homebanking del desprevenido usuario, sino
que directamente modifica el balance de la cuenta, asustando al internauta y, a partir de all, s efectuar el robo
del capital.

Obtencin de perfiles de los usuarios por medios, en un principio, lcitos: seguimiento de las bsquedas
realizadas, histricos de navegacin, seguimiento con geoposicionamiento de los mviles, anlisis de las
imgenes digitales subidas a Internet, etc.

Para no ser presa de esta nueva ola de ataques ms sutiles, se recomienda:

Mantener las soluciones activadas y actualizadas.

Evitar realizar operaciones comerciales en computadoras de uso pblico.

Verificar los archivos adjuntos de mensajes sospechosos y evitar su descarga en caso de duda.

Proteccin contra virus[editar]


Los virus son uno de los medios ms tradiccionales de ataque a los sistemas y a la informacin que sostienen. Para
poder evitar su contagio se deben vigilar los equipos y los medios de acceso a ellos, principalmente la red.
Control del software instalado[editar]
Tener instalado en la mquina nicamente el software necesario reduce riesgos. As mismo tener controlado el
software asegura la calidad de la procedencia del mismo (el software obtenido de forma ilegal o sin garantas aumenta
los riesgos). En todo caso un inventario de software proporciona un mtodo correcto de asegurar la reinstalacin en
caso de desastre. El software con mtodos de instalacin rpidos facilita tambin la reinstalacin en caso de
contingencia.

Control de la red[editar]
Los puntos de entrada en la red son generalmente el correo, las pginas web y la entrada de ficheros desde discos, o
de ordenadores ajenos, como porttiles.
Mantener al mximo el nmero de recursos de red solo en modo lectura, impide que ordenadores infectados
propaguen virus. En el mismo sentido se pueden reducir los permisos de los usuarios al mnimo.
Se pueden centralizar los datos de forma que detectores de virus en modo batch puedan trabajar durante el tiempo
inactivo de las mquinas.
Controlar y monitorizar el acceso a Internet puede detectar, en fases de recuperacin, cmo se ha introducido el virus.
Proteccin de acceso a las redes[editar]
Independientemente de las medidas que se adopten para proteger a los equipos de una red de rea local y el software
que reside en ellos, se deben tomar medidas que impidan que usuarios no autorizados puedan acceder. Las medidas
habituales dependen del medio fsico a proteger.
A continuacin se enumeran algunos de los mtodos, sin entrar al tema de la proteccin de la red frente a ataques o
intentos de intrusin desde redes externas, tales como Internet.
Redes cableadas[editar]
Las rosetas de conexin de los edificios deben estar protegidas y vigiladas. Una medida bsica es evitar tener puntos
de red conectados a los switches. An as siempre puede ser sustituido un equipo por otro no autorizado con lo que
hacen falta medidas adicionales: norma de acceso 802.1x, listas de control de acceso por MAC addresses, servidores
de DHCP por asignacin reservada, etc.
Redes inalmbricas[editar]
En este caso el control fsico se hace ms difcil, si bien se pueden tomar medidas de contencin de la emisin
electromgntica para circunscribirla a aquellos lugares que consideremos apropiados y seguros. Adems se
consideran medidas de calidad el uso del cifrado (WEP, WPA, WPA v.2, uso de certificados digitales, etc.),
contraseas compartidas y, tambin en este caso, los filtros de direcciones MAC, son varias de las medidas habituales
que cuando se aplican conjuntamente aumentan la seguridad de forma considerable frente al uso de un nico mtodo.

CASO DE ESTUDIO: OS/2

El sistema operativo OS/2 ha tenido una historia turbulenta en el seno de Microsoft e IBM, creciendo en algn
tiempo bajo equipos de trabajo de ambas compaias y prosiguiendo finalmente con la ltima. Los objetivos
para este sistema operativo eran: compatibilidad para ejecutar los programas existentes para DOS en las
computadoras 80x86, ofrecer la multitarea, la facilidad de memoria virtual y servicios de red de rea local
[Alcal92].

You might also like