Anda di halaman 1dari 6

SIMULACIN DE SECUENCIAS DE MULTIPROGRAMACIN EN C

NAREN DAGOBERTO GONZLEZ VARGAS 201129409601

SISTEMAS OPERATIVOS LUIS EDUARDO BAQUERO REY

FUNDACION UNIVERSITARIA LOS LIBERTADORES BOGOT, MAYO DE 2012

MULTIPROGRAMACIN Es un modo de trabajo en el que se pueden ejecutar varis programas simultneamente con el fin de aprovechar al mximo los recursos del computador. Surgi ante la imposibilidad de sistemas anteriores de ocupar todo el tiempo totalmente el procesador y los dispositivos de entrada y salida. La seccin que permite la multiprogramacin en un sistema operativo se denomina Kernel, ste software consiste en un numero de procedimientos que llevan a cabo funciones como crear tareas, decidir cual tarea correr en un momento dado, proveyendo un mecanismo para cambiar al procesador de una tarea a otra y provee formas primitivas de acceso controlado a recursos compartidos.

Diagrama que muestra el reparto de tiempo de varios procesos en una CPU. PROCESO Un proceso puede informalmente entenderse como un programa en ejecucin. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecucin de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistemas asociados". Cada proceso tiene su contador de programa, registros y variables, aislados de otros procesos, incluso siendo el mismo programa en ejecucin 2 veces. Cundo esto ltimo caso sucede, el sistema operativo usa la misma regin de memoria de cdigo, debido a que dicho cdigo no cambiar, a menos que se ejecute una versin distinta del programa. Los procesos son gestionados por el sistema operativo y estn formados por:

Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la unidad central de procesamiento para dicho programa. Su memoria de trabajo (memoria crtica), es decir, la memoria que ha reservado y sus contenidos. Otra informacin que permite al sistema operativo su planificacin.

En un sistema multiprogramado con un nico procesador, los procesos se intercalan en el tiempo aparentando una ejecucin simultnea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecucin intercalada produce beneficios en la eficiencia del procesamiento y en la estructuracin de los programas. La intercalacin y la superposicin pueden contemplarse como ejemplos de procesamiento concurrente en un sistema monoprocesador, los problemas son consecuencia de la velocidad de ejecucin de los procesos que no pueden predecirse y depende de las actividades de otros procesos, de la forma en que el sistema operativo trata las interrupciones surgen las siguientes dificultades: 1. Compartir recursos globales es riesgoso 2. Para el sistema operativo es difcil gestionar la asignacin ptima de recursos. Las dificultades anteriores tambin se presentan en los sistemas multiprocesador. El hecho de compartir recursos ocasiona problemas, por esto es necesario proteger a dichos recursos. Los problemas de concurrencia se producen incluso cuando hay un nico procesado SIMULACION DE LA MULTIPROGRAMACIN
#include<string.h> #include<stdio.h> #include<conio2.h> #include <windows.h> main() { int i,j; char car; printf("digite p o n para empezar... \no q para salir..."); scanf("%s",&car);

i=0; j=1; clrscr(); gotoxy(25,1); printf("Secuencia 2 pares"); gotoxy(1,1); printf("Secuencia 1 impares"); gotoxy(45,10); printf("Instrucciones del programa:"); gotoxy(45,12); printf("Presione:"); gotoxy(45,13); printf("p para cambiar a secuencia 2 Pares"); gotoxy(45,14); printf("n para cambiar a secuencia 1 impares"); gotoxy(45,15); printf("q para salir del programa"); gotoxy(45,20); printf("Elaborado por Naren Gonzalez"); gotoxy(45,21); printf("Sistemas Operativos FULL"); do{ if(car=='p') { gotoxy(35,i+3); printf("%d\n",i); Sleep(1000); i=i+2; } if(car=='n') { gotoxy(10,j+2); printf("%d\n",j); Sleep(1000); j=j+2; } if(car=='q') { clrscr(); printf("Programa Finalizado...\nNaren Gonzalez Vargas\n"); break;} if(kbhit()) { car=getch(); } }while(car=='q' || car=='n' || car=='p'); getch(); }

EXPLICACION DEL PROGRAMA El programa cuenta con dos secuencias i y j adems de un controlador de las secuencias que captura un carcter car, al inicio pide un carcter inicial para empezar las secuencias, 1 o 2, la que el usuario escoja, despus de escoger una secuencia con cual iniciar, se empieza a correr el programa, la funcin kbhit(); me

permite saber si he digitado alguna tecla o no dentro del programa en ejecucin, devuelve true si el usuario ha pulsado una tecla, o false en caso contrario. Lo que quiere decir, que el programa seguir iterando sin ejecutar getch() hasta que el usuario pulse alguna tecla, que ser capturada de inmediato (cuando termine la iteracin en curso). Iniciamos con p,

Luego presionamos n, para cambiar de secuencia.

Y por ultimo presionamos p para volver a la secuencia anterior.

BIBLIOGRAFIA http://dis.um.es/~barzana/Imagenes/so_cat_06.gif http://c.conclase.net/borland/?borlandfun=kbhit http://programacionenc.net/index.php?option=com_content&view=article&id=95:co mo-uso-la-funcion-kbhit&catid=31:general&Itemid=41 http://blogs.vandal.net/2192/vm/212540472007 http://es.wikipedia.org/wiki/Multiprogramaci%C3%B3n http://es.wikipedia.org/wiki/Proceso_(inform%C3%A1tica)

Anda mungkin juga menyukai