Sunteți pe pagina 1din 60

INSTITUTO TECNOLGICO DE OAXACA

Materia:
Sistemas Operativos
Especialidad:
Ing. Sistemas computacionales
Grupo: IS-B

Horario: 09:00-10:00

Alumno:
Julin Ramrez Luis Gerardo
Profesora:
Valverde Jarqun Reyna
Tercer Semestre
Unidad I

1. INTRODUCCIN A LOS SISTEMAS OPERATIVOS

Carpeta de evidencias

CONTENIDO

1.INTRODUCCIN A LOS SISTEMAS OPERATIVOS........................................................ 1


TABLA DE ILUSTRACIONES ............................................................................................... 4
INTRODUCCIN .................................................................................................................... 5
1.1DEFINICIN Y CONCEPTO ............................................................................................. 6
1.2FUNCIONES Y CARACTERSTICAS .............................................................................. 7
1.3EVOLUCION HISTRICA ................................................................................................ 9
1.4 CLASIFICACIN ........................................................................................................... 13
SISTEMAS POR LOTES SENCILLOS............................................................................ 13
SISTEMAS POR LOTES MULTIPROGRAMADOS........................................................ 14
SISTEMAS DE TIEMPO COMPARTIDO ........................................................................ 15
SISTEMAS PARALELOS ................................................................................................ 16
SISTEMAS DISTRIBUIDOS ............................................................................................ 17
SISTEMAS OPERATIVOS DE TIEMPO REAL. ............................................................. 18
SISTEMA OPERATIVO MULTITAREA ........................................................................... 19
SISTEMA OPERATIVO MONOTAREAS. ....................................................................... 20
SISTEMA OPERATIVO MONOUSUARIO. ..................................................................... 20
SISTEMA OPERATIVO MULTIUSUARIO. ..................................................................... 20
1.5 ESTRUCTURA: NIVELES O ESTRATOS DE DISEO. .............................................. 21
1.6 NCLEO......................................................................................................................... 24
CONCLUSIN...................................................................................................................... 27
BIBLIOGRAFA .................................................................................................................... 27
2 ADMINISTRACIN DE PROCESOS Y DEL PROCESADOR ........................................ 29
INTRODUCCIN .................................................................................................................. 30
2.1 CONCEPTO DE PROCESOS ....................................................................................... 31
2.2 ESTADOS Y TRANSICIONES EN LOS PROCESOS .................................................. 32
2.2.1 BLOQUE DE CONTROL DE PROCESOS ............................................................ 34
2.3 PROCESOS LIGEROS: HILOS O HEBRAS ................................................................ 36
2.3.1 PLANIFICADORES ................................................................................................. 37
2.4 CONCURRENCIA Y SECUENCIABILIDAD ................................................................. 38
2.4.1 EXCLUSION MUTUA SECCIONES CRITICAS ..................................................... 41
2.4.2 SINCRONIZACION PROCESOS EN SO ............................................................... 42

2.4.2.1 MECANISMO DE SEMAFOROS ..................................................................... 43


2.4.2.2 MECANISMO DE MONITORES ...................................................................... 44
2.4.3 INTERBLOQUEO DEADLOCK .............................................................................. 47
2.4.3.1 PREVENCION INTERBLOQUEO DEADLOCK .............................................. 49
2.4.3.2 DETECCION INTERBLOQUEO DEADLOCK ................................................. 50
2.4.3.3 RECUPERACION INTERBLOQUEO DEADLOCK......................................... 51
2.5 NIVELES, OBJETIVOS Y CRITERIOS DE PLANIFICACIN ..................................... 52
2.6 TCNICAS DE ADMINISTRACIN DEL PLANIFICADOR ......................................... 54
2.6.1 FIFO ......................................................................................................................... 55
2.6.2 SJF........................................................................................................................... 56
2.6.3 RR ............................................................................................................................ 57
2.6.4 QUEVESMULTILEVEL ........................................................................................... 58
2.6.5 MULTILEVEL FEEDBACK QUEVES..................................................................... 59
CONCLUSIN...................................................................................................................... 60
BIBLIOGRAFA .................................................................................................................... 60

Tabla de ilustraciones
INTRODUCCIN A LOS SISTEMAS OPERATIVOS
ILUSTRACIN 1: SISTEMAS OPERATIVOS: ........................................................................................... 6
ILUSTRACIN 2: RELACIN DE DISPOSITIVOS ..................................................................................... 8
ILUSTRACIN 3: PRIMERA COMPUTADORA ENIAC............................................................................. 9
ILUSTRACIN 4: TRANSISTORES ........................................................................................................ 10
ILUSTRACIN 5: PRIMER CIRCUITO INTEGRADO .............................................................................. 11
ILUSTRACIN 6: PRIMER ORDENADOR PERSONAL 1981 .................................................................. 12
ILUSTRACIN 7: SPOOLING ............................................................................................................... 13
ILUSTRACIN 8: MULTIPROGRAMACIN ............................................................................. 14
ILUSTRACIN 9: SISTEMA DE TIEMPO COMPARTIDO ....................................................................... 15
ILUSTRACIN 10:SISTEMAS DISTRIBUIDOS ....................................................................................... 17
ILUSTRACIN 11: SISTEMAS DE TIEMPO REAL .................................................................................. 18
ILUSTRACIN 12: SISTEMAS DE RED ................................................................................................. 19
ILUSTRACIN 13: NIVELES EN UN SISTEMA OPERATIVO .................................................................. 24
ADMINISTRACIN DE PROCESOS Y DEL PROCESADOR
ILUSTRACIN 1: ESTADO DE UN PROCESO EN LINUX ....................................................................... 32
ILUSTRACIN 2: TRANSICIONES DE ESTADO DE LOS PROCESOS ..................................................... 33
ILUSTRACIN 3: PCB.......................................................................................................................... 34
ILUSTRACIN 4: DIAGRAMA QUE MUESTRA LA CONMUTACIN DE CPU DE UN PROCESO A OTRO35
ILUSTRACIN 5: PROCESOS LIGEROS ................................................................................................ 36
ILUSTRACIN 6: DIAGRAMA DE COLAS DE LA PLANIFICACIN DE PROCESOS ................................ 37
ILUSTRACIN 7: TIPO MONITOR ....................................................................................................... 45
ILUSTRACIN 8: TIPO MANAGER ...................................................................................................... 45
ILUSTRACIN 9: TIPO MEDIADOR ..................................................................................................... 46
ILUSTRACIN 10: TIPO GLADIADOR .................................................................................................. 46
ILUSTRACIN 11: INTERBLOQUEO DEADLOCK ................................................................................. 47
ILUSTRACIN 12: ALGORITMO FIFO ................................................................................................. 55
ILUSTRACIN 13: ALGORITMO SJF .................................................................................................... 56
ILUSTRACIN 14: ALGORITMO RR .................................................................................................... 57
ILUSTRACIN 15: ALGORITMO DE COLAS MULTINIVELES ................................................................ 58
ILUSTRACIN 16: DIAGRAMA DE COLAS MULTINIVELES RETROALIMENTACION ............................. 59

Introduccin
Un Sistema operativo es un programa que administra el hardware de una
computadora, sin el S. O el hardware solo sera un montn de fierro. Tambin
proporciona las bases para los programas de aplicacin, y acta como intermediario
entre el usuario y el hardware. Estas tareas, pueden ser llevadas a cabo de varias
formas, lo que permite que algunos sistemas Operativos se diseen para ser
prcticos, otros eficientes y otros para ser ambas cosas. Dado que un sistema
operativo es un software grande y complejo, debe crearse pieza por pieza.
A lo largo del tema, se hablara de la historia, evolucin, clasificacin y estructura de
los
sistemas
operativos.
Veremos que no slo Microsoft tiene la exclusiva de los sistemas operativos
en el mundo; tambin Linux y Mac OS, entre otros, son utilizados en
muchos ordenadores, tanto a nivel de usuario como de empresa y de profesional a
utnomo.

1.1Definicin y concepto
Un sistema operativo es un conjunto de programas de un sistema informtico que
gestiona los recursos de hardware entre los diversos programas de aplicacin de
los distintos usuarios. Comienza a trabajar cuando se enciende el computador, y
gestiona el hardware de la mquina desde los niveles ms bsicos, permitiendo
tambin la interaccin con el usuario.
Un sistema operativo se puede encontrar normalmente en la mayora de los
aparatos electrnicos que utilicen microprocesadores para funcionar, ya que gracias
a estos podemos entender la mquina y que sta cumpla con sus funciones
(telfonos mviles, reproductores de DVD y computadoras)
En general, no existe una definicin perfecta de sistema operativo. El objetivo
fundamental de los computadores es ejecutar los programas del usuario y facilitar
la resolucin de los problemas de los usuarios.
Objetivos:
Comodidad: Los sistemas operativos existen porque se supone que es ms fcil
realizar tareas de cmputo con ellos que sin ellos.
Eficiencia: permite que los recursos de un sistema informtico se aprovechen de
manera ms eficiente.
Capacidad de evolucin se debe de crear el desarrollo efectivo, edificacin y la
introduccin de nuevas soluciones en los sistemas.
Ilustracin 1: Sistemas Operativos:

1.2Funciones y caractersticas
Funciones de los sistemas operativos.
1.- Aceptar todos los trabajos y conservarlos hasta su finalizacin.
2.- Interpretacin de comandos: Interpreta los comandos que permiten al usuario
comunicarse con el ordenador.
3.- Control de recursos: Coordina y manipula el hardware de la computadora, como
la memoria, las impresoras, las unidades de disco, el teclado o el Mouse.
4.- Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de
almacenamiento, como discos flexibles, discos duros, discos compactos o cintas
magnticas.
5.- Manejo de errores: Gestiona los errores de hardware y la prdida de datos.
6.- Secuencia de tareas: El sistema operativo debe administrar la manera en que se
reparten los procesos. Definir el orden. (Quien va primero y quien despus).
7.- Proteccin: Evitar que las acciones de un usuario afecten el trabajo que est
realizando otro usuario.
8.- Multiacceso: Un usuario se puede conectar a otra mquina sin tener que estar
cerca de ella.
9.- Contabilidad de recursos: establece el costo que se le cobra a un usuario por
utilizar determinados recursos.

Caractersticas de los sistemas operativos.


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.
Ilustracin 2: Relacin de dispositivos

1.3Evolucion histrica
Primera generacin (1945-1955) Bulbos y conexiones.
Despus de los esfuerzos infructuosos de Babbage, hubo poco progreso en la
construccin de las computadoras digitales, hasta la Segunda Guerra Mundial. A
mitad de la dcada de los 40's, Howard Aiken, John Von Newman, J. Prespe R.
Eckert y Williams Mauchley, as como Conrad Zuse, entre otros lograron construir
mquinas de clculo mediante bulbos. Estas mquinas eran enormes y llenaban
cuartos completos con decenas de miles de bulbos, siendo estas muy lentas.
En los aos 40, se introducen los programas bit a bit, por medio de interruptores
mecnicos y toda la programacin se llevaba a cabo en lenguaje de maquina
absoluto y con frecuencia se utilizaban conexiones para controlar las funciones
bsicas de la mquina. Los lenguajes de programacin eran desconocidos al igual
que los Sistemas Operativos. El modo usual de operacin consista en que el
programador reservaba cierto periodo, 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.
A principios de los aos 50 los sistemas operativos aparecen con el fin de facilitar
la interaccin entre programador y maquina con conceptos como:

Monitor residente: cargaba los programas a la memoria leyndolos de una


cinta o tarjetas perforadas y ejecutarlos.

Procesamiento por lotes: agrupaba los trabajos en lotes en una misma cinta
o conjunto de tarjetas de forma que se ejecutara uno a continuacin de otro sin
perder apenas tiempo en la transicin.

Almacenamiento temporal: El objetivo es disminuir el tiempo de carga de los


programas.
Ilustracin 3: Primera computadora ENIAC

Segunda generacin. (1955-1965): Transistores y Sistemas de


Procesamiento por lotes.
La introduccin del transistor a mediados de los aos 50 hizo que las computadoras
se volvieron confiables de forma que podan fabricarse y venderse a clientes.
El concepto de Sistema Operativo surge en la dcada de los 50. El primer Sistema
Operativo de la historia fue creado en 1956 para un ordenador IBM 704, y
bsicamente lo nico que haca era comenzar la ejecucin de un programa cuando
el anterior terminaba. Es en esta dcada cuando aparece UNIX,
En los aos 60 se produjeron cambios notorios en varios campos de la informtica
con circuitos cerrados, la mayora orientados a seguir incrementando el potencial
de los computadores para ello se utilizaban tcnicas de lo ms diversas tales como:
Multiprogramacin: es un sistema multiprogramado que en la memoria principal al
verla jams sea un programa de usuario.
Tiempo compartido: con esta se consigue compartir la CPU por igual entre los
programas de los distintos usuarios, para que los programas de los usuarios no se
sientan demasiado lentos.
Tiempo real: estos sistemas se usan en entornos donde se deben aceptar y
procesar en periodos muy breves un gran nmero de sucesos.
Multiprocesador: esto me permite trabajar con mquinas que posee ms de un
microprocesador.
Ilustracin 4: Transistores

Tercera generacin
multiprogramacin.

(1965-1980):

Circuitos

integrados

Debido al alcance de la electrnica pudieron empezar a crear circuitos con miles de


transistores en un centmetro cuadrado de cilicio. En los aos 70 los ordenadores
se acercan al pblico de manera impensable en ese entonces. Aparecen los
lenguajes PASCAL Y C adems que este ltimo se cre especficamente para
reescribir por completo el cdigo de sistema operativo UNIX.
Como consecuencia de este crecimiento exponencial de usuarios, la gran mayora
de ellos sin ningn conocimiento sobre lenguajes de bajo o alto nivel, hizo que en
los aos 80, la prioridad a la hora de disear un sistema operativo fuese la facilidad
de uso, surgiendo as las primeras interfaces de usuario.
La 360 de IBM fue la primera lnea principal de computadoras que utilizo los circuitos
integrados, lo que proporciono una gran ventaja en el precio y desempeo con
respecto a las mquinas de la segunda generacin adems de popularizar tcnicas
fundamentales como la 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.
Ilustracin 5: Primer Circuito Integrado

Cuarta generacin (1980-Actualidad): Computadoras personales.


En esta poca siguieron utilizndose lenguajes ya existentes como SMALL TALK y
C y nacieron otros nuevos de los cuales se podran destacar el C++, en esta escena
dos sistemas operativos eran los mayoritarios el MICROSOFT DOS escrito por la
Microsoft para la IBM y otros computadores que usaban la CPU INTEL 80 pal de 8
y sus sucesores, por ltimo la UNIX que determinaba y estaba en grande escala
con los ordenadores que hacia el uso de los MOTOROLAS 68000.
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 maquina 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.
Ilustracin 6: Primer ordenador personal 1981

1.4 Clasificacin
Sistemas por lotes sencillos
El sistema operativo en los primeros computadores era sencillo ya que estos eran
enormes maquinas que se controlaban a travs de una consola. Los dispositivos de
entrada eran lectores de tarjetas, unidades de cinta y los de salida eran impresoras
de lnea, unidades de cinta y perforadoras de tarjetas. Su principal obligacin era
transferir el control automticamente de un trabajo al siguiente. El sistema operativo
siempre estaba en la memoria. Se caracteriza por la falta de interaccin entre el
usuario y el trabajo que se est ejecutando.
A fin de agilizar el procesamiento, los programas con necesidades similares se
agrupaban en lotes y se introducan en el computador como un grupo, cuando el
computador quedaba disponible, ejecutaba cada lote. Entre la presentacin de un
trabajo y su terminacin conocido como tiempo de retorno, ocasiona retardos antes
de que el S. O empiece a procesar otro trabajo, por lo que la CPU con frecuencia
est ociosa. Esta inactividad se debe a la diferencia de velocidad entre la CPU y los
dispositivos de E/S.
La introduccin de la tecnologa de discos ha sido til a este problema y dio lugar a
la operacin perifrica simultnea en lnea (Spooling) que consiste en que las
tarjetas pueden leerse del lector al disco. El disco se utiliza como buffer de gran
tamao, para leer por adelantado hasta donde sea posible de los dispositivos de
entrada, y para guardar los archivos de salida hasta que los dispositivos de salida
puedan aceptarlos.
Ilustracin 7: Spooling

Sistemas por lotes multiprogramados


El Spooling da origen la reserva de trabajos. Al tener reserva de trabajos en disco,
el sistema operativo puede escoger cul trabajo ejecutar a continuacin, a fin de
mejorar el aprovechamiento de la CPU. S los trabajos llegan directamente en
tarjetas o incluso en cinta magntica, no es posible ejecutarlos en un orden distinto
ya que se deben ejecutar secuencialmente, conforme van llegando. En cambio, si
varios trabajos estn en un dispositivo de acceso directo, como un disco, es posible
la planificacin de trabajos.
El aspecto ms importante de la planificacin de trabajos es la capacidad de
multiprogramar. La multiprogramacin aumenta el aprovechamiento de la CPU
organizando los trabajos de tal forma que la CPU siempre tenga uno que ejecutar.
La multiprogramacin es el primer caso en que el sistema operativo debe tomar
decisiones por los usuarios. Todos los trabajos que ingresan en el sistema se
mantienen en un rea auxiliar de trabajos. Si varios trabajos estn listos para
colocarse en la memoria, y no hay espacio suficiente para todos, el sistema deber
escoger algunos de entre ellos.

Ilustracin 8: Multiprogramacin

Ejemplos de sistemas por lotes : SCOPE, del DC6600, EXEC II para el UNIVAC
1107, GM-NAA I/O, Fortran Monitor Sistem y el IBSYS

Sistemas de tiempo compartido


Con el uso de la multiprogramacin, el procesamiento por lotes puede ser bastante
eficiente. No obstante, para muchos trabajos, es deseable proporcionar un modo en
el que el usuario interaccione en forma directa con la computadora. El tiempo
compartido es una extensin lgica de la multiprogramacin. Se ejecutan mltiples
trabajos mientras la CPU se conmuta entre ellos, pero la conmutacin es tan
frecuente que los usuarios pueden interactuar con cada programa durante su
ejecucin.
Cuando el sistema operativo termina de ejecutar una orden, busca el siguiente
"enunciado de control" no de un lector de tarjetas, sino del teclado del usuario. El
usuario introduce una orden, espera la respuesta, y decide cul ser la siguiente
orden, con base en el resultado de la anterior.
De la misma manera que la multiprogramacin permite al procesador manejar
trabajos por lotes mltiples a la vez, la multiprogramacin puede usarse para
manejar trabajos interactivos mltiples. En el ltimo caso, la tcnica se denomina
tiempo compartido, reflejando el hecho que mltiples usuarios comparten el tiempo
del procesador. La tcnica bsica para un sistema de tiempo compartido es tener
mltiples usuarios que usan al mismo tiempo el sistema por medio de las terminales,
con el sistema operativo intercalando la ejecucin de cada programa usuario en una
rfaga corta o quantum de computacin. Por lo tanto, si existen n usuarios que, de
manera activa, solicitan servicio a la vez, cada usuario vera en promedio solo 1/n
de la velocidad efectiva de computadora, sin contar la sobrecarga del sistema
operativo. No obstante, como las reacciones humanas son lentas, el tiempo de
respuesta en un sistema diseado en forma apropiada, deber ser comparable al
de una computadora dedicada.
Ilustracin 9: Sistema de Tiempo Compartido

Ejemplos: Multics, OS/360, DEC-10, CTSS y PLATO II

Sistemas Paralelos
Tales sistemas tienen ms de un procesador en comunicacin, los cuales
comparten el bus del computador, el reloj y a veces la memoria y los dispositivos
perifricos. Decimos que estos sistemas estn fuertemente acoplados. Una ventaja
es el aumento en el rendimiento. Los multiprocesadores tambin pueden ahorrar
dinero en comparacin con varios sistemas con un solo procesador, porque los
procesadores pueden compartir perifricos, gabinetes y fuentes de potencia. Otra
ventaja es la confiabilidad, ya que si uno de los n procesadores falla no detendr el
sistema, solo lo har ms lento ya que los procesadores que no han fallado debern
asumir una porcin de trabajo del que fallo, a esto se le denomina degradacin
gradual .
Los sistemas de mltiple procesador pueden ser multiprocesamiento simtrico, en
el que cada procesador ejecuta una copia idntica del sistema operativo, y estas
copias se comunican entre s cuando es necesario. Otros utilizan el asimtrico, en
el que a cada procesador se asigna una tarea especfica. Un procesador maestro
controla el sistema; los dems procesadores obtienen sus instrucciones del maestro
o bien tienen tareas predefinidas.
Ejemplos: Encore de UNIX para el computador multimax, sunOs versin 4 y versin
5.

Sistemas distribuidos
Se dice que los sistemas estn dbilmente acoplados o distribuidos cuando el
sistema se distribuye entre varios procesadores que no comparten la memoria ni el
reloj. En vez de ello, cada procesador tiene su propia memoria local. Los
procesadores se comunican entre s a travs de diversas lneas de comunicacin.
Hay diversas razones para construir sistemas distribuidos, siendo las principales:
Recursos Compartidos. Si varios sitios distintos se conectan entre s, un usuario de
un sitio podra aprovechar los recursos disponibles en otro.
Computacin ms rpida. Se utiliza la carga compartida que es cuando un sitio esta
sobrecargado de trabajos, estos se pueden trasferir a otros sitios con menos carga.
Confiabilidad: si un sitio de un sistema distribuido falla los sitios restantes podran
seguir funcionando.
Comunicacin: Hay muchos casos en los que los programas necesitan intercambiar
datos con otros programas del mismo sistema. Si muchos sitios estn conectados
a travs de una red de comunicaciones, los procesos de diferentes sitios tienen la
oportunidad de intercambiar informacin.

Ilustracin 10:Sistemas Distribuidos

Ejemplos: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos.

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, los sistemas que controlan experimentos cientficos, los que
producen imgenes mdicas, los de control industrial etc.
Hay dos tipos de sistemas de tiempo real. Un sistema de tiempo real duro garantiza
que las tareas crticas se terminarn a tiempo. Un tipo menos restrictivo de sistema
de tiempo real es el de tiempo real blando, en el que una tarea de tiempo real crtica
goza de prioridad respecto a otras tareas, y se conserva esa prioridad hasta que se
lleva a cabo. Al igual que en los sistemas de tiempo real duros, es preciso limitar los
retardos del ncleo: no es posible mantener a una tarea de tiempo real esperando
indefinidamente a que el ncleo la ejecute. Los sistemas de tiempo real blandos
tienen una utilidad ms limitada que los duros ya que no apoyan el cumplimento
estricto de plazos, es riesgoso utilizarlos en control industrial y robtica, aunque hay
varias reas en las que pueden ser tiles, como multimedia, realidad virtual y
proyectos cientficos avanzados como la exploracin submarina y planetaria.
Caractersticas:

Su objetivo es proporcionar rpidos tiempos de respuesta


Procesa rfagas de miles de interrupciones por segundo sin perder algn
proceso
Poco movimiento de programas entre almacenamiento secundario y
memoria
Proceso de mayor prioridad expropia recursos.
Ilustracin 11: Sistemas de Tiempo Real

Ejemplos: VxWorks, Solaris, Lyns OS, Spectra y Haiku.

Sistema por 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.
Ejemplos: Novell Netware, Personal Netware, LAN Manager, Windows NT Server,
UNIX, LANtastic.
Ilustracin 12: Sistemas de red

Sistema Operativo multitarea


Es aquel sistema que permite al usuario y al equipo, realizar varias funciones de
manera simultnea. Los equipos estn diseados para ejecutar una sola tarea por
vez, sin embargo, los sistemas operativos multitarea permiten realizar varias
operaciones a la vez, debido a que realizan una operacin denominada cambio de
contexto, consiste en quitar un proceso del CPU, ingresa uno nuevo y luego vuelve
a ingresar el proceso que quit del CPU de modo, que pueda realizar varias tareas
simultneas. Es como una especie de engao, que permite mejorar el rendimiento
de los ordenadores y facilitar el trabajo a los usuarios.
Tipos de sistemas multitarea
Cooperativos: cuando los procesos de usuario resignan la CPU al sistema operativo
en distintos intervalos. Este tipo de multitarea es problemtica y poco confiable.
Preferentes: Estos se encargan de administrar los procesos, repartiendo el uso del
CPU, entre los procesos que estn esperando ser ejecutados.

Real: que slo ocurre en sistemas de multiprocesador, varios procesos de hecho


tienen lugar al mismo tiempo.
Ejemplos: Windows (98, me, MILLENIUM, XP, VISTA, 7, 8), UNIX, freebsd, Linux y
os x.
Sistema Operativo Monotareas.
Los sistemas monotarea son aquellos que solo permiten realizar una sola tarea,
estos sistemas son ms primitivos porque solo permiten un proceso a la vez. Por
ejemplo cuando la computadora est imprimiendo un documento, no puede iniciar
otro proceso ni responder a nuevas instrucciones hasta que se termine la impresin.
Ejemplo: MS-DOS, GM-NAA I/O, BESYS, UMES y SHARE Operating System.

Sistema Operativo Monousuario.


Los sistemas monousuarios son aquellos que nada ms puede atender a un solo
usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo
de aplicacin que se est ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada,
salida y control dependen de la tarea que se est utilizando, esto quiere decir, que
las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo
usuario. Y estn orientados principalmente por los microcomputadores.
Ejemplos: MS-DOS, Classic Mac OS, Amiga OS, CPM, Windows 3.11.

Sistema Operativo Multiusuario.


Es todo lo contrario a monousuario; y en esta categora se encuentran todos los
sistemas que cumplen simultneamente las necesidades de dos o ms usuarios,
que comparten mismos recursos. Este tipo de sistemas se emplean especialmente
en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing).
Ejemplos:IRIX, Solaris, Linux, FreeBSD y Mac OS X.

1.5 Estructura: niveles o estratos de diseo.


Estructura modular.
Tambin llamados sistemas monolticos. La estructura consiste en que no existe
estructura alguna. El sistema operativo se escribe como una coleccin de
procedimientos, cada uno de los cuales puede llamar a los dems cada vez que as
lo requiera. Cuando se usa esta tcnica, cada procedimiento del sistema tiene una
interfaz bien definida en trminos de parmetros y resultados y cada uno de ellos
es libre de llamar a cualquier otro, si este ltimo proporciona cierto clculo til para
el primero. Sin embargo incluso en este tipo de sistemas es posible tener al menos
algo de estructura. Los servicios que proporciona el sistema operativo se solicitan
colocando los parmetros en lugares bien definidos, como en los registros o en la
pila, para despus ejecutar una instruccin especial de trampa de nombre "llamada
al ncleo" o "llamada al supervisor".
Esta instruccin cambia la mquina del modo usuario al modo ncleo y transfiere el
control al sistema operativo. El sistema operativo examina entonces los parmetros
de la llamada, para determinar cul de ellas se desea realizar. A continuacin, el
sistema operativo analiza una tabla que contiene en la entrada k un apuntador al
procedimiento que realiza la k-esima llamada al sistema. Identifica el procedimiento
de servicio, al cual se llama. Por ltimo, la llamada al sistema termina y el control
regresa al programa del usuario.
Esta organizacin sugiere una organizacin bsica del sistema operativo:
1.- un programa principal que llama al procedimiento del servicio solicitado.
2.- un conjunto de procedimientos de servicio que llevan a cabo las llamadas al
sistema.
3.- un conjunto de procedimientos utilitarios que ayudan al procedimiento de
servicio.
En este modelo, para cada llamada al sistema existe un procedimiento de servicio
que se encarga de l. Los procedimientos utilitarios hacen cosas necesarias para
varios procedimientos de servicio, por ejemplo buscar los datos de los programas
del usuario.
Estructura por microkernel.
Las funciones centrales de un SO son controladas por el ncleo (kernel) mientras
que la interfaz del usuario es controlada por el entorno (Shell). Por ejemplo, la parte
ms importante del DOS es un programa con el nombre "COMMAND.COM" Este
programa tiene dos partes. El kernel, que se mantiene en memoria en todo

momento, contiene el cdigo mquina de bajo nivel para manejar la administracin


de hardware para otros programas que necesitan estos servicios, y para la segunda
parte del COMMAND.COM el Shell, el cual es el intrprete de comandos
Las funciones de bajo nivel del SO y las funciones de interpretacin de comandos
estn separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero
utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando
cargas Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz
de lnea de comandos con una interfaz grfica del usuario. Existen muchos "shells"
diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o
inclusive el mismo SO MS-DOS a partir de la versin 5.0 incluy un Shell llamado
DOS SHELL.
Estructura por anillos concntricos (capas).
El sistema por "capas" consiste en organizar el sistema operativo como una
jerarqua de capas, cada una construida sobre la inmediata inferior. El primer
sistema construido de esta manera fue el sistema THE (Technische Hogeschool
Eindhoven), desarrollado en Holanda por E. W. Dijkstra (1968) y sus estudiantes.
El sistema tena 6 capas. La capa 0 trabaja con la asignacin del procesador y
alterna entre los procesos cuando ocurren las interrupciones o expiran los
cronmetros. Sobre la capa 0, el sistema consta de procesos secunciales, cada
uno de los cuales se podra programar sin importar que varios procesos estuvieran
ejecutndose en el mismo procesador, la capa 0 proporcionaba la
multiprogramacin bsica de la CPU.
La capa 1 realizaba la administracin de la memoria. Asignaba el espacio de
memoria principal para los procesos y un recipiente de palabras de 512K se utilizaba
para almacenar partes de los procesos (pginas) para las que no exista lugar en la
memoria principal. Por encima de la capa 1, los procesos no deban preocuparse si
estaban en la memoria o en el recipiente; el software de la capa 1 se encargaba de
garantizar que las pginas llegaran a la memoria cuando fueran necesarias.
La capa 2 se encargaba de la comunicacin entre cada proceso y la consola del
operador. Por encima de esta capa, cada proceso tiene su propia consola de
operador.
La capa 3 controla los dispositivos de E/S y guarda en almacenes (buffers) los flujos
de informacin entre ellos. Por encima de la capa 3, cada proceso puede trabajar
con dispositivos exactos de E/S con propiedades adecuadas, en vez de dispositivos
reales con muchas peculiaridades. La capa 4 es donde estaban los programas del
usuario, estos no tenan que preocuparse por el proceso, memoria, consola o control
de E/S. el proceso operador del sistema se localizaba en la capa 5.

Una generalizacin ms avanzada del concepto de capas se present en el sistema


MULTICS. En lugar de capas, MULTICS estaba organizado como una serie de
anillos concntricos, siendo los anillos interiores los privilegiados. Cuando un
procedimiento de un anillo exterior deseaba llamar a un procedimiento de un anillo
interior, debi hacer el equivalente a una llamada al sistema.
Estructura cliente servidor
Una tendencia de los sistemas operativos modernos es la de explotar la idea de
mover el cdigo a capas superiores y eliminar la mayor parte posible del sistema
operativo para mantener un ncleo mnimo. El punto de vista usual es el de
implantar la mayora de las funciones del sistema operativo en los procesos del
usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo,
un proceso del usuario (denominado proceso cliente) enva la solicitud a un proceso
servidor, que realiza entonces el trabajo y regresa la respuesta. En este modelo,
que se muestra en la figura 4, lo nico que hace el ncleo es controlar la
comunicacin entre los clientes y los servidores. Al separar el sistema operativo en
partes, cada una de ellas controla una faceta del sistema, como el servicio a
archivos, servicios a procesos, servicio a terminales o servicio a la memoria, cada
parte es pequea y controlable. Adems como todos los servidores se ejecutan
como procesos en modo usuario y no en modo ncleo, no tienen acceso directo al
hardware. En consecuencia si hay un error en el servidor de archivos, ste puede
fallar, pero esto no afectar en general a toda la mquina.
Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptacin para
su uso en los sistemas distribuidos. Si un cliente se comunica con un servidor
mediante mensajes, el cliente no necesita saber si el mensaje se maneja en forma
local, en su mquina, o si se enva por medio de una red a un servidor en una
mquina remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos: se
envi una solicitud y se recibi una respuesta.

1.6 Ncleo.
El Ncleo del Sistema Operativo.
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.
La estructura general del nucleo se divide en 3 niveles:
1 Nivel Ncleo. Gestin bsica de procesos: planificacin a corto plazo, cambio de
contexto. Primitivas de sincronizacin. Gestin de E/S y tiempo, rutinas de atencin.
2 Nivel del Sistema Bsico de Ficheros, BFS. Sistema bsico de ficheros: ubicacin
en
disco, directorios. Rutinas de E/S, servidores de dispositivos.
3 Nivel Sistema. Implementacin de las llamadas al sistema; independencia del
dispositivo (tablas de canales); gestin de buffers para acceso a ficheros; carga,
ejecucin y finalizacin de procesos.
Ilustracin 13: Niveles en un sistema operativo

Cada nivel utiliza una serie de rutinas internas:


Rutinas dependientes del hardware
Son las rutinas del ncleo de ms bajo nivel. Son dos grupos. Las ms elementales
estn escritas en ensamblador y tratan con direcciones especficas de E/S o de
memoria o bien inhiben/activan interrupciones o manipulan directamente la pila del
programa para proporcionar los cambios de contexto. El segundo grupo de rutinas
internas del ncleo, que programan los dispositivos, estn codificadas en C.
Rutinas de manejo de colas y auxiliares
La mayora se utilizan en el ncleo para el manejo de los PCBs. Fundamentalmente
son
rutinas de acceso a colas. En general, las rutinas auxiliares se utilizarn tambin en
los niveles superiores. Por esta razn se definen las estructuras item y cola de forma
genrica, sin incluir informacin especfica de los elementos que enlazan (en
general procesos).
Rutinas para la gestin de procesos
La gestin de procesos est soportada por rutinas que manejan colas y
proporcionan cambios
de estado en los procesos: bloquear(), scheduler(), dispatcher. Otras rutinas
inicializan
estructuras de datos (PCB y pila) para los procesos en su creacin.
Definiciones y estructuras de datos
Se refieren a la estructura del PCB y a las colas que modelan el funcionamiento del
ncleo. Existe adems una serie de definiciones de smbolos para los estados de
los procesos, dispositivos, etc,
Primitivas del ncleo
Las primitivas del ncleo constituyen el conjunto de rutinas visibles desde el nivel
superior.
Se definen en C y utilizan las rutinas dependientes del hardware y a las rutinas
auxiliares
introducidas anteriormente.

pueden dividir en los siguientes grupos:


1 Control de dispositivos
(a) disco
(b) terminal

(c) lnea serie


(d) impresora
2 Control de procesos
3 Espera por tiempo
4 Sincronizacin entre procesos
5 Reset
Funciones del ncleo
Las funciones bsicas del ncleo son garantizar la carga y la ejecucin de los
procesos, las entradas/salidas y proponer una interfaz entre el espacio ncleo y los
programas del espacio del usuario.
Otras funciones importantes del ncleo son:

Administracin de la memoria para todos los programas y procesos en


ejecucin.

Administracin del tiempo de procesador que los programas y procesos en


ejecucin utilizan.

Es el encargado de que podamos acceder a los perifricos/elementos de


nuestro ordenador
de una manera cmoda.

Manejo de interrupciones.

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.

Conclusin
Luego de haber investigado y analizado, el sistema operativo se crea como producto
de una necesidad para mejorar la codificacin de tareas en los aos cuarenta. Antes
las operaciones se hacan manualmente. El sistema operativo es esencial en
nuestros equipos informticos ya que es una parte fundamental para el
funcionamiento del equipo y sin l no se podra realizar accin o actividad alguna,
se puede encontrar en la mayora de los aparatos electrnicos que utilizan
microprocesadores para funcionar. Ya que nos ayuda a crear una interfaz entre
nosotros y el equipo, y el equipo con sus componentes. Se puede ver que se han
desarrollado varios tipos de sistemas operativos con diferentes interfaces y
categoras, los sistemas han sufrido cambios por parte de los programadores, los
sistemas operativos evolucionaron a la par con la arquitectura de los computadores,
a travs de cuatro generaciones donde alcanzaron un mejoramiento y efectividad
en su desempeo. Los sistemas operativos son programas esenciales para el
funcionamiento eficaz de las tareas, programas y aplicaciones proporcionando una
interfaz cada vez ms agradable a la vista del usuario.

Bibliografa
Galvin, A. S. (s.f.). Sistemas Operativos. 5ta Edicin.
Lafuente, A. (Febrero 2006). Ncleo de un Sistema.

Fuentes bibliogrficas:
http://www.aeromental.com/ (Lafuente, Febrero 2006) (Lafuente, Febrero 2006)
(Lafuente, Febrero 2006)2006/08/16/evolucin-de-los-sistemas-operativos/
http://sistemasoperativos.angelfire.com/html/1.3.html
http://manuelpereiragonzalez.blogspot.mx/2009/10/historia-de-la-informatica-lossistemas.html
http://es.slideshare.net/juanitobanana0102/sistemas-operativos-41005779

INSTITUTO TECNOLGICO DE OAXACA

Materia:
Sistemas Operativos
Especialidad:
Ing. Sistemas computacionales
Grupo: IS-B

Horario: 09:00-10:00

Alumno:
Julin Ramrez Luis Gerardo
Profesora:
Valverde Jarqun Reyna
Tercer Semestre
Unidad II

2 ADMINISTRACIN DE PROCESOS Y DEL


PROCESADOR

Carpeta de evidencias

INTRODUCCIN
El presente trabajo de investigacin se pretende dar a conocer la forma en que se
realizan los procesos en el procesador, entre ellos se encuentran la concurrencia
entre procesos, la forma de planificacin de los procesos, los tipos de interbloqueo
y las tcnicas de administracin de procesos.
La gestin de procesos es la tarea fundamental de cualquier sistema operativo
moderno. El sistema operativo debe asignar recursos a los procesos, permitir el
intercambio de informacin entre los mismos, proteger los recursos de un proceso
del resto y facilitar la sincronizacin de procesos. Para alcanzar estos objetivos, el
sistema operativo mantiene una estructura de datos para cada proceso que describe
su estado y los recursos que posee y que permite al sistema operativo imponer un
control sobre los procesos (PCB Bloque de Control de Proceso). En un
monoprocesador multiprogramado, debe intercalarse en el tiempo, la ejecucin de
mltiples procesos. En un multiprocesador, no slo puede intercalarse la ejecucin
sino que los procesos se pueden ejecutar simultneamente. Ambos, intercalacin y
ejecucin simultnea, son formas de concurrencia y llevan a una multitud de
problemas complejos, tanto para el programador de aplicaciones como para el
sistema operativo. El sistema operativo debe llevar a cabo la funcin de planificar y
ofrecer mecanismos para compartir y sincronizar procesos.

2.1 CONCEPTO DE PROCESOS


Resulta problemtico poder referirnos a todas las actividades de la CPU que tratan
los sistemas operativos ya que un sistema por lotes ejecuta trabajos y un sistema
de tiempo compartido tiene programas de usuario, el usuario puede ejecutar un
programa a la vez y el sistema podra tener sus actividades internas, como el Spool
ya que todas esas actividades son similares los llamamos procesos.
El proceso no es ms que el cdigo que contiene la actividad actual que se
representa mediante el contador del programa y los registros del procesador,
tambin el proceso tiene una pila, que a su vez contiene los datos temporales y una
seccin que contiene variables globales. Se puede decir que un proceso es un
programa que est en ejecucin, pero en si un programa no es un proceso ya que
un programa es una entidad pasiva y el proceso es una entidad activa. Es comn
que de un proceso salgan ms procesos durante su ejecucin.
Un proceso es un concepto manejado por el sistema operativo que consiste en el
conjunto formado por:

Las instrucciones de un programa destinadas a ser ejecutadas por el


microprocesador.
Su estado de ejecucin en un momento dado, esto es, los valores de los
registros de la CPU para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus
contenidos.
Otra informacin que permite al sistema operativo su planificacin.

Esto vara en los sistemas multihilo, donde el proceso consta de uno o ms hilos,
de memoria de trabajo e informacin de planificacin. Cada hilo consta de
instrucciones y estado de ejecucin.
Los procesos son creados y destruidos por el sistema operativo, as como de la
comunicacin entre procesos a peticin de otros procesos. El mecanismo por el cual
un proceso crea otro proceso se denomina bifurcacin. Los nuevos procesos
pueden no compartir el espacio de memoria con el proceso que los ha creado o ser
creados en el mismo espacio de memoria.

2.2 ESTADOS Y TRANSICIONES EN LOS PROCESOS


El estado del proceso vara a medida que se va ejecutando y est definido por la
actividad actual de ese proceso. El estado del proceso puede ser nuevo, que es
cuando el proceso se est creando, el estado de ejecucin, el proceso est
ejecutando sus instrucciones, el estado de espera, como su nombre lo indica, el
proceso tiene que esperar la terminacin de una operacin de estrada y salida o la
recepcin de una seal, el estado de listo, el proceso est esperando a que se le
asigne un procesador, el estado de terminado es cuando el proceso ha finalizado
su ejecucin.
Aunque, estos nombres no se generalizan y varan segn el sistema que se utilice,
adems de que algunos sistemas operativos hagan ms distinciones, estn
presentes en todos los sistemas operativos.

ILUSTRACIN 14: ESTADO DE UN PROCESO EN LINUX

Transiciones de estados
Cuando el trabajo es admitido se crea un proceso equivalente y se inserta en la
ltima parte de la cola de listos. Cuando el proceso pasa de un estado a otro se le
conoce como transicin de estado.
Admitido: Nuevo Listo
Cuando un proceso se ha creado y se le permite competir por la CPU.
Despacho: Listo en ejecucin
La asignacin de la CPU al primer proceso de la lista de listos es llamada despacho
y es ejecutado por la entidad de sistema llamada despachador. Mientras que el
proceso tenga la CPU se dice que est en ejecucin.

Tiempo excedido: En ejecucin listo


Cuando un proceso se le expira el quantum que es el tiempo mximo que un
proceso puede hacer uso del procesador, hace que este proceso cambie del estado
de ejecucin al estado de listo inmediatamente.

Bloqueo: En ejecucin bloqueado


Surge cuando al proces que est en estado de ejecucin abandona la CPU antes
de que se termine su quantum, porque se inicia una operacin de E/S. El proceso
en pocas palabras se bloquea.
Despertar: Bloque listo
Ocurre cuando acaba una operacin de E/S o alguna otra razn por la que est
esperando el proceso, este termina y pasa al estado de listo.
Salir: En ejecucin terminado
Ocurre cuando el proceso ha terminado de ejecutarse, y pasa aun estado de
terminado.

ILUSTRACIN 15: TRANSICIONES DE ESTADO DE LOS PROCESOS

2.2.1 BLOQUE DE CONTROL DE PROCESOS


Cada proceso se presenta en el sistema operativo con un bloque de control de
proceso (PCB, Process Control Block).

ILUSTRACIN 16: PCB

Este PCB contiene muchos elementos de informacin asociados a un proceso


incluidos:
Estado del proceso: Puede ser nuevo, listo, en ejecucin, en espera, detenido etc.
Contador de programa: el contador indica la direccin de la siguiente instruccin
que se ejecutar para este proceso.
Registro de CPU: El nmero y el tipo de registros vara segn la arquitectura del
computador. Los registros incluyen acumuladores, registros ndice, punteros de pila
y registros de propsito general, as como cualesquier informacin de cdigos de
condicin de haya. Junto con el contador del programa, esta informacin de estado
se debe guardar cuando ocurre una interrupcin, para que el proceso pueda
continuar correctamente despus.
Informacin de planificacin de CPU: esta informacin incluye una prioridad del
proceso, punteros a colas de planificacin y cualesquier otros parmetros de
planificacin que haya.
Informacin de gestin de memoria: esta informacin puede incluir datos tales como
el valor de los registros de base y limite, las tablas de pginas o las tablas de
segmentos, dependiendo del sistema de memoria empleado por el sistema
operativo.

Informacin contable: esta informacin incluye la cantidad de tiempo de la CPU y


tiempo real consumida, lmites de tiempo, nmeros de cuenta, nmeros de trabajo
o proceso, y dems.
Informacin de estado de E/S: la informacin incluye la lista de dispositivos de E/S
asignadas a este proceso, una lista de archivos abiertos, etc.

ILUSTRACIN 17: DIAGRAMA QUE MUESTRA LA CONMUTACIN


DE CPU DE UN PROCESO A OTRO

En conclusin el PCB simplemente sirve como depsito de cualquier informacin


que pueda variar de un proceso a otro.

2.3 PROCESOS LIGEROS: HILOS O HEBRAS


Conforme los procesos ingresan en el sistema, se colocan en una cola de trabajos en esta
cola van todos los procesos del sistema. En la cola de procesos listos entran los procesos
que estn en la memoria principal y esperando por la CPU.
La otra cola es la de dispositivos ya que cuando un proceso se le asigna la CPU y se
ejecuta pero es interrumpido por una operacin de E/S el proceso espera en la cola de
dispositivos a que se termine la operacin de E/S.
Hay dos tipos de colas la de procesos listos y el conjunto de colas de dispositivo.

ILUSTRACIN 18: PROCESOS LIGEROS

2.3.1 PLANIFICADORES
Un proceso migra a diferentes colas de planificacin durante su existencia, el sistema
operativo debe seleccionar los procesos de esta cola de un modo u otro. Es aqu que un
planificador apropiado se encarga de este proceso.

ILUSTRACIN 19: DIAGRAMA DE COLAS DE LA PLANIFICACIN DE


PROCESOS

Existen dos planificadores en el caso de un sistema operativo por lotes cuando hay
procesos que se ejecutan inmediatamente , estos procesos son colocados en Spool en un
dispositivo de almacenamiento y esperan a que sean ejecutados, el primer planificador que
es el de largo plazo que escoge los procesos de esta reserva, los carga ala memoria y los
ejecuta. El segundo planificador es el de corto plazo, que escoge los procesos listos para
ejecutarse y le asigna la CPU a uno de ellos.
En general los procesos pueden describirse como limitados por E/S o por la CPU.
El proceso limitado por E/S dedica la mayor parte de si tiempo a operaciones de E/S y no
a clculo, al contrario que con el proceso limitado por la CPU que dedica la mayor parte de
su tiempo a realizar clculos.
El planificador a largo plazo puede estar ausente, como es el caso de los sistemas de
tiempo compartido, que se limitan a colocar los procesos en la memoria para el planificador
a mediano plazo. Adems, de que estos sistemas pueden crear una cola intermedia. La
idea de este planificador es que a veces resulta mejor sacar un proceso de la memoria para
reducir la multiprogramacin. Entonces el mismo proceso en algn momento se
reintroducir a la memoria y continuara su ejecucin donde se qued, esto se le conoce
como swapping o intercambio.

2.4 CONCURRENCIA Y SECUENCIABILIDAD


La concurrencia comprende un gran nmero de cuestiones de diseo, incluyendo la
comunicacin entre procesos, comparacin y competencia por los recursos, sincronizacin
de la ejecucin de varios procesos y asignacin del tiempo de procesador a los procesos y
es fundamental para que existan diseos como Multiprogramacin, Multiproceso y Proceso
distribuido
Los procesos son concurrentes si existen simultneamente. Cuando dos o ms procesos
llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de
procesos. Es importante mencionar que para que dos o ms procesos sean concurrentes,
es necesario que tengan alguna relacin entre ellos
La concurrencia puede presentarse en tres contextos diferentes:
Varias aplicaciones: La multiprogramacin se cre para permitir que el tiempo de
procesador de la mquina fuese compartido dinmicamente entre varios trabajos o
aplicaciones activas.
Aplicaciones estructuradas: Como ampliacin de los principios del diseo modular y la
programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como
un conjunto de procesos concurrentes.
Estructura del sistema operativo: Las mismas ventajas de estructuracin son aplicables a
los programadores de sistemas y se ha comprobado que algunos sistemas operativos estn
implementados como un conjunto de procesos.
Existen tres modelos de computadora en los que se pueden ejecutar procesos
concurrentes:
Multiprogramacin con un nico procesador. El sistema operativo se encarga de ir
repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecucin
de los mismos para dar as una apariencia de ejecucin simultnea.
Multiprocesador. Es una maquina formada por un conjunto de procesadores que
comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no
slo pueden intercalar su ejecucin sino tambin superponerla.
Multicomputadora. Es una mquina de memoria distribuida, que est formada por una
serie de computadoras. En este tipo de arquitecturas tambin es posible la ejecucin
simultnea de los procesos sobre los diferentes procesadores.

En general, la concurrencia ser aparente siempre que el nmero de procesos sea mayor
que el de procesadores disponibles, es decir, cuando haya ms de un proceso por
procesador. La concurrencia ser real cuando haya un proceso por procesador. Aunque
puede parecer que la intercalacin y la superposicin de la ejecucin de procesos presentan
formas de ejecucin distintas, se ver que ambas pueden contemplase como ejemplos de
procesos concurrentes.

Existen diversas razones que motivan la ejecucin de procesos concurrentes en un sistema:


Facilita la programacin de aplicaciones al permitir que stas se estructuren como un
conjunto de procesos que cooperan entre s para alcanzar un objetivo comn.
Acelera los clculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que se
puede hacer es dividirla en procesos, cada uno de los cuales se ejecuta en paralelo con los
dems.
Posibilita el uso interactivo a mltiples usuarios que trabajan de forma simultnea. Permite
un mejor aprovechamiento de los recursos, en especial de la CPU, ya que pueden
aprovechar las fases de entrada-salida de unos procesos para realizar las fases de
procesamiento de otros.

As como existen las razones que motivan la ejecucin de procesos concurrentes, tambin
existen sus contras:

Inanicin e interrupcin de procesos


Ocurrencia de bloqueos
Que dos o ms procesos requieran el mismo recurso (No apropiativo)
Tipos de procesos concurrentes.

Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como:

Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperacin


de otros procesos. Un claro ejemplo de procesos independientes son los diferentes
shells que se ejecutan de forma simultnea en un sistema.

Procesos son cooperantes: Son aquellos que estn diseados para trabajar
conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse
e interactuar entre ellos.

En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie


de interacciones entre ellos y pueden ser de dos tipos:
Interacciones motivadas porque los procesos comparten o compiten por el acceso a
recursos fsicos o lgicos. Por ejemplo, dos procesos independientes compiten por el
acceso a disco o para modificar una base de datos.
Interaccin motivada porque los procesos se comunican y sincronizan entre s para
alcanzar un objetivo comn, Por ejemplo, un compilador que tiene varios procesos que
trabajan conjuntamente para obtener un solo archivo de salida.

Elementos a gestionar y disear a causa de la concurrencia.


Se pueden enumerar los siguientes:
1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos.
Esto lo hace por medio de PBCs (Bloque de Control de Procesos)
2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo.
Entre estos recursos se incluyen:
Tiempo de procesador: Es funcin de la planificacin.
Memoria: La mayora de los sistemas operativos emplean esquemas de memoria virtual.
Archivos:
Dispositivos de E/S:
3. El sistema operativo debe proteger los datos y los recursos fsicos de cada proceso contra
injerencias no intencionadas de otros procesos.
4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que
se realiza la ejecucin con respecto a otros procesos concurrentes

2.4.1 EXCLUSION MUTUA SECCIONES CRITICAS


Regin Crtica. Protocolo de sincronizacin.

Los puntos de entrada de un recurso indican la cantidad de procesos que pueden utilizar
simultneamente al mismo. Si un recurso tiene slo un punto de entrada, se lo denomina
recurso crtico o recurso no compartible.

Regin crtica de un proceso es la fase o etapa en la vida de ese proceso concurrente en


la cual accede a un recurso crtico para modificarlo o alterarlo. El uso adecuado de la
concurrencia entre procesos exige la capacidad de definir secciones crticas y hacer cumplir
la exclusin mutua. Cualquier servicio o capacidad que d soporte para la exclusin mutua
debe cumplir con un protocolo de sincronizacin, que tiene los requisitos siguientes:

1. Debe cumplirse la exclusin mutua: slo un proceso de entre todos los que poseen
secciones crticas por el mismo recurso u objeto compartido, debe tener permiso para entrar
en ella en un instante dado.
2. Un proceso que se interrumpe en una seccin no crtica debe hacerlo sin estorbar a los
otros. Es decir que si se cuelga un proceso que est usando un recurso, los dems procesos
que esperan deben poder acceder al recurso de todas formas (el S.O. mata al proceso que
se colg y as libera al recurso).
3. No se puede demorar indefinidamente la entrada de un proceso a un cierto recurso; no
debe permitirse el interbloqueo y la inanicin. Todos los procesos deben poder acceder al
recurso que solicitan, sino se van a morir sin usarlo y no es justo.
4. Cuando ningn proceso est en su seccin crtica, cualquier proceso que solicite entrar
en la suya debe poder hacerlo sin dilatacin. Es decir, si nadie est usando un cierto
recurso, entonces se le otorga al primer proceso que lo solicite.
5. No se pueden hacer suposiciones sobre la velocidad relativa de los procesos o su nmero
(cantidad de procesadores). Nunca se puede saber a priori si a un proceso le falta mucho
o poco para terminar.
6. Un proceso permanece en su seccin crtica slo por un tiempo finito. Esto sirve para
evitar que un proceso se quede con un recurso por mucho tiempo y para que un recurso no
se quede trabado sin sentido.

2.4.2 SINCRONIZACION PROCESOS EN SO


Cada proceso se ejecuta asncronamente con respecto a otro (son impredecibles las
frecuencias de reloj asociadas).
En algunos instantes, los procesos deben sincronizar sus actividades; por ejemplo, en el
caso de que un proceso no pueda progresar hasta que otro haya terminado algn tipo de
actividad.
Un sistema operativo multiprogramado es un caso particular de sistema concurrente donde
los procesos compiten por el acceso a los recursos compartidos o cooperan dentro de una
misma aplicacin para comunicar informacin. Ambas situaciones son tratadas por el
sistema operativo mediante mecanismos de sincronizacin que permiten el acceso
exclusivo de forma coordinada a los recursos y a los elementos de comunicacin
compartidos.
Segn el modelo de sistema operativo descrito anteriormente, basado en colas de procesos
y transiciones de estados, los procesos abandonan la CPU para pasar a estado bloqueado
cuando requieren el acceso a algn dispositivo, generalmente en una operacin de E/S,
pasando a estado preparado cuando la operacin ha concluido y eventualmente volver a
ejecucin. La gestin de estos cambios de estado, es decir, los cambios de contexto, es un
ejemplo de seccin crtica de cdigo dentro del sistema operativo que debe ser ejecutada
por ste en exclusin mutua. Otros ejemplos de cdigo que debe protegerse como seccin
crtica incluyen la programacin de los dispositivos de E/S y el acceso a estructuras de
datos y buffers compartidos.
El concepto de comunicacin es algo ms general y supone la existencia de algn
mecanismo de sincronizacin subyacente. Dentro del sistema operativo, el espacio de
direcciones es nico, por lo que la comunicacin se puede resolver mediante el uso de
variables en memoria compartida. Como contrapartida a la agilidad de este esquema, es
necesario utilizar mecanismos de sincronizacin explcitos para garantizar acceso exclusivo
a las variables compartidas y evitar condiciones de carrera. Puede producirse una condicin
de carrera sobre una variable cuando varios procesos acceden concurrentemente a la
variable para actualizarla.
El SO ofrece mecanismos bsicos de comunicacin, que permiten transferir cadenas de
bytes. Deben ser los procesos que se comunican quienes interpreten el significado de las
cadenas transferidas para su labor coordinada.
Los mecanismos de comunicacin y sincronizacin son dinmicos. Es decir, cuando se
necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se
establezca de forma definitiva ningn mecanismo de comunicacin, ya que ellos podran
producir efectos indeseados. Es decir, la comunicacin es algo puntual.

Los servicios bsicos de comunicacin son:

a. crear: el proceso solicita la creacin del mecanismo


b. enviar o escribir: el proceso emisor enva informacin al proceso receptor
c. recibir o leer: el proceso receptor recibe informacin
d. destruir: el proceso solicita la destruccin del mecanismo de comunicacin

La comunicacin puede ser sincrona y asncrona:

a. sncrona: los dos procesos han de ejecutar servicios de forma simultnea. El emisor ha
de ejecutar el servicio enviar mientras el receptor ejecuta recibir.
b. asncrona: el emisor hace el envo y prosigue su ejecucin. El SO ofrece un
almacenamiento intermedio para guardar la informacin enviada, hasta que el receptor la
solicite.
2.4.2.1 MECANISMO DE SEMAFOROS
Un semforo es un mecanismo de comunicacin con el cual no se mueven datos, puesto
que solo se puede consultar y modificar su valor al tener un carcter puramente informativo.
Dijkstra define un semforo como una variable entera positiva o nula sobre la que slo se
pueden realizar dos operaciones: wait (tambin denominada P) y signal (tambin
denominada V). La operacin wait decrementa el valor del semforo siempre que ste tenga
un valor mayor que 0; por lo tanto esta operacin se utiliza para adquirir el semforo o para
bloquearlo en el caso de que valga 0. La operacin signal incrementa el valor del semforo
y por tanto se utiliza para liberarlo o inicializarlo.
Ambas operaciones deben ser atmicas para que funcionen correctamente; es decir que
una operacin wait no puede ser interrumpida por otra operacin wait o signal sobre el
mismo semforo, y lo mismo ocurre para la operacin signal. Este hecho garantiza que
cuando varios procesos compitan por la adquisicin de un semforo, slo uno de ellos va a
poder realizar la operacin.
Adems, se ha de indicar que este mecanismo memoriza las peticiones de operaciones
wait no satisfechas y despierta por tanto a los procesos en espera.

Es una solucin sencilla y elegante del problema de la exclusin mutua. Esta tcnica
permite solucionar la mayora de los problemas de sincronizacin entre procesos. Un
semforo binario es un indicador de condicin (s) que registra si un registro est disponible
o no. Un semforo slo puede tomar dos valores; 0 y 1. Si para un semforo, S=1 el recurso
est disponible y la tarea lo puede utilizar; si S=0 el recurso no est disponible y el proceso
debe esperar.

Los semforos se implementan mediante una cola de tareas a la que se aaden los
procesos que estn en espera del recurso. Solo se permiten tres operaciones sobre un
semforo:

1. Inicializa (s: Semforo_Binario; v: integer) -- > poner el valor del semforo s al valor de v
(0,1).
2. Espera (wait)(s) if s = 1 then s: = 0 else Suspender la tarea que hace la llamada y ponerla
en la cola de tareas.
3. Seal (signal)(s) if cola de tareas vaca then s : = 1 else Reanudar la primera tarea de la
cola tareas.

Estas operaciones son procedimientos que se implementan como acciones indivisibles. En


sistemas con un nico procesador bastar simplemente con inhibir las interrupciones
durante la ejecucin de las operaciones del semforo. Al introducir el semforo se crea un
nuevo estado en el diagrama de transiciones, el de espera.

2.4.2.2 MECANISMO DE MONITORES


Un monitor es un mecanismo de software para control de concurrencia que contiene los
datos y los procedimientos necesarios para realizar la asignacin de un determinado
recurso o grupo de recursos compartidos reutilizables en serie.

Tipos De Monitores
Monitor tipo monitor
Este monitor fue implementado en Pascal Concurrente, lenguaje desarrollado por Per
Brinch Hansen. Es el monitor ms simple de todos pues solo tiene tres estados y las
funciones internas son muy sencillas. Una caracterstica distintiva de este monitor es que
el proceso que reinicia a otros debe salir del monitor, es decir abandona el estado activo.
El diagrama de estados de este monitor esta dado en la siguiente figura.

ILUSTRACIN 20: TIPO MONITOR

Monitor tipo manager


Este monitor es muy similar al monitor tipo monitor, la diferencia esencial es que un proceso
que es reiniciado debe abandonar el monitor, es decir no se le permite que entre al estado
activo. El diagrama de estados de este monitor se presenta en la figura.

ILUSTRACIN 21: TIPO MANAGER

Monitor tipo mediador


Este monitor fue propuesto por C.A.R. Hoare, tiene la caracterstica de compensar las
desventajas de los monitores tipo monitor y tipo managEer. Un proceso que reinicia a otros
puede permanecer dentro del monitor y un proceso reiniciado tambin puede permanecer
dentro del monitor, El diagrama de estados de este monitor se da en la figura.

ILUSTRACIN 22: TIPO MEDIADOR

Monitor tipo gladiador


Este monitor propuesto por Cavers y Brown tiene la caracterstica fundamental de solo tener
un punto de consistencia interno (un punto de consistencia interno ocurre cuando el proceso
que est activo abandona este estado y sigue dentro del monitor). El diagrama de estados
de este monitor se da en la figura.

ILUSTRACIN 23: TIPO GLADIADOR

2.4.3 INTERBLOQUEO DEADLOCK

ILUSTRACIN 24: INTERBLOQUEO DEADLOCK


El interbloqueo puede definirse formalmente como sigue: Un conjunto de procesos est en
interbloqueo si cada proceso del conjunto est esperando un evento que slo otro proceso
del conjunto puede causar. Puesto que todos los procesos estn esperando, ninguno de
ellos puede causar ninguno de los eventos que podran despertar a cualquiera de los dems
miembros del conjunto, y todos los procesos continan esperando indefinidamente.
Tipos de recursos
Se pueden distinguir dos categoras generales de recursos: reutilizables y consumibles.
Reutilizables
Un recurso reutilizable es aqul que puede ser usado con seguridad por un proceso y no
se agota con el uso. Los procesos obtienen unidades de recursos que liberan
posteriormente para que otros procesos las reutilicen. Como ejemplos de recursos
reutilizables se tienen los procesadores, canales de E/S, memoria principal y secundaria,
dispositivos y estructuras de datos tales como archivos, bases de datos y semforos.

Consumibles
Un recurso consumible es aqul que puede ser creado (producido) y destruido (consumido).
Normalmente, no hay lmite en el nmero de recursos consumibles de un tipo en particular.
Un proceso productor que no est bloqueado puede liberar cualquier nmero de recursos
consumibles. Cuando un proceso adquiere un recurso, ste deja de existir. Como ejemplos
de recursos consumibles estn las interrupciones, seales, mensajes, e informacin en
buffers de E/S.

Condiciones para el interbloqueo


Coffman (1971) demostr que deben cumplirse cuatro condiciones para que haya un
bloqueo mutuo:
1. Condicin de exclusin mutua. Cada recurso est asignado nicamente a un solo
proceso o est disponible.
2. Condicin de retener y esperar. Los procesos que actualmente tienen recursos que les
fueron otorgados previamente pueden solicitar nuevos recursos.
3. Condicin de no expropiacin. No es posible quitarle por la fuerza a un proceso los
recursos que le fueron otorgados previamente. El proceso que los tiene debe liberarlos
explcitamente.
4. Condicin de espera circular. Debe haber una cadena circular de dos o ms procesos,
cada uno de los cuales est esperando un recurso retenido por el siguiente miembro de la
cadena.
Deben estar presentes estas cuatro condiciones para que ocurra un bloqueo mutuo. Si una
o ms de estas condiciones estn ausente, no puede haber bloqueo mutuo.

2.4.3.1 PREVENCION INTERBLOQUEO DEADLOCK


Los bloqueos mutuos pueden ser evitados si se sabe cierta informacin sobre los procesos
antes de la asignacin de recursos. Para cada peticin de recursos, el sistema controla si
satisfaciendo el pedido entra en un estado inseguro, donde puede producirse un bloqueo
mutuo. De esta forma, el sistema satisface los pedidos de recursos solamente si se asegura
que quedar en un estado seguro. Para que el sistema sea capaz de decidir si el siguiente
estado ser seguro o inseguro, debe saber por adelantado y en cualquier momento el
nmero y tipo de todos los recursos en existencia, disponibles y requeridos.
Existen varios algoritmos para evitar bloqueos mutuos:
Algoritmo del banquero, introducido por Dijkstra. Algoritmo de grafo de asignacin de
recursos.
Algoritmo de Seguridad.
Algoritmo de solicitud de recursos.

Prevencin
Los bloqueos mutuos pueden prevenirse asegurando que no suceda alguna de las
condiciones necesarias vistas anteriormente.
Eliminando la exclusin mutua: ningn proceso puede tener acceso exclusivo a un recurso.
Esto es imposible para procesos que no pueden ser encolados (puestos en un Spool), e
incluso con colas tambin pueden ocurrir interbloqueos.
La condicin de retencin y espera puede ser eliminada haciendo que los procesos pidan
todos los recursos que van a necesitar antes de empezar. Este conocimiento por
adelantado muchas veces es imposible nuevamente. Otra forma es requerir a los procesos
liberar todos sus recursos antes de pedir todos los recursos que necesitan. Esto tambin
es imprctico en general.
La condicin de no expropiacin puede ser tambin imposible de eliminar dado que un
proceso debe poder tener un recurso por un cierto tiempo o el procesamiento puede quedar
inconsistente.
La condicin de espera circular es la ms fcil de atacar. Se le permite a un proceso poseer
slo un recurso en un determinado momento, o una jerarqua puede ser impuesta de modo
tal que los ciclos de espera no sean posibles.

2.4.3.2 DETECCION INTERBLOQUEO DEADLOCK


Las estrategias de prevencin del interbloqueo son muy conservadoras; solucionan el
problema del interbloqueo limitando el acceso a los recursos e imponiendo restricciones a
los procesos. En el lado opuesto, las estrategias de deteccin del interbloqueo no limitan el
acceso a los recursos ni restringen las acciones de los procesos. Con deteccin del
interbloqueo, se concedern los recursos que los procesos necesiten siempre que sea
posible. Peridicamente, el sistema operativo ejecuta un algoritmo que permite detectar la
condicin de crculo vicioso de espera. Puede emplearse cualquier algoritmo de deteccin
de ciclos en grafos dirigidos.
El control del interbloqueo puede llevarse a cabo tan frecuentemente como las solicitudes
de recursos o con una frecuencia menor, dependiendo de la probabilidad de que se
produzca el interbloqueo. La comprobacin en cada solicitud de recurso tiene dos ventajas:
Conduce a una pronta deteccin y el algoritmo es relativamente simple, puesto que est
basado en cambios incremntales del estado del sistema. Por otro lado, tal frecuencia de
comprobaciones consume un tiempo de procesador considerable.
Una vez detectado el interbloqueo, hace falta alguna estrategia de recuperacin. Las
tcnicas siguientes son posibles enfoques, enumeradas en orden creciente de sofisticacin:
1. Abandonar todos los procesos bloqueados. Esta es, se crea o no, una de las soluciones
ms comunes, si no la ms comn, de las adoptadas en un sistema operativo.
2. Retroceder cada proceso interbloqueado hasta algn punto de control definido
previamente y volver a ejecutar todos los procesos. Es necesario que haya disponibles unos
mecanismos de retroceso y reinicio en el sistema. El riesgo de esta solucin radica en que
puede repetirse el interbloqueo original. Sin embargo, el no determinismo del
procesamiento concurrente asegura, en general, que esto no va a pasar.
3. Abandonar sucesivamente los procesos bloqueados hasta que deje de haber
interbloqueo. El orden en el que se seleccionan los procesos a abandonar seguir un criterio
de mnimo coste. Despus de abandonar cada proceso, se debe ejecutar de nuevo el
algoritmo de deteccin para ver si todava existe interbloqueo.
4. Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo. Como en
el punto 3, se debe emplear una seleccin basada en coste y hay que ejecutar de nuevo el
algoritmo de deteccin despus de cada apropiacin. Un proceso que pierde un recurso
por apropiacin debe retroceder hasta un momento anterior a la adquisicin de ese recurso.
Para los puntos 3 y 4, el criterio de seleccin podra ser uno de los siguientes, consistentes
en escoger el proceso con:
La menor cantidad de tiempo de procesador consumido hasta ahora.
El menor nmero de lneas de salida producidas hasta ahora.
El mayor tiempo restante estimado.
El menor nmero total de recursos asignados hasta ahora. La prioridad ms baja.

Algunas de estas cantidades son ms fciles de medir que otras. El tiempo restante
estimado deja lugar a dudas, especialmente. Adems, aparte de las medidas de prioridad,
no existe otra indicacin del coste para el usuario frente al coste para el sistema en
conjunto.

2.4.3.3 RECUPERACION INTERBLOQUEO DEADLOCK


Una vez que se ha detectado el interbloqueo se debe romper para que los recursos puedan
finalizar su ejecucin y liberar as los recursos. Para ruptura de la espera se pueden realizar
varias opciones. Las idnea sera suspendiendo algunos de los procesos bloqueados para
tomar sus recursos y reanudar sus ejecucin una vez que se hubiera deshecho el
interbloqueo. Esta solucin solo puede resultar factible en casos muy particulares; no se
podra suspender a un proceso de escribir de escribir en una impresora para pasarla a otro
proceso y reanudar despus la impresin, como tampoco se podra suspender
indefinidamente un proceso de tiempo real. Las dos opciones que se suelen utilizar son:
reiniciar uno o ms de los procesos bloqueados y expropiar los recursos de algunos de los
procesos bloqueados.
Para aplicar la primera de las opciones se deben tener en cuenta una serie de factores con
el fin de elegir aquellos procesos cuya reiniciacin resulte menos traumtica. Entre los
factores a tener en cuenta en cada proceso se tienen:
1. La prioridad del proceso.
2. El tiempo de procesamiento utilizado y el que le resta.
3. El tipoy nmero de recursos que posee.
4. El nmero de recursos que necesita para finalizar.
5. El nmero de otros procesos que se veran involucrados con su reiniciacin
El procedimiento de la segunda opcin consiste en ir expropiando recursos de algunos
procesos de forma sucesiva hasta que se consiga salir del interbloqueo. La eleccin de los
recursos que se expropian se basa en criterios similares a los expuestos en la reiniciacin
de los procesos.
En algunos sistemas de tiempo real el interbloqueo puede tener resultados inaceptables,
por lo que no se puede permitir que se presente dicha situacin. En otros sistemas se
rechaza el interbloqueo, aunque la situacin pudiera ser aceptable, por el costo en tiempo
y medios adicionales que conlleva la recuperacin.

2.5 NIVELES, OBJETIVOS Y CRITERIOS DE PLANIFICACIN

La planificacin de la CPU, en el sentido de conmutarla entre los distintos procesos, es una


de las funciones del sistema operativo. Este despacho es llevado a cabo por un pequeo
programa llamado planificador a corto plazo o dispatcher (despachador). La misin del
dispatcher consiste en asignar la CPU a uno de los procesos ejecutables del sistema, para
ello sigue un determinado algoritmo. En secciones posteriores estudiaremos algunos
algoritmos posibles. Para que el dispatcher conmute el procesador entre dos procesos es
necesario realizar un cambio de proceso.
Los acontecimientos que pueden provocar la llamada al dispatcher dependen del sistema
(son un subconjunto de las interrupciones), pero son alguno de estos:
El proceso en ejecucin acaba su ejecucin o no puede seguir ejecutndose (por una E/S,
operacin WAIT, etc).
Un elemento del sistema operativo ordena el bloqueo del proceso en ejecucin (ver estados
de un proceso).
El proceso en ejecucin agota su cuantum o cuanto de estancia en la CPU.
Un proceso pasa a estado listo.
El scheduling est muy relacionado con la gestin de los recursos. Existen tres niveles de
scheduling, como se ilustra en la figura, estos niveles son:

Planificador de la CPU o a corto plazo.


Planificador a medio plazo.
Planificador a largo plazo.

Ya hemos hablado del planificador de la CPU, y en los subapartados posteriores se


comentan los dos restantes:
Planificacin a largo plazo
Este planificador est presente en algunos sistemas que admiten adems de procesos
interactivos trabajos por lotes. Usualmente, se les asigna una prioridad baja a los trabajos
por lotes, utilizndose estos para mantener ocupados a los recursos del sistema durante
perodos de baja actividad de los procesos interactivos. Normalmente, los trabajos por lotes
realizan tareas rutinarias como el clculo de nminas; en este tipo de tareas el programador
puede estimar su gasto en recursos, indicndoselo al sistema. Esto facilita el
funcionamiento del planificador a largo plazo.
El objetivo primordial del planificador a largo plazo es el de dar al planificador de la CPU
una mezcla equilibrada de trabajos, tales como los limitados por la CPU (utilizan mucho la
CPU) o la E/S. As, por ejemplo, cuando la utilizacin de la CPU es baja, el planificador
puede admitir ms trabajos para aumentar el nmero de procesos listos y, con ello, la
probabilidad de tener algn trabajo til en espera de que se le asigne la CPU. A la inversa,
cuando la utilizacin de la CPU llega a ser alta, y el tiempo de respuesta comienza a
reflejarlo, el planificador a largo plazo puede optar por reducir la frecuencia de admisin de
trabajos.
Normalmente, se invoca al planificador a largo plazo siempre que un proceso termina. La
frecuencia de invocacin depende, pues, de la carga del sistema, pero generalmente es
mucho menor que la de los otros dos planificadores. Esta baja frecuencia de uso hace que
este planificador pueda permitirse utilizar algoritmos complejos, basados en las
estimaciones de los nuevos trabajos.
Planificacin a Medio Plazo
En los sistemas de multiprogramacin y tiempo compartido varios procesos residen en la
memoria principal. El tamao limitado de sta hace que el nmero de procesos que residen
en ella sea finito. Puede ocurrir que todos los procesos en memoria estn bloqueados,
desperdicindose as la CPU. En algunos sistemas se intercambian procesos enteros
(swap) entre memoria principal y memoria secundaria (normalmente discos), con esto se
aumenta el nmero de procesos, y, por tanto, la probabilidad de una mayor utilizacin de la
CPU.
El planificador a medio plazo es el encargado de regir las transiciones de procesos entre
memoria principal y secundaria, acta intentando maximizar la utilizacin de los recursos.
Por ejemplo, transfiriendo siempre a memoria secundaria procesos bloqueados, o
transfiriendo a memoria principal procesos bloqueados nicamente por no tener memoria.

2.6 TCNICAS DE ADMINISTRACIN DEL PLANIFICADOR


Las disciplinas de planificacin pueden ser:
Expropiativas
No expropiativas
Se denomina planificador al software del sistema operativo encargado de asignar los
recursos de un sistema entre los procesos que los solicitan. Siempre que haya tomar una
decisin, el planificador debe decidir cul de los procesos que compiten por la posesin de
un determinado recursos lo recibir.
Los algoritmos (tcnicas) tienen distintas propiedades segn los criterios en los que se
basen para su construccin, lo cual se refleja en qu tipo de procesos se puede ver
favorecido frente a otro en la disputa del procesador. Antes de realizar la eleccin de un
algoritmo se debe considerar las propiedades de estos frente al criterio de diseo elegido.
Algunos de estos son:
a) Eficacia: Se expresa como un porcentaje del tiempo medio de utilizacin. Aunque puede
parecer lgico intentar mantener este parmetro prximo al 100%, con un valor tan elevado
otros aspectos importantes de medida del comportamiento del sistema pueden verse
deteriorados, como por ejemplo el tiempo medio de espera.
b) Rendimiento: Es una medida del nmero de procesos completados por unidad de
tiempo. Por ejemplo 10 procesos por segundo.
c) Tiempo de retorno o regreso: Es el intervalo de tiempo que transcurre desde que un
proceso se crea o presenta hasta que completa por el sistema.
d) Tiempo de espera: Es el tiempo que el proceso espera hasta que se le concede el
procesador. Puede resultar una medida ms adecuada de la eficiencia del sistema, ya que
se elimina de la media el tiempo que tarda en ejecutarse el mismo.
e) Tiempo de respuesta a un evento: Se denomina as el intervalo de tiempo que transcurre
desde que se seala un evento hasta que se ejecuta la primera instruccin de la rutina de
servicio de dicho evento. El criterio de seleccin de un algoritmo se suele basar en la
maximizacin o minimizacin de una funcin de los parmetros anteriores.

2.6.1 FIFO
FIFO: First In First Out
Mecanismo de scheduling en el cual los procesos se ordenan en una fila, en la cual se
ejecutan cada uno de los procesos hasta su finalizacin secuencialmente. Es
tremendamente ineficiente.
Cuando se tiene que elegir a qu proceso asignar la CPU se escoge al que llevara ms
tiempo listo. El proceso se mantiene en la CPU hasta que se bloquea voluntariamente.
Para implementar el algoritmo slo se necesita mantener una cola con los procesos listos
ordenada por tiempo de llegada. Cuando un proceso pasa de bloqueado a listo se sita el
ltimo de la cola.

ILUSTRACIN 25: ALGORITMO FIFO

2.6.2 SJF

Al igual que en el algoritmo FIFO las rfagas se ejecutan sin interrupcin, por tanto, slo es
til para entornos batch. Su caracterstica es que cuando se activa el planificador, ste elige
la rfaga de menor duracin. Es decir, introduce una nocin de prioridad entre rfagas.
Hay que recordar que en los entornos batch se pueden hacer estimaciones del tiempo de
ejecucin de los procesos
Nota: Es una disciplina no apropiativa y por lo tanto no recomendable en ambientes del
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.
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.

ILUSTRACIN 26: ALGORITMO SJF

2.6.3 RR
Cada proceso tiene asignado un intervalo de tiempo de ejecucin, llamado cuantum o
cuanto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la
CPU. Si el proceso se bloquea o termina antes de agotar su cuantum tambin se alterna el
uso de la CPU.
El round robin es muy fcil de implementar. Todo lo que necesita el planificador es mantener
una lista de los procesos listos.

ILUSTRACIN 27: ALGORITMO RR

2.6.4 QUEVESMULTILEVEL
Un algoritmo de planificacin multinivel particiona la cola de listos en colas
separadas. Se asignan en forma permanente los trabajos a una cola, generalmente,
basndose en alguna propiedad del mismo (requerimientos de memoria, tipo de
trabajo), teniendo cada cola su propio algoritmo. Por ejemplo, la cola interactiva
podra planificarse usando RR y la batch FIFO.
Ningn trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor
prioridad no estn vacas. Si algn trabajo entra en una cola de mayor prioridad, el
trabajo de otras colas es interrumpido.

ILUSTRACIN 28: ALGORITMO DE COLAS


MULTINIVELES

2.6.5 MULTILEVEL FEEDBACK QUEVES


En colas multinivel realimentadas los trabajos pueden moverse dentro de distintas
colas. La idea es separar procesos con distintos tipos de interrupciones de la CPU.
Si un trabajo consume mucho tiempo de CPU, ser movido a una cola con menor
prioridad.
En forma similar, si un proceso espera demasiado tiempo en una cola de baja
prioridad, lo moveremos a una cola de mayor prioridad.
En general un planificador de este tipo est definido por los siguientes parmetros:
1. El nmero de colas.
2. El tipo de algoritmo de planificacin de cada cola.
3. Un mtodo de determinacin de cuando mover un trabajo a una cola de mayor
prioridad.
4. Un mtodo de determinacin de cuando mover un trabajo a una cola de menor
prioridad.
5. Un mtodo de determinacin de a qu cola se enviar un trabajo cuando necesita
servicio.

ILUSTRACIN 29: DIAGRAMA DE COLAS MULTINIVELES


RETROALIMENTACION

CONCLUSIN

Llegado a este punto, hemos aprendido como el sistema operativo se encuentra


estructurado en una primera etapa, el desarrollo de procesos y la comprensin de
los hilos de ejecucin a travs de los cuales, el sistema delega funciones y opera
en forma multifuncional.
Tambin estudiamos la forma en la que el sistema gestiona las interrupciones, este
se encarga de controlar los accesos al procesador, verificar el estatus de un proceso
y determinar se ejecucin de acuerdo al nivel de importancia, cabe destacar que no
todas las interrupciones son controladas por el SO, ya que existen interrupciones
enmascaradas y que son exclusivas del hardware de nuestro ordenador.
La manera en la que opera nuestra computadora es muy compleja, una vez ms
comprender su funcionamiento, nos permite prever soluciones a ciertos problemas
de ejecucin, as como establecer prioridades al monto de asignar tareas, sobre
todo para los sistemas multiusuarios.

BIBLIOGRAFA

Galvin, A. S. (s.f.). Sistemas Operativos. 5ta Edicin.

FUENTES BIBLIOGRFICAS:

http://ac.itdurango.mx/acreditacion/4Proceso_E_A/LI/Evidencias/4.5%20M%E9tod
os%20de%20Ense%F1anza/APUNTES%20DEL%20MAESTRO/Sistemas%20Op
erativos/ApuntesU2_SistemasOperativosISC.pdf

S-ar putea să vă placă și