Sie sind auf Seite 1von 12

CENTRO UNIVERSITARIO JUSTO SIERRA

LICENCIATURA EN INFORMTICA

INTRODUCCIN A LA INFORMTICA
(UNIDAD I SOFTWARE DE SISTEMAS) 3er cuatrimestre

PRESENTA: ADALBERTO ARAUJO AGUILAR PROFESOR LIC. RODOLFO ARAZ PINEDA

Acapulco Gro., 21 mayo de 2011.

UNIDAD I SOFTWARE DE SISTEMAS

Pgina 1

UNIDAD I

SOFTWARE DE SISTEMAS

1.2.3.4.5.6.-

HISTORIA Y EVOLUCIN DE LOS SISTEMAS OPERATIVOS. HARDWARE, SOFTWARE Y FIRMWARE. ESTRUCTURA DE UN SISTEMA OPERATIVO. DEFINICIN DE PROCESO. FUNCIONES Y POLTICAS DE LOS SISTEMAS OPERATIVOS. PLANEACINDE TRABAJOS MULTIPROGRAMADOS Y NO MULTIPROGRAMADOS.

7.8.9.10.11.12.-

ESTADOS EN PROCESO. TRANSICIONES DE ESTADO DE UN PROCESO. BLOQUE DE CONTROL DE UN PROCESO. SECCIONES CRTICAS. SEMFOROS Y MONITORES. PROCESAMIENTOS DE INTERRUPTORES DEAD LOCK.

UNIDAD I SOFTWARE DE SISTEMAS

Pgina 2

6.-

PLANEACION DE TRABAJOS MULTIPROGRAMADOS Y NO MULTIPROGRAMADOS.


DEFINICIN DE MULTIPROGRAMACION Es la tcnica que permite que dos o mas

programas ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo. As por ejemplo mientras se ejecutan operaciones de entrada y salida de un programa, la unidad central de proceso puede ocuparse en realizar operaciones distintas de las de E/S pertenecientes a otros programas. La multiprogramacin se refiere a dos o mas programas corriendo o procesndose al mismo tiempo; La multiprogramacin se controla a travs del sistema operativo, el cual observa los programas y los vigila hasta que estn concluidos. El numero de programas que pueden multiprogramarse en forma efectiva, depende de una combinacin de la cantidad de memoria, de la velocidad de la CPU y del numero y velocidad de los recursos perifricos que tenga conectados, as como de la eficiencia del SISTEMA OPERATIVO.
DEFINICIN DE MULTIPROGRAMACION Ejecucin de mltiples tareas compartiendo

los recursos de una misma computadora. Se trata de una evolucin del procesamiento por lotes. Dentro de la multiprogramacin se encuentra el concepto de tiempo compartido, en donde cada usuario tiene acceso a una nica computadora a travs de terminales. La computadora central se simula ejecutar en simultneo las tareas de cada usuario.
DEFINICIN DE PROCESAMIENTO POR LOTES (batch processing). Forma de operacin

de las primeras computadoras que slo eran capaces de ejecutar un trabajo o tarea por vez (procesamiento de datos por grupos o lotes). Se trataba de una forma muy ineficiente del uso de una computadora. Evolucion a lo que se conoce como multiprogramacin, en donde mltiples tareas comparten los recursos de una computadora.

6.1 Niveles de Planificacin


La planificacin de la CPU, en el sentido de conmutarla entre los distintos procesos, es una de las funciones del sistema operativo. Este despacho es llevado a cabo por un pequeo programa llamado planificador a corto plazo o dispatcher (despachador). La misin del dispatcher consiste en asignar la CPU a uno de los procesos ejecutables del sistema, para ello sigue un determinado algoritmo. En secciones posteriores estudiaremos algunos algoritmos posibles. Para que el dispatcher conmute el procesador entre dos procesos es necesario realizar un cambio de proceso.
UNIDAD I SOFTWARE DE SISTEMAS

Pgina 3

Los acontecimientos que pueden provocar la llamada al dispatcher dependen del s istema (son un subconjunto de las interrupciones), pero son alguno de estos: El proceso en ejecucin acaba su ejecucin o no puede seguir ejecutndose (por una E/S, operacin WAIT, etc). Un elemento del sistema operativo ordena el bloqueo del proceso en ejecucin (ver estados de un proceso). El proceso en ejecucin agota su cuantum o cuanto de estancia en la CPU. Un proceso pasa a estado listo. Hay que destacar el hecho de que cuanto menos se llame al dispatcher menos tiempo ocupa la CPU un programa del sistema operativo, y, por tanto, se dedica ms tiempo a los procesos del usuario (un cambio de proceso lleva bastante tiempo). As, si slo se activa el dispatcher como consecuencia de los 2 primeros acontecimientos se estar haciendo un buen uso del procesador. Este criterio es acertado en sistemas por lotes en los que los programas no son interactivos. Sin embargo, en un sistema de tiempo compartido no es adecuado, pues un proceso que se dedicara a realizar clculos, y no realizara E/S, monopolizara el uso de la CPU. En estos sistemas hay que tener en cuenta el conjunto de todos los procesos, activndose el dispatcher con la circunstancia tercera y, posiblemente, la cuarta. Los sistema operativos en que las dos siguientes circunstancias no provocan la activacin del dispatcher muestran preferencia por el proceso en ejecucin, si no ocurre esto se tiene ms en cuenta el conjunto de todos los procesos.

UNIDAD I SOFTWARE DE SISTEMAS

Pgina 4

Se puede definir el scheduling -algunas veces traducido como -planificacin- como el conjunto de polticas y mecanismos construidos dentro del sistema operativo que gobiernan la forma de conseguir que los procesos a ejecutar lleguen a ejecutarse. El scheduling est asociado a las cuestiones de: Cundo introducir un nuevo proceso en el Sistema. Determinar el orden de ejecucin de los procesos del sistema. El scheduling est muy relacionado con la gestin de los recursos. Existen tres niveles de scheduling, como se ilustra en la figura 1.1, estos niveles son: Planificador de la CPU o a corto plazo. Planificador a medio plazo. Planificador a largo plazo.

UNIDAD I SOFTWARE DE SISTEMAS

Pgina 5

Ya hemos hablado del planificador de la CPU, y en los subapartados posteriores se comentan los dos restantes:

6.1.1 Planificacin a largo plazo


Este planificador est presente en algunos sistemas que admiten adems de procesos interactivos trabajos por lotes. Usualmente , se les asigna una prioridad baja a los trabajos por lotes, utilizndose estos para mantener ocupados a los recursos del sistema durante perodos de baja actividad de los procesos interactivos. Normalmente, los trabajos por lotes realizan tareas rutinarias como el clculo de nminas; en este tipo de tareas el programador puede estimar su gasto en recursos, indicndoselo al sistema. Esto facilita el funcionamiento del planificador a largo plazo. El objetivo primordial del planificador a largo plazo es el de dar al planificador de la CPU una mezcla equilibrada de trabajos, tales como los limitados por la CPU (utilizan mucho la CPU) o la E/S. As, por ejemplo, cuando la utilizacin de la CPU es baja, el planificador puede admitir ms trabajos para aumentar el nmero de procesos listos y, con ello, la probabilidad de tener algn trabajo til en espera de que se le asigne la CPU. A la inversa, cuando la utilizacin de la CPU llega a ser alta, y el tiempo de respuesta comienza a reflejarlo, el planificador a largo plazo puede optar por reducir la frecuencia de admisin de trabajos. Normalmente, se invoca al planificador a largo plazo siempre que un proceso termina. La frecuencia de invocacin depende, pues, de la carga del sistema, pero generalmente es mucho menor que la de los otros dos planificadores. Esta baja frecuencia de uso hace que este planificador pueda permitirse utilizar algoritmos complejos, basados en las estimaciones de los nuevos trabajos.

6.1.2 Planificacin a Medio Plazo


En los sistemas de multiprogramacin y tiempo compartido varios procesos residen en la memoria principal. El tamao limitado de sta hace que el nmero de procesos que residen en ella sea finito. Puede ocurrir que todos los procesos en memoria estn bloqueados, desperdicindose as la CPU. En algunos sistemas se intercambian procesos enteros (swap) entre memoria principal y memoria secundaria (normalmente discos), con esto se aumenta el nmero de procesos, y, por tanto, la probabilidad de una mayor utilizacin de la CPU. El planificador a medio plazo es el encargado de regir las transiciones de procesos entre memoria principal y secundaria, acta intentando maximizar la utilizacin de los recursos. Por ejemplo, transfiriendo siempre a memoria secundaria procesos bloqueados, o transfiriendo a memoria principal procesos bloqueados nicamente por no tener memoria.

Multiprogramacin y tiempo compartido


UNIDAD I SOFTWARE DE SISTEMAS

Pgina 6

La mayora de los sistemas operativos utilizan una tcnica de gestin del procesador denominada multiprogramacin, o una variante de sta llamada tiempo compartido. Los primeros sistemas operativos gestionaban el procesador mediante otra tcnica llamada monoprogramacin (utilizada en los monitores de batch de flujo nico). En este apartado comentaremos el por qu se evolucion de la monoprogramacin a la multiprogramacin. Antes de entrar en esta discusin vamos a ver cmo se realizan las operaciones de entrada/salida (E/S), es decir, las operaciones que permiten la comunicacin con los dispositivos de E/S. Realizacin de las operaciones de E/S Para facilitar el uso de los dispositivos, stos se dividen en dos componentes. La primera es la componente elctrica, a la cual se le llama controlador del dispositivo. La segunda es la componente mecnica, y es a lo que se llama propiamente dispositivo. Esta divisin permite un diseo ms modular del dispositivo, adems de simplificar su uso, ya que la CPU casi siempre trabaja con el controlador (ms fcil de usar), que hace de interfaz entre la CPU y el dispositivo. El controlador contiene una serie de registros llamados puertos de entrada/salida. Estos registros son accesibles (pueden ser ledos y modificados) mediante la ejecucin de instrucciones mquina. Las operaciones de E/S se realizan a travs de la carga y lectura de estos registros. Casi todo controlador dispone de los siguientes registros: Registro de estado. Indica la situacin actual del dispositivo. Un bit del registro, al que llamaremos bit de ocupacin, indica si el dispositivo est ocupado (el bit tendr el valor uno) realizando una operacin de E/S o si est desocupado (el bit tendr el valor cero), y, por tanto, preparado para recibir una orden. Registro de rdenes. En este registro se escribe la operacin de E/S que se desea que realice el dispositivo. Por ejemplo, en una cinta un cdigo de 00 puede indicar rebobinar la cinta, 01 leer de la cinta, 10 escribir en la cinta, etc. El controlador se encarga de traducir estas rdenes en rdenes comprensibles para el dispositivo. Buffer. Un buffer es un almacn de informacin. El buffer del controlador se utiliza para guardar temporalmente los datos implicados en una operacin de E/S. Por ejemplo, si se quiere escribir en una impresora, se carga la informacin a escribir desde memoria principal al buffer. Posteriormente, el controlador mandar dicha informacin desde el buffer a la impresora. Monoprogramacin Pasemos ahora a introducir el concepto de monoprogramacin. En un sistema de monoprogramacin todos los recursos del ordenador -CPU, memoria, discos, impresoras, etc- se dedican a la ejecucin de un nico programa. Este modo de trabajar lleva a una baja utilizacin de los recursos del ordenador como se justifica a continuacin. Cuando el programa en ejecucin realiza una operacin de E/S se introduce la orden precisa en el
UNIDAD I SOFTWARE DE SISTEMAS

Pgina 7

registro de rdenes. El controlador responde a esto traduciendo esas rdenes al dispositivo, y poniendo a uno el bit de ocupacin para indicar que el dispositivo est ocupado realizando una operacin de E/S. Cuando termine la operacin, el controlador pone a cero este bit para indicar que la operacin concluy, y el dispositivo est desocupado. Para saber cundo termina la E/S, el programa, despus de mandar la orden, tiene que ejecutar un ciclo del siguiente estilo:

Leer el registro de estado Mientras (el bit de ocupacin est a uno) Leer el registro de estado Fin Mientras

Figura 6.1 Utilizacin de los recursos con monoprogramacin Obsrvese que esta forma de realizar las operaciones de E/S nos lleva a una situacin en la que en un momento dado se tiene que, o bien la CPU est ejecutando instrucciones de un programa que no son de E/S, y los dispositivos de E/S estn ociosos, o bien un nico dispositivo de E/S est trabajando, mientras la CPU est en un ciclo comprobando si ha finalizado la operacin. Esto se ilustra en la figura 6.1, donde los rectngulos rellenos a trazas representan el ciclo de comprobacin. Para dar una medida de la infrautilizacin de los recursos que conlleva esta forma de realizar las E/S, pinsese que en el tiempo en que una impresora imprime una lnea, la CPU, en lugar de ejecutar el ciclo de comprobacin que aparece lneas ms arriba, podra ejecutar millones de instrucciones de otro programa. A esta forma de realizar la E/S de los sistemas de monoprogramacin se le llama E/S controlada por programa. Multiprogramacin Para paliar la baja utilizacin de los recursos se desarroll la multiprogramacin. La multiprogramacin se apoya en varios elementos del hardware: la interrupcin, el DMA y
UNIDAD I SOFTWARE DE SISTEMAS

Pgina 8

el canal. En un sistema multiprogramado la memoria principal alberga a ms de un programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el programa en ejecucin (es decir, el que ocupa la CPU) realiza una operacin de E/S, emite ciertas rdenes al controlador (al igual que en los sistemas monoprogramados); pero en lugar de esperar a que termine la operacin de E/S comprobando el bit de ocupacin, se pasa a ejecutar otro programa. Si este nuevo programa realiza, a su vez, otra operacin de E/S, se mandan las rdenes oportunas al controlador, y pasa a ejecutarse otro programa. Esto permite que varios dispositivos trabajen simultneamente, adems, en la CPU no se tienen que ejecutar ciclos de comprobacin del estado de los dispositivos. Esto se ilustra en la figura 6.2, en ella P1, P2 y P3 representan programas que residen en la memoria principal. Los rectngulos representan si el recurso est siendo utilizado, salvo para P1, P2 y P3 que representan si el programa ocupa la CPU. Al principio se est ejecutando P1, cuando inicia una operacin de E/S con la impresora se cede la CPU a P2. P2 se ejecuta hasta que comienza una operacin con el scanner, entonces se cede la CPU a P3, ste se ejecuta hasta que utiliza la impresora, momento en el cual se reanuda P1. Obsrvese que en este ejemplo la CPU siempre est activa. No obstante, podra suceder que todos los programas que residen en la memoria inicien una operacin de E/S y en un momento dado todos estn esperando la finalizacin de su operacin, esto conllevara la no utilizacin de la CPU hasta que acabe la operacin de E/S de cualquiera de los programas.

Figura 6.2 Utilizacin de los recursos con multiprogramacin Cuando un dispositivo acaba una operacin de E/S debe de poder comunicrselo al programa que espera su finalizacin, para que as, el programa pueda proseguir su ejecucin. Para indicar el fin de la operacin el controlador manda una interrupcin a la CPU. Una interrupcin no es ms que una seal elctrica que provoca que el contador del programa y la PSW del programa en ejecucin se salven en un lugar seguro de memoria, para, a continuacin, cargar el contador de programa con una direccin fija de memoria donde reside un programa del sistema operativo que gestiona la interrupcin. Este
UNIDAD I SOFTWARE DE SISTEMAS

Pgina 9

programa ejecutar cierto cdigo para indicar al programa que esperaba la finalizacin de la operacin de E/S que sta ya termin. Una vez que este programa del sistema operativo acaba su trabajo ejecuta una instruccin de retorno de interrupcin, la cual restaura el contador de programa y la PSW del programa interrumpido, prosiguindose as su ejecucin sin que ste sea consciente de que ha sido interrumpido. A esta forma de realizar la E/S se le llama E/S controlada por interrupcin. Analicemos ahora el DMA y el canal. Cuando un dispositivo realiza una operacin de E/S, por ejemplo, una lectura de una cinta, la informacin leda pasa al buffer del controlador. Despus, el programa que inici la lectura ejecuta ciertas instrucciones para copiar esta informacin desde el buffer hacia la memoria principal. La copia se realiza mediante un ciclo, copiando en cada iteracin del ciclo un byte o una palabra desde el buffer del controlador a la memoria principal. En un controlador que disponga de DMA (acrnimo de Direct Memory Access, acceso directo a memoria) la copia del buffer a memoria la realiza el propio controlador; para ello, el programa ha de indicarle al controlador la direccin de memoria de inicio de la copia y el nmero de bytes a copiar, esto lo hace en el momento de darle la orden de E/S, metiendo esta informacin en algunos registros del controlador. Pasemos ahora a ver lo que es un canal, un canal es un pequeo procesador de E/S (es decir, un ordenador que slo entiende instrucciones de E/S), su utilidad es proporcionar DMA a varios dispositivos, resultando ms econmico que tener un controlador DMA por dispositivo. Despus de la aparicin de la multiprogramacin surgieron los ordenadores de acceso mltiple o multiusuario. En ellos cada usuario dispone de un terminal, es decir, un teclado y una pantalla conectados al ordenador. Los usuarios ejecutan programas interactivos. Un programa interactivo es aquel que se comunica con el usuario por medio de un terminal, el usuario le suministra informacin al programa mediante el teclado, y recibe informacin del programa a travs de la pantalla. Los programas de los usuarios comparten los recursos (CPU, memoria, discos, impresoras, etc) del ordenador. Estos sistemas hacen uso de una variante de la multiprogramacin llamada tiempo compartido. En el tiempo compartido los programas de los distintos usuarios residen en memoria; al realizar una operacin de E/S los programas ceden la CPU a otro programa, al igual que en la multiprogramacin. Pero, a diferencia de sta, cuando un programa lleva cierto tiempo ejecutndose sin realizar operaciones de E/S el sistema operativo lo detiene para que se ejecute otro programa. Con esto se consigue repartir la CPU con equidad entre los programas de los distintos usuarios. Al tener la CPU una capacidad de clculo tan grande, los programas de los usuarios no se sienten demasiado ralentizados por el hecho de que la CPU (y los dems recursos) sean compartidos. Definamos ahora el trmino concurrencia. Por concurrencia se entiende la existencia de varias actividades simultneas o paralelas. Ejemplo de ello lo constituyen la superposicin de las operaciones de E/S con el proceso de computacin. Otro ejemplo lo constituye la concurrencia de varios programas que se conmutan en un procesador. Aunque esta concurrencia no es real en un instante dado (si slo existe un procesador), s es real en un intervalo ms amplio de tiempo.
UNIDAD I SOFTWARE DE SISTEMAS

Pgina 10

En general, a lo largo del curso estudiaremos sistemas operativos que se ejecutan sobre un nico procesador. Los sistemas distribuidos prcticamente no se tendrn en cuenta. Cuando se hable de algo aplicable a un sistema multiprocesador (memoria compartida) se observar explcitamente.

UNIDAD I SOFTWARE DE SISTEMAS

Pgina 11

7.-

ESTADOS DE UN PROCESO.
Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son: En ejecucin: El proceso ocupa la CPU actualmente, es decir, se est ejecutando. Listo o preparado: El proceso dispone de todos los recursos para su ejecucin, slo le falta la CPU. Bloqueado: Al proceso le falta algn recurso para poder seguir ejecutndose, adems de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc. El proceso necesita que ocurra algn evento que le permita poder proseguir su ejecucin. Hay otros estados de los procesos, pero en la presente exposicin se tratarn estos tres. Por sencillez, se considera un sistema con una sola CPU, aunque no es difcil la extensin a mltiples procesadores. Solamente puede haber un proceso en ejecucin a la vez, pero pueden existir varios listos y varios pueden estar bloqueados. As pues, se forman una lista de procesos listos y otra de procesos bloqueados. La lista de procesos listos se ordena por prioridad, de manera que el siguiente proceso que reciba la CPU ser el primero de la lista. La lista de procesos bloqueados normalmente no est ordenada; los procesos no se desbloquean (es decir, no pasan a ser procesos listos) en orden de prioridad, sino que lo hacen en el orden de ocurrencia de los eventos que estn esperando. Como se ver ms adelante, hay situaciones en las cuales varios procesos pueden bloquearse esperando la ocurrencia del mismo evento; en tales casos es comn asignar prioridades a los procesos que esperan.

UNIDAD I SOFTWARE DE SISTEMAS

Pgina 12

Das könnte Ihnen auch gefallen