Anda di halaman 1dari 65

Instituto Tecnolgico de Oaxaca

Sistemas Operativos: 12:00-13:00


Prez Matas Christian Benito
Unidad 1
Introduccin a los sistemas operativos
Portafolio de evidencias
Valverde Jarqun Reyna
Fecha de entrega. 10 de septiembre de 2014

ndice
Unidad 1. Introduccin a los sistemas operativos.
1.1 Definicin y concepto.

Pg. 3

1.2

Funciones y caractersticas.

Pg. 4

1.3

Evolucin histrica.

Pg. 8

1.4

Clasificacin.

Pg. 13

1.5 Estructura: niveles o estratos de diseo.

Pg. 20

1.6

Pg. 22

Ncleo.

Unidad 2. Administracin de procesos y del


procesador.
2.1 Concepto de proceso.

Pg.28

2.2 Estados y transiciones de los procesos.

Pg.29

2.3 Procesos ligeros (Hilos o hebras).

Pg.33

2.4 Concurrencia y secuencialidad.

Pg.35

2.5 Niveles, objetivos y criterios de planificacin.

Pg.46

2.6 Tcnicas de administracin del planificador.

Pg.49

Unidad 3. Administracin de memoria.


3.1 Poltica y filosofa..56
3.2 Memoria real. 57
3.3 Organizacin de memoria virtual.. 58
3.4 Administracin de memoria virtual... 63

ndice de figuras:
figura 1: Definicin y concepto ________________________________________ 5
figura 2: Funciones y caractersticas ___________________________________ 6
figura 3: Funciones y caractersticas ___________________________________ 6
figura 4: Funciones y caractersticas ___________________________________ 6
figura 5: Funciones y caractersticas ___________________________________ 7
figura 6: Funciones y caractersticas ___________________________________ 7
figura 7: Funciones y caractersticas ___________________________________ 7
figura 8: Funciones y caractersticas ___________________________________ 8
figura 9: Evolucin histrica _________________________________________ 10
figura 10: Evolucin histrica ________________________________________ 10
figura 11: Evolucin histrica ________________________________________ 11
figura 12: Evolucin histrica ________________________________________ 12
figura 13: Evolucin histrica ________________________________________ 13
figura 14: Clasificacin _____________________________________________ 14
figura 15: Clasificacin _____________________________________________ 15
figura 16: Clasificacin _____________________________________________ 16
figura 17: Clasificacin _____________________________________________ 17
figura 18: Clasificacin _____________________________________________ 19
figura 19: Clasificacin _____________________________________________ 20
figura 20: Clasificacin _____________________________________________ 20
figura 21: Estructura _______________________________________________ 21
figura 22: Estructura _______________________________________________ 22
4

figura 23: Diagrama de estados de los procesos _________________________ 28


figura 24: Diagrama de arbol ________________________________________ 29
figura 25: Estados y transiciones de los procesos ________________________ 29

figura 26: Estados de un proceso y sus transiciones. _____________________ 32

figura 27: Procesos ligeros __________________________________________ 33

figura 28: Tareas con una y varias hebras ______________________________ 34

figura 29: Estados de los procesos ligeros ______________________________ 34

figura 30: Concurrencia ____________________________________________ 35

figura 31: Seccin critica ___________________________________________ 40

figura 32: Ejemplo de un abrazo mortal ________________________________ 44


figura 33: Ejemplo de un grafo de recursos _____________________________ 46
figura 35: Planeacin round robin ____________________________________ 50
figura 36: Tipos de planificacin del procesador _________________________ 52

Introduccin:
Uno de las caractersticas principales de un sistema operativo es que el usuario
pueda trabajar de manera cmoda utilizndolo, Sin el software, una computadora
no podra realizar ninguna de sus funciones que hara normalmente. Con el
software, una computadora puede almacenar, procesar y recuperar informacin,
encontrar errores de ortografa en textos. El software para computadoras puede
clasificarse en dos clases: los programas de sistema, que controlan la operacin
de la computadora y los programas de aplicacin, los cuales resuelven problemas
para los usuarios.
El sistema operativo (SO), controla todos los recursos de la computadora y
proporciona la base sobre la cual pueden operar los programas de aplicacin.
El objetivo principal del SO es lograr que el sistema informtico es el lograr que el
hardware de la computadora se emplee de modo eficiente, y el objetivo secundario
se use de manera cmoda.

1.1 Definicin y concepto.


Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una
definicin exacta, es decir una que sea estndar; a continuacin se presentan algunas:
1.- Se pueden imaginar un Sistema Operativo como los programas, instalados en el
software o firmware, que hacen utilizable el hardware. El hardware proporciona la
"capacidad bruta de cmputo"; los sistemas operativos ponen dicha capacidad de
cmputo al alcance de los usuarios y administran cuidadosamente el hardware para lograr
un buen rendimiento.
2.- Los Sistemas Operativos son ante todo administradores de recursos; el principal
recurso que administran es el hardware del computador; adems de los procesadores, los
medios de almacenamiento, los dispositivos de entrada/salida, los dispositivos de
comunicacin y los datos.
3.- Un Sistema Operativo es un programa que acta como intermediario entre el usuario y
el hardware del computador y su propsito es proporcionar el entorno en el cual el usuario
pueda ejecutar programas. Entonces, el objetivo principal de un Sistema Operativo es,
lograr que el sistema de computacin se use de manera cmoda, y el objetivo secundario
es que el hardware del computador se emplee de manera eficiente.
4.- Un Sistema Operativo es un conjunto de programas que controla la ejecucin de
programas de aplicacin y acta como una interfaz entre el usuario y el hardware de una
computadora, esto es, un Sistema Operativo explota y administra los recursos de
hardware de la computadora con el objeto de proporcionar un conjunto de servicios a los
usuarios del sistema.
En resumen, se podra decir que los Sistemas Operativos son un conjunto de programas
que crean la interfaz del hardware con el usuario, y que tiene dos funciones primordiales,
que son:
o
o

Gestionar el hardware.- Se refiere al hecho de administrar de una forma


ms eficiente los recursos de la mquina.
Facilitar el trabajo al usuario.-Permite una comunicacin con los
dispositivos de la mquina.

El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se


carga y ejecuta un pedazo de cdigo que se encuentra en el procesador, el cual carga el
BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de
aplicacin y software variado.

1.2 Funciones y caractersticas.


Funciones del Sistema Operativo:

Interpreta los comandos que permiten al usuario comunicarse con el ordenador.

Coordina y manipula el hardware de la computadora, como la memoria, las


impresoras, las unidades de disco, el teclado o el mouse.

Organiza los archivos en diversos dispositivos de almacenamiento, como discos


flexibles, discos duros, discos compactos o cintas magnticas.

Gestiona los errores de hardware y la prdida de datos.

Servir de base para la creacin del software logrando que equipos de marcas
distintas funcionen de manera anloga, salvando las diferencias existentes entre ambos.

Configura el entorno para el uso del software y los perifricos; dependiendo del
tipo de mquina que se emplea, debe establecerse en forma lgica la disposicin y
caractersticas del equipo. Como por ejemplo, una microcomputadora tiene fsicamente
dos unidades de disco, puede simular el uso de otras unidades de disco, que pueden ser
virtuales utilizando parte de la memoria principal para tal fin. En caso de estar conectado a
una red, el sistema operativo se convierte en la plataforma de trabajo de los usuarios y es
este quien controla los elementos o recursos que comparten. De igual forma, provee de
proteccin a la informacin que almacena.

Como gestor de recursos:


Gestiona: tiempo de CPU, espacio de memoria, espacio de almacenamiento de
archivos y dispositivos de E/S.
Acta: rbitro que decide qu solicitudes atender cuando no pueden satisfacerse todas
simultneamente, asignando recursos de forma eficiente.
Como programa de control:
Controla: ejecucin de programas de usuarios para evitar errores o usos incorrectos.

Caractersticas de los sistemas operativos.


En general, se puede decir que un Sistema Operativo tiene las siguientes caractersticas:

Conveniencia. Un Sistema Operativo hace ms conveniente el uso de una


computadora.

Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se


usen de la manera ms eficiente posible.

Habilidad para evolucionar. Un Sistema Operativo deber construirse de manera


que permita el desarrollo, prueba o introduccin efectiva de nuevas funciones del sistema
sin interferir con el servicio.

Encargado de administrar el hardware. El Sistema Operativo se encarga de


manejar de una mejor manera los recursos de la computadora en cuanto a hardware se
refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los
recursos.

Relacionar dispositivos (gestionar a travs del kernel). El Sistema Operativo se


debe encargar de comunicar a los dispositivos perifricos, cuando el usuario as lo
requiera.

Organizar datos para acceso rpido y seguro.

Manejar las comunicaciones en red. El Sistema Operativo permite al usuario


manejar con alta facilidad todo lo referente a la instalacin y uso de las redes de
computadoras.

Procesamiento por bytes de flujo a travs del bus de datos.

Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fcil al usuario
el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.

10

1.3 Evolucin histrica.


Historia de los Sistemas Operativos.
Para tratar de comprender los requisitos de un Sistema Operativo y el significado de las
principales caractersticas de un Sistema Operativo contemporneo, es til considerar
como han ido evolucionando stos con el tiempo.
Existen diferentes enfoques o versiones de cmo han ido evolucionando los Sistemas
Operativos
La primera de estas versiones podra ser esta:
En los 40's, se introducen los programas bit a bit, por medio de interruptores mecnicos y
despus se introdujo el leng. mquina que trabajaba por tarjetas perforadas.
Con las primeras computadoras, desde finales de los aos 40 hasta la mitad de los aos
50, el programador interactuaba de manera directa con el hardware de la computadora,
no exista realmente un Sistema Operativo; las primeras computadoras utilizaban bulbos,
la entrada de datos y los programas se realizaban a travs del lenguaje mquina (bits) o a
travs de interruptores.
Durante los aos 50's y 60's.- A principio de los 50's, la compaa General's Motors
implanto el primer sistema operativo para su IBM 170. Empiezan a surgir las tarjetas
perforadas las cuales permiten que los usuarios (que en ese tiempo eran programadores,
diseadores, capturistas, etc.), se encarguen de modificar sus programas. Establecan o
apartaban tiempo, metan o introducan sus programas, corregan y depuraban sus
programas en su tiempo. A esto se le llamaba trabajo en serie. Todo esto se traduca en
prdida de tiempo y tiempos de programas excesivos.
En los aos 60's y 70's se genera el circuito integrado, se organizan los trabajos y se
generan los procesos Batch (por lotes), lo cual consiste en determinar los trabajos
comunes y realizarlos todos juntos de una sola vez. En esta poca surgen las unidades
de cinta y el cargador de programas, el cual se considera como el primer tipo de Sistema
Operativo.
En los 80's, inici el auge de la INTERNET en los Estados Unidos de Amrica. A finales
de los aos 80's comienza el gran auge y evolucin de los Sistemas Operativos. Se
descubre el concepto de multiprogramacin que consiste en tener cargados en memoria a
varios trabajos al mismo tiempo, tema principal de los Sistemas Operativos actuales.
Los 90's y el futuro, entramos a la era de la computacin distribuida y del
multiprocesamiento a travs de mltiples redes de computadoras, aprovechando el ciclo
del procesador.
Se tendr una configuracin dinmica con un reconocimiento inmediato de dispositivos y
software que se aada o elimine de las redes a travs de procesos de registro y
localizadores.

11

La conectividad se facilita gracias a estndares y protocolos de sistemas abiertos por


organizaciones como la Org. Intern. de normas, fundacin de software abierto, todo estar
ms controlado por los protocolos de comunicacin OSI y por la red de servicios digital
ISDN.

Evolucin histrica por etapas.


1 Generacin (1945 -1955):
Sistema operativo: Al principio es inexistente, hacia el final se constituye como un
conjunto de funciones de uso general.
Tecnologa: Tubos de vaco.
Introduccin de trabajo: A travs de panel de control.
Lenguaje: Lenguaje mquina.

12

Toda la programacin se llevaba a cabo en lenguaje de mquina absoluto y con


frecuencia se utilizaban conexiones para controlar las funciones bsicas de la mquina.
Los lenguajes de programacin eran desconocidos (incluso el lenguaje ensamblador). No
se oa de los Sistemas Operativos el modo usual de operacin consista en que el
programador reservaba cierto perodo en una hoja de reservacin pegada a la pared, iba
al cuarto de la mquina, insertaba su conexin a la computadora y pasaba unas horas
esperando que ninguno de los 20,000 o ms bulbos se quemara durante la ejecucin.
La inmensa mayora de los problemas eran clculos numricos directos, por ejemplo, el
clculo de valores para tablas de senos y cosenos.
A principio de la dcada de los 50's la rutina mejoro un poco con la introduccin de las
tarjetas perforadas. Fue entonces posible escribir los programas y leerlas en vez de
insertar conexiones, por lo dems el proceso era el mismo.

2 Generacin (1955 1965):


Sistema operativo: Monitor para cargar trabajos, ejecutarlos, ... (Procesamiento en
serie). Posteriormente procesamiento por lotes.
Tecnologa: Transistores.
Introduccin de trabajo: Tarjetas perforadas.
Lenguaje: Cobol, Fortran
La inmensa mayora de los problemas eran clculos numricos directos, por ejemplo, el
clculo de valores para tablas de senos y cosenos.
A principio de la dcada de los 50's la rutina mejoro un poco con la introduccin de las
tarjetas perforadas. Fue entonces posible escribir los programas y leerlas en vez de
insertar conexiones, por lo dems el proceso era el mismo.

13

3 Generacin (1965 1975):


Sistema operativo: Multiprogramacin, tiempo compartido, sistemas en tiempo real
(OS/360,Multics, UNIX, ...).
Tecnologa: Circuitos integrados, mquinas multipropsito, miniordenadores.
Introduccin de trabajo: Tarjetas perforadas, terminales.
Lenguaje: Cobol, Fortran, ...

La 360 de IBM fue la primera lnea principal de computadoras que utiliz los circuitos
integrados, lo que proporcion una gran ventaja en el precio y desempeo con respecto a
las mquinas de la segunda generacin, construidas a partir de transistores individuales.
Se trabaj con un sistema operativo enorme y extraordinariamente complejo. A pesar de
su enorme tamao y sus problemas el sistema operativo de la lnea IBM 360 y los
sistemas operativos similares de esta generacin producidos por otros fabricantes de
computadoras realmente pudieron satisfacer, en forma razonable a la mayora de sus
clientes. Tambin popularizaron varias tcnicas fundamentales, ausentes de los sistemas
operativos de la segunda generacin, de las cuales la ms importante era la de
multiprogramacin.
Otra caracterstica era la capacidad de leer trabajos de las tarjetas al disco, tan pronto
como llegara al cuarto de cmputo. As, siempre que concluyera un trabajo el sistema
operativo poda cargar un nuevo trabajo del disco en la particin que quedara desocupada
y ejecutarlo.

14

4 Generacin (1990 actualidad):


Sistema Operativo: Distribuido, modelo cliente servidor en la construccin del sistema.
Tecnologa: Circuitos integrados a gran escala (VLSI), ordenadores personales potentes,
estaciones de trabajo.
Orientacin de la evolucin:
Aumentar: Potencia, multipropsito, fiabilidad, n de usuarios, comodidad y amigabilidad.
Disminuir: Precio, tamao, requisitos de instalacin, dificultad de uso, tiempo de
respuesta.
Un interesante desarrollo que comenz a llevarse a cabo a mediados de la dcada de los
ochenta ha sido el crecimiento de las redes de computadoras personales, con sistemas
operativos de red y sistemas operativos distribuidos.
En los sistemas operativos de red, los usuarios estn conscientes de la existencia de
varias computadoras y pueden conectarse con mquinas remotas y copiar archivos de
una mquina a otra. Cada mquina ejecuta su propio sistema operativo local y tiene su
propio usuario.
Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus usuarios
como un sistema tradicional de un solo procesador, aun cuando est compuesto por
varios procesadores. En un sistema distribuido verdadero, los usuarios no deben ser
conscientes del lugar donde su programa se ejecute o de lugar donde se encuentren sus
archivos; eso debe ser manejado en forma automtica y eficaz por el sistema operativo.

15

1.4 Clasificacin.

Los sistemas operativos se clasifican en:

Sistemas operativos por lotes.


Sistemas operativos multiprogramacin o de multitarea.
Sistemas operativos multiusuario.
Sistemas operativos de tiempo compartido.
Sistemas operativos de tiempo real.
Sistemas operativos distribuidos.
Sistemas operativos de red.
Sistemas operativos paralelos.

Sistemas operativos por lotes.


Los sistemas operativos por lotes requieren que la informacin est reunida en
bloque o "lote" (el programa, los datos, y las instrucciones). Los trabajos son
procesados en el orden de admisin, segn el modelo de "primero en llegar primero
en ser atendido". En estos sistemas la memoria se divide en dos zonas. Una de
ellas es ocupada por el sistema operativo, y la otra se usa para cargar programas
transitorios para su ejecucin. Cuando termina la ejecucin de un programa se
carga un nuevo programa en la misma zona de memoria.
16

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 computadores personales combinados con
procesamiento serial.
Planificacin del procesador sencilla, tpicamente procesados en orden de
llegada.
Planificacin de memoria 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.

Figura. Trabajos ms comunes que realiza el Sistema Operativo por lotes.

Sistemas operativos multiprogramacin o de multitareas.


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,
17

la memoria, y los "dispositivos de E/S". Estos sistemas monitorean el estado de


todos los programas activos y recursos del sistema.
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.

Sistemas operativos multiusuario.


Los sistemas operativos multiusuario permiten acceder simultneamente a un
sistema de computadoras a travs de dos o ms terminales. Este tipo de sistema
operativo es fundamental en el manejo de redes de computadoras actualmente.

18

Sistemas operativos de tiempo compartido


Los sistemas operativos de tiempo compartido tratan de proporcionar un reparto
equitativo de los recursos comunes para dar la impresin a los usuarios de que
poseen una computadora independiente. En estos sistemas el administrador de
memoria proporciona aislamiento y proteccin de los programas, ya que
generalmente no tienen necesidad de comunicarse entre ellos. El control de E/S se
encarga de proporcionar o retirar la asignacin a los dispositivos de forma que se
preserve la integridad del sistema y se proporcione servicio a todos los usuarios. El
administrador de archivos proporciona proteccin y control en el acceso de la
informacin, dada la posibilidad de concurrencia y conflictos al tratar de acceder a
los archivos.
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 a un mismo
archivo.

19

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.

20

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 transparente para el usuario. Existen dos esquemas bsicos de stos.
Un sistema fuertemente acoplado 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.

21

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 ms ampliamente usados son: Novell Netware,
Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Figura. Se muestra un Sistema Operativo en red.

22

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.5 Estructura: niveles o estratos de diseo.


Estructura (niveles o estratos de diseo).
Estructura monoltica.
Primeros sistemas operativos constituidos fundamentalmente por un slo
programa compuesto de un conjunto de rutinas entrelazadas de tal forma que
cada una puede llamar a cualquier otra

23

Caractersticas:
1 Construccin del programa final a base de mdulos compilados
separadamente que se unen a travs del encadenador (linker)
2 Buena definicin de parmetros de enlace entre las distintas rutinas
existentes
3 Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes
aspectos de los recursos de la computadora
4 Generalmente hechos a la medida, eficientes y rpidos en ejecucin y gestin
5 Poco flexibles para soportar diferentes ambientes de trabajo o aplicaciones.
Estructura jerrquica.
Mayores necesidades de los usuarios, mayor organizacin del software. Se
dividi el sistema operativo en pequeas partes, cada una bien definida y con
una clara interfase con el resto de elementos.
Se constituy una estructura jerrquica, el primero de los cuales fue
denominado THE (Technische Hogeschool, Eindhoven)
Capa 5 Control de programas de usuario
Capa 4 Gestin de Archivos
Capa 3 Control de operaciones entrada/salida
Capa 2 Control de la Consola de operacin
Capa 1 Gestin de memoria
Capa 0 Planificacin de CPU
Capa -1 Hardware
En esta estructura se basan la mayora de los sistemas operativos actuales.
Otra forma es la de anillos.
Cada uno tiene una apertura por donde pueden entrar las llamadas de las
capas inferiores. Las zonas ms internas del sistema operativo o ncleo
estarn ms protegidas de accesos indeseados desde las capas ms externas.
Las internas sern ms privilegiadas que las externas.

24

Cliente-servidor
El ms reciente, puede ser ejecutado en la mayora de las computadoras, para
toda clase de aplicaciones, es de propsito general.
El ncleo establece la comunicacin entre los clientes y los servidores. Los
procesos pueden ser tanto servidores como clientes. Por ejemplo, un
programa de aplicacin normal es un cliente que llama al servidor
correspondiente para acceder a un archivo o realizar una operacin de
entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede
actuar como servidor para otro

1.6

Ncleo.

