Вы находитесь на странице: 1из 27

INSTITUTO TECNOLGICO DE CHILPANCINGO

MATERIA: SISTEMAS OPERATIVOS ALUMNO: CARLOS ALBERTO ANGEL ANGEL CARRERA: ING. EN SISTEMAS COMPUTACIONALES

UNIDAD 1 y 2
1. INTRODUCCIN A LOS SISTEMAS OPERATIVOS 2. ADMINISTRACIN DE PROCESOS Y DEL PROCESADOR

FECHA: 23/09/12

UNIDAD 1 1. INTRODUCCIN A LOS SISTEMAS OPERATIVOS Definicin y concepto Un sistema operativo es un conjunto de programas de procesos con rutinas de control necesarias para mantener continuidad en los programas. Su objetivo primario es: optimizar los recursos del sistema. Funciones y caractersticas Su funcin es la de supervisar la proteccin del hardware Caractersticas: a) b) c) d) e) Compartir el hardware entre los usuarios Permitir a los usuarios compartir datos Planificar los recursos Facilitar la entrada o salida Recuperacin de errores en base a su prioridad.

1.1.HISTORIA DEL SISTEMA OPERATIVO Es difcil tratar de dar una definicin precisa de sistema operativo, puesto que existen muchos tipos, segn sea la aplicacin deseada, el tamao de la computadora usada y el nfasis que se d a su explotacin. Por ello se va a realizar un bosquejo de la evolucin histrica de los sistemas operativos, ya que as quedar plasmada la finalidad que se les ha ido atribuyendo. Se pueden encontrar las siguientes etapas en el desarrollo de los sistemas operativos, que coinciden con las cuatro generaciones de las computadoras. Prehistoria o generacin cero Durante esta etapa, que cubre los aos cuarenta, se construyen las primeras computadoras. Como ejemplo de computadoras de esta poca se pueden citar el ENJAC (Electronic Numerical Integrator Analyzer and computer), financiado por el. Laboratorio de Investigacin Balstica de los Estados Unidos. El ENIAC era una mquina enorme con un peso de 30 toneladas, que era capaz de realizar 5,000 sumas por segundo, 457 68 Sistemas operativos. Una visin aplicada multiplicaciones por segundo y 38 divisiones por segundo. Otra computadora de esta poca fue el EDVAC (Electronic Discrete Variable Automatic Computer). En esta etapa no existan sistemas operativos. El usuario deba codificar su programa a mano y en instrucciones mquina, y deba introducirlo personalmente en la computadora, mediante conmutadores o tarjetas perforadas, Las salidas se impriman o se perforaban en cinta de papel para su posterior impresin. En caso de errores en la ejecucin de Los programas, el usuario tena que depurarlos examinando el contenido de la memoria y los registros de la computadora.

En esta primera etapa todos los trabajos se realizaban en serie. Se introduca un programa en la computadora, se ejecutaba y se impriman los resultados y se repeta este proceso con otros programas. Otro aspecto importante de esta poca es que se requera mucho tiempo para preparar y ejecutar un programa, ya que el programador deba encargarse de codificar todo el programa e introducirlo en la computadora de forma manual. Lnea de tiempo de los sistemas operativos (prehistoria o generacin cero) aos cuarenta

aparecen las pirmeras computadoras. ejemplo (ENIAC Y EDVAC)

no existian sistemas operativos, el ususario codificaba su programa en instrucciones de maquina mediante tarjetas perforadas

todos los trabajos se realizaban en serie, requeria mucho tiempo para preparar y ejecutar un programa

Primera generacin (aos cincuenta) Con la aparicin de la primera generacin de computadoras (aos cincuenta) se hace necesario racionalizar su explotacin, puesto que ya empieza a haber una base mayor de usuarios. El tipo de operacin segua siendo serie como en el caso anterior, esto es, se trataba un trabajo detrs de otro teniendo cada trabajo las fases siguientes: Instalacin de cintas o fichas perforadas en los dispositivos perifricos En su caso, instalacin del papel en la impresora. Lectura mediante un programa cargador del programa a ejecutar y de sus datos. Ejecucin del programa. Impresin o grabacin de los resultados. Retirada de cintas, fichas y papel. La realizacin de la primera fase se denominaba montar el trabajo. El problema bsico que abordaban estos sistemas operativos primitivos era optimizar el flujo de trabajos, minimizando el tiempo empleado en retirar un trabajo y montar el siguiente. Tambin empezaron a abordar el problema de la. E/S, facilitando al usuario paquetes de rutinas de BIS, para simplificar la programacin de estas operaciones, apareciendo as los primeros manejadores de dispositivos. Se introdujo tambin el concepto de system file name, que empleaba un nombre o nmero simblico para referirse a los perifricos, haciendo que su manipulacin fuera mucho mas flexible que mediante las direcciones fsicas. Para minimizar el tiempo de montaje de los trabajos, stos se agrupaban en lotes (batch) del mismo tipo (p. ej programas Fortran, programas Cobol, etc), lo que evitaba tener que montar y desmontar las cintas de los compiladores y montadores, aumentando el rendimiento.

En las grandes instalaciones se utilizaban computadoras auxiliares, o satlites, para realizar las funciones de montar y retirar los trabajos. As se mejoraba el rendimiento de la computadora principal, puesto que se le suministraban los trabajos montados en cinta magntica y ste se limitaba a procesarlos y a grabar los resultados tambin en cinta magntica. En este caso se deca que la E/S se haca fuera de lnea (off-line). Los sistemas operativos de las grandes instalaciones tenan las siguientes caractersticas: Procesaban un nico flujo de trabajos en lotes. Disponan de un conjunto de rutinas de E/S. Usaban mecanismos rpidos para pasar de un trabajo al siguiente. Permitan la recuperacin del sistema si un trabajo acababa en error. Tenan un lenguaje de control (le trabajos que permita especificar los recursos a utilizar las operaciones a realizar por cada trabajo. Como ejemplos (le sistemas operativos de esta poca se pueden citar el FMS (Fortran System) e IBYSS, el sistema opera de la IBM 7094. Lnea de tiempo de lo sistemas operativos aos cincuenta

empieza haber una base mayor de usuarios.

el tipo de operacin seguia siendo de serie, problemas al optimizar el flujo de trabajos y de E/S

aparecen los primeros manejadores de dispositivos

para minimizar el tipo de montaje de los trabajos, se agruparon en lotes (batch) del mismo tipo

En las grandes instalaciones se utilizaban computadoras auxiliares, o satlites, para realizar las funciones de montar y retirar los trabajos

Segunda generacin (aos sesenta) Con la aparicin de La segunda generacin de computadoras (principios de los sesenta) se hizo ms necesario, dada la mayor competencia entre los fabricantes, mejorar la explotacin de estas maquinas de altos precios. La multiprogramacin se impuso en sistemas de lotes como una forma de aprovechar el tiempo empleado en las operaciones de E/S. La base de estos sistemas reside en la gran diferencia. Que existe, como se vio en el Capitulo 1, entre las velocidades de los perifricos y de la UCP, por lo que esta ltima, en las operaciones de E/S, se pasa mucho tiempo esperando a los perifricos. Una forma de aprovechar ese tiempo consiste en mantener varios trabajos simultneamente en memoria principal (tcnica llamada de multiprogramacin), y en realizar las operaciones de E/S por acceso directo a. memoria. (Cuando un trabajo necesita una operacin de E/S la solicita el sistema operativo que se encarga de:

Congelar el trabajo solicitante. Iniciar la mencionada operacin de E/S por DMA. Pasar a realizar otro trabajo residente en memoria. Estas operaciones las realiza el sistema operativo multiprogramado de forma transparente al usuario. Tambin en esta poca aparecen otros modos de funcionamiento muy importantes: Se construyen los primeros multiprocesadores, en los que varios procesadores forman una sola mquina de mayores prestaciones Se introduce el concepto de independencia de dispositivo. El usuario ya no tiene que referirse en sus programas a una unidad de cinta magntica o a una impresora en concreto. Se limita a especificar que quiere grabar un archivo determinado o imprimir unos resultados. El sistema operativo se encarga de asignarle, de forma dinmica, una unidad disponible, y de indicar al operador del sistema la unidad seleccionada, para que ste monte la cinta o el papel correspondiente. Comienzan los sistemas de tiempo compartido o timesharing. Estos sistemas, a los que 4 estamos muy acostumbrados en la actualidad, permiten que varios usuarios trabajen de forma interactiva o conversacional con la computadora desde terminales, que en aquellos das eran teletipos electromecnicos. El sistema operativo se encarga de repartir el tiempo de la UCP entre los distintos usuarios, asignando de forma rotativa pequeos intervalos de tiempo de UCP denominadas rodajas (time slice). En sistemas bien dimensionados, cada usuario tiene la impresin de que la computadora le atiende exclusivamente a l, respondiendo rpidamente a sus rdenes. Aparecen as los primeros planificadores. Aparecen, en esta poca, los primeros sistemas de tiempo real. Se trata de aplicaciones militares, en concreto para deteccin de ataques areos. En este caso, la computadora estn conectadas a un sistema externo y debe responder velozmente a las necesidades de ese sistema externo. En este tipo de sistemas las respuestas deben producirse en perodos de tiempo previamente especificados, que en la mayora de los casos son pequeos. Los primeros sistemas de este tipo se construan en ensamblador y ejecutaban sobre maquina desnuda, lo que haca de estas aplicaciones sistemas muy complejos. Finalmente, cabe mencionar que Burroughs introduce, en 1963, el Master Control Program, que adems de ser multiprograma y multiprocesador inclua memoria virtual y ayudas para depuracin en lenguaje fuente. Lnea de tiempo de los sistemas operativos aos sesenta

aparece la multiprogramacin para aprovechar el tiempo de las operaciones de E/S

aparece el concepto de independencia de dispositivo

Comienzan los sistemas de tiempo compartido o timesharing.

aparecen los primeros sistemas de tiempo real

Tercera generacin (aos setenta) La tercera generacin es la poca de los sistemas de propsito general y se Caracteriza por los sistemas operativos multimodo de operacin, esto es, capaces de operar en lotes, en multiprogramacin, en tiempo real, en tiempo compartido y en modo multiprocesador. Estos sistemas operativos fueron costossimos de realizar e interpusieron entre el usuario y el hardware una gruesa capa de software, de forma que ste slo vea esta capa, sin tenerse que preocupar de los detalles de la circuitera. Uno de los inconvenientes de estos sistemas operativos era su complejo lenguaje de control, que deban aprenderse los usuarios para preparar sus trabajos, puesto que era necesario especificar multitud de detalles y opciones. Otro de los inconvenientes era el gran consumo de recursos que ocasionaban, esto es, los grandes espacios de memoria principal y secundaria ocupados, as corno el tiempo de UCP consumido, que en algunos casos superaba el 50 por 100 del tiempo total. Esta dcada fue importante por la aparicin de dos sistemas que tuvieron una gran difusin, UNIX [Bach, 1986] y MVS [Samson,1990] de IBM De especial importancia fue UNIX, desarrollado en los laboratorios Bell para una PDP-7 en 1970. Pronto se transport a una PDP- 11, para lo cual se rescribi utilizando el lenguaje de programacin C. Esto fue algo muy importante en la historia de los sistemas operativos, ya que hasta la fecha ninguno se haba escrito utilizando un lenguaje de alto nivel, recurriendo para ello a los lenguajes ensambladores propios de cada arquitectura. Slo una pequea parte de UNIX, aquella que acceda de forma directa al hardware, sigue escribindose en ensamblador. La programacin de un sistema operativo utilizando un lenguaje de alto nivel como es C hace que un sistema operativo sea fcilmente transportable a una. Amplia gama de computadoras. En la actualidad, prcticamente todos los sistemas operativos se escriben en lenguajes de alto nivel, fundamentalmente en C. Lnea de tiempo de sistemas operativos aos setenta

los sistemas operativos multimodo de operacin, esto es, capaces de operar en lotes, en multiprogramacin, en tiempo real, en tiempo compartido y en modo multiprocesador

complejo lenguaje de control para preparar trabajos y gran consumo de recursos

surgen dos grandes sistemas operativos UNIX y MVS

Cuarta generacin (aos ochenta hasta la actualidad) La cuarta generacin se caracteriza por una evolucin de los sistemas operativos de propsito general de la tercera generacin, tendente a su especializacin, a su simplificacin y a dar ms importancia a la productividad de usuario que al rendimiento de la mquina. Adquiere cada vez ms importancia el tema de las redes de computadoras, tanto redes de largo alcance como locales. En concreto, la disminucin del coste del hardware hace que se difunda el proceso distribuido, en contra, de la tendencia centralizadora anterior. El proceso

distribuido consiste en disponer de varias computadoras, cada una situada en el lugar de trabajo de las personas que la emplean, en lugar de una nica central. Estas computadoras suelen estar unidas mediante una red, de forma que puedan compartir informacin y perifricos. Se difunde el concepto d mquina virtual, consistente en que una computadora X, incluyen do su sistema operativo, sea simulada por otra computadora Y. Su ventaja es que permite ejecutar. en la computadora Y, programas preparados para la computadora X, lo que posibilita el empleo de .software elaborado para la computadora X, sin necesidad de disponer de dicha. Computadora. Durante esta poca, los sistemas de bases de datos sustituyen a los archivos en multitud de aplicaciones. Estos sistemas se diferencian de un conjunto de archivos en que sus datos estn estructurados de tal forma que permiten acceder a la informacin de diversas maneras, evitar datos redundantes y mantener su integridad y coherencia. La difusin de las computadoras personales ha trado una humanizacin en los sistemas informticos. Aparecen los sistemas amistosos o ergonmicos, en los que se evita que el usuario tenga que aprenderse complejos lenguajes de control, sustituyndose stos por los sistemas dirigidos por men, en los que la seleccin puede incluso hacerse mediante un manejador de cursor. En estos sistemas, de orientacin monousuario, el objetivo primario del sistema operativo ya no es aumentar el rendimiento del sistema, sino la productividad del usuario En este sentido, la tendencia actual consiste en utilizar sistemas operativos multiprogramados sobre los que se aade un gestor de ventanas, lo que permite que el usuario tenga activas, en cada momento, tantas tareas como desee y que las distribuya a su antojo sobre la superficie del terminal Los sistemas operativos que dominaron el campo de las computadoras personales fueron UNIX, MS-DOS y los sucesores de Microsoft para este sistema: Windows 95/98, Windows NT y Windows 2000. La primera, versin de Windows NT (versin 3.1) apareci en 1993 e inclua la misma interfaz de usuario que Windows 3.1, En 1996 aparece la versin 4.0, que se caracteriz por la inclusin dentro del ejecutivo de Windows NT de diversos componentes grficos que ejecutaban anteriormente modo usuario. Durante el ao 2000, Microsoft distribuye la versin denominada Windows 2000. Tambin ha tenido importancia durante esta poca el desarrollo de Linux. Linux es un sistema operativo similar a UNIX, desarrollado de forma desinteresada durante la dcada de los noventa por miles de voluntarios conectados a Internet. Linux est creciendo fuertemente debido sobre todo a su bajo coste y a su gran estabilidad, comparable a cualquier otro sistema UNIX. Una de las principales caractersticas de Linux es que su cdigo fuente esta disponible, lo que le hace especialmente atractivo para el estudio de la estructura interna de sistema operativo. Su aparicin ha tenido tambin mucha importancia en el mercado del software ya que ha hecho que se difunda el concepto de software libre. Durante esta etapa se desarrollan tambin los sistemas operativos de tiempo real, encargados de ofrecer servicios especializados para el desarrollo de aplicaciones de tiempo real. Algunos ejemplos son: QNX [QNX, 1997], RTEMS y VRTX [ Ready, 1986]. A mediados de los ochenta aparecen los sistemas operativos distribuidos. Un sistema operativo distribuido es un sistema operativo comn utilizado en una serie de computadoras conectadas por una red, Este tipo de sistemas aparece al usuario como un nico sistema operativo centralizado, haciendo por tanto ms fcil el uso de una red de computadoras. Los sistemas operativos distribuidos han dejado de tener importancia y han evolucionado

durante la dcada de los noventa a lo que se conoce como middleware. Un middleware es una capa de software que se ejecuta sobre un sistema operativo ya existente y que se encarga de gestin un sistema distribuido. En este sentido, presenta las mismas funciones que un sistema operativo distribuido. En cuanto a las interfaces de programacin, durante esta etapa tiene importancia el desarrollo del estndar POSIX. Este estndar persigue que las distintas aplicaciones que hagan uso de los servicios de un sistema operativo sean potables sin ninguna dificultad a distintas plataformas con sistemas operativos diferentes. Cada vez es mayor el nmero de sistemas operativos que ofrecen esta interfaz. Otra de las interfaces de programacin mas utilizada es la interfaz Win32, interfaz de los sistemas operativos Windows 95/98, Windows NT y Windows 2000. Lnea de tiempo de sistemas operativos desde los aos ochenta hasta la actualidad

adquiere gran importancia en el tema de redes,

disminucin del costo del hardware.

aparece el proceso distribuido, el cual consiste en tener varias computadoras , situadas el el lugar de trabajo de las personas que las emplean unidas en red

se difunde el concepto de maquina virtual, consiste que una computadora sea simulada por otra computadora

los sistemas de base de datos sustituyen a los archivos

aparecen los sistemas amistosos los cuales evitan que el usuario aprenda complejos lenguajes de control

aparecen los computadoras personales UNIX, MSDOS, WINDOWS 95,98,NT Y 2000

FUENTE: LIBRO - SISTEMAS OPERATIVOS UNA VISIN APLICADA AUTOR: JESS CARRETERO PREZ, PEDRO DE MIGUEL ANASAGASTI

1.1.1 CLASIFICACIN DE SISTEMAS OPERATIVOS Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de diferentes maneras, dependiendo del uso o de la aplicacin que se les daba. A continuacin se mostrarn diversos tipos de Sistemas Operativos que existen en la actualidad, con algunas de sus caractersticas: Sistemas Operativos por lotes. Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interaccin entre los usuarios y los programas en ejecucin. Se renen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o ms trabajos como sucede en el procesamiento en serie. Estos sistemas son de los ms tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas. Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucin muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecucin de los trabajos. Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual est orientado a procesamiento cientfico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento acadmico. Sistemas Operativos de tiempo real. Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, estn subutilizados sus recursos con la finalidad de prestar atencin a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran nmero de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy especficas como control de trfico areo, bolsas de valores, control de refineras, control de laminadores. Tambin en el ramo automovilstico y de la electrnica de consumo, las aplicaciones de tiempo real estn creciendo muy rpidamente. Otros campos de aplicacin de los Sistemas Operativos de tiempo real son los siguientes:

Control de trenes. Telecomunicaciones. Sistemas de fabricacin integrada. Produccin y distribucin de energa elctrica. Control de edificios. Sistemas multimedia.

Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra.

Sistemas Operativos de multiprogramacin (o Sistemas Operativos de multitarea). Se distinguen por sus habilidades para poder soportar la ejecucin de dos o ms trabajos activos (que se estn ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al mximo su utilizacin. Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno est usando el procesador, o un procesador distinto, es decir, involucra mquinas con ms de una UCP. Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea. Las caractersticas de un Sistema Operativo de multiprogramacin o multitarea son las siguientes:

Mejora productividad del sistema y utilizacin de recursos. Multiplexa recursos entre varios programas. Generalmente soportan mltiples usuarios (multiusuarios). Proporcionan facilidades para mantener el entorno de usuarios individuales. Requieren validacin de usuario para seguridad y proteccin. Proporcionan contabilidad del uso de los recursos por parte de los usuarios. Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real. Sistemas multiprocesadores son sistemas multitareas por definicin ya que soportan la ejecucin simultnea de mltiples tareas sobre diferentes procesadores. En general, los sistemas de multiprogramacin se caracterizan por tener mltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifricos.

Sistemas Operativos de tiempo compartido. Permiten la simulacin de que el sistema y sus recursos son todos para cada usuarios. El usuario hace una peticin a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecer en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusin de que tiene el sistema dedicado para s mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administracin de memoria principal y secundaria. Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10. Caractersticas de los Sistemas Operativos de tiempo compartido:

Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseo asistido por computador, procesamiento de texto, etc. Dan la ilusin de que cada usuario tiene una mquina para s. Mayora utilizan algoritmo de reparto circular.

Programas se ejcutan con prioridad rotatoria que se incrementa con la espera y disminuye despus de concedido el servicio. Evitan monopolizacin del sistema asignando tiempos de procesador (time slot). Gestin de memoria proporciona proteccin a programas residentes. Gestin de archivo debe proporcionar proteccin y control de acceso debido a que pueden existir mltiples usuarios acezando a un mismo archivo.

Sistemas Operativos distribuidos. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores est en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de remplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Caractersticas de los Sistemas Operativos distribuidos:

Coleccin de sistemas autnomos capaces de comunicacin y cooperacin mediante interconexiones hardware y software . Gobierna operacin de un S.C. y proporciona abstraccin de mquina virtual a los usuarios. Objetivo clave es la transparencia. Generalmente proporcionan medios para la comparticin global de recursos. Servicios aadidos: denominacin global, sistemas de archivos distribuidos, facilidades para distribucin de clculos (a travs de comunicacin de procesos internodos, llamadas a procedimientos remotos, etc.).

Sistemas Operativos de red. Son aquellos sistemas que mantienen a dos o ms computadoras unidas a travs de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacin del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red ms ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Sistemas Operativos paralelos. En estos tipos de Sistemas Operativos se pretende que cuando existan dos o ms procesos que compitan por algn recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe tambin la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). As, en lugar de esperar a que el proceso termine de ejecutarse (como lo hara normalmente), regresa a atender al usuario inmediatamente despus de haber creado el proceso. Ejemplos de estos tipos de Sistemas Operativos estn: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM. FUENTE: http://www.monografias.com/trabajos5/sisop/sisop.shtml 1.1.2 ESTRUCTURA BSICA DE UN SISTEMA OPERATIVO A) CARGADOR Cualquier programa que requiere ser ejecutado en la computadora, deber ser transferido desde su lugar de residencia a la memoria principal. B) CARGADOR PARA EL SISTEMA OPERATIVO Este programa se encarga de transferir desde algn medio de almacenamiento externo (disco, cinta o tambor) a la memoria principal, los programas del sistema operativo que tienen como finalidad establecer el ambiente de trabajo del equipo de cmputo. Existe un programa especial almacenado en memoria ROM que se encarga de acceso a este programa cargador. Cuando el sistema operativo esta cargado en memoria toma el control absoluto de las operaciones del sistema. C) CARGADOR INCLUIDO EN EL SISTEMA OPERATIVO Su funcin es cargar a memoria todos los archivos necesarios para la ejecucin de un proceso. SUPERVISOR (EJECUTIVO O MONITOR) Es el administrador del sistema que controla todo el proceso de la informacin por medio de un gran nmero de rutinas que entran en accin cuando son requeridos. Funge como enlace entre los programas del usuario y todas las rutinas que controlan los recursos requeridos por el programa para posteriormente continuar con su ejecucin.

El supervisor tambin realiza otras funciones como son: - Administra la memoria. - Administracin de las rutinas que controlan el funcionamiento de los recursos de la computadora. - Manejo de Archivos - Administracin y control de la ejecucin de los programas. LENGUAJE DE COMUNICACIN Es el medio a travs del cual el usuario interacta directamente con el sistema operativo y esta formado por comandos que son introducidos a travs de algn dispositivo. Generalmente un comando consta de dos partes, la primera formada por una palabra que identifica el comando y la accin a realizar y la segunda parte por un conjunto de valores o parmetros que permiten seleccionar diversas operaciones de entre los que dispone el comando. UTILERA DE SISTEMA Son programas o rutinas del sistema operativo que realizan diversas funciones de uso comn o aplicacin frecuente como son: clasificar, copiar e imprimir informacin. Fuente: http://www.mflor.mx/materias/comp/cursoso/sisope1.htm 1.1.3 NCLEO DE UN SISTEMA OPERATIVO (KERNEL) El Kernel consiste en la parte principal del cdigo del sistema operativo, el cual se encargan de controlar y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos, este se divide en 5 capas. Nivel 1. Gestin de Memoria: que proporciona las facilidades de bajo nivel para la gestin de memoria secundaria necesaria para la ejecucin de procesos. Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno de los procesos, creando interrupciones de hardware cuando no son respetadas. Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por procesos. Nivel 4. Informacin o Aplicacin o Interprete de Lenguajes: Facilita la comunicacin con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las

aplicaciones. Cuando se solicitan ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes. Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y manipulacin de archivos con nombre, va asignando espacio y acceso de datos en memoria.

FUENTE: http://www.itver.edu.mx/so1/sistemas_operativos.htm UNIDAD 2 2.2 administracin del proceso y del administrador 2.2.1 proceso Todos los programas, cuya ejecucin solicitan los usuarios, se ejecutan en forma de procesos, de ah la importancia para el informtico de conocerlos en detalle. El proceso se puede definir como un programa en ejecucin y, de una forma un poco ms precisa, como la unidad de procesamiento gestionada por el sistema operativo. Para que un programa pueda ser ejecutado ha de residir con sus datos en memoria principal. Observe que durante su ejecucin el proceso va modificando los registros del modelo de programacin de la computadora, de acuerdo a las instrucciones de mquina involucradas.

El sistema operativo mantiene por cada proceso una serie de estructuras de informacin que permiten identificar las caractersticas de ste, as como los recursos que tiene asignados. En esta ltima categora entran los descriptores de los segmentos de memoria asignados, los descriptores de los archivos abiertos, los descriptores de lospuertos de comunicaciones, etc. Una parte muy importante de estas informaciones se encuentra en el llamado bloque de control del proceso (BCP). El sistema operativo mantiene una tabla de procesos con todos los BCP de los procesos. Por razones de eficiencia, la tabla de procesos se construye normalmente como una estructura esttica, que tiene un determinado nmero de BCP, todos ellos del mismo tamao. El contenido del BCP se analizar con ms detalle en secciones posteriores; sin embargo, de manera introductoria se puede decir que la informacin que compone un proceso es la siguiente: Contenido de los segmentos de memoria en los que residen el cdigo y los datos del proceso. A esta informacin se le denomina imagen de memoria o core image. Contenido de los registros del modelo de programacin. Contenido del BCP. Es de destacar que el proceso no incluye informacin de E/S, puesto que sta suele estar reservada al sistema operativo. FUENTE: LIBRO - SISTEMAS OPERATIVOS UNA VISIN APLICADA AUTOR: JESS CARRETERO PREZ, PEDRO DE MIGUEL ANASAGASTI 2.2.2 Estado de los procesos Un proceso puede estar en varias situaciones (procesamiento, listo para ejecutar y espera), que denominaremos estados. Se diferencian, por tanto, tres estados bsicos en los que puede estar un proceso, estados que detallamos seguidamente: Ejecucin. En este estado est el proceso que est siendo ejecutado por el procesador, es decir, que est en fase de procesamiento. En esta fase el estado del proceso reside en los registros del procesador. Bloqueado. Un proceso bloqueado est esperando a que ocurra un evento y no puede seguir ejecutando hasta que suceda el evento. Una situacin tpica de proceso bloqueado se produce cuando el proceso solicita una operacin de E/S. Hasta que no termina esta operacin, el proceso queda bloqueado. En esta fase, el estado del proceso reside en el BCP. Listo. Un proceso est listo para ejecutar cuando puede entrar en fase de procesamiento. Dado que puede haber varios procesos en este estado, una de las tareas del sistema operativo ser seleccionar aquel que debe pasar a ejecucin. El mdulo del sistema operativo que toma esta decisin se denomina planificador. En esta fase, el estado del proceso reside en el BCP.

La Figura presenta estos tres estados, indicando algunas de las posibles transiciones entre ellos. Puede observarse que slo hay un proceso en estado de ejecucin, puesto que el procesador solamente ejecuta un programa en cada instante.

FUENTE: LIBRO - SISTEMAS OPERATIVOS UNA VISIN APLICADA AUTOR: JESS CARRETERO PREZ, PEDRO DE MIGUEL ANASAGASTI 2.2.2.1 Estados suspendidos Adems de los tres estados bsicos de ejecucin, listo y bloqueado, los procesos pueden estar en los estados de espera y de suspendido. El diagrama de estados completo de un proceso se representa en la siguiente Figura. Los procesos entran en el sistema porque lo solicita un proceso de usuario o porque est prevista su ejecucin hatch. Es frecuente tener una lista de procesos batch en espera para ser ejecutados cuando se pueda. El sistema operativo ha de ir analizando dicha lista para lanzar la ejecucin de los procesos a medida que disponga de los recursos necesarios. Los procesos salen del sistema cuando mueren, es decir, al ejecutar el servicio correspondiente o al producir algn error irrecuperable.

FUENTE: LIBRO - SISTEMAS OPERATIVOS UNA VISIN APLICADA AUTOR: JESS CARRETERO PREZ, PEDRO DE MIGUEL ANASAGASTI 2.2.3 procesos ligeros (hilos o hebras) Un proceso ligero, o thread, es un programa en ejecucin (flujo de ejecucin) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros. Como muestra la siguiente figura, un proceso puede contener un solo flujo de ejecucin, como ocurre en los procesos clsicos, o ms de un flujo de ejecucin (procesos ligeros).

Desde el punto de vista de la programacin, un proceso ligero se define corno una funcin cuya ejecucin se puede lanzar en paralelo con otras. El hilo de ejecucin primario, o proceso ligero primario, corresponde a la funcin main. Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. Las informaciones propias se refieren fundamentalmente al contexto de ejecucin, pudindose destacar las siguientes: Contador de programa. Pila. Registros. Estado del proceso ligero (ejecutando, listo o bloqueado). Todos los procesos ligeros de un mismo proceso comparten la informacin del mismo. En concreto, comparten: Espacio de memoria.

Variables globales. Archivos abiertos. Procesos hijos. Temporizadores. Seales y semforos. Contabilidad. Es importante destacar que todos los procesos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, que incluye el cdigo, los datos y las pilas de los diferentes procesos ligeros. Esto hace que no exista proteccin de memoria entre los procesos ligeros de un mismo proceso, algo que s ocurre con los procesos convencionales. FUENTE: LIBRO - SISTEMAS OPERATIVOS UNA VISIN APLICADA AUTOR: JESS CARRETERO PREZ, PEDRO DE MIGUEL ANASAGASTI 2.2.4 concurrencia y secuencialidad La concurrencia es el punto clave de los tres campos anteriores y fundamentales para el diseo de sistemas operativos. La concurrencia comprende un gran nmero de cuestiones de diseo, incluyendo la comunicacin entre procesos, comparticin y competencia por los recursos, sincronizacin de la ejecucin de varios procesos y asignacin del tiempo de procesador a los procesos.. La concurrencia puede presentarse en tres contextos diferentes: Varias aplicaciones: La multiprogramacin se cre para permitir que el tiempo de procesador de la mquina fuese compartido dinmicamente entre varios trabajos o aplicaciones activas. Aplicaciones estructuradas: Como ampliacin de los principios del diseo modular y la programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. Estructura del sistema operativo: Las mismas ventajas de estructuracin son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos estn implementados como un conjunto de procesos.

Los procesos de distintas listas compiten por ser atendidos por el procesador lo cual ocasiona la concurrencia, el procesador los ordena para poder atenderlos, lo cual les da una secuencia. Fuente: http://es.scribd.com/doc/50620571/13/Concurrencia-y-secuenciabilidad

2.2.5 seccin critica La exclusin mutua debe ponerse en prctica slo cuando los procesos obtienen acceso a datos compartidos modificables; cuando los procesos realizan operaciones que no entran en conflicto con otras, deben permitirse que procedan concurrentemente. Cuando un proceso obtiene acceso a datos compartidos modificables, se dice que se encuentra en una seccin crtica. Es evidente que, para evitar la clase de problemas observados en la seccin anterior, debe asegurarse que cuando un proceso se encuentre en una seccin crtica, los dems procesos (o al menos los que tengan acceso a los datos compartidos) no pueden entrar a sus propias secciones crticas. Mientras un proceso se encuentra en su seccin crtica, otros procesos pueden, claro est, seguir ejecutndose fuera de sus secciones crticas. Cuando un proceso abandona su regin crtica, otro proceso que espera entrar en su propia seccin crtica (si existe algn proceso en espera). Lograr que se cumpla la exclusin mutua es uno de los problemas fundamentales de la programacin concurrente. Se han propuesto muchas soluciones, algunas de software y otras de hardware, algunas sencillas y otras complejas, y algunas que requieren la cooperacin voluntaria de los procesos y otras que exigen un escrito ajuste a rgidos protocolos. Encontrarse dentro de una regin crtica es un estado especial concedido a un proceso. El proceso tiene acceso exclusivo a los datos compartidos y los dems procesos que requieran acceso a los datos en ese momento deben esperar. As pues, las secciones crticas deben ejecutarse tan rpido como sea posible; un proceso no se debe bloquear dentro de su propia seccin crtica y las secciones crticas deben codificarse con mucho cuidado (para evitar, por ejemplo, la posibilidad de ciclos infinitos).Si un proceso de una seccin crtica termina, ya sea voluntaria o involuntariamente, el sistema operativo, al realizar su mantenimiento de terminaciones, debe liberar la exclusin mutua de manera que otros procesos puedan entrar en sus regiones crticas. Fuente:http://blogs.utpl.edu.ec/sistemasoperativos/2009/05/04/sincronizacion-de-procesos8/ 2.2.6 sincronizacin de procesos Un proceso es cooperativo si puede afectar o ser afectado por los otros procesos que se estn ejecutando en el sistema. La cooperacin entre procesos requiere: la ejecucin concurrente de los mismos, mecanismos de comunicacin y mecanismos de sincronizacin Al haber procesos concurrentes se deben emplear mecanismos para asegurar la consistencia de los datos. Como ejemplo, supongamos que tenemos 3 procesos concurrentes que quieren modificar un mismo archivo. Si los 3 acceden a este al mismo tiempo el archivo quedar con valores incorrectos. Para resolver problemas como este se ide la seccin crtica, que es el segmento de cdigo que accede a los recursos. Slo puede haber una seccin crtica en ejecucin por vez, as nos aseguramos que los datos quedan consistentes.

La seccin crtica El problema de la seccin crtica consiste en disear un protocolo que los procesos puedan usar para cooperar de esta forma. Cualquier solucin al problema de la seccin crtica deber satisfacer los tres requisitos siguiente: Exclusin mutua.- Si el proceso Pi est ejecutndose en su seccin crtica, los dems procesos no pueden estar ejecutando sus secciones crticas. Progreso.- Si ningn proceso est ejecutando su seccin crtica, y algunos procesos desean entrar en sus correspondientes secciones crticas, slo aquellos procesos que no estn ejecutando sus secciones restantes pueden participar en la decisin de cul ser el siguiente que entre en su seccin crtica, y esta seleccin no se puede posponer indefinidamente. Espera limitada.- Existe un lmite en el nmero de veces que se permite que otros procesos entren en sus secciones crticas despus de que un proceso haya hecho una solicitud para entrar en su seccin crtica y antes de que la misma haya sido concedida. Se usan dos mtodos generales para gestionar las secciones crticas en los sistemas operativos: 1. Kernels apropiativos.- Permite que un proceso sea desalojado mientras se est ejecutando en modo kernel. 2. Kernels no apropiativos.- No apropiativo no permite que un proceso que se est ejecutando en modo kernel sea desalojado. Fuente:http://blogs.utpl.edu.ec/sistemasoperativos/2009/05/04/sincronizacion-de-procesos8/ 2.2.7 semforos Los semforos son una solucin, del tipo soporte al sistema operativo para garantizar la exclusin mutua. Un semforo es una estructura diseada para sincronizar dos o m s t h r e a d s o p r o c e s o s , de modo que su ejecucin se realice de forma ordenada y sin conflictos entre ellos. Un semforo nos sirve para poder permitir o restringir a los procesos o hilos el acceso a algn recurso compartido. Un semforo bsico es una estructura formada por una posicin de memoria y dos instrucciones, una para reservarlo y otra para liberarlo. A esto se le puede aadir una cola de threads para recordar el orden en que se hicieron las peticiones.

Operaciones Bsicas Los semforos cuentan con operaciones bsicas, una de ellas es para reservarlo y la otra para liberarlo, wait(espera) y signal(seal) respectivamente, equivalente down y up. Existe una tercera operacin que consiste en inicializar el semforo. Existen algunos semforos que manejan una cola de espera. Wait, Down Espera Decrementa en una unidad el semforo Bloquea hilo/proceso si el semforo es menor que cero, sino entonces permite a hilo/proceso continuar Llamada W(semforo) o down(semforo) Signal, Up Seal Incrementa semforo en uno y si hay algn proceso/hebra esperando lo despierta Existe un valor mximo para incrementar el semforo, este no se va a infinito Llamada S(semforo) o up(semforo) Inicializador Los semforos pueden ser de 2 tipos: Binarios o Generales(Contadores). La operacin de inicializador definir si el semforo ser binario o no, es decir, si se inicializa con 1, el semforo ser binario ya que solo podr manejar un recurso compartido, en caso de tener N recursos compartidos se inicializara con N. Si tenemos N procesos inicializamos un semforo para que solo N procesos acceda a un recurso compartido. Semforos con manejo de cola Existen semforos que tienen la operacin de manejar una cola del tipo FIFO (PEPS) para llevar el control de los procesos que estn solicitando los recursos, as cuando se liberen los recursos estos puedan asignarle dicho recurso al primer proceso que lo solicito. Desventajas No se puede imponer el uso correcto de los Down y Up No existe una asociacin entre el semforo y el recurso Entre Down y Up el usuario puede realizar cualquier operacin con el recurso. Fuente: http://es.scribd.com/doc/15256170/Semaforos-Concurrencia
2.2.8 exclusin mutua

Consiste en que un solo proceso excluye temporalmente a todos los dems para usar un recurso compartido de forma que garantice la integridad del sistema. Fuente: http://www.webprogramacion.com/44/sistemas-operativos/exclusion-mutua.aspx

2.2.9 monitores

Un monitor es una estructura formada por una cabecera que los identifica, un conjunto de variables globales a todos los procedimientos del monitor, un conjunto de procedimientos y un bloque de inicializacin, el cual se ejecuta una nica vez, cuando se crea el monitor.
{ { { { { { Inicializacin (solo se ejecuta una vez) nombre variables globales accesibles desde todos los procedimientos Procedimiento A procedimiento B

El recurso que queremos compartir (S.C.) se declara como monitor y en l se incluyen todas las operaciones que afecten a dicho recurso. Los procesos que usan el monitor se sitan de forma independiente y cuando deseen usar el recurso, llamarn al procedimiento del monitor que implemente la operacin que desea ejecutar. Para resolver la sincronizacin se utilizan dos instrucciones, wait (bloquea siempre) y signal, y actan sobre variables condicin que son colas y adems no tienen valor.

cwait (c): suspende la ejecucin del proceso que llama bajo la condicin c. El monitor est ahora disponible para ser usado por otros procesos. csignal(c): reanuda la ejecucin de algn proceso suspendido despus de un cwait bajo la misma condicin. Si hay varios procesos, se elige uno de ellos; si no hay ninguno, no hace nada.

Las colas son un tipo de variables que son el lugar donde almacenaremos los procesos que hayan quedado suspendidos bajo un .wait. y estn a la espera de ser "despertados". En el caso de que dentro de un monitor un proceso se quede bloqueado con un wait por lo cual se bloquea y no dejara ejecutarse a otro proceso, el SO despierta a otro proceso cuya ltima instruccin haya sido un signal y adems vale la condicin que hace que se bloqueen los procesos. Habr algunos casos en los que nos apoyemos en una variable booleana para garantizar la exclusin mutua sobre una variable con una sola instancia. Tambin habr casos en los que utilicemos un contador. Fuente: http://www.webprogramacion.com/44/sistemas-operativos/exclusion-mutua.aspx

2.2.10 planificacin El objetivo de la planificacin de procesos y procesos ligeros es el reparto del tiempo de procesador entre los procesos que pueden ejecutar. El planificador es el mdulo del sistema operativo que realiza la funcin de seleccionar el proceso en estado de listo que pasa a estado de ejecucin, mientras que el activador es el mdulo que pone en ejecucin el proceso planificado. Fuente: LIBRO - SISTEMAS OPERATIVOS UNA VISIN APLICADA AUTOR: JESS CARRETERO PREZ, PEDRO DE MIGUEL ANASAGASTI 2.2.10.1 niveles de la planificacin Los sistemas pueden incluir varios niveles de planificacin de procesos. La Figura muestra el caso de tres niveles: corto, medio y largo plazo.

La planificacin a largo plazo tiene por objetivo aadir nuevos procesos al sistema, tomndolos de la lista de espera. Estos procesos son procesos de tipo batch, en los que no importa el instante preciso en el que se ejecuten (siempre que se cumplan ciertos lmites de espera). La planificacin a medio plazo trata la suspensin de procesos. Es la que decide qu procesos pasan a suspendido y cules dejan de estar suspendidos. Aade o elimina procesos de memoria principal modificando, por tanto, el grado de multiprogramacin. La planificacin a corto plazo se encarga de seleccionar el proceso en estado de listo que pasa a estado de ejecucin. Es, por tanto, la que asigna el procesador.

Tambin es importante la planificacin de entrada/salida. Esta planificacin decide el orden en que se ejecutan las operaciones de entrada/salida que estn encoladas para cada perifrico. Fuente: LIBRO - SISTEMAS OPERATIVOS UNA VISIN APLICADA AUTOR: JESS CARRETERO PREZ, PEDRO DE MIGUEL ANASAGASTI

2.2.10.2 objetivos El objetivo de la planificacin es optimizar el comportamiento del sistema. Ahora bien, el comportamiento de un sistema informtico es muy complejo, por tanto, el objetivo de la planificacin se deber centrar en la faceta del comportamiento en el que se est interesado. Entre los objetivos que se suelen perseguir estn los siguientes: Reparto equitativo del procesador. Eficiencia (optimizar el uso del procesador). Menor tiempo de respuesta en uso interactivo. Menor tiempo de espera en lotes (batch). Mayor nmero de trabajos por unidad de tiempo (batch). Cumplir los plazos de ejecucin de un sistema de tiempo real. La mayora de estos objetivos son incompatibles entre s, por lo que hay que centrar la atencin en aquel que sea de mayor inters. Por ejemplo, una planificacin que realice un reparto equitativo del procesador no conseguir optimizar el uso del mismo. Hay que observar que algunos objetivos estn dirigidos a procesos interactivos, mientras que otros lo estn a procesos batch. Fuente: LIBRO - SISTEMAS OPERATIVOS UNA VISIN APLICADA AUTOR: JESS CARRETERO PREZ, PEDRO DE MIGUEL ANASAGASTI

2.2.11 tcnicas de administracin del planificador 2.2.11.1 algoritmos de planificacin En esta seccin se presentan los algoritmos de planificacin ms usuales. Cclica o Round-robin El algoritmo cclico est diseado para hacer un reparto equitativo del tiempo del procesador, por lo que est especialmente destinado a los sistemas de tiempo compartido. El algoritmo se basa en el concepto de rodaja (slot) de tiempo. Los procesos estn organizados en forma de cola circular, eligindose para su ejecucin el proceso cabecera de la cola. Un proceso permanecer en ejecucin hasta que ocurra una de las dos condiciones siguientes: El proceso pasa a estado de bloqueado, porque solicita un servicio del sistema operativo. El proceso consume su rodaja de tiempo, es decir, lleva ejecutando el tiempo estipulado de rodaja.

Un proceso que ha consumido su rodaja de tiempo es expulsado y pasa a ocupar el ltimo lugar en la cola. De esta forma, se consigue que todos los procesos pasen a ejecutar, repartiendo el tiempo del procesador de forma homognea entre ellos. La Figura 3.25 muestra cmo el proceso 5, al consumir su rodaja de tiempo, pasa al final de la cola.

Segn se construya el planificador, los procesos que pasan de bloqueados a listos se pueden incluir como primero o como ltimo de la cola. FIFO En este caso, la cola de procesos en estado de listo est ordenada de acuerdo al instante en que los procesos pasan al estado de listo. Los que llevan ms tiempo esperando estn ms cerca de la cabecera. El algoritmo es sencillo, puesto que consiste en tomar para ejecutar al proceso de la cabecera de la cola. No se plantea expulsin, por lo que el proceso ejecuta hasta que realiza una llamada bloqueante al sistema operativo. Es aplicable a los sistemas batch, pero no a los interactivos.

Prioridades En el algoritmo de prioridades se selecciona para ejecutar el proceso en estado de listo que tenga la mxima prioridad. Cuando las prioridades son fijas puede surgir el problema de la inanicin, que implica que un proceso puede estar esperando indefinidamente sin llegar a ejecutar. Esto ocurrir si van apareciendo siempre procesos de mayor prioridad que estn en estado de listo. Para evitar este problema, se puede aadir un mecanismo de envejecimiento, que se encargue dc aumentar la prioridad a los procesos que lleven un determinado tiempo esperando a ser ejecutados. Por ejemplo, suponiendo que la mayor prioridad es la 0, un proceso de prioridad 22 que lleve ms de X ms esperando en estado de listo pasara a prioridad 21, si pasados otros X ms siguiese sin ejecutar pasara a prioridad 20 y as sucesivamente. Una vez que haya ejecutado volver a tomar su prioridad normal de 22. Dado que puede haber varios procesos listos con el mismo nivel de prioridad, es necesario utilizar otro algoritmo para decidir entre ellos. Se podra utilizar, por ejemplo, un cclico, si el sistema es interactivo o un FIFO si es hatch. Los algoritmos basados en prioridades suelen ser con expulsin. Primero el trabajo ms corto Este algoritmo exige conocer a priori el tiempo de ejecucin de los procesos, por lo que es aplicable a trabajos batch repetitivos cuyo comportamiento se tenga analizado. El algoritmo consiste en seleccionar para ejecucin al proceso listo con menor tiempo de ejecucin. No se plantea expulsin, por lo que el proceso sigue ejecutndose mientras lo desee. La ventaja de este algoritmo es que produce el menor tiempo de respuesta, pero a costa de penalizar los trabajos de mayor tiempo de ejecucin. Tambin puede sufrir de inanicin, puesto que, en el caso de que estn continuamente apareciendo procesos con tiempo de ejecucin pequeo, un proceso largo puede no llegar a ejecutar. Aleatorio o lotera Este algoritmo consiste en elegir al azar el proceso a ejecutar. Se puede basar en un generador de nmeros pseudoaleatorios. Planificacin de sistemas de tiempo real Los sistemas de tiempo real se caracterizan porque los procesos tienen que ejecutar en instantes predeterminados. Se pueden diferenciar dos tipos de procesos de tiempo real: a plazo fijo y peridico. La diferencia estriba en que los de plazo fijo tienen que ejecutar una vez, en un instante determinado, mientras que los peridicos deben ejecutar de forma repetitiva cada cierto tiempo. Como muestra la Figura, se asocia a cada proceso el instante en el que debe ejecutar. Los procesos que no han alcanzado su tiempo de ejecucin estn en una cola de espera, mientras que los que han alcanzado el tiempo de ejecucin pasan a las colas de listo para ejecutar. La planificacin consiste en seleccionar de entre estos ltimos el proceso a ejecutar.

La planificacin de tiempo real est basada en el reloj de tiempo de la computadora y su objetivo es conseguir que no se retrase la ejecucin de los procesos. En los denominados sistemas de tiempo real crticos, los procesos tienen asignada una franja de tiempo en la cual deben ejecutar y. en ningn caso, se ha de rebasar el tiempo mximo sin que el proceso complete su ejecucin.

Los sistemas de tiempo real se suelen disear de forma que estn bastante descargados, es decir, que tengan pocos procesos en estado de listo. De esta forma se consigue que no se retrase la ejecucin de los mismos. Adems, se evitan los mecanismos que introducen retardos en la ejecucin, como puede ser la memoria virtual, puesto que la paginacin puede introducir retardos inadmisibles en la ejecucin. Fuente: LIBRO - SISTEMAS OPERATIVOS UNA VISIN APLICAD AUTOR: JESS CARRETERO PREZ, PEDRO DE MIGUEL ANASAGASTI

Вам также может понравиться