Está en la página 1de 12

9/28/2014

Sistemas
Operativos
Tarea No. 2

Cintya Lizbeth Hernandez Sanchez


#121074

Proceso
Un proceso es una secuencia de pasos dispuesta con algn tipo de lgica que se
enfoca en conseguir un resultado especfico, son implementados para mejorar la
productividad de algo, establecer un orden o eliminar algn tipo de problema.
Dentro de los sistemas operativos un proceso es un programa en ejecucin,
bsicamente es una actividad de cierto tipo que contiene un programa, entradas,
salidas y estados. Un programa sencillo genera un proceso. Cualquier aplicacin de
usuario que quiera realizar varias acciones de manera simultnea por ejemplo atender
la interfaz de usuario y manejar las conexiones de red, puede crear varios procesos
que se ejecutan en paralelo. Existen 4 formas de crear un proceso:
o

Arranque del sistema

En la ejecucin, llamada al sistema para la creacin del proceso.

Una peticin deliberada del usuario para crear un proceso.

El inicio de un trabajo por lotes.

El ciclo de vida de un proceso es sencillo, consta de su creacin, ejecucin de


instrucciones y terminacin. Cabe sealar que un proceso en el transcurso de su ciclo
puede estar en diferentes estados:
o

Salida normal: El proceso termina de forma voluntaria, por ejemplo cuando se


cierra el navegador.

Salida por error: Se representa cuando el proceso tiene que salir debido a
insuficiencia de datos.

Error fatal: Este sucede por un error en el programa, como las divisiones entre 0 o
requerimiento de memoria inaccesible.

Eliminado por otro proceso: Este es sumamente til cuando un proceso se


queda colgado, es decir, sin terminar, pero tampoco responde. En Unix un
ejemplo es cuando se utiliza el comando kill para terminar los procesos
abruptamente.

Adems de ser creados y terminados los procesos pueden ser suspendidos, un proceso
suspendido solo puede ser reanudado por otro. La suspensin temporaria puede ser
necesaria cuando el sistema est muy cargado. Si la suspensin fuera por largo
tiempo, deberan liberarse los recursos apropiados, por ejemplo, la memoria debera
liberarse inmediatamente. Al reanudar un proceso se le activa desde el punto que se
le suspendi. Los procesos pueden suspenderse por:
o

Mal funcionamiento del sistema.

El usuario sospecha de los resultados del proceso y lo suspende sin abortarlo


para analizar resultados parciales.

Carga elevada del sistema, se suspende hasta que los niveles sean ms aptos.

La tabla de procesos es una estructura, generalmente esttica por razones de


eficacia, cuyas entradas son bloques de control de procesos, el bloque de control de
procesos contiene la informacin bsica de cada proceso y que podemos definir
aproximadamente.
Segn William Stallings en el libro Sistemas Operativos, las entradas en la tabla de
procesos de Unix tienen:
o Estado del proceso: Estado actual del proceso
o Punteros: Al rea de usuario y a los segmentos de cdigo, datos y pila
o Tamao del proceso: Permite que el SO sepa cunto espacio asignar al proceso
o Identificadores de usuario: El ID real de usuario dueo del proceso. Y el ID
efectivo que sirve para que un proceso disponga temporalmente de privilegios
asociados
o Identificadores de proceso: ID del proceso (PID) y del proceso padre (PPID)
o Descriptor del suceso: Vlido cuando el proceso est dormido cuando se
produce el suceso, el proceso pasa a listo para ejecutar
o Prioridad: Empleada en la planificacin del proceso
o Seal Enumera las seales enviadas al proceso y que an no ha tratado
o Temporizadores: Incluye el tiempo de ejecucin del proceso, el uso de los
recursos del ncleo y un temporizador de usuario empleado para enviar seales
de alarma al proceso
o Enlace-P: Puntero al siguiente proceso en la cola de listos
o Estado de la memoria: Indica si la imagen del proceso est en memoria
principal o se ha descargado a disco. Tambin indica si el proceso se puede
descargar o est temporalmente bloqueado en memoria principal

Maquina Virtual
Es un software que simula a una computadora y puede ejecutar programas como si
fuese una computadora real, una caracterstica esencial de las mquinas virtuales es
que los procesos que ejecucin estn limitados por los recursos que se le hayan sido
proporcionados.

Existen dos categoras de mquinas virtuales:


o

Mquinas virtuales de sistema: Tambin llamadas mquinas virtuales de


hardware, permiten a la maquina fsica subyacente dividirse entre varias
mquinas virtuales, cada una ejecutando su propio sistema operativo. A la
capa de software que permite la virtualizacin se le llama monitor de mquina
virtual o hypervisor.

Mquinas virtuales de proceso: Tambin llamada mquina virtual de aplicacin,


se ejecutara como proceso normal dentro de un sistema operativo y soporta
solo un proceso. La mquina virtual se inicia automticamente cuando se lanza
el proceso que se desea ejecutar y se detiene cuando este finaliza, su objetivo
es proporcionar un entorno de ejecucin independiente de la plataforma de
hardware y del sistema operativo, algunos ejemplos de este tipo de mquinas
virtuales son la mquina virtual de java y .NET de Microsoft.

Procesos en modo kernel y modo usuario


o

Modo Usuario: El proceso est siendo ejecutado por una CPU. En un momento
dado slo puede haber tantos procesos en ejecucin como CPUs fsicas tenga
la mquina. Adems la CPU est funcionando en modo usuario, es decir que
est ejecutando cdigo del espacio de usuario. Si el cdigo est mal escrito y
se produce un error, la aplicacin terminar.

Modo Kernel: El proceso est siendo ejecutado por una CPU, y la CPU est
funcionando en modo ncleo. Slo el kernel del SO se ejecuta en modo ncleo.
Cuando una CPU funciona en modo ncleo o modo supervisor, permite realizar
algunas operaciones que estn prohibidas en modo usuario. De esta manera el
ncleo del sistema operativo puede controlar todo el sistema informtico. Si el
cdigo est mal escrito y se produce un error probablemente todo el sistema se
detenga.

Modelo de 3 estados
En el modelo de tres estados se establece el estado de
bloqueado a diferencia de el de dos ya que en realidad, los
procesos utilizan datos para operar con ellos, y puede
suceder que no se encuentren listos o que se deba esperar
algn suceso antes de continuar. Es por esto que se cre el
estado de bloqueado, porque se necesita un estado donde
los procesos permanecieran como dice la palabra
bloqueados esperando hasta que puedan proseguir.
Estados
o
o
o

Ejecutando: El proceso se encuentra realizando instrucciones.


Bloqueado: El proceso no puede ser ejecutado.
Listo: El proceso es ejecutable o en espera de ser ejecutado, se detiene de
forma temporal para que algn otro proceso pueda ser ejecutado.
Transiciones

o
o
o
o

Ejecutando a Bloqueado: En esta transicin el proceso se bloquea en espera de


datos.
Ejecutando a Listo: El sistema operativo elige otro proceso despus de que el
tiempo del proceso anterior ha excedido.
Listo a Ejecutando: El sistema operativo lee el proceso.
Bloqueado a Listo: Los datos pasan a estar disponibles.

Modelo de 7 estados
Se aade al modelo de 5 estados un nuevo estado suspendido, que indica que un
proceso no se encuentra en memoria principal sino que est almacenado en disco
(memoria secundaria). Dicho estado se subdivide en dos:
o

Suspendido/Bloqueado: Es un proceso suspendido que est esperando a que se


produzca un evento externo a l.

Suspendido/Listo: Es un procesos suspendido que puede ser llevado a memoria


principal en cualquier momento, es decir, al estado listo.

Multiprogramacin
La multiprogramacin es una tcnica de
multiplexacion que permite la ejecucin
simultnea de mltiples procesos en un
nico proceso. En realidad, esta

tcnica

produce una ilusin de paralelismo, de


manera que parece que todos los
procesos se estn ejecutando a la vez.
Sin embargo, hay un nico proceso
ejecutndose en el procesador a la vez.
Un mtodo usado en este tipo de programacin es el Foreground/Background o
ejecucin jerarquizada, en este mtodo existe un proceso prioritario(foreground) que
se ejecuta con preferencia de todos los dems, cuando este proceso solicita una
operacin de lectura o escritura estar bloqueado mientras el SO realiza la accin
solicitada y le cede el control al proceso background y as sucesivamente, para este
mtodo lo ptimo es colocar los procesos ordenados de mayor a menor cantidad de
operaciones de lectura o escritura.
En el diagrama anterior mostraba un planificador de procesos, este es parte del SO, se
encarga de decidir qu proceso emplea el procesador en cada instante, por tanto, es
el encargado de implementar la multiprogramacin.

Multiprocesamiento
Un sistema de multiprocesamiento consiste en una computadora que tiene ms de un
procesador o bien computadoras con CPUs o procesadores independientes. La
mayora de computadoras supervisoras se disean especficamente para dar soporte
a mltiples procesadores. Incluyen un bus de altas prestaciones, decenas de MB para
memoria con correccin de errores, sistemas de disco redundantes, arquitecturas
avanzadas de sistemas que reducen los cuellos de botella utilidades redundantes,
como mltiples fuentes de alimentacin.
Existen dos tipos de diseos de sistemas multiprocesador:
o

Simtrico: Los microprocesadores comparten los recursos del sistema. Se


distribuye uniformemente la carga de trabajo a los procesadores disponibles, de
modo que uno no este inactivo mientras que otro tiene un exceso de trabajo, su
desventaja es que los sistemas operativos que soportan este tipo de
multiprocesamiento son ms difciles de disear.

Asimtrico: Diferentes microprocesadores gobiernan las distintas tareas y


recursos del sistema. El enfoque principal que adoptan es el incremento de
rendimiento del sistema para mltiples usuarios de red en mltiples segmentos
de red de rea local. Los sistemas supervisores dan soporte a mltiples tarjetas
de red, lo que incrementa el nmero de posibles segmentos. El bus de alta
velocidad del servidor proporciona transferencia rpida de informacin entre
los segmentos de red. Cada CPU se dedica a una funcin especfica tal como
entrada / salida de la tarjeta de interfaz de red u operaciones con archivos.

Interrupciones
Una interrupcin es una seal recibida por
el procesador de un ordenador, indicando
que debe interrumpir el curso de ejecucin
actual y pasar a ejecutar cdigo especfico
para tratar esta situacin, las interrupciones
dan lugar a subrutinas de servicio de
interrupcin para ejecutarse, las cuales
generalmente pertenecen al sistema operativo o
al BIOS, una vez terminada dicha subrutina se
reanuda la ejecucin del programa.

Las interrupciones pueden ser:


o

Sincrnicas: Son las generadas por el CPU al ejecutar instrucciones.

Asincrnicas: Son las generadas por otros dispositivos y no estn alineadas al


reloj del sistema.

La bandera if del registro eflags determina si el estado de las interrupciones.


Las excepciones pueden ser generadas por dos razones:
o

Errores de programacin.

Condiciones anmalas.

Las excepciones se clasifican en:


o

Detectadas por el procesador

Fallos: Pueden ser corregidos y retoman la ejecucin. Se retoma la


instruccin que gnero el fallo.

Traps: Es utilizada, en mayor medida para debugging.

Aborts: Un error grave ocurri como un fallo del hardware.

Programadas
o

#
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

Son generadas por los programas al ejecutar la instruccin int o int3.

Exception
Divide error
Debug
NMI
Breakpoint
Overflow
Bounds check
Invalid opcode
Device not available
Double fault
Coprocessor
segment overrun
Invalid TSS
Segment not present
Stack segment fault
General protection
Page fault
Intel-reserved
Floating-point error
Aligment check
Machine check
SIMD floating point

Exception handler
divide_error()
debug()
nmi()
int3()
overflow()
bounds()
invalid_op()
device_not_available()
doublefault_fn()
coprocessor_segment_overrun()

Signal
SIGFPE
SIGTRAP
None
SIGTRAP
SIGSEGV
SIGSEGV
SIGILL
None
None
SIGFPE

invalid_TSS()
segment_not_present()
stack_segment()
general_protection()
page_fault()
none
coprocessor_error()
aligment_check()
machine_check()
simd_coprocessor_error()

SIGSEGV
SIGBUS
SIGBUS
SIGSEGV
SIGSEGV
None
SIGFPE
SIGBUS
None
SIGFPE

Hebras o hilos
Una hebra de ejecucin es similar a un proceso en cuanto a que puede ser
planificada para ejecucin. Un programa multihebra puede realizar varias tareas
simultneamente, las hebras, como los procesos, dan soporte a la programacin
concurrente, a diferencia de los procesos, no tienen todas las estructuras de control
que les permiten un funcionamiento independiente. Normalmente la asignacin de
recursos no se realiza por hebra, sino por proceso, y en un mismo proceso puede haber
varias hebras de ejecucin.
Las hebras ofrecen un mayor rendimiento pues los cambios de contexto son menos
costosos. En algunos procesos hay varias hebras, y por si alguna razn el proceso
termina, todas las hebras se ven afectadas.
Los hilos se distinguen de los procesos en que los procesos son generalmente
independientes, llevan bastante informacin de estados e interactan solo a travs de
mecanismos de comunicacin dados por el sistema, por otra parte, muchos hilos
generalmente comparten otros recursos de forma directa. En muchos de los sistemas
operativos que dan facilidades a los hilos, es ms rpido cambiar de un hilo a otro
dentro del mismo proceso, que cambiar de un proceso a otro. Este fenmeno se debe
a que los hilos comparten datos y espacios de direcciones, mientras que los procesos,
al ser independientes, no lo hacen.
El soporte para hebras puede implementarse de diferentes maneras, por ejemplo:
Hilos:Procesos
1:1

M:1

1:M

M:M

Descripcin
Por cada hebra de ejecucin
hay un proceso, con sus
propios recursos y espacio de
direcciones. Una hebra es un
proceso.
Cada proceso cuenta con su
espacio de direcciones y sus
recursos, en un proceso
pueden existir varias hebras.
Todas las hebras comparten
los recursos asignados al
proceso.
Una hebra puede emigrar de
un proceso a otro. Por lo
tanto puede migrar entre
diferentes sistemas (clster).
Combina los casos M:1 y 1:M

Sistemas de ejemplo
Unix System V

OS/2, MVS, MACH, GNU/Linux

Ra

TRIX

Se puede definir la programacin multihebra o multihilo como un estilo de ejecucin


en el que se conmuta entre distintas partes del cdigo de un mismo programa durante
la ejecucin. Acada una de estas partes individuales y atmicas se les da el nombre
Threads.

Ejemplos de administracin de procesos en Linux


El comando ps es el que permite informar sobre el estado de los procesos.
o

ps e Muestra todos los procesos

pstree Muestra los procesos en forma de rbol

kill Termina un proceso, su sintaxis seria kill PID donde PID es el ID del
proceso, kill l muestra todas las posibles seales que se le pueden enviar
a un proceso.

Algunos otros ejemplos de comandos son:


o

killall Funciona de forma similar a kill pero en lugar de proporcionarle un


ID se indica el nombre del programa.

nice Permite cambiar la prioridad de un proceso

renice As como nice establece la prioridad de un proceso cuando se


inicia su ejecucin, renice permite alterarla en tiempo real, sin necesidad
de detener el proceso.

Bibliografa
http://definicion.mx/proceso/
http://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml
http://es.wikipedia.org/wiki/M%C3%A1quina_virtual
http://noridappr89.wordpress.com/2013/03/05/modelo-de-cincoseissiete-estados/
http://www.slideboom.com/presentations/709252/Modelos-de-estados-de-procesos
http://es.slideshare.net/sueich/modelo-5-estados
http://es.slideshare.net/WAROSANTA/sistemas-operativos?next_slideshow=1
http://www.csicsif.es/andalucia/modules/mod_ense/revista/pdf/Numero_23/MARIA_CATALA_CARBONERO02.pdf
https://1984.lsi.us.es/wiki-ssoo/index.php/Multiprogramaci%C3%B3n
http://www1.frm.utn.edu.ar/soperativos/Archivos/procesos.pdf
http://es.wikipedia.org/wiki/Proceso_(inform%C3%A1tica)#Creaci.C3.B3n_de_un_proceso
http://www.fing.edu.uy/inco/cursos/tso/teorico/TSO-Interrupciones.pdf
http://es.wikipedia.org/wiki/Interrupci%C3%B3n

También podría gustarte