Todas las operaciones en las que participan procesos son controladas por la parte
del sistema operativo denominada ncleo (nucleus, core o kernel, en ingls). El
ncleo normalmente representa slo una pequea parte de lo que por lo general
se piensa que es todo el sistema operativo, pero es tal vez el cdigo que ms se
utiliza. Por esta razn, el ncleo reside por lo regular en la memoria principal,
mientras que otras partes del sistema operativo son cargadas en la memoria
principal slo cuando se necesitan.
Los ncleos se disean para realizar "el mnimo" posible de procesamiento en
cada interrupcin y dejar que el resto lo realice el proceso apropiado del sistema,
que puede operar mientras el ncleo se habilita para atender otras interrupciones.
El ncleo de un sistema operativo normalmente contiene el cdigo necesario para
realizar las siguientes funciones:
Manejo de interrupciones.
Creacin y destruccin de procesos.
Cambio de estado de los procesos.
Despacho.
Suspensin y reanudacin de procesos.
Sincronizacin de procesos.
Comunicacin entre procesos.
Manipulacin de los bloques de control de procesos.
Apoyo para las actividades de entrada/salida.
Apoyo para asignacin y liberacin de memoria.
Apoyo para el sistema de archivos.
Apoyo para el mecanismo de llamada y retorno de un procedimiento.
Apoyo para ciertas funciones de contabilidad del sistema.
Ncleo o Kernel y niveles de un Sistema Operativo.
El Kernel consiste en la parte principal del cdigo del sistema operativo, el cual se
encargan de controlar y administrar los servicios y peticiones de recursos y de
hardware con respecto a uno o varios procesos, este se divide en 5 capas:
Nivel 1. Gestin de Memoria: que proporciona las facilidades de bajo nivel para la
gestin de memoria secundaria necesaria para la ejecucin de procesos.
Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno
de los procesos, creando interrupciones de hardware cuando no son respetadas.
25

Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los


dispositivos de E/S requeridos por procesos.
Nivel 4. Informacin o Aplicacin o Interprete de Lenguajes: Facilita la
comunicacin con los lenguajes y el sistema operativo para aceptar las ordenes en
cada una de las aplicaciones. Cuando se solicitan ejecutando un programa el
software de este nivel crea el ambiente de trabajo e invoca a los procesos
correspondientes.
Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a
largo plazo y manipulacin de archivos con nombre, va asignando espacio y
acceso de datos en memoria.
El ncleo y los procesos.
El ncleo (Kernel) de un sistema operativo es un conjunto de rutinas cuya misin
es la de gestionar el procesador, la memoria, la entrada/salida y el resto de
procesos disponibles en la instalacin. Toda esta gestin la realiza para atender al
funcionamiento y peticiones de los trabajos que se ejecutan en el sistema.
Los procesos relacionados con la entidad bsica de los sistemas operativos
actuales: Los procesos.
El esquema general del mismo es el siguiente:
Definicin y concepto de proceso.
El Bloque de Control de Proceso (PCB) como imagen donde el sistema operativo
ve el estado del proceso.
Estados por los que pasa un proceso a lo largo de su existencia en la
computadora.
Operaciones que se pueden realizar sobre un proceso.
Clasificacin de los procesos segn su forma de ejecucin, de carga, etc.

Interrupciones (FLIH).
El GESTOR DE INTERRUPCIONES DE PRIMER NIVEL: FLIH
(First Level Interruption Handler): `Algo' que gestione las interrupciones
EL CONTROLADOR DE INTERRUPCIONES DE PRIMER NIVEL: EL FLIH
En principio, una seal es una indicacin por la que se altera la secuencia de
ejecucin. Hay varios tipos de interrupcin, que se clasifican en funcin de su
origen:
! EXTERNAS: Se producen fuera del procesador
! INTERNAS: Se producen dentro del procesador

26

Despachador(Scheduler).
Schedulling.Colas de Schedulling: Los procesos que estn en estado de espera se quedan en
una lista llamada lista o cola de ready. Los procesos que hacen uso de E/S se
guardan en una cola de E/S. Hay una cola de E/S por cada dispositivo.
Schedullers: Componente del sistema operativo responsable de decidir quien hara
uso de la CPU.
Algoritmos de Schedulling.FCFS (First Come First Served)
Cuando un proceso llega a la cola de ready su PCB es agregado al final de la lista.
El uso de la CPU es otorgado al primero de la lista y una vez que un proceso
comienza a ejecutar no deja de hacerlo hasta que se termina. El tiempo medio de
espera para este algoritmo suele ser bastante alto.
SJF (Shortest Job First)
Una vez que un proceso ejecuta no deja de hacerlo hasta que voluntariamente
cambia de estado (no hay interrupcin por tiempo). Asocia a cada proceso el
tiempo de CPU que habr de usar en su prxima vuelta y va a decidir por el ms
pequeo. Si hubiera mas de uno utiliza FCFS para desempatar.

Primitivas de comunicacin(IPC).
Hay varias primitivas de comunicacin entre procesos (IPC abreviadamente). La
mayora de ellas requieren algn tipo de modificacin a los programas para poder
usarlas, pero hay una que es fcilmente accesible desde la lnea de comandos
usando la metfora de ficheros estndar en UNIX y que no requiere modificacin
alguna a los programas. Se trata de las tuberas. Siguiendo la metfora, UNIX nos
permite manejar tuberas como si fueran ficheros normales.

27

Unidad 2.
Introduccin a los sistemas operativos.

28

2.1 Concepto de proceso.


Un proceso es un programa en ejecucin. Un proceso simple tiene un hilo de ejecucin,
por el momento dejemos esta ltima definicin como un concepto, luego se ver en ms
detalle el concepto de hilo. Una vez definido que es un proceso nos podramos preguntar
cul es la diferencia entre un programa y un proceso, y bsicamente la diferencia es que
un proceso es una actividad de cierto tipo que contiene un programa, entradas salidas y
estados.
Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende
que los procesos interactan entre s y pertenecen a una misma aplicacin. En el caso de
procesos independientes en general se debe a que no interactan y un proceso no
requiere informacin de otros o bien porque son procesos que pertenecen a distintos
usuarios.
Una parte muy importante de esta informacin se encuentra normalmente como en el
llamado bloque de control de procesos (BCP). El sistema operativo mantiene una tabla de
procesos con todos los BCP de los procesos. Por razones de eficiencia, la tabla de
procesos se construye normalmente como una estructura esttica, que tiene un
determinado nmero de BCP, todos ellos del mismo tamao. La informacin que
compone un proceso es la siguiente:

Contenido de los segmentos de memoria en los que residen el cdigo y los datos
del proceso. A esta informacin se le denomina imagen de memoria o core image.
Contenido de los registros del modelo de programacin.
Contenido del BCP.

Estados de los procesos

Nuevo: El proceso es creado.


Ejecucin: Se ejecutan instrucciones.
Espera: El proceso est en espera por la ocurrencia de algn evento.
Listo: El proceso est esperando a que le asignen el procesador.
Terminado: El proceso finaliza su ejecucin.

Figura 23. Diagrama de estados de los procesos.

29

Si un proceso puede crear uno o ms procesos diferentes (conocidos como


proceso hijo) y estos procesos a la vez originan procesos hijos, se llega
rpidamente a la estructura del rbol de procesos.

Figura 24. Estructura de rbol. Proceso Padre - Hijo.

El proceso A cre dos procesos derivados, B y C. El proceso B cre tres derivados, D, E y


F.

2.2 Estados y transiciones de los procesos.


Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecucin y
Bloqueado.

Figura 25. Estados y transiciones de los procesos.

30

Los procesos en el estado listo son los que pueden pasar a estado de ejecucin si el
planificador los selecciona. Los procesos en el estado ejecucin son los que se estn
ejecutando en el procesador en ese momento dado. Los procesos que se encuentran en
estado bloqueado estn esperando la respuesta de algn otro proceso para poder continuar
con su ejecucin. Por ejemplo operacin de E/S.
Un proceso puede variar entre 5 distintos estado
New: cuando el proceso est siendo creado.
Running: cuando el proceso se est ejecutando.
Waiting: cuando el proceso est esperando que se cumpla algn otro evento.
Ready: cuando el proceso esta pronto para ejecutar, esperando por la CPU.
Terminated: cuando el proceso est terminado.
Estado de los Procesos
Los bloques de control de los procesos se almacenan en colas, cada una de las cuales
representa un estado particular de los procesos, existiendo en cada bloque, entre otras
informaciones. Los estados de los procesos son internos de los sistemas operativos y
transparentes al usuario.
Los estados de los procesos se pueden dividir en dos tipos: activos e inactivos.
1.- Estados activos
Son aquellos que compiten con el procesador o estn en condiciones de hacerlo. Se dividen
en:
Ejecucin: Estado en el que se encuentra un proceso cuando tiene el control del
procesador. En un sistema monoprocesador este estado slo lo puede tener un proceso.
Preparado: Aquellos procesos que estn dispuestos para ser ejecutados, pero no estn en
ejecucin por alguna causa (Interrupcin, haber entrado en cola estando otro proceso en
ejecucin, etc.).
Bloqueado: Son los procesos que no pueden ejecutarse de momento por necesitar algn
recurso no disponible (generalmente recursos de entrada/salida).

31

2.- Estados inactivos


Son aquellos que no pueden competir por el procesador, pero que pueden volver a hacerlo
por medio de ciertas operaciones. En estos estados se mantiene el bloque de control de
proceso aparcado hasta que vuelva a ser activado. Se trata de procesos que no han
terminado su trabajo que lo han impedido y que pueden volver a activarse desde el punto
en que se quedaron sin que tengan que volver a ejecutarse desde el principio.
Son de dos tipos:
Suspendido bloqueado: Es el proceso que fue suspendido en espera de un evento, sin que
hayan desaparecido las causas de su bloqueo.
Suspendido programado: Es el proceso que han sido suspendido, pero no tiene causa
parta estar bloqueado.
Informacin asociada con cada proceso:
Estado del proceso.
Program counter.
Registros del CPU.
Informacin de planificacin del CPU.
Memoria.
Informacin para administracin.
Informacin de estatus de E/S.

TRANSICIONES
Un proceso puede encontrarse en estado de ejecucin, bloqueado o listo (que tambin se
llama ejecutable).De estos estados de los procesos se derivan las siguientes transiciones
y estados:
Transicin: El paso de un estado a otro.
1. El proceso se bloquea en la entrada.
2. El planificador elige otro proceso.
3. El planificador elige este proceso.
4. La entrada se vuelve disponible.

32

Estados:
1. Ejecucin (que en realidad hace uso del CPU en ese instante).
2. Bloqueado (incapaz de correr hasta que suceda algn evento externo.
3. Listo (ejecutable; se detiene temporalmente para permitir que se ejecute otro proceso).
En estos tres estados son posibles cuatro transiciones:
1. Ocurre cuando un proceso descubre que no puede continuar. En algn sistema el
proceso debe ejecutar una llamada al sistema, BLOCK, para entrar en estado bloqueado
2 y 3. Son ocasionadas por el planificador del proceso, que es parte del sistema operativo
sin que el proceso llegue a saber de ella.
2. Ocurre cuando el planificador decide que el proceso en ejecucin ya ha corrido el tiempo
suficiente y es tiempo de permitir que otro proceso tome tiempo de CPU.
3. Ocurre cuando todos los procesos han utilizado su parte del tiempo y es hora de que el
primer proceso vuelva a correr.
4. Ocurre cuando aparece el evento externo que estaba esperando un proceso (como el
arribo de alguna entrada). Si ningn otro proceso corre en ese instante, la transicin 3 se
activar de inmediato y el proceso iniciara su ejecucin, de lo contrario tendr que esperar,
en estado listo.

Figura 26.Estados de un
proceso y sus
transiciones.

33

2.3 Procesos ligeros: Hilos o hebras


Diferencia entre Proceso e Hilo
Un proceso es una entidad relativamente independiente que dispone de su propio espacio
de direcciones, su propia informacin de estado y que utiliza los mecanismos de
comunicacin entre procesos que le proporciona el sistema operativo para comunicarse
con otros procesos.
Por otro lado, un hilo es una entidad ms reducida capaz de convivir junto a otros hilos
bajo el contexto de un nico proceso, permitiendo compartir la informacin de estado, el
rea de memoria y/o los recursos asociados a ese proceso.

Dentro de un proceso puede haber uno o ms hilos de control cada uno con:

Un estado de ejecucin (en ejecucin, listo, bloqueado).|


Un contexto de procesador, que se salva cuando no est ejecutndose.
Una pila de ejecucin.
Algn almacenamiento esttico para variables locales.
Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros
hilos.

Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda
menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo, y en
hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un mismo
proceso a varios flujos de ejecucin se mantiene una nica copia en memoria del cdigo,
y no varias.
Un ejemplo de aplicacin que podra hacer uso de los hilos es un servidor de ficheros de
una red de rea local. Cada vez que llega una solicitud de una operacin sobre un fichero,
se puede generar un nuevo hilo para su gestin. El servidor gestiona multitud de
solicitudes, por tanto, se pueden crear y destruir muchos hilos en poco tiempo para dar
servicio a estas peticiones. Si el servidor es un multiprocesador, se pueden ejecutar varios
hilos de un mismo proceso simultneamente y en diferentes procesadores.
Procesos ligeros
Un proceso ligero (thread o hebra) es un programa en ejecucin que comparte la imagen
de la memoria y otras informaciones con otros procesos ligeros.

Figura 27.Procesos ligeros

34

Los procesos ligeros son una unidad bsica de utilizacin de la CPU consistente en un
juego de registros y un espacio de pila. Comparte el cdigo, los datos y los recursos con
sus hebras pares
Una tarea (o proceso pesado) est formada ahora por una o ms hebras
Una hebra slo puede pertenecer a una tarea

Figura 28. Tareas con una y varias hebras


CARACTERISTICAS

Se comparten recursos. La comparticin de la memoria permite a las hebras pares


comunicarse sin usar ningn mecanismo de comunicacin inter-proceso del SO.
La conmutacin de contexto es ms rpida gracias al extenso compartir de
recursos

No hay proteccin entre las hebras. Una hebra puede escribir en la pila de otra hebra del
mismo proceso.

ESTADO DE LOS PROCESOS LIGEROS.


Un proceso ligero puede estar ejecutando, listo o bloqueado.

Figura 29. Estados de los Procesos ligeros

35

2.4 Concurrencia y secuenciabilidad.


Procesos concurrentes.
Los procesos son concurrentes si existen simultneamente. Los procesos concurrentes
pueden funcionar en forma totalmente independiente unos de otros, o pueden ser
asncronos, lo cual significa que en ocasiones requiere cierta sincronizacin y cooperacin.

Figura 30. Concurrencia

Las siguientes definiciones son esenciales para comprender los conceptos de


concurrencia y secuencialidad.
* Actividad.
. Procesos: Es un programa en ejecucin.
. Tarea:

Son las distintas partes de un proceso que se ejecutan simultneamente.

* Sistemas:
. Multiprogramacin: Admiten varias actividades que comparten el procesador, pero slo
una puede estar ejecutndose en un momento dado.
. Multiproceso: Las actividades se ejecutan en sus propios procesadores, conectados a
travs de una red de comunicaciones.
* Paralelismo:
Es la ejecucin de diversas actividades simultneamente en varios procesadores.
Si slo existe un procesador gestionando multiprogramacin, se puede decir que existe
pseudo-paralelismo. Se trata de un concepto fsico producido por la existencia de varios
procesadores.

36

* Concurrencia:
Es la existencia de varias actividades ejecutndose simultneamente, y necesitan
sincronizarse para actuar conjuntamente. Se trata, en este caso, de un concepto lgico, ya
que slo hace referencia a las actividades, sin importar el nmero de procesadores
presentes.
Para que dos actividades, sean concurrentes, es necesario que tengan relacin
entre s, como puede ser la cooperacin en un trabajo determinado o el uso de informacin
compartida.
En un sistema monoprocesador, la existencia de multiprogramacin es condicin
necesaria, pero no suficiente para que exista concurrencia, ya que los procesos pueden
ejecutarse independientemente. Por ejemplo, un editor y un compilador pueden estar
ejecutndose simultneamente en una computadora sin que exista concurrencia entre ellos.
Por otro lado si un programa se est ejecutando y se encuentra grabando datos en un
archivo, y otro programa tambin en ejecucin est leyendo datos de ese mismo archivo,
s existe concurrencia entre ellos, pues el funcionamiento de uno interfiere en el
funcionamiento de otro.
Si un sistema es multiprocesador, tambin pueden presentarse situaciones de
concurrencia siempre y cuando las actividades necesiten actuar entre s, bien por utilizar
informacin comn, o por cualquier otra causa.
Los procesos del sistema pueden ejecutarse concurrentemente, puede haber
mltiples tareas en el CPU con varios procesos. Existen varias razones para permitir la
ejecucin concurrente:
* Compartir recursos fsicos.
Ya que los recursos del hardware de la computadora son limitados, nos podemos
ver obligados a compartirlos en un entorno multiusuario.
* Compartir recursos lgicos.
Puesto que varios usuarios pueden interesarse en el mismo elemento de
informacin (por ejemplo un archivo compartido), debemos proporcionar un entorno que
permita el acceso concurrente a estos tipos de recursos
* Acelerar los clculos.

37

Si queremos que una tarea se ejecute con mayor rapidez, debemos dividirla en
subtareas, cada una de las cuales se ejecutara, en paralelo con las dems.
* Modularidad.
Podremos construir el sistema en forma modular, dividiendo las funciones del
sistema en procesos separados.
* Comodidad.
Un usuario puede tener que ejecutar varias tareas a la vez, por ejemplo puede editar,
imprimir y compilar en paralelo.
La ejecucin concurrente que requiere la cooperacin entre procesos necesita un
mecanismo para la sincronizacin y comunicacin de procesos, exclusin mutua y
sincronizacin.

2.4.1 Exclusin Mutua de Seccin Critica.


Forma de asegurar que si un proceso est usando una variable o archivo compartido, los
otros procesos quedarn excluidos de hacer lo mismo.
Los procesos pueden tener en su cdigo secciones en que realizan clculos internos y
operaciones que no dan lugar a condiciones de competencia. Sin embargo existen
secciones de programa en que el proceso est accediendo a recursos compartidos que
pueden dar pi a condiciones de competencia.
La parte del programa en que se accede a un recurso compartido se denomina seccin o
regin crtica (requisito necesario, pero no suficiente). Los requisitos para que procesos
paralelos cooperen de manera correcta usando datos compartidos son los siguientes:

Dos procesos nunca pueden estar simultneamente dentro de sus regiones


crticas.
No se puede suponer nada acerca de las velocidades de ejecucin de los
procesos o el nmero de las CPU.
Ningn proceso que se ejecute fuera de su regin crtica puede bloquear a otros
procesos.
Ningn proceso deber tener una espera indefinida para entrar en su regin
crtica.

La exclusin mutua debe ponerse en prctica slo cuando los procesos obtienen acceso a
datos compartidos modificables; cuando los procesos realizan operaciones que no entran
en conflicto con otras, deben permitirse que procedan concurrentemente. Cuando un
proceso obtiene acceso a datos compartidos modificables, se dice que se encuentra en
una seccin crtica. Es evidente que, para evitar la clase de problemas observados en la
seccin anterior, debe asegurarse que cuando un proceso se encuentre en una seccin

38

crtica, los dems procesos (o al menos los que tengan acceso a los datos compartidos)
no pueden entrar a sus propias secciones crticas.
Mientras un proceso se encuentra en su seccin crtica, otros procesos pueden, claro
est, seguir ejecutndose fuera de sus secciones crticas. Cuando un proceso abandona
su regin crtica, otro proceso que espera entrar en su propia seccin crtica (si existe
algn proceso en espera). Lograr que se cumpla la exclusin mutua es uno de los
problemas fundamentales de la programacin concurrente. Se han propuesto muchas
soluciones, algunas de software y otras de hardware, algunas sencillas y otras complejas,
y algunas que requieren la cooperacin voluntaria de los procesos y otras que exigen un
escrito ajuste a rgidos protocolos.
Encontrarse dentro de una regin crtica es un estado especial concedido a un proceso. El
proceso tiene acceso exclusivo a los datos compartidos y los dems procesos que
requieran acceso a los datos en ese momento deben esperar. As pues, las secciones
crticas deben ejecutarse tan rpido como sea posible; un proceso no se debe bloquear
dentro de su propia seccin crtica y las secciones crticas deben codificarse con mucho
cuidado (para evitar, por ejemplo, la posibilidad de ciclos infinitos).
Si un proceso de una seccin crtica termina, ya sea voluntaria o involuntariamente, el
sistema operativo, al realizar su mantenimiento de terminaciones, debe liberar la exclusin
mutua de manera que otros procesos puedan entrar en sus regiones crticas.
En el momento de un cambio de proceso del uno al otro se pueden producir las siguientes
situaciones:

Sin sincronizacin entre procesos: Puede darse el caso de que ESCRIBIR est
actualizando un registro y se quede a medas, sorprendindole el cambio de
proceso, por tanto, terminar de escribirlo cuando vuelva a hacer uso del
procesador. Con el cambio le tocar el turno al proceso LEER, que acceder a
dicho registro pudiendo leerlo completamente. Es evidente que los datos ledos
sern inconsistentes.

Con sincronizacin entre procesos: Supongamos algn mecanismo que prohba


la lectura (bloqueo de registros) a cualquier proceso, mientras el proceso
ESCRIBIR est realizando alguna operacin. En este caso, LEER, al hacer uso del
procesador que se encuentra bloqueado, quedara en espera de que el registro
quede totalmente escrito y se proceda a su desbloqueo, LEER pasara a estado
bloqueado, ESCRIBIR terminara su trabajo sobre el registro y en el siguiente
cambio LEER procedera a hacer el suyo.

Esta sincronizacin por la cual una actividad impide que otras puedan tener
acceso a un dato mientras se encuentra realizando una operacin sobre el mismo es lo
que se conoce como exclusin mutua.
La zona de cdigo de un proceso que no puede ser interrumpida por otro, por los
motivos expuestos anteriormente se le llama Regin Crtica.
Regiones crticas

39

Es el conjunto de actividades elementales cuya ejecucin exige el monopolio de recursos.


Por ejemplo, para indicar que alguna accin se realizar con acceso exclusivo a ciertos
datos compartidos.

Regin datos - compartidos do accin

Cmo evitar la regin crtica?. La clave para prevenir el problema aqu y en


muchas otras situaciones en que interviene la memoria compartida, archivos compartidos
y todo lo que se comparte, consiste en determinar alguna manera de prohibir que un
proceso lea y escriba los datos compartidos al mismo tiempo.

De otra manera lo que se necesita es la sincronizacin. Una manera de asegurar de que


si un proceso sta utilizando una variable o archivo compartido, es que los otros procesos
no pueden hacer lo mismo.

Para tener una solucin adecuada a la regin crtica se necesita que se cumplan cuatro
condiciones.

1. Nunca dos procesos pueden encontrarse simultneamente dentro de sus regiones


crticas.
2. No se hacen suposiciones acerca de las velocidades relativas de los procesos o
del Nmero de CPU.
3. Ningn proceso suspendido fuera de la regin crtica debe bloquear a otros
procesos.
4. Nunca un proceso debe querer entrar en forma arbitraria en su regin crtica.

Representacin de regiones criticas

40

Cuando se disea un proceso que debe contener una o varias regiones crticas se
deben de tomar en cuenta las siguientes consideraciones:

La regin crtica debe ser ejecutada lo ms rpido posible.


Un programa no debe nter bloquearse en una regin crtica.
Las regiones crticas deben ser programadas con mucho cuidado (no se permiten
Ciclos indefinidos).
Mientras un proceso est en su regin crtica otros procesos pueden continuar
Ejecutndose fuera de las regiones crticas.
Cuando se tienen procesos que comparten datos, si un proceso deja la regin
Crtica otro de los procesos que espera a entrar en su regin crtica puede
proceder.

Cuando el proceso termina, voluntaria o involuntariamente, el sistema operativo debe de


realizar la limpieza propia de fin de proceso y liberar la exclusin mutua de otros
procesos.

Figura 31.
Seccin critica

El problema de la Seccin Crtica

En procesos compitiendo para utilizar algn dato compartido.


Cada proceso tiene un segmento de cdigo, llamado seccin crtica, en el que se
accede al dato compartido.
Problema asegurarse de que cuando un proceso est ejecutndose en su
seccin crtica, a ningn otro proceso se le permite ejecutar la suya.
Estructura del proceso Pi

repeat
entry section
seccin crtica
exit section
seccin restante
until false;
Solucin al problema de la Seccin Crtica

Una solucin al problema de la seccin crtica debe satisfacer los siguientes tres
requerimientos:

41

1. Exclusin Mutua. Si un proceso Pi esta ejecutndose en su seccin


crtica, entonces ninguno de los otros procesos puede estar en su seccin
crtica
2. Progreso. Si ningn proceso est ejecutndose en su seccin crtica y
existen procesos que quieren entrar en su seccin crtica, entonces la
seleccin del prximo proceso que entrar a la seccin crtica no puede ser
pospuesta indefinidamente.
3. Espera limitada. Debe existir un lmite del nmero de veces que se les
permite a otros procesos entrar en sus secciones crticas en el intervalo
entre que un proceso ha hecho un requerimiento para entrar en su seccin
crtica y que se le concede el permiso.
Se supone que cada proceso se ejecuta a velocidad distinta de cero.

Ninguna suposicin respecto a la velocidad relativa de los n procesos.

2.4.2 Sincronizacin de Procesos

En muchos casos, los procesos se renen para realizar tareas en conjunto, a este tipo de
relacin se le llama procesos cooperativos. Para lograr la comunicacin, los procesos
deben sincronizarse, de no ser as pueden ocurrir problemas no deseados. La
sincronizacin es la transmisin y recepcin de seales que tiene por objeto llevar a cabo
el trabajo de un grupo de procesos cooperativos.
Es la coordinacin y cooperacin de un conjunto de procesos para asegurar la
comparacin de recursos de cmputo. La sincronizacin entre procesos es necesaria para
prevenir y/o corregir errores de sincronizacin debidos al acceso concurrente a recursos
compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos
contendientes. La sincronizacion entre procesos tambin permite intercambiar seales de
tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones
especficas de precedencia impuestas por el problema que se resuelve.
Sin una sincronizacion adecuada entre procesos, la actualizacin de variables
compartidas puede inducir a errores de tiempo relacionados con la concurrencia que son
con frecuencia difciles 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 aproximacin para resolver este
problema es realizar actualizaciones de variables compartidas de manera mutuamente
exclusiva. Se pueden mejorar permitiendo que a lo ms un proceso entre a la vez en la
seccin crtica de cdigo 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

42

proceso. Los principales mecanismos de sincronizacin que ofrecen los sistemas


operativos son:

Seales
Tuberas
Semforos
Mutex y variables condicionales
Paso de mensajes

2.4.2.1 Mecanismo de semforos.


Un semforo es un tipo de datos abstracto que permite el uso de un recurso de manera
exclusiva cuando varios procesos estn compitiendo.
El tipo de datos abstracto cumple la siguiente semntica:
El estado interno del semforo cuenta cuantos procesos todava pueden utilizar el
recurso. Se puede realizar, por ejemplo, con un nmero entero que nunca llega a
ser negativo.
Existen tres operaciones con un semforo: init(), wait(), y signal() que realizan lo
siguiente:
init()
Inicializa el semforo antes de que cualquier proceso haya ejecutado ni una operacin.
wait() ni una operacin signal() al lmite de nmero de procesos que tengan derecho a
acceder el recurso. Si se inicializa con 1, se ha construido un semforo binario.
wait()
Si el estado indica cero, el proceso se queda atrapado en el semforo hasta que sea
despertado por otro proceso. Si el estado indica que un proceso ms puede acceder el
recurso se decrementa el contador y la operacin termina con xito.
La operacin wait() tiene que estar implementada como una instruccin atmica. Sin
embargo, en muchas implementaciones la operacin wait() puede ser interrumpida.
Normalmente existe una forma de comprobar si la salida del wait() es debido a una
interrupcin o porque se ha dado acceso al semforo.
signal()
Una vez se ha terminado el uso del recurso, el proceso lo sealiza al semforo. Si queda
algn proceso bloqueado en el semforo uno de ellos sea despertado, sino se incrementa
el contador.
La operacin signal() tambin tiene que estar implementada como instruccin atmica. En
algunas implementaciones es posible comprobar si se haya despertado un proceso con
xito en caso que hubiera alguno bloqueado.
Para despertar los procesos se puede implementar varias formas que se distinguen en
sus grados de justicia, por ejemplo con un simple sistema tipo FIFO.
El acceso mutuo a regiones crticas se arregla con un semforo que permita el acceso a
un slo proceso.
Observamos los siguientes detalles:
Si algn proceso no libera el semforo, se puede provocar un bloqueo.

43

No hace falta que un proceso libere su propio recurso, es decir, la operacin


signal() puede sea ejecutada por otro proceso.
Con simples semforos no se puede imponer un orden en los procesos accediendo a
diferentes recursos.

2.4.2.2 Mecanismo de monitores.


Todas las estructuras que hemos visto hasta ahora siguen provocando problemas para el
programador:
El control sobre los recursos est distribuido por varios puntos de un programa
No hay proteccin de las variables de control que siempre fueron globales
Por eso se usa el concepto de monitores que implementan un nivel an ms alto de
abstraccin facilitando el acceso a recursos compartidos.
Un monitor es un tipo de datos abstracto que
contiene:

un conjunto de procedimientos de control de los cuales solamente un subconjunto


es visible desde fuera
un conjunto de datos privados, es decir, no visibles desde fuera
El acceso al monitor est permitido solamente a travs de los procedimientos pblicos y el
compilador garantiza exclusin mutua para todos los procedimientos. La implementacin
del monitor controla la exclusin mutua con colas de entrada que contengan todos los
procesos bloqueados. Pueden existir varias colas y el controlador del monitor elige de
cual cola se va a escoger el siguiente proceso para actuar sobre los datos. Un monitor no
tiene acceso a variables exteriores con el resultado de que su comportamiento no puede
depender de ellos.
Una desventaja de los monitores es la exclusividad de su uso, es decir, la concurrencia
est limitada si muchos procesos hacen uso del mismo monitor.
Un aspecto que se encuentra en muchas implementaciones de monitores es la
sincronizacin condicional, es decir, mientras un proceso est ejecutando un
procedimiento del monitor (con exclusin mutua) puede dar paso a otro proceso liberando
el cerrojo. Estas operaciones se suele llamar wait() o delay(). El proceso que ha liberado
el cerrojo se queda bloqueado hasta que otro proceso le despierta de nuevo. Este
bloqueo temporal est realizado dentro del monitor (dicha tcnica se refleja en Java con
wait() y notify()).
La tcnica permite la sincronizacin entre procesos porque actuando sobre el mismo
recurso los procesos pueden cambiar el estado del recurso y pasar as informacin de un
proceso al otro.
Lenguajes de alto nivel que facilitan la programacin concurrente suelen tener monitores
implementados dentro del lenguaje (por ejemplo refJavaMonitoresJava usa el concepto de
monitores para realizar el acceso mutuamente exclusivo a sus objetos).
El uso de monitores es bastante costoso, porque se pierde eficiencia por tanto bloqueo de
los procesos. Por eso se intenta aprovechar de primitivas ms potentes para aliviar este
problema, como vemos en la siguiente seccin.

44

2.4.3 Interbloqueo (DeadLock).


El estancamiento se puede definir formalmente como sigue: "Un conjunto de procesos se
estancan si cada proceso del conjunto est esperando un evento que solo otro proceso
del conjunto puede provocar". Puesto que todos los procesos estn en espera, ninguno de
ellos podr ocasionar nuca ninguno de los eventos que podran desbloquear a algunos de
los otros miembros del conjunto y todos los procesos seguirn esperando
indefinidamente.
Definicin de Abrazo Mortal
Un conjunto de procesos est en un abrazo mortal cuando todos los procesos en ese
conjunto estn esperando un evento que solo puede ser causado por otro proceso en el
conjunto. Los eventos a los cuales nos estamos refiriendo son concernientes con la
asignacin y liberacin de recursos principalmente. Sin embargo, otro tipo de eventos
pueden llevar a la existencia de abrazos mortales.
Para ejemplificar un estado de abrazo mortal, considere un sistema con tres unidades de
disco. Suponga que existen tres procesos, cada uno de ellos tiene asignada una de las
unidades de disco. Si ahora cada proceso pide otra unidad de disco, los tres procesos se
encuentran ahora en un estado de abrazo mortal. Cada uno est esperando el evento
"unidad de disco liberada", lo cual solo puede ser causada por alguno de los otros
procesos en espera. Este ejemplo ilustra un abrazo mortal involucrando procesos
compitiendo por el mismo tipo de recurso.
Los abrazos mortales pueden tambin involucrar diferentes tipos de recursos. Por
ejemplo, considere un sistema con una impresora y una unidad de disco. Suponga que el
proceso A tiene asignada la unidad de disco y que el proceso B tiene asignada la
impresora. Ahora, si A pide la impresora y B pide la unidad de disco, ocurre un abrazo
mortal.

Figura 32. Ejemplo de un abrazo mortal.

45

Debe ser obvio que un abrazo mortal es una condicin indeseable. En un abrazo mortal,
los procesos nunca terminan de ejecutarse y los recursos del sistema esta amarrados,
evitando que otros procesos puedan siquiera empezar? Antes de discutir varios mtodos
para manejar el problema de los abrazos mortales, sera til describir algunas de las
propiedades que los caracterizan.
Condiciones Necesarias
Segun Coffman (1971), existen cuatro condiciones que deben cumplirse para que haya
estancamiento. Una situacin de abrazo mortal puede surgir si y solo si las siguientes
cuatro condiciones ocurren simultneamente en un sistema:
1.

Exclusin Mutua. Cada recurso se asigna por lo regular exactamente a un


proceso o bien est disponible. Al menos un recurso es mantenido en un modo nocompartible; esto es, solo un proceso a la vez puede usar el recurso. Si otro
proceso solicita ese recurso, tiene que ser retardado hasta que el recurso haya
sido liberado.
2.
Retener y Esperar. Los procesos que regularmente contienen recursos
otorgados antes pueden solicitar nuevos recursos. Debe existir un proceso que
retenga al menos un recurso y este esperando para adquirir recursos adicionales
que estn siendo retenidos por otros procesos.
3.
No existe el derecho de desasignar (No preemtion). Los recursos previamente
otorgados no pueden extraerse por la fuerza de un proceso. Deben ser liberados
explcitamente por el proceso que los contiene. Los recursos no pueden ser
desasignados (preempted); esto es, un recurso solo puede ser liberado
voluntariamente por el proceso que lo retiene, despus de que el proceso ha
terminado su tarea.
4.
Espera Circular . Debe haber una cadena de dos o ms procesos, cada uno
d los cuales este esperando u recurso contenido en el siguiente miembro de la
cadena. Debe existir un conjunto {p0, p1,...,pn} de procesos en espera tal que p0
est esperando por un recurso que est siendo retenido por p1, p1 est esperando
por un recurso que est siendo retenido por p2, ..., pn-1 est esperando por un
recurso que est siendo retenido por pn y pn est esperando por un recurso que
est siendo retenido por p0.

Enfatizamos que las cuatro condiciones deben de cumplirse para que pueda ocurrir un
abrazo mortal. La condicin de espera circular implica la condicin de retener y esperar,
de tal manera que las cuatro condiciones no son totalmente independientes. Sin embargo,
puede ser til el considerar cada condicin por separado.
Una forma de modelar estas condiciones es usando un grafo de recursos: los crculos
representan procesos, los cuadrados recursos. Una arista desde un recurso a un proceso

46

indica que el recurso ha sido asignado al proceso. Una arista desde un proceso a un
recurso indica que el proceso ha solicitado el recurso, y est bloqueado esperndolo.
Entonces, si hacemos el grafo con todos lo procesos y todos los recursos del sistema y
encontramos un ciclo, los procesos en el ciclo estn bajo bloqueo mutuo.

Figura 33. Ejemplo de un grafo de recursos.

Mtodos para manejar los abrazos mortales


Principalmente, existen dos mtodos para manejar el problema de los abrazos mortales.
Podemos usar algn protocolo para asegurar que el sistema nunca entrara en un estado
de abrazo mortal. Alternativamente, podemos permitir que el sistema entre en un estado
de abrazo mortal y despus recuperarnos. Como podremos ver posteriormente, el
recuperarse de un abrazo mortal puede ser muy difcil y muy caro. Por ello, primeramente
consideraremos los mtodos para asegurar que no ocurran
los abrazos mortales. Comnmente, existen dos mtodos: El de PREVENCION de
abrazos mortales (Deadlock Prevention) y el de EVASION de abrazos mortales (Deadlock
Avoidance).

2.5 Niveles, Objetivos y Criterios de Planificacin.


En pocas pasadas de los sistemas de procesamiento por lotes, con una entrada en
forma de imgenes de tarjetas en una cinta magntica, el algoritmo de planificacin era
sencillo: solo haba que ejecutar el siguiente trabajo en la cinta.
En los sistemas de multiusuario de tiempo compartido, que se combinaban con un fondo
de trabajos procesados en lote, el algoritmo era ms complejo. En forma invariable,
existan varios usuarios en espera de servicio y podan existir tambin otros trabajos para
ser procesados en lote. Incluso en los sistemas puros de tiempo compartido existen con

47

frecuencia los trabajos colaterales, como el sistema de correo electrnico, que a menudo
se ejecuta todo el tiempo para enviar o recibir correo o noticias.
Cuando ms de un proceso es ejecutable, el Sistema Operativo debe decidir cul de ellos
deber ejecutarse primero. Hay que tener una planificacin de los procesos que quieren
ejecutarse en el sistema. La planificacin es una funcin primordial del Sistema Operativo.
La mayora de los recursos, si no es que todos, se planifican antes de que se utilicen. La
asignacin de procesadores fsicos a los procesos hace posible que estos realicen su
trabajo, y tal asignacin es un problema complejo manejado por el Sistema Operativo.
Concepto de Planificacin
La planificacin hace referencia a un conjunto de polticas y mecanismos incorporados al
sistema operativo que gobiernan el orden en que se ejecutan los trabajos que deben ser
cumplimentados por el sistema informtico.
Objetivo de la Planificacin
El objetivo principal de la planificacin es optimizar el rendimiento del sistema y
proporcionar un buen servicio a todos los procesos que se encuentren en l. En general,
la planificacin trata de cubrir los siguientes objetivos:

Justicia. La planificacin debe ser lo ms justa posible con todos los procesos, sin
favorecer a unos y perjudicar a otros.
Mxima capacidad de ejecucin. Debe dar un servicio eficiente para que todos los
trabajos se realicen lo ms rpidamente posible. Esto se puede lograr
disminuyendo el nmero de cambios de proceso.
Mximo nmero de usuarios interactivos. En los sistemas de tiempo compartido se
tratara de que puedan estar trabajando el mayor nmero de usuarios al mismo
tiempo.
Predecibilidad. La planificacin debe realizarse de tal forma que en todo momento
pueda saberse como ser su ejecucin.
Minimizacin de la sobrecarga. La computadora debe tener poca sobrecarga ya
que esta afecta directamente al rendimiento final del sistema: a menor sobrecarga
mayor velocidad de proceso.
Equilibrio en el uso de recursos. Para obtener un mayor rendimiento en el uso de
los recursos y que estos estn ocupados equitativamente el mayor tiempo posible.
Seguridad de las prioridades. Si un proceso tiene mayor prioridad que otro, este
debe ejecutarse ms rpidamente.
Evitar la postergacin indefinida. Esto se logra aumentando la prioridad de un
proceso mientras espere por un recurso. La prioridad llegara a ser tan alta que al
proceso le sera asignado el recurso que pidi.

48

Criterios de planificacin
Para realizar los objetivos de la planificacin, un mecanismo de planificacin debe
considerar lo siguiente:

La limitacin de un proceso a las operaciones de Entrada / Salida: cuando un


proceso consigue la CPU, ?la utiliza solo brevemente antes de generar una
peticin de Entrada / Salida?
La limitacin de un proceso a la CPU: cuando un proceso obtiene la CPU, ?tiende
a usarla hasta que expira su tiempo?
Si un proceso es por lote (batch) o interactivo: los usuarios interactivos deben
recibir inmediato servicio para garantizar buenos tiempos de respuesta.
? Que urgencia tiene una respuesta rpida?: por ejemplo, un proceso de tiempo
real de un sistema de control que supervise una refinera de combustible requiere
una respuesta rpida, ms rpida que la respuesta requerida por un proceso en
lotes (batch) que deber entregarse al da siguiente.
La prioridad de un proceso: a mayor prioridad mejor tratamiento.
Frecuentemente un proceso genera fallos (carencias) de pgina:
o Probablemente los procesos que generan pocos fallos de pgina hayan
acumulado sus conjuntos de trabajo en el almacenamiento principal.
o Los procesos que experimentan gran cantidad de fallos de pgina an no
han establecido sus conjuntos de trabajo.
o Un criterio indica favorecer a los procesos que han establecido sus
conjuntos de trabajo.
o Otro criterio indica favorecer a los procesos con una tasa alta de fallos de
pgina ya que rpidamente generaran una peticin de Entrada / Salida.
Frecuentemente un proceso ha sido apropiado por otro de ms alta prioridad, lo
cual significa lo siguiente:
o A menudo los procesos apropiados deben recibir un tratamiento menos
favorable.
o Cada vez que el Sistema Operativo asume la sobrecarga para hacer
ejecutar este proceso, el corto tiempo de ejecucin antes de la apropiacin
no justifica la sobrecarga de hacer ejecutar al proceso en primer lugar.
Cuanto tiempo de ejecucin real ha recibido el proceso?: un criterio considera que
debe ser favorecido un proceso que ha recibido muy poco tiempo de CPU.

Cuanto tiempo adicional va a necesitar el proceso para terminar?: los tiempos promedio
de espera pueden reducirse priorizando los procesos que requieren de un tiempo de
ejecucin mnimo para su terminacin, pero pocas veces es posible conocer la cantidad
de tiempo adicional que cada proceso necesita para terminar.

49

2.6 Tcnicas de administracin del planificador.


Planificacin Primero en llegar - Primero en Salir (FIFO).
Es la disciplina ms simple. Los procedimientos son despachados de acuerdo al orden
de llegada a la cola de listos. Una vez que un proceso tiene el CPU, se ejecuta hasta su
terminacin. Esta planificacin es No apropiativa; es justa en el sentido formal, pero algo
injusto porque los grandes procesos hacen esperar a trabajos pequeos y, los trabajos sin
importancia hacen esperar a los trabajos importantes.

Figura 34. Planificacin primero en llegar primero en salir.


La Planificacin FIFO ofrece una varianza en tiempo de respuesta relativamente
pequea y es, por tanto, ms predecible que otros esquemas; no es un esquema til en la
planificacin de procesos interactivos porque no garantiza buenos tiempos de respuesta.

Planificacin del trabajo ms corto (SJF).


La disciplina del trabajo ms corto primero es NO apropiativa y en ella el trabajo o
proceso con tiempo estimado de ejecucin hasta terminacin ms corto, es el siguiente en ser
ejecutado. El SJF reduce el tiempo de espera de los procesos, sin embargo, tiene una varianza
mayor (es decir, es menos predecible) que en FIFO, sobre todo para los trabajos largos.
SJF favorece a los procesos cortos a costa de los procesos largos. Adems, selecciona
los trabajos que sern atendidos y que dejarn el sistema lo antes posible. Esto ltimo traduce
en listas de espera cortas. El SJF es NO apropiativo por lo que resulta de poca utilidad en
ambientes de tiempo compartido.
El proceso en espera con el menor tiempo estimado de ejecucin hasta su terminacin es el
siguiente en ejecutarse.
Los tiempos promedio de espera son menores que con FIFO.
50

Los tiempos de espera son menos predecibles que en FIFO.


Favorece a los procesos cortos en detrimento de los largos.
Tiende a reducir el nmero de procesos en espera y el nmero de procesos que esperan detrs
de procesos largos.
Requiere un conocimiento preciso del tiempo de ejecucin de un proceso, lo que
generalmente se desconoce.
Se pueden estimar los tiempos en base a series de valores anteriores.

Planificacin Round Robin (RR).


En esta planificacin. Los procesos son despachados en FIFO, pero, se les otorga una
cantidad limitada de tiempo de CPU llamada divisin de tiempo (time - slice) o cuanto
(quantum). Si un proceso no termina antes de que se termine su tiempo de CPU, el CPU es
apropiado y asignado al siguiente proceso en espera. El proceso apropiado se coloca al final
de la lista de listos.

Figura 35. Planeacin round robin.


El esquema Round robin es efectivo en un ambiente de tiempo compartido en el
cual el sistema necesita garantizar un tiempo de respuesta razonable para los usuarios
interactivos. La sobre carga de la apropiacin se mantiene baja mediante eficientes
mecanismos de cambio de contexto y proporcionado suficiente memoria para que los
procesos residan en ella al mismo tiempo.
Existe una variante de este esquema llamada selfish round robin (SRR). En este
esquema los procesos que entran al sistema se colocan primero en una lista de espera hasta
que su prioridad alcanza el nivel de proceso para la lista de activos. Mientras un proceso est
en la lista de espera, su prioridad aumenta en una relacin a; cuando un proceso entra a la
lista de activos su prioridad se incrementa en una relacin b.

51

Tamao del cuanto.


La determinacin del tamao del cuanto es decisiva para la operacin efectiva de un
sistema computacional. Debe ser pequeo o grande el cuanto? Debe ser fijo o variable?
Debe ser el mismo para todos los usuarios, o debe ser diferente para cada grupo de usuarios?.
Cuando se tiene un cuanto grande cada proceso pude recibir todo el tiempo que
necesita para su terminacin, de manera que el esquema round robin se convierte en un FIFO.
Cuando el cuanto es pequeo, la sobrecarga por el intercambio de contexto se convierte en
un factor dominante y el rendimiento del sistema se degrada.
Cul es el cuanto ptimo ? Es claro que cambia de un sistema a otro y que varia de
acuerdo a la carga del sistema.

Planificacin mediante colas multinivel.


Los esquemas analizados hasta ahora suponen que todos los procesos ejecutables estn en
la memoria principal.
Si la memoria principal es insuficiente, ocurrir lo siguiente:

Habr procesos ejecutables que se mantengan en disco.


Habr importantes implicaciones para la planificacin, tales como las siguientes:
o El tiempo de alternancia entre procesos para traer y procesar un proceso del
disco es considerablemente mayor que el tiempo para un proceso que ya est
en la memoria principal.
o Es ms eficiente el intercambio de los procesos con un planificador de dos
niveles.

52

Figura 36. Tipos de planificacin del procesador.


El esquema operativo de un planificador de dos niveles es como sigue:
1. Se carga en la memoria principal cierto subconjunto de los procesos ejecutables.
2. El planificador se restringe a ellos durante cierto tiempo.
3. Peridicamente se llama a un planificador de nivel superior para efectuar las
siguientes tareas:
1. Eliminar de la memoria los procesos que hayan permanecido en ella el
tiempo suficiente.
2. Cargar a memoria los procesos que hayan estado en disco demasiado
tiempo.
4. El planificador de nivel inferior se restringe de nuevo a los procesos ejecutables que
se encuentren en la memoria.
5. El planificador de nivel superior se encarga de desplazar los procesos de memoria a
disco y viceversa.
Los criterios que podra utilizar el planificador de nivel superior para tomar sus decisiones
son los que se indican a continuacin:
53

Cunto tiempo ha transcurrido desde el ltimo intercambio del proceso?.


Cunto tiempo de CPU ha utilizado recientemente el proceso?.
Qu tan grande es el proceso? (generalmente los procesos pequeos no causan
tantos problemas en este sentido).
Qu tan alta es la prioridad del proceso?.

El planificador de nivel superior podra utilizar cualquiera de los mtodos de planificacin


analizados.

Planificacion Mediante colas Multi nivel realimentadas.


Proporcionan una estructura para lograr los siguientes objetivos:

Favorecer trabajos cortos.


Favorecer trabajos limitados por la Entrada / Salida para optimizar el uso de los
dispositivos de Entrada / Salida.
Determinar la naturaleza de un trabajo lo ms rpido posible y planificar el trabajo
(proceso) en consecuencia.

Un nuevo proceso entra en la red de lnea de espera al final de la cola superior.


Se mueve por esta cola FIFO hasta obtener la cpu.
Si el trabajo termina o abandona la cpu para esperar por la terminacin de una operacin de
Entrada / Salida o la terminacin de algn otro suceso, el trabajo abandona la red de lnea
de espera.
Si su cuanto expira antes de abandonar la cpu voluntariamente, el proceso se coloca en la
parte trasera de la cola del siguiente nivel inferior.
El trabajo recibe servicio al llegar a la cabeza de esta cola si la primera est vaca.
Mientras el proceso contine consumiendo totalmente su cuanto en cada nivel, continuar
movindose hacia el final de las colas inferiores.
Generalmente hay una cola en la parte ms profunda a travs de la cual el proceso circula
en asignacin de rueda hasta que termina.
Existen esquemas en los que el cuanto otorgado al proceso aumenta a medida que el
proceso se mueve hacia las colas de los niveles inferiores, en tal caso, cuanto ms tiempo
haya estado el proceso en la red de lnea de espera, mayor ser su cuanto cada vez que
obtiene la cpu y no podr obtener la cpu muy a menudo debido a la mayor prioridad de los
procesos de las colas superiores.
Un proceso situado en una cola dada no podr ser ejecutado hasta que las colas de los
niveles superiores estn vacas.
54

Un proceso en ejecucin es apropiado por un proceso que llegue a una cola superior.
Es un mecanismo adaptable, es decir que se adapta a cargas variables.

55

Unidad 3. Administracin de memoria.


3.1 Poltica y filosofa.
FILOSOFIA:

La memoria principal puede ser considerada como un arreglo lineal de localidades


de almacenamiento de un byte de tamao. Cada localidad de almacenamiento tiene
asignada una direccin que la identifica.
Una de las funciones bsicas que debe implementar un SO es la Administracin de
la Memoria para tener un control sobre los lugares donde estn almacenados los
procesos y datos que actualmente se estn utilizando.
Sea cual sea el esquema de organizacin del almacenamiento que se adopte para
un sistema especfico, es necesario decidir que estrategias se deben utilizar para
obtener un rendimiento ptimo .las estrategias de administracin del
almacenamiento determinan el comportamiento de la administracin de memoria
cuando se siguen ciertas polticas:
Cundo se toma un nuevo programa para colocarlo en memoria?
Se toma el programa cuando el sistema lo solicita especficamente o se intenta
anticiparse a las particiones del sistema?
En qu lugar del almacenamiento principal se coloca el programa por ejecutar?
Se colocan los programas lo ms cerca unos de otros en los espacios disponibles
de la memoria principal para reducir al mnimo el desperdicio de espacio, o se
colocan los programas lo ms rpido posible para reducir al mnimo el tiempo de
ejecucin
Si se necesita colocar un nuevo programa en el almacenamiento principal y ste
est lleno, Cul de los otros programas se desaloja?
Se han realizado sistemas que utilizan cada una de estas estrategias de
administracin.
Los programas y datos necesitan estar en el almacenamiento principal para ser
ejecutados o para poder hacer referencia de ellos. Los que no se necesitan de
inmediato pueden guardarse en el almacenamiento secundario.
Unix permite procesos mltiples y en un proceso puede generar otro fcilmente. La
planificacin del procesador usa un algoritmo basado en prioridades. La
administracin de memoria es un algoritmo de regiones variables con intercambios.
Inicialmente los algoritmos realizados se eligieron por sencillez, no por velocidad ni
complejidad. El desarrollo inicial se hizo bajo un espacio muy pequeo de memoria.
Los recursos de memoria totales eran insuficientes para justificar algoritmos
complejos, por lo que UNIX intercambiaba el contenido en memoria de los procesos.

56

POLTICAS.
FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de
procesos listos, si un proceso llega al procesador sale hasta que termine. La poltica
FIFO actualmente no se usa como el esquema principal de un sistema, pero si por
ejemplo cuando se usa una poltica de prioridades y hay procesos con la misma
prioridad, a estos se les podra aplicar FIFO.

Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se
les asigna una cantidad limitada de tiempo (CUANTUM) en el procesador, si no
termina en ese lapso se manda al final de la lista de procesos listos.
SJF (Shortest job first - Prioridad del trabajo ms corto): Se ejecuta primero el
proceso en espera que tiene el menor tiempo estimado. SJF favorece a los procesos
cortos, ya que los largos podran llegar a rezagarse mucho tiempo e incluso nunca
ejecutarse.
SRT (Sortest remaining time scheduling Tiempo restante ms corto): En SJF una
vez que un proceso comienza su ejecucin contina hasta terminar. En SRT, un
proceso en ejecucin puede ser desposedo por uno nuevo de menor tiempo de
ejecucin.
HRN: (highest response ratio next Prioridad de la tasa de respuesta ms alta):
Poltica no apropiativa que corrige el retraso excesivo de procesos grandes que
produce el SJF, para as no caer en un favoritismo excesivo por los procesos cortos,
lo logra usando una formula basada en el tiempo de espera y el tiempo de servicio,
con lo cual la prioridad de cada trabajo no solo est en funcin del tiempo de servicio
sino tambin del tiempo que ha esperado para ser atendido.

57

3.2.- Memoria real.


La memoria real o principal es en donde son ejecutados los programas y procesos
de una computadora y es el espacio real que existe en memoria para que se
ejecuten los procesos. Por lo general esta memoria es de mayor costo que la
memoria secundaria, pero el acceso a la informacin contenida en ella es de ms
rpido acceso. Solo la memoria cache es ms rpida que la principal, pero su costo
es a su vez mayor.

1.2.2.- Administracin de la memoria con mapas de bits


Este tipo de administracin divide la memoria en unidades de asignacin, las cuales
pueden ser tan pequeas como unas cuantas palabras o tan grandes como varios
kilobytes. A cada unidad de asignacin le corresponde un bit en el mapa de bits, el
cual toma el valor de 0 si la unidad est libre y 1 si est ocupada (o viceversa).
Un mapa de bits es una forma sencilla para llevar un registro de las palabras de la
memoria en una cantidad fija de memoria, puesto que el tamao del mapa slo
depende del tamao de la memoria y el tamao de la unidad de asignacin.
1.2.3.- Administracin de la memoria con listas ligadas
Otra forma de mantener un registro de la memoria es mediante una lista ligada de
los segmentos de memoria asignados o libres, en donde un segmento puede ser un
proceso o un hueco entre dos procesos. Cada entrada de la lista especifica un
hueco (H) o un proceso (P), la direccin donde comienza, su longitud y un apuntador
a la siguiente entrada.
Fig. 7. Ejemplo de listas ligadas.
En este ejemplo, la lista de segmentos est ordenada por direcciones, lo que da la
ventaja de que al terminar o intercambiar un proceso, la actualizacin de la lista es
directa.
1.2.4.- Asignacin del hueco de intercambio
En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un
hueco en el disco asignado a l. Cuando deba intercambiarse, se deber asignar
58

un hueco para l en el rea de intercambio del disco. Los algoritmos para la


administracin del hueco de intercambio son los mismos que se utilizan para la
administracin de la memoria principal.
En otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en
el disco. Cuando el proceso sea intercambiado, siempre pasar al hueco asignado,
en vez de ir a otro lugar cada vez. Cuando el proceso concluya, se libera el hueco
de intercambio. La nica diferencia es que el hueco en disco necesario para un
proceso debe representarse como un nmero entero de bloques del disco. Por
ejemplo, un proceso de 13.5 K debe utilizar 14K (usando bloques de 1K).

3.3.- Organizacin de memoria virtual.


Memoria Virtual
La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria
mucho mayor que la memoria fsica de una mquina .Esta ilusin permite que los programas se
hagan sin tener en cuenta el tamao exacto de la memoria fsica.
La memoria virtual ha llegado a ser un componente esencial de la mayora de los S.O actuales. Y
como en un instante dado, en la memoria solo se tienen unos pocos fragmentos de un proceso
dado, se pueden mantener ms procesos en la memoria.

La memoria virtual tambin simplifica la carga del programa para su ejecucin llamado reubicacin,
este procedimiento permite que el mismo programa se ejecute en cualquier posicin de la memoria
fsica.

Evaluacin de las Organizaciones de Almacenamiento

Almacenamiento virtual "significa la capacidad de direccional un espacio de almacenamiento


mucho mayor que el disponible en el almacenamiento primario de determinado sistema de
computacin.
Esta tecnologa apareci en 1960 en la Universidad de Manchester (Inglaterra), en el sistema

59

Atlas.
Los mtodos ms comunes de implementacin son mediante:

Tcnicas de paginacin.

Tcnicas de segmentacin.

Una combinacin de ambas tcnicas.

Las direcciones generadas por los programas en su ejecucin no son, necesariamente, aquellas
contenidas en el almacenamiento primario (memoria real), ya que las direcciones virtuales suelen
seleccionarse dentro de un nmero mucho mayor de direcciones que las disponibles dentro del
almacenamiento primario.
La evolucin en las organizaciones de almacenamiento puede resumirse como sigue:

Real:
o

Sistemas dedicados a un solo usuario.

Real:
o

Sistemas de multiprogramacin en memoria real:

Multiprogramacin en particin fija:

Absoluta.

Relocalizable (reubicadle).

Multiprogramacin en particin variable.

Virtual:
o

Multiprogramacin en almacenamiento virtual:

Paginacin pura.
Segmentacin pura.

Combinacin paginacin / segmentacin.

Paginacin

Qu es la paginacin?
El termino memoria virtual se asocia normalmente con sistemas que emplean paginacin, aunque
tambin se puede usar memoria virtual basada en la segmentacin. El uso de la paginacin en la
memoria virtual fue presentado por primera vez en el computador Atlas.

Cada proceso tiene su propia tabla de pginas y cuando carga todas sus pginas en la o memoria
principal. Puesto que solo algunas de las pginas de un proceso pueden estar en la memoria
principal, se necesita un bit en cada entrada de la tabla para indicar si la pgina perteneciente est

60

presente en la memoria principal o no. Si el bit indica que la pagina est en la memoria, la entrada
incluye tambin el nmero de marco para esa pgina.
Otro bit de control necesario en la entrada de la tabla de pginas es el bit de modificacin (M), para
indicar si el contenido de la pgina correspondiente se ha alterado desde que la pgina se carg
en la memoria principal. Si no ha habido cambios, no es necesario escribir la pgina cuando sea
sustituida en el marco que ocupa actualmente.
Estructura de la tabla de pginas
El mecanismo bsico de lectura de una palabra de la memoria supone la traduccin por medio de
la tabla de pginas de una direccin virtual o lgica (ver figura 3.3.2.1 y 3.3.2.2), formada por un
numero de pgina y un desplazamiento, a una direccin fsica que est formada por un numero de
marco y un desplazamiento.
Con la memoria virtual, la CPU produce direcciones virtuales que son traducidas por una
combinacin de hardware y software a direcciones fsicas, pues pueden ser utilizadas para acceder
a memoria principal. Este proceso se denomina correspondencia de memoria o traduccin de
direcciones. Actualmente los dos niveles de la jerarqua de memoria controlados por la memoria
virtual son las DRAM y los Discos magnticos.
Puesto que la tabla de pginas es de longitud variable, en funcin del tamao del proceso, no es
posible suponer que quepa en los registros.

61

Segmentacion

Implicaciones de la memoria virtual

La segmentacin permite al programador contemplar la memoria como si constara de varios


espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaos, incluso de
forma dinmica. Las referencias a la memoria constan de una direccin de la forma (numero de
segmento, desplazamiento).

62

Esta organizacin ofrece al programador varias ventajas sobre un espacio de direcciones no


segmentado:
1. Simplifica la gestin de estructuras de datos crecientes. Si el programador no conoce a priori
cuan larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a
menos que se permitan tamaos de segmentos dinmicos. Con memoria virtual segmentada, a la
estructura de datos se le puede asignar a su propio segmento y el S.O expandir o reducir el
segmento cuando se necesite.
2. Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar
o volver a montar el conjunto de programas por completo.
3. Se presta a la comparicin entre procesos. Un programador puede situar un programa de
utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos.
4. Se presta a la proteccin. Puesto que un segmento puede ser construido para albergar un
conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema
podrn asignar los permisos de acceso de la forma adecuada.
Organizacin
En el estudio de la segmentacin simple, se llego a la conclusin de que cada proceso tiene su
propia tabla de segmento y que, cuando todos los segmentos se encuentran en la memoria
principal, la tabla de segmentos del proceso se crea y se carga en la memoria. Cada entrada de la
tabla contiene la direccin de comienzo del segmento correspondiente de la memoria principal, as
como su longitud. La misma estructura se necesitara al hablar de un esquema de memoria virtual
basado en la segmentacin donde las entradas de la tabla de segmentos pasan a ser mas
complejas.
Puesto que solo algunos de los segmentos de un proceso estarn en la memoria principal,
se necesita un bit en cada entrada de la tabla de segmentos para indicar si el segmento
correspondiente esta presente en la memoria principal. Si el bit indica que el segmento esta
en la memoria, la entrada incluye tambin la direccin de comienzo y la longitud del
segmento.
Otro bit de control necesario en la entrada de la tabla de segmentos es un bit de
modificacin que indique si el contenido del segmento correspondiente ha sido modificado
desde que se carg por ltima vez en la memoria principal. Si no ha habido cambios, no
ser necesario escribir en el disco el segmento cuando llegue el momento de reemplazarlo
en el espacio que ocupa actualmente.

63

3.4.- Administracin de memoria virtual.

Las diferentes organizaciones de almacenamiento virtual generalmente implementadas


son:

Paginacin.
Segmentacin.
Segmentacin y paginacin.

Las estrategias para la administracin de sistemas de almacenamiento virtual


condicionan la conducta de los sistemas de almacenamiento virtual que
operan segn esas estrategias.
Se consideran las siguientes estrategias:

Estrategias de bsqueda:

o Tratan de los casos en que una pgina o segmento deben ser trados del
almacenamiento secundario al primario.
o Las estrategias de bsqueda por demanda esperan a que se haga
referencia a una pgina o segmento por un proceso antes de traerlos al
almacenamiento primario.
o Los esquemas de bsqueda anticipada intentan determinar por
adelantado a qu pginas o segmentos har referencia un proceso para
traerlos al almacenamiento primario antes de ser explcitamente
referenciados.

Estrategias de colocacin:

o Tratan del lugar del almacenamiento primario donde se colocar una nueva
pgina o segmento.
o Los sistemas toman las decisiones de colocacin de una forma trivial ya que
una nueva pgina puede ser colocada dentro de cualquier marco de pgina
disponible.

Estrategias de reposicin:

o Tratan de la decisin de cul pgina o segmento desplazar para hacer sitio


a una nueva pgina o segmento cuando el almacenamiento primario est
completamente comprometido.
64

Bibliografa:

https://sites.google.com/site/materiasisoperativo/unidad-1-introduccion-alos-sistemas-operativos/1-2-funciones-y-caracteristicas

http://sistemasoperativos.angelfire.com/html/1.1.html

http://eq2-sistemasoperativos.blogspot.mx/2012/04/11-definicion-y-conceptode-sistema.html

65

Anda mungkin juga menyukai