DPSO_U1_Contenido
DPSO_U1_Contenido
DPSO_U1_Contenido
Clave:
Ingeniería TSU
15142317 16142317
Índice
Presentación de la unidad
• Planificador a corto plazo: Es quien decide cuándo, cómo y por cuánto tiempo
recibe el procesador un proceso que está preparado para ejecutar.
Se debe considerar que el primer componente para que un sistema operativo funcione es
el procesador.
Considerando entonces que el tercer componente son los dispositivos en sí. 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 (electrónica integrada en la unidad,
Integrated Drive Electronics. Por sus siglas en inglés).
Logros
Competencia específica
1.1. Procesador
La potencia del microprocesador se mide por el número de instrucciones por segundo que
es capaz de procesar.
“El sistema operativo debe tener conocimiento de todos los registros, al multiplicar en el tiempo la
CPU, es común que el sistema operativo tenga que detener el programa en ejecución para iniciar o
reiniciar otro. Cada vez que el sistema operativo detiene un programa en ejecución, debe guardar
todos los registros para que puedan restablecer cuando el programa continúe su ejecución justo
donde se quedó” (Tanenbaum, 2003, p. 22).
En la actualidad muchas CPU cuentan con recursos para ejecutar más de una instrucción
a la vez, una CPU podría tener unidades individuales para tomar, decodificar y ejecutar de
modo que mientras esté ejecutando la instrucción, también pueda estar decodificando la
instrucción n+1 y tomando la instrucción n+2.
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 dirección de
memoria en la que se encuentra la siguiente instrucción que será tomada. Una vez
obtenida esa instrucción, 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 aún. El marco de pila de un procedimiento contiene
los parámetros de entrada, variables locales y variables temporales que no se guardan en
registros.
Existen 4 registros llamados AX, BX, CX y DX, cada uno de ellos tienen asignada una
actividad específica.
Los registros de segmento son utilizados para integrar las direcciones de otros segmentos
para su aplicación en conjunto con otros registros que señalan las direcciones concretas
dentro de estos segmentos, lo que permite la gestión total de la memoria direccional, para
estos segmentos básicamente se contemplan cuatro tipos:
También, dentro de los registros se encuentra uno especial llamado registro de estado
(FLAGS), que es un indicador del estado del procesador y el resultado de algunas
operaciones, ya que su función se basa en el manejo de bits que actúan como semáforo.
En la gran mayoría de los sistemas, los procesos suelen ser la determinante para la
realización 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 código del
sistema y los procesos de usuarios encargados de ejecutar el código del usuario, por lo
tantos estos procesos se pueden ejecutar de manera simultánea para la realización de
tareas interactivas.
Durante la ejecución del código de un proceso, también utiliza la actividad actual que está
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 también incluye la pila del
proceso, lo cual puede contener los datos temporales: parámetros de funciones,
direcciones de retorno y las variables locales además de una sección de datos que
contienen las variables globales.
La idea del proceso consiste en que es una actividad de algún tipo: tiene programa,
entrada, salida y un estado. Se puede compartir un procesador entre varios procesos,
usando algún algoritmo de planificación para determinar cuándo debe dejarse de trabajar
en un proceso para atender a uno distinto.
La jerarquía de los procesos que manejan el concepto de proceso debe contar con algún
mecanismo para crear todos los procesos necesarios, en los sistemas muy sencillos o en
los diseñados para ejecutar sólo una aplicación es posible que, cuando el sistema se
inicia, todos los procesos que puedan necesitarse estén presentes. Sin embargo, en la
mayor parte de los sistemas se necesita algún mecanismo para crear y destruir procesos
según sea necesario durante la operación.
3
Listo
Bloqueado
Un proceso puede estar en el estado de ejecutándose, bloqueado o listo. Las transiciones entre estos tres
estados son las que se muestran en el esquema. Tomada de Tanenbaum (2003, p. 51).
Habitualmente, la mayoría de los procesos están creados por el sistema operativo de tal
forma que los usuarios o el programa de aplicación no conozcan su procedencia. Sin
embargo, es bastante útil para el rendimiento de memoria y administración de recursos
dentro de los procesos de la CPU, que de un proceso se pueda derivar en otro proceso; el
nuevo proceso se podría ejecutar de forma paralela con la aplicación y podría ser activado
cada que se mande a llamar.
• Estado del proceso: en este estado el proceso puede tomar la forma básica de
inicio, nuevo, listo, ejecutando, en espera, detenido, finalizado, etc.
• Contador de programa: el contador de programa identifica la ubicación de la
siguiente instrucción que se ejecutara por el proceso.
• Registros en CPU: los diferentes registros que se pueden utilizar para el proceso
dependen del tipo y número, así como de la arquitectura de la CPU, estos registros
se incluyen los tratados en el tema anterior.
• Estado y planificación de CPU: la planificación de CPU establece qué proceso
tiene mayor prioridad para el buen funcionamiento y manejo de recursos.
• Administración de memoria: muestra el valor de los registros, tablas de páginas y
de segmentos.
• Información contable: este elemento contiene la cantidad de CPU de tiempo real
empleado, límites de tiempo asignados y números de cuenta.
• Estado de E/S: este elemento muestra la lista de los dispositivos de E/S asignados
al proceso.
Por otro lado, en la finalización de un proceso debe ser determinante que un proceso
indique la finalización de su tarea. Para esto la aplicación deberá detectar una llamada o
petición explicita sobre el servicio del sistema operativo que determine la finalización del
proceso demandante.
Computadora Computadora
(b)
(a)
(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 Tomada de Tanenbaum (2003, p. 54).
Estos hilos de control normalmente se llaman sólo hilos, en la siguiente figura, 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
con tres hilos de control. Aunque en ambos casos se tienen tres hilos, cada uno de ellos
opera en un espacio de direcciones distinto, mientras que en otro caso los tres hilos
comparten el mismo espacio de direcciones.
Una determinante de rendimientos es vista en la figura anterior (b), cuando una solicitud
procesada es entregada a un hilo, si este hilo se bloquea, los demás hilos pueden
continuar ejecutándose de manera que se podrán realizar nuevas solicitudes, ya sea
inclusive de E/S de disco. A diferencia del modelo (a), que no es muy conveniente, porque
no todos los hilos 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 tenía con este
método era que si el hilo se bloqueaba el proceso quedaría inconcluso.
Para otros sistemas, el sistema operativo utiliza los hilos múltiples por proceso, esta forma
de hilos múltiples tiene la ventaja del anterior que cuando un hilo se bloquea, el sistema
operativo selecciona el hilo que se ejecutará en seguida, ya sea para el mismo proceso o
un proceso distinto. Para realizar la planificación, el kernel deberá saber la existencia de
la tabla de hilos que relacione los hilos del sistema.
La diferencia entre un hilo simple y uno múltiple, consiste en el rendimiento que varía de
forma significante entre uno y otro. La modificación de hilos es más ágil cuando la
administración 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 que en el
espacio de usuario se introduzcan varios problemas que se deberán resolver y modificar
considerablemente en el modelo de programación para un mejor rendimiento del sistema
operativo.
1.1.3. Multiprocesamiento
Un método para planificar las CPU para un sistema multiprocesador consiste en que
todas las decisiones sobre la planificación, el procesamiento de E/S y varias actividades
del sistema sean administrados por un mismo procesador. Este multiprocesamiento
asimétrico parece simple, porque sólo existe un procesador que accede a las estructuras
de datos del sistema, minimizando la necesidad de compartir datos.
Otro método es el multiprocesamiento simétrico, que tiene como cualidad que cada uno
de los procesadores se auto planifica, y lo procesos pueden estar en una cola común de
procesos preparados, o bien cada procesador puede ser propietario de su cola de
1.1.4. Paralelismo
Mientras la CPU está ejecutando un programa, también puede estar leyendo un disco,
esto se realiza en el transcurso de muy poco tiempo, ya que ésta puede trabajar con
varios programas simulando que el sistema realiza varios procesos al mismo tiempo. El
termino seudoparalelismo, se utiliza para referirse a esta rápida conmutación de la CPU
entre programas, para diferenciar del verdadero paralelismo de hardware de los sistemas
multiprocesador, en el proceso de evolución 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, una de sus principales
características es que el programador especifica mediante una construcción de
concurrencia de exclusión mutua y sincronización, para determinar la prioridad de los
procesos. Este método puede ser viable para utilizar los procesadores por separado y
ejecutar cada uno los procesos, por su dificultad de implementación se pueden generar
varios errores de programación.
1.2. Memoria
La memoria en un sistema operativo puede llegar a ser un recurso muy importante que
debe administrarse con cuidado. La memoria principal puede ser considerada como un
arreglo lineal de localidades de almacenamiento de un byte de tamaño, cada localidad de
almacenamiento tiene asignada una dirección que la identifica.
La memoria principal es el lugar donde la CPU registra las instrucciones que se van a
ejecutar, así como algunos datos a emplear, una de las funciones básicas que debe
implementar un sistema operativo es la administración de la memoria para tener un
control sobre los lugares donde están almacenados los procesos y datos que actualmente
se están utilizando.
Las variantes de la figura anterior muestran (a) que el sistema operativo puede estar
alojado dentro de la memoria de acceso aleatorio RAM; la (b) indica que el sistema
operativo puede estar alojado en la parte superior de la memoria ROM, memoria de sólo
lectura; en la variante (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 los esquemas anteriores, se puede ver que se permite ejecutar sólo un proceso a la
vez, para que sea copiado a la memoria y se ejecute. Al finalizar el proceso en el sistema
operativo se deberá mostrar un indicativo que muestre que está a la espera de un nuevo
comando, así entonces el sistema operativo recibe este nuevo comando para cargar el
nuevo programa en memoria sobre escribiendo el anterior. Existen diferentes técnicas
para la administración de la memoria, las cuales se clasifican como:
Esquema de particiones fijas con múltiples colas de entrada (a), particiones fijas con cola única de entrada (b)
Tomada de Tanenbaum (2003, p. 311).
Dentro del desarrollo para los sistemas de tiempo compartido, la situación se torna de
forma distinta para la multiprogramación de particiones variables. La desventaja de este
método 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 administración de memoria, pero dependiendo del hardware disponible.
Existen dos estrategias para este método, una se utiliza para buscar y cargar en la
memoria cada proceso en su totalidad con la finalidad de que se pueda ejecutar durante
el tiempo que sea necesario, para que después se pueda colocar de nueva cuenta sobre
el disco, a esta estrategia comúnmente se le conoce como llamadas de intercambio. La
segunda estrategia, conocida como memoria virtual, permite ejecutar a los programas a
pesar de que estos se encuentren parcialmente en memoria principal.
La memoria real o principal es donde se guardan los datos y se ejecutan los programas,
por lo general esta memoria es volátil. La CPU extrae instrucciones de la memoria de
acuerdo con el valor del contador de programa, durante el ciclo de ejecución de algún
proceso debería extraer la instrucción 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.
La idea básica de la memoria virtual es que el tamaño combinado del programa, sus datos
y su pila pueden exceder la cantidad de memoria física disponible. El sistema operativo
mantiene en la memoria principal aquellas partes del programa que se están 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 máquina de 4MB eligiendo
cuidadosamente que 4 MB se tendrán en la memoria en cada instante, e intercambiando
partes del programa entre el disco y la memoria, según sea necesario.
El espacio vacío entre el cúmulo y la pila forma parte de la memoria virtual, los espacios
de estas direcciones incluyen espacios de direcciones dispersos, este tipo de direcciones
tienen ventaja, porque se puede utilizar un espacio disperso, ya que estos huecos pueden
llenarse a medida que crecen los segmentos de pila. Aparte de que se separan la
memoria lógica y física, la memoria virtual también, permite que dos o más procesos
compartan los archivos con la memoria, mediante mecanismos de compartición de
páginas.
Este tipo de dispersión 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 física y permite que un proceso cree
una región de memoria que los pueda compartir con otros procesos, además de que se
comparten páginas durante la creación de procesos mediante la llamada al sistema
incrementando la creación de tareas y ejecución de procesos.
Los dispositivos externos de E/S que interactúan con las computadoras pueden
clasificarse en las siguientes categorías:
• Dispositivos físicos para humanos: este tipo de dispositivos son propiamente para
establecer la comunicación computadora-usuario. Uno de los principales ejemplos
se tiene son: teclado, mouse, pantalla, terminal de lector laser, etc.
• Dispositivos para máquina: los dispositivos para máquina son los que se utilizan
para comunicar las partes electrónicas 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. Comúnmente este
tipo de dispositivos son los que se conocen como manejadores de los dispositivos
como son los driver o controladores.
Existen varios dispositivos que no se contemplan este tipo de clasificación, porque por lo
general no se pueden ajustar a esta clasificación. Un ejemplo claro de ello son los relojes,
este tipo de dispositivos no están considerados como dispositivos por bloques ni tampoco
como dispositivos por caracteres, su función principal de los relojes consiste en
suministrar interrupciones a intervalos que ya estén definidos.
En el ámbito del software, existe un concepto clave para poder diseñar 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.
Los errores que se manejan dentro del software de E/S, se deben manejar lo más cercano
posible del hardware. Cuando el controlador descubre un error de lectura deberá tratar de
corregirlo, de lo contrario el sistema operativo es quien podría 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 físico es por lo general asíncrona, tal
como la CPU que inicia la transferencia y se libera mientras está a la espera de una
nueva interrupción. Los programas por lo general resultan ser síncronas, después 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 son un ejemplo de dispositivos exclusivo, porque
sólo un proceso de lectura puede estar activo a la vez.
• Dispositivos legibles para los usuarios: son aquellos dispositivos que permiten
la comunicación 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 (ratón, teclado, monitor TouchScreen, scanner, lectores de
huella, etc.) como para salida (impresoras, pantalla, etc.).
• Dispositivos de almacenamiento: son utilizados para abastecer el
almacenamiento no volátil de datos y memoria. Su principal función 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 través de una red. Los dos tipos de dispositivos más importantes
de esta clase son los módem, para comunicación vía red telefónica, y las tarjetas
de interfaz a la red, para conectar la computadora a una red de área local.
La interfaz entre el controlador y el dispositivo es a menudo una de muy bajo nivel. Por
ejemplo, un disco puede formatearse con 256 sectores de 512 bytes por pista. Sin
embargo, lo que en realidad sale de la unidad es un flujo de bits en serie que comienza
por un preámbulo, seguido de los 4096 bits de un sector y terminando con una suma de
verificación (checksum), también llamada un código de corrección de errores (ECC, Error
Correcting Code). El preámbulo se escribe cuando se formatea el disco, y contiene el
número de cilindro y de sector, el tamaño del sector y datos similares, así como
información de sincronización. La tarea del controlador consiste en convertir ese flujo de
bits en serie en un bloque de bytes y realizar cualquier corrección de errores que sea
Existe una gran variedad de controladores y tipos de periféricos, por lo que es frecuente
encontrar más de un controlador posible para el mismo dispositivo, cada uno ofreciendo
un nivel distinto de funcionalidades.
Los manejadores de dispositivos son muy variados, casi tanto como los dispositivos de
E/S. Muchos de ellos, como los de disco, pueden controlar múltiples dispositivos
Modelo básico, para la implementación de dispositivos, entre la CPU y los controladores de dispositivos de
E/S. Tomada de Tanenbaum (2003, p. 155).
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 la
memoria básica, lo que se conoce como mapeo de memoria de E/S.
es el leer un bloque n. Si algún controlador está disponible o libre al llegar una petición,
inicia atendiéndola, pero si se encontrara ocupado en otra petición a la llegada de una
nueva, éste la coloca en la cola de peticiones y la deja como pendiente hasta que sea
atendida.
Lo primero que se realiza para atender la petición de E/S es que se debe traducir de
términos abstractos a concretos. Esto deberá calcular en que parte del módulo el proceso
se encuentra ubicado para decidir la prioridad de operaciones del hardware. Al decidir la
prioridad se comienza a generar la escritura en los registros del dispositivo de éste.
“En cualquier ubicación física el controlador de DMA tiene acceso al bus del sistema
independientemente de la CPU, como se muestra en la siguiente figura. El controlador contiene varios
registros en los que la CPU puede leer y escribir. Éstos incluyen un registro de dirección de memoria,
un registro contador de bytes y uno o más registros de control. Los registros de control especifican el
puerto de E/S que se utilizará, la dirección de 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 número de bytes que se transferirán en cada ráfaga.” (Tanenbaum, 2003, p. 276).
con una serie de funciones y servicios que brinda a las otras capas, esto permite
una mejor organización del sistema operativo y una depuración más fácil de éste.
En los sistemas multiusuario, un archivo puede ser abierto por más de dos usuarios
simultáneamente, cada uno con su puntero. Existen dos tipos de tablas, la de proceso,
que contiene información sobre los archivos abiertos por el proceso y contiene un
apuntador a la segunda tabla, la de los archivos abiertos en todo el sistema, esta segunda
tabla tiene información independiente del proceso que lo ejecute como ubicación del
archivo en el disco.
datos, o bien han leído o escrito los datos de memoria principal en caso de acceso directo
a memoria. Para administrar la interrupción se ejecuta el manejador de interrupción que
tendrá como efecto es el de salvar los registros, comunicar el evento al manejador del
dispositivo y restaurar la ejecución de un proceso.
Cuando una interrupción ocurre muy frecuentemente, caso del reloj, o cuando la cantidad
de información a transferir es muy pequeña, caso del teclado, sería muy costoso
comunicar siempre el evento al manejador de dispositivo asociado. En estos casos, el
propio manejador de interrupción registra la ocurrencia del evento, mediante el incremento
de una variable global para el reloj o mediante la acumulación de caracteres en un buffer
del teclado.
• La lectura o bien entrada de datos, permite recibir valores desde los dispositivos o
archivos.
• La escritura, realiza la operación de escritura de resultados en dispositivos de
salida o archivos.
En 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 leídos en una zona de datos del
proceso de usuario situada en las direcciones virtuales 1000 a 1009. La forma simple de
realizar sería emitir una orden de E/S a la unidad de cinta y esperar a que los datos estén
disponibles. La espera podría ser activa o de manera más práctica, suspender al proceso
en espera de una interrupción.
Las ubicaciones virtuales 1000 a 1009 deben permanecer en memoria principal durante el
curso de la transferencia del bloque, de lo contrario parte de los datos se perderán.
Si un proceso emite una orden de E/S queda suspendido a la espera del resultado, se le
expulsa antes de comenzar la operación y se bloquea esperando a que la operación
termine. Mientras tanto, la operación de E/S queda bloqueada esperando a que el
proceso vuelva a memoria, para evitar este interbloqueo, la memoria de usuario implica
en la operación de E/S debe quedar fija en la memoria principal, inmediatamente después
de emitir la petición de E/S, incluso aunque la operación de E/S se encole y pueda no
ejecutarse por algún tiempo.
disco del buffer del controlador byte por byte o palabra por palabra, ejecutando un ciclo,
leyéndose en cada iteración un byte o una palabra de un registro del controlador y
almacenándose en la memoria.
La finalidad del DMA es liberar a la CPU de un ciclo programado donde se leen los bytes
del controlador uno por uno, porque eso tiene pérdida de tiempo en la CPU, cuando se
utiliza DMA la CPU proporciona al controlador dos elementos de información además de
la dirección en disco del bloque: la dirección de memoria donde debe colocarse el bloque
y el número de bytes que deben transferirse, como se muestra en la figura siguiente.
• Los pasos 3 y 4 se repiten hasta que no quedan más datos por leer.
• Cuando el registro de contador está a cero, el controlador interrumpe a la CPU
para indicar que la operación de DMA ha terminado.
Una operación de E/S se inicia con la instrucción START I/O. La ubicación del programa
de canal en la memoria principal viene definida en la palabra de dirección de canal (CAW:
Channel Address Word).
Cierre de la unidad
Has concluido la primera unidad del curso. A lo largo de ésta se recordaron conceptos
básicos sobre hilos y que es el multiprocesamiento y el paralelismo, también conociste
cómo el sistema operativo maneja la memoria, cuál es su jerarquía, sus particiones así
como el manejo que hace el sistema operativo de la memoria real y virtual, identificaste
cómo los dispositivos de entrada y salida son manejados por el sistema operativo sus
mecanismos y estructura; así como las operaciones que realizan, siendo este el último
tema realzado por una investigación de los principales dispositivos de entrada y salida
E/S.
Es aconsejable que revises nuevamente la unidad en caso de que los temas que se
acaban de mencionar no te sean familiares, o no los recuerdes, de no ser este tu caso, ya
estás preparado(a) para seguir con la unidad 2, en donde se abordará el sistema de
archivos, sus conceptos básicos y su jerarquía. Así como los tipos de archivos: reales
virtuales y componentes; cómo el sistema operativo funciona física y lógicamente sus
operaciones y su implementación. Todo ello con el fin de obtener el prototipo final al
terminar la tercera y cuarta unidad del curso de Programación de sistemas operativos.
Fuentes de consulta
Bibliografía básica
Martínez, P., Cabello M. y Díaz, M. (1997). Sistemas operativos. Madrid: Díaz de
Santos.
Santiago, C., García, R., Quezada, A., Santana, F. y Santos, J. (2007). Fundamentos
de sistemas operativos teorías y ejercicios resueltos. España: Parainfo.
Bibliografía complementaria
Morera, J. y Pérez, A. (2002). Conceptos de sistemas operativos. Madrid: Comillas.