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
Pg. 20
1.6
Pg. 22
Ncleo.
Pg.28
Pg.29
Pg.33
Pg.35
Pg.46
Pg.49
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
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.
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.
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
11
12
13
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
15
1.4 Clasificacin.
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:
18
19
Control de trenes.
Telecomunicaciones.
Sistemas de fabricacin integrada.
Produccin y distribucin de energa elctrica.
Control de edificios.
Sistemas multimedia.
20
21
22
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
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
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.
29
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
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
Dentro de un proceso puede haber uno o ms hilos de control cada uno con:
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.
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
No hay proteccin entre las hebras. Una hebra puede escribir en la pila de otra hebra del
mismo proceso.
35
* 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.
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.
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
Para tener una solucin adecuada a la regin crtica se necesita que se cumplan cuatro
condiciones.
40
Cuando se disea un proceso que debe contener una o varias regiones crticas se
deben de tomar en cuenta las siguientes consideraciones:
Figura 31.
Seccin critica
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
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
Seales
Tuberas
Semforos
Mutex y variables condicionales
Paso de mensajes
43
44
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.
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.
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:
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
51
52
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
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
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.
59
Atlas.
Los mtodos ms comunes de implementacin son mediante:
Tcnicas de paginacin.
Tcnicas de segmentacin.
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
Real:
o
Absoluta.
Relocalizable (reubicadle).
Virtual:
o
Paginacin pura.
Segmentacin pura.
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
62
63
Paginacin.
Segmentacin.
Segmentacin y paginacin.
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:
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