You are on page 1of 8

Procesos e Hilos en los Sistemas OperativosWindows y Linux. Luis F. Alvear, David A.

lvarez

Scribd Subir un documento Buscar Documentos Explorar Documentos Libros - Ficcin Libros - No ficcin Salud y medicina Folletos/Catlogos Documentos del gobierno Guas/Manuales de procedimientos Revistas/Peridicos Recetas/Mens Trabajos escolares + todas las categoras Destacados Nuevo Personas Autores Estudiantes Investigadores Editores Gobierno y entidades sin fines de lucro Comercios Msicos Artistas y diseadores Profesores + todas las categoras Los ms buscados Popular Inscrbase | Ingresar inShare Resumen Se presenta un breve resumen de cmo funcionanlos procesos e hilos tanto en los si stemas operativos Windows,como para Linux, como se crean y como son tratados por lmicroprocesador, se analiza cmo se lleva a cabo lacomparticin de los recursos del sistema, entre otrascaractersticas. Trminos para indexacin WINDOWS, LINUX, Procesos,Hilos. I.PROCESOS E HILOS EN WINDOWS N la totalidad de sistemas operativos, cada proces o tieneun espacio de direcciones y un hilo de control. Peroexisten situaciones e n las cuales por el tipo de aplicacionesque se tiene necesitan tener varios hilo s de control quecompartan un espacio de direcciones, pero que se ejecuten demane ra simultnea, como si fueren procesos independientes porque es espacio de direcci ones si necesariamente locomparten.

E Una aplicacin de un servidor que debe desactivarse enforma ocasional, en espera d e una solicitud al disco, por ejemplo necesita de varios hilos de control, se po dra ejecutar un hilo mientras los otros estn como secundarios en esperade que sean llamados para lograr esto se necesita trabajar necesariamente con hilos.VER FIG URA 1. (ANEXOS)Como observamos en el grfico en una computadora seestn ejecutando t res procesos los cuales tienen su contador de programa y su pila ( conjunto de r egistros y de espacios dedirecciones). Los procesos no se comunican sonindependi entes unos con otros sin embargo a travs de las primitivas del sistema lo pueden hacer como semforos,monitores o mensajes. Documento recibido el 14 de Octubre del 2009. Esta investigacin serealiz en la Esc uela Politcnica Nacional (EPN), como parte del desarrollo dela materia Aplicacion es Distribuidas.L. F. Alvear particip en la investigacin como miembro del curso de Aplicaciones Distribuidas (telfono: 5932-2564-111: e-mail:luis.alvear@meer.gov.ec ).D. A. lvarez particip en la investigacin como miembro del curso deAplicaciones Di stribuidas (telfono: 5932-2259-514: e-mail:david.alvarez@meer.gov.ec). En el otro extremo del grafico observamos un solo procesocon varios hilos o tamb in llamados procesos ligeros, que seejecutan en forma estrictamente secuencial y tiene sucontador de programa y una pila para llevar un registro de su posicin. Los hilos pueden crear hilos hijos y se pueden bloquear enespera de que se termi nen sus llamadas al sistema, es algosimilar a lo que ocurre con un proceso en un a maquina, lomismo ocurre con un hilo en un proceso.Todos los hilos tienen el mi smo espacio de direcciones, loque implica que comparten las mismas variables loc ales. Un proceso pertenece a un usuario el cual consta de varios hilos para que cooperen entre si, lo cual implica que los elementosde un proceso son partes de los elementos de un hilo. PROCESOS EN WINDOWS NT El diseo de los procesos de Windows NT est dirigido por la necesidad de dar soport e a varios entornos de sistemasoperativos. Los procesos aportados por los distin tos sistemasoperativos son diferentes en varios aspectos, incluyendo lossiguient es: Cmo se les denomina a los procesos. Si hay hilos disponibles dentro de los proc esos. Cmo se representan los procesos. Cmo se protegen los recursos de los procesos. Qu mecanismos se emplean para la comunicacin y lasincronizacin entre procesos. Cmo es tn relacionados los procesos entre s.Por lo cual, la estructura nativa de los proc esos y de losservicios que brinda el ncleo de NT es relativamente simpley de props ito general, permitiendo a cada subsistema emular la estructura y la funcionalid ad particular de los procesos deun sistema operativo. Las caractersticas ms import antes delos procesos de NT son las siguientes: Los procesos de NT se implementan como objetos. Un proceso ejecutable puede tener uno o ms hilos. Los objetos proceso y los objetos hilo tienen capacidades predefinidas de sincronizacin. El ncleo de N T no conserva ninguna relacin entre los procesos que crea, incluyendo las relacio nes padre-hijo.El proceso tiene una seal de acceso que le sirve paracambiar sus p ropios atributos.Tambin tienen que ver con el proceso una serie de bloques que de finen el espacio de direcciones virtualesasignado. El proceso no puede modificar directamente estasestructuras, sino que debe depender del administrador dememor ia virtual, quien le proporciona al proceso un serviciode asignacin de memoria.Fi nalmente, el proceso incorpora una tabla de objetos, conlos descriptores de otro s objetos que conoce. Existe undescriptor para cada hilo del proceso. Razones para la Creacin de Procesos Procesos e Hilos en los Sistemas OperativosWindows y Linux. Luis F. Alvear, David A. lvarez 1 Nuevo trabajo por lotes .- El sistema operativo esta provistode un flujo de control de trabajos por lote s, generalmente para cinta o disco.Cuando el sistema operativo se prepara para t omar un nuevotrabajo, leer a prxima secuencia de ordenes de control detrabajos. Conexin interactiva.

- Un usuario entra en el sistema desdeun terminal. Creado por el SO para dar un servicio .- El sistemaoperativo puede crear un proceso para llevar a cabo unafuncin de par te de un programa usuario, sin que el usuariotenga que esperar (por ejemplo, imp rimir). Generado por un proceso existente.Con afn demodularidad o para aprovechar el paralelismo, un programade usuario pue de ordenar la creacin de una serie de procesos.Cuando un proceso es creado por el sistema operativo tras lasolicitud explicita de otro proceso, la accin se conoce como generacin de procesos. Cuando un proceso genera otro, el proceso generador seconoce como proceso padre y el proceso generado es el proceso hijo. Normalmente, estos procesos emparentadosnecesitarn comunicarse y cooperar entre si . Terminacin de procesos En cualquier sistema informtico, debe haber alguna formade que un proceso pueda i ndicar que ha terminado. Estados de un Proceso Hay una cola sencilla de procesos. Cada entrada de la cola esun puntero a un pro ceso en particular. Cuando un proceso seinterrumpe, se le pasa a la cola de proc esos en espera. Por otra parte, si un proceso termina o se abandona, se le desca rtadel sistema (sale del sistema). En cualquier caso, el,distribuidor selecciona entonces un proceso de la cola paraejecutarlo.VER FIGURA 2 (ANEXOS) Un modelo de cinco estados Algunos procesos en el estado de No Ejecucin estn listos para ejecutar, mientras que otros estn bloqueados,esperando a que termine una operacin de E/S. Los procesosesperan cola en una lista en la cual el primero en e ntrar, es primero en salir. As pues, utilizando una cola sencilla, eldistribuidor podra no seleccionar exactamente el procesoque est en el extremo ms antiguo de la cola, por lo cual sehan incorporado algunos estados de gran utilidad. Ejecucin: El proceso que est actualmente en ejecucin. Listo: Proceso que est preparado para ejecutar, en cuanto sele d la oportunidad. Bloqueados: Proceso que no puede ejecutar hasta que se produzca cierto suceso, como la termi nacin de unaoperacin de E/S. Nuevo: Proceso que se acaba de crear, pero que an no hasido admitido por el sistema oper ativo en el grupo de procesos ejecutables. Terminado: Un proceso que ha sido excluido por el sistemaoperativo del grupo de procesos ej ecutables.VER FIGURA 3. (ANEXOS)Se le asocia un identificador al proceso y se co nstruyen yasignan algunas tablas necesarias para gestionar el proceso.En este pu nto, el proceso estar en el estado Nuevo. Estosignifica que el sistema operativo ha llevado a cabo lasacciones necesarias para crear el proceso pero no se hacomp rometido an a su ejecucin.Aqu se muestran algunos ejemplos de procesos su estado ye l tiempo de ejecucin.VER TABLA 1 (ANEXOS) Razones para la Suspensin de procesosIntercambio .- El sistema operativo necesita liberar suficiente memoria principal para carga r un proceso que estlisto para ejecutarse. Solicitud de un usuario. - Un usuario puede querer suspender una ejecucin de un programa con fines de depu racin o enconexin con el uso de un recurso. Por tiempo.

- Un proceso puede ejecutarse peridicamente y puede ser suspendido mientras esper a el siguiente intervalode tiempo. Elementos Tpicos de una Imagen de ProcesoDatos de Usuario.La parte modificable del espacio deusuario. Puede guardar datos del programa, un a zona parauna pila del usuario y programas que pueden modificarse. Pila del Sistema Cada proceso tiene una o ms pilas (el ltimo que entra es el primero en salir) asoc iadas a l. Una pila se utiliza paraalmacenar los parmetros y as direcciones de ret orno. Bloque de Control de Proceso Informacin necesaria para que el sistema operativo controleal proceso. Memoria Virtual en los Procesos. La memoria constituy hace muchos aos las personasenfrentaron por primera vez progr amas que eran demasiadograndes para caber en la memoria disponible. La solucinque normalmente se adoptaba era dividir el programa enfragmentos, llamados superpos iciones. La superposicin Oera la primera que se ejecutaba. Al terminar, estasuper posicin llamaba a otra. Algunos sistemas desuperposicin eran muy complejos, pues p ermitan variassuperposiciones en la memoria a la vez. Las superposicionesse mante nan en disco y el sistema operativo lasintercambiaba con la memoria dinmicamente, segn fueranecesario.Aunque el trabajo real de intercambiar las superposicionescor ra por cuenta del sistema, la tarea de dividir el programaen fragmentos tena que s er efectuada por el programador. Ladivisin de programas grandes en fragmentos mod ulares2 pequeos consuma tiempo y era tediosa. No pas muchotiempo antes de que a alguien se le ocurriera una forma dedejar todo el trabajo a la computadora.La idea en que se basa la memoria virtual es que el tamaocombinado del programa, los datos y la pila puede exceder lacantidad de memoria fsica disponible para l. El sistemaoperat ivo mantiene en la memoria principal las partes del programa que actualmente se estn usando, y el resto en eldisco.La memoria virtual tambin puede funcionar en un sistemade multiprogramacin, manteniendoSegmentos de muchos programas en la memor ia a la vez.Mientras un programa est esperando que se traiga a lamemoria una de s us partes, est esperando E/S y no puedeejecutarse, as que puede otorgarse la CPU a otro proceso, lomismo que en cualquier otro sistema de multiprogramacin. Administracin de memoria con mapas de bits Cuando la memoria se asigna dinmicamente, el sistemaoperativo debe administrarla. En trminosgenerales, hay dos formas de contabilizar la utilizacin dememoria: mapa s de bits y listas libres. En esta seccin y en lasiguiente examinaremos estos dos mtodos por tumo.Con un mapa de bits, la memoria se divide en unidades deasignacin , tal vez slo de unas cuantas palabras o quiz devarios kilobytes. A cada unidad de asignacin corresponde un bit del mapa de bits, que es 0 si la unidad est libre y 1 si estocupada (o viceversa). se muestra una parte de la memoria yel mapa de bit s correspondiente.Una parte de la memoria con cinco procesos y tres agujeros.Las marcas indican las unidades de asignacin de memoria.Las regiones sombreadas (O e n el mapa de bits) estn libres,(b) El mapa de bits correspondiente, (e) La mismai nformacin en forma de lista.El tamao de la unidad de asignacin es una cuestin dediseo importante. Cuanto menor sea la unidad deasignacin, mayor ser el mapa de bits. Si n embargo, inclusocon una unidad de asignacin de slo cuatro bits, 32 bits dememori a slo requerirn un bit del mapa. Una memoria de32n bits usar n bits de mapa, y el m apa slo ocupar 1/33 dela memoria. Si se escoge una unidad de asignacin grande, elma pa de bits ser ms pequeo, pero podra desperdiciarseuna cantidad apreciable de memori a en la ltima unidad si eltamao del proceso no es un mltiplo exacto de la unidad de asignacin.Un mapa de bits ofrece un mtodo sencillo para contabilizar las palabras en una cantidad fija dememoria, porque el tamao del mapa de bits depende slodel ta mao de la memoria y del tamao de la unidad deasignacin. El problema principal que p resenta es que unavez que se ha decidido traer a la memoria un proceso de k unid ades, el administrador de memoria debe buscar en elmapa de bits una serie de k b its en O consecutivos. La bsqueda de series de una longitud dada en un mapa de bi tses una operacin lenta (porque la serie puede cruzar fronterasde palabra en el m apa); ste es un argumento en contra de losmapas de bits.

Administracin de memoria con listas enlazadas Otra forma de contabilizar la memoria es mantener una listaenlazada de segmentos de memoria libres y asignados, dondeun segmento es un proceso o bien un agujero entre dos procesos. La memoria se representa en la como listaenlazada de segmen tos. Cada entrada de la lista especifica unagujero (H) o un proceso (P), la dire ccin en la que principia,la longitud y un apuntador a la siguiente entrada.En est e ejemplo, la lista de segmentos se mantiene ordenada por direccin. Este ordenami ento tiene la ventaja de quecuando un proceso termina o es intercambiado a disco , esfcil actualizar la lista.Un proceso que termina normalmente tiene dos vecinos (excepto cuando est en el tope o la base de la memoria).stos pueden ser procesos o agujeros, dando lugar a lascuatro combinaciones de la actualizacin de la lista r equierela sustitucin de una P por una H. En las dos entradas sefunden para dar un a sola, y el tamao de la lista se reduce enuna entrada. En las tres entradas se f unden y dos elementosse eliminan de la lista. Puesto que la ranura de tabla de p rocesos para el proceso que va a terminar normalmenteapunta a la entrada del pro ceso mismo en la lista, puede ser ms recomendable tener una lista doblementeenlaz ada, en lugar de la lista con un solo enlace . Estaestructura facilita la locali zacin de la entrada anterior paradeterminar si es posibleuna fusin.Cuatro combinac iones de vecinos para el proceso quetermina, X. Si los procesos y agujeros se ma ntienen en unalista ordenada por direccin, se pueden usar variosalgoritmos para a signar memoria a un proceso recin creadoo trado a la memoria. Suponemos que el adm inistrador dememoria sabe cunta memoria debe asignar. El algoritmoms sencillo es e l de primer ajuste. El administrador dememoria examina la lista de segmentos has ta encontrar unagujero con el tamao suficiente. A continuacin, el agujerose divide en dos fragmentos, uno para el proceso y otro parala memoria desocupada, except o en el poco probable caso deque el ajuste sea exacto. El algoritmo de primer aj uste esrpido porque la bsqueda es la ms corta posible.Una variante menor del primer ajuste es el siguiente ajuste.Este algoritmo funciona igual que el de primer aj uste,excepto que toma nota de dnde est cada vez que encuentraun agujero apropiado. La siguiente vez que se invoque, elalgoritmo comenzar a buscar en la lista a par tir del lugar donde se quedla ltima vez, en lugar de comenzar por el principio, co mohace el primer ajuste. Simulaciones ejecutadas demuestranque el siguiente ajus te ofrece un rendimiento ligeramente peor que el primer ajuste.Otro algoritmo bi en conocido es el de mejor ajuste, queexamina toda la lista y toma el agujeroms p equeo que es adecuado. En lugar de partir un agujerogrande que podra necesitarse d espus, el mejor ajuste tratade encontrar un agujero con un tamao cercano al que se necesita.El mejor ajuste es ms lento que el primer ajuste porque debeexaminar tod a la lista cada vez quese invoca. Lo que resulta sorprendente es que tambindesper dicia ms memoria que el primer ajuste o el siguienteajuste porque tiende a llenar la memoria de pequeos3 agujeros intiles. En promedio, el primer ajuste g neraagujeros ms grandes.A fin de sortear el problema de partir un agujero con untamao casi igual al requerido par a obtener un rea asignadaal proceso y un agujero diminuto, podramos considerar el peor ajuste, es decir, tomar siempre el agujero ms grandedisponible, de modo que el agujero sobrante tenga un tamaosuficiente para ser til. Las simulaciones han de mostrado queel peor ajuste tampoco es una idea muy buena.II.PROCESOS E HILOS EN LINUXEl recurso ms preciado en el sistema es la CPU; Linux esun sistema operativo multiproceso. Y su principal objetivo estener siempre un proceso ejecutndose en cada CPU delsistema en todo instante, para maximizar el aprovechamientodel uso d e la CPU. Si existen ms procesos que CPUs (locomn es este caso), la cola de los pr ocesos tiene que esperar su turno hasta que una CPU quede libre para que ellosej ecutarse. El multiproceso es una idea no muy compleja; un proceso se ejecuta has ta que tenga que esperar, normalmente por algn recurso del sistema; cuando obteng a dicho recurso, puede ejecutarse otra vez. En un sistema uniproceso, por ejempl o DOS, la CPU estara simplemente esperandoesttica, y el tiempo que no realiza ning una Tarea sedesaprovechara.En un sistema multiproceso se mantienen varios proceso sen memoria al mismo tiempo. Cuando un proceso tiene que pasar a un estado de es pera, el sistema operativo le quita laCPU a ese proceso y se la da a otro proces o que lecorresponda o que tenga mayor prioridad. El

planificador seencarga de elegir el proceso ms apropiado el cul se debaejecutar a continuacin. L inux usa diferentes estrategias deorganizacin del tiempo de la CPU para tratando de hacerlode la mejor manera (lo reparte de manera justa).Hablar tanto de Proces os como de Hilos, es hablar de dosconceptos muy similares y relacionados entre s, entre loscuales existen pequeas diferencias nada ms.Uno de los principales motivo s de la existencia de lainformtica es imitar el comportamiento de la mentehumana. En un comienzo surgieron los algoritmos, que noson ms que una secuencia de pasos para conseguir unobjetivo, a partir de los cuales surgi el pensamiento de por qu n o hacer varias cosas a la vez y es precisamente de estainquietud de donde surgen los hilos o threads.Si queremos que nuestro programa empiece a ejecutar varias c osas "a la vez", tenemos dos opciones. Por una parte podemos crear un nuevo proc eso y por otra, podemos crear un nuevo hilo de ejecucin (un thread).En realidad n uestro ordenador, salvo que tenga variasCPUs, no ejecutar varias tareas a la vez e sto se refiere aque el sistema operativo, es este caso Linux, ir ejecutandolos th reads segn la poltica del mismo, siendo lo mas usualmediante rodajas de tiempo muy rpidas que dan la sensacinde simultaneidad.Para que Linux pueda gestionar los pro cesos en el sistema,cada proceso se representa por una estructura de datostask_s truct (las tareas (task) y los procesos son trminosintercambiables en Linux). El vector task es una lista de punteros a estructuras task_struct en el sistema. Es to quieredecir que el mximo nmero de procesos en el sistema estlimitado por el tamao del vector task; por defecto tiene 512entradas. A medida que se crean procesos, se crean nuevasestructuras task_struct a partir de la memoria del sistema y seaa den al vector task. Para encontrar fcilmente el procesoen ejecucin, hay un puntero (current) que apunta a este proceso.Linux soporta procesos de tiempo real as com o procesosnormales. Estos procesos tienen que reaccionar muyrpidamente a sucesos externos (de ah el trmino tiemporeal ) y reciben un trato diferente del planificador . Laestructura task_struct es bastante grande y compleja, pero suscampos se pued en dividir en reas funcionales: -State (Estado) A medida que un proceso se ejecuta, su estadocambia segn las circunstanc ias. Los procesos en Linuxtienen los siguientes estados: - Running (Preparado) El proceso se est ejecutando (es el proceso encurso en el sistema) o est listo para ejecutarse (estesperando a ser asignado a una de las CPUs del siste ma). - Waiting (Esperando) El proceso est esperando algn suceso o por algn recurso. Linux diferenc ia dos tipos de procesos;interrumpibles e ininterrumpibles. Los procesos en espe rainterrumpibles pueden ser interrumpidos por sealesmientras que los ininterrumpi bles dependen directamentede sucesos de hardware y no se pueden interrumpir enni ngn caso. - Stopped (Detenido) El proceso ha sido detenido, normalmente porque ha recibido una seal. Si se estn depurando erroresen un proceso, ste puede estar detenido. Zombie Es un proceso que ya ha terminado pero cuya estructuratask_struct permanece an en el vector task. Se suelemantener para que el padre pueda extraer informacin til d el.En la Figura 4 (ANEXOS) podemos apreciar el diagrama deestados, sobre los cual es se puede encontrar un proceso en elSistema Operativo Linux. Informacin de la Planificacin de Tiempo de la CPU El planificador necesita esta informacin para hacer unadecisin justa sobre qu proce so en el sistema se merece msejecutarse a continuacin.4 of 9 Leave a Comment You must be logged in to leave a comment. Enviar

Caracteres: 400 You must be logged in to leave a comment. Enviar Caracteres: ... Linux Procesos Paper sobre procesos e hilos en linux y windows Download or Print 8,156 Reads Informacin y clasificacin Categora: School Work > Study Guides, Notes, & Quizzes Rating: Upload Date: 11/06/2009 Derechos de autor: Funciones no comerciales Etiquetas: paperhilosprocesos windowsprocesos linux Flag document for inapproriate content

Uploaded by luchoalco Sganos Descargar Embed Doc Copy Link Add To Collection Comments Readcast Share Share on Scribd: Readcast Buscar TIP Press Ctrl-F F to quickly search anywhere in the document. Buscar Search History: Searching... Result 00 of 00 00 results for result for p. More from This User Documentos relacionados More From This User 43 p. Prcticas de Laboratorio 428 p. Rihards Olups Zabbix 1.8 Network Monitoring 2010 35 p. Trabajo de Admon de Redes Next

You might also like