You are on page 1of 5

GUIA DE SISTEMAS OPERATIVOS.

UNIDAD 3.- PROCESOS EN LOS SISTEMAS OPERATIVOS.



PROCESO: es un programa en ejecucin. Un proceso simple tiene un hilo de
ejecucin, sabiendo que es una actividad de cierto tipo que contiene un programa de
entrada, salidas y estados.

IMPLANTACIN DE LOS PROCESOS
El sistema operativo almacena una tabla de control de procesos de informacin relativa
a cada proceso. Cada lnea de esta tabla representa un proceso:
1.- Identificacin del proceso.
2.- Identificacin del proceso padre.
3.- Informacin de usuario y grupo.
4.- Estado del procesador.
5.- Informacin de control de proceso

HILOS O HEBRAS
En sistemas operativos, un hilo de ejecucin, hebra o subproceso es la unidad de
procesamiento ms pequea que puede ser planificada por un sistema operativo.

La creacin de un nuevo hilo es una caracterstica que permite a una aplicacin realizar
varias tareas a la vez (concurrentemente). Los distintos hilos de ejecucin comparten
una serie de recursos tales como el espacio de memoria, los archivos abiertos, situacin
de autenticacin, etc. Esta tcnica permite simplificar el diseo de una aplicacin que
debe llevar a cabo distintas funciones simultneamente.

Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo con otra
tarea.

Los hilos de ejecucin que comparten los mismos recursos, sumados a estos recursos,
son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecucin de
un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda
modificar stos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden
a ese dato modificado inmediatamente.

Lo que es propio de cada hilo es el contador de programa, la pila de ejecucin y el
estado de la CPU (incluyendo el valor de los registros).

El proceso sigue en ejecucin mientras al menos uno de sus hilos de ejecucin siga
activo. Cuando el proceso finaliza, todos sus hilos de ejecucin tambin han terminado.
Asimismo en el momento en el que todos los hilos de ejecucin finalizan, el proceso no
existe ms y todos sus recursos son liberados.

Algunos lenguajes de programacin tienen caractersticas de diseo expresamente
creadas para permitir a los programadores lidiar con hilos de ejecucin (como Java o
Delphi). Otros (la mayora) desconocen la existencia de hilos de ejecucin y stos deben
ser creados mediante llamadas de biblioteca especiales que dependen del sistema
operativo en el que estos lenguajes estn siendo utilizados (como es el caso del C y del
C++).

Un ejemplo de la utilizacin de hilos es tener un hilo atento a la interfaz grfica (iconos,
botones, ventanas), mientras otro hilo hace una larga operacin internamente. De esta
manera el programa responde de manera ms gil a la interaccin con el usuario.
Tambin pueden ser utilizados por una aplicacin servidora para dar servicio a mltiples
clientes.

ESTADOS DE LOS PROCESOS
Los procesos en el estado listo son los que pueden pasar a estado de ejecucin si el
planificador los selecciona. Los procesos que estn en ejecucin son los que se estn
ejecutando en el procesador, y los que estn bloqueados es porque estn esperando la
respuesta de algn procesador para continuar con ejecucin.

EL PLANIFICADOR DE LOS PROCESOS.
La planificacin es el proceso por el cual se sistema operativo seleccin que proceso
ejecutar.
Objetivos
Equidad: todos los procesos deben poder ejecutarse.
Eficacia: mantener al procesador ocupado a l 100%.
Tiempo de respuesta: minimizar el tiempo de respuesta al usuario.
Tiempo de regreso: minimizar el tiempo que deben esperar los usuarios.
Rendimiento: maximizar el nmero de tareas procesadas por hora.

UNIDAD 4.- GESTION DE MEMORIA.

GESTION DE MEMORIA CON PARTICIONES FIJAS Y VARIABLES

GESTION DE MEMORIA CON PARTICIONES FIJAS
La memoria se puede organizar dividindose en diversas partes, las cuales pueden variar
en tamao. Esta particin la puede hacer el usuario en forma manual, al iniciar una
sesin con la mquina.
Una vez implementada la particin, hay dos maneras de asignar los procesos a
ella. La primera es mediante el uso de una cola nica (figura 2a) que asigna los procesos
a los espacios disponibles de la memoria conforme se vayan desocupando. El tamao
del hueco de memoria disponible es usado para localizar en la cola el primer proceso
que quepa en l. Otra forma de asignacin es buscar en la cola el proceso de tamao
mayor que se ajuste al hueco, sin embargo hay que tomar en cuenta que tal mtodo
discrimina a los procesos ms pequeos. Dicho problema podra tener solucin si se
asigna una particin pequea en la memoria al momento de hacer la particin inicial, el
cual sera exclusivo para procesos pequeos.












Particin 1
Particin 2
Particin 3
Sistema
Operativo
700 K
400 K
100 K
0
Particin 1
Particin 2
Particin 3
Sistema
Operativo
700 K
400 K
100 K
0
(a) (b)



Fig. 2. (a) Particiones fijas en memoria con una cola nica de entrada. (b)
Particiones fijas en memoria con colas exclusivas para cada tamao diferente de la
particin. El espacio asignado a la particin 2 est en desuso.

Esta idea nos lleva a la implementacin de otro mtodo para particiones fijas, que es el
uso de diferentes colas independientes (figura 2b) exclusivas para cierto rango en el
tamao de los procesos. De esta manera al llegar un proceso, ste sera asignado a la
cola de tamao ms pequeo que la pueda aceptar. La desventaja en esta organizacin
es que si una de las colas tiene una larga lista de procesos en espera, mientras otra cola
est vaca, el sector de memoria asignado para ese tamao de procesos estara
desperdicindose.

GESTION DE MEMORIA CON PARTICIONES VARIABLES.
Este esquema fue originalmente usado por el sistema operativo IBM OS/360 (llamado
MFT), el cual ya no est en uso.
El sistema operativo lleva una tabla indicando cules partes de la memoria estn
disponibles y cules estn ocupadas. Inicialmente, toda la memoria est disponible para
los procesos de usuario y es considerado como un gran bloque o hueco nico de
memoria. Cuando llega un proceso que necesita memoria, buscamos un hueco lo
suficientemente grande para el proceso. Si encontramos uno, se asigna nicamente el
espacio requerido, manteniendo el resto disponible para futuros procesos que requieran
de espacio.
Consideremos el ejemplo de la figura 3, en donde se cuenta un espacio reservado
para el sistema operativo en la memoria baja de 400K y un espacio disponible para
procesos de usuario de 2160K, siendo un total de memoria del sistema de 2560K. Dada
la secuencia de procesos de la figura y usando un algoritmo de First Come First
Served (FCFS) se puede asignar de inmediato memoria a los procesos P1, P2 y P3,
creando el mapa de memoria de la figura 4(a) en el cual queda un hueco de 260K que ya
no puede ser utilizado por el siguiente proceso dado que no es suficiente para abarcarlo.















Fig. 3. Ejemplo de una divisin inicial de memoria y una lista de trabajos.



Sistema
Operativo
2160K

P
1

P
2

P
3

P
4

P
5

600K
1000K
300K
700K
500K
10
5
20
8
15
Lista de trabajos
Procesos Memoria Tiempo
2560K

2560K

0

Sistema
Operativ
o
400K
0
Sistema
Operativ
o
1000K
400K
0
Sistema
Operativ
o
1000K
400K
0
Sistema
Operativ
o
1000K
400K
0
Sistema
Operativ
o
P5
400K
0










(a) (b) (c) (d)
(e)









Fig. 4. Ejemplo de asignacin de procesos en la memoria principal.

Usando un proceso de asignacin Round-Robin con un quantum de 1 unidad de
tiempo, el proceso P
2
terminara en la unidad de tiempo 14, liberando esa cantidad de
memoria, como se muestra en la figura 4(b). Entonces el sistema operativo checa la lista
de trabajos y asigna el siguiente proceso que quepa en el espacio de memoria liberado.
El proceso P
4
produce el mapa de memoria que se muestra en la figura 4(c). El proceso
P
1
terminar en la unidad de tiempo 28 para producir el mapa de la figura 4(d) y
entonces se asigna el proceso P
5
generando el mapa de la figura 4(e).
Cuando a un proceso se le asigna un espacio y es cargado a la memoria
principal, puede entonces competir para el uso del CPU.

MEMORIA VIRTUAL:
Definicin: memoria virtual (Fotheringham, 1961) es un mtodo que permite
direccionar un espacio de almacenamiento mucho mayor que el disponible en la
memoria principal. Para ello, el S.O usa memoria a dos niveles y particiona los trabajos
en bloques, manteniendo en la memoria principal aquellos bloques que se estn usando.

Tamao de los bloques:
Con el mismo tamao: pginas. Paginacin.
Con diferentes tamaos: segmentos. Segmentacin.

Definiciones:
1. Direcciones virtuales: las direcciones a las que se refiere un proceso durante su
ejecucin. Espacio de direcciones virtuales.
2. Direcciones reales: las direcciones que tiene la memoria principal. Espacio de
direcciones reales.
Los mecanismos de traduccin dinmica de direcciones (DAT) se encargan de
transformar las direcciones virtuales a direcciones reales, basndose en que direcciones
contiguas dentro del espacio de direcciones virtuales, no tienen por qu ser contiguas
dentro del almacenamiento real.
P1
P2
P3
2560K
2300K
2000K
1000K
P1
P3
P1
P4
P3
Hueco
P4
P3
P4
P3
1000K
2000K 1700K 1700K
900K
Termina
P2
Asignar
P4
Termina
P1
Asignar
P5
Hueco
Hueco Hueco Hueco Hueco Hueco
Hueco
Hueco Hueco
Hueco
Para realizar esta transformacin, los DAT mantienen por cada proceso un mapa que
indica qu direcciones virtuales se encuentran en memoria principal y dnde. Para que
este mapa no sea muy grande las transformaciones se realizan a nivel de bloque.

PAGINACION.
La paginacin de memoria divide os programas en pequeas partes o pginas. Del
mismo modo, la memoria es dividida en trozos del mismo tamao que las pginas
llamados marcos de pgina. De esta forma, la cantidad de memoria desperdiciada por un
proceso es el final de su ltima pgina, lo que minimiza la fragmentacin interna y evita
la externa.

En un momento cualquiera, la memoria se encuentra ocupada con pginas de diferentes
procesos, mientras que algunos marcos estn disponibles para su uso. El sistema
operativo mantiene una lista de estos ltimos marcos, y una tabla por cada proceso,
donde consta en qu marco se encuentra cada pgina del proceso. De esta forma, las
pginas de un proceso pueden no estar contiguamente ubicadas en memoria, y pueden
intercalarse con las pginas de otros procesos.

SEGMENTACIN

La segmentacin es una tcnica de gestin de memoria que pretende acercarse ms al
punto de vista del usuario. Los programas se desarrollan, generalmente, en torno a un
ncleo central (principal) desde el que se bifurca a otras partes (rutinas) o se accede a
zonas de datos (tablas, pilas, etc).

Desde este punto de vista, un programa es un conjunto de componentes lgicos de
tamao variable o un conjunto de segmentos, es decir, el espacio lgico de direcciones
se considera como un conjunto de segmentos, cada uno definido por un identificador, y
consistente de un punto de inicio y el tamao asignado.1

La segmentacin de un programa la realiza el compilador y en ella cada direccin lgica
se expresar mediante dos valores: Nmero de segmento (s) y desplazamiento dentro
del segmento (d).

Una de las implementaciones ms obvias y directas de un espacio de memoria
segmentado es asignar un segmento distinto a cada una de las secciones del espacio en
memoria de un proceso.

La segmentacin tambin ayuda a incrementar la modularidad de un programa

You might also like