programacion de sistemas operativos

Upload: libraluna

Post on 03-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Programacion de Sistemas Operativos

    1/38

    1

    Carrera:

    Desarrollo de Software

    Cuarto cuatrimestre

    Programa de la asignatura:

    Programacin de Sistemas Operativos

    Unidad 1. Administracin de Procesador, memoria y

    dispositivos E/S

    Clave:

    160920415 / 150920415

  • 7/28/2019 Programacion de Sistemas Operativos

    2/38

    2

    Tabla de contenidos

    II. DESARROLLO DE CONTENIDOS POR UNIDAD ......................................................... 4a. Unidad 1. Administracin de Procesador, memoria y dispositivos E/S ....................... 4

    Propsito .................................................................................................................... 5

    Competencia especfica .............................................................................................. 5

    Presentacin de la unidad .......................................................................................... 5

    Actividad 1. Presentacin ........................................................................................... 6

    1.1. Procesador .......................................................................................................... 6

    1.1.1. Definicin y conceptos ...................................................................................... 8

    1.1.2. Procesos e hilos ................................................................................................ 9

    1.1.3. Multiprocesamiento ......................................................................................... 13

    1.1.4. Paralelismo ..................................................................................................... 14

    Actividad 2. Administracin del Procesador .............................................................. 15

    1.2. Memoria ............................................................................................................. 15

    1.2.1. Administracin de la memoria ......................................................................... 161.2.2. Jerarqua de la memoria ................................................................................. 17

    1.2.3. Multiprogramacin con particiones fijas y variables ......................................... 18

    1.2.4. Memoria real ................................................................................................... 20

    1.2.5. Memoria virtual ............................................................................................... 21

    Actividad 3. Mapa conceptual del manejo de la memoria .......................................... 23

    1.3. Entrada / Salida ................................................................................................. 23

    1.3.1. Principios de hardware y software de I / O ...................................................... 24

    1.3.2. Dispositivos y manejadores de dispositivos .................................................... 25

    1.3.3. Mecanismos y funciones de manejadores de dispositivos .............................. 28

    1.3.4. Estructura de datos en el manejo de dispositivos ............................................ 30

  • 7/28/2019 Programacion de Sistemas Operativos

    3/38

    3

    1.3.5. Operaciones de E / S ...................................................................................... 33

    Actividad 4. Dispositivos de Entrada y Salida ........................................................... 35

    Autoevaluacin ......................................................................................................... 35

    Evidencia de aprendizaje. Administracin del procesador, memoria y los dispositivosde entrada y salida ................................................................................................... 36

    Cierre de la unidad ................................................................................................... 36

    Para saber ms ........................................................................................................ 37

    Fuentes de consulta ................................................................................................. 37

  • 7/28/2019 Programacion de Sistemas Operativos

    4/38

    4

    II. Desarrollo de contenidos por unidad

    a. Unidad 1. Administracin de Procesador, memoria y dispositivos E/S

    El procesador esta formado por planificadores en los cuales se decide que se va aejecutar primero y que se ejecuta despus, adems de a que le va a dar respuesta demanera inmediata y que puede esperar, todo esto con la finalidad de optimizar variospuntos tales como: velocidad en respuesta, certeza, excelencia en respuesta, etc.,entendiendo as a los planificadores como las partes lgicas del procesador que analizanlos datos recibidos y toman decisiones de respuesta en cuanto velocidad y prioridad.

    Existen diferentes tipos de planificadores en un procesador los cuales se enlistan acontinuacin:

    Planificador a largo plazo: En este, el procesador decide el orden de ejecucincon una adecuada organizacin de los recursos para que el trabajo se ejecute deforma ordenada y eficiente segn el modo de procesamiento.

    Planificador a medio plazo: Este planificador es responsable de cargar ydescargar trabajos desde el disco a la memoria y de la memoria al discoconsiderando el grado de sobrecarga del sistema.

    Planificador a corto plazo: Es quien decide cundo, cmo y por cunto tiemporecibe el procesador un proceso que est preparado para ejecutar.

    Asi consideraremos como primer componente para que un sistema operativo funcione esel procesador.

    El segundo componente es la memoria, la principal necesidad para cualquier sistemaoperativo es el que la memoria sea rpida para que al ejecutar una instruccin el CPU oprocesador, no se vea afectado por la memoria de bajo rendimiento.

    Dentro de un sistema operativo, la memoria no es el nico recurso que debeadministrarse, los dispositivos de Entrada/Salida tambin interactan con el sistemaoperativo y por lo regular constan de dos partes: una tarjeta controladora y el dispositivoen s, la tarjeta controladora es un chip o un conjunto de chips montados en una tarjetainsertable, que controla fsicamente al dispositivo. Dicha controladora acepta comandosdel sistema operativo y los ejecuta.

  • 7/28/2019 Programacion de Sistemas Operativos

    5/38

    5

    Considerando entonces que el tercer componente son los dispositivos en si. Losdispositivos tienen interfaces relativamente simples, debido a que no tienen muchacapacidad para estandarizarlos, esto ltimo es necesario para que cualquier controladorade disco IDE pueda manejar cualquier disco IDE (Electrnica Integrada en la Unidad,

    integrated drive electronics. Por sus siglas en ingles).

    Propsito

    Identificar cmo el Sistema Operativo interacta, maneja el control del procesador y susprocesos, de la memoria y sus tipos particiones y administracin; sin dejar de tomar encuenta el control de los dispositivos de E/S; sus principios, manejadores, mecanismos,estructuras y operaciones.

    Competencia especfica

    Describir la administracin del procesador, memoria y dispositivos de entrada y salidapara reconocer las caractersticas que los distingue como interactan con el sistemaoperativo mediante las transiciones entre ellos.

    Presentacin de la unidad

    Bienvenido(a) a la asignatura de Programacin de Sistemas Operativos. En esta primeraunidad trabajaremos y entenderemos sobre como el Sistema Operativo hace uso delprocesador administrndolo en cual si bien recordamos es el cerebro de la computadorao donde se realizan las operaciones tambin es conocido como CPU, las partes que loforman, como cambia de un proceso a otro, como manipula las actividades y entendercomo es que controla varios procesos a la vez o los hace en forma paralela una vez queentendamos como el Sistema Operativo administra el procesador entenderemos comocontrola los accesos a la memoria descargando y cargando informacin en ella, se

    entender la diferencia entre memoria real y virtual y para que se usa cada una de ellas ypor ultimo la gran ventaja de controlar las operaciones que se realizan en los dispositivosde entrada y salida .

  • 7/28/2019 Programacion de Sistemas Operativos

    6/38

    6

    Actividad 1. Presentacin

    Como primer actividad en el estudio de la asignatura, te presentamos un foro dediscusin general, creado para que comentes asuntos relacionados con la asignatura; enl, conocers a tus compaeros de grupo, entre todos podrn apoyarse, resolver dudas einquietudes y externar comentarios.

    Comienza tu participacin, ingresando al aula y en la Actividad 1.Presentacin.

    1.1. Procesador

    El procesador o Unidad Central de Procesamiento comnmente conocido como CPU porsus siglas en ingles Central Processing Unit, es la unidad que procesa todas las tareasque realizara la computadora, permitiendo el procesamiento de informacin numricaingresada en formato binario, as como el proceso de instrucciones almacenadas en lamemoria.

    El CPU, es un dispositivo electrnico el cual funciona enviando pulsos elctricos a raznde Hertz, un CPU con 50 MHz enviar 50.000.000 pulsos elctricos por segundo donde elprocesador ejecuta una accin que corresponde a su vez a una instruccin o bien a una

    parte de ella.

    La medida CPI (ciclos por instruccin) representa el nmero promedio de ciclosnecesarios para que el microprocesador ejecute la instruccin.

    La potencia del microprocesador se mide por el nmero de instrucciones por segundoque es capaz de procesar.

    Cada CPU ejecuta un conjunto de instrucciones especficas a su arquitectura, por lo tantono se pueden ejecutar programas de una arquitectura de un tipo de procesador a otro conestructura de manejo de proceso diferente. Puesto que tener acceso a la memoria paraobtener una instruccin o una palabra de datos tarda mucho ms que ejecutar unainstruccin, todas las CPUs contienen algunos registros para guardar variablesimportantes y resultados temporales. As el conjunto de instrucciones por lo generalincluyen instrucciones para cargar una palabra de la memoria en un registro, y paraalmacenar en la memoria una palabra que est en un registro.

    El sistema operativo debe tener conocimiento de todos los registros, al multiplexar en eltiempo el CPU, es comn que el sistema operativo tenga que detener el programa en

  • 7/28/2019 Programacion de Sistemas Operativos

    7/38

    7

    ejecucin para iniciar o reiniciar otro. Cada vez que el sistema operativo detiene unprograma en ejecucin, debe guardar todos los registros para que puedan restablecercuando el programa contine su ejecucin justo donde se qued (Tanenbaum, 2003: 22)

    En la actualidad muchas CPU cuentan con recursos para ejecutar ms de una instruccina la vez, una CPU podra tener unidades individuales para tomar, decodificar y ejecutar demodo que mientras est ejecutando la instruccin, tambin pueda estar decodificando lainstruccin n+1 y tomando la instruccin n+2.

    El procesador realiza e interpreta una serie de instrucciones contenidas de un software yprocesa los datos que este genera. Existen un gran nmero de modelos y marcas deprocesadores que van dependiendo del tipo de socket, CoreClock, FSB, Cache, etc.

    Instrucciones, es una operacin que el procesador debe de realizar; esas instrucciones se

    almacenan en la memoria principal del procesador, y utilizan dos campos: Cdigo deoperacin que representa la accin que el procesador debe ejecutar. Cdigo operando,que es el que define los parmetros de la accin.

    Las instrucciones se agrupan a su vez en categoras como:

    Acceso a Memoria: Es la transferencia de informacin entre registros. Operaciones Aritmticas: Es la parte que se encarga de realizar las operaciones

    tales como suma, resta multiplicacin o divisin. Operaciones lgicas: En esta se encarga de realizar las operaciones Y, O, No, etc. Control: Se encarga de realizar las conexiones condicionales, etc.

    Debido a la exclusin de elementos de hardware complejos, la realizacin deltrabajo por la capa de software, los procesadores poseen una estructura internasimple y muy eficiente, compuesta por:

    Unidades enteras (Integer ALU).

    Unidad de coma flotante (floating point unit). Unidad de memoria para operaciones de lectura y escritura (Load/Staore Unit).

    Unidad de salto (Branch unit).

    Al ejecutarse todas las instrucciones la informacin que se genera se almacena de formatemporal en ubicaciones de memoria local, denominada registros.

    Algunos de los registros comnmente utilizados son: Acumulador (ACC), almacena los resultados de las instrucciones de operacin

    Aritmtica y lgica. Estado (PSW), contiene los indicadores de estado del sistema. Instruccin (RI), almacena las instrucciones que se va procesando. Contador ordinal (OC).

  • 7/28/2019 Programacion de Sistemas Operativos

    8/38

    8

    Casi todas las computadoras tienen varios registros especiales que puede ver elprogramador. Uno de ellos es el contador de programa, el cual contiene la direccin dememoria en la que se encuentra la siguiente instruccin que ser tomada. Una vezobtenida esa instruccin, el contador de programa se actualizar de modo que apunte a

    su sucesora. Otro registro es el apuntador de pila, que apunta a la parte superior de la pilaactual en la memoria. La pila contiene un marco por cada procedimiento en el que se haentrado, pero del cual no se ha salido an. El marco de pila de un procedimiento contienelos parmetros de entrada, variables locales y variables temporales que no se guardan enregistros.

    1.1.1. Definicin y conceptos

    El procesador es el encargado de procesar los datos que estn almacenados en unacomputadora para producir cualquier tipo de informacin de inters para los usuarios.

    Un microprocesador se divide en dos componentes bsicos, los cuales son:

    1. La unidad lgica/aritmtica (ALU), que realiza operaciones aritmticas y lgicas,dadas a travs de microprogramacin.

    2. La unidad de control (CU), que extrae instrucciones de la memoria, las descifra yejecuta, llamando a la ALU cuando es necesario, sincroniza todas las operacionesde reas de almacenamiento principal llamadas registros y memoria cach.

    El procesador necesita para su funcionamiento de ciertas reas de almacenamiento y queson de dimensiones mnimas; sin embargo, tienen la ventaja de su rapidez. Comparadoscon los accesos a RAM, los registros son como mnimo 10 veces ms veloces.

    Existen 4 registros llamadosAX, BX, CX y DX, cada uno de ellos tienen asignada unaactividad especfica.

    AX. Nombrado acumulador; contiene el operador que interviene en lasoperaciones aritmticas y lgicas. En general las instrucciones que trabajan coneste registro tienen un micro cdigo ms simple que la misma instruccin

    ejecutada con otro registro. BX. Conocido como registro base, comnmente la tarea de este registro se basa

    en identificar la direccin o ndice de cada registro dentro de una tabla de valorespara su direccionamiento.

    CX. Es el contador, las instrucciones que se realizan durante un proceso dentrodel sistema operativo conocidas como bucle (LOOP) utilizan este registro comocontador de n veces que un ciclo repite dentro de un proceso.

  • 7/28/2019 Programacion de Sistemas Operativos

    9/38

    9

    DX. Registro de datos multiuso, se utiliza en operaciones de multiplicacin ydivisin junto con AX, su aplicacin suele estar dentro de operaciones deentrada/salida de puertos IN/OUT.

    Los registros de segmento son utilizados para integrar las direcciones de otrossegmentos, para su aplicacin en conjunto con otros registros que sealan las direccionesconcretas dentro de estos segmentos, lo cual permite la gestin total de la memoriadireccional, y para estos segmentos bsicamente se contemplan 4 tipos:

    Segmento de cdigo CS. Apunta la ubicacin del segmento de cdigo delprograma el cual se est ejecutando en ese instante.

    Segmento de datos DS. Seala la ubicacin del segmento de datos del programaen ejecucin.

    Segmento de Pila SS. Apunta la ubicacin del segmento donde est la pila delprograma en ejecucin.

    Segmento extra ES. Es un segmento auxiliar, es utilizado para indicar la existenciade espacio extra de algunos de los segmentos anteriores, es til tambin paraguardar de forma temporal las direcciones intermedias entre segmentos.

    Los registros de puntero estn destinados a contener direcciones que sondesplazamientos dentro de los segmentos indicados por los registros de segmento.

    Puntero de instruccin IP y contador de programa PC, establece la direccin de lainstruccin e indican el desplazamiento de la instruccin siguiente a ejecutar queubica dentro del segmento CS.

    Puntero de Pila SP. Seala la ubicacin final de la pila dentro del segmento de pilaSS.

    Puntero base BP. Seala el desplazamiento donde se encuentra el origen de lazona ocupada por las variables dinmicas.

    Tambin, dentro de los registros se encuentra uno especial llamado registro de estado(FLAGS), es un indicar del estado del procesador y el resultado de algunas operaciones,ya que su funcin se basa en el manejo de bits que actan como semforo.

    1.1.2. Procesos e hilos

    Puede considerarse como definicin de un proceso, a la ejecucin de un programa dentrode un sistema operativo el cual puede necesitar de ciertos recursos determinantes para suejecucin tales como: Tiempo de CPU, archivos de Entrada/salida, dispositivos de

    _entrada/salida, y memoria principalmente, todos los recursos que utiliza se asignan alproceso en el momento de que es creado o bien al momentos de ser ejecutado. Cabemencionar que cada uno los procesos puede tener su propia CPU virtual.

  • 7/28/2019 Programacion de Sistemas Operativos

    10/38

    10

    Una gran mayora de los sistemas, los procesos suelen ser la determinante para larealizacin de los trabajos. Cada sistema contiene sus propios procesos, y se dividen enlos procesos del sistema operativo que son los encargados de ejecutar el cdigo del

    sistema y los procesos de usuarios encargados de ejecutar el cdigo del usuario, por lotantos estos procesos se pueden ejecutar de manera simultnea para la realizacin detareas interactivas.

    Durante la ejecucin del cdigo de un proceso, tambin utiliza la actividad actual que estarepresentada por el valor del contador de programa y por los contenidos de los registrosdel procesador. Por lo general de la misma forma, un proceso tambin incluye la pila delproceso, lo cual puede contener los datos temporales: parmetros de funciones,direcciones de retorno y las variables locales adems de una seccin de datos que

    contienen las variables globales.

    Un proceso puede incluir una acumulacin de memoria, que es asignada de formadinmica al proceso en tiempo de ejecucin, en la siguiente imagen, se presenta laestructura de un proceso ubicado dentro de la memoria, indicando el estado que vatomando a medida que el proceso es ejecutado.

    Imagen 1. Ejecucin de un proceso ubicado en la memoria (Silberschatz, 2006:74)

    La diferencia existente entre un programa y un proceso, se tiene que un programa por suestructura propia no es un proceso ya que es una entidad pasiva por ejemplo un archivo

    lleva incluido una cantidad de instrucciones que se almacenan en disco. Un proceso esuna entidad activa, la cual contiene las instrucciones que se deben ejecutar y un conjuntode recursos asociados a los registro del cpu para su funcionamiento.

    Un programa se convierte en proceso al cargarse en memoria, lo cual lo convierte enarchivo ejecutable. Considerando un ejemplo que ayude a distinguir la diferencia, consisteen una persona que se dedica a la construccin, el cual est a punto construir una casa.Para esto cuenta con planos de la construccin y todo el material necesario para realizar

  • 7/28/2019 Programacion de Sistemas Operativos

    11/38

    11

    la obra: Cemento, Cal, Arena, Tabiques, Varilla, Alambre, Clavo, Madera, etc., en esteejemplo los planos es el programa, la persona de la construccin es el CPU y loselementos o materiales para la construccin son los datos de entrada. El proceso es laactividad de la persona de la construccin consistente en leer los planos, obtener los

    materiales y construir la casa.

    La idea del proceso consiste en que es una actividad de algn tipo: tiene programa,entrada, salida y un estado. Se puede compartir un procesador entre varios procesos,usando algn algoritmo de planificacin para determinar cundo debe dejarse de trabajaren un proceso para atender a uno distinto.

    La jerarqua de los procesos que manejan el concepto de proceso debe contar con algnmecanismo para crear todos los procesos necesarios, en los sistemas muy sencillos o enlos diseados para ejecutar slo una aplicacin es posible que, cuando el sistema se

    inicia, todos los procesos que puedan necesitarse estn presentes. Sin embargo, en lamayor parte de los sistemas se necesita algn mecanismo para crear y destruir procesossegn sea necesario durante la operacin.

    En el estado de procesos, aunque cada proceso es una entidad independiente, con supropio contador de programa y estado interno, los procesos a menudo necesitaninteractuar con otros procesos. Un proceso podra generar ciertas salidas que otroproceso utiliza como entradas.

    Mientras un proceso es ejecutado va modificando el estado, dependiendo de la actividadque este en memoria, en la siguiente imagen se muestra el estado de un proceso

    Imagen 2. Un proceso puede estar en el estado de ejecutndose, bloqueado o listo. Lastransiciones entre estos tres estados son las que se muestran (Tanenbaum, 2003:51)

    Habitualmente, la mayora de los procesos estn creados por el sistema operativo de talforma que los usuarios o el programa de aplicacin no conocan su procedencia. Sinembargo, es bastante til para el rendimiento de memoria y administracin de recursosdentro de los procesos del CPU, que de un proceso se pueda derivar otro proceso, elnuevo proceso se podra ejecutar de forma paralela con la aplicacin y podra ser activadocada que se mande a llamar.

    1. Un proceso se bloquea para aceptar entradas

    2. El planificador escoge otro proceso

    3. El planificador escoge este proceso

    4. Hay entradas disponiblesEjecutndose

    BloqueadoListo

    1 2

    3

    4

  • 7/28/2019 Programacion de Sistemas Operativos

    12/38

    12

    Durante el bloqueo de control de procesos en un sistema operativo, es representadomediante un bloque de control de procesos. Un bloque puede integrar algunos de loselementos de informacin que especifiquen el estado de un proceso, algunos de estoselementos se tiene:

    Estado del proceso. En este estatus el proceso puede tomar la forma bsica deinicio, nuevo, listo, ejecutando, en espera, detenido, finalizado, etc.

    Contador de programa. El contador de programa identifica la ubicacin de lasiguiente instruccin que se ejecutara por el proceso.

    Registros en CPU. Los diferentes registro que se pueden utilizar para el procesodependen del tipo y nmero as como de la arquitectura del CPU, para estosregistros se incluyen los ya tratados en tema anterior.

    Estado y planificacin de CPU. La planificacin de CPU establece que procesotiene mayor prioridad para el buen funcionamiento y manejo de recursos.

    Administracin de memoria. Muestra la valor de los registros, tablar de pginas yde segmentos.

    Informacin contable. Este elemento contiene la cantidad de CPU de tiempo realempleado, lmites de tiempo asignados y nmeros de cuenta.

    Estado de E/S. Este elemento muestra la lista de los dispositivos de E/S asignadosal proceso.

    Por otro lado la finalizacin de un proceso, debe ser determinante que un proceso indiquela finalizacin de su tarea. Para esto la aplicacin deber detectar una llamada o peticinexplicita sobre el servicio del sistema operativo que determine la finalizacin del procesodemandante.

    Durante un proceso tradicional la existencia de hilos de control, que representa a unaactividad, en un proceso tradicional puede existir un solo hilo de control y un solo contadorde programa en cada proceso. Sin embargo, algunos sistemas operativos modernosmanejan mltiples hilos de control dentro de un proceso.

    La siguiente imagen presenta un modelo de solicitud donde la existencia de un procesopuede utilizar hilos simples y mltiples hilos, que reciben solicitudes para procesar elarchivo y la devolucin de datos o actualizacin.

    Estos hilos de control normalmente se llaman slo hilos, en la siguiente imagen, se podrobservar tres procesos tradicionales, cada proceso tiene su propio espacio de direccionesy un solo hilo de control. A diferencia, en el segundo esquema se observa un solo procesocon tres hilos de control. Aunque en ambos casos se tienen tres hilos, cada uno de ellosopera en un espacio de direcciones distinto, en tanto al otro caso los tres hilos compartenel mismo espacio de direcciones.

  • 7/28/2019 Programacion de Sistemas Operativos

    13/38

    13

    Imagen 3. (a) Estructura de tres procesos con un hilo simple y espacio de direccionesdistinto. (b) Estructura de un proceso con tres hilos que comparte el espacio de

    direcciones (Tanenbaum, 2003: 54)

    Una determinante de rendimientos es vista en la imagen anterior (b), Cuando una solicitudes procesada es entregada a un hilo, si este hilo se bloquea, los dems hilos puedencontinuar ejecutndose de manera que se podrn realizar nuevas solicitudes ya seainclusive de E/S de disco. A diferencia del modelo (a), no es muy conveniente ya quetodos los hilos no comparten el mismo espacio de direcciones y cach de memoria.

    Algunos de los sistemas operativos, anteriormente no utilizaban estos procesos y los hilosse manejaban de forma simple de pilas. La principal desventaja que se tena con estemtodo, si el hilo se bloqueaba el proceso quedara inconcluso.

    Para otros sistemas, el sistema operativo utilizan los hilos mltiples por proceso, esta

    forma de hilos mltiples tiene la ventaja del anterior que cuando un hilo se bloque, elsistema operativo selecciona el hilo que se ejecutar enseguida ya sea para el mismoproceso o un proceso distinto. Para realiza la planificacin, el kernel deber saber laexistencia de la tabla de hilos que relacione los hilos del sistema.

    La diferencia entre un hilo simple e hilo mltiple, consiste en el rendimiento que vara deforma significante uno del otro. La modificacin de hilos es ms gil cuando laadministracin de hilos se realiza en el espacio de usuario que cuando se realiza unallamada al kernel.

    Ya sea que los hilos se puedan administrar por el kernelo en el espacio de usuario, seintroducen varios problemas que se debern resolver y modificar considerablemente elmodelo de programacin para un mejor rendimiento del sistema operativo.

    1.1.3. Multiprocesamiento

    En sistema operativo que tiene mltiples CPU, puede compartir la carga deprocesamiento; sin embargo, el problema de la planificacin se hace ms difcil. La idea a

    Contador de pgina Hilo Proceso

    Computadora Computadora

    (a)(b)

  • 7/28/2019 Programacion de Sistemas Operativos

    14/38

    14

    enfocar sobre el multiprocesamiento es en base a los sistemas en lo que losprocesadores son idnticos, homogneos en relacin a su funcionalidad, existendiferentes limitaciones que afectan a la planificacin.

    Un mtodo para planificar las CPU para un sistema multiprocesador consiste en quetodas las decisiones sobre la planificacin, el procesamiento de E/S y varias actividadesdel sistema sean administrados por un mismo procesador. A este multiprocesamientoasimtrico pareciera simple, pues solo existe un procesador que accede a las estructurasde datos del sistema, minimizando la necesidad de compartir datos.

    Otro mtodo es el multiprocesamiento simtrico, este tiene como cualidad que cada unode los procesadores se auto-planifica, y lo procesos pueden estar en una cola comn deprocesos preparados, o bien cada procesador puede ser propietario de su cola deprocesos preparados de forma independiente, esta mtodo se puede establecer que el

    planificador de cada procesador analice la cola de procesos preparados y seleccione unproceso para ejecutarlo. Una programacin eficiente del sistema se considerar aquellaen la que el procesador pueda seleccionar un proceso que este dentro de una estructurade datos y que dos procesadores no seleccionarn el mismo proceso y tambin evitar laprdida de procesos de la cola.

    Hoy en da la mayora o prcticamente todos los sistemas operativos modernos tienen lafactultad de soportar el multiprocesamiento simtrico, por mencionar algunos de ellos:Windows XP y superior, Linux en todas sus distribuciones, Mac OSx, etc.

    1.1.4. Paralelismo

    Para la programacin de sistemas operativos, el trmino paralelismo implica la existenciade varios procesadores en el sistema, la tcnica de programacin paralela determina elpoder dividir la ejecucin de un proceso en distintos mdulos del sistema.

    Mientras la CPU est ejecutando un programa, tambin puede estar leyendo un discoesto es porque la CPU, esto se realiza en el curso de muy poco tiempo ya que puedetrabajar con varios programas simulando que el sistema puede estar realizando varios

    procesos al mismo tiempo. El termino seudoparalelismo, se utiliza para refirise a estarpida conmutacin de la CPU entre programas, para diferenciar del verdaderoparalelismo de hardware de los sistemas multiprocesador, en el proceso de evolucin dedesarrollo de sistemas operativos se ha ido mejorando el modelo de procesossecuenciales que facilita el manejo del paralelismo.

    El paralelismo para los programas puede ser explicito donde unas de sus principalescaractersticas es que el programador especifica mediante una construccin de

  • 7/28/2019 Programacion de Sistemas Operativos

    15/38

    15

    concurrencia de exclusin mutua y sincronizacin para determinar la prioridad de losprocesos. En este mtodo puede ser viable para utilizar los procesadores por separado yejecutar cada uno los procesos, por su dificultad de implementacin se pueden generarvarios errores de programacin.

    Actividad 2. Administracin del Procesador

    Con el fin de reflexionarsobre el tema de la administracin del procesador, participa enel foro de esta actividad, realizando lo siguiente:

    1. Analiza y contesta las siguientes preguntas: Qu funcin tiene el Procesador dentro del Sistema Operativo?

    Cmo interactan los hilos con el procesador?

    Cul es la diferencia entre multiprocesamiento y paralelismo?

    2. Ingresa al foro y genera una nueva entrada para compartir tu respuesta a laspreguntas antes planteadas.

    3. Revisa y comenta las aportaciones de tus compaeros(as), analiza siconcuerdas o no con ellos(as).

    4. A partir de las aportaciones vertidas en el foro, elabora tus conclusiones ypublcalas.

    5. Recuerda consultar la Rbrica de Foro que se encuentra en la seccin Materialde apoyo.

    1.2. Memoria

    La memoria en un sistema operativo puede llegar a ser un recurso muy importante el cualse debe administrarse con cuidado. La memoria principal puede ser considerada como unarreglo lineal de localidades de almacenamiento de un byte de tamao, cada localidad de

    almacenamiento tiene asignada una direccin que la identifica.

    La memoria principal es el lugar donde el CPU registra las instrucciones que se van aejecutar, as como algunos datos a emplear, una de las funciones bsicas que debeimplementar un Sistema Operativo es la administracin de la memoria para tener uncontrol sobre los lugares donde estn almacenados los procesos y datos que actualmentese estn utilizando.

  • 7/28/2019 Programacion de Sistemas Operativos

    16/38

    16

    1.2.1. Administracin de la memoria

    La administracin de la memoria para un sistema multiproceso, se debe tener cuidado enla gestin de este recurso, ya que se puede determinar el estado del procesadordependiendo de la cantidad de procesos que se estn ejecutando. La memoria principales la parte donde se ejecutan los programas y procesos, este est definido por el espaciodisponible para que se puedan ejecutar los procesos.

    La administracin de la memoria es la encargada de gestionar la jerarqua de losprocesos que se ejecutan dentro de la misma, su principal funcin es el determinar quepartes de la memoria real estn en uso y que partes estn libres, tambin asigna memoriaa los procesos cuando la necesitan recuperar y cuando termina adems controla el

    intercambio entre la memoria principal y el disco cuando la primera es demasiadopequea.

    Para un sistema operativo la administracin bsica de la memoria se puede dividir en dosclases, los que intercambian los procesos entre la memoria y algn dispositivo estomediante el proceso de ejecucin. La otra clase es lo contrario al anterior pues aqu estncatalogados lo que no realizan el intercambio y paginacin.El intercambio y la paginacin es utilizada como una tcnica para las situacionescausadas memoria principal escasa para mantener todos los programas al mismo tiempo.Esto reduce el costo de la memoria principal y aumenta el rendimiento del procesador,comnmente es conveniente el replantear la administracin de la memoria a medida que

    el sistema tenga mayor crecimiento, pues esto implica que la memoria u otro puedenhacerse obsoletos, ya que los sistemas crecen con mayor rapidez que las memorias.

    La monoprogramacin que no tiene intercambio ni paginacin, es un esquema ms simpley tiene la posibilidad de ejecutar solo un programa a la vez, compartiendo la memoriaentre el programa y el sistema operativo, en la siguiente imagen plantea 3 variantes sobreel estado de memoria.

    Imagen 4. Tres variantes de organizacin de la memoria entre un programa y el sistema operativo.(Tanenbaum, 2003: 310)

  • 7/28/2019 Programacion de Sistemas Operativos

    17/38

    17

    Estas variantes de la imagen anterior nos muestra, Imagen 4(a) Indica que el sistemaoperativo puede estar alojado dentro de la memoria de acceso aleatorio RAM, Imagen4(b) Indica que el sistema operativo puede estar alojado en la parte superior de la

    memoria ROM, memoria de solo lectura, en la variante de la imagen 4(c) Loscontroladores de los dispositivos se encuentran en la parte superior de la memoria ROMseguido de los programas de usuario y al final del esquema se encuentra el sistemaoperativo por encima de la memoria RAM.

    En estos esquemas anteriores, permite ejecutar solo un proceso a la vez, para que seacopiado a memoria y se ejecute. Al finalizar el proceso en el sistema operativo debermostrar un indicativo que muestre que est a la espera de un nuevo comando, asientonces el sistema operativo recibe este nuevo comando para cargar el nuevo programaen memoria sobreescribiendo el anterior.

    Existen diferentes tcnicas para la administracin de la memoria, las cuales se clasificancomo:

    Multiprogramacin con particiones fijas Multiprogramacin con particiones variables Segmentacin Paginacin

    Administracin de memoria con mapas de bits Administracin de memoria con listas enlazadas

    Estas tcnicas de administracin de memoria, por la capacidad de procesamiento obligamuchas veces a modificar la arquitectura computador para obtener el rendimientodeseado a partir del nuevo hardware.

    1.2.2. Jerarqua de la memoria

    La jerarqua de memoria sirve para organizar de forma incremental de pirmide o niveles,el principal funcin de este mtodo es conseguir el rendimiento aumentar la velocidad alcosto de una memoria simple.

    Los niveles que comnmente conforman la jerarqua de la memoria son: Nivel 0 de Registros Nivel 1 de memoria Cache Nivel 2 memoria principal

    Nivel 3 De Disco duro Nivel 4 virtual

  • 7/28/2019 Programacion de Sistemas Operativos

    18/38

    18

    As pues lo que se busca con la jerarqua de la memoria es establecer una determinantepara la administracin de la memoria.

    1.2.3. Multiprogramacin con particiones fijas y variables

    Existe otro esquema para la administracin de la memoria que permite la ejecucin demltiples procesos en un mismo tiempo, este esquema es conocido pormultiprogramacin con particiones fijas. En los sistemas con tiempo compartido para losprocesos resulta que este si se encuentra bloqueado en espera de que finalice una E/S,otro proceso podr utilizar la CPU. As se incrementa el rendimiento tanto de la memoriacomo del CPU, una posibilidad de lograr la multiprogramacin consiste en dividir lamemoria en n particiones ya sea homognea o desigual. A la llegada de algn proceso,

    se podr colocar en la cola de entrada de la particin pequea que puede contener, yaque las particiones estn fijas, pero si por algn motivo el proceso no utilizo alguna de lasparticiones esta ser desperdiciada. En la siguiente imagen, se ilustra un esquema condiferentes tipos de entradas a particiones fijas.

    Imagen 5. Esquema de particiones fijas con mltiples colas de entrada (a), particionesfijas con cola nica de entrada (b) (Tanenbaum, 2003: 311)

    La imagen anterior muestra un esquema de dos tipos distintos de asignacin de procesosmediante las colas de entrada, se puede observar que al utilizar particiones fijas con colasdistintas (a) se ve claro que el rendimiento del sistema baja pues al encontrar unaparticin demasiado grande y vaca y una particin pequea y llena esto es una grandesventaja. Una alternativa para una posible solucin a esta desventaja puede ser lo quese ilustra en la imagen anterior (b) donde se puede ver que se mantiene una sola cola deasignacin para que cada que se libera una particin, se seleccionar el proceso ubicadoen la particin siguiente inmediata para ser ejecutada.

  • 7/28/2019 Programacion de Sistemas Operativos

    19/38

    19

    Dentro del desarrollo para los sistemas de tiempo compartido, la situacin se torna deforma distinta para la multiprogramacin de particiones variables. La desventaja de estemtodo consiste en que en muchas ocasiones no existir la cantidad suficiente de

    memoria principal para almacenar todos los procesos que se encuentren activos. Sepodr utilizar la administracin de memoria, dependiendo del hardware disponible.

    Existen dos estrategias para este mtodo una se utiliza para buscar y cargar en lamemoria cada proceso en su totalidad par que se pueda ejecutar durante el tiempo quesea necesario para que despus se pueda colocar de nueva cuenta sobre el disco, a estaestrategia comnmente se le conoce como llamadas de intercambio. La segundaestrategia conocida como me memoria virtual, permite ejecutar a los programas a pesarde que estos se encuentren parcialmente en memoria principal.

    El funcionamiento de un sistema con particiones variables los primeros o el primerproceso se cargan en la memoria creando la particin, para dar seguimiento a los demsprocesos creando las particiones en la memoria de acuerdo a la necesidad del proceso yliberndola al trmino de cada proceso cargado, en la siguiente imagen se puedeobservar un claro ejemplo del uso de particiones variables, donde se carga un soloproceso y crea la particin que utilizar (a), posteriormente se pueden cargar demsprocesos asignando el espacio dentro de la memoria (b), seguido se muestra el accesode un tercer proceso utilizando el espacio asignado para este (c), Luego sale el proceso

    A, dejando el espacio libre para dejar el paso al proceso D (d,e), Posteriormente terminaB y entra E (f,g).

    Imagen 6. Asignacin de memoria mediante la multiprogramacin de particionesvariables. (Tanenbaum, 2003: 314)

    Para la asignacin de memoria que se muestra en la imagen anterior, se puede observarque mientras los procesos entran en memoria y salen el espacio se libera para dejarlolisto para el siguiente proceso que se mande llamar. El tamao de estas particionespuede variar, tiene la flexibilidad de no estar limitado a la cantidad de particiones fijasestablecidas para la asignacin de procesos.

  • 7/28/2019 Programacion de Sistemas Operativos

    20/38

    20

    1.2.4. Memoria real

    La memoria real o principal, es donde se guardan los datos y se ejecutan los programas,por lo general esta memoria es voltil. La CPU extrae instrucciones de la memoria deacuerdo con el valor del contador de programa, durante el ciclo de ejecucin de algnproceso debera extraer la instruccin de la memoria la cual se decodifica y puede hacerque se procesen una serie de operaciones. El resultado de haber ejecutado esasoperaciones, se almacena de nuevo en la memoria.

    Comnmente el costo de esta memoria es de mayo costo que la memoria secundaria,pero la gran diferencia estn en que la memoria real es de rpido acceso a la informacin

    contenida, la memoria cache es la nica que podra llegar a ser mucho ms rpida que laprincipal pero su costo tambin es an mayor que las memorias real y secundaria.

    La organizacin y administracin de la memoria real de un sistema ha sido y es uno de losfactores ms importantes en el diseo de los sistemas operativos. Muy a menudo lostrminos memoria y almacenamiento se consideran equivalentes, los programas y datosdeben estar en el almacenamiento principal para poderlos ejecutar y referenciarlosdirectamente.

    Se considera almacenamiento secundario o auxiliar al que es soportado por lo general endiscos, la parte del sistema operativo que administra la memoria se llama Administrador

    de la memoria. Lleva un registro de las partes de memoria que se estn utilizando y deaquellas que no, asigna espacio en memoria a los procesos cuando estos la necesitan ylibera espacio de memoria asignada a procesos que han terminado.

    En lo que respecta a la reasignacin de direcciones, el contenido del registro fronteraindicar el punto a partir del cual puede cargarse el programa del usuario. Para ello sernecesario reasignar las direcciones del programa en funcin de la frontera, existiendo dosformas de hacerlo, una esttica y otra dinmica.

    La asignacin esttica se realiza durante la compilacin o bien durante la carga del

    programa en memoria. Esto implica que cualquier variacin del tamao del sistemaoperativo exigir una nueva compilacin o carga del programa. Es una tcnica fcil dellevar a cabo pero demasiado rgida. La alternativa es asignar las direcciones realesdinmicamente durante la ejecucin. Un dispositivo hardware especial interceptar cadadireccin lgica generada por el programa y le sumar el contenido del registro frontera.

    El resultado ser la direccin real correspondiente como se puede observar en la figura 8.Con esta tcnica el usuario no podr manejar direcciones reales. Su programa utilizar

  • 7/28/2019 Programacion de Sistemas Operativos

    21/38

    21

    direcciones relativas que podrn variar de 0 al mximo permitido por el sistema operativo.Este ser su espacio lgico de direcciones.

    Figura 8. Reasignacin dinmica (Morera y Prez, 2002: 262)

    Posteriormente, el sistema con la ayuda del hardware establecer la correspondencia conel espacio fsico de direcciones. El cual estar limitado por la direccin frontera y eltamao de la memoria real. Esta separacin entre la visin del usuario (espacio lgico), yla memoria real (espacio fsico), permite gestionar sta con mayor eficacia.

    1.2.5. Memoria virtual

    La memoria virtual tiende a simplificar y facilitar la tarea de programacin, pues con estaalternativa de memoria ya no limita a la cantidad de memoria fsica disponible. Lamemoria virtual incluye la separacin de memoria lgica y fsica, esta divisin permiteproporcionar a los programadores una memoria virtual extremadamente grande, cuandosolo se tiene disponible una memoria fsica de menor tamao.

    La memoria virtual contiene espacios de direcciones virtuales de un proceso que hacereferencia a la forma lgica de almacenar un proceso en la memoria, las ventajas de lamemoria virtual son considerables e importantes para la asignacin de procesos.

    La memoria virtual tiene la posibilidad de poder ser utilizada en un sistema demultiprogramacin, manteniendo segmentos de muchos programas dentro. En lo que unprograma est esperando que se extraiga a memoria una de sus partes esta a la espera

  • 7/28/2019 Programacion de Sistemas Operativos

    22/38

    22

    de E/S y mientras no puede ejecutarse, por lo que podr otorgarse la CPU a otro proceso,lo mismo ue en cualquier otro sistema de multiprogramacin.Mientras el sistema realizaba el trabajo real de intercambiar los recubrimientos, elprogramador tena que encargarse de dividir en trozos apropiados el programa. La tarea

    de dividir programas grandes en pequeos trozos modulares era laboriosa y tediosa.

    La idea bsica de la memoria virtual es que el tamao combinado del programa, sus datosy su pila pueden exceder la cantidad de memoria fsica disponible. El sistema operativomantiene en la memoria principal aquellas partes del programa que se estn usando encada momento, manteniendo el resto de las partes del programa en el disco. Por ejemplo,un programa de 16 MB puede ejecutarse sobre una mquina de 4MB eligiendocuidadosamente que 4 MB se tendrn en la memoria en cada instante, e intercambiandopartes del programa entre el disco y la memoria, segn sea necesario.

    La memoria virtual puede funcionar tambin en un sistema multiprogramado, con diversosfragmentos de muchos programas en memoria a la vez. Mientras un programa espera aque se traiga del disco una parte de s mismo, est esperando por una E/S y no puedeejecutarse, por lo que debe asignarse la CPU a otro proceso de la misma forma que encualquier otro sistema multiprogramado.

    La siguiente imagen muestra el cumulo de memoria, pues es utilizada para la asignacindinmica de memoria. Este mtodo permite que la pila crezca hacia abajo en la memoriacon las sucesivas llamadas a funcin.

    Figura 9. Espacios de las direcciones en memoria virtual (Silberschatz, 2006: 281)

    El espacio vaco entre el cmulo y la pila forma parte de la memoria virtual, los espaciosde estas direcciones incluyen espacios de direcciones dispersos, este tipo de direcciones

  • 7/28/2019 Programacion de Sistemas Operativos

    23/38

    23

    tienen a ventaja pues se puede utilizar un espacio disperso, pues estos huecos puedenllenarse a medida que crecen los segmentos de pila.

    Aparte de que es separada la memoria lgica y fsica, la memoria virtual tambin, permoteque dos o ms procesos compartan los archivos y la memoria mediante mecanismos de

    comparticin de pginas.

    Este tipo de dispersin de espacio tiene una serie de ventajas entre las cuales se puedeclasificar. Las bibliotecas del sistema se pueden compartir con otros procesos, la memoriavirtual facilita a los procesos compartir la memoria fsica y permite que un proceso creeuna regin de memoria que los pueda compartir con otros procesos, adems de que secomparten pginas durante la creacin de procesos mediante la llamada al sistemaincrementando la creacin de tareas y ejecucin de procesos.

    Actividad 3. Mapa conceptual del manejo de la memoria

    Para la realizacin de esta actividad retomars lo que has aprendido hasta este momentorespecto a la memoria, su funcin y cmo es utilizada en un sistema operativo. Realizalos siguiente:

    1. Elabora un mapa conceptual que muestre el funcionamiento y manejo de lamemoria en un sistema operativo. Incluye elementos de su jerarqua, los tipos dememoria; as como del funcionamiento de particiones fijas y variables.

    2. Guarda la actividad con el nombre PSO_U1_A3_XXYZ en donde XX representa

    tu apellido(s) y YY tu nombre(s)

    3. Enva el archivo a tu Facilitador(a) mediante la herramienta Tareas para recibirretroalimentacin.

    1.3. Entrada / Salida

    La administracin de dispositivos de Entrada /Salida, resulta ser un tema muy amplio en eldiseo de los sistemas operativos, se la entrada / salida (E/S), una amplia variedad dedispositivos y sus variadas dispositivos y sus diversidad de aplicaciones.

    Una de las principales funciones de la administracin de dispositivos es el controlar todoslos dispositivos de E/S, el sistema operativo debe enviar comandos a los dispositivos,atender las interrupciones y gestionar los errores que se generan.

  • 7/28/2019 Programacion de Sistemas Operativos

    24/38

    24

    Los dispositivos externos de E/S que interactan con las computadoras puedenclasificarse en las siguientes categoras:

    Dispositivos fsicos para humanos, este tipo de dispositivos son propiamente para

    establecer la comunicacin computadora-usuario. Unos de los principalesejemplos se tiene. Teclado, mouse, pantalla, terminar de lector laser, etc.

    Dispositivos para mquina, los dispositivos para mquina son los que se utilizanpara comunicar las partes electrnicas entre computadora-sistema, como discos,tarjetas de video, controladores.

    Dispositivos de caracteres, Estos dispositivos proporcionan o acepta un flujo decaracteres, sin tener en cuenta ninguna estructura de bloque. Comnmente estetipo de dispositivos son los que se conocen como manejadores de los dispositivoscomo son los Drivero controladores.

    Cada dispositivo tiene sus propias caractersticas de acuerdo a su clasificacin depertenencia, cada una de estas diferencias bsicamente se enfoca en la velocidad de losdatos, por lo que es muy posible una gran diferencia de varios datos de transmisin. Lasaplicaciones son tambin una de las diferencias de los dispositivos, pues por lo generalcada tipo de dispositivo necesita su propio software que ser de utilidad para el sistemaoperativo poder gestionar el dispositivo, la complejidad del control es necesario podercontar con la interfazde control al dispositivo.

    1.3.1. Principios de hardware y software de I / O

    Es muy comn el tener diferentes perspectivas respecto al hardware y software de E/S,dependiendo el tipo de manejo que se realice de forma directa con los dispositivos ser elpunto de vista que se tenga referente hacia este trmino, resulta que un programador notendr el mismo punto de vista que un ingeniero en electrnica de dispositivos de E/S.Uno lo ve como la parte fsica tangible que puede interactuar con la maquina, y unprogramador es quien disea esa parte intangible pero es la relacin tarjeta maquina.

    Los dispositivos de E/S se pueden dividir en dos grandes grupos:

    Dispositivos por bloques. Es el encargado de de almacenar la informacin enbloques de tamao fijo, cada uno de ellos deber contar con su propia direccin.

    Dispositivos por caracteres. Este tipo de dispositivo es el que se encarga deproveer y aceptar una serie de caracteres que son convertidos en corrienteelctrica, este tipo de dispositivos no considera la estructura de bloque quecontempla el anterior tipo de dispositivos, tampoco tiene la posibilidad de serdireccionable ni puede realizar la bsqueda.

  • 7/28/2019 Programacion de Sistemas Operativos

    25/38

    25

    Existen varios dispositivos que no se contemplan este tipo de clasificacin pues por logeneral no se pueden ajustar a esta clasificacin. Un ejemplo claro de ello, son los relojeseste tipo de dispositivos no estn considerados como dispositivos por bloques ni tampococomo dispositivos por caracteres, su funcin principal de los relojes consiste en

    suministrar interrupciones a intervalos que ya estn definidos.

    En lo que respecta al software el principal objetivo de este dispositivo de E/S, esprcticamente sencillo de plantear, pues se debe organizar el software mediante capasque puedan ser utilizadas para establecer la prioridad del hardware, para que lassuperiores sean las encargadas de establecer la interfazcon el sistema lo cual ayuda acomunicar de forma ms gil el dispositivo sistema.

    En el mbito de software, existe un concepto clave para poder disear el software de E/S,llamado independencia del dispositivo. El cual tiene la utilidad de que los programas

    puedan interactuar entre dispositivo hardware y dispositivo software, para que esto puedafuncionar el sistema operativo deber tener la facilidad de resolver los problemascausados por las diferencias de dispositivos.

    Los errores que se manejan dentro del software de E/S, se deben manejar lo ms cercanoposible del hardware. Cuando el controlador descubre un error de lectura deber tratar decorregirlo, de lo contrario el sistema operativo es quien podra tratar de corregirlo. Muchasocasiones los errores son transitorios al momento de la lectura de E/S, y estos por logeneral se solucionan reiniciando el proceso de lectura de cada dispositivo.

    Uno de los aspectos claves es cuando ocurre la transferencia, ya puede ser por bloqueo o

    controladas por interrupciones. El dispositivo de E/S fsico es por lo general asncrona, talcomo la CPU que inicia la transferencia y se libera mientras esta a la espera de unanueva interrupcin. Los programas por lo general resultan ser sncronas, despus delcomando de lectura, el programa se detiene hasta la disponibilidad de datos.

    Los dispositivos de uso exclusivo y no exclusivo, son utilizados por lo general al mismotiempo ya que no existen conflictos de mantener abiertos varios archivos en el disco almismo tiempo. Las unidades de cinta es un ejemplo de dispositivos exclusivo ya que soloun proceso de lectura puede estar activo a la vez.

    1.3.2. Dispositivos y manejadores de dispositivos

    Los dispositivos juegan un papel muy importante en el desarrollo de sistemas operativospues sirven para introducir datos, estos datos se leern por los dispositivos de entrada yse almacenan en la memoria principal. Los dispositivos de E/S se pueden agrupar en trescategoras:

  • 7/28/2019 Programacion de Sistemas Operativos

    26/38

  • 7/28/2019 Programacion de Sistemas Operativos

    27/38

  • 7/28/2019 Programacion de Sistemas Operativos

    28/38

    28

    una vez que se ha barrido toda la pantalla. Si no fuera por el controlador del CRT, elprogramador del sistema operativo tendra que programar de forma explcita el barridoanalgico del tubo de imagen del monitor. Con el controlador, el sistema operativoinicializa el controlador con unos pocos parmetros, tales como el nmero de caracteres o

    pxeles por lnea y el nmero de lneas de la pantalla, y deja que el controlador searealmente quien se encargue de dirigir el haz del CRT.

    Existe una gran variedad de controladores y tipos de perifricos, por lo cual es frecuenteencontrar ms de un controlador posible para el mismo dispositivo, cada uno ofreciendoun nivel distinto de funcionalidades.

    Los manejadores de dispositivos son muy variados, casi tanto como los dispositivos deE/S. Muchos de ellos, como los de disco, pueden controlar mltiples dispositivos

    1.3.3. Mecanismos y funciones de manejadores de dispositivos

    Las funciones de manejadores de los dispositivos de entrada y salida consisten en uncomponente mecnico y otro elctrico, en la mayora de las ocasiones se pueden separalas dos partes con el objetivo de contar con el diseo modular y general. La parte elctricase nombra adaptador de dispositivo por lo general al hablar de la parte elctrica se puedeapreciar una tarjeta de circuitos impresos que se puede insertar en una ranura de latarjeta de la computadora, este componente tambin se puede considerar comocomponente mecnico.

    La mayora de los controladores pueden manejar uno o varios dispositivos idnticos, Si lainterfaz es de mismo tipo estndar con la controladora se podrn ajustar para sufuncionamiento. Muchas de las ocasiones en los procesos de E/S de dispositivos elsistema operativo siempre interactua con el controlador y no con el dispositivo. Lasiguiente imagen muestra la forma de cmo se interconectan los dispositivos.

    Imagen 8. Modelo bsico, para la implementacin de dispositivos, entre la CPU y loscontroladores de dispositivos de E/S. (Tanenbaum, 2003: 155)

    La comunicacin entre la CPU y los controladores utiliza un bus de comunicacin simple,pero en equipos de macro computadoras por lo general utilizan un modelo muy distinto

  • 7/28/2019 Programacion de Sistemas Operativos

    29/38

    29

    como posibles bus mltiples de datos. La actividad del controlador est en convertir unflujo de bits a un bloque de bytes y realiza las acciones de correccin de erroresnecesarias, por lo general, se va armando por bloques de bytes en un bufferdentro delcontrolador.

    El controlador tiene algunos registros que se pueden utilizar para comunicar con la CPU,en algunas computadoras los registros forman parte del espacio de direcciones de lamemoria bsica, lo que se conoce como mapeo de memoria de E/S.

    Los controladores de dispositivos, el cdigo dependiente se aloja dentro de estos, cadacontrolador administra un tipo de dispositivo o clase de dispositivos similares. En trminosgenerales, el controlador de dispositivos de software acepta peticiones del softwareindependiente al dispositivo para que puedan ser atendidas, las peticiones ms comuneses el leer un bloque n Si algn controlador est disponible o libre al llegar una peticin

    inicia atendindola, pero si se encontrara ocupado en otra peticin a la llegada de unanueva esta la colocar en la cola de peticiones y lo dejar como pendiente hasta que seaatendida.

    Lo primero que se realiza para atender la peticin de E/S, se debe traducir de trminosabstractos a concretos. Esto deber calcular en que parte del modulo el proceso seencuentra ubicado, para decidir la prioridad de operaciones del hardware. Al decidir laprioridad se comienza a generar la escritura en los registros de dispositivos de este.

    La CPU necesitar direccionar los controladores de dispositivos para intercambiar datoscon ellos, puede solicitar datos del controlador de E/S byte a byte, pero hacindolo as

    estara desperdicindose mucho tiempo de CPU. Por ese motivo normalmente se utilizaun esquema diferente, denominado acceso directo a memoria (DMA; Direct Memory

    Access). El sistema operativo slo puede utilizar DMA si el hardware dispone de uncontrolador de DMA, por lo que la mayora de los sistemas cuentan con l. A veces esecontrolador est integrado en los controladores de disco o en otros controladores, pero taldiseo significa tener un controlador de DMA por cada dispositivo. Ms comnmente, setiene un nico controlador de DMA (por ejemplo en la placa madre) para regular lastransferencias con mltiples dispositivos, a menudo de forma concurrente.

    Cualquier ubicacin fsica, el controlador de DMA tiene acceso al bus del sistema

    independientemente de la CPU, como se muestra en la siguiente imagen. El controladorcontiene varios registros en los que la CPU puede leer y escribir. stos incluyen unregistro de direccin de memoria, un registro contador de bytes y uno o ms registros decontrol. Los registros de control especifican el puerto de E/S que se utilizar, la direccinde la transferencia (leyendo del dispositivo de E/S o escribiendo en el dispositivo de E/S),la unidad de transferencia (un byte a la vez o una palabra a la vez) y el nmero de bytesque se transferirn en cada rfaga. (Tanenbaum, 2003: 276)

  • 7/28/2019 Programacion de Sistemas Operativos

    30/38

    30

    Imagen 9. Funcionamiento de una transferencia con DMA. (Tanenbaum, 2003: 276)

    El controlador es el encargado de leer el bloque de cada sector de la unidad, hasta queest todo el bloque en el bfer interno del controlador. Posteriormente se calcularchecksum para validar que no se producirn errores de lectura que pudieran provocarinterrupciones. Al ejecutar el sistema operativo podr leer ya el bloque de disco del bferde la controladora.

    1.3.4. Estructura de datos en el manejo de dispositivos

    Dentro de una computadora tpica, la estructura de las interrupciones es como se muestraen la figura 15, a nivel de hardware, las interrupciones funcionan como se describe acontinuacin: una vez que el dispositivo termina el proceso de informacin que se leorden, provoca una interrupcin (considerando que el sistema operativo es quien habilitalas interrupciones). Esto lo hace aplicando una seal a una lnea del bus que se le asign.El chip controlador de interrupciones situado en la placa madre detecta esa seal y decidelo que se va hacer a continuacin.

  • 7/28/2019 Programacion de Sistemas Operativos

    31/38

    31

    Imagen 10. Estructura bsica para la representacin de la estructura de manejo dedispositivos. (Tanenbaum, 2003: 286)

    La imagen muestra la forma en la que se produce una interrupcin. En la realidad las

    conexiones entre los dispositivos y el controlador de interrupciones utilizan lneas del busen vez de cables dedicados.

    Si no hay otras interrupciones pendientes, el controlador de interrupciones procesa lainterrupcin inmediatamente. Si est atendindose alguna otra interrupcin en esemomento, o si otro dispositivo ha realizado una peticin simultnea sobre una lnea depeticin de interrupcin de mayor prioridad, el primer dispositivo ser ignoradomomentneamente. En este caso, el dispositivo seguir aplicando la seal de interrupcinal bus hasta que reciba de la CPU el servicio deseado. Para gestionar la interrupcin, elcontrolador vuelca un nmero en las lneas de direccin del bus especificando qu

    dispositivo requiere atencin y aplica una seal que interrumpe a la CPU.

    La estructura de datos en el manejo de dispositivos se maneja la siguiente clasificacin:

    Estructura simple: Es la que se basa en el acceso a operaciones bsicas deentrada/salida para escribir directamente en pantalla o disco, lo que se le nombra comolibre acceso, otra estructura simple es la separacin del kernel y los programas desistemas.

    Estructura por capas: Esta estructura se basa en nuevas versiones tales como unixdonde se disearon para hardware ms avanzado, para dar mayor soporte al mismo

    hardware. La ventaja de la estructura por capas es que cada capa cumple con una seriede funciones y servicios que brinda a las otras capas, esto permite una mejororganizacin del sistema operativo y una depuracin ms fcil de este.

    Existen estructuras que se generan en memoria durante la ejecucin de los procesosrelacionadas con el uso que estos hacen de los archivos. El sistema posee una tablageneral de archivos abiertos, donde se procesa la informacin sobre los archivos activos endices de referencia al archivo.

  • 7/28/2019 Programacion de Sistemas Operativos

    32/38

    32

    La llamada al sistema toma el nombre del archivo busca en el directorio, copia la entradadel directorio en la tabla de archivos abiertos. Todo esto si estas acciones son permitidasde acuerdo a los modos de proteccin del archivo.

    En los sistemas multiusuario, un archivo puede ser abierto por ms de dos usuariossimultneamente, cada uno con su puntero. Existen dos tipos de tablas, la de proceso,que contiene informacin sobre los archivos abiertos por el proceso y contiene unapuntador a la segunda tabla, la de los archivos abiertos en todo el sistema, esta segundatabla tiene informacin independiente del proceso que lo ejecute como ubicacin delarchivo en el disco.

    El sistema operativo partiendo de su estructura por capas, est organizado en cuatrocapas, las cuales tienen su funcin propiamente establecida y una interfaz con la capa

    adyacente. La organizacin se estructura en las siguientes capas: Manejador de interrupcin. Activa al manejador al terminar la E/S. Manejador de dispositivos o drivers. Inicia los registros del dispositivo,

    comprobando el estado. Software de E/S independiente de los dispositivos. Este software est formado por

    la parte de alto nivel de los manejadores, el gestor de cache, el gestor de bloquesy el servidor de archivos.

    Interfaz del sistema operativo. Llamadas al sistema que usan las aplicaciones deusuario.

    Los manejadores de interrupcin, administran las interrupciones que generan los

    controladores de dispositivos una vez que stos estn listos para la transferencia dedatos, o bien han ledo o escrito los datos de memoria principal en caso de acceso directoa memoria. Para administrar la interrupcin se ejecuta el manejador de interrupcin quetendr como efecto es el de salvar los registros, comunicar el evento al manejador deldispositivo y restaurar la ejecucin de un proceso.

    Cuando una interrupcin ocurre muy frecuentemente, caso del reloj, o cuando la cantidadde informacin a transferir es muy pequea, caso del teclado, sera muy costosocomunicar siempre el evento al manejador de dispositivo asociado. En estos casos, elpropio manejador de interrupcin registra la ocurrencia del evento, bien mediante el

    incremento de una variable global para el reloj o la acumulacin de caracteres en unbufferdel teclado.

    Los manejadores de dispositivos, tienen un manejador asociado en el sistema operativo,dicho manejador incluye un cdigo independiente del dispositivo que otorga al nivelsuperior del sistema operativo una interfaz de alto nivel y el cdigo dependiente deldispositivo necesario para programar el controlador del dispositivo a travs de susregistros y datos.

  • 7/28/2019 Programacion de Sistemas Operativos

    33/38

    33

    La principal actividad de un manejador de dispositivo es aceptar las peticiones en formatoabstracto, de la parte del cdigo de E/S independiente del dispositivo, traducir dichaspeticiones a trminos que entienda el controlador, enviar al mismo las rdenes adecuadas

    en la secuencia correcta y esperar a que se cumplan.

    1.3.5. Operaciones de E / S

    En la mayora de las aplicaciones, el archivo es el elemento central. Cualquiera que sea lafinalidad de la aplicacin, implicar la generacin y uso de informacin.

    Normalmente cada sistema dispone de programas de utilidad que se ejecutan como

    aplicaciones privilegiadas. Sin embargo, un sistema de gestin de archivos necesita comomnimo algunos servicios especiales del sistema operativo.

    Para la E/S programada como la basada en interrupciones, la CPU debe encargarse derealizar las operaciones de lectura y escritura sobre ficheros.

    La lectura o bien entrada de datos, permite recibir valores desde los dispositivos oarchivos.

    La escritura, realiza la operacin de escritura de resultados en dispositivos desalida o archivos.

    Ejemplificando sobre un proceso de usuario que desea leer bloques de datos de una

    cinta, uno cada vez, siendo cada bloque de 100 bytes. Los datos van a ser ledos en unazona de datos del proceso de usuario situada en las direcciones virtuales 1000 a 1009. Laforma simple de realizar sera emitir una orden de E/S a la unidad de cinta y esperar a quelos datos estn disponibles. La espera podra ser activa o de manera ms prctica,suspender al proceso en espera de una interrupcin.

    Existen dos problemas con este enfoque: El programa se queda colgado esperando a que la operacin de E/S termine. Dificulta las decisiones de intercambio del sistema operativo.

    Las ubicaciones virtuales 1000 a 1009 deben permanecer en memoria principal durante elcurso de la transferencia del bloque, de lo contrario parte de los datos se perdern.Si un proceso emite una orden de E/S, queda suspendido a la espera del resultado, se leexpulsa antes de comenzar la operacin y se bloquea esperando a que la operacintermine. Mientras tanto, la operacin de E/S queda bloqueada esperando a que elproceso vuelva a memoria, para evitar este interbloqueo, la memoria de usuario implicaen la operacin de E/S debe quedar fija en la memoria principal, inmediatamente despus

  • 7/28/2019 Programacion de Sistemas Operativos

    34/38

    34

    de emitir la peticin de E/S, incluso aunque la operacin de E/S se encole y pueda noejecutarse por algn tiempo.

    Acceso directo a memoria (DMA). Varios controladores, los dispositivos por bloques

    manejan el acceso directo a memoria o DMS. Primero el controlador lee el bloque de launidad en serie, bit por bit, hasta que todo el bloque est en el bufferinterno delcontrolador. A continuacin, el controlador calcula la suma de verificacin para comprobarque no ocurrieron errores de lectura y luego causa una interrupcin. Cuando el sistemaoperativo comienza a ejecutarse, puede leer el bloque del disco del bufferdel controladorbyte por byte o palabra por palabra, ejecutando un ciclo, leyndose en cada iteracin unbyte o una palabra de un registro del controlador y almacenndose en la memoria.

    La finalidad del DMA es para liberar a la CPU de un ciclo programado donde se leen losbytes del controlador uno por uno pues eso tiene prdida de tiempo en la CPU, cuando se

    utiliza DMA la CPU proporciona al controlador dos elementos de informacin adems dela direccin en disco del bloque: la direccin de memoria donde debe colocarse el bloquey el nmero de bytes que deben transferirse, como se muestra en la figura 17.

    Figura 17. Una transferencia DMA es realizada totalmente por el controlador(Tanenbaum, 2003: 158)

    El procedimiento a seguir en una operacin de E/S con DMA son:

    Programacin de la operacin de E/S. Se indica al controlador la operacin, losdatos a transferir y la direccin de memoria sobre la que se efectuar la operacin.

    El controlador contesta aceptando la peticin de E/S.

    El controlador le ordena al dispositivo que lea (para operacin de lectura) unacierta cantidad de datos desde una posicin determinada del dispositivo a su

    memoria interna. Cuando los datos estn listos, el controlador los copia a la posicin de memoria

    que tiene en sus registros, incrementa dicha posicin de memoria y decrementa elcontador de datos pendientes de transferir.

    Los pasos 3 y 4 se repiten hasta que no quedan ms datos por leer. Cuando el registro de contador est a cero, el controlador interrumpe a la UCP

    para in dicar que la operacin de DMA ha terminado.

  • 7/28/2019 Programacion de Sistemas Operativos

    35/38

    35

    Inicio y control de los programas de canal. Estos programas residen en la memoriaprincipal del CPU y se ejecutan en el canal. La CPU puede utilizar para estos fines, sonlas siguientes:

    START I/O Inicia una operacin de E/S. El campo de direccin de la instruccin seemplea para especificar el canal y el dispositivo de E/S que participa en laoperacin.

    HALT I/O Finaliza la operacin del canal. TEST CHANNEL Prueba el estado del canal. TEST I/O Prueba el estado del canal, el subcanal y el dispositivo de E/S.

    Una operacin de E/S se inicia con la instruccin START I/O. La ubicacin del programade canal en la memoria principal viene definida en la palabra de direccin de canal (CAW:Channel Address Word).

    Actividad 4. Dispositivos de Entrada y Salida

    El propsito de esta actividad es distinguir los mecanismos y funciones de losmanejadores de dispositivos, identificando el hardware de E/S. Para ello, realiza losiguiente:

    1. Investiga acerca de los dispositivos de E/S, as como la forma en que interactancon el sistema, para posteriormente clasificarlos e identificarsus manejadores.

    2. Guarda la actividad con el nombre PSO_U1_A4_XXYZ. En donde XX es tuapellido (s) y YY tu nombre (s).

    3. Enva el archivo a tu Facilitador(a) mediante la seccin Tareas para recibirretroalimentacin.

    Autoevaluacin

    Para reforzar los conocimientos relacionados con los temas que se abordaron en estaprimera unidad del curso, es necesario que resuelvas el ejercicio de autoevaluacin. Paraello, ingresa al aula.

  • 7/28/2019 Programacion de Sistemas Operativos

    36/38

    36

    Evidencia de aprendizaje. Administracin del procesador, memoria ylos dispositivos de entrada y salida

    Durante la realizacin de esta actividad retomars lo estudiado en esta primera unidad, ytrabajars con los conceptos bsicos del cmo interacta el Sistema Operativo con losdispositivos de E/S y la administracin del procesador de memoria. Para ello, realiza losiguiente:

    1. Investiga acerca de los temas abordados durante la unidad.

    2. Elabora un cuadro sinptico en el que integres los conceptos bsicos del cmointeracta el Sistema Operativo con los dispositivos de E/S y la administracin delprocesador de memoria.

    3. Consulta la Escala de Evaluacin que se encuentra en la seccin Material de Apoyopara conocer los criterios de evaluacin.

    4. Guarda tu archivo con el nombre PSO_U1_EA_XXYY. En donde XX es tu apellido(s) yYY tu nombre(s)

    5. Enva el archivo a tu Facilitador(a) mediante la seccin portafolio de evidencias pararecibir retroalimentacin.* Recuerda que de ser necesario y en base a los comentarios hechos por parte de tuFacilitador(a), podrs enviar una segunda versin de tu actividad.

    No olvides consultar la Escala de evaluacin que encontrars en la pestaa Material deapoyo para saber los puntos que tienes que considerar en el desarrollo de tu actividadfinal. Si tienes dudas, consulta a tu Facilitador(a).

    Como parte de cada unidad, es importante que ingreses al foro Preguntas deAutorreflexin y consultes las preguntas que tu Facilitador(a) formule, a partir de ellas,debes elaborartu Autorreflexin y enviarla mediante la herramientaAutorreflexiones. Noolvides que tambin se toman en cuenta para la calificacin final.

    Cierre de la unidad

    Has concluido la primera unidad del curso. A lo largo de sta se recordaron conceptosbsicos sobre hilos y que es el multiprocesamiento y el paralelismo, tambin conocistecomo el sistema operativo maneja la memoria cul es su jerarqua, sus particiones ascomo el manejo que hace el Sistema Operativo de la memoria real y virtual, identificaste

  • 7/28/2019 Programacion de Sistemas Operativos

    37/38

    37

    cmo los dispositivos de entrada y salida son manejados por el sistema operativo susmecanismos y estructura; as como las operaciones que realizan. Siendo este ltimo temarealzado por una investigacin de los principales dispositivos de Entrada y Salida E/S.

    Es aconsejable que revises nuevamente la unidad en caso de que los temas que seacaban de mencionar no te sean familiares, o no los recuerdes, de no ser este tu caso, yaests preparado(a) para seguir con la unidad dos, en donde se abordar el sistema dearchivos, sus conceptos bsicos y su jerarqua. As como los tipos de archivos: realesvirtuales y componentes; como el sistema operativo funciona fsica y lgicamente susoperaciones y su implementacin. Todo ello con el fin de obtener el prototipo final alterminar la tercera y cuarta unidad del curso de Programacin de Sistemas Operativos.

    Para saber ms

    Si deseas saber ms acerca de cmo el procesador AMD maneja la energa,virtualizacin, arquitectura, administracin y compatibilidad con diferentes sistemasoperativos, visita la siguiente direccin electrnica:

    http://www.amd.com/LA/PRODUCTS/TECHNOLOGIES/Pages/technologies.aspx

    Fuentes de consulta

    Bibliografa bsica

    Martnez, P., Cabello M. y Daz, M. (1997) Sistemas Operativos. Madrid: Daz deSantos.

    Ortiz, H. (2005) Sistemas Operativos Modernos. Colombia: Universidad deMedelln.

    Santiago, C., Garca, R., Quezada, A., Santana, F. y Santos, J. (2007)Fundamentos de sistemas operativos teoras y ejercicios resueltos. Espaa:Parainfo S.A. de C.V.

    Stallings, W. (2007) Sistemas Operativos. Mxico: Pearson Prentice Hall. Silberschatz, A. (2006) Fundamentos de sistemas operativos. Espaa: Mcgraw-

    Hill. Tanenbaum, A. (2003) Sistemas Operativos Modernos. Mxico: Pearson Prentice

    Hall.

    http://www.amd.com/LA/PRODUCTS/TECHNOLOGIES/Pages/technologies.aspxhttp://www.amd.com/LA/PRODUCTS/TECHNOLOGIES/Pages/technologies.aspxhttp://www.amd.com/LA/PRODUCTS/TECHNOLOGIES/Pages/technologies.aspx
  • 7/28/2019 Programacion de Sistemas Operativos

    38/38

    Bibliografa complementaria

    Morera, J. y Prez, A. (2002) Conceptos de Sistemas Operativos. Madrid:Comillas.