libro programación de sistemas operativos.pdf

110
Programación de sistemas operativos Programa desarrollado Ciencias Exactas, Ingenierías y Tecnología | Ingeniería en Desarrollo de Software 1 Carrera: Desarrollo de Software Cuarto cuatrimestre Programa de la asignatura: Programación de Sistemas Operativos Clave: 160920415 / 150920415

Upload: joseruizhot

Post on 14-Oct-2015

183 views

Category:

Documents


1 download

TRANSCRIPT

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 1

    Carrera:

    Desarrollo de Software

    Cuarto cuatrimestre

    Programa de la asignatura:

    Programacin de Sistemas Operativos

    Clave:

    160920415 / 150920415

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 2

    ndice

    I. INFORMACIN GENERAL DE LA ASIGNATURA ............................................. 7 a. Ficha de identificacin ............................................................................................................. 7

    b. Descripcin ............................................................................................................................... 7

    c. Fundamentacin terica de la asignatura ............................................................................ 8

    d. Propsito ................................................................................................................................... 9

    e. Competencia(s) a desarrollar ................................................................................................. 9

    f. Temario ..................................................................................................................................... 10

    g. Metodologa de trabajo ......................................................................................................... 11

    h. Evaluacin ............................................................................................................................... 12

    i. Fuentes de consulta ................................................................................................................ 13

    II. DESARROLLO DE CONTENIDOS POR UNIDAD ........................................... 14

    UNIDAD 1. ADMINISTRACIN DE PROCESADOR, MEMORIA Y DISPOSITIVOS E/S .............................................................................................. 14

    Propsito ...................................................................................................................................... 15

    Competencia especfica ............................................................................................................ 15

    Presentacin de la unidad ......................................................................................................... 15

    Actividad 1. Presentacin .......................................................................................................... 16

    1.1. Procesador ........................................................................................................................... 16

    1.1.1. Definicin y conceptos .................................................................................................... 18

    1.1.2. Procesos e hilos .............................................................................................................. 19

    1.1.3. Multiprocesamiento ......................................................................................................... 24

    1.1.4. Paralelismo ....................................................................................................................... 24

    Actividad 2. Administracin del Procesador ........................................................................... 25

    1.2. Memoria ............................................................................................................................... 26

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 3

    1.2.1. Administracin de la memoria ....................................................................................... 26

    1.2.2. Jerarqua de la memoria ................................................................................................ 28

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

    1.2.4. Memoria real .................................................................................................................... 30

    1.2.5. Memoria virtual ................................................................................................................ 32

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

    1.3. Entrada / Salida ................................................................................................................... 34

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

    1.3.2. Dispositivos y manejadores de dispositivos ................................................................ 36

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

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

    1.3.5. Operaciones de E / S ...................................................................................................... 43

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

    Autoevaluacin ........................................................................................................................... 46

    Evidencia de aprendizaje. Administracin del procesador, memoria y los dispositivos de

    entrada y salida ........................................................................................................................... 46

    Cierre de la unidad ..................................................................................................................... 47

    Para saber ms ........................................................................................................................... 47

    Fuentes de consulta ................................................................................................................... 48

    UNIDAD 2. ADMINISTRADOR DE SISTEMAS DE ARCHIVOS .......................... 49 Presentacin de la unidad ......................................................................................................... 49

    Propsito ...................................................................................................................................... 49

    Competencia especfica ............................................................................................................ 50

    2.1. Sistemas de Archivos ......................................................................................................... 50

    2.1.1. Concepto ........................................................................................................................... 52

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 4

    2.1.2. Jerarqua de datos .......................................................................................................... 53

    Actividad 1. Sistema de archivo ............................................................................................... 56

    2.2. Tipo de Archivos ................................................................................................................. 56

    2.2.1. Real ................................................................................................................................... 58

    2.2.2. Virtual ................................................................................................................................ 58

    2.2.3. Componentes ................................................................................................................... 59

    Actividad 2. Tipos de archivos ms comunes en sistema operativo .................................. 60

    2.3. Organizacin del sistema de archivos, lgica y fsica ................................................... 61

    2.3.1. Operaciones con archivos .............................................................................................. 63

    2.3.2. Implementacin de archivos .......................................................................................... 64

    Actividad 3. Mapa conceptual de la organizacin del sistema de archivos ...................... 67

    Autoevaluacin ........................................................................................................................... 68

    Evidencia de aprendizaje. Manejo de archivos en Linux (deban, fedora, Ubuntu) y

    Windows....................................................................................................................................... 68

    Cierre de la unidad ..................................................................................................................... 69

    Para saber ms ........................................................................................................................... 69

    Fuentes de consulta ................................................................................................................... 69

    UNIDAD 3. SEGURIDAD Y PROTECCIN .......................................................... 71 Presentacin de la unidad ......................................................................................................... 71

    Propsito ...................................................................................................................................... 71

    Competencia especfica ............................................................................................................ 71

    3.1. Entorno de Seguridad ........................................................................................................ 72

    Actividad 1. Seguridad y proteccin dentro del diseo de un sistema operativo ............. 77

    3.1.1. Clasificaciones de la seguridad ..................................................................................... 77

    3.1.2. Verificacin de autenticidad de usuarios ..................................................................... 78

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 5

    3.1.3. Validacin y amenazas al sistema ................................................................................ 79

    Actividad 2 Tabla de elementos que afectan la seguridad de un sistema ........................ 80

    3.2. Concepto y objetivos de proteccin ................................................................................. 81

    3.2.1. Mecanismos de proteccin ............................................................................................ 82

    3.2.2. Funciones del sistema de proteccin ........................................................................... 83

    3.2.3. Implementacin de matrices de acceso....................................................................... 84

    Actividad 3. Cuadro sinptico de los mecanismos de proteccin ....................................... 85

    Autoevaluacin ........................................................................................................................... 85

    Evidencia de aprendizaje. Diagrama de flujo del sistema operativo .................................. 86

    Cierre de la unidad ..................................................................................................................... 86

    Para saber ms ........................................................................................................................... 87

    Fuentes de consulta ................................................................................................................... 87

    UNIDAD 4. DISEO DE SISTEMAS OPERATIVOS ............................................ 88 Presentacin de la unidad ......................................................................................................... 88

    Propsito ...................................................................................................................................... 88

    Competencia especfica ............................................................................................................ 88

    4.1. Base del diseo de sistemas operativos ......................................................................... 89

    4.1.1. La visin profesional del diseo .................................................................................... 90

    4.1.2. Cuestiones bsicas sobre el diseo ............................................................................. 91

    4.1.3. Conceptos generales de una arquitectura .................................................................. 93

    4.1.4. Caractersticas diferenciales del diseo ...................................................................... 94

    Actividad 1. Diseo de un sistema operativo ......................................................................... 95

    4.2. Diseo de interfaces ........................................................................................................... 95

    4.2.1. Principios sobre el diseo de interfaces ...................................................................... 98

    4.2.2. Paradigmas ...................................................................................................................... 98

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 6

    4.2.3. Llamadas al sistema ....................................................................................................... 99

    Actividad 2. Arquitectura del diseo del sistema operativo Linux ..................................... 100

    4.3. Implementacin y desempeo ........................................................................................ 101

    4.3.1. Estructura del sistema .................................................................................................. 101

    4.3.2. Mecanismos en comparacin con polticas............................................................... 104

    4.3.3. Estructuras estticas o dinmicas .............................................................................. 104

    4.3.4. Implementacin descendente o ascendente............................................................. 105

    4.3.5. Principios de optimizacin............................................................................................ 106

    4.3.6. Uso de cachs ............................................................................................................... 106

    Actividad 3. Diagrama de flujo para la implementacin de un SO ................................... 107

    Actividad 4. Cmo optimizar Windows .................................................................................. 107

    Autoevaluacin ......................................................................................................................... 108

    Evidencia de aprendizaje. Diagrama de flujo para disear un sistema operativo .......... 108

    Cierre de la unidad ................................................................................................................... 109

    Para saber ms ......................................................................................................................... 109

    Fuentes de consulta ................................................................................................................. 110

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 7

    I. Informacin general de la asignatura

    a. Ficha de identificacin

    Nombre de la Ingeniera: Desarrollo de software

    Nombre del curso o

    asignatura Programacin de Sistemas Operativos

    Clave de asignatura: 160920415 / 150920415

    Seriacin: No aplica

    Cuatrimestre: Cuarto

    Horas contempladas: 72

    b. Descripcin

    Para que una computadora pueda hacer funcionar alguna aplicacin o programa, debe

    realizar varias actividades, que a veces no nos imaginamos, estas operaciones estn

    dadas con la forma en que se comunican el procesador, la memoria y los dispositivos.

    Bien sabemos que una computadora en la actualidad contiene uno o mas procesadores,

    memoria RAM y memoria de almacenamiento tales como discos duros, adems de

    ranuras de expansin en las que se colocan tarjetas como tarjetas de video, red, cada uno

    de los cuales funcionan de manera transparente a nuestros ojos es decir no nos

    preocupamos por el manejo fsico simplemente los usamos ejemplo al guardar un archivo

    en el disco duro no tenemos que manipular como se mueve el lector y cuantos y cual

    espacio fsico va a utilizar y el como se guarda ah, para poder controlar esto tendramos

    que ser expertos en electrnica y muchas ms cosas.

    La asignatura de Programacin de sistemas operativos es continuidad de la materia

    Sistemas Operativos y primordial para quienes estn estudiando una licenciatura en la

    que se diseen programas; por lo mismo, los conocimientos y habilidades que desarrollen

    en este curso sern indispensables para la mayora de las asignaturas subsecuentes del

    plan de estudios, tal es el caso de Bases de datos, Programacin orientada a objetos,

    Programacin web, Estructura de datos, entre otras.

    Los estudiantes que cursen esta asignatura podrn deducir la manera en que el sistema

    operativo lleva a cabo todos sus controles, para esto se ha desglosado el contenido de la

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 8

    materia en 4 unidades que abordan lo siguiente: la primera unidad habla sobre la

    administracin del procesador de la memoria y de los dispositivos de entrada y salida, la

    segunda unidad trata sobre la manipulacin que se tiene en el sistema de archivos, la

    tercera aborda cmo los conocimientos de seguridad indispensables y se abarcarn

    tcnicas de proteccin de acceso al sistema y en la cuarta la bases el diseo de interfaces

    la implementacin y el desempeo que implica el diseo de sistemas operativos

    c. Fundamentacin terica de la asignatura

    La asignatura de Programacin de Sistemas Operativos, tiene como finalidad principal el

    mostrar cmo se programa un sistema operativo, distinguiendo cmo administra el

    procesador, la memoria y los dispositivos de entrada y salida que conocemos tales como

    teclado, monitor, mouse, etc. As, al identificar cmo el sistema operativo interacta con

    estos elementos mencionados, determinars los procesos que se siguen en cada uno de

    ellos.

    Otra parte importante de esta asignatura es que identifiques qu procesos sigue el

    sistema de archivos, cmo es manejado y organizado por el sistema operativo, sin dejar

    de tomar en cuenta la parte de seguridad y proteccin utilizando las funciones tcnicas en

    cuanto a polticas y mecanismos, de stas.

    Aplicando las caractersticas que conforman la parte fsica de una mquina, el manejo de

    archivos, su seguridad y proteccin, As se podr disear y entender como es la

    implementacin y el desempeo del Sistema Operativo.

    Desde el inicio en la primera unidad, el estudiante interactuar con las herramientas del

    aula virtual, como lo son foros, bases de datos. Posteriormente, se llevarn a cabo

    trabajos, as como tambin se realizarn actividades de investigacin que complementen

    los contenidos, lo que permita ejercitar y presentar sus evidencias de aprendizaje de los

    temas vistos en cada unidad.

    El enfoque terico metodolgico en el cual se sustenta la asignatura es un enfoque mixto,

    donde se considerarn los siguientes aspectos:

    Criterio cuantitativo: nmero de aportaciones: mnimo 2/tema a discutir.

    Criterio cualitativo a travs de escalas:

    o Excelente: 100

    o Bien: 80

    o Regular: 60

    o Insuficiente: 50

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 9

    d. Propsito

    Si bien recordamos un sistema operativo controla y coordina el hardware con el software,

    siendo la interfaz de comunicacin entre el hardware y el usuario, hasta ahora slo

    participbamos como usuarios del mismo, sin preocuparnos por cmo funciona

    realmente.

    Exigimos que sea rpido, que tenga rendimiento y buena gestin de recursos, es decir

    que este optimizando el uso del hardware, queremos que el sistema sea fcil de usar,

    pero rara vez nos preguntamos cmo funciona o cmo controla cada uno de estos

    accesos.

    El propsito inicial de esta materia es identificar como el sistema operativo internamente

    controla y coordina al procesador, a la memoria, los dispositivos de entrada y salida;

    adems cmo maneja los archivos para un buen control, desde luego sin dejar de tomar

    en cuenta los niveles de seguridad y proteccin que exigimos como usuarios, para lo

    ms valioso que manejamos que es la informacin, de manera que visualizamos el SO

    (Sistema Operativo) como el que controla y asigna los recursos.

    Teniendo en cuenta todos estos conceptos, se realza el propsito final de esta materia,

    que es identificar el diseo de un sistema operativo, desde su base, su interfaz y su

    implementacin.

    e. Competencia(s) a desarrollar

    Competencia general:

    Emplear las distintas partes que conforman un sistema operativo para la administracin

    eficaz de los recursos utilizando las diferentes herramientas del diseo.

    Competencias especficas:

    Describir la administracin del procesador, memoria y dispositivos de entrada y

    salida para reconocer las caractersticas que los distingue como interactan con el

    sistema operativo mediante las transiciones entre ellos.

    Identificar el proceso que siguen los archivos para la administracin y buen manejo

    de los mismos con el anlisis mediante la lgica que sigue el sistema.

    Utilizar las funciones y tcnicas para validar las amenazas de un sistema como

    polticas y mecanismos mediante la diferenciacin de seguridad y proteccin.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 10

    Aplicar la visin bsica sobre el diseo, para la implementacin y desempeo del

    S.O., mediante el principio de diseo, con el uso de las diferentes caractersticas

    de la arquitectura que lo conforman.

    f. Temario

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

    1.1. Procesador

    1.1.1. Definicin y conceptos

    1.1.2. Procesos e hilos

    1.1.3. Multiprocesamiento

    1.1.4. Paralelismo

    1.2. Memoria

    1.2.1. Administracin de la memoria

    1.2.2. Jerarqua de la memoria

    1.2.3. Multiprogramacin con particiones fijas y variables

    1.2.4. Memoria real

    1.2.5. Memoria virtual

    1.3. Entrada/Salida

    1.3.1. Principios de hardware y software de I/O

    1.3.2. Dispositivos y manejadores de dispositivos

    1.3.3. Mecanismos y funciones de manejadores de dispositivos

    1.3.4. Estructura de datos en el Manejo de dispositivos

    1.3.5. Operaciones de E/S

    Unidad 2. Administrador de Sistemas de Archivos

    2.1 . Sistemas de Archivos

    2.1.1 Concepto

    2.1.2 Jerarqua de datos

    2.2 . Tipo de Archivos

    2.2.1 Real

    2.2.2 Virtual

    2.2.3 Componentes

    2.3 . Organizacin del sistema de archivos, lgica y fsica

    2.3.1 Operaciones con archivos

    2.3.2 Jerarqua de Datos

    Unidad 3. Seguridad y Proteccin

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 11

    3.1 Entorno de Seguridad

    3.1.1 Clasificaciones de la seguridad

    3.1.2 Verificacin de autenticidad de usuarios

    3.1.3 Validacin y amenazas al sistema

    3.2 Concepto y objetivos de proteccin

    3.2.1 Mecanismos de proteccin

    3.2.2 Funciones del sistema de proteccin

    3.2.3 Implementacin de matrices de acceso

    Unidad 4. Diseo de Sistemas Operativos

    4.1. Base del diseo de sistemas operativos

    4.1.1. La visin profesional del diseo

    4.1.2. Cuestiones bsicas sobre el diseo

    4.1.3. Conceptos Generales de una arquitectura

    4.1.4. Caractersticas diferenciales del diseo

    4.2. Diseo de interfaces

    4.2.1. Principios sobre el diseo de interfaces

    4.2.2. Paradigmas

    4.2.3. Llamadas al sistema

    4.3. Implementacin y desempeo

    4.3.1. Estructura del sistema

    4.3.2. Mecanismos en comparacin con polticas

    4.3.3. Estructuras estticas o dinmicas

    4.3.4. Implementacin descendente o ascendente

    4.3.5. Principios de optimizacin

    4.3.6. Uso de cachs

    g. Metodologa de trabajo

    El Aprendizaje Basado en la Resolucin de Problemas como metodologa de aprendizaje

    aplicada a la asignatura permitir que se presenten situaciones diversas para que se lleve

    a cabo la aplicacin de diagramas de flujo y procedimientos, as mismo rutinas que

    permitan ejercitar y poner en prctica conocimientos y procedimientos que promuevan el

    reforzamiento de lo aprendido o la resolucin de dudas; as como el aprendizaje

    significativo, al comprobar los elementos tericos.

    Al aplicar este tipo de metodologa en la asignatura, tambin se toman en cuenta:

    El uso de las siguientes herramientas tecnolgicas: a) un foro general al inicio de la

    asignatura cuyo propsito es favorecer la comunicacin y el conocimiento entre los

    estudiantes, b) foros que sirven como base para participar en temas propuestos y

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 12

    obtener un mayor conocimiento acerca de los temas de cada unidad y c) bases de

    datos para trabajar tablas descriptivas y comparativas sobre diversos temas de la

    asignatura.

    La realizacin de actividades formativas, entre las que destacan: tareas en las que

    se analiza el tema y se selecciona un ejemplo u otras en las que dado un ejemplo

    especfico se pide entregar documentacin segn sea solicitado, tambin

    investigaciones y disear diagramas como parte final para la aplicacin del

    conocimiento adquirido.

    La construccin del portafolio de evidencias (e-portafolio) elaboracin de cuadro

    sinptico para evidenciar el conocimiento adquirido, un documento referenciando la

    unidad 2 y diagramas de flujo para las siguientes unidades que reflejan los temas

    abordados en cada una de las unidades que integran la asignatura.

    La realizacin de actividades de auto-evaluacin que den cuenta del grado de

    aprendizaje adquirido y refuercen los conocimientos.

    h. Evaluacin

    En el marco del Programa ESAD, la evaluacin se conceptualiza como un proceso

    participativo, sistemtico y ordenado que inicia desde el momento en que el estudiante

    ingresa al aula virtual. Por lo que se le considera desde un enfoque integral y continuo.

    Por lo anterior, para aprobar la asignatura, se espera la participacin responsable y activa

    del estudiante as como una comunicacin estrecha con su facilitador para que pueda

    evaluar objetivamente su desempeo. Para lo cual es necesaria la recoleccin de

    evidencias que permitan apreciar el proceso de aprendizaje de contenidos: declarativos,

    procedimentales y actitudinales.

    En este contexto la evaluacin es parte del proceso de aprendizaje, en el que la

    retroalimentacin permanente es fundamental para promover el aprendizaje significativo y

    reconocer el esfuerzo. Es requisito indispensable la entrega oportuna de cada una de las

    tareas, actividades y evidencias as como la participacin en foros y dems actividades

    programadas en cada una de las unidades, y conforme a las indicaciones dadas. La

    calificacin se asignar de acuerdo con la rbrica establecida para cada actividad, por lo

    que es importante que el estudiante la revise antes realizarla.

    A continuacin presentamos el esquema general de evaluacin.

    ESQUEMA DE EVALUACIN

    Evaluacin

    continua

    Interacciones individuales y

    colaborativas 10%

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 13

    Tareas 30%

    E-portafolio. 50% Evidencias 40%

    Autorreflexiones 10%

    Examen 10%

    CALIFICACIN

    FINAL 100%

    Cabe sealar que para aprobar la asignatura, se debe de obtener la calificacin mnima

    indicada por ESAD.

    i. Fuentes de consulta

    Bibliografa bsica

    Stallings, W. (2007) Sistemas Operativos. Mxico: Pearson Prentice Hall.

    Stallings, W. (2007) Sistemas Operativos: aspectos internos y principios de diseo.

    Pearson Prentice Hall.

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

    Hall.

    Tanenbaum, A. (2009) Sistemas Operativos: diseo e implementacin. Mxico:

    Pearson Prentice Hall.

    Bibliografa complementaria

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

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 14

    II. Desarrollo de contenidos por unidad

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

    El procesador esta formado por planificadores en los cuales se decide que se va a

    ejecutar primero y que se ejecuta despus, adems de a que le va a dar respuesta de

    manera inmediata y que puede esperar, todo esto con la finalidad de optimizar varios

    puntos tales como: velocidad en respuesta, certeza, excelencia en respuesta, etc.,

    entendiendo as a los planificadores como las partes lgicas del procesador que analizan

    los datos recibidos y toman decisiones de respuesta en cuanto velocidad y prioridad.

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

    continuacin:

    Planificador a largo plazo: En este, el procesador decide el orden de ejecucin

    con una adecuada organizacin de los recursos para que el trabajo se ejecute de

    forma ordenada y eficiente segn el modo de procesamiento.

    Planificador a medio plazo: Este planificador es responsable de cargar y

    descargar trabajos desde el disco a la memoria y de la memoria al disco

    considerando el grado de sobrecarga del sistema.

    Planificador a corto plazo: Es quien decide cundo, cmo y por cunto tiempo

    recibe el procesador un proceso que est preparado para ejecutar.

    As consideraremos como primer componente para que un sistema operativo funcione es

    el procesador.

    El segundo componente es la memoria, la principal necesidad para cualquier sistema

    operativo es el que la memoria sea rpida para que al ejecutar una instruccin el CPU o

    procesador, no se vea afectado por la memoria de bajo rendimiento.

    Dentro de un sistema operativo, la memoria no es el nico recurso que debe

    administrarse, los dispositivos de Entrada/Salida tambin interactan con el sistema

    operativo y por lo regular constan de dos partes: una tarjeta controladora y el dispositivo

    en s, la tarjeta controladora es un chip o un conjunto de chips montados en una tarjeta

    insertable, que controla fsicamente al dispositivo. Dicha controladora acepta comandos

    del sistema operativo y los ejecuta.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 15

    Considerando entonces que el tercer componente son los dispositivos en si. Los

    dispositivos tienen interfaces relativamente simples, debido a que no tienen mucha

    capacidad para estandarizarlos, esto ltimo es necesario para que cualquier controladora

    de 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 sus

    procesos, de la memoria y sus tipos particiones y administracin; sin dejar de tomar en

    cuenta 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 salida

    para reconocer las caractersticas que los distingue como interactan con el sistema

    operativo mediante las transiciones entre ellos.

    Presentacin de la unidad

    Bienvenido(a) a la asignatura de Programacin de Sistemas Operativos. En esta primera

    unidad trabajaremos y entenderemos sobre como el Sistema Operativo hace uso del

    procesador administrndolo en cual si bien recordamos es el cerebro de la computadora

    o donde se realizan las operaciones tambin es conocido como CPU, las partes que lo

    forman, como cambia de un proceso a otro, como manipula las actividades y entender

    como es que controla varios procesos a la vez o los hace en forma paralela una vez que

    entendamos como el Sistema Operativo administra el procesador entenderemos como

    controla 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 y

    por ultimo la gran ventaja de controlar las operaciones que se realizan en los dispositivos

    de entrada y salida .

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 16

    Actividad 1. Presentacin

    Como primer actividad en el estudio de la asignatura, te presentamos un foro de

    discusin general, creado para que comentes asuntos relacionados con la asignatura; en

    l, conocers a tus compaeros de grupo, entre todos podrn apoyarse, resolver dudas e

    inquietudes 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 por

    sus siglas en ingles Central Processing Unit, es la unidad que procesa todas las tareas

    que realizara la computadora, permitiendo el procesamiento de informacin numrica

    ingresada en formato binario, as como el proceso de instrucciones almacenadas en la

    memoria.

    El CPU, es un dispositivo electrnico el cual funciona enviando pulsos elctricos a razn

    de Hertz, un CPU con 50 MHz enviar 50.000.000 pulsos elctricos por segundo donde el

    procesador 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 ciclos

    necesarios para que el microprocesador ejecute la instruccin.

    La potencia del microprocesador se mide por el nmero de instrucciones por segundo

    que es capaz de procesar.

    Cada CPU ejecuta un conjunto de instrucciones especficas a su arquitectura, por lo tanto

    no se pueden ejecutar programas de una arquitectura de un tipo de procesador a otro con

    estructura de manejo de proceso diferente. Puesto que tener acceso a la memoria para

    obtener una instruccin o una palabra de datos tarda mucho ms que ejecutar una

    instruccin, todas las CPUs contienen algunos registros para guardar variables

    importantes y resultados temporales. As el conjunto de instrucciones por lo general

    incluyen instrucciones para cargar una palabra de la memoria en un registro, y para

    almacenar en la memoria una palabra que est en un registro.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 17

    El sistema operativo debe tener conocimiento de todos los registros, al multiplexar en el

    tiempo el CPU, es comn que el sistema operativo tenga que detener el programa en

    ejecucin para iniciar o reiniciar otro. Cada vez que el sistema operativo detiene un

    programa en ejecucin, debe guardar todos los registros para que puedan restablecer

    cuando 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 instruccin

    a la vez, una CPU podra tener unidades individuales para tomar, decodificar y ejecutar de

    modo que mientras est ejecutando la instruccin, tambin pueda estar decodificando la

    instruccin n+1 y tomando la instruccin n+2.

    El procesador realiza e interpreta una serie de instrucciones contenidas de un software y

    procesa los datos que este genera. Existen un gran nmero de modelos y marcas de

    procesadores 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 de

    operacin 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 del

    trabajo por la capa de software, los procesadores poseen una estructura interna

    simple 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 forma

    temporal 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.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 18

    Instruccin (RI), almacena las instrucciones que se va procesando.

    Contador ordinal (OC).

    Casi todas las computadoras tienen varios registros especiales que puede ver el

    programador. Uno de ellos es el contador de programa, el cual contiene la direccin de

    memoria en la que se encuentra la siguiente instruccin que ser tomada. Una vez

    obtenida 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 pila

    actual en la memoria. La pila contiene un marco por cada procedimiento en el que se ha

    entrado, pero del cual no se ha salido an. El marco de pila de un procedimiento contiene

    los parmetros de entrada, variables locales y variables temporales que no se guardan en

    registros.

    1.1.1. Definicin y conceptos

    El procesador es el encargado de procesar los datos que estn almacenados en una

    computadora 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 y

    ejecuta, llamando a la ALU cuando es necesario, sincroniza todas las operaciones

    de reas de almacenamiento principal llamadas registros y memoria cach.

    El procesador necesita para su funcionamiento de ciertas reas de almacenamiento y que

    son de dimensiones mnimas; sin embargo, tienen la ventaja de su rapidez. Comparados

    con los accesos a RAM, los registros son como mnimo 10 veces ms veloces.

    Existen 4 registros llamados AX, BX, CX y DX, cada uno de ellos tienen asignada una

    actividad especfica.

    AX. Nombrado acumulador; contiene el operador que interviene en las

    operaciones aritmticas y lgicas. En general las instrucciones que trabajan con

    este 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 valores

    para su direccionamiento.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 19

    CX. Es el contador, las instrucciones que se realizan durante un proceso dentro

    del sistema operativo conocidas como bucle (LOOP) utilizan este registro como

    contador de n veces que un ciclo repite dentro de un proceso.

    DX. Registro de datos multiuso, se utiliza en operaciones de multiplicacin y

    divisin junto con AX, su aplicacin suele estar dentro de operaciones de

    entrada/salida de puertos IN/OUT.

    Los registros de segmento son utilizados para integrar las direcciones de otros

    segmentos, para su aplicacin en conjunto con otros registros que sealan las direcciones

    concretas dentro de estos segmentos, lo cual permite la gestin total de la memoria

    direccional, y para estos segmentos bsicamente se contemplan 4 tipos:

    Segmento de cdigo CS. Apunta la ubicacin del segmento de cdigo del

    programa el cual se est ejecutando en ese instante.

    Segmento de datos DS. Seala la ubicacin del segmento de datos del programa

    en ejecucin.

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

    programa en ejecucin.

    Segmento extra ES. Es un segmento auxiliar, es utilizado para indicar la existencia

    de espacio extra de algunos de los segmentos anteriores, es til tambin para

    guardar de forma temporal las direcciones intermedias entre segmentos.

    Los registros de puntero estn destinados a contener direcciones que son

    desplazamientos dentro de los segmentos indicados por los registros de segmento.

    Puntero de instruccin IP y contador de programa PC, establece la direccin de la

    instruccin e indican el desplazamiento de la instruccin siguiente a ejecutar que

    ubica dentro del segmento CS.

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

    SS.

    Puntero base BP. Seala el desplazamiento donde se encuentra el origen de la

    zona 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 dentro

    de un sistema operativo el cual puede necesitar de ciertos recursos determinantes para su

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 20

    ejecucin tales como: Tiempo de CPU, archivos de Entrada/salida, dispositivos de

    _entrada/salida, y memoria principalmente, todos los recursos que utiliza se asignan al

    proceso en el momento de que es creado o bien al momentos de ser ejecutado. Cabe

    mencionar que cada uno los procesos puede tener su propia CPU virtual.

    Una gran mayora de los sistemas, los procesos suelen ser la determinante para la

    realizacin de los trabajos. Cada sistema contiene sus propios procesos, y se dividen en

    los 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 lo

    tantos estos procesos se pueden ejecutar de manera simultnea para la realizacin de

    tareas interactivas.

    Durante la ejecucin del cdigo de un proceso, tambin utiliza la actividad actual que esta

    representada por el valor del contador de programa y por los contenidos de los registros

    del procesador. Por lo general de la misma forma, un proceso tambin incluye la pila del

    proceso, 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 forma

    dinmica al proceso en tiempo de ejecucin, en la siguiente imagen, se presenta la

    estructura de un proceso ubicado dentro de la memoria, indicando el estado que va

    tomando 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 su

    estructura 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 es

    una entidad activa, la cual contiene las instrucciones que se deben ejecutar y un conjunto

    de recursos asociados a los registro del cpu para su funcionamiento.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 21

    Un programa se convierte en proceso al cargarse en memoria, lo cual lo convierte en

    archivo ejecutable. Considerando un ejemplo que ayude a distinguir la diferencia, consiste

    en 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

    la obra: Cemento, Cal, Arena, Tabiques, Varilla, Alambre, Clavo, Madera, etc., en este

    ejemplo los planos es el programa, la persona de la construccin es el CPU y los

    elementos o materiales para la construccin son los datos de entrada. El proceso es la

    actividad 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 trabajar

    en un proceso para atender a uno distinto.

    La jerarqua de los procesos que manejan el concepto de proceso debe contar con algn

    mecanismo para crear todos los procesos necesarios, en los sistemas muy sencillos o en

    los 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 la

    mayor parte de los sistemas se necesita algn mecanismo para crear y destruir procesos

    segn sea necesario durante la operacin.

    En el estado de procesos, aunque cada proceso es una entidad independiente, con su

    propio contador de programa y estado interno, los procesos a menudo necesitan

    interactuar con otros procesos. Un proceso podra generar ciertas salidas que otro

    proceso utiliza como entradas.

    Mientras un proceso es ejecutado va modificando el estado, dependiendo de la actividad

    que 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. Las

    transiciones 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 tal

    forma que los usuarios o el programa de aplicacin no conocan su procedencia. Sin

    1. Un proceso se bloquea para aceptar entradas

    2. El planificador escoge otro proceso

    3. El planificador escoge este proceso

    4. Hay entradas disponibles

    Ejecutndose

    Bloqueado Listo

    1 2

    3

    4

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 22

    embargo, es bastante til para el rendimiento de memoria y administracin de recursos

    dentro de los procesos del CPU, que de un proceso se pueda derivar otro proceso, el

    nuevo proceso se podra ejecutar de forma paralela con la aplicacin y podra ser activado

    cada que se mande a llamar.

    Durante el bloqueo de control de procesos en un sistema operativo, es representado

    mediante un bloque de control de procesos. Un bloque puede integrar algunos de los

    elementos de informacin que especifiquen el estado de un proceso, algunos de estos

    elementos se tiene:

    Estado del proceso. En este estatus el proceso puede tomar la forma bsica de

    inicio, nuevo, listo, ejecutando, en espera, detenido, finalizado, etc.

    Contador de programa. El contador de programa identifica la ubicacin de la

    siguiente instruccin que se ejecutara por el proceso.

    Registros en CPU. Los diferentes registro que se pueden utilizar para el proceso

    dependen del tipo y nmero as como de la arquitectura del CPU, para estos

    registros se incluyen los ya tratados en tema anterior.

    Estado y planificacin de CPU. La planificacin de CPU establece que proceso

    tiene mayor prioridad para el buen funcionamiento y manejo de recursos.

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

    de segmentos.

    Informacin contable. Este elemento contiene la cantidad de CPU de tiempo real

    empleado, lmites de tiempo asignados y nmeros de cuenta.

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

    al proceso.

    Por otro lado la finalizacin de un proceso, debe ser determinante que un proceso indique

    la finalizacin de su tarea. Para esto la aplicacin deber detectar una llamada o peticin

    explicita sobre el servicio del sistema operativo que determine la finalizacin del proceso

    demandante.

    Durante un proceso tradicional la existencia de hilos de control, que representa a una

    actividad, en un proceso tradicional puede existir un solo hilo de control y un solo contador

    de programa en cada proceso. Sin embargo, algunos sistemas operativos modernos

    manejan mltiples hilos de control dentro de un proceso.

    La siguiente imagen presenta un modelo de solicitud donde la existencia de un proceso

    puede utilizar hilos simples y mltiples hilos, que reciben solicitudes para procesar el

    archivo y la devolucin de datos o actualizacin.

    Estos hilos de control normalmente se llaman slo hilos, en la siguiente imagen, se podr

    observar tres procesos tradicionales, cada proceso tiene su propio espacio de direcciones

    y un solo hilo de control. A diferencia, en el segundo esquema se observa un solo proceso

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 23

    con tres hilos de control. Aunque en ambos casos se tienen tres hilos, cada uno de ellos

    opera en un espacio de direcciones distinto, en tanto al otro caso los tres hilos comparten

    el mismo espacio de direcciones.

    Imagen 3. (a) Estructura de tres procesos con un hilo simple y espacio de direcciones

    distinto. (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 solicitud

    es procesada es entregada a un hilo, si este hilo se bloquea, los dems hilos pueden

    continuar ejecutndose de manera que se podrn realizar nuevas solicitudes ya sea

    inclusive de E/S de disco. A diferencia del modelo (a), no es muy conveniente ya que

    todos 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 hilos

    se manejaban de forma simple de pilas. La principal desventaja que se tena con este

    mtodo, 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, el

    sistema operativo selecciona el hilo que se ejecutar enseguida ya sea para el mismo

    proceso o un proceso distinto. Para realiza la planificacin, el kernel deber saber la

    existencia 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 de

    forma significante uno del otro. La modificacin de hilos es ms gil cuando la

    administracin de hilos se realiza en el espacio de usuario que cuando se realiza una

    llamada al kernel.

    Ya sea que los hilos se puedan administrar por el kernel o en el espacio de usuario, se

    introducen varios problemas que se debern resolver y modificar considerablemente el

    modelo de programacin para un mejor rendimiento del sistema operativo.

    Contador de pgina Hilo Proceso

    Computadora Computadora

    (a) (b)

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 24

    1.1.3. Multiprocesamiento

    En sistema operativo que tiene mltiples CPU, puede compartir la carga de

    procesamiento; sin embargo, el problema de la planificacin se hace ms difcil. La idea a

    enfocar sobre el multiprocesamiento es en base a los sistemas en lo que los

    procesadores son idnticos, homogneos en relacin a su funcionalidad, existen

    diferentes limitaciones que afectan a la planificacin.

    Un mtodo para planificar las CPU para un sistema multiprocesador consiste en que

    todas las decisiones sobre la planificacin, el procesamiento de E/S y varias actividades

    del sistema sean administrados por un mismo procesador. A este multiprocesamiento

    asimtrico pareciera simple, pues solo existe un procesador que accede a las estructuras

    de datos del sistema, minimizando la necesidad de compartir datos.

    Otro mtodo es el multiprocesamiento simtrico, este tiene como cualidad que cada uno

    de los procesadores se auto-planifica, y lo procesos pueden estar en una cola comn de

    procesos preparados, o bien cada procesador puede ser propietario de su cola de

    procesos preparados de forma independiente, esta mtodo se puede establecer que el

    planificador de cada procesador analice la cola de procesos preparados y seleccione un

    proceso para ejecutarlo. Una programacin eficiente del sistema se considerar aquella

    en la que el procesador pueda seleccionar un proceso que este dentro de una estructura

    de datos y que dos procesadores no seleccionarn el mismo proceso y tambin evitar la

    prdida de procesos de la cola.

    Hoy en da la mayora o prcticamente todos los sistemas operativos modernos tienen la

    factultad 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 existencia

    de varios procesadores en el sistema, la tcnica de programacin paralela determina el

    poder dividir la ejecucin de un proceso en distintos mdulos del sistema.

    Mientras la CPU est ejecutando un programa, tambin puede estar leyendo un disco

    esto es porque la CPU, esto se realiza en el curso de muy poco tiempo ya que puede

    trabajar con varios programas simulando que el sistema puede estar realizando varios

    procesos al mismo tiempo. El termino seudoparalelismo, se utiliza para refirise a esta

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 25

    rpida conmutacin de la CPU entre programas, para diferenciar del verdadero

    paralelismo de hardware de los sistemas multiprocesador, en el proceso de evolucin de

    desarrollo de sistemas operativos se ha ido mejorando el modelo de procesos

    secuenciales que facilita el manejo del paralelismo.

    El paralelismo para los programas puede ser explicito donde unas de sus principales

    caractersticas es que el programador especifica mediante una construccin de

    concurrencia de exclusin mutua y sincronizacin para determinar la prioridad de los

    procesos. En este mtodo puede ser viable para utilizar los procesadores por separado y

    ejecutar cada uno los procesos, por su dificultad de implementacin se pueden generar

    varios errores de programacin.

    Actividad 2. Administracin del Procesador

    Con el fin de reflexionar sobre el tema de la administracin del procesador, participa en

    el 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 las

    preguntas antes planteadas.

    3. Revisa y comenta las aportaciones de tus compaeros(as), analiza si

    concuerdas o no con ellos(as).

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

    publcalas.

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

    de apoyo.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 26

    1.2. Memoria

    La memoria en un sistema operativo puede llegar a ser un recurso muy importante el cual

    se debe administrarse con cuidado. La memoria principal puede ser considerada como un

    arreglo 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 a

    ejecutar, as como algunos datos a emplear, una de las funciones bsicas que debe

    implementar un Sistema Operativo es la administracin de la memoria para tener un

    control sobre los lugares donde estn almacenados los procesos y datos que actualmente

    se estn utilizando.

    1.2.1. Administracin de la memoria

    La administracin de la memoria para un sistema multiproceso, se debe tener cuidado en

    la gestin de este recurso, ya que se puede determinar el estado del procesador

    dependiendo de la cantidad de procesos que se estn ejecutando. La memoria principal

    es la parte donde se ejecutan los programas y procesos, este est definido por el espacio

    disponible para que se puedan ejecutar los procesos.

    La administracin de la memoria es la encargada de gestionar la jerarqua de los

    procesos que se ejecutan dentro de la misma, su principal funcin es el determinar que

    partes de la memoria real estn en uso y que partes estn libres, tambin asigna memoria

    a los procesos cuando la necesitan recuperar y cuando termina adems controla el

    intercambio entre la memoria principal y el disco cuando la primera es demasiado

    pequea.

    Para un sistema operativo la administracin bsica de la memoria se puede dividir en dos

    clases, los que intercambian los procesos entre la memoria y algn dispositivo esto

    mediante el proceso de ejecucin. La otra clase es lo contrario al anterior pues aqu estn

    catalogados lo que no realizan el intercambio y paginacin.

    El intercambio y la paginacin es utilizada como una tcnica para las situaciones

    causadas 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 pueden

    hacerse obsoletos, ya que los sistemas crecen con mayor rapidez que las memorias.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 27

    La monoprogramacin que no tiene intercambio ni paginacin, es un esquema ms simple

    y tiene la posibilidad de ejecutar solo un programa a la vez, compartiendo la memoria

    entre el programa y el sistema operativo, en la siguiente imagen plantea 3 variantes sobre

    el estado de memoria.

    Imagen 4. Tres variantes de organizacin de la memoria entre un programa y el sistema operativo.

    (Tanenbaum, 2003: 310)

    Estas variantes de la imagen anterior nos muestra, Imagen 4(a) Indica que el sistema

    operativo puede estar alojado dentro de la memoria de acceso aleatorio RAM, Imagen

    4(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) Los

    controladores de los dispositivos se encuentran en la parte superior de la memoria ROM

    seguido de los programas de usuario y al final del esquema se encuentra el sistema

    operativo por encima de la memoria RAM.

    En estos esquemas anteriores, permite ejecutar solo un proceso a la vez, para que sea

    copiado a memoria y se ejecute. Al finalizar el proceso en el sistema operativo deber

    mostrar un indicativo que muestre que est a la espera de un nuevo comando, asi

    entonces el sistema operativo recibe este nuevo comando para cargar el nuevo programa

    en memoria sobreescribiendo el anterior.

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

    como:

    Multiprogramacin con particiones fijas

    Multiprogramacin con particiones variables

    Segmentacin

    Paginacin

    Administracin de memoria con mapas de bits

    Administracin de memoria con listas enlazadas

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 28

    Estas tcnicas de administracin de memoria, por la capacidad de procesamiento obliga

    muchas veces a modificar la arquitectura computador para obtener el rendimiento

    deseado 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 al

    costo 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

    As pues lo que se busca con la jerarqua de la memoria es establecer una determinante

    para 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 de

    mltiples procesos en un mismo tiempo, este esquema es conocido por

    multiprogramacin con particiones fijas. En los sistemas con tiempo compartido para los

    procesos 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 memoria

    como del CPU, una posibilidad de lograr la multiprogramacin consiste en dividir la

    memoria 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, ya

    que las particiones estn fijas, pero si por algn motivo el proceso no utilizo alguna de las

    particiones esta ser desperdiciada. En la siguiente imagen, se ilustra un esquema con

    diferentes tipos de entradas a particiones fijas.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 29

    Imagen 5. Esquema de particiones fijas con mltiples colas de entrada (a), particiones

    fijas con cola nica de entrada (b) (Tanenbaum, 2003: 311)

    La imagen anterior muestra un esquema de dos tipos distintos de asignacin de procesos

    mediante las colas de entrada, se puede observar que al utilizar particiones fijas con colas

    distintas (a) se ve claro que el rendimiento del sistema baja pues al encontrar una

    particin demasiado grande y vaca y una particin pequea y llena esto es una gran

    desventaja. Una alternativa para una posible solucin a esta desventaja puede ser lo que

    se ilustra en la imagen anterior (b) donde se puede ver que se mantiene una sola cola de

    asignacin para que cada que se libera una particin, se seleccionar el proceso ubicado

    en la particin siguiente inmediata para ser ejecutada.

    Dentro del desarrollo para los sistemas de tiempo compartido, la situacin se torna de

    forma distinta para la multiprogramacin de particiones variables. La desventaja de este

    mtodo consiste en que en muchas ocasiones no existir la cantidad suficiente de

    memoria principal para almacenar todos los procesos que se encuentren activos. Se

    podr utilizar la administracin de memoria, dependiendo del hardware disponible.

    Existen dos estrategias para este mtodo una se utiliza para buscar y cargar en la

    memoria cada proceso en su totalidad par que se pueda ejecutar durante el tiempo que

    sea necesario para que despus se pueda colocar de nueva cuenta sobre el disco, a esta

    estrategia comnmente se le conoce como llamadas de intercambio. La segunda

    estrategia conocida como me memoria virtual, permite ejecutar a los programas a pesar

    de que estos se encuentren parcialmente en memoria principal.

    El funcionamiento de un sistema con particiones variables los primeros o el primer

    proceso se cargan en la memoria creando la particin, para dar seguimiento a los dems

    procesos creando las particiones en la memoria de acuerdo a la necesidad del proceso y

    liberndola al trmino de cada proceso cargado, en la siguiente imagen se puede

    observar un claro ejemplo del uso de particiones variables, donde se carga un solo

    proceso y crea la particin que utilizar (a), posteriormente se pueden cargar dems

    procesos asignando el espacio dentro de la memoria (b), seguido se muestra el acceso

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 30

    de 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 termina

    B y entra E (f,g).

    Imagen 6. Asignacin de memoria mediante la multiprogramacin de particiones

    variables. (Tanenbaum, 2003: 314)

    Para la asignacin de memoria que se muestra en la imagen anterior, se puede observar

    que mientras los procesos entran en memoria y salen el espacio se libera para dejarlo

    listo para el siguiente proceso que se mande llamar. El tamao de estas particiones

    puede variar, tiene la flexibilidad de no estar limitado a la cantidad de particiones fijas

    establecidas para la asignacin de procesos.

    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 de

    acuerdo con el valor del contador de programa, durante el ciclo de ejecucin de algn

    proceso debera extraer la instruccin de la memoria la cual se decodifica y puede hacer

    que se procesen una serie de operaciones. El resultado de haber ejecutado esas

    operaciones, 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 la

    principal 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 los

    factores ms importantes en el diseo de los sistemas operativos. Muy a menudo los

    trminos memoria y almacenamiento se consideran equivalentes, los programas y datos

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 31

    deben estar en el almacenamiento principal para poderlos ejecutar y referenciarlos

    directamente.

    Se considera almacenamiento secundario o auxiliar al que es soportado por lo general en

    discos, 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 de

    aquellas que no, asigna espacio en memoria a los procesos cuando estos la necesitan y

    libera espacio de memoria asignada a procesos que han terminado.

    En lo que respecta a la reasignacin de direcciones, el contenido del registro frontera

    indicar el punto a partir del cual puede cargarse el programa del usuario. Para ello ser

    necesario reasignar las direcciones del programa en funcin de la frontera, existiendo dos

    formas 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 sistema

    operativo exigir una nueva compilacin o carga del programa. Es una tcnica fcil de

    llevar a cabo pero demasiado rgida. La alternativa es asignar las direcciones reales

    dinmicamente durante la ejecucin. Un dispositivo hardware especial interceptar cada

    direccin 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

    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)

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 32

    Posteriormente, el sistema con la ayuda del hardware establecer la correspondencia con

    el espacio fsico de direcciones. El cual estar limitado por la direccin frontera y el

    tamao de la memoria real. Esta separacin entre la visin del usuario (espacio lgico), y

    la 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 esta

    alternativa de memoria ya no limita a la cantidad de memoria fsica disponible. La

    memoria virtual incluye la separacin de memoria lgica y fsica, esta divisin permite

    proporcionar a los programadores una memoria virtual extremadamente grande, cuando

    solo se tiene disponible una memoria fsica de menor tamao.

    La memoria virtual contiene espacios de direcciones virtuales de un proceso que hace

    referencia a la forma lgica de almacenar un proceso en la memoria, las ventajas de la

    memoria virtual son considerables e importantes para la asignacin de procesos.

    La memoria virtual tiene la posibilidad de poder ser utilizada en un sistema de

    multiprogramacin, manteniendo segmentos de muchos programas dentro. En lo que un

    programa est esperando que se extraiga a memoria una de sus partes esta a la espera

    de E/S y mientras no puede ejecutarse, por lo que podr otorgarse la CPU a otro proceso,

    lo mismo que en cualquier otro sistema de multiprogramacin.

    Mientras el sistema realizaba el trabajo real de intercambiar los recubrimientos, el

    programador 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 datos

    y su pila pueden exceder la cantidad de memoria fsica disponible. El sistema operativo

    mantiene en la memoria principal aquellas partes del programa que se estn usando en

    cada 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 eligiendo

    cuidadosamente que 4 MB se tendrn en la memoria en cada instante, e intercambiando

    partes del programa entre el disco y la memoria, segn sea necesario.

    La memoria virtual puede funcionar tambin en un sistema multiprogramado, con diversos

    fragmentos de muchos programas en memoria a la vez. Mientras un programa espera a

    que se traiga del disco una parte de s mismo, est esperando por una E/S y no puede

    ejecutarse, por lo que debe asignarse la CPU a otro proceso de la misma forma que en

    cualquier otro sistema multiprogramado.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 33

    La siguiente imagen muestra el cumulo de memoria, pues es utilizada para la asignacin

    dinmica de memoria. Este mtodo permite que la pila crezca hacia abajo en la memoria

    con 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 espacios

    de estas direcciones incluyen espacios de direcciones dispersos, este tipo de direcciones

    tienen a ventaja pues se puede utilizar un espacio disperso, pues estos huecos pueden

    llenarse a medida que crecen los segmentos de pila.

    Aparte de que es separada la memoria lgica y fsica, la memoria virtual tambin, permote

    que 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 puede

    clasificar. Las bibliotecas del sistema se pueden compartir con otros procesos, la memoria

    virtual facilita a los procesos compartir la memoria fsica y permite que un proceso cree

    una regin de memoria que los pueda compartir con otros procesos, adems de que se

    comparten pginas durante la creacin de procesos mediante la llamada al sistema

    incrementando 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 momento

    respecto a la memoria, su funcin y cmo es utilizada en un sistema operativo. Realiza

    los siguiente:

    1. Elabora un mapa conceptual que muestre el funcionamiento y manejo de la

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 34

    memoria en un sistema operativo. Incluye elementos de su jerarqua, los tipos de

    memoria; 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 recibir

    retroalimentacin.

    1.3. Entrada / Salida

    La administracin de dispositivos de Entrada /Salida, resulta ser un tema muy amplio en el

    diseo de los sistemas operativos, se la entrada / salida (E/S), una amplia variedad de

    dispositivos y sus variadas dispositivos y sus diversidad de aplicaciones.

    Una de las principales funciones de la administracin de dispositivos es el controlar todos

    los dispositivos de E/S, el sistema operativo debe enviar comandos a los dispositivos,

    atender las interrupciones y gestionar los errores que se generan.

    Los dispositivos externos de E/S que interactan con las computadoras pueden

    clasificarse en las siguientes categoras:

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

    establecer la comunicacin computadora-usuario. Unos de los principales

    ejemplos se tiene. Teclado, mouse, pantalla, terminar de lector laser, etc.

    Dispositivos para mquina, los dispositivos para mquina son los que se utilizan

    para comunicar las partes electrnicas entre computadora-sistema, como discos,

    tarjetas de video, controladores.

    Dispositivos de caracteres, Estos dispositivos proporcionan o acepta un flujo de

    caracteres, sin tener en cuenta ninguna estructura de bloque. Comnmente este

    tipo de dispositivos son los que se conocen como manejadores de los dispositivos

    como son los Driver o controladores.

    Cada dispositivo tiene sus propias caractersticas de acuerdo a su clasificacin de

    pertenencia, cada una de estas diferencias bsicamente se enfoca en la velocidad de los

    datos, por lo que es muy posible una gran diferencia de varios datos de transmisin. Las

    aplicaciones son tambin una de las diferencias de los dispositivos, pues por lo general

    cada tipo de dispositivo necesita su propio software que ser de utilidad para el sistema

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 35

    operativo poder gestionar el dispositivo, la complejidad del control es necesario poder

    contar con la interfaz de 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 el

    punto de vista que se tenga referente hacia este trmino, resulta que un programador no

    tendr 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 un

    programador 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 en

    bloques 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 de

    proveer y aceptar una serie de caracteres que son convertidos en corriente

    elctrica, este tipo de dispositivos no considera la estructura de bloque que

    contempla el anterior tipo de dispositivos, tampoco tiene la posibilidad de ser

    direccionable ni puede realizar la bsqueda.

    Existen varios dispositivos que no se contemplan este tipo de clasificacin pues por lo

    general no se pueden ajustar a esta clasificacin. Un ejemplo claro de ello, son los relojes

    este tipo de dispositivos no estn considerados como dispositivos por bloques ni tampoco

    como 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, es

    prcticamente sencillo de plantear, pues se debe organizar el software mediante capas

    que puedan ser utilizadas para establecer la prioridad del hardware, para que las

    superiores sean las encargadas de establecer la interfaz con el sistema lo cual ayuda a

    comunicar 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 pueda

    funcionar el sistema operativo deber tener la facilidad de resolver los problemas

    causados por las diferencias de dispositivos.

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 36

    Los errores que se manejan dentro del software de E/S, se deben manejar lo ms cercano

    posible del hardware. Cuando el controlador descubre un error de lectura deber tratar de

    corregirlo, de lo contrario el sistema operativo es quien podra tratar de corregirlo. Muchas

    ocasiones los errores son transitorios al momento de la lectura de E/S, y estos por lo

    general 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, tal

    como la CPU que inicia la transferencia y se libera mientras esta a la espera de una

    nueva interrupcin. Los programas por lo general resultan ser sncronas, despus del

    comando 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 mismo

    tiempo ya que no existen conflictos de mantener abiertos varios archivos en el disco al

    mismo tiempo. Las unidades de cinta es un ejemplo de dispositivos exclusivo ya que solo

    un 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 operativos

    pues sirven para introducir datos, estos datos se leern por los dispositivos de entrada y

    se almacenan en la memoria principal. Los dispositivos de E/S se pueden agrupar en tres

    categoras:

    Dispositivos legibles para los usuarios. Son aquellos dispositivos que permiten

    la comunicacin entre los usuarios y la computadora. Dentro de este grupo se

    incluyen todos los dispositivos que sirven para proporcionar interfaz con el usuario,

    tanto para entrada (ratn, teclado, monitor TouchScreen, scanner, lectores de

    huella, etc.) como para salida (impresoras, pantalla, etc.).

    Dispositivos de almacenamiento. Son utilizados para abastecer el

    almacenamiento no voltil de datos y memoria. Su principal funcin consiste en

    proveer los datos y almacenar en los programas que se ejecutan en la CPU.

    Dispositivos de comunicaciones. Permiten conectar a la computadora con otras

    computadoras a travs de una red. Los dos tipos de dispositivos ms importantes

    de esta clase son los mdem, para comunicacin va red telefnica, y las tarjetas

    de interfaz a la red, para conectar la computadora a una red de rea local.

    Los dispositivos de acuerdo a su funcin se pueden clasificar de la siguiente manera:

  • Programacin de sistemas operativos Programa desarrollado

    Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 37

    Dispositivos de E/S programada. Mientras el procesador se encuentra en

    ejecucin de E/S, emite la seal para que el proceso este a la espera del trmino

    de la operacin para poder continuar con su ejecucin.

    Dispositivos de E/S por interrupciones. El procesador es el encargado de emitir la

    orden de E/S para los procesos, estos se ejecutan las instrucciones y son

    interrumpidos al finalizar su trabajo.

    Acceso directo a memoria (DMA). Este modulo puede controlar el intercambio de

    datos entre la memoria principal y un modulo de E/S.

    La mayora de las unidades de E/S constan normalmente de un componente mecnico y

    un componente electrnico. En la mayora de los casos es posible separar las dos partes

    y tener un diseo ms modular y general. El componente electrnico se denomina

    controlador del dispositivo o manejador. En una computadora el componente electrnico

    llega a ser una tarjeta de circuito impreso el cual puede ajustarse en alguna ranura de

    expansin, donde el componente mecnico es el dispositivo en s, la organizacin de los

    dispositivos se puede ejemplificar en la figura 13.

    Imagen 7. Algunos de los componentes de un ordenador personal sencillo. (Tanenbaum,

    2003: 272)

    El manejador del dispositivo se provee usualmente de un conector en el cual puede

    conectarse un cable que va al dispositivo. Muchas controladoras pueden manejar dos,

    cuatro o incluso ocho dispositivos idnticos. Si la interfaz entre la controladora y el

    dispositivo es un interfaz estndar, ya sea un estndar ANSI, IEEE o ISO oficial, o un

    estndar de facto, eso permite que cualquier fabricante de hardware pueda manufacturar

    controladores o dispositivos que se ajusten a esa interfaz. Por ejemplo, muchas

    compaas de hardware fabrican unidades de disco compatibles con la interfaz IDE o

    SCSI.

  • Programacin de sistemas operativos