slhll

Páginas: 8 (1761 palabras) Publicado: 17 de abril de 2013
UNIMINUTO
SISTEMAS OPERATIVOS
PROCESOS
GUIA N#

Tema: Creación de procesos
Contenido
En esta guía se dará a conocer la manera en que el sistema operativo Linux
administra los procesos, la creación de procesos hijos, relación y interacción entre
procesos padre - hijo.
Objetivo Especifico




Conocer cómo se crea un proceso bajo Linux en centos 6.X.
Introducir al estudiantes alas llamadas al sistema en POSIX.
Comprender como interactúa un proceso hijo ya la relación con su padre.

Material y Equipo




Sistema operativo Linux (centos 6.X) con interprete de comandos bash
(shell)
Compilador gcc o g++ de linux.
Esta guía n#.

Introducción Teórica
Llamadas al sistema.
Una llamada al sistema es una demanda al sistema operativo (en el núcleo) para
que hagauna operación hardware/sistema específica o privilegiada.
Algunas llamadas al sistema se implementan en la libc de Linux, existe una
función llamada syscall() que toma como argumentos el número de la llamada al
sistema seguida por argumentos necesarios. Los números de llamada al
sistema se pueden encontrar en y existe el archivo de cabecera
.
Compilación de un programa C en Linux.
En estapráctica trabajaremos con las llamadas al sistema básicas fork(), xec(),
getpid(), getppid() y la implementación en pequeños programas escritos en C,
editados con nano, vi o cualquier otro editor de texto.
Para compilar los programas escritos en C se debe utilizar el compilador
GNU gcc o g++ el que ea de su agrado.
gcc -o nombre_del_ejecutable nombre_del_fuente
1

UNIMINUTO
SISTEMASOPERATIVOS
PROCESOS
GUIA N#

o
g++ -o nombre_del_ejecutable nombre_del_fuente
Conceptos básicos de Multitarea.
La forma básica de la multitarea es usar interrupciones, más conocido como
multitarea en serie; un programa se detiene temporalmente mientras que a otro se
le permite ser ejecutado. Esta característica trabaja en base a “time slices” o
“fracciones de tiempo”. A cada proceso se leasigna una pequeña porción de
tiempo para ejecutarse.
Unix es un sistema multiproceso por tiempo compartido. Desde el punto de vista
del usuario en un momento dado hay múltiples programas en
ejecución, cada uno de ellos avanzando en su tarea. Sin embargo en una máquina
con un solo procesador hay en cada instante solamente un proceso ejecutando.
Es el sistema operativo el que va rotando el usodel procesador a
intervalos breves (decena de milisegundos) entre los procesos definidos en
el sistema de forma que se crea la ilusión que todos avanzan simultáneamente.
El administrador del sistema dispone de herramientas para supervisar el estado de
los procesos y eventualmente tomar acciones para suspender o detener
la
ejecución de un proceso o simplemente modificar su comportamiento.
Loscambios entre diferentes procesos ocurren tan rápido que nosotros no nos
percatamos de ello. Este cambio es posible debido a que Linux asocia a un
proceso un número de identificación; pero no solo identifica al número, también
identifica a las variables asociadas al proceso. Estas variables quedan en el
“limbo” cuando el proceso es suspendido, y las activa de nuevo cuando el
procesadorreanuda la ejecución del proceso.
Procedimiento
Identificación de procesos.
Con la función getpid() podemos obtener el número de identificación de un
proceso.
ejemp1.c
#include
#include
main(){
int pid;
pid = getpid();
printf("El valor de la variable id de este proceso es: %d\n",
2

UNIMINUTO
SISTEMAS OPERATIVOS
PROCESOS
GUIA N#

pid);
}
El valor de pid dependerá del número deprocesos que ya están corriendo, y este
valor siempre será único en todo el sistema. También, no puede ser cambiado
mientras se está utilizando y puede ser reusado una vez que el proceso termine.
Los procesos corriendo en un momento determinado pueden ser
listados utilizando el comando ps -e.
Para compilar el programa digite lo siguiente en el prompt de Linux:
#gcc ejemp1.c -o ejemp1
o...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS