Está en la página 1de 29

SISTEMAS

OPERATIVOS
Clase 5
Docente: Matas Hernndez Arellano
matiasfh@gmail.com
RESUMEN
Los S.O. pueden ser vistos de dos puntos de vistas:
Administradores de recursos y/o mquinas virtuales.
En la historia entre los puntos importantes estn: Los
primeros sistemas de procesamientos por lotes,
multiprogramacin, los sistemas de PC.
Los conceptos bsicos de un S.O: Procesos, Administracin
de memoria, administracin E/S, sistema de archivos y
seguridad
El corazn de todo S.O. son las llamadas a sistema. Estas
llamadas indican lo que debe hacer el S.O. Hay grupos de
llamadas: Creacin y Trmino de procesos, Lectura y
Escritura de archivos, Administracin de directorios y
llamadas miscelneas.
Los S.O. pueden estructurarse en varias formas: Monoltico,
Capas, Microkernel, Cliente-Servidor, Mquina virtual y
Exokernel.
PROCESOSEHILOS
Proceso: Abstraccin de un programa en ejecucin.
Proporcionan la capacidad de operar en
(pseudo)concurrencia. Convierten una CPU en varias CPU
virtuales. Sin el concepto de abstraccin la actual
computacin no podra existir.
Consideremos primero un servidor Web, a donde convergen las
peticiones de pginas Web provenientes de todos lados. Cuando
llega una peticin, el servidor verifica si la pgina que se necesita
est en la cach. De ser as, devuelve la pgina; en caso contrario,
inicia una peticin al disco para obtenerla y, desde la perspectiva de
la CPU, estas peticiones tardan eternidades. Mientras se espera el
cumplimiento de una peticin, muchas ms pueden llegar. Si hay
varios discos presentes, algunas o todas las dems peticiones
podran dirigirse a otros discos mucho antes de que se cumpla la
primera peticin. Es evidente que se necesita cierta forma de
modelar y controlar esta concurrencia. Los procesos (y en especial
los hilos) pueden ayudar en este caso.
Un PC al iniciar ejecuta muchos procesos sin que el usuario
siquiera los note. Toda esta actividad se tiene que
administrar, y en este caso un sistema de
multiprogramacin con soporte para mltiples procesos es
muy til.
En cualquier sistema de multiprogramacin, la CPU
conmuta de un proceso a otro con rapidez, ejecutando cada
uno durante dcimas o centsimas de milisegundos:
hablando en sentido estricto, en cualquier instante la CPU
est ejecutando slo un proceso, y en el transcurso de 1
segundo podra trabajar en varios de ellos, dando la
apariencia de un paralelismo.
ELMODELODEPROCESO
Todo el software ejecutable en la computadora, que algunas veces
incluye al sistema operativo, se organiza en varios x. Un proceso no
es ms que una instancia de un programa en ejecucin, incluyendo
los valores actuales del contador de programa, los registros y las
variables.
Para entender el sistema es mucho ms fcil pensar en una
coleccin de procesos que se ejecutan en (pseudo) paralelo, en vez
de tratar de llevar la cuenta de cmo la CPU conmuta de programa
en programa.
Esta conmutacin rpida de un proceso a otro se conoce
como:
multiprogramacin.
Cuando un proceso tiene requerimientos crticos de tiempo real
como, es decir, cuando deben ocurrir eventos especficos dentro de
un nmero especificado de milisegundos, es necesario tomar
medidas especiales para asegurar que ocurran. Sin embargo, por lo
general la mayora de los pro- cesos no se ven afectados por la
multiprogramacin subyacente de la CPU o las velocidades relati-
vas de distintos procesos.
La idea clave es que un proceso es una actividad de cierto tipo: tiene
un programa, una entrada, una salida y un estado. Varios procesos
pueden compartir un solo procesador mediante el uso de un
algoritmo de planificacin para determinar cundo se debe detener
el trabajo en un proceso para dar servicio a otro.
Vale la pena recalcar que si un programa se est ejecutando por
duplicado cuenta como dos procesos. Por ejemplo, a menudo es
posible iniciar un procesador de palabras dos veces o imprimir dos
archivos al mismo tiempo si hay dos impresoras disponibles. El
hecho de que dos procesos en ejecucin tengan el mismo programa
no importa; son procesos distintos. El sistema operativo puede
compartir el cdigo entre ellos de manera que slo haya una copia
en la memoria, pero se es un detalle tcnico que no cambia la
situacin conceptual de dos procesos en ejecucin.
CREACINDEUNPROCESO
En los sistemas de propsito general se necesita cierta
forma de crear y terminar procesos segn sea necesario
durante la operacin .
Hay cuatro eventos principales que provocan la creacin de
procesos:
1. El arranque del sistema.
2. La ejecucin, desde un proceso, de una llamada al
sistema para creacin de procesos.
3. Una peticin de usuario para crear un proceso.
4. El inicio de un trabajo por lotes.
Generalmente un S.O. al arrancar crea varios procesos,
algunos en primer plano (interactan con el usuario) y otros
en segundo plano, no asociados con el usuario, sino con una
funcin especfica. Estos procesos se conocen como
demonios.
Tambin los procesos pueden ser creados por los usuarios
(iniciando una ventana por ejemplo).
Un proceso puede crear otros procesos (llamadas al
sistema) para ayudar a terminar su trabajo.
La ltima situacin ocurre en los sistemas de procesamiento
por lotes (mainframes). Los usuarios envan trabajos al
procesamiento por lotes. Cuando el S.O. decide que tiene
los recursos para un nuevo trabajo, crea un proceso y
ejecuta el que est en la cola.
Tcnicamente, en todos estos casos, para crear un proceso
hay que hacer que un proceso existente ejecute una
llamada al sistema de creacin de proceso
Lo que hace en todo caso es ejecutar una llamada al sis-
tema para crear el proceso. Esta llamada al sistema indica al
sistema operativo que cree un proceso y le indica, directa o
indirectamente, cul programa debe ejecutarlo.
En UNIX slo hay una llamada al sistema para crear un
proceso: fork. Esta llamada crea un clon exacto del proceso
que hizo la llamada.
Windows una sola llamada a una funcin de Win32
(CreateProcess) maneja la creacin de procesos y carga el
programa correcto en el nuevo proceso
Tanto en UNIX como en Windows, una vez que se crea un
proceso, el padre y el hijo tienen sus propios espacios de
direcciones distintos. Si cualquiera de los procesos modifica
una palabra en su espacio de direcciones, esta modificacin
no es visible para el otro proceso.
TERMINACINDE
PROCESOS
Una vez que un proceso realiza el trabajo para el que fue
creado, el proceso debe finalizarse, esto ocurre por alguna
de estas razones:
1. Salida normal (Voluntaria)
2. Salida por error (Voluntaria)
3. Error fatal (Involuntaria)
4. Eliminado por otro proceso (Involuntaria)
JERARQUIADEPROCESO
En algunos sistemas, cuando un proceso crea otro, el
proceso padre y el proceso hijo continan asociados en
ciertas formas. El proceso hijo puede crear por s mismo
ms procesos, formando una jerarqua de procesos.
En UNIX, un proceso y todos sus hijos, junto con sus
posteriores descendientes, forman un grupo de procesos.
Cuando un usuario enva una seal del teclado, sta se enva
a todos los miembros del grupo de procesos actualmente
asociado con el teclado (por lo general, todos los procesos
activos que se crearon en la ventana actual). De manera
individual, cada proceso puede atrapar la seal, ignorarla o
tomar la accin predeterminada que es ser eliminado por la
seal.
Windows no tiene un concepto de una jerarqua de
procesos. Todos los procesos son iguales. La nica
sugerencia de una jerarqua de procesos es que, cuando se
crea un proceso, el padre recibe un indicador especial un
token (llamado manejador) que puede utilizar para
controlar al hijo. Sin embargo, tiene la libertad de pasar este
indicador a otros procesos, con lo cual invalida la jerarqua.
En UNIX no se puede desheredar.
ESTADODEUNPROCESO
Aunque cada proceso es una entidad independiente, con su
propio contador de programa y estado interno, a menudo
los procesos necesitan interactuar con otros.
cat capitulo1 capitulo2 capitulo3 | grep arbol
Dependiendo de la velocidad relativa de los dos
procesos, puede ocurrir que grep est listo para ejecutarse,
pero que no haya una entrada esperndolo. Entonces debe
bloquear hasta que haya una entrada disponible.

Cuando un proceso se bloquea, lo hace debido a que por
lgica no puede continuar, comn- mente porque est
esperando una entrada que todava no est disponible.
Tambin es posible que un proceso, que est listo en
concepto y pueda ejecutarse, se detenga debido a que el
S.O. ha decidido asignar la CPU a otro proceso por cierto
tiempo.
Un proceso puede encontrarse en 1 de 3 estados:
1. En ejecucin (en realidad est usando la CPU en ese instante).
2. Listo (ejecutable; se detuvo temporalmente para dejar que se
ejecute otro proceso).
3. Bloqueado (no puede ejecutarse sino hasta que ocurra cierto
evento externo).
Si utilizamos el modelo de los procesos, es mucho ms fcil pensar
en lo que est ocurriendo dentro del sistema.
Cuando ocurre una interrupcin de disco, el sistema toma una
decisin para dejar de ejecutar el proceso actual y ejecutar el
proceso de disco que est bloqueado esperando esta inte- rrupcin.
As, en vez de pensar en las interrupciones, podemos pensar en los
procesos de usuario, procesos de disco, procesos de terminal, etc.,
que se bloquean cuando estn esperando a que algo ocurra.

IMPLEMENTACINDE
PROCESOS
Para implementar el modelo de procesos, el sistema
operativo mantiene una tabla (un arreglo de estructuras)
llamada tabla de procesos, con slo una entrada por cada
proceso

Esta entrada contiene informacin importante acerca del
estado del proceso, incluyendo su contador de programa,
apuntador de pila, asignacin de memoria, estado de sus
archivos abiertos, informacin de contabilidad y
planificacin, etc


MODELACINDE
MULTIPROGRAMACIN
Cuando se utiliza la multiprogramacin, el uso de la CPU se
puede mejorar. Dicho en forma cruda: si el proceso
promedio realiza clculos slo 20 por ciento del tiempo que
est en la memoria, con cinco procesos en memoria a la vez
la CPU deber estar ocupada todo el tiempo. Sin embargo,
es- te modelo es demasiado optimista, ya que supone que
los cinco procesos nunca estarn esperando la E/S al mismo
tiempo.
Un mejor modelo es analizar el uso de la CPU desde un
punto de vista probabilstico. Suponga que un proceso gasta
una fraccin p de su tiempo esperando a que se complete
una operacin de E/S. Con n procesos en memoria a la vez,
la probabilidad de que todos los n procesos estn
esperando la E/S (en cuyo caso, la CPU estar inactiva) es p
n
.
Entonces, el uso de la CPU se obtiene mediante la frmula :
Uso de la CPU = 1 - p
n

La figura deja claro que, si los procesos gastan 80 por ciento
de su tiempo esperando las ope- raciones de E/S, por lo
menos debe haber 10 procesos en memoria a la vez para
que el desperdicio
de la CPU est por debajo de 10%.
Aun cuando el modelo anterior es simple, de todas formas se
puede utilizar para realizar predicciones especficas (aunque
aproximadas) acerca del rendimiento de la CPU. Por ejemplo,
suponga que una computadora tiene 512 MB de memoria, de la
cual el sistema operativo ocupa 128 MB y cada programa de
usuario ocupa otros 128 MB. Estos tamaos permiten que haya
tres programas de usuario en memoria a la vez. Con un promedio
de 80 por ciento de tiempo de espera de E/S, tenemos una
utilizacin de la CPU (ignorando la sobrecarga del sistema
operativo) de 1 0.8
3
o de aproximadamente 49 por ciento. Si
agregamos 512 MB ms de memoria, el sistema puede pasar de la
multiprogramacin de tres vas a una multiprogramacin de siete
vas, con lo cual el uso de la CPU se eleva hasta 79 por ciento. En
otras palabras, los 512 MB adicionales elevarn el rendimiento por
30 por ciento.

También podría gustarte