Está en la página 1de 35

MATERIA:

TEORA DE SISTEMAS OPERATIVOS


CATEDRTICO:
ALUMNO:

MARIO ALBERTO GARCIA RINCON


TAREA:

UNIDAD 1
FECHA:

01 DE JUNIO DE 2014

NDICE
1.1 DEFINICIN DE SISTEMA OPERATIVO................................................................... 3
1.2 GENERACIONES DE SISTEMAS OPERATIVOS ...................................................... 5
1.3 CLASIFICACIN DE LOS SISTEMAS OPERATIVOS .......................................... 11
1.4 SISTEMAS OPERATIVOS COMO MAQUINA EXTENDIDA Y COMO
ADMINISTRACIN DE RECURSOS .................................................................................. 18
1.5 DEFINICIN DE PROCESO ........................................................................................... 19
1.6 PROCESOS CONCURRENTES .................................................................................... 21
1.6.1 PROCESAMIENTO EN PARALELO .................................................................................. 21
1.6.2 SEMFOROS ............................................................................................................................. 23
1.6.3 SEMFOROS DE OCUPADORES (BUSY WAITING) ............................................. 24
1.6.4 MONITORES............................................................................................................................... 25
1.6.5 INTERBLOQUEO ...................................................................................................................... 27

1.7 ADMINISTRACIN DEL PROCESADOR .................................................................. 28


1.7.1 PLANIFICACIN DEL TRABAJO ....................................................................................... 28
1.7.3 MULTIPROCESO ...................................................................................................................... 29

1.8 ADMINISTRACIN DE LA MEMORIA ........................................................................ 29


1.8.1 ALMACENAMIENTO REAL .................................................................................................. 30
1.8.2 ORGANIZACIN, JERARQUA Y ESTRATEGIA DE ALMACENAMIENTO ....... 30
1.8.3 MULTIPROGRAMACIN ....................................................................................................... 31

1.9 ALMACENAMIENTO VIRTUAL ..................................................................................... 31


1.10 ADMINISTRACIN DEL ALMACENAMIENTO SECUNDARIO .................... 32
FUENTES DE INVESTIGACIN ................................................................................................ 34

UNIDAD 1 FUNDAMENTOS TERICOS DE LOS SISTEMAS


OPERATIVOS

1.1 DEFINICIN DE SISTEMA OPERATIVO


El sistema operativo es el programa (o software) ms importante de un ordenador.
Para que funcionen los otros programas, cada ordenador de uso general debe
tener un sistema operativo. Los sistemas operativos realizan tareas bsicas, tales
como reconocimiento de la conexin del teclado, enviar la informacin a la
pantalla, no perder de vista archivos y directorios en el disco, y controlar los
dispositivos perifricos tales como impresoras, escner, etc.
En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y
poder, es como un polica de trfico, se asegura de que los programas y usuarios
que estn funcionando al mismo tiempo no interfieran entre ellos. El sistema
operativo tambin es responsable de la seguridad, asegurndose de que los
usuarios no autorizados no tengan acceso al sistema.
Clasificacin de los Sistemas Operativos
Los sistemas operativos pueden ser clasificados de la siguiente forma:

Multiusuario: Permite que dos o ms usuarios utilicen sus programas al mismo


tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios
al mismo tiempo.
Multiprocesador: soporta el abrir un mismo programa en ms de una CPU.
Multitarea: Permite que varios programas se ejecuten al mismo tiempo.
Multitramo: Permite que diversas partes de un solo programa funcionen al mismo
tiempo.
Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos
como DOS y UNIX, no funcionan en tiempo real.
Cmo funciona un Sistema Operativo
Los sistemas operativos proporcionan una plataforma de software encima de la
cual otros programas, llamados aplicaciones, puedan funcionar. Las aplicaciones
se programan para que funcionen encima de un sistema operativo particular, por
tanto, la eleccin del sistema operativo determina en gran medida las aplicaciones
que puedes utilizar.
Los sistemas operativos ms utilizados en los PC son DOS, OS/2, y Windows,
pero hay otros que tambin se utilizan, como por ejemplo Linux.
Cmo se utiliza un Sistema Operativo
Un usuario normalmente interacta con el sistema operativo a travs de un
sistema de comandos, por ejemplo, el sistema operativo DOS contiene comandos
como copiar y pegar para copiar y pegar archivos respectivamente. Los comandos
son aceptados y ejecutados por una parte del sistema operativo llamada
procesador de comandos o intrprete de la lnea de comandos. Las interfaces
grficas permiten que utilices los comandos sealando y pinchando en objetos que
aparecen en la pantalla.
Botones cortar y copiar
Ejemplos de Sistema Operativo
A continuacin detallamos algunos ejemplos de sistemas operativos:
Familia Windows
Windows 95
Windows 98
Windows ME
Windows NT
Windows 2000
Windows 2000 server
Windows XP
Windows Server 2003
Windows CE
Windows Mobile

Windows XP 64 bits
Windows Vista (Longhorn)
Familia Macintosh
Mac OS 7
Mac OS 8
Mac OS 9
Mac OS X
Familia UNIX
AIX
AMIX
GNU/Linux
GNU / Hurd
HP-UX
Irix
Minix
System V
Solaris
UnixWare

1.2 GENERACIONES DE SISTEMAS OPERATIVOS


El desarrollo de los sistemas operativos esta muy relacionado con el desarrollo de
las arquitecturas de los sistemas computacionales, por esta razn clasificaremos
el desarrollo de los sistemas operativos en generaciones que han sido marcadas
en base a las tecnologas de construccin de dichas arquitecturas.
Primera Generacin (1945-1955):
La lgica o software de los ordenadores se ha complicado conforme han
evolucionado stos. Los primeros ordenadores, a partir de 1944 en que
Aiken construy el Mark-I, slo podan programarse en lenguaje mquina, y
puede decirse que el Sistema Operativo an no exista.
J. V. Neumann fue quien dio el primer paso en la informtica y en las
relaciones hombre-mquina con el concepto de programa almacenado, que
consiste en archivar en el ordenador un conjunto de instrucciones mquina
para posteriormente ejecutarlas. La aparicin del Assembler, lenguaje
nemotcnico-simblico, constituy un gran avance sobre la primitiva
programacin en cdigo mquina. La forma de explotar los sistemas ha ido
evolucionando con el tiempo; los ms sencillos funcionaban con
monoprogramacin. Monoprogramacin o monoejecucin es el sistema de

explotacin en el que se ejecuta solamente un programa cada vez y no


comienza la ejecucin de otro hasta terminar con el anterior.
En 1948, con Noam Chomsky, surge la teora de las gramticas generativas
transformacionales, que es la base de los traductores de lenguajes. En
1955 comenz el desarrollo de los lenguajes de alto nivel, y al mismo
tiempo se empez a dividir el trabajo entre personas: operadores y
programadores. Las funciones del operador tenan ms directamente que
ver con la administracin y control de los recursos del Sistema Operativo y
la carga de trabajos, y las de los programadores con la codificacin de los
programas.
El monitor es el programa antepasado del Sistema Operativo. Abarca
funciones muy elementales, como visualizar y modificar los contenidos de la
memoria principal, el lanzamiento automtico para la ejecucin de un
programa, la introduccin de puntos de ruptura en los programas para
puesta a punto, etc. Gracias al monitor apareci el concepto de secuencia
automtica de trabajos.
Actualmente, al estar superado el concepto de monoprogramacin, es
frecuente que tengamos que familiarizarnos con los conceptos de
multiprogramacin, tiempo compartido, multiproceso y tiempo real.

Segunda Generacin (1955-1965):


Multiprocesamiento : Durante la segunda generacin , al menos un
proveedor ofreca un sistema de multiprocesamiento, que era un sistema de
computo que tena ms de una unidad central de proceso. En realidad el
sistema consista en dos computadoras completas; las computadora ms
pequea tena un sistema operativo y controlaba ambas mquinas. La
computadora ms grande era esclava de la ms pequea. La computadora
pequea procesaba la entrada de informacin y ordenaba e imprima toda
la salida utilizando todos los discos como entrada de almacenamiento
temporal. Un sistema operativo ubicado en la computadora ms grande
indicaba a la mquina de control que necesitaba servicio.
Sistemas en lnea :Los primeros sistemas en lneas presentaban programas
de sistema operativo diseados especialmente para controlar los recursos
de la computadora. Los programas de aplicacin de un sistema en lnea
expresan la lgica de aplicacin y los llamados mediante programas de
sistemas.
El supervisor de un sistema en lnea establece una serie de colas y
programa el servicio. Primero se arma un mensaje de entrada en un buffer
de comunicaciones; puede cambiarse el cdigo de este mensaje y
trasladarse a una cola de entrada en la memoria mediante un programa de

aplicacin. El sistema operativo registra este mensaje en la cola de


mensajes a procesarse.
Cuando la unidad central de proceso esta disponible el supervisor le ordena
que atienda una cola, por ejemplo la que contiene un mensaje de entrada.
Un programa de aplicacin llamado mediante el sistema operativo puede
verificar la correccin del mensaje, despus de lo cual el mensaje se coloca
en una cola de trabajo.
El nacimiento del tiempo compartido : Los primeros sistemas de negocios
tambin estaban utilizando sistemas operativos para sus equipos de
segunda generacin. Cuando fue anunciada la tercera generacin de
computadoras los fabricantes claramente haban abrazado la idea de un
sistema operativo. La lnea 360 de la IBM no poda funcionar sin la ayuda
de tal sistema operativo maneja toda la entrada/salida por medio de
interrupciones. De hecho existen interrupciones especiales que la
computadora solo puede ejecutar cuando est en estado supervisor, bajo el
control de los sistemas operativos.

Esta generacin se caracteriza por la utilizacin de la tecnologa que


incluye transistores. Estos proporcionan mejores caractersticas que los
tubos al vaco: son ms pequeos, disipan menos calor y son ms rpidos.
En esta poca, ya no hay un solo grupo que se dedica a disear, construir,
operar y mantener el sistema computacional, sino que la mantencin la
realizan otras personas. La programacin, en este perodo se ve apoyada
por la creacin de lenguajes ensambladores y lenguajes de alto nivel; como
Fortran y Cobol .
Para optimizar el tiempo de utilizacin del sistema computacional, se
adopt el Procesamiento por Lotes. Este procedimiento se puede resumir
en los siguientes pasos:
Varios trabajos son ledos desde tarjetas perforadas y almacenados en
cinta
El computador ejecuta programas que lee de una cinta y escribe los
resultados en otra cinta.
Los resultados escritos en la cinta son desplegados a travs de la
impresora.
Como consecuencia de la utilizacin de tecnologa de mejores
caractersticas, el procesamiento por lotes, la utilizacin de un operador de
sistema y un sistema operativo primitivo se logr minimizar el tiempo ocioso
de los computadores.

Tercera Generacin (1965-1980):


Multisistemas : El estudio del hardware se menciona el desarrollo de los
canales de datos para absorber algo de carga de E/S de la CPU. Sin
embargo, todava exista un equilibrio entre la UCP y la E/S an con la
ayuda de los canales en la mayor parte de los sistemas comerciales que
tienen mucha actividad de E/S se puede tener la UCP ociosa ms del 50%
del tiempo principalmente debido a la espera de la terminacin de
operaciones de entrada/salida.
Los sistemas operativos en batch de la tercera generacin introdujeron el
concepto de multiprogramacin, proceso muy similar a las tcnicas de
sacar y meter programas desarrollados para el tiempo compartido. En la
multiprogramacin hay ms de un programa semiactivo en la memoria a la
vez. La multiprogramacin intenta ocultar retrasos de E/S cambiando a
UCP a otro programa cuando no puede procesar por ms tiempo el que
estaba procesando, debido a un solicitud de E/S.
La multiprogramacin ha ayudado a incrementar la productividad, o sea el
nmero de trabajos por unidad de tiempo. Sin embargo, puede tomar ms
tiempo correr un solo trabajo bajo multiprogramacin que bajo un
procesador unitario, a causa de las interrupciones.
No debe confundirse la multiprogramacin con el multiprocesamiento. En
un sistema de multiprogramacin, la unidad central de procesamiento
ejecuta solamente un programa a la vez. Varios programas estn presentes
en la memoria en un estado semiactivo; su ejecucin ha sido suspendida
temporalmente. Algunos sistemas de la tercera generacin tambin
presentan el multiprocesamiento, o sea la presencia de ms de una unidad
central de proceso. Estos procesadores estn controlados por el sistema
operativo y, por supuesto, son multiprogramados ya que por lo menos
existe el potencial para ejecutar un programa en cada procesador al mismo
tiempo. Estos sistemas multiprocesadores con atractivos en un ambiente de
fuerte actividad computacional o como respaldo. Varios sistemas de tiempo
compartido, por ejemplo, utilizan el multiprocesamiento.
Sistemas en lnea : Durante la tercera generacin, los sistemas operativos
vinieron con ms mdulos para facilitar el desarrollo de los sistemas en
lnea, especialmente para respaldar el procesamiento de terminales y
telecomunicaciones. Los sistemas estaban diseados para apoyar una
mezcla de procesamiento batch y consultas en lnea.
Tiempo compartido: Durante la tercera generacin, el proyecto MAC del
MIT desarroll tambin un nuevo sistema de tiempo compartido llamado
MULTICS. Este sistema presenta una importante innovacin que influy en
los sistemas de cmputo posteriores. Un objetivo del MULTICS era

proporcionar al programador la apariencia de una memoria real. La


memoria virtual puede producirse combinando la segmentacin y la
paginacin enfoque que tambin facilita el desarrollo de los procedimientos
re-entrantes. Bsicamente, un programa y sus datos se dividen en pginas.
Solamente se cargan en un momento dado, las pginas necesarias en el
almacenamiento primario; las otras pginas se mantienen en dispositivos
de almacenamiento secundario.

La tecnologa utilizada en este perodo corresponde a la de circuitos


integrados, lo cual permiti construir mquinas ms baratas y con mejor
rendimiento. La empresa IBM fue la primera en utilizar esta tecnologa.
Una de las principales caractersticas de los sistemas operativos de hoy,
que aparecen en esta generacin es la Multiprogramacin. Esta tcnica
consiste en particionar la memoria de manera de contener simultneamente
muchos trabajos, lo que permite independencia en las acciones de la
mquina. Por ejemplo, si un trabajo est esperando por Entrada/Salida, otro
trabajo puede estar utilizando la CPU. Con la utilizacin de la
multiprogramacin, se mejora el tiempo de utilizacin de la CPU, pero se
crean problemas de proteccin y seguridad, debido al particionamiento de
la memoria.
Otra caracterstica importante de los sistemas operativos de esta
generacin es la aparicin de la tcnica de Spooling (Operacin simultnea
y en lnea de perifricos ). Esta consiste en la capacidad de leer los trabajos
de cinta al disco, haciendo posible que a medida que hubiera espacio en
memoria se poda pasar al siguiente trabajo. De esta manera las
operaciones de perifricos se realizan en paralelo con la utilizacin de la
CPU.
Durante esta generacin aparecen los primeros sistemas de Tiempo
compartido, esto consiste en que se le asigna a cada trabajo un tiempo fijo
de utilizacin de CPU, este perodo de tiempo (denominado time slot) es
pequeo, pues el uso de tiempo compartido tiene como objetivo manejar a
distintos usuarios mediante terminales que tengan la ilusin de estar
ocupando la mquina como si fueran nicos. El primer sistema operativo
importante de tiempo compartido es el (CTSS) y fue desarrollado en MIT
(Massachusetts Institute of Technology).
Otros de los sistemas que surgi en este periodo es MULTICS, el que sirvi
de base para el desarrollo del sistema UNIX.
Cuarta Generacin (1980-1990):
Esta generacin se caracteriza por la utilizacin de los microprocesadores
para la construccin de computadores de menor tamao, haciendo posible

que una sola persona tuviera su propio computador personal. Los


computadores personales con mayores capacidades y que se empezaron a
utilizar en la empresa y en las universidades recibieron el nombre de
estaciones de trabajo.
Durante esta generacin aparecen los sistemas operativos que
proporcionan una interfaz ms amigable al usuario, esto se traduce en
mejores herramientas de interaccin con el computador, tales como
capacidades grficas, conos, sistemas de mens, etc.
Los sistemas operativos que cobran gran popularidad en este perodo son
MS-DOS de Microsoft y UNIX. Este ltimo tuvo sus primeros desarrollos en
Berkeley y posteriormente en AT&T.
DOS (sistema operativo en disco)
VERSIONES:
PC-DOS (IBM)
DR-DOS (Digital Research)
MS-DOS 1.0 Abril 1981
1.1
2.0
3.0
3.1
3.2
MS-DOS (Microsoft)

! 3.3

! 4.0
5.0
! 6.0
6.2
7.0 Agosto 1995
Se trata del 1 sistema operativo creado para ordenadores personales en la
dcada de los 80 dado que los sistemas anteriores fueron creados para

maquinas grandes en entornos de empresa. A lo largo del tiempo pugnaron


tres fabricantes por la hegemona del mercado hasta que en la dcada de
los 90 con la aparicin de las 1as plataformas de Windows 3.0 3.1 y 3.11
Microsoft se queda sola por la retirada de los dems aunque ya IBM lo
haba dejado mucho tiempo antes.
Se trata de un sistema operativo grabado sobre disco de modo que se ha
de encontrar permanentemente activo y residente para poder trabajar con
esa maquina.
Esto ahora parece intrascendente ya que todos los sistemas operativos
(Windows, Windows9.x, Unix, Linux, etc..) Estn ocupando algunos de los
discos duros del ordenador pero al principio los ordenadores no tenan
disco duro ya que aun no se haban inventado y por tanto se encontraba en
un diskette que deba estar permanentemente introducido con el agravante
de que solo haba una disquetera.
Entre todas las versiones que salieron al mercado y omitiendo las primeras muy
dependientes de la rudimentaria tecnologa de entonces son las versiones 3.3,4.0
y 6.2 las que tuvieron un mayor xito comercial. En la actualidad la versin 7.0 aun
siendo la ms reciente no es la mas difundida ya que esta muy arraigada la 6.22.
Por otro lado estas versiones han dejado paso a aquellas otras que dependen de
Windows como sistema mayoritariamente extendido pasando a adoptar la
numeracin de la versin de Windows.

1.3 CLASIFICACIN DE LOS SISTEMAS OPERATIVOS


Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de
diferentes maneras, dependiendo del uso o de la aplicacin que se les daba. A
continuacin se mostrarn diversos tipos de Sistemas Operativos que existen en
la actualidad, con algunas de sus caractersticas:
Sistemas Operativos de multiprogramacin (o Sistemas Operativos de multitarea).
Es el modo de funcionamiento disponible en algunos sistemas operativos,
mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen
varios tipos de multitareas. La conmutacin de contextos (context Switching) es un
tipo muy simple de multitarea en el que dos o ms aplicaciones se cargan al
mismo tiempo, pero en el que solo se esta procesando la aplicacin que se
encuentra en primer plano (la que ve el usuario). Para activar otra tarea que se

encuentre en segundo plano, el usuario debe traer al primer plano la ventana o


pantalla que contenga esa aplicacin. En la multitarea cooperativa, la que se
utiliza en el sistema operativo Macintosh, las tareas en segundo plano reciben
tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en
primer plano (por ejemplo, cuando esta aplicacin esta esperando informacin del
usuario), y siempre que esta aplicacin lo permita. En los sistemas multitarea de
tiempo compartido, como OS/2, cada tarea recibe la atencin del microprocesador
durante una fraccin de segundo. Para mantener el sistema en orden, cada tarea
recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido
temporal del usuario es mucho ms lento que la velocidad de procesamiento del
ordenador, las operaciones de multitarea en tiempo compartido parecen ser
simultneas.
Se distinguen por sus habilidades para poder soportar la ejecucin de dos o ms
trabajos activos (que se estn ejecutado) al mismo tiempo. Esto trae como
resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna
tarea que ejecutar, aprovechando al mximo su utilizacin.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada
uno est usando el procesador, o un procesador distinto, es decir, involucra
mquinas con ms de una UCP.
Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MACOS, OS/2, soportan la multitarea.
Las caractersticas de un Sistema Operativo de multiprogramacin o multitarea
son las siguientes:
Mejora productividad del sistema y utilizacin de recursos.
Multiplexa recursos entre varios programas.
Generalmente soportan mltiples usuarios (multiusuarios).
Proporcionan facilidades para mantener el entorno de usuarios individuales.
Requieren validacin de usuario para seguridad y proteccin.
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 definicin ya que
soportan la ejecucin simultnea de mltiples tareas sobre diferentes
procesadores.

En general, los sistemas de multiprogramacin se caracterizan por tener mltiples


programas activos compitiendo por los recursos del sistema: procesador,
memoria, dispositivos perifricos.
Sistema Operativo Mono tareas.
Los sistemas operativos mono tareas son ms primitivos y es todo lo contrario al
visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o
que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la
computadora esta imprimiendo un documento, no puede iniciar otro proceso ni
responder a nuevas instrucciones hasta que se termine la impresin.
Sistema Operativo Monousuario.
Los sistemas monousuarios son aquellos que nada ms puede atender a un solo
usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo
de aplicacin que se este ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de
entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere
decir, que las instrucciones que se dan, son procesadas de inmediato; ya que
existe un solo usuario. Y estn orientados principalmente por los
microcomputadores.
Sistema Operativo Multiusuario.
Es todo lo contrario a monousuario; y en esta categora se encuentran todos los
sistemas que cumplen simultneamente las necesidades de dos o ms usuarios,
que comparten mismos recursos. Este tipo de sistemas se emplean especialmente
en redes.
En otras palabras consiste en el fraccionamiento del tiempo (timesharing).
Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con
poca o ninguna interaccin entre los usuarios y los programas en ejecucin. Se
renen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la
espera de dos o ms trabajos como sucede en el procesamiento en serie. Estos
sistemas son de los ms tradicionales y antiguos, y fueron introducidos alrededor
de 1956 para aumentar la capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucin
muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos
pueden ser simples, debido a la secuencialidad de la ejecucin de los trabajos.

Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del
DC6600, el cual est orientado a procesamiento cientfico pesado, y el EXEC II
para el UNIVAC 1107, orientado a procesamiento acadmico.
Algunas otras caractersticas con que cuentan los Sistemas Operativos por lotes
son:
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.
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
procesamiento serial.

computadores

personales

combinados

con

Planificacin del procesador sencilla, tpicamente procesados en orden de llegada.


Planificacin de memoria sencilla, generalmente se divide en dos: parte residente
del SO. 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.
Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene
importancia el usuario, sino los procesos. Por lo general, estn subutilizados sus
recursos con la finalidad de prestar atencin a los procesos en el momento que lo
requieran. se utilizan en entornos donde son procesados un gran nmero de
sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones
muy especficas como control de trfico areo, bolsas de valores, control de
refineras, control de laminadores. Tambin en el ramo automovilstico y de la
electrnica de consumo, las aplicaciones de tiempo real estn creciendo muy

rpidamente. Otros campos de aplicacin de los Sistemas Operativos de tiempo


real son los siguientes:
Control de trenes.
Telecomunicaciones.
Sistemas de fabricacin integrada.
Produccin y distribucin de energa elctrica.
Control de edificios.
Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris,
Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las
siguientes caractersticas:
Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de
sucesos, la mayora externos al sistema computacional, en breve tiempo o dentro
de ciertos plazos.
Se utilizan en control industrial, conmutacin telefnica, control de vuelo,
simulaciones en tiempo real., aplicaciones militares, etc.
Objetivo es proporcionar rpidos tiempos de respuesta.
Procesa rfagas de miles de interrupciones por segundo sin perder un solo
suceso.
Proceso se activa tras ocurrencia de suceso, mediante interrupcin.
Proceso de mayor prioridad expropia recursos.
Por tanto generalmente se utiliza planificacin expropiativa basada en prioridades.
Gestin de memoria menos exigente que tiempo compartido, usualmente
procesos son residentes permanentes en memoria.
Poblacin de procesos esttica en gran medida.
Poco movimiento de programas entre almacenamiento secundario y memoria.
Gestin de archivos se orienta ms a velocidad de acceso que a utilizacin
eficiente del recurso.

Sistemas Operativos de tiempo compartido.


Permiten la simulacin de que el sistema y sus recursos son todos para cada
usuario. El usuario hace una peticin a la computadora, esta la procesa tan pronto
como le es posible, y la respuesta aparecer en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de
E/S, son continuamente utilizados entre los diversos usuarios, dando a cada
usuario la ilusin de que tiene el sistema dedicado para s mismo. Esto trae como
consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en
la administracin de memoria principal y secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y
DEC-10.
Caractersticas de los Sistemas Operativos de tiempo compartido:
Populares representantes de sistemas multiprogramados multiusuario, ej.:
sistemas de diseo asistido por computador, procesamiento de texto, etc.
Dan la ilusin de que cada usuario tiene una mquina para s.
Mayora utilizan algoritmo de reparto circular.
Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y
disminuye despus de concedido el servicio.
Evitan monopolizacin del sistema asignando tiempos de procesador (time slot).
Gestin de memoria proporciona proteccin a programas residentes.
Gestin de archivo debe proporcionar proteccin y control de acceso debido a que
pueden existir mltiples usuarios accesando un mismo archivos.
Sistemas Operativos distribuidos.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores.
Puede ser que este conjunto de procesadores est en un equipo o en diferentes,
en este caso es trasparente para el usuario. Existen dos esquemas bsicos de
stos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y
un reloj global, cuyos tiempos de acceso son similares para todos los
procesadores. En un sistema dbilmente acoplado los procesadores no comparten
ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente
del sistema se compone otro componente debe de ser capaz de reemplazarlo.

Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Caractersticas de los Sistemas Operativos distribuidos:
Coleccin de sistemas autnomos capaces de comunicacin y cooperacin
mediante interconexiones hardware y software .
Gobierna operacin de un S.C. y proporciona abstraccin de mquina virtual a los
usuarios.
Objetivo clave es la transparencia.
Generalmente proporcionan medios para la comparticin global de recursos.
Servicios aadidos: denominacin global, sistemas de archivos distribuidos,
facilidades para distribucin de clculos (a travs de comunicacin de procesos
internodos, llamadas a procedimientos remotos, etc.).
Sistemas Operativos de red.
Son aquellos sistemas que mantienen a dos o ms computadoras unidas a travs
de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder
compartir los diferentes recursos y la informacin del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador
Motorola 68000, pasando posteriormente a procesadores Intel como Novell
Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware,
Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.
Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o ms
procesos que compitan por algn recurso se puedan realizar o ejecutar al mismo
tiempo.
En UNIX existe tambin la posibilidad de ejecutar programas sin tener que
atenderlos en forma interactiva, simulando paralelismo (es decir, atender de
manera concurrente varios procesos de un mismo usuario). As, en lugar de
esperar a que el proceso termine de ejecutarse (como lo hara normalmente),
regresa a atender al usuario inmediatamente despus de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos estn: Alpha, PVM, la serie AIX,
que es utilizado en los sistemas RS/6000 de IBM.

1.4 SISTEMAS OPERATIVOS COMO MAQUINA EXTENDIDA Y COMO


ADMINISTRACIN DE RECURSOS
Mquina extendida o mquina virtual es el sistema operativo que funciona sobre el
hardware como interprete de ordenes programadas que le permiten controlar y
administrar de forma autnoma y dinmica, y a la vez presenta una interfaz de
usuario que se comunica y le permite al usuario interactuar con el hardware.
Una PC Virtual o software de virtualizacin basado en hardware es una mquina
independiente que emula una computadora fsica a la que es posible instalar
sistemas operativos y toda clase de aplicaciones con ciertas limitaciones que
hacen a estas aplicaciones incompatibles. Tales limitaciones son por ejemplo la
capacidad para procesar grficos avanzados en 3D e incluso en 2D segn su
programacin, y otras tecnologas que ciertas aplicaciones requieren pero que no
se encuentran en la mquina virtual por estar basada en especificaciones de una
PC real algo antigua. Adems que ciertas operaciones requieren mayor tiempo de
respuesta que la PC Virtual debe intentar compensar, y el uso de recursos puede
hacer que el sistema operativo anfitrin o host se sature al tiempo que la pc virtual
o husped o guest tambin se vuelve inestable o se sature.
En otras palabras el sistema operativo es el software o consola que interpreta
ordenes programadas y ordenes de usuario, y el usuario puede ser incluso otra
consola o una persona.

Sistema operativo como administrador de recursos


principales tareas que realiza un sistema operativo son:
a)Administracin de memoria
Mantiene el estado de los programas y datos residentes en memoria,
esperando el uso de la CPU, algn dispositivo de E/S o la utilizacin de algn otro
recurso.
Contiene tablas de asignacin de direcciones que indican qu programas y
datos estn en memoria, cuanto espacio ocupan en forma independiente y dnde
estn ubicados.
Asigna o quita espacio en memoria a programas segn sea posible o
requerido.

b) Administracin de CPU
Decide qu programa hace uso del recurso de la unidad central de
procesamiento, en que momento y por cunto tiempo.
Crea una lista de espera con los programas que estn solicitando utilizar
este recurso a fin de poder asignar posteriormente el recurso bajo alguna poltica
de prioridad.
c) Manejo de dispositivos de E/S
Controla el flujo de datos desde y hacia cualquier dispositivo de entrada y
salida.
Controla la comunicacin con los dispositivos de E/S y para dispositivos
particulares existen programas especiales de control de perifricos (drivers).
d) Administracin de archivos en disco
Crea, elimina, copia y controla el acceso a los archivos. Mantiene
directorios de los archivos existentes en el disco y administra el espacio libre.
e) Comunicacin con el usuario
Permite que el operador controle el computador.
Indica y, si es posible, controla los errores ocurridos en el sistema. Por
ejemplo el trmino anormal de alguna aplicacin debido a fallas de la aplicacin
misma o problemas de hardware.
Indica el nmero de usuarios que estn utilizando el sistema
computacional.
Permite la utilizacin de dispositivos generales o particulares; cuando no se
encuentran disponibles enva un correspondiente mensaje de informacin al
usuario o la aplicacin que lo solicita.

1.5 DEFINICIN DE PROCESO


Un proceso puede informalmente entenderse como un programa en ejecucin.
Formalmente un proceso es "Una unidad de actividad que se caracteriza por la
ejecucin de una secuencia de instrucciones, un estado actual, y un conjunto de
recursos del sistema asociados".
Para entender lo que es un proceso y la diferencia entre un programa y un
proceso, A. S. Tanenbaum propone la analoga "Un cientfico computacional con
mente culinaria hornea un pastel de cumpleaos para su hija; tiene la receta para
un pastel de cumpleaos y una cocina bien equipada con todos los ingredientes
necesarios, harina, huevo, azcar, leche, etctera." Situando cada parte de la

analoga se puede decir que la receta representa el programa (el algoritmo), el


cientfico computacional es el procesador y los ingredientes son las entradas del
programa. El proceso es la actividad que consiste en que el cientfico
computacional vaya leyendo la receta, obteniendo los ingredientes y horneando el
pastel.
Cada proceso tiene su contador de programa, registros y variables, aislados de
otros procesos, incluso siendo el mismo programa en ejecucin 2 veces. Cundo
este ltimo caso sucede, el sistema operativo usa la misma regin de memoria de
cdigo, debido a que dicho cdigo no cambiar, a menos que se ejecute una
versin distinta del programa.
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 unidad central de procesamiento para dicho programa.
Su memoria de trabajo (memoria crtica), es decir, la memoria que ha reservado y
sus contenidos.
Otra informacin que permite al sistema operativo su planificacin.
Un proceso se rige en pequeas porciones, conocidas como pginas, y cada
proceso tiene su propia tabla de paginacin, fungiendo como una optimizacin del
sistema operativo ante los fallo de pgina.
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 eliminados por el sistema operativo, as como
tambin ste se debe hacer cargo de la comunicacin entre procesos, pero lo
hace a peticin de otros procesos (interrupcin o tiempo de reloj). El mecanismo
por el cual un proceso crea otro proceso se denomina bifurcacin (fork). El
proceso de arranque de GNU/Linux inicia con un slo proceso (init) y despus
comienza a crear los hilos necesarios para tener el sistema listo para su uso. 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.
Los procesos pueden ser cooperativos o independientes. Dos o ms procesos
pueden cooperar mediante seales de forma que uno obliga a detenerse a los
otros hasta que reciban una seal para continuar.

Se usa una variable de tipo semforo para sincronizar los procesos.


Si un proceso est esperando una seal, se suspende hasta que la seal
se enve.
Se mantiene una cola de procesos en espera en el semforo.
La forma de elegir los procesos de la cola en espera es mediante una
poltica first in first out.
La sincronizacin explcita entre procesos es un caso particular del estado
"bloqueado". En este caso, el suceso que permite desbloquear un proceso no es
una operacin de entrada/salida, sino una seal generada a propsito por el
programador desde otro proceso.
Hay cuatro eventos principales que provocan la creacin de procesos:

El arranque del sistema.


La ejecucin, desde un proceso, de una llamada al sistema para la creacin
de otro proceso.
Una peticin de usuario para crear un proceso.
El inicio de un trabajo por lotes.
Los procesos pueden contener uno o ms hilos, haciendo ms eficiente las
tareas, asimismo la complejidad de los algoritmos de sincronizacin, ya que
podra ocurrir la condicin de carrera muy a menudo, inclusive los
indeseados interbloqueos.

1.6 PROCESOS CONCURRENTES


En computacin la concurrencia es la propiedad de los sistemas que permiten que
mltiples procesos sean ejecutados al mismo tiempo, y que potencialmente
puedan interactuar entre 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 en ejecucin puede ser
extremadamente grande, resultando sumamente complejo. Las dificultades
asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de
programacin y conceptos que permitan hacerla concurrencia ms manejable.
1.6.1 PROCESAMIENTO EN PARALELO

El procesamiento distribuido en paralelo (tambin conocido con las siglas PDP) es


una nueva teora sobre el aprendizaje que propone una explicacin al fenmeno
de la adquisicin de conocimiento basada en los procesos neuronales que tienen
lugar en el cerebro. Se trata de una teora de la ciencia cognitiva, que en su
concepcin del aprendizaje se diferencia tanto del conductismo como del
mentalismo.
El PDP es una de las variantes del conexionismo, que describe los procesos
cognitivos en trminos de conexiones entre neuronas. Frente a los modelos
localistas del conexionismo, este se denomina distribuido porque considera que
el conocimiento (tanto el declarativo como el procedimental no queda codificado
en forma de smbolos fijos, que estaran alojados en determinados lugares del
cerebro, sino en forma de elementos elaborados que se encuentran distribuidos en
diferentes neuronas, todas ellas conectadas entre s; se le aade la apostilla en
paralelo porque el procesamiento de la informacin no se produce nicamente de
forma seriada, sino tambin simultneamente en un extenso conjunto de redes
neuronales. De acuerdo con estos supuestos, el cerebro contiene millares de
neuronas que forman redes mediante las que se conectan entre s. Al contacto
que se establece entre dos neuronas, y que da lugar a un conjunto de reacciones
qumicas, se le denomina sinapsis; son estas reacciones las que provocan el
aprendizaje, que segn la teora conexionista no consiste en otra cosa que en la
modificacin de las fuerzas sinpticas.
Si para el conductismo aprender equivale a responder correctamente a estmulos
externos y para el mentalismo, a hacer en la mente una representacin del mundo
externo, lograda mediante unos smbolos abstractos y fijos que se procesan en
serie, para el conexionismo (y, con l, para el PDP) no hay smbolos abstractos ni
fijos: hay fuerzas dinmicas que actan a la vez en diversos lugares y que
modifican las conexiones entre neuronas; y en eso consisten precisamente tanto
la mente humana, como el conocimiento y el aprendizaje.
En estos procesos tiene una gran importancia el entorno, pues es en l donde el
aprendiente encontrar los datos con los que construir su nuevo conocimiento.
En el campo del aprendizaje de las lenguas, los datos del entorno resultan ser
ms importantes que cualquier conocimiento innato preexistente en la mente; para
el conexionismo, lo que es innato es la capacidad de aprender y no un
determinado conocimiento lingstico. Esta teora no solo descarta la existencia de
reglas innatas para procesar el lenguaje, sino que tampoco ve ninguna necesidad
de postular la existencia de un mdulo especializado en la adquisicin del
lenguaje; el conocimiento lingstico, por el contrario, se obtiene por inferencia,
mediante el procesamiento estadstico de datos procedentes de la experiencia.
Los aprendientes construyen progresivamente su dominio de la lengua gracias a
que se ven expuestos a una enorme cantidad de datos lingsticos. Al igual que en
las teoras innatistas, el input es crucial en el PDP; pero, a diferencia de ellas, ste
no es nicamente el elemento activador de una regla preexistente en la mente,
sino la verdadera fuente del conocimiento; en esta lnea, la cantidad de veces que

se ha percibido un determinado fenmeno acta como refuerzo de las conexiones


neuronales y conduce a su aprendizaje.
Tambin para dar razn del uso de la lengua se ha recurrido al PDP. R. A. De
Beaugrande (1984) lo aplica al proceso de produccin de textos; y R. A. De
Baugrande y W.U. Dressler (1972), al procesamiento de los elementos cohesivos.
Estos modelos conexionistas han sido muy controvertidos. Junto a cientficos que
los juzgan incapaces de dar plena razn de ningn aspecto del lenguaje, otros se
manifiestan justamente en sentido contrario. De hecho, hay quienes dicen que
ms que de una nueva teora sobre el aprendizaje se trata de un nuevo paradigma
de la cognicin, que incluye tambin explicaciones sobre la inteligencia artificial y
analogas entre el funcionamiento de la mente humana y los computadores.
El PDP no ha tenido una influencia tan grande como la que tuvo la Gramtica
Universal en la explicacin de los procesos propios del aprendizaje de segundas
lenguas. Tanto la investigacin de base innatista como la de base conexionista se
han centrado hasta el momento en la adquisicin de vocabulario y morfemas
gramaticales, pero no se han adentrado en otros aspectos ms complejos del
dominio de la lengua. Ms recientemente, se han publicado algunos estudios
sobre estrategias de inferencia y de transferencia interlingstica en la lectura de
segundas lenguas, lo que ha dado lugar a la formulacin de hiptesis de
transferencia lingstica basadas en supuestos conexionistas.
1.6.2 SEMFOROS
Un semforo es una estructura diseada para sincronizar dos o ms threads o
procesos, de modo que su ejecucin se realice de forma ordenada y sin conflictos
entre ellos.
El por qu no se pueden usar directamente otras estructuras mas clsicas, como
por ejemplo usar una variable comn para decidir si se puede o no acceder a un
recurso, se debe a que estamos en un sistema multitarea: hacer esto implicara
realizar una espera activa (un bucle, comprobando constantemente si la variable
est o no a 0, y as saber si podemos seguir ejecutando o no). Por otro lado,
puede ocurrir algo mucho peor: supongamos que un proceso comprueba la
variable, y ve que el recurso est libre, por lo que procedera a cambiar dicha
variable de valor y seguir. Pues bien, si justo despus de la comprobacin pero
antes de que cambie el valor se conmuta de tarea (puede pasar, pues el sistema
operativo puede hacerlo en cualquier momento), y el nuevo proceso comprueba la
variable, como todava no se ha actualizado, creer que el recurso est libre, e
intentar tomarlo, haciendo que ambos programas fallen. Lo peor del caso es que
se tratar de un error aleatorio: unas veces fallar (cuando se produzca cambio de
tarea en ese punto) y otras no.

Para evitarlo, se idearon los semforos. Un semforo bsico es una estructura


formada por una posicin de memoria y dos instrucciones, una para reservarlo y
otra para liberarlo. A esto se le puede aadir una cola de threads para recordar el
orden en que se hicieron las peticiones.
Se empieza por inicializar la posicin de memoria a 1 (o al valor correspondiente si
ese recurso concreto admite ms de un acceso simultneo). Esto se hace en el
inicio del programa principal.
A continuacin, cada vez que un thread o un proceso quiera acceder a dicho
recurso (por ejemplo, un fichero), har primero una peticin con la primera de las
llamadas disponibles. Cuando el SO. ejecuta esa llamada, comprueba el valor que
hay en la posicin de memoria del semforo, y si es distinta de cero, se limita a
restarle 1 y devolver el control al programa; sin embargo, si ya es cero, duerme al
proceso que hizo la peticin y lo mete en la cola de procesos, en espera de que el
semforo se ponga a un valor distinto de cero.
Por ltimo, cuando el proceso ha terminado el acceso al recurso, usa la segunda
llamada para liberar el semforo. Cuando el SO. la ejecuta, comprueba si la cola
del semforo est vaca, en cuyo caso se limita a incrementar el valor del
semforo, mientras que si tiene algn proceso, lo despierta, de modo que vuelve a
recibir ciclos de CPU y sigue su ejecucin. Si haba varios procesos en espera, se
irn poniendo en marcha uno tras otro a medida que el anterior va liberando el
semforo. Cuando termina el ltimo, el semforo se vuelve a poner a 1. Se trata,
por tanto, del mismo proceso que seguiramos con la variable, pero con la ventaja
de que es un mecanismo estndar para todos los procesos, y como es una
operacin atmica (esto es, que durante su ejecucin no se admiten cambios de
tarea), no surge el problema de que una conmutacin pueda producir errores
aleatorios.
Vemos que la primera vez que un proceso usa el semforo, este tiene valor 1, por
lo que pasa a cero y el proceso puede acceder al recurso. Si durante ese tiempo
otro proceso quiere acceder tambin, al usar el semforo, este tiene valor cero,
por lo que el SO. deja de darle ciclos de CPU. Cuando el primer proceso ha
terminado, libera el recurso, con lo que el SO. puede comprobar que el segundo
proceso est esperando, por lo que le vuelve a dar ciclos. En este punto, el
proceso sigue como si nunca hubiese sido detenido. Este tipo de semforos son
los de Exclusin mtua, o Mutex.
1.6.3 SEMFOROS DE OCUPADORES (BUSY WAITING)
Un semforo binario es un indicador (S) de condicin que registra si un recurso
est disponible o no. Un semforo binario slo puede tomar dos valores: 0 y 1. Si,
para un semforo binario, S = 1 entonces el recurso est disponible y la tarea lo
puede utilizar; si S = 0 el recurso no est disponible y el proceso debe esperar.

Los semforos se implementan con una cola de tareas o de condicin a la cual se


aaden los procesos que estn en espera del recurso.
Slo se permiten tres operaciones sobre un semforo:
- Inicializar
- Espera (wait)
- Seal (signal)
Un semforo binario se puede definir como un tipo de datos especial que slo
puede tomar los valores 0 y 1, con una cola de tareas asociada y con slo tres
operaciones para actuar sobre l.
Las operaciones pueden describirse como sigue:
inicializa (S: SemaforoBinario; v: integer)
Poner el valor del semforo S al valor de v (0 o 1)
espera (S)
if S = 1 then S := 0
else suspender la tarea que hace la llamada y ponerla
en la cola de tareas
seal (S)
if la cola de tareas est vaca then S := 1
else reanudar la primera tarea de la cola de tareas
Las operaciones son procedimientos que se implementan como acciones
indivisibles y por ello la comprobacin y cambio de valor del indicador se efecta
de manera real como una sola operacin, lo cual hay que tener presente a la hora
de disear el planificador de tareas. En sistemas con un nico procesador bastar
simplemente con inhibir las interrupciones durante la ejecucin de las operaciones
del semforo. En los sistemas multiprocesador, sin embargo, este mtodo no
resulta ya que las instrucciones de los procesadores se pueden entrelazar de
cualquier forma. La solucin est en utilizar instrucciones hardware especiales, si
se dispone de ellas, o en introducir soluciones del software como las vistas
anteriormente, que ya indicamos, que servan tanto para sistemas uniprocesador
como para sistemas multiprocesador. La operacin inicializa se debe llevar a cabo
antes de que comience la ejecucin concurrente de los procesos ya que su
funcin exclusiva es dar un valor inicial al semforo.
Un proceso que corre la operacin espera y encuentra el semforo a 1, lo pone a
0 y prosigue su ejecucin. Si el semforo est a 0 el proceso queda en estado de
espera hasta que el semforo se libera.
1.6.4 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 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:
1.
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.
Solamente una llamada a un mdulo monitor puede ser activada por vez. Esto
protege a los datos dentro del monitor de accesos simultneos de mltiples
usuarios. Los usuarios que intentan acceder al monitor mientras este est
ocupado son bloqueados en una cola de entrada al monitor.
CWAIT(c): Suspende la ejecucin del proceso llamado bajo la condicin c. El
monitor est ahora disponible para ser usado por otro proceso.
CSIGNAL(c): Reanuda la ejecucin de algn proceso suspendido despus de
un CWAIT() bajo la misma condicin. Si hay varios procesos, elige uno de ellos; si
no hay ninguno, no hace nada.
Los operadores de sincronizacin del monitor son llamados CWAIT() y CSIGNAL()
de la misma manera que en programas basados en semforos. Sin embargo
variables de condicin son usadas en lugar de semforos y su comportamiento es
diferente. Por ejemplo, definen simplemente la cola de espera y no tienen valores
numricos como los semforos. En cualquier momento que una condicin variable
CWAIT() es encontrada, el proceso ejecutando el CWAIT() est siempre
bloqueado. En cualquier momento que un CSIGNAL() es encontrado en una
condicin variable, un proceso esperando en la cola de condiciones variables (el
primero si es FIFO) es activado (puesto en la cola de listos). Si no hay procesos
esperando, el operador CSIGNAL() es ignorado.

Es importante destacar que un proceso con la marca CSIGNAL() debe ser el


prximo en entrar al monitor para que las condiciones existentes cuando ocurri el
CSIGNAL() no sean cambiadas cuando ste entre al monitor. Tambin, cuando no
hay procesos bloqueados en la cola de condiciones variables CSIGNAL(), pero
hay procesos bloqueados en la cola de entrada al monitor, CSIGNAL() activar la
cabeza de la cola de entrada al monitor pasndole el control del monitor.
Si hay al menos un proceso en una cola de condicin, un proceso de dicha cola
deber ejecutar en cuanto otro proceso ejecute un CSIGNAL() para la condicin.
As pues, el proceso que ejecuta el CSIGNAL() debe salir inmediatamente del
monitor o suspenderse en el monitor. Son varios los inconvenientes de esta
solucin:
1)
Si el proceso que ejecuta el CSIGNAL() no abandona el monitor,
hacen falta dos cambios de contexto adicionales: uno para suspender el proceso y
otro para reanudarlo cuando el monitor quede disponible.
2)
Cuando se ejecuta un CSIGNAL(), debe activarse inmediatamente un
proceso de la cola de la condicin correspondiente y el planificador debe
asegurarse de que ningn otro proceso entre al monitor antes de la activacin. Si
no es as, la condicin bajo la que se ha activado el proceso podra cambiar.
1.6.5 INTERBLOQUEO

En sistemas operativos, el bloqueo mutuo (tambin conocido como interbloqueo,


traba mortal, deadlock, abrazo mortal) es el bloqueo permanente de un conjunto
de procesos o hilos de ejecucin en un sistema concurrente que compiten por
recursos del sistema o bien se comunican entre ellos. A diferencia de otros
problemas de concurrencia de procesos, no existe una solucin general para los
interbloqueos.
Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas,
por parte de dos o ms procesos. En la vida real, un ejemplo puede ser el de dos
nios que intentan jugar al arco y flecha, uno toma el arco, el otro la flecha.
Ninguno puede jugar hasta que alguno libere lo que tom.
En el siguiente ejemplo, dos procesos compiten por dos recursos que necesitan
para funcionar, que slo pueden ser utilizados por un proceso a la vez. El primer
proceso obtiene el permiso de utilizar uno de los recursos (adquiere el lock sobre
ese recurso). El segundo proceso toma el lock del otro recurso, y luego intenta
utilizar el recurso ya utilizado por el primer proceso, por lo tanto queda en espera.
Cuando el primer proceso a su vez intenta utilizar el otro recurso, se produce un
interbloqueo, donde los dos procesos esperan la liberacin del recurso que utiliza
el otro proceso.

1.7 ADMINISTRACIN DEL PROCESADOR


El procesador es la parte de la mquina que lleva a cabo los clculos y ejecuta los
programas. Tambin se le reconoce con el nombre de CPU (Central Proccesing
Unit).
Un programa es una unidad inactiva, como un archivo almacenado en un disco.
Un programa no es un proceso. Para un sistema operativo, un programa es una
unidad de trabajo enviada por el usuario.
Por otro lado, un proceso es una entidad activa, que requiere un conjunto de
recursos ara llevar a cabo su funcin, entre ellos un procesador y registros
especiales.
En los sistemas de un solo usuario, el procesador est ocupado cuando el usuario
ejecuta una tarea, en todos los dems momentos est ocioso. La administracin
del procesador en este entorno es simple. Sin embargo, cuando existen muchos
usuarios con muchas tareas en el sistema (multiprogramacin) hay que asignar el
procesador a cada tarea de una manera justa y eficiente.
La multiprogramacin requiere que el procesador se asigne a cada tareas o
proceso durante un periodo y se desasigne en el momento apropiado. Si el
procesador se desasigna durante la ejecucin de un programa, esto debe ocurrir
de manera que se pueda reiniciar despus con toda la facilidad posible.
1.7.1 PLANIFICACIN DEL TRABAJO

El administrador del procesador est compuesto por dos sub-administradores. Se


conocen como el planificador de trabajos y el planificador de procesos.
Cada trabajo o programa pasa a travs de una jerarqua de administradores. El
primero que encuentra es el planificador de trabajos, tambin se conoce como
planificador de alto nivel. Este sub-administrador slo se ocupa de elegir los
trabajos de una cola de trabajos que llegan y colocarlas en la cola de procesos
con base en las caractersticas de cada uno. Su meta es mantener ocupada la
mayor parte de los componentes del sistema de la computadora la mayor parte del
tiempo.
Despus que el planificador de trabajos pone un trabajo en la cola de listo, el
planificador de procesos se hace cargo. Define qu trabajos tendrn derecho al
CPU, cundo y cunto tiempo. Tambin decide cundo debe interrumpirse el
procesamiento, determina a qu colas se debe pasar el trabajo durante su
ejecucin y reconoce cundo ha concluido un trabajo y ya no hay necesidad de
seguir procesndolo. Este sub-administrador es un planificador de bajo nivel que

asigna el CPU para ejecutar los procesos de los trabajos que el planificador de
trabajos ha colocado en la cola de listo.
En un entorno muy interactivo existe un tercer nivel del administrador del
procesador, conocido como planificador de nivel medio. En algunos casos, en
especial cuando el sistema est sobrecargado, el planificador de nivel medio
encuentra ventajoso retirar trabajos activos de la memoria para reducir el grado de
multiprogramacin, y por lo tanto, permitir que los trabajos se completen ms
aprisa. Este sub-administrador controla los trabajos que se intercambian hacia
afuera y de regreso.
1.7.3 MULTIPROCESO
Multiprocesamiento o multiproceso es tradicionalmente conocido como el uso de
mltiples procesos concurrentes en un sistema en lugar de un nico proceso en un
instante determinado. Como la multitarea que permite a mltiples procesos
compartir una nica CPU, mltiples CPUs pueden ser utilizados para ejecutar
mltiples hilos dentro de un nico proceso.
El multiproceso para tareas generales es bastante difcil de conseguir debido a
que puede haber varios programas manejando datos internos (conocido como
estado o contexto) a la vez. Los programas tpicamente se escriben asumiendo
que sus datos son incorruptibles. Sin embargo, si otra copia del programa se
ejecuta en otro procesador, las dos copias pueden interferir entre s intentando
ambas leer o escribir su estado al mismo tiempo. Para evitar este problema se usa
una variedad de tcnicas de programacin incluyendo semforos y otras
comprobaciones y bloqueos que permiten a una sola copia del programa cambiar
de forma exclusiva ciertos valores.

1.8 ADMINISTRACIN DE LA MEMORIA

La administracin de memoria se refiere a los distintos mtodos y operaciones que


se encargan de obtener la mxima utilidad de la memoria, organizando los
procesos y programas que se ejecutan de manera tal que se aproveche de la
mejor manera posible el espacio disponible.
Para poder lograrlo, la operacin principal que realiza es la de trasladar la
informacin que deber ser ejecutada por el procesador, a la memoria principal.
Actualmente esta administracin se conoce como Memoria Virtual ya que no es la
memoria fsica del procesador sino una memoria virtual que la representa. Entre
algunas ventajas, esta memoria permite que el sistema cuente con una memoria
ms extensa teniendo la misma memoria real, con lo que esta se puede utilizar de

manera ms eficiente. Y por supuesto, que los programas que son utilizados no
ocupen lugar innecesario.
Las tcnicas que existen para la carga de programas en la memoria son: particin
fija, que es la divisin de la memoria libre en varias partes (de igual o distinto
tamao) y la particin dinmica, que son las particiones de la memoria en tamaos
que pueden ser variables, segn la cantidad de memoria que necesita cada
proceso.
Entre las principales operaciones que desarrolla la administracin de memoria se
encuentran la reubicacin, que consiste en trasladar procesos activos dentro y
fuera de la memoria principal para maximizar la utilizacin del procesador; la
proteccin, mecanismos que protegen los procesos que se ejecutan de
interferencias de otros procesos; uso compartido de cdigos y datos, con lo que el
mecanismo de proteccin permite que ciertos procesos de un mismo programa
que comparten una tarea tengan memoria en comn.
1.8.1 ALMACENAMIENTO REAL
La organizacin y administracin de la memoria principal, memoria primaria o
memoria real de un sistema ha sido y es uno de los factores ms importantes en
el diseo de los sistemas operativos.
Los trminos memoria y almacenamiento se consideran equivalentes.
Los programas y datos deben estar en el almacenamiento principal para:

Poderlos ejecutar.
Referenciarlos directamente.

Se considera almacenamiento secundario o almacenamiento auxiliar al


generalmente soportado en discos. Los hechos demuestran que generalmente los
programas crecen en requerimientos de memoria tan rpido como las memorias:
Ley de Parkinson parafraseada: Los programas se desarrollan para ocupar toda
la memoria disponible para ellos.
La parte del sistema operativo que administra la memoria se llama administrador
de la memoria, ste se encarga de:

Llevar un registro de las partes de memoria que se estn utilizando y de


aquellas que no.
Asignar espacio en memoria a los procesos cuando estos la necesitan.
Liberar espacio de memoria asignada a procesos que han terminado.

1.8.2 ORGANIZACIN, JERARQUA Y ESTRATEGIA DE ALMACENAMIENTO

1.8.3 MULTIPROGRAMACIN
Se denomina multiprogramacin a una tcnica por la que dos o ms procesos
pueden alojarse en la memoria principal y ser ejecutados concurrentemente por el
procesador o CPU.
Con la multiprogramacin, la ejecucin de los procesos (o hilos) se va solapando
en el tiempo a tal velocidad, que causa la impresin de realizarse en paralelo
(simultneamente). Se trata de un paralelismo simulado, dado que la CPU slo
puede trabajar con un proceso cada vez (el proceso activo). De ah que, en rigor,
se diga que la CPU ejecuta concurrentemente (no simultneamente) varios
procesos; en un lapso de tiempo determinado, se ejecutarn alternativamente
partes de mltiples procesos cargados en la memoria principal.
En los antiguos sistemas mono programados, cuando un proceso en ejecucin
requera hacer uso de un dispositivo de E/S, el procesador quedaba ocioso
mientras el proceso permaneciese en espera y no retomara su ejecucin. En
cambio, en un sistema multiprogramado, cuando un proceso Px concluye o se
bloquea (en espera de una operacin de E/S), el ncleo del sistema operativo
toma el control de la CPU para efectuar lo que se denomina un cambio de
contexto, a fin de dar turno a otro proceso Py para que se ejecute. Ntese que
cuando el proceso Px recupere su turno, reanudar su ejecucin justo en el punto
exacto en que se interrumpi. Este mecanismo supone un mejor reparto de la
carga de trabajo y un mayor aprovechamiento de la CPU, lo que redunda en un
mayor rendimiento del sistema.

1.9 ALMACENAMIENTO VIRTUAL

La memoria virtual es una tcnica de administracin de la memoria real que


permite al sistema operativo brindarle al software de usuario y a s mismo un
espacio de direcciones mayor que la memoria real o fsica.
La mayora de los ordenadores tienen cuatro tipos de memoria: registros en la
CPU, la memoria cach (tanto dentro como fuera del CPU), la memoria fsica
(generalmente en forma de RAM, donde la CPU puede escribir y leer directa y
razonablemente rpido) y el disco duro que es mucho ms lento, pero tambin
ms grande y barato.
Muchas aplicaciones requieren el acceso a ms informacin (cdigo y datos) que
la que se puede mantener en memoria fsica. Esto es as sobre todo cuando el
sistema operativo permite mltiples procesos y aplicaciones ejecutndose
simultneamente. Una solucin al problema de necesitar mayor cantidad de
memoria de la que se posee consiste en que las aplicaciones mantengan parte de

su informacin en disco, movindola a la memoria principal cuando sea necesario.


Hay varias formas de hacer esto. Una opcin es que la aplicacin misma sea
responsable de decidir qu informacin ser guardada en cada sitio
(segmentacin), y de traerla y llevarla. La desventaja de esto, adems de la
dificultad en el diseo e implementacin del programa, es que es muy probable
que los intereses sobre la memoria de dos o varios programas generen conflictos
entre s: cada programador podra realizar su diseo teniendo en cuenta que es el
nico programa ejecutndose en el sistema. La alternativa es usar memoria
virtual, donde la combinacin entre hardware especial y el sistema operativo hace
uso de la memoria principal y la secundaria para hacer parecer que el ordenador
tiene mucha ms memoria principal (RAM) que la que realmente posee. Este
mtodo es invisible a los procesos. La cantidad de memoria mxima que se puede
hacer ver que hay tiene que ver con las caractersticas del procesador. Por
ejemplo, en un sistema de 32 bits, el mximo es 232, lo que da 4096 Megabytes (4
Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho
ms fcil, al poder ignorar completamente la necesidad de mover datos entre los
distintos espacios de memoria.
Aunque la memoria virtual podra estar implementada por el software del sistema
operativo, en la prctica casi siempre se usa una combinacin de hardware y
software, dado el esfuerzo extra que implicara para el procesador.

1.10 ADMINISTRACIN DEL ALMACENAMIENTO SECUNDARIO

El procesador es capaz de realizar a gran rapidez operaciones sobre los datos


almacenados en la memoria la cual es voltil y tiene una capacidad de
almacenamiento insuficiente para guardar todos los datos, con lo cual, los
ordenadores necesitan disponer de alguna forma de almacenamiento permanente
y masivo. Se conoce como almacenamiento secundario a los medios de
almacenamiento que estn fuera del almacenamiento primario.
Las cintas magnticas, los paquetes de discos, los discos flexibles y los discos de
almacenamiento ptico son los ejemplos de medios de almacenamiento
secundario. Son ms econmicos que la RAM y no requieren el suministro
continuo de energa para conservar la informacin almacenada.
Sin embargo cabe recalcar que el acceso a la informacin del almacenamiento
secundario es ms lento que el acceso a la memoria RAM. Por ejemplo para
ciertos equipos recuperar un solo carcter de la memoria de una PC toma
alrededor de 150 ns., es decir 150 millonsimas de segundo mientras que para el
tiempo medio para recuperar dicho carcter en el disco de la PC es un poco mayo
a 75 ms., es decir 75 milsimas de segundo.

Los datos en el almacenamiento secundario se renen en archivos, los cuales se


definen como colecciones de informacin relacionada. La existencia de los
archivos se debe a la existencia del almacenamiento secundario, si la informacin
se mantuviera en RAM no recibiran dicho nombre.
Los dispositivos de almacenamiento secundario estn en lnea con el procesador.
Aceptan datos o instrucciones del programa del procesador cuando se necesitan
para llevar a cabo tareas de procesamiento. Se deben especificar dos conceptos
importantes:
El proceso de transferencia de datos a un equipo de cmputo se le llama
procedimiento de lectura.
El proceso de transferencia de datos desde la computadora hacia el
almacenamiento se denomina procedimiento de escritura.
Caractersticas del Almacenamiento Secundario
Gran capacidad de almacenamiento.
No se pierde la informacin al apagarse la computadora, es decir no es voltil.
Altas velocidades de transferencia de informacin.
La informacin se almacena en el mismo formato como se hace en la memoria
principal.
Para ser procesados por el CPU, los datos se almacenan en la memoria
secundaria y luego se llevan a la memoria principal.
Tipos;
Los tipos de almacenamiento secundario son:

Almacenamiento Magntico
Almacenamiento ptico
Almacenamiento Hbrido (Magntico/ptico)

FUENTES DE INVESTIGACIN
http://www.masadelante.com/faqs/sistema-operativo
http://html.rincondelvago.com/sistemas-operativos_36.html
http://html.rincondelvago.com/clasificacion-de-sistemas-operativos.html
http://workfinal.mex.tl/864276_1-4--SISTEMAS-OPERATIVOS-COMO-M-QUINAEXTENDIDA-Y-COMO-ADMINISTRADOR-DE-RECURSOS--.html
http://es.wikipedia.org/wiki/Proceso_(inform%C3%A1tica)
http://www.buenastareas.com/ensayos/Sistemas-Operativos-ProcesosConcurrentes/517481.html
http://cvc.cervantes.es/ensenanza/biblioteca_ele/diccio_ele/diccionario/procesamie
ntodistparalelo.htm
http://www.rastersoft.com/OS2/CURSO/SEMAFORO.HTM
http://workfinal.mex.tl/864392_1-6-3-SEMAFORO-DE-OCUPADO-ESPERA--BUSY--WAITING--.html
http://sistemasoperativo252m.blogspot.mx/2011/01/2_8537.html
http://wikiversidad.wikispaces.com/Interbloqueo+(Sistema+Operativo)
http://es.wikipedia.org/wiki/Multiprocesamiento
http://introos.blogspot.mx/
http://es.wikipedia.org/wiki/Multiprocesamiento
http://es.wikipedia.org/wiki/Administraci%C3%B3n_de_Memoria
http://equipo-atari.jimdo.com/subtemas/3-1-introducci%C3%B3n-alalmacenamiento-real/
http://es.wikipedia.org/wiki/Multiprogramaci%C3%B3n
http://mariamirosafiel.blogspot.mx/2012/03/almacenamiento-virtual.html

http://workfinal.mex.tl/864557_1-10--ADMINISTRADOR-DEL--ALMACENAMIENTOSECUNDARIO.html

También podría gustarte