El sistema operativo: principios y prácticas

El sistema operativo: principios y prácticas

@ProfGastonPerez
@ProfGastonPerez
1 Follower
1 week ago 24

A través de este documento, se revisan los principios fundamentales de los sistemas operativos, haciendo hincapié en su práctica mediante el estudio del sistema MINIX. Se exploran los conceptos de administración de recursos y la evolución histórica de los sistemas, ofreciendo una vista profunda que combina teoría con aplicaciones reales para un aprendizaje efectivo.

El sistema operativo: principios y prácticas

@ProfGastonPerez1 week ago

www.elsolucionario.net
www.elsolucionario.net
1/959
2/959
www.elsolucionario.net
www.elsolucionario.net
3/959
www.elsolucionario.net
www.elsolucionario.net
4/959
www.elsolucionario.net
www.elsolucionario.net
5/959
www.elsolucionario.net
www.elsolucionario.net
6/959
www.elsolucionario.net
www.elsolucionario.net
7/959
www.elsolucionario.net
www.elsolucionario.net
8/959
www.elsolucionario.net
www.elsolucionario.net
9/959
www.elsolucionario.net
www.elsolucionario.net
10/959
www.elsolucionario.net
www.elsolucionario.net
11/959
www.elsolucionario.net
www.elsolucionario.net
12/959
www.elsolucionario.net
www.elsolucionario.net
13/959
PREFACIO 
Gran parte de los libros sobre sistemas operativos se centran mucho en la teoría y poco …
14/959
xvi PREFACIO 
lugar de la Versión 7. Por último, se agregaron muchas características, tal vez dema…
15/959
 PREFACIO xvii 
 Para uso en el aula, se pueden obtener archivos PostScript que contienen todas la…
16/959
ACERCA DE LOS AUTORES 
Andrew S. Tanenbaum tiene el título de S.B. por el M.I.T. y un Ph.D. por la…
17/959
 ACERCA DE LOS AUTORES xix 
 El doctor Woodhull está interesado en las computadoras como sistemas …
18/959
El Doctor Albert S. Woodhull colaboró de manera entusiasta en la revisión de la traducción al españ…
19/959
1 
INTRODUCCIÓN 
Sin su software, la computadora es básicamente un montón de metal inútil. Con su…
20/959
2 INTRODUCCIÓN CAP. 1 
fácil de entender y programar. Esta capa de software es el sistema operativ…
21/959
SEC. 1 1 ¿QUÉ ES UN SISTEMA OPERATIVO? 3 
estado devuelto por la unidad de disco después de una op…
22/959
4 INTRODUCCIÓN CAP. 1 
tiene 16 comandos, cada uno de los cuales se especifica cargando entre 1 y …
23/959
SEC. 1.2 HISTORIA DE LOS SISTEMAS OPERATIVOS 5 
sistema operativo está ahí para administrar todos …
24/959
6 INTRODUCCIÓN CAP. 1 
1.2.1 La primera generación (1945-55): Tubos de vacío 
y tableros de conmu…
25/959
SEC. 1.2 HISTORIA DE LOS SISTEMAS OPERATIVOS 7 
traídos del cuarto de entrada y lo introducía en e…
26/959
8 INTRODUCCIÓN CAP. 1 
tarjeta $RUN, que ordenaba al sistema operativo ejecutar el programa con lo…
27/959
SEC. 1.2 HISTORIA DE LOS SISTEMAS OPERATIVOS 9 
 IBM trató de resolver simultáneamente ambos probl…
28/959
10 INTRODUCCIÓN CAP. 1 
comerciales, el tiempo de espera por E/S puede ser el 80090% del tiempo to…
29/959
SEC. 1.2 HISTORIA DE LOS SISTEMAS OPERATIVOS 11 
millón de registros), la computadora puede propor…
30/959
12 INTRODUCCIÓN CAP 1 
1.2.4 La cuarta generación (1980-presente): 
Computadoras personales 
Con…
31/959
SEC. 1.2 HISTORIA DE LOS SISTEMAS OPERATIVOS 13 
 Los sistemas operativos de red no son fundamenta…
32/959
14 INTRODUCCIÓN CAP. 1 
qué hay dentro, tal como los estudiantes de biología disectan ranas. El no…
33/959
SEC. 1.3 CONCEPTOS DE SISTEMAS OPERATIVOS 15 
fin de hacerlo más grande y mejor (bueno, al menos m…
34/959
16 INTRODUCCIÓN CAP. 1 
 Volveremos al concepto de proceso con mucho mayor detalle en el capítulo …
35/959
SEC. 1.3 CONCEPTOS DE SISTEMAS OPERATIVOS 17 
 Hay otras llamadas al sistema relacionadas con proc…
36/959
18 INTRODUCCIÓN CAP. 1 
se incluyen llamadas para poner un archivo existente en un directorio, y p…
37/959
SEC. 1.3 CONCEPTOS DE SISTEMAS OPERATIVOS 19 
si /Profesorado/Prof. Ruiz fuera el directorio de tr…
38/959
20 INTRODUCCIÓN CAP. 1 
de archivos de la unidad O al sistema de archivo raíz en cualquier lugar e…
39/959
SEC. 1.4 LLAMADAS AL SISTEMA 21 
las llamadas al sistema. El shell también es la interfaz primaria…
40/959
22 INTRODUCCIÓN CAP. 1 
los sistemas operativos modernos tienen llamadas al sistema que realizan l…
41/959
SEC. 1.4 LLAMADAS AL SISTEMA 23 
www.elsolucionario.net
www.elsolucionario.net
42/959
24 INTRODUCCIÓN CAP. 1 
proceso padre. Con base en el pid devuelto, los dos procesos pueden saber …
43/959
SEC. 1.4 LLAMADAS AL SISTEMA 25 
 El programa principal de cp (y el de casi todos los demás progra…
44/959
26 INTRODUCCIÓN CAP. 1 
 La siguiente llamada al sistema relacionada con procesos también es la má…
45/959
SEC. 1.4 LLAMADAS AL SISTEMA 27 
genera una señal del tipo pertinente (p. ej., la tecla DEL), el e…
46/959
28 INTRODUCCIÓN CAP. 1 
perdió en una línea de comunicación no confiable. Se proporciona la llamad…
47/959
SEC. 1.4 LLAMADAS AL SISTEMA 29 
contiene el dispositivo principal (4) en el byte de orden alto y …
48/959
30 INTRODUCCIÓN CAP. 1 
abrir y usar un nuevo archivo. Cuando llegue el momento de restablecer la …
49/959
SEC. 1.4 LLAMADAS AL SISTEMA 31 
de archivo para leer y el hijo cierra el descriptor de archivo pa…
50/959
32 INTRODUCCIÓN CAP. 1 
una lectura. Bajo POSIX hay un alto grado de flexibilidad, y es posible aj…
51/959
SEC. 1.4 LLAMADAS AL SISTEMA 33 
 La llamada al sistema RENAME sirve para dar a un archivo un nuev…
52/959
34 INTRODUCCIÓN CAP. 1 
archivo, dónde están sus bloques de disco, etc. Un directorio no es más qu…
53/959
SEC. 1.4 LLAMADAS AL SISTEMA 35 
desalojar el caché periódicamente, de modo que la cantidad de dat…
54/959
36 INTRODUCCIÓN CAP. 1 
palabras, el superusuario tiene abundantes oportunidades para violar todas…
55/959
SEC. 1.5 ESTRUCTURA DEL SISTEMA OPERATIVO 37 
1.5 ESTRUCTURA DEL SISTEMA OPERATIVO 
Ahora que hem…
56/959
38 INTRODUCCIÓN CAP. 1 
usuario (paso 4) a fin de que pueda continuar su ejecución con la instrucc…
57/959
SEC. 1.5 ESTRUCTURA DEL SISTEMA OPERATIVO 39 
1.5.2 Sistemas por capas 
Una generalización del en…
58/959
40 INTRODUCCIÓN CAP. 1 
concéntricos, siendo los interiores más privilegiados que los exteriores. …
59/959
SEC. 1.5 ESTRUCTURA DEL SISTEMA OPERATIVO 41 
mientras que otros ejecutan un sistema interactivo m…
60/959
42 INTRODUCCIÓN CAP. 1 
E/S. Una desventaja adicional de ejecutar realmente MS-DOS en modo 8086 vi…
61/959
SEC. 1.5 ESTRUCTURA DEL SISTEMA OPERATIVO 43 
archivo, un proceso de usuario (ahora llamado proces…
62/959
44 INTRODUCCIÓN CAP. 1 
(p. ej., los controladores de dispositivos de E/S) se ejecuten realmente e…
63/959
CAP. 1 PROBLEMAS 45 
creación y terminación de procesos. El segundo grupo maneja las señales. El t…
64/959
46 INTRODUCCIÓN CAP. 1 
14. ¿Por qué está limitada al superusuario la llamada al sistema CHROOT? (…
65/959
2 
PROCESOS 
Estamos a punto de emprender un estudio detallado de la forma en que se diseñan y co…
66/959
48 PROCESOS CAP.2 
2.1.1 El modelo de procesos 
En este modelo, todo el software ejecutable de la…
67/959
SEC. 2.1 INTRODUCCIÓN A LOS PROCESOS 49 
ocurrir en cierto número de milisegundos, se deben tomar …
68/959
50 PROCESOS CAP. 2 
inicio de sesión ejecuta un shell para aceptar comandos. Estos comandos pueden…
69/959
SEC. 2.1 INTRODUCCIÓN A LOS PROCESOS 51 
 Las transiciones 2 y 3 son causadas por el planificador …
70/959
52 PROCESOS CAP. 2 
2.1.2 Implementación de procesos 
Para implementar el modelo de procesos, el …
71/959
SEC. 2.1 INTRODUCCIÓN A LOS PROCESOS 53 
de procesos. Las acciones como guardar los registros y aj…
72/959
54 PROCESOS CAP. 2 
manejan múltiples hilos de control dentro de un proceso. Estos hilos de contro…
73/959
SEC. 2.1 INTRODUCCIÓN A LOS PROCESOS 55 
transferencia de disco, los demás hilos aún pueden ejecut…
74/959
56 PROCESOS CAP. 2 
 Por otro lado, si el proceso hijo obtiene tantos hilos como el padre, ¿qué su…
75/959
SEC. 2.2 COMUNICACIÓN ENTRE PROCESOS 57 
2.2 COMUNICACIÓN ENTRE PROCESOS 
Los procesos con frecue…
76/959
58 PROCESOS CAP. 2 
también obtiene un 7, así que almacena el nombre de su archivo en la ranura 7 …
77/959
SEC. 2.2 COMUNICACIÓN ENTRE PROCESOS 59 
cosas que no dan pie a condiciones de competencia. Sin em…
78/959
60 PROCESOS CAP. 2 
inconsistente, ocurrirían condiciones de competencia. La conclusión es: la inh…
79/959
SEC. 2.2 COMUNICACIÓN ENTRE PROCESOS 61 
inspecciona turn, ve que es O, y entra en su región críti…
80/959
62 PROCESOS CAP. 2 
permanecerá dando vueltas en su ciclo hasta que se asigne FALSE a interested[0…
81/959
SEC. 2.2 COMUNICACIÓN ENTRE PROCESOS 63 
 Para usar la instrucción TSL, creamos una variable compa…
82/959
64 PROCESOS CAP. 2
 
prioridad. Las reglas de planificación son tales que H se ejecuta siempre qu…
83/959
SEC. 2.2 COMUNICACIÓN ENTRE PROCESOS 65 
 Volvamos ahora a la condición de competencia. Ésta puede…
84/959
66 PROCESOS CAP. 2 
apagará, pero el proceso seguirá despierto. El bit de espera de despertar actú…
85/959
SEC. 2.2 COMUNICACIÓN ENTRE PROCESOS 67 
así que la inhabilitación de las interrupciones no tiene …
86/959
68 PROCESOS CAP. 2 
 Esta solución usa tres semáforos: uno llamado full para contar el número de r…
87/959
SEC. 2.2 COMUNICACIÓN ENTRE PROCESOS 69 
 Señalamos este problema para destacar el cuidado que deb…
88/959
70 PROCESOS CAP. 2 
cualquier caso, la persona que escribe el monitor no tiene que saber cómo el c…
89/959
SEC. 2.2 COMUNICACIÓN ENTRE PROCESOS 71 
www.elsolucionario.net
www.elsolucionario.net
90/959
72 PROCESOS CAP. 2 
 Al hacer automática la exclusión mutua de las regiones críticas, los monitore…
91/959
SEC. 2.2 COMUNICACIÓN ENTRE PROCESOS 73 
el receptor podría bloquearse hasta que uno llegue. Como …
92/959
74 PROCESOS CAP. 2 
 Si el productor trabaja con mayor rapidez que el consumidor, todos los mensaj…
93/959
SEC. 2.3 PROBLEMAS CLÁSICOS DE IPC 75 
proceso trata de transmitir a un buzón que está lleno, qued…
94/959
76 PROCESOS CAP. 2 
 La vida de un filósofo consiste en periodos alternantes de comer y pensar. (E…
95/959
SEC. 2.3 PROBLEMAS CLÁSICOS DE IPC 77 
sus acciones continuaran coordinadas durante siquiera una h…
96/959
78 PROCESOS CAP.2 
 
www.elsolucionario.net
www.elsolucionario.net
97/959
SEC. 2.3 PROBLEMAS CLÁSICOS DE IPC 79 
el de los lectores y escritores (Courtois et al., 1971), qu…
98/959
80 PROCESOS CAP. 2 
 La solución que presentamos aquí contiene implícitamente una sutil decisión q…
99/959
SEC. 2.3 PROBLEMAS CLÁSICOS DE IPC 81 
clientes en espera es menor que el número de sillas. Si no …
100/959
82 PROCESOS CAP. 2 
2.4 PLANIFICACIÓN DE PROCESOS 
En los ejemplos de las secciones anteriores tu…
101/959
SEC. 2.4 PLANIFICACIÓN DE PROCESOS 83
 En la época de los sistemas por lote con entradas en forma …
102/959
84 PROCESOS CAP. 2 
 La estrategia de permitir que procesos lógicamente ejecutables se suspendan t…
103/959
SEC. 2.4 PLANIFICACIÓN DE PROCESOS 85 
 
útil durante 20 ms, la CPU tendrá que ocupar 5 ms en la …
104/959
86 PROCESOS CAP. 2 
por hora. El sistema UNIX tiene un comando, fice, que permite a un usuario red…
105/959
SEC. 2.4 PLANIFICACIÓN DE PROCESOS 87 
en lugar de darles cuantos pequeños muy a menudo (porque se…
106/959
88 PROCESOS CAP.2 
de entrada para ser iniciados, el planificador deberá usar el criterio del prim…
107/959
SEC. 2.4 PLANIFICACIÓN DE PROCESOS 89 
especialmente fácil de implementar cuando a = 1/2. Todo lo …
108/959
90 PROCESOS CAP.2 
probabilidad del 20% de ganar cada lotería. A largo plazo, obtendrá cerca del 2…
109/959
SEC. 2.4 PLANIFICACIÓN DE PROCESOS 91 
siquiera sea posible manejarlos todos. Por ejemplo, si hay …
110/959
92 PROCESOS CAP. 2 
2.4.8 Planificación de dos niveles 
Hasta ahora más o menos hemos supuesto qu…
111/959
SEC, 2.5 PERSPECTIVA GENERAL DE PROCESOS EN MINIX 93 
2.4.9 Política vs. mecanismo 
Hasta ahora, …
112/959
94 PROCESOS CAP. 2 
nivel necesarias para que funcione la abstracción de procesos que se presenta …
113/959
SEC. 2.5 PERSPECTIVA GENERAL DE PROCESOS EN MINIX 95 
 La capa 3 contiene procesos que proporciona…
114/959
96 PROCESOS CAP. 2 
 ¿Cómo surge esta situación? Cuando se enciende la computadora, el hardware le…
115/959
SEC.2.5 PERSPECTIVA GENERAL DE PROCESOS EN MINIX 97 
 Las dos principales llamadas al sistema para…
116/959
98 PROCESOS CAP. 2 
2.5.4 Planificación de procesos en MINIX 
El sistema de interrupciones es lo …
117/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 99 
 El libro y el software, que están en continua ev…
118/959
100 PROCESOS CAP. 2 
directorio src/commands/ de gran tamaño con el código fuente para los program…
119/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 101 
ria. por debajo de los 640K. Si el número de buf…
120/959
102 PROCESOS CAP. 2 
biblioteca que están en lib/. Esta estructura modular hace que sea muy fácil …
121/959
SEC. 2 IMPLEMENTACIÓN DE PROCESOS EN MINIX 103 
secciones del libro. Este avance tiene como propós…
122/959
104 PROCESOS CAP.2 
si el compilador es de ANSI Standard C, o 
tipo_devuelto nombre_func() 
si e…
123/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 105 
más hace referencia a este archivo, sus definici…
124/959
106 PROCESOS CAP.2 
 Aunque no se utiliza tan ampliamente como para que se incluya en las cabecera…
125/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 107 
2.6.3 Los archivos de cabecera de MINIX 
Los su…
126/959
108 PROCESOS CAP.2 
que necesita apoyo de red. Si definimos ENABLE_AT_WINI como O y ENABLE_BIOS_WI…
127/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 109 
define como la cadena nula dentro de table.c) y …
128/959
110 PROCESOS CAP.2 
bits, pero no sería el caso en una máquina en la que los mt, long y apuntadore…
129/959
SEC. 2.6. IMPLEMENTACIÓN DE PROCESOS EN MINIX 111 
usamos x.m_u.m_ml. Por último, para acceder al …
130/959
112 PROCESOS CAP. 2 
 Por último, include/minixi contiene varias cabeceras más especializadas. Ent…
131/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 113 
signo de los códigos de error. A continuación, k…
132/959
114 PROCESOS CAP. 2 
 Al compilar MINIX para uno de los chips Intel se definen las macros CF/IP e …
133/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 115 
que se usan al referirse a la memoria. Un click …
134/959
116 PROCESOS CAP. 2 
MINIX Versión 2. Varios de estos prototipos dependen del sistema, incluidos l…
135/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 117 
a la pila con la dirección de su entrada en la t…
136/959
118 PROCESOS CAP. 2 
contienen registros internos que apuntan a tablas de descriptores en la memor…
137/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 119 
 
 Hay unos cuantos archivos de cabecera en ker…
138/959
120 PROCESOS CAP. 2 
correcto, lo sobreescribe para inicializar el arreglo _sizes con los tamaños …
139/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 121 
 Cuando se inicia el sistema, el hardware (en re…
140/959
122 PROCESOS CAP. 2 
para la imagen del sistema. Por otro lado, MINIX es un sistema operativo poco…
141/959
SEC. 2,6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 123 
y el de 32 bits. La versión del código de inicia…
142/959
124 PROCESOS CAP. 2 
implica varias transferencias de control entre las rutinas en lenguaje ensamb…
143/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 125 
de protección de la CPU y las tablas de interrup…
144/959
126 PROCESOS CAP. 2 
funcionamiento normal. Al principio del ciclo, se asigna a rp la dirección de…
145/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 127 
de una rutina dependiente de la máquina que colo…
146/959
128 PROCESOS CAP. 2 
k_getenv (línea 6606), que sirve para encontrar entradas en el entorno del ke…
147/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 129 
 En la figura, las señales de interrupción llega…
148/959
130 PROCESOS CAP. 2 
instrucción iretd (retorno de interrupción). Iretd restaura el estado que exi…
149/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 131 
insuficiente. Estos mecanismos se incorporan en …
150/959
132 PROCESOS CAP. 2 
índice para acceder a una tabla de direcciones de las rutinas de bajo nivel e…
151/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 133 
compatibles con IBM PC modernas. Esta clase de a…
152/959
134 PROCESOS CAP. 2 
int nnn. Las interrupciones de software se tratan como interrupciones de hard…
153/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 135 
 La primera parte del código de _s_call se parec…
154/959
136 PROCESOS CAP. 2 
cuenta de un nivel de interrupciones posiblemente anidadas, y el resto de las…
155/959
SEC.2.6. IMPLEMENTACIÓN DE PROCESOS EN MINIX 137 
el archivo que carga es una imagen de kernel vál…
156/959
138 PROCESOS CAP. 2 
interrupt es verificar si ya se estaba atendiendo una interrupción cuando se …
157/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 139 
En la línea 7060 se prueba el parámetro caller_p…
158/959
140 PROCESOS CAP. 2 
como listo para ejecutarse y se quita de la cola de procesos que están tratan…
159/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 141 
proceso en ejecución se bloquea, o un proceso ej…
160/959
142 PROCESOS CAP. 2 
mencionó cuando explicamos _restart en mpx386.s. Unhoid procesa cíclicamente …
161/959
SECC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 143 
proviene del esclavo, y la operación similar de…
162/959
144 PROCESOS CAP. 2 
a 7877 para inicializar una buena parte de la tabla mencionada, usando llamad…
163/959
SEC. 2.6 IMPLEMENTACIÓN DE PROCESOS EN MINIX 145 
 La última función de protect.c, enable_iop (lín…
164/959
146 PROCESOS CAP. 2 
ese click. Esta forma de especificar el origen y el destino es más eficiente …
165/959
SEC. 2.7. RESUMEN 147 
poco más complicado, ya que el bloque de destino y el de origen pueden tras…
166/959
148 PROCESOS CAP. 2 
con estas primitivas, debe tenerse cuidado para evitar errores y bloqueos. Se…
167/959
CAP.2 PROBLEMAS 149 
3. En el texto se dijo que el modelo de la Fig. 2-6(a) no es apropiado para u…
168/959
150 PROCESOS CAP.2 
15. Suponga que tenemos un sistema de transferencia de mensajes que usa buzone…
169/959
CAP. 2 PROBLEMAS 151 
 (a) Round robin. 
 (b) Planificación por prioridad. 
 (c) Primero que lle…
170/959
152 PROCESOS CAP. 2 
usando semáforos que eviten los bloqueos. No se preocupe porque una serie de …
171/959
3 
ENTRADA/SALIDA 
Una de las principales funciones de un sistema operativo es controlar todos lo…
172/959
154 ENTRADA/SALIDA CAP. 3 
3.1 PRINCIPIOS DEL HARDWARE DE E/S 
Los puntos de vista respecto al ha…
173/959
SEC.3.1. PRINCIPIOS DEL HARDWARE DE E/S 155 
de dispositivos por bloques y por caracteres es lo ba…
174/959
156 ENTRADA/SALIDA CAP. 3 
al disco y contiene el número de cilindro y de sector, el tamaño de sec…
175/959
SEC.3.1 PRINCIPIOS DEL HARDWARE DE E/S 157 
(recalibrar). Muchos de los comandos tienen parámetros…
176/959
158 ENTRADA/SALIDA CAP. 3 
transferir. Este proceso se repite hasta que la cuenta de DMA es cero, …
177/959
SEC. 3.1. PRINCIPIOS DEL HARDWARE DE E/S 159 
factor de intercalación. En la Fig. 3-4(a) vemos un …
178/959
160 ENTRADA/SALIDA CAP. 3 
un disco duro o un CD-ROM sin tener que modificar los programas para ca…
179/959
SEC 3.2 PRINCIPIOS DEL SOFTWARE DE E/S 161 
 Estos objetivos se pueden lograr de una forma lógica …
180/959
162 ENTRADA/SALIDA CAP. 3 
intercalación, motores, tiempos de asentamiento de la cabeza y todos lo…
181/959
SECC. 3.2. PRINCIPIOS DEL SOFTWARE DE E/S 163 
lo regu1ar se realizan en el software independiente…
182/959
164 ENTRADA/SALIDA CAP. 3 
leer y escribir bloques completos a la vez, pero los procesos de usuari…
183/959
SEC. 3.2 PRINCIPIOS DEL SOFTWARE DE E/S 165 
verdad. En particular, el formateo de entradas y sali…
184/959
166 ENTRADA/SALIDA CAP. 3 
3.3 BLOQUEO MUTUO 
Los sistemas de cómputo tienen muchos recursos que …
185/959
SEC. 3.3 BLOQUEO MUTUO 167 
físicos como unidades de cinta, unidades de CD-ROM y graficadores, por…
186/959
168 ENTRADA/SALIDA CAP. 3 
de recurso falla, y se le despierta cuando el recurso está disponible. …
187/959
SEC3.3 BLOQUEO MUTUO 169 
HoIt (1972) mostró cómo pueden modelarse estas cuatro condiciones usando…
188/959
170 ENTRADA/SALIDA CAP. 3 
grafos de recursos resultantes son los que se muestran en la Fig. 3-8(e…
189/959
SEC.3.3 BLOQUEO MUTUO 171 
www.elsolucionario.net
www.elsolucionario.net
190/959
172 ENTRADA/SALIDA CAP.3 
 
 Para hacer este contraste más específico, UNIX (y MINIX) sufren pote…
191/959
SECC. 3.3. BLOQUEO MUTUO 173 
3.3.5 Prevención del bloqueo mutuo 
La tercera estrategia para mane…
192/959
174 ENTRADA/SALIDA CAP. 3 
quitarle forzosamente la impresora porque un graficador que se necesita…
193/959
SEC. 3.3 BLOQUEO MUTUO 175 
datos con candado y otros recursos abstractos, el número de recursos p…
194/959
176 ENTRADA/SALIDA CAP. 3 
de modo que dejará que éste finalice y libere sus cuatro recursos. Teni…
195/959
SEC.3.3 BLOQUEO MUTUO 177 
indica que el planificador decidió ejecutar B. Con un solo procesador, …
196/959
178 ENTRADA/SALIDA CAP. 3 
caso de un solo recurso, los procesos deben expresar sus necesidades de…
197/959
SEC. 3.4 GENERALIDADES DE E/S EN MINIX 179 
(1 0 0 0), lo que conduce a un bloqueo mutuo. Es evide…
198/959
180 ENTRADA/SALIDA CAP. 3 
y la E/S independiente del dispositivo se verá cuando lleguemos al sist…
199/959
SEC. 3.4 GENERALIDADES DE E/S EN MINIX 181 
a cada interrupción. En una PC ocurre una interrupción…
200/959
182 ENTRADA/SALIDA CAP.3 
individuales. Sin embargo, en este caso, un solo proceso apoya todos los…
201/959
SEC. 3.4 GENERALIDADES DE E/S EN MINIX 183 
el sistema operativo conmuta de la parte de espacio de…
202/959
184 ENTRADA/SALIDA CAP. 3 
a fin de mantenerlas sencillas. Cuando se emite una petición de hardwar…
203/959
SEC. 3.4 GENERALIDADES DE E/S EN MINIX 185 
disponibles puede ser menor que el número solicitado. …
204/959
186 ENTRADA/SALIDA CAP. 3 
MINIX contiene varios demonios que apoyan diversas funciones de red. La…
205/959
SEC.3.5 DISPOSITIVOS POR BLOQUES EN MINIX 187 
3.3 DISPOSITIVOS POR BLOQUES EN MINIX 
En las sigu…
206/959
188 ENTRADA/SALIDA CAP.3 
 El ciclo principal común invocado por cada tarea de controlador de disc…
207/959
SEC. 3.5 DISPOSITIVOS POR BLOQUES EN MINIX 189 
1. OPEN (abrir) 
2. CLOSE (cerrar) 
3. READ (lee…
208/959
190 ENTRADA/SALIDA CAP. 3 
es opcional. En efecto, el sistema de archivos puede decir: “sería buen…
209/959
SEC. 3.5 DISPOSITIVOS POR BLOQUES EN MINIX 191 
 Después de hacer lo que se solicita en el mensaje…
210/959
192 ENTRADA/SALIDA CAP. 3 
como ésta pueden hacer que desperdiciemos semanas buscando errores extr…
211/959
SEC. 3.5 DISPOSITIVOS POR BLOQUES EN MINIX 193 
una vez *dr fin ish, y luego se vuelve a copiar el…
212/959
194 ENTRADA/SALIDA CAP. 3 
económico dividir en particiones un solo disco grande que instalar vari…
213/959
SEC. 3.6 DISCOS EN RAM 195 
especificado en la llamada original. En el caso de particiones primari…
214/959
196 ENTRADA/SALIDA CAP.3 
 En un sistema como MINIX, que se diseñó para funcionar en computadoras …
215/959
SEC. 3.6 DISCOS EN RAM 197 
 Un controlador de disco en RAM puede manejar varias áreas de memoria …
216/959
198 ENTRADA/SALIDA CAP. 3 
las posiciones de memoria física comenzando por la dirección de memoria…
217/959
SEC.3.6 DISCOS EN RAM 199 
 En una operación de lectura o escritura, el ciclo principal efectúa tr…
218/959
200 ENTRADA/SALIDA CAP.3 
ejecutando en modo 8088, 80286 u 80386. Estos tamaños son los máximos qu…
219/959
SEC. 3.7 DISCOS 201 
permite tener más sectores en esas pistas, incrementando la capacidad del dis…
220/959
202 ENTRADA/SALIDA CAP. 3 
un campo de 6 bits para contar sectores en el ROM de BIOS, y un disco q…
221/959
SEC. 3.7 DISCOS 203 
 Los dispositivos de disco son propensos a errores. Siempre se graba junto co…
222/959
204 ENTRADA/SALIDA CAP. 3 
 Como alternativa, el controlador podría atender a continuación la peti…
223/959
SEC.3.7 DISCOS 205 
 Algunos controladores de disco en hardware permiten al software determinar qu…
224/959
206 ENTRADAISALIDA CAP. 3 
 1. Error de programación (p. ej., petición de un sector inexistente). …
225/959
SEC. 3.7 DISCOS 207 
una de las pistas de repuesto por la defectuosa. La tabla que establece la co…
226/959
208 ENTRADA/SALIDA CAP. 3 
tiempo que tarda una rotación. (Normalmente se requiere media rotación …
227/959
SEC.3.7 DISCOS 209 
implementador de sistemas operativos es que el BIOS en las computadoras tipo I…
228/959
210 ENTRADA/SALIDA CAP. 3 
permite leer diversos parámetros de arranque durante la iniciación, los…
229/959
SEC.3.7 DISCOS 211 
Algunos controladores en hardware de disco duro también pueden manejar unidade…
230/959
212 ENTRADA/SALIDA CAP. 3 
usaba este nombre como código para el proyecto que desarrolló la tecnol…
231/959
SEC. 3 DISCOS 213 
que se invoca durante la inicialización del kernel, no hace nada que requiera a…
232/959
214 ENTRADA/SALIDA CAP. 3 
 Como mencionamos antes, es posible que init_params no recupere la info…
233/959
SEC. 3.7 DISCOS 215 
peticiones previas. En caso contrario, se actualiza w_nextblock, que contiene…
234/959
216 ENTRADA/SALIDA CAP. 3 
controladores lo reconocen. En vez de ello, se usa E/S programada. Si w…
235/959
SEC.3.7 DISCOS 217 
caso del registro de comando del controlador de disco AT. En uso, se escriben …
236/959
218 ENTRADA/SALIDA CAP. 3 
 Veamos ahora cómo se envía un comando al contro en hardware invocando …
237/959
SEC.3.7 DISCOS 219 
escritura, puede ser útil reducir el tamaño de las peticiones 4e E/S. Esto se …
238/959
220 ENTRADA/SALIDA CAP. 3 
del disco duro. Cuando ocurre una interrupción de disco, el registro de…
239/959
SEC. 3.7 DISCOS 221 
atender una petición de E/S dispersa y, al igual que el Qontrolador de disco …
240/959
222 ENTRADA/SALIDA CAP. 3 
nuevo o respaldar archivos— suelen requerir el cambk de un disco a otro…
241/959
SEC. 3.8 RELOJES 223 
hora del día y evitan que un proceso monopolice la CPU. El software del relo…
242/959
224 ENTRADA/SALIDA CAP. 3 
relojes independientemente programables, además de muchas otras opcione…
243/959
SEC. 3.8 RELOJES 225 
segundo completo. Dado que 232 segundos es más de 136 años, este método func…
244/959
226 ENTRADA/SALIDA CAP. 3 
Otra aplicación es la enseñanza asistida por computadora donde, si un e…
245/959
SEC. 3.8 RELOJES 227 
temporizador termina, el controlador del reloj, en lugar de causar una señal…
246/959
228 ENTRADA/SALIDA CAP. 3 
administrador de memoria, el cual a su vez envía ese mensaje al control…
247/959
SEC. 3.8 RELOJES 229 
entrada de tabla de procesos de cada proceso para su temporizador, si existe…
248/959
230 ENTRADA/SALIDA CAP 3 
El manejador de interrupciones de reloj 
Como se explicó antes, cuando …
249/959
SEC. 3.8 RELOJES 231 
pending_ticks antes de hacer cualquier otra cosa. Esta operación podría entr…
250/959
232 ENTRADA/SALIDA CAP. 3 
 Mientras se recorre la tabla de procesos inspeccionando el valor de p_…
251/959
SEC. 3. 8. RELOJES 233 
apuntador nulo) en el arreglo watch_dog. A continuación, common_setalarm r…
252/959
234 ENTRADA/SALIDA CAP. 3 
probar si clock_handler debe despertar o no la terminal o enviar un men…
253/959
SEC. 3.9 TERMINALES 235 
otro sistema operativo de vez en cuando. Clock_stop simplemente restablec…
254/959
236 ENTRADA/SALIDA CAP. 3 
Figura 3-27. Tipos de terminales. 
La tarjeta de RAM de video también …
255/959
SEC.3.9 TERMINALES 237 
Los patrones de 9 x 14 bits para los caracteres se guardan en una ROM empl…
256/959
238 ENTRADA/SALIDA CAP. 3 
tecla A, se coloca el código de tecla (30) en un registro de E/S. Toca …
257/959
SEC. 3.9 TERMINALES 239 
Para exhibir un carácter, el controlador en software de la terminal escri…
258/959
240 ENTRADA/SALIDA CAP. 3 
través de la red con clientes X que se ejecutan en algún anfitrión remo…
259/959
SEC. 3.9 TERMINALES 241 
Software de entrada 
El trabajo básico del controlador de teclado consis…
260/959
242 ENTRADA/SALIDA CAP. 3 
para la mayoría de los usuarios del Hemisferio Occidental, donde los ha…
261/959
SEC.3.9 TERMINALES 243 
Figura 3-32. (a) Reserva central de buffers. (b) Buffer dedicado para cada…
262/959
244 ENTRADA/SALIDA CAP. 3 
línea que una letra o un número. Si el microprocesador dentro de la ter…
263/959
SEC. 3.9 TERMINALES 245 
carácter anterior era una tabulación, para borrarlo será necesario saber …
264/959
246 ENTRADA/SALIDA CAP. 3 
bytes, lo que convencionalmente se interpreta como un fin de archivo y …
265/959
SEC. 3.9 TERMINALES 247 
contiene bits que afectan el procesamiento de las salidas. Por ejemplo, e…
266/959
248 ENTRADA/SALIDA CAP. 3 
se exhibe el primer carácter, y el controlador se duerme. Cuando llega …
267/959
SEC. 3.9 TERMINALES 249 
secuencia de escape. Una vez que ha llegado todo, el controlador debe rea…
268/959
250 ENTRADA/SALIDA CAP. 3 
 4. E/S ocurrida durante el último tic del reloj (del manejador de inte…
269/959
SEC.3.9 TERMINALES 251 
ilustra en el código fuente del presente texto tiene dos consolas virtuale…
270/959
252 ENTRADA/SALIDA CAP.3 
Figura 3-37. Petición de lectura de la terminal cuando no hay caracteres…
271/959
SEC. 3.9 TERMINALES 253 
despertarla. Observe que si bien el código fuente para tty_wakeup está en…
272/959
254 ENTRADA/SALIDA CAP. 3 
(en modo canónico la tarea de la terminal espera una línea completa, y …
273/959
SEC. 3.9 TERMINALES 255 
pero si se tiene en cuenta la compresión de datos en el enlace de módem e…
274/959
256 ENTRADA/SALIDA CAP.3 
Figura 3-38. Manejo de entradas en el controlador de terminal. La rama i…
275/959
SEC. 3.9 TERMINALES 257 
en copiar datos de una región de la memoria a otra. Por otro lado, todos …
276/959
258 ENTRADA/SALIDA CAP. 3 
está en tty_table. Luego se invoca handle_events (la misma función que …
277/959
SEC. 3.9 TERMINALES 259 
parpadeo, etc. Luego, el chip obtiene la siguiente palabra y exhibe el ca…
278/959
260 ENTRADA/SALIDA CAP. 3 
cualquier adaptador con el tamaño suficiente para apoyar consolas virtu…
279/959
SEC. 3.9 TERMINALES 261 
tener un valor de dos dígitos, como en ESC [20;60H, que mueve el cursor a…
280/959
262 ENTRADA/SALIDA CAP. 3 
incluidas las teclas modificadoras como las teclas SHIFT izquierda y SH…
281/959
SEC. 3.9 TERMINALES 263 
da. Se usa un programa llamado genmap para crear un nuevo mapa de teclas …
282/959
264 ENTRADA/SALIDA CAP. 3 
las teclas numéricas, de puntuación y alfabéticas típicas. En el caso d…
283/959
SEC. 3.9 TERMINALES 265 
de terminal es similar, pero con la diferencia de que hay una tarea de te…
284/959
266 ENTRADA/SALIDA CAP. 3 
vez que se establece un temporizado!", así que el manejador de interrup…
285/959
SEC.3.9 TERMINALES 267 
durante la compilación de table.c, de la misma manera que las variables EX…
286/959
268 ENTRADA/SALIDA CAP. 3 
luego se exhibe el mensaje de inicio de MINIX (líneas 11829 a 11831). A…
287/959
SEC. 3.9 TERMINALES 269 
madas son tp, un apuntador a una estructura tty y la dirección del mensaj…
288/959
270 ENTRADA/SALIDA CAP. 3 
ponde a la columna de la izquierda de la Fig. 3-35, y en este caso no s…
289/959
SEC. 3.9 TERMINALES 271 
respuesta y no falta nada que hacer. Si no, se genera un mensaje de respu…
290/959
272 ENTRADA/SALIDA CAP. 3 
seguida de una llamada a setattr, en las líneas 12098 y 12099. Si tcset…
291/959
SEC. 3.9 TERMINALES 273 
empleando un número de dispositivo secundario diferente y se le trata de …
292/959
274 ENTRADA/SALIDA CAP. 3 
causó que se izara la bandera. Aquí se tomó una decisión de diseño, pue…
293/959
SEC. 3.9 TERMINALES 275 
detectar que tp->tty_inleft vale cero es suficiente razón para abortar la…
294/959
276 ENTRADA/SALIDA CAP. 3 
una línea. Cuatro bits se usan para contar cuánto espacio de pantalla s…
295/959
SEC. 3.9 TERMINALES 277 
3. Los caracteres que controlan el eco causan una acción inmediata y no s…
296/959
278 ENTRADA/SALIDA CAP. 3 
mente a la cola y que las entradas anteriores fueron aceptadas cuando s…
297/959
SEC. 3.9 TERMINALES 279 
llamada READ debe poder entregar el número de caracteres requerido por mS…
298/959
280 ENTRADA/SALIDA CAP. 3 
Reprint es la siguiente función. Además de ser invocada por backover, r…
299/959
SEC. 3.9 TERMINALES 281 
La siguiente acción es verificar los valores de MIN y TIME. En modo canón…
300/959
282 ENTRADA/SALIDA CAP.3 
ordenada con los primeros despertares programados más próximos, hasta ll…
301/959
SEC. 3.9 TERMINALES 283 
campos distintos para entrada y salida, por ejemplo, los campos tty_devre…
302/959
284 ENTRADA/SALIDA CAP.3 
columna (sin SHIFT) del arreglo del mapa de teclas. Su hermano mayor es …
303/959
SEC. 3.9 TERMINALES 285 
códigos ALT-FLECHA-IZQUIERDA, ALT-FLECHA-DERECHA o ALT-F1 a ALT-F12, y si…
304/959
286 ENTRADA/SALIDA CAP. 3 
de los usuarios de computadora, que muchas veces se ponen a golpear las…
305/959
SEC. 3.9 TERMINALES 287 
tres luces se codifica en tres bits de ese siguiente byte. Las siguientes…
306/959
288 ENTRADA/SALIDA CAP. 3 
Tecla Propósito 
F1 Exhibir tablas de procesos 
F2 Exhibir los detall…
307/959
SEC. 3.9 TERMINALES 289 
cursor, las direcciones de memoria del principio y el límite de la memori…
308/959
290 ENTRADA/SALIDA CAP. 3 
al buffer). Esta colocación directa de caracteres en cons—>c_ramqueue c…
309/959
SEC. 3.9 TERMINALES 291 
extremo inferior del bloque de memoria y lo traslada a una dirección más …
310/959
292 ENTRADA/SALIDA CAP.3 
Figura 3-48. Máquina de estados finitos para procesar secuencias de esca…
311/959
SEC. 3.9 TERMINALES 293 
Pese a su longitud, el lector no deberá tener problemas para seguir el có…
312/959
294 ENTRADA/SALIDA CAP.3 
Las siguientes cuatro secuencias insertan y eliminan líneas y espacios e…
313/959
SEC. 3.9 TERMINALES 295 
usando. En las líneas 14382 a 14384 se inicializa el descriptor de segmen…
314/959
296 ENTRADA/SALIDA CAP.3 
der a estas rutinas desde la consola. La información provista por las ru…
315/959
SEC.3.10 AREA DE SISTEMA EN MINIX 297 
Tipo de mensaje De Significado 
SYSFORK MM Un proceso bifu…
316/959
298 ENTRADA/SALIDA CAP.3 
mapa se copia directamente en el campo p_map de la entrada de tabla de p…
317/959
SEC. 3.10 LA TAREA DE SISTEMA EN MINIX 299 
actual de algún proceso. Este valor se necesita para l…
318/959
300 ENTRADA/SALIDA CAP.3 
dicho proceso de modo que el código de manejo de señales se ejecute la s…
319/959
SEC.3.10 LA TAREA DE SISTEMA EN MINIX 301 
le copie el bloque en el espacio de direcciones del pro…
320/959
302 ENTRADA/SALIDA CAP.3 
phys_copy repetidamente hasta finalizar todas las operaciones de copiado…
321/959
SEC. 3.10 LA TAREA DE SISTEMA EN MINIX 303 
de punto interruptor. En cualquier clase de sistema al…
322/959
304 ENTRADA/SALIDA CAP.3 
La última función definida en system.c es alloc_segments (línea 15715), …
323/959
CAP. 3 PROBLEMAS 305 
PROBLEMAS 
1. Imagine que los avances en la tecnología de los chips hacen p…
324/959
306 ENTRADA/SALIDA CAP.3 
10. Considere la Fig. 3-8. Suponga que en el paso (o) C solicitara S en …
325/959
CAP. 3 PROBLEMAS 307 
¿Por qué? ¿Puede haberse creado un bloqueo mutuo? ¿Es posible que se haya cr…
326/959
308 ENTRADA/SALIDA CAP. 3 
29. ¿Por qué los sistemas operativos proporcionan caracteres de escape,…
327/959
4 
ADMINISTRACIÓN DE MEMORIA 
La memoria es un recurso importante que se debe administrar con cui…
328/959
310 ADMINISTRACIÓN DE MEMORIA CAP.4 
mos primero el sistema de administración de memoria más senci…
329/959
SEC.4.1 ADMINISTRACIÓN BÁSICA DE MEMORIA 311 
disco a la memoria y lo ejecuta. Cuando el proceso t…
330/959
312 ADMINISTRACIÓN DE MEMORIA CAP.4 
el caso de las particiones 1 y 3 en la Fig. 4-2(a). Una organ…
331/959
SEC.4.2 INTERCAMBIO 313 
u otros elementos que no deben relocalizarse. OS/MFT funcionaba de este m…
332/959
314 ADMINISTRACIÓN DE MEMORIA CAP.4 
memoria cada proceso en su totalidad, ejecutarlo durante un t…
333/959
SEC.4.2 INTERCAMBIO 315 
al proceso, se le puede asignar y el proceso podrá crecer hacia el agujer…
334/959
316 ADMINISTRACIÓN DE MEMORIA CAP.4 
4.2.1 Administración de memoria con mapas de bits 
Cuando la…
335/959
SEC. 4.2 INTERCAMBIO 317 
4.2.2 Administración de memoria con listas enlazadas 
Otra forma de con…
336/959
318 ADMINISTRACIÓN DE MEMORIA CAP. 4 
Otro algoritmo bien conocido es el de mejor ajuste, que exam…
337/959
SEC.4.3 MEMORIA VIRTUAL 319 
determinar si es posible una fusión es costosa. Si no se efectúan fus…
338/959
320 ADMINISTRACIÓN DE MEMORIA CAP.4 
virtual se coloca directamente en el bus de memoria y hace qu…
339/959
SEC. 4.3 MEMORIA VIRTUAL 321 
Figura 4-8. La relación entre las direcciones virtuales y las direcc…
340/959
322 ADMINISTRACIÓN DE MEMORIA CAP. 4 
correspondencia con la memoria física. Las demás, marcadas c…
341/959
SEC. 4.3 MEMORIA VIRTUAL 323 
Figura 4-9. Funcionamiento interno de la MMU con 16 páginas de 4K. 
…
342/959
324 ADMINISTRACIÓN DE MEMORIA CAP.4 
podamos imaginar. Con un millón de páginas en el espacio de d…
343/959
SEC. 4.3 MEMORIA VIRTUAL 325 
Figura 4-10. (a) Dirección de 32 bits con dos campos de tabla de pág…
344/959
326 ADMINISTRACIÓN DE MEMORIA CAP.4 
La entrada que se ubica indizando en la tabla de páginas de n…
345/959
SEC. 4.3 MEMORIA VIRTUAL 327 
Figura 4-11. Entrada de tabla de páginas representativa. 
Una organ…
346/959
328 ADMINISTRACIÓN DE MEMORIA CAP. 4 
paginación, se requieren referencias adicionales a la memori…
347/959
SEC.4.3 MEMORIA VIRTUAL 329 
está presente en el TLB, comparándolo con todas las entradas simultán…
348/959
330 ADMINISTRACIÓN DE MEMORIA CAP.4 
La forma normal de procesar una falla de TLB, sea en hardware…
349/959
SEC. 4.4 ALGORITMOS DE SUSTITUCIÓN DE PÁGINAS 331 
Se pueden encontrar otros enfoques para manejar…
350/959
332 ADMINISTRACIÓN DE MEMORIA CAP. 4 
De este modo, es posible comparar el rendimiento de los algo…
351/959
SEC. 4.4 ALGORITMOS DE SUSTITUCIÓN DE PÁGINAS 333 
El algoritmo NRU (no utilizada recientemente) e…
352/959
334 ADMINISTRACIÓN DE MEMORIA CAP. 4 
si el bit R está encendido, A se coloca al final de la lista…
353/959
SEC. 4.4 ALGORITMOS DE SUSTITUCIÓN DE PÁGINAS 335 
la página que haya estado más tiempo sin usarse…
354/959
336 ADMINISTRACIÓN DE MEMORIA CAP. 4 
4.4.7 Simulación de LRU en software 
Aunque los dos algorit…
355/959
SEC. 4.4 ALGORITMOS DE SUSTITUCIÓN DE PÁGINAS 337 
valores 1, O, 1, O, 1 y 1 respectivamente (la p…
356/959
338 ADMINISTRACIÓN DE MEMORIA CAP.4 
puede ser que a una de ellas se haya hecho referencia por últ…
357/959
SEC. 4.5 ASPECTOS DE DISEÑO DE LOS SISTEMAS CON PAGINACIÓN 339 
En un sistema de tiempo compartido…
358/959
340 ADMINISTRACIÓN DE MEMORIA CAP. 4 
procesos ejecutables. Por tanto, el número de marcos de pági…
359/959
SEC. 4.5 ASPECTOS DE DISEÑO DE LOS SISTEMAS CON PAGINACIÓN 341 
en cada lado. Con una asignación d…
360/959
342 ADMINISTRACIÓN DE MEMORIA CAP.4 
páginas. En promedio, la mitad de la página final estará vací…
361/959
SEC. 4.6 SEGMENTACIÓN 343 
Para s = 128K y e = 8 bytes por entrada de tabla de páginas, el tamaño …
362/959
344 ADMINISTRACIÓN DE MEMORIA CAP. 4 
que tener sólo uno. Por ejemplo, un compilador tiene muchas …
363/959
SEC. 4.6 SEGMENTACIÓN 345 
análogo a administrar las propias superposiciones: una molestia en el m…
364/959
346 ADMINISTRACIÓN DE MEMORIA CAP.4 
una pila o una colección de variables escalares, pero por lo …
365/959
SEC. 4.6 SEGMENTACIÓN 347 
se buscaba eliminar al inventar la paginación. Como el usuario de una m…
366/959
348 ADMINISTRACIÓN DE MEMORIA CAP. 4 
4.6.2 Segmentación con paginación: MULTICS 
Si los segmento…
367/959
SEC. 4.6 SEGMENTACIÓN 349 
unas cuantas cosas más. La Fig. 4-23(b) ilustra un descriptor de segmen…
368/959
350 ADMINISTRACIÓN DE MEMORIA CAP. 4 
Una dirección en MULTICS consta de dos partes: el segmento y…
369/959
SEC 4.6 SEGMENTACIÓN 351 
eficiente. Si la página no está en el TLB, se hace referencia a las tabl…
370/959
352 ADMINISTRACIÓN DE MEMORIA CAP.4 
4.6.3 Segmentación con paginación: El Pentium de Intel 
En m…
371/959
SEC.4.6 SEGMENTACIÓN 353 
descriptor. Por ejemplo, el selector 72 se refiere a la entrada 9 de la …
372/959
354 ADMINISTRACIÓN DE MEMORIA CAP.4 
bits y páginas de 4K, un segmento podría contener un millón d…
373/959
SEC.4.6. SEGMENTACIÓN 355 
la dirección física del marco de página. Por último, se suma Dist a la …
374/959
356 ADMINISTRACIÓN DE MEMORIA CAP.4 
llamada que da la dirección del procedimiento por invocar. Po…
375/959
SEC. 4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 357 
examina la lista de agujeros emp…
376/959
358 ADMINISTRACIÓN DE MEMORIA CAP.4 
 
4.7.1 Organización de la memoria 
Los procesos MINIX senc…
377/959
SEC. 4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 359 
tiene el proceso padre. En el se…
378/959
360 ADMINISTRACIÓN DE MEMORIA CAP. 4 
campo total de la cabecera. Si, por ejemplo, un programa tie…
379/959
SEC. 4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 361 
delineadas por estructuras de da…
380/959
362 ADMINISTRACIÓN DE MEMORIA CAP. 4 
principal extrae el tipo de mensaje y lo coloca en la variab…
381/959
SEC. 4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 363 
4.7.3 Estructuras de datos y alg…
382/959
364 ADMINISTRACIÓN DE MEMORIA CAP. 4 
Ya mencionamos que las labores de los diseñadores de hardwar…
383/959
SEC. 4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 365 
una dirección virtual y el espac…
384/959
366 ADMINISTRACIÓN DE MEMORIA CAP. 4 
mismo programa que está a punto de cargarse, no habrá necesi…
385/959
SEC 4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 367 
lista para ser asignada. Esto no …
386/959
368 ADMINISTRACIÓN DE MEMORIA CAP. 4 
liberada. El estado zombi es temporal y casi nunca dura much…
387/959
SEC. 4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 369 
antigua para regresar a ella. No…
388/959
370 ADMINISTRACIÓN DE MEMORIA CAP. 4 
sí solo. Entonces, el administrador de memoria tendría que o…
389/959
SEC.4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 371 
la pila inicial, como se muestra …
390/959
372 ADMINISTRACIÓN DE MEMORIA CAP. 4 
push ecx ! poner en la pila entorno 
push edx ! poner en la…
391/959
SEC. 4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 373 
En la fase de preparación hay va…
392/959
374 ADMINISTRACIÓN DE MEMORIA CAP. 4 
plano un programa en ejecución y traerlo otra vez a primer p…
393/959
SEC. 4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 375 
que kernel/exception.c contiene …
394/959
376 ADMINISTRACIÓN DE MEMORIA CAP. 4 
trador de memoria ejecuta la acción predeterminada para la s…
395/959
SEC. 4.7 GENERALIDADES DE ADMINISTRACIÓN DE MEMORIA EN MINIX 377 
también muestra la situación des…
396/959
378 ADMINISTRACIÓN DE MEMORIA CAP. 4 
haciéndolo que efectúe una interpretación razonable de la pi…
397/959
SEC. 4.8 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN MINIX 379 
devolver tanto el identifica…
398/959
380 ADMINISTRACIÓN DE MEMORIA CAP.4 
está contenida aquí con objeto de que las llamadas a printf s…
399/959
SEC. 4.8 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN MINIX 381 
1. El campo sa_handler defin…
400/959
382 ADMINISTRACIÓN DE MEMORIA CAP. 4 
un arreglo de funciones, y el uso de _PROTOTYPE es la forma …
401/959
SEC. 4.8 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN MINIX 383 
proceso tiene espacio 1 y D …
402/959
384 ADMINISTRACIÓN DE MEMORIA CAP. 4 
sola llamada afree_mem o no. Si el padre está esperando, se …
403/959
SEC. 4.8 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN MINIX 385 
ción. No hay mucho que pueda…
404/959
386 ADMINISTRACIÓN DE MEMORIA CAP. 4 
segmento bss, pero al hacer esto aquí se logra que MINIX fun…
405/959
SEC. 4.8 IMPLEMENTACION DE LA ADMINISTRACIÓN DE MEMORIA EN MINIX 387 
Observe que SAFETYJBYTES se …
406/959
388 ADMINISTRACIÓN DE MEMORIA CAP. 4 
La llamada SIGACTION apoya las funciones sigaction y signal,…
407/959
SEC. 4.8 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN MINIX 389 
verificar si hay señales pen…
408/959
390 ADMINISTRACIÓN DE MEMORIA CAP.4 
Do_pause se ocupa de la llamada al sistema PAUSE (línea 18115…
409/959
SEC. 4.8 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN MINIX 391 
prueba clave (línea 18213) c…
410/959
392 ADMINISTRACIÓN DE MEMORIA CAP. 4 
indica que hay una señal pendiente y se invoca un pause para…
411/959
SEC. 4.8 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN MINIX 393 
procesos iniciados desde la …
412/959
394 ADMINISTRACIÓN DE MEMORIA CAP. 4 
prueba, se debe informar al sistema de archivos del nuevo ui…
413/959
SEC 4.8 IMPLEMENTACIÓN DE LA ADMINISTRACIÓN DE MEMORIA EN MINIX 395 
grande, toma lo que necesita …
414/959
396 ADMINISTRACIÓN DE MEMORIA CAP. 4 
memoria, principalmente para fines de depuración. Además, pa…
415/959
CAP. 4 PROBLEMAS 397 
Varias llamadas al sistema reconocen señales estilo POSIX, y puesto que la a…
416/959
398 ADMINISTRACIÓN DE MEMORIA CAP. 4 
9. A continuación se lista un programa corto en lenguaje ens…
417/959
CAP. 4 PROBLEMAS 399 
17. ¿Qué tiempo toma cargar un programa de 64K de un disco cuyo tiempo de bú…
418/959
400 ADMINISTRACIÓN DE MEMORIA CAP. 4 
28. Modifique MINIX de modo que realice intercambio. 
29. E…
419/959
5 
SISTEMAS DE ARCHIVOS 
Todas las aplicaciones de computadora necesitan almacenar y recuperar in…
420/959
402 SISTEMAS DE ARCHIVOS CAP. 5 
nuevos si es necesario. La información almacenada en archivos deb…
421/959
SEC 5.1 ARCHIVOS 403 
puede tener todos los siguientes como archivos distintos: barbara. Barbara, …
422/959
404 SISTEMAS DE ARCHIVOS CAP. 5 
5.1.2 Estructura de archivos 
Los archivos pueden estructurarse …
423/959
SEC.5.1 ARCHIVOS 405 
Un sistema (antiguo) que consideraba los archivos como secuencias de registr…
424/959
406 SISTEMAS DE ARCHIVOS CAP. 5
cinco secciones: encabezado, texto, datos, bits de reubicación y t…
425/959
SEC.5.1 ARCHIVOS 407 
tiempo de creación de todo archivo por ejecutar; luego localizaba el archivo…
426/959
408 SISTEMAS DE ARCHIVOS CAP. 5 
En algunos sistemas operativos de macrocomputadoras antiguas, los…
427/959
SEC.5.1 ARCHIVOS 409 
estudiaremos más adelante. En algunos sistemas el usuario debe presentar una…
428/959
410 SISTEMAS DE ARCHIVOS CAP. 5 
5. READ. Se leen datos del archivo. Por lo regular, los bytes pro…
429/959
 SEC. 5.2 DIRECTORIOS 411 
5.2.1 Sistemas de directorio jerárquicos 
Un directorio normalmente co…
430/959
412 SISTEMAS DE ARCHIVOS CAP.5 
Lo que hace falta es una jerarquía general (es decir, un árbol de …
431/959
SEC.5.2 DIRECTORIOS 413 
absoluta es /usr/ast/mailbox simplemente como mailbox. En otras palabras,…
432/959
414 SISTEMAS DE ARCHIVOS CAP.5 
Aquí el empleo de punto ahorra al usuario el trabajo de escribir d…
433/959
SEC.5.3 IMPLEMENTACIÓN DE SISTEMAS DE ARCHIVOS 415 
de los archivos que contiene. Antes de poder l…
434/959
416 SISTEMAS DE ARCHIVOS CAP. 5 
Asignación contigua 
El esquema de asignación más sencillo es al…
435/959
SEC. 5.3 IMPLEMENTACION DE SISTEMAS DE ARCHIVOS 417 
bloque). Además, basta con que en la entrada …
436/959
418 SISTEMAS DE ARCHIVOS CAP. 5 
número del bloque inicial) en la entrada de directorio para poder…
437/959
SEC. 5.3 IMPLEMENTACIÓN DE SISTEMAS DE ARCHIVOS 419 
bloque que contiene una lista de bloques de i…
438/959
420 SISTEMAS DE ARCHIVOS CAP. 5 
con más de 16 bloques ocupa múltiples entradas de directorio. Est…
439/959
SEC.5.3 IMPLEMENTACIÓN DE SISTEMAS DE ARCHIVOS 421 
una vez que se tiene su número es directa, ya …
440/959
422 SISTEMAS DE ARCHIVOS CAP. 5 
5.3.3 Administración del espacio en disco 
Los archivos normalme…
441/959
SEC.5.3 IMPLEMENTACIÓN DE SISTEMAS DE ARCHIVOS 423 
ble. Sea cual sea la decisión que se tome, pro…
442/959
424 SISTEMAS DE ARCHIVOS CAP.5 
5.3.4 Confiabilidad del sistema de archivos 
La destrucción de un…
443/959
SEC.5.3 IMPLEMENTACION DE SISTEMAS DE ARCHIVOS 425 
tuertos por las pruebas del fabricante. En tal…
444/959
426 SISTEMAS DE ARCHIVOS CAP.5 
Una alternativa al vaciado diario de todo el sistema de archivos e…
445/959
SEC. 5.3 IMPLEMENTACION DE SISTEMAS DE ARCHIVOS 427 
tabla llevan la cuenta de cuántas veces un bl…
446/959
428 SISTEMAS DE ARCHIVOS CAP.5 
revuelto), y la estructura del sistema de archivos al menos será c…
447/959
SEC 5.3 IMPLEMENTACIÓN DE SISTEMAS DE ARCHIVOS 429 
para eliminar todos los archivos que terminan …
448/959
430 SISTEMAS DE ARCHIVOS CAP. 5 
las caídas y la consistencia del sistema de archivos que vimos en…
449/959
SEC.5.3 IMPLEMENTACIÓN DE SISTEMAS DE ARCHIVOS 431 
caché y escribe el bloque en disco una vez cad…
450/959
432 SISTEMAS DE ARCHIVOS CAP.5 
que esté en el mismo grupo de cilindros que el nodo-i. Si no hay u…
451/959
SEC. 5.3 IMPLEMENTACIÓN DE SISTEMAS DE ARCHIVOS 433 
A fin de ver de dónde provienen todas estas e…
452/959
434 SISTEMAS DE ARCHIVOS CAP. 5 
datos nuevos. De esta forma, el limpiador avanza por el diario, e…
453/959
SEC. 5.4 SEGURIDAD 435 
ejecutar un programa indebido, perder un disco o una cinta, o alguna otra …
454/959
436 SISTEMAS DE ARCHIVOS CAP. 5 
poder consultar cualquier dato sobre cualquier persona para poner…
455/959
SEC.5.4 SEGURIDAD 437 
El siguiente paso era asegurarse de que la siguiente página no estuviera en…
456/959
438 SISTEMAS DE ARCHIVOS CAP. 5 
Además de estos ejemplos, ha habido muchos otros problemas de seg…
457/959
SEC.5.4 SEGURIDAD 439 
Esta sentencia generó muchas controversias. Muchos miembros de la comunidad…
458/959
440 SISTEMAS DE ARCHIVOS CAP.5 
5. Burle al usuario escribiendo un programa que escriba "login:" e…
459/959
SEC.5.4 SEGURIDAD 441 
También es posible que un virus infecte el sector de arranque del disco dur…
460/959
442 SISTEMAS DE ARCHIVOS CAP. 5 
editor), los editores con caballos de Troya no podrán causar much…
461/959
SEC. 5.4 SEGURIDAD 443 
de 1000 cifrados por segundo, se requerirían 2000 años para construir la l…
462/959
444 SISTEMAS DE ARCHIVOS CAP.5 
Una variación del concepto de contraseña es hacer que cada usuario…
463/959
SEC.5.4 SEGURIDAD 445 
sitar una muestra aquí". Éste podría ser un sistema inviolable, pero probab…
464/959
446 SISTEMAS DE ARCHIVOS CAP.5 
puede usar la línea telefónica (de la casa) del usuario. En cualqu…
465/959
SEC. 5.5 MECANISMOS DE PROTECCIÓN 447 
Es evidente que se requiere un mecanismo para prohibir a lo…
466/959
448 SISTEMAS DE ARCHIVOS CAP.5 
Una pregunta importante es, ¿cómo hace el sistema para saber cuál …
467/959
SEC.5.5 MECANISMOS DE PROTECCIÓN 449 
luego almacenar sólo los elementos no vacíos. Los dos enfoqu…
468/959
450 SISTEMAS DE ARCHIVOS CAP. 5 
mente no afectará a los usuarios que actualmente estén utilizando…
469/959
SEC.5.5 MECANISMOS DE PROTECCIÓN 451 
Además de los derechos específicos que dependen del objeto, …
470/959
452 SISTEMAS DE ARCHIVOS CAP.5 
Figura 5-26. (a) Los procesos cliente, servidor y colaborador, (b)…
471/959
SEC.5.6 GENERALIDADES DEL SISTEMA DE ARCHIVOS DE MINIX 453 
La adquisición y liberación de recurso…
472/959
454 SISTEMAS DE ARCHIVOS CAP.5 
descriptores de archivo, los candados de archivo y los archivos es…
473/959
SEC.5.6 GENERALIDADES DEL SISTEMA DE ARCHIVOS DE MINIX 455 
Figura 5-27. Mensajes del sistema de a…
474/959
456 SISTEMAS DE ARCHIVOS CAP. 5 
no cuente con número mágico. Esto evita el empleo inadvertido de …
475/959
SEC.5.6 GENERALIDADES DEL SISTEMA DE ARCHIVOS DE MINIX 457 
Figura 5-29. El superbloque de MINIX. …
476/959
458 SISTEMAS DE ARCHIVOS CAP. 5 
que no están presentes en el disco. Éstos incluyen banderas que p…
477/959
SEC.5.6 GENERALIDADES DEL SISTEMA DE ARCHIVOS DE MINIX 459 
pero se mantiene un apuntador a la pri…
478/959
460 SISTEMAS DE ARCHIVOS CAP.5 
Ahora alguien realiza un SEEK a 32768 y escribe un byte. El tamaño…
479/959
SEC. 5.6 GENERALIDADES DEL SISTEMA DE ARCHIVOS DE MINIX 461 
5.6.5 El caché de bloques 
MINIX emp…
480/959
462 SISTEMAS DE ARCHIVOS CAP. 5 
Además, se emplea una tabla hash (o de cálculo de clave) para det…
481/959
SEC. 5.6 GENERALIDADES DEL SISTEMA DE ARCHIVOS DE MINIX 463 
Uno de los parámetros de putJblock in…
482/959
464 SISTEMAS DE ARCHIVOS CAP. 5 
archivo. Esto es idéntico a la entrada de directorio UNIX tradici…
483/959
SEC. 5.6 GENERALIDADES DEL SISTEMA DE ARCHIVOS DE MINIX 465 
En la Fig. 5-29 vemos que los superbi…
484/959
466 SISTEMAS DE ARCHIVOS CAP. 5 
La primera posibilidad es colocarlo en el nodo-i. Lo malo es que …
485/959
SEC. 5.6 GENERALIDADES DEL SISTEMA DE ARCHIVOS DE MINIX 467 
i/p. La entrada filp también contiene…
486/959
468 SISTEMAS DE ARCHIVOS CAP. 5 
bloqueado esperándola. Así pues, después de suspender un proceso,…
487/959
SEC. 5.6 GENERALIDADES DEL SISTEMA DE ARCHIVOS DE MINIX 469 
situación en la que está cuando descu…
488/959
470 SISTEMAS DE ARCHIVOS CAP. 5 
5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 
El sistema de …
489/959
SEC.5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 471
SUPER_V2 definen estos números. El apoyo …
490/959
472 SISTEMAS DE ARCHIVOS CAP. 5 
una parte de datos, b, y un encabezado lleno de apuntadores, band…
491/959
SEC. 5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 473
para una versión dada aquí. Cuando se le…
492/959
474 SISTEMAS DE ARCHIVOS CAP. 5 
Hay una línea en la tabla para cada dispositivo principal posible…
493/959
SEC. 5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 475
minix/config.h. Al final de esta sección…
494/959
476 SISTEMAS DE ARCHIVOS CAP. 5 
probabilidad de necesitarse pronto otra vez se colocan al frente,…
495/959
SEC. 5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 477
Rw_scattered (línea 21313) recibe un ide…
496/959
478 SISTEMAS DE ARCHIVOS CAP. 5 
distribuye también incluye todos los posibles controladores de di…
497/959
SEC.5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MIN1X 479
es examinar la tabla inode para ver si el…
498/959
480 SISTEMAS DE ARCHIVOS CAP. 5
encendiendo bits del campo i_update del nodo-i mientras éste está …
499/959
La liberación de un bit es más sencilla que la asignación de un bit, ya que no es necesario buscar.…
500/959
482 SISTEMAS DE ARCHIVOS CAP. 5 
Candados de archivos
Las funciones de candados de registros de P…
501/959
SEC. 5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 483
dont_reply se inicializa en FALSE. Luego…
502/959
484 SISTEMAS DE ARCHIVOS CAP. 5 
Figura 5-38. Inicialización del caché de bloques. (a) Antes de us…
503/959
SEC. 5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 485
tenga el tamaño suficiente para contener…
504/959
486 SISTEMAS DE ARCHIVOS CAP, 5 
Lo primero que hace common_open (línea 22975) es asegurarse de qu…
505/959
SEC. 5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 487
last_dir trata de cargar el nodo-i parsi…
506/959
488 SISTEMAS DE ARCHIVOS CAP. 5 
cyalesquier candados y revivir cualquier proceso que haya estado …
507/959
SEC. 5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 489
Estas reglas implican que un trozo nunca…
508/959
490 SISTEMAS DE ARCHIVOS CAP. 5 
Una vez que se tiene un apuntador al bloque, la llamada a sys_cop…
509/959
SEC. 5.7 IMPLEMENTACION DEL SISTEMA DE ARCHIVOS MINIX 491 
Escritura de un archivo
El código para…
510/959
492 SISTEMAS DE ARCHIVOS CAP. 5 
indirección se adquiere correctamente, pero el disco está lleno y…
511/959
SEC. 5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 493
En primer lugar, los conductos se crean …
512/959
494 SISTEMAS DE ARCHIVOS CAP. 5 
archivo nombrado antes de que puedan ponerse a trabajar en la lla…
513/959
SEC. 5.7 IMPLEMENTACION DEL SISTEMA DE ARCHIVOS MINIX 495
El establecimiento de estos apuntadores …
514/959
496 SISTEMAS DE ARCHIVOS CAP. 5 
Desmontar un sistema de archivos es más fácil que montarlo, pues …
515/959
SEC. 5.7 IMPLEMENTACIÓN DEL SISTEMA DE ARCHIVOS MINIX 497
nombre de un archivo dentro de un direct…
516/959
498 SISTEMAS DE ARCHIVOS CAP. 5 
5.7.6 Otras llamadas al sistema
El último grupo de llamadas al s…
517/959
SEC. 5.7 IMPLEMENTACION DEL SISTEMA DE ARCHIVOS MINIX 499
implementación completa sería una sola i…
518/959
500 SISTEMAS DE ARCHIVOS CAP. 5 
tarea del reloj. Esto es, de hecho, lo que do_time y do_stime hac…
519/959
para operaciones de anexión. 
Do_fcntl también maneja el empleo de candados de archivos. Una llama…
520/959
502 SISTEMAS DE ARCHIVOS CAP. 5 
Es posible que los archivos especiales requieran un procesamiento…
521/959
SEC. 5.8 RESUMEN 503
de red en una máquina sin apoyo de red. No_dev devuelve una situación de ENOD…
522/959
504 SISTEMAS DE ARCHIVOS CAP. 5 
La seguridad y la protección son asuntos vitales tanto para los u…
523/959
CAP. 5 PROBLEMAS 505
9. El rendimiento de un sistema de archivos depende de la tasa de aciertos en…
524/959
506 SISTEMAS DE ARCHIVOS CAP. 5 
18. Considere el siguiente mecanismo de protección. A cada objeto…
525/959
6
LISTA DE LECTURAS Y BIBLIOGRAFÍA 
En los cinco capítulos anteriores tratamos diversos temas. El…
526/959
508 LISTA DE LECTURAS Y BIBLIOGRAFÍA CAP. 6 
Comer, Operating System Design. The Xinu Approach
Un…
527/959
SEC.6.1 SUGERENCIAS DE LECTURAS ADICIONALES 509
llena de dinosaurios. Qué tiene que ver esto con l…
528/959
510 LISTA DE LECTURAS Y BIBLIOGRAFÍA CAP. 6 
6.1.3 Entrada/salida
Chen et al., "RAID: High Perfor…
529/959
SEC. 6.1 SUGERENCIAS DE LECTURAS ADICIONALES 511
6.1.4 Administración de memoria
Denning, "Virtua…
530/959
512 LISTA DE LECTURAS Y BIBLIOGRAFÍA CAP. 6 
Silberschatz y Galvin, Operating System Concepts, 4a.…
531/959
SEC. 6.2 BIBLIOGRAFÍA ALFABETIZADA 513 
COMER, D.: Operating System Design. The Xinu Approach, Eng…
532/959
514 LISTA DE LECTURAS Y BIBLIOGRAFÍA CAP. 6 
FEELEY, MJ., MORCAN, W.E., PIGHIN, F.H., KARLIN, A.R.…
533/959
SEC. 6.2 BIBLIOGRAFÍA ALFABETIZADA 515 
KLEIN, D.V.: "Foiling the Cracker: A Survey of, and Improv…
534/959
516 LISTA DE LECTURAS Y BIBLIOGRAFÍA CAP. 6 
SALTZER, J.H.: "Protection and Control of Infonnation…
535/959
SEC. 6.2 BIBLIOGRAFÍA ALFABETIZADA 517 
WALDSPURGER, C.A., and WEIHL, W.E.: "Lottery Scheduling: F…
536/959
APÉNDICES 
519 
www.elsolucionario.net
www.elsolucionario.net
537/959
A
EL CÓDIGO FUENTE DE MINIX 
www.elsolucionario.net
www.elsolucionario.net
538/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/ansi.h 523 
+++++++++4include/ansi.h+++++++++++++++++++…
539/959
++++++++++++++++++++++++++++++++++ 
include/limits.h 
00100 /* La cabecera <limits.h> define algu…
540/959
00153 ffdefine POSIXTZNAMEMAX 3 /* zona de tiempo puede tener al menos 3 car. */
00154 ffdefine PO…
541/959
526 Archivo: include/errno.h EL CÓDIGO FUENTE DE MINIX 
00220 #define ERRNOH /* está incluido; tom…
542/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/errno.h 527 
00280 #define EBADMODE ( SIGN 53) /* modo …
543/959
528 Archivo: include/unistd.h EL CÓDIGO FUENTE DE MINIX 
00415 
00416 /* Valores usados por acces…
544/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/unistd.h 529
00486 ffendif 
00487 
00488 PROTOTYPE( v…
545/959
530 Archivo: include/unistd.h EL CÓDIGO FUENTE DE MINIX 
_PROTOTYPE( ssize_t write, (int _fd, cons…
546/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/string.h 531 
00630 PROTOTYPE( sizet strcspn, (const ch…
547/959
532 Archivo: include/signal.h EL CÓDIGO FUENTE DE MINIX 
00725 #define SIGINT 2 /* interrupción (D…
548/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/signal.h 533
/* para bloquear señales */ 
/* para desb…
549/959
534 Archivo: include/fcntl.h EL CÓDIGO FUENTE DE MINIX
00925 /* Valores L type para asegurar regis…
550/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/stdlib.h 535
32767 /* valor máx. generado por rand() */…
551/959
536 Archivo: include/stdlib.h EL CÓDIGO FUENTE DE MINIX
01070 ffendif /* _MINIX */ 
01071 
01072…
552/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/termios.h 537 
01150 #define PARODD 0x0080 /* paridad i…
553/959
538 Archivo: include/termios.h EL CÓDIGO FUENTE DE MINIX
01210 #define TCIOFLUSH 3 /* vaciar datos…
554/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/termios.h 539
01274 #define TSPEEDDEF B9600
01275 
01…
555/959
540 Archivo: include/a.out.h EL CÓDIGO FUENTE DE MINIX 
01415 long aentry; /* punto de entrada */
…
556/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/a.out.h 541
01484 #define SBSS ((unsigned short)-4)
01…
557/959
542 Archivo: include/sys/types.h EL CÓDIGO FUENTE DE MINIX
01610 * un compilador de 16 bits
01611…
558/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/sys/types.h 543
01670 
01671 /* Los tipos siguientes s…
559/959
544 Archivo: include/sys/ioctl.h EL CÓDIGO FUENTE DE MINIX 
+++++++++++++++++++++++++++include/sys…
560/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/sys/ioctl.h 545 
01855 
01856 /* loctis de red. */ 
0…
561/959
546 Archivo: includc/sys/ioctl.h EL CÓDIGO FUENTE DE M1NIX 
01915 #define DSPIOSTEREO _IOR('s', 2,…
562/959
Falta la 547 
www.elsolucionario.net
www.elsolucionario.net
563/959
548 Archivo: include/sys/sigcontext.h EL CÓDIGO FUENTE DE MINíX 
02090 struct sigreos sc_regs; /* …
564/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/sys/ptrace.h 549 
+++++++++++++++++++++++++++++++++++++…
565/959
550 Archivo: inciude/sys/stat.h EL CÓDIGO FUENTE DE MINIX 
02320 }; 
02321 
02322 /*Definiciones…
566/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/sys/dir.h 551 
++++++++++++++++++++++++++++++++++++++++…
567/959
552 Archivo: include/sys/wait.h EL CÓDIGO FUENTE DE MINIX 
02530 
02531 /* Prototipos de funcione…
568/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/mimx/config.h 553 
02640 
02641 /* El caché de buffers…
569/959
554 Archivo: mclude/minix/config.h EL CÓDIGO FUENTE DE MINIX 
02700 #define ATARI_TYPE TT 
02701 …
570/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/mimx/confíg.h 555 
02760 #define FP_IEEE 1 /* se ajusta…
571/959
556 Archivo: include/minix/consl.h EL CÓDIGO FUENTE DE MINIX 
++++++++++++++++++++++++++++++++++++…
572/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/minix/const.h 557 
02955 
02956 /* La memoria se asign…
573/959
558 Archivo- include/minix/type.h EL CÓDIGO FUENTE DE MINIX 
+++++++++++++++++++++++++++++++++++++…
574/959
El. CÓDIGO FUENTE DE MINIX Archivo: include/lTiimx/type.h 559 
03155 
03156 #define m2_il m_u.m_m…
575/959
560 Archivo: include/minix/type.h EL CÓDIGO FUENTE DE MINIX 
03215 * La estructura contiene toda l…
576/959
EL CÓDIGO FUENTE DE MINIX Archivo: include/minix/sysiib.h 561 
03330 phys_clicks *_basep, phys_cli…
577/959
562 Archivo: mclude/minix/cailnr.h EL CÓDIGO FUENTE DE MINIX 
03435 #define RÉNAME 38 
03436 #def…
578/959
563 EL CÓDIGO FUENTE DE MINIX Archivo: include/minix/com.h 
03520 # define HARD_INT 2 /* código fc…
579/959
564 Archivo: include/minix/com.h EL CÓDIGO FUENTE DE MINIX 
03580 
03581 #define SCSI (WINCHESTER…
580/959
03640 /* Nombres de campos de mensaje para mensajes a la tarea CLOCK. */ 
03641 #define DELTA TICK…
581/959
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
inciude/minix…
582/959
83815 #define HASGAPS 0x8000 /* Bloq. Mayús- activo */ 
83816 
03817 /* Subteclado numérico */ 
…
583/959
03875 #define F11 (0X1A + EXT) 
03876 #define F12 (0X1B + EXT) 
03877 
03878 /* Alt+Fn */ 
0387…
584/959
03935 #define NR_SCAN_CODES 0x80 /* Núm. códigos detec. (filas en mapa) */ 
03936 
03937 typede-F…
585/959
04120 /* Tipos de particiones. */ 
04121 #define MINIX_PART 0x81 /* Tipo de partición Minix */ 
0…
586/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/const.h 571 
04315 * 3 palabras para init_org[] , só…
587/959
572 Archivo: src/kemeI/const.h EL CÓDIGO FUENTE DE MINIX 
04375 #define WINI_1_PARM_VEC 0x46 
043…
588/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/const.h 573 
04435 #define EP_ON 2 /* var = on (o ca…
589/959
574 Archivo: src/kernel/type.h EL CÓDIGO FUENTE DE MINIX 
04545 regt si; /* orden es p/concordar c…
590/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/type.h 575 
04605 struct fsave { 
04606 struct cpu_s…
591/959
576 Archivo: src/kemel/proto.h EL CÓDIGO FUENTE DE MINIX 
04725 _PROTOTYPE( void dp8390 task, (voi…
592/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/proto.h 577 
04785 #if (CHIP == INTEL) 
04786 
047…
593/959
578 Archivo: src/kemel/proto.h EL CÓDIGO FUENTE DE MINIX
04845 _PROTOTYPE( void leve10, (void (*fu…
594/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kerneUproto.h 579
04905 _PROTOTYPE( void init_dataseg, (str…
595/959
580 Archivo: src/kemeVglo.h EL CÓDIGO FUENTE DE MINIX 
05035 #if (CHIP == INTEL) 
05036 
05037 /…
596/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/proto.h 581 
05110 struct proc { 
05111 struct stack…
597/959
582 Archivo: src/kernel/proc.h EL CÓDIGO FUENTE DE MINIX 
05170 #define isidlehardware(n) ((n) == …
598/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/protect.h 583 
05225 #define DS_SELECTOR 0x18 /* (DS…
599/959
584 Archivo: src/kemel/protect.h EL CÓDIGO FUENTE DE MINIX 
05285 #define EXPAND DOWN 0x04 /* enc.…
600/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/sconst.h 585 
05410 ESREG = FSREG + 2 
05411 #endif…
601/959
586 Archivo: src/kernel/assert.h EL CÓDIGO FUENTE DE MINIX 
05525 
05526 #endif /* ASSERT_H */ 
…
602/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/table.c 587 
05650 #define PRINTER_STACK SMALL_STACK…
603/959
588 Archivo: src/kemel/table.c EL CÓDIGO FUENTE DE MINIX 
05710 #endif 
05711 #if ENABLE_SCSI 
0…
604/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemeUmpx386.s 589 
 +++++++++++++++++++++++++++++++++++++++…
605/959
590 Archivo: src/kernel/mpx386.s EL CÓDIGO FUENTE DE MINIX 
05955 
05956 #include <minix/config.h…
606/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/mpx386.s 591 
06015 
06016 extern _cstart 
06017 .e…
607/959
592 Archivo: src/kemeUmpx386.s EL CÓDIGO FUENTE DE MINIX 
06075 
06076 sgdt (_gdt+GDT_SELECTOR) /…
608/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/mpx386.s 593 
06135 /* manejadores de interrupciones …
609/959
594 Archivo: src/kemel/mpx386.s EL CÓDIGO FUENTE DE MINIX 
06195 /*===============================…
610/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemeUmpx386.s 595 
06255 /*================================…
611/959
596 Archivo: src/kemel/mpx386.s EL CÓDIGO FUENTE DE MINIX 
06315 cli /* inhabilitar interrupciones…
612/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/mpx386.s 597 
06375 push INVAL_OP_VECTOR 
06376 jmp …
613/959
598 Archivo: src/kemel/mpx386.s EL CÓDIGO FUENTE DE MINIX 
06435 push eax /* eax es registro tempo…
614/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/start.c 599 
+++++++++++++++++t++++++++++++++++++++++…
615/959
600 Archivo: src/kernel/start.c EL CÓDIGO FUENTE DE MINIX 
06555 envp = k_getenv("video"); 
06556…
616/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/start.c 601 
06615 
06616 for (envp = k_environ; *en…
617/959
602 Archivo: src/kemel/mainoc EL CÓDIGO FUENTE DE MINIX 
06740 mem_init(); 
06741 
06742 /* Desp…
618/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/main.c 603 
06800 rp->p_map[S] .mem_len) « CLICK_SHIF…
619/959
604 Archivo: src/kernel/proc.c EL CÓDIGO FUENTE DE MINIX 
++++++++++++++++++++++++++++++++++++++++…
620/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/proc.c 605 
06955 * Llamada de manej. de ints. anidad…
621/959
606 Archivo: src/kernel/proc.c EL CÓDIGO FUENTE DE MINIX 
07015 * La trampa se atrapa y se invoca …
622/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/proc.c 607 
07075 /* Detectar bloq. mortal si 'caller…
623/959
608 Archivo: src/kemeUproc.c EL CÓDIGO FUENTE DE MINIX 
07135 if (1 (caller_ptr->p_flags & SENDING…
624/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/ proc.c 609 
07195 } 
07196 if ( (rp = rdy_head[USER…
625/959
610 Archivo: src/kemeUproc.c EL CÓDIGO FUENTE DE MINIX 
07255 /*==================================…
626/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/proc.c 611 
07315 * tal vez promoviendo otro usuario…
627/959
612 Archivo: src/kernel/proc.c EL CÓDIGO FUENTE DE MINIX 
07375 PUBLIC void lock_unready(rp) 
073…
628/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/cxception.c 613 
++++++++++++++++++++++++++++++++++++…
629/959
614 Archivo: src/kernel/exception.c EL CÓDIGO FUENTE DE MINIX 
07555 if (k_reenter == 0 && isuserp…
630/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/i8259.c 615 
07635 * sólo tiene un controlador, porq…
631/959
616 Archivo: src/kemel/protect.c EL CÓDIGO FUENTE DE MINIX 
++++++++++++++++++++++++++++++++++++++…
632/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/protect.c 617 
07755 PUBLIC struct segdesc_s gdt[GDT_…
633/959
618 Archivo: src/kemel/protect.c EL CÓDIGO FUENTE DE MINIX 
07815 { hwint13, VECTOR(13), INTR_PRIV…
634/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/protect.c 619 
07875 int_gate(gtp->vec_nr, (phys_byte…
635/959
620 Archivo: src/kernel/protect.c EL CÓDIGO FUENTE DE MINIX 
07935 segdp->granularity = GRANULAR 1…
636/959
www.elsolucionario.net
www.elsolucionario.net
637/959
 EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/protect.c 621 
07995 */ 
07996 pp->p_reg.psw 1= 0x…
638/959
622 Archivo: src/kemel/klib386.s EL CÓDIGO FUENTE DE MINIX 
08135 #define _reset /* restablecer si…
639/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/klib386.s 623 
08195 CHKM_ARGS = 4 + 4 + 4 /* 4 + 4 *…
640/959
624 Archivo: src/kemeUklib386.s EL CÓDIGO FUENTE DE MINIX 
08255 shl esi, CLICK_SHIFT 
08256 add …
641/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/klib386.s 625 
08315 mov edx, 4(esp) ! puerto 
08316…
642/959
626 Archivo: src/kemel/klib386.s EL CÓDIGO FUENTE DE MINIX 
08375 
08376 /*======================…
643/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/klib386.s 627 
08435 
08436 PW_ARGS_B = 4 + 4 + 4 /*…
644/959
628 Archivo: src/kemel/klib386.s EL CÓDIGO FUENTE DE MINIX 
08495 jae enable_8 ! habil. irq >= 8 e…
645/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/klib386.s 629 
 08555 *==============================…
646/959
630 Archivo: src/kernel/klib386.s EL CÓDIGO FUENTE DE MINIX 
 08615 
 08616 
08617 /*===========…
647/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/klib386.s 631 
08675 test edx, edx 
08676 jnz mvc_Io…
648/959
632 Archivo: src/kernel/klib386.s EL CÓDIGO FUENTE DE MINIX 
08735 lea edi, -1 (edi)(edx*1) 
0873…
649/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/misc.c 633 
08810 #include <stdlib.h> 
08811 #includ…
650/959
634 Archivo: src/kemel/misc.c EL CÓDIGO FUENTE DE MINIX 
08870 long min, max; /* valores mino y má…
651/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/misc.c 635 
08931 #if DEBUG 
08932 /*==============…
652/959
636 Archivo: src/kemel/driver.h EL CÓDIGO FUENTE DE MINIX 
09025 #define dma_bytes_left(phys) \ 
…
653/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/driver.c 637 
09115 * ISCATTERED_IOI disp. I # proc.…
654/959
638 Archivo: src/kemel/driver.c EL CÓDIGO FUENTE DE MINIX 
09175 } 
09176 
09177 /* Ahora realiz…
655/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/driver.c 639 
09235 if (m_ptr->COUNT <= 0) return(EI…
656/959
640 Archivo: src/kernel/driver.c EL CÓDIGO FUENTE DE MINIX 
09295 (phys_bytes) nr_requests * sizeo…
657/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/driver.c 641 
09355 mess.CLOCK_PROC_NR = proc_number(…
658/959
642 Archivo: src/kemel/drvlib.h EL CÓDIGO FUENTE DE MINIX 
09410 #define bp_heads(t)(* (u8_t *) (&…
659/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/drvlib.c 643 
09535 struct device *dv; 
09536 unsig…
660/959
644 Archivo: src/kemel/drvlib.c EL CÓDIGO FUENTE DE MINIX 
09595 int extdev; /* partición extendid…
661/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/drvlib.c 645 
09655 mess.COUNT = SECTOR_SIZEj 
09656…
662/959
646 Archivo: src/kemel/memory.c EL CÓDIGO FUENTE DE MINIX 
09715 #include "kernel.h" 
09716 #incl…
663/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/memory.c 647 
09775 int proc_nr; /* proceso que soli…
664/959
648 Archivo: src/kemeUmemory.c EL CÓDIGO FUENTE DE MINIX 
09835 */ 
09836 
09837 if (m_prepare(m…
665/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/memory.c 649 
09895 memp= &mem[NR_MEMS]; 
09896 whil…
666/959
650 Archivo: src/kernel/wini.c EL CÓDIGO FUENTE DE MINIX 
++++++++++++++++++++++++++++++++++++++++…
667/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/wini.c 651 
10055 } 
10056 #endif /* ENABLE_W1N1 */ …
668/959
652 Archivo: src/kemel/wini.c EL CÓDIGO FUENTE DE MINIX 
10150 #define ERROR_TK 0x02 /* error de p…
669/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/at_wini.c 653 
10210 #define SMART 0x04 /* unidad rec…
670/959
654 Archivo: src/kemeUat_wini.c EL CÓDIGO FUENTE DE MINIX 
10270 | | w_waitTor(mask, value)) 
102…
671/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/at_wini.c 655 
10330 
10331 /* Copiar paráms. en es…
672/959
656 Archivo: src/kerneVat_wini.c EL CÓDIGO FUENTE DE MINIX 
10390 { 
10391 /* Preparar para E/S e…
673/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/at_wini.c 657 
10450 port_read(wn->base + REG_DATA, …
674/959
658 Archivo: src/kernel/at_wini.c EL CÓDIGO FUENTE DE MINIX 
10510 *==============================…
675/959
EL CÓDIGO FUENTE DEMINIX Archivo: src/kemel/at_wllll.C 659 
10570 { 
10571 /* Reunir solicitudes …
676/959
660 Archivo: src/kemelfat_wini.c EL CÓDIGO FUENTE DE MINIX 
10630 w_tp->block = block; 
10631 w_t…
677/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/at_wini.c 661 
10690 cmd.command = w_opcode == DEV_WR…
678/959
662 Archivo: src/kernel/at_wini.c EL CÓDIGO FUENTE DE MINIX 
10750 /* Restablecer si a la mitad, p…
679/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/at_wini.c 663 
10810 /*=============================…
680/959
664 Archivo: src/kernel/at_wini.c EL CÓDIGO FUENTE DE MINIX 
10870 if (wn->max_count > 8 * SECTOR_…
681/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/at_wini.c 665 
10930 int r; 
10931 
10932 /* Esper…
682/959
666 Archivo: src/kemel/at_wini.c EL CÓDIGO FUENTE DE MINIX 
10990 PRIVATE void w_geometry(entry) 
…
683/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kerneUclock.c 667 
11045 
11046 #include "kernel.h" 
1104…
684/959
668 Archivo: src/kemel/clock.c EL CÓDIGO FUENTE DE MINIX 
11105 
11106 int opcode; 
11107 
1110…
685/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kerneUclock.c 669 
11165 else 
11166 cause_sig(proc_nr, SI…
686/959
670 Archivo: src/kernel/clock.c EL CÓDIGO FUENTE DE MINIX 
11227 /*===============================…
687/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/clock.c 671 
11285 } 
11288 /*======================…
688/959
672 Archivo: src/kemeUclock.c EL CÓDIGO FUENTE DE MINIX 
11345 int work_done; /* ¿listo para dormi…
689/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/clock.c 673 
11405 * Éstas se protegen con candados …
690/959
674 Archivo: src/kernel/clock.c EL CÓDIGO FUENTE DE MINI) 
11465 sched_ticks = SCHED_RATE; 1* rest…
691/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/clock.c 675 
11526 1*===============================…
692/959
676 Archivo: src/kemel/tty.h EL CÓDIGO FUENTE DE MINIX 
11620 int tty_incount; /* # cars. en cola …
693/959
EL CÓDIGO FUENTE1)E MINIX Archivo: src/kernel/tty.h 677 
11680 #define IN_LEN 0x0F00 /* long. de c…
694/959
678 Archivo: src/kemel/tty.c EL CÓDIGO FUENTE DE MINIX 
11735 * 1-------------------+----------- +…
695/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/tty.c 679 
11795 FORWARD _PROTOTYPE( void reprint, (…
696/959
680 Archivo: src/kernel/tty.c EL CÓDIGO FUENTE DE MINIX 
11855 if ((line -TTYPX_MINOR) < NR_PTYS) …
697/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/tty.c 681 
11915 tp->tty_inleft = m_ptr->COUNT; 
11…
698/959
682 Archivo: src/kernel/tty.c EL CÓDIGO FUENTE DE MINIX 
11975 r = EIO; 
11976 } else 
11977 if …
699/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/tty.c 683 
12035 case TCSETS: /* función tcsetattr de…
700/959
684 Archivo: src/kernel/tty.c EL CÓDIGO FUENTE DE MINIX 
12095 /*SEGUIRSE A LA SIGUIENTE RUTINA*/ …
701/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/tty.c 685 
12155 * definido _POSIX_JOB_CONTROL. 
12…
702/959
686 Archivo: src/kernel/tty.c EL CÓDIGO FUENTE DE MINIX 
12217 /*=================================…
703/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/tt.yoc 687 
12275 do { 
12276 tp->tty_events = 0j 
…
704/959
688 Archivo: src/kemel/tty.c EL CÓDIGO FUENTE DE MINIX 
12335 
12336 /* Quitar carácter de la col…
705/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/tty.c 689 
12395 
12396 /* ¿LNEXT (AV) p/escapar sig…
706/959
690 Archivo: src/kemel/tty.c EL CÓDIGO FUENTE DE MINIX 
12455 
12456 /* ¿Control de entradas star…
707/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/tty.c 691 
12515 *tp->tty_inhead++ = ch; 
12516 if …
708/959
692 Archivo: src/kemeVtty.c EL CÓDIGO FUENTE DE MINIX 
12575 /* Un DEL aparece como "'7". */ 
125…
709/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/tty.c 693 
12635 * reprint * 
12636 *===============…
710/959
694 Archivo: src/kemeUtty.c EL CÓDIGO FUENTE DE MINIX 
12695 while (ict > 0) { 
12696 switch (*bp…
711/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/tty.c 695 
12755 *icount -= ict; /* [io]ct son núms.…
712/959
696 Archivo: src/kernel/tty.c EL CÓDIGO FUENTE DE MINIX 
12815 unlock(); 
12816 if (tp->tty_termi…
713/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/tty.c 697 
12875 
12876 if (tp->tty_pgrp 1= 0) cause…
714/959
698 Archivo: src/kemeI/tty.c EL CÓDIGO FUENTE DE MINI 
12935 */ 
12936 tty_t *tp; 
12937 
12938…
715/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/tty.c 699 
12995 /* Algunas funcs. no tienen que impl…
716/959
700 Archivo: src/kernel/keyboard.c EL CÓDIGO FUENTE DE MINIX 
13050 PRIVATE int numlock; /* estado…
717/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/keyboard.c 701 
13110 if (caps) column = 4; 
13111 …
718/959
702 Archivo: src/kernel/keyboard.c EL CÓDIGO FUENTE DE MINIX 
13170 struct kb_s *kb; 
13171 char …
719/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kerneI/keyboard.c 703 
13230 static int CAD_count = 0; 
13…
720/959
704 Archivo: src/kemel/keyboard.c EL CÓDIGO FUENTE DE MINIX 
13290 esc = 1; 
13291 return(-1); 
…
721/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemeI/keyboard.c 705 
13350 while (--retries 1= 0 && in_byt…
722/959
706 Archivo: src/kernel/keyboard.c EL CÓDIGO FUENTE DE MINIX 
13410 unsigned code; 
13411 
13412…
723/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/keyboard.c 707 
13470 } 
13471 
13472 if (how == RB…
724/959
708 Archivo: src/kemel/keyboard.c EL CÓDIGO FUENTE DE MINIX 
13530 printf("Hard reset.. .\n"); 
1…
725/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/console.c 709 
13645 #define VID_ORG 12 /* registro …
726/959
710 Archivo: src/kemel/console.c EL CÓDIGO FUENTE DE MINIX 
13705 /* Estructura empleada para admi…
727/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/consoleoc 711 
13765 */ 
13766 do { 
13767 if ((uns…
728/959
712 Archivo: src/kemel/console.c EL CÓDIGO FUENTE DE MINIX 
13825 beep(); 
13826 return; 
13827 …
729/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kerneI/console.c 713 
13885 if (cons->c_rwords == bUflen(co…
730/959
714 Archivo: src/kernel/console.c EL CÓDIGO FUENTE DE MINIX 
13945 } 
13948 1*===================…
731/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/console.c 715 
14005 * ESC M desplaza la pant. hacia …
732/959
716 Archivo: src/kerneVconsole.c EL CÓDIGO FUENTE DE MINIX 
14065 break; 
14066 
14067 default: …
733/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemeVconsole.c 717 
14125 
14126 case 'K':/* ESC [sK borra…
734/959
718 Archivo: src/kemel/console.c EL CÓDIGO FUENTE DE MINIX 
14185 vid_vid_copy(src, dst, count); 
…
735/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/console.c 719 
14245 cons->c_attr = (cons->c_attr & …
736/959
720 Archivo: src/kemel/console,c EL CÓDIGO FUENTE DE MINIX 
14305 */ 
14306 
14307 message mess;…
737/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/console.c 721 
14365 tp->tty_echo = cons_echo; 
143…
738/959
722 Archivo: src/kemel/console.c EL CÓDIGO FUENTE DE MINIX 
14426 /*==============================…
739/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/console.c 723 
14485 
14486 if (cons_line < 0 11 con…
740/959
724 Archivo: src/kemeI/console.c EL CÓDIGO FUENTE DE MINIX 
14545 int len= 7; 
14546 do { 
14547…
741/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/dmp.c 725 
14645 printf("S:%-5.5S", proc_name(rp->p_…
742/959
726 Archivo: src/kemel/system.c EL CÓDIGO FUENTE DE MINIX 
+++++++++++++++++++++++++++++++++++++++…
743/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kerneI/system.c 727 
14755 * |---------------------+-------…
744/959
728 Archivo: src/kemel/system.c EL CÓDIGO FUENTE DE MINIX 
14815 FORWARD _PROTOTYPE( int do_copy, …
745/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/system.c 729 
14875 * do_fork * 
14876 *===========…
746/959
730 Archivo: src/kemel/system.c EL CÓDIGO FUENTE DE MINIX 
14935 k = m_ptr->PROC1; 
14936 map_ptr…
747/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/system.c 731 
14995 register struct proc *rp; 
1499…
748/959
732 Archivo: src/kerneUsystem.c EL CÓDIGO FUENTE DE MINIX 
15055 */ 
15056 if (rc->p_flags & SEND…
749/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/system.c 733 
15115 
15116 /* Insertar tiempos req.…
750/959
734 Archivo: src/kemel/system.c EL CÓDIGO FUENTE DE MINIX 
15175 panic("do_sendsig can't signal: b…
751/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/system.c 735 
15235 /* Copiar la estructura sigconte…
752/959
736 Archivo: src/kernel/system.c EL CÓDIGO FUENTE DE MINIX 
15295 register message *m_ptr; /* apun…
753/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/system.c 737 
15355 if (src_phys == 0 11 dst_phys == …
754/959
738 Archivo: src/kemel/system.c EL CÓDIGO FUENTE DE MINIX 
15415 phys_copy(vir2phys(&boot_paramete…
755/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kemel/system.c 739 
15475 * T_GETDATA devolver valor de esp…
756/959
740 Archivo: src/kemel/system.c EL CÓDIGO FUENTE DE MINIX 
15535 
15536 case T_SETUSER: /* fijar …
757/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kernel/system.c 741 
15595 * a hacerlo directamente, por te…
758/959
742 Archivo: src/kernel/system.c EL CÓDIGO FUENTE DE MINIX 
15655 /*==============================…
759/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/kerneI/system.c 743 
15715 PUBLIC void alloc_segments(rp) 
…
760/959
744 Archivo: src/rnm/rnrn.h EL CÓDIGO FUENTE DE MINIX 
15810 #include <sys/types.h> 
15811 #inclu…
761/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/rnm/proto.h 745 
++++++++++++++++++++++++++++++++++++++++++…
762/959
746 Archivo: src/mmfproto.h EL CÓDIGO FUENTE DE MINIX 
16155 _PROTOTYPE( int do_sigpending, (void)…
763/959
EL CÓDIGO FUENTE DE MINIX Archivo; src/mm/mproc.h 747 
+++++++++++++++++++++++++++++++++++++++++++…
764/959
748 Archivo: src/mmJparam.h EL CÓDIGO FUENTE DE MINIX 
+++++++++++++++++++++++++++++++++++++++++++…
765/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/mm/table.c 749 
16510 #include "param.h" 
16511 
16512 /*…
766/959
750 Archivo: src/mm/table.c EL CÓDIGO FUENTE DE MINIX 
16570 no_sys, 1* 54 = ioctl *1 
16571 no_s…
767/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/mmlmain.c 751 
16625 * main * 
16626 *====================…
768/959
752 Archivo: src/rnm/rnain.c EL CÓDIGO FUENTE DE MINIX 
16685 
16686 proc_ptr = &mproc[proc_nr]j …
769/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/mIn/main.c 753 
16745 procs_in_use = LOW_USER + 1; 
16746 …
770/959
16825 PRIVATE pid_t next_pid = INIT_PID+1; /* sigte. pid por asignar */ 
16826 
16827 FORWARD _PR…
771/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/mm/forkexit.c 755 
16885 do { 
16886 t = 0; /* 't' = 0 ind…
772/959
756 Archivo: src/rnrn/forkexit.c EL CÓDIGO FUENTE DE MINIX 
16945 /* Si el proc que salió tenía te…
773/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/rnm/forkexit.c 757 
17005 * envía la respuesta para despert…
774/959
758 Archivo: src/rnm/forkexit.c EL CÓDIGO FUENTE DE MINIX 
17065 * una señal, y su padre está espe…
775/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/rnm/exec.c 759 
17140 PUBLIC int do_exec() 
17141 { 
1714…
776/959
760 Archivo: src/mm/exec.c EL CÓDIGO FUENTE DE MINIX 
17200 if (r != OK) { 
17201 close(fd) ; /* …
777/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/rnm/exec.c 761 
17260 
17261 /* Sistema guardará linea com…
778/959
762 Archivo: src/mm/exec.c EL CÓDIGO FUENTE DE MINIX 
17320 1* Verificar número mágico, tipo de cp…
779/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/rnmlexec.c 763 
17380 phys_clicks new_base; 
17381 
17382…
780/959
764 Archivo: src/mm/exec.c EL CÓDIGO FUENTE DE MINIX 
17440 
17441 /* Poner en cero bss, espacio …
781/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/rnlnfexec.c 765 
17500 int seg ; 1* T o D */ 
17501 vir_by…
782/959
766 Archivo: src/mm/break.c EL CÓDIGO FUENTE DE MINIX 
+++++++++++++++++++++++++++++++++++++++++++…
783/959
EL CÓDIGO FUENTE DE MINIX 767 
17655 } Archivo: src/mrn/break.c 
17658 /*========================…
784/959
768 Archivo: src/rnm/break.c EL CÓDIGO FUENTE DE MINIX 
17715 r = size_ok(ft, rmp->mp_seg[T] .mem_…
785/959
EL CÓDIGO FuENTE DE MINIX Archivo: src/rnmJsignal.c 769 
+++++++++++++++++++++++++++++++++++++++++…
786/959
770 Archivo: src/rnln/signal.c EL CÓDIGO FUENTE DE MINIX 
17855 r = sys_copy(MM_PROC_NR,D, (phys_b…
787/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/mmlsignal.c 771 
17915 sigdelset((sigset_t *)&sig_set, SIGK…
788/959
772 Archivo: src/mmlsignal.c EL CÓDIGO FUENTE DE MINIX 
17975 r = sys_sigreturn(who, (vir_bytes) s…
789/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/mm/signal.c 773 
18035 /* No hacer caso de SIGALRM cuando e…
790/959
774 Archivo: src/rnm/signal.c EL CÓDIGO FUENTE DE MINIX 
18095 * tiene el tipo correcto (clock_t) …
791/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/rnmlsignal.c 775 
18155 
18156 tell_fs(EXIT, INIT_PROC_NR,…
792/959
776 Archivo: src/rnm/signal.c EL CÓDIGO FUENTE DE MINIX 
18215 sm.sm_mask = rmp->mp_sigmask2; 
18…
793/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/mrn/signal.c 777 
18275 int count; /* contar núm. de señale…
794/959
778 Archivo: src/rnmJsignal.c EL CÓDIGO FUENTE DE MINIX 
18335 * Si se encuentran varias señales n…
795/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/mm/signa].c 779 
18395 tell_fs(UNPAUSE, pro, 0, 0); 
18396…
796/959
780 Archivo: src/mmlsignal.c EL CÓDIGO FUENTE DE MINIX 
18455 
18456 /* Iterar por un segmento, v…
797/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/rnmJgetset.c 781 
18540 break; 
18541 
18542 case SETUID:…
798/959
782 Archivo: srcfrnm/trace.c EL CÓDIGO FUENTE DE MINIX 
18615 * T_STEP activar bit de rastreo 
18…
799/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/rnm/trace.c 783 
18675 /*==================================…
800/959
784 Archivo: src/rnm/alloc.c EL CÓDIGO FUENTE DE MINIX 
18820 #define NR_HOLES 128 /* # máx. entra…
801/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/rnmlalloc.c 785 
18880 phys_clicks base; /* dir. base del b…
802/959
786 Archivo: src/mm/alloc.c EL CÓDIGO FUENTE DE MINIX 
18940 
18941 hp->h_next = free_slots; 
18…
803/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/mm/alloc.c 787 
19002 /*===================================…
804/959
788 Archivo: src/mrn/utility.c EL CÓDIGO FUENTE DE MINIX 
++++++++++++++++++++++++++++++++++++++++…
805/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/mmJutility.c 789 
19155 } 
19158 /*=======================…
806/959
790 Archivo: src/mm/putk.c EL CÓDIGO FUENTE DE MINIX 
++++++++++++++++++++++++++++++++++++++++++++…
807/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/fs.h 791 
++++++++++++++++++++++++++++++++++++++++++++++…
808/959
792 Archivo: src/fs/const.h EL CÓDIGO FUENTE DE MINIX 
19525 
19526 /* Constantes diversas. */ 
…
809/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/type.h 793 
++++++++++++++++++++++++++++++++++++++++++++…
810/959
794 Archivo: src/fs/proto.h EL CÓDIGO FUENTE DE MINIX 
19725 _PROTOTYPE( void no_dev, (int task_nr…
811/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/proto.h 795 
19785 _PROTOTYPE( int do_mkdir, (void) ); 
…
812/959
796 Archivo: src/fs/proto.h EL CÓDIGO FUENTE DE MINIX 
19845 _PROTOTYPE( time t clock time, (void)…
813/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/fproc.h 797 
+++++++++++++++++++++++++++++++++++++++++++…
814/959
798 Archivo: src/fs/buU EL CÓDIGO FUENTE DE MINIX 
20115 EXTERN struct buf { 
20116 /* Porción de…
815/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/dev.h 799 
+++++++++++++++++++++++++++++++++++++++++++++…
816/959
800 Archivo: src/fs/inode.h EL CÓDIGO FUENTE DE MINIX 
+++++++++++++++++++++++++++++++++++++++++++…
817/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/param.h 801 
+++++++++++++++++++++++++++++++++++++++++++…
818/959
802 Archivo: src/fs/super.h EL CÓDIGO FUENTE DE MINIX 
+++++++++++++++++++++++++++++++++++++++++++…
819/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/table.c 803 
+++++++++++++++++++++++++++++++++++++++++++…
820/959
804 Archivo: src/fs/table.c EL CÓDIGO FUENTE DE MINIX 
20855 no_sys, /* 37 = kill */ 
20856 do_re…
821/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/table.c 805 
20915 /* ? Abrir Leer/Escribir Cerrar # Tar…
822/959
806 Archivo: src/fs/cache.c EL CÓDIGO FUENTE DE MINIX 
21020 #include "super.h" 
21021 
21022 FO…
823/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/cache.c 807 
21080 } else { 
21081 /* El bloque tomado …
824/959
808 Archivo: src/fs/cache.c EL CÓDIGO FUENTE DE MINIX 
21140 * en 'block_type', no es probable que…
825/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/cache.c 809 
21200 if (z == sp->s_firstdatazone) { 
212…
826/959
810 Archivo: src/fs/cache.c EL CÓDIGO FUENTE DE MINIX 
21260 r = dev_io(op, FALSE, dev, pos, BLOCK…
827/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/cache.c 811 
21320 
21321 register struct buf *bp; 
21…
828/959
812 Archivo: src/fs/cache.c EL CÓDIGO FUENTE DE MINIX 
21380 } 
21381 } 
21384 /*===============…
829/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/inode.c 813
21525 FORWARD _PROTOTYPE( void old_icopy, (s…
830/959
814 Archivo: src/fs/inode.c EL CÓDIGO FUENTE DE MINIX 
21585 
21586 if (rip == NIL_INODE) return;…
831/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/inode.c 815
21645 rip->i_dev = dev; /* marcar en cuál di…
832/959
816 Archivo: src/fs/inode.c EL CÓDIGO FUENTE DE MINIX 
21705 register struct inode *rip; /* apunt …
833/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/inode.c 817
21765 
21766 put_block(bp, INODE_BLOCK); 
…
834/959
818 Archivo: src/fs/inode.c EL CÓDIGO FUENTE DE MINIX 
21825 int norm; /* TRUE = no intercamb. byt…
835/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/super.c 819 
+++++++++++++++++++++++++++++++++++++++++++…
836/959
820 Archivo: src/fs/super.c EL CÓDIGO FUENTE DE MINIX 
21955 if (origin >= map_bitS) origin = 0; /…
837/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/super.c 821
22015 if (sp->s_rd_only) 
22016 panic("can'…
838/959
822 Archivo: src/fs/super.c EL CÓDIGO FUENTE DE MINIX 
22075 dev = (dev_t) rip->i_zone[0]; 
22076…
839/959
 EL CÓDIGO FUENTE DE MINIX
 Archivo: src/fs/super.c 823 
22135 * Calcular aquí también algunos ot…
840/959
824 Archivo: src/fs/filedes.c EL CÓDIGO FUENTE DE MINIX 
22225 */ 
22226 
22227 register struct …
841/959
 EL CÓDIGO FUENTE DE MINIX
 Archivo: src/fs/filedes.c 825 
22285 * Al igual que 'get_fd', realiza…
842/959
www.elsolucionario.net
www.elsolucionario.net
843/959
826 Archivo: src/fs/lock.c EL CÓDIGO FUENTE DE MINIX
22340 mo = f->filp_mode; 
22341 if (ltype !=…
844/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/lock.c 827
22400 
22401 /* Parte de una región asegurad…
845/959
828 Archivo: src/fs/lock.c EL CÓDIGO FUENTE DE MINIX
22460 
/*===================================…
846/959
 EL CÓDIGO FUENTE DE MINIX
 Archivo: src/fs/main.c 829 
22530 FORWARD _PROTOTYPE( void load_ram, …
847/959
www.elsolucionario.net
www.elsolucionario.net
848/959
830 Archivo: src/fs/main.c EL CÓDIGO FUENTE DE MINIX
22590 rp->fp_revived = NOT_REVIVINGj 
22591 …
849/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/main.c 831
22650 fp->fp_realuid = (uid_t) SYS_UID; 
226…
850/959
832 Archivo: src/fs/main.c EL CÓDIGO FUENTE DE MINIX 
22710 /* Pedir al kernel parámetros de arran…
851/959
 EL CÓDIGO FUENTE DE MINIX
 Archivo: src/fs/main.c 833 
22770 fsmax = (u32_t) sp->s_zmap_blocks *…
852/959
834 Archivo: src/fs/main.c EL CÓDIGO FUENTE DE MINIX
22830 * load_super * 
22831 
*=============…
853/959
www.elsolucionario.net
www.elsolucionario.net
854/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/open.c 835
22920 #include "fproc.h" 22921 #include "inod…
855/959
836 Archivo: src/fs/open.c EL CÓDIGO FUENTE DE MINIX
22980 
22981 register struct inode *rip; 
2…
856/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/open.c 837
23040 case I_CHAR_SPECIAL: 
23041 case I_BLO…
857/959
838 Archivo: src/fs/open.c EL CÓDIGO FUENTE DE MINIX
23100 put_inode(rip); 
23101 return(r) ; 
2…
858/959
www.elsolucionario.net
www.elsolucionario.net
859/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/open.c 839
23160 if (rip != NIL_INODE) 
23161 r = EEXIS…
860/959
www.elsolucionario.net
www.elsolucionario.net
861/959
840 Archivo: src/fs/open.c EL CÓDIGO FUENTE DE MINIX
23220 } 
23223 
/*=========================…
862/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/open.c 841 
23280 } 
23283 *===========================…
863/959
842 Archivo: src/fs/open.c EL CÓDIGO FUENTE DE MINIX 
23340 else 
23341 rip->i_zone[V2_NR_DZONES+…
864/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/read.c 843
+++++++++++++++++++++++++++++++++++++++++++++…
865/959
844 Archivo: src/fs/read.c EL CÓDIGO FUENTE DE MINIX 
23455 mode_t mode_word; 
23456 struct filp …
866/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/read.c 845
23515 * agujero. Esto es necesario porque tod…
867/959
846 Archivo: src/fs/read.c EL CÓDIGO FUENTE DE MINIX 
23575 } 
23576 f->filp_pos = position; 
23…
868/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/read.c 847
23635 dev = (dev_t) rip->i_zone[0]; 
23636 }…
869/959
848 Archivo: src/fs/read.c EL CÓDIGO FUENTE DE MINIX 
23695 */ 
23696 
23697 register struct buf…
870/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/read.c 849
23755 int index; /* índice en *bp */ 
23756 …
871/959
850 Archivo: src/fs/read.c EL CÓDIGO FUENTE DE MINIX
23815 * (o después de un error). Rw_scattered…
872/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/read.c 851
23875 ind1_pos = (off_t) rip->i_ndzones * (BL…
873/959
852 Archivo: src/fs/write.c EL CÓDIGO FUENTE DE MINIX
24010 #include <string.h> 
24011 #include "…
874/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/write.c 853
24070 single = TRUE; 
24071 } else { 
2407…
875/959
854 Archivo: src/fs/write.c EL CÓDIGO FUENTE DE MINIX
24130 zone_t zone; /* zona por escribir */ 
…
876/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/write.c 855
24190 PUBLIC struct buf *new_block(rip, posi…
877/959
856 Archivo: src/fs/write.c EL CÓDIGO FUENTE DE MINIX
24250 } 
++++++++++++++++++++++++++++++++++…
878/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/pipe.c 857
24350 return(r); 
24351 } 
24352 rfp->fp_fi…
879/959
858 Archivo: src/fs/pipe.c EL CÓDIGO FUENTE DE MINIX
24410 suspend(XPIPE); /* bloquear lector */ 
…
880/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/pipe.c 859
24470 */ 
24471 
24472 if (task == XPIPE 11…
881/959
860 Archivo: src/fs/pipe.c EL CÓDIGO FUENTE DE MINIX
24530 if (proc_nr < 0 11 proc_nr >= NR_PROCS)…
882/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/pipe.c 861
24590 
24591 default: /* proc trata hacer E/…
883/959
862 Archivo: src/fs/path.c EL CÓDIGO FUENTE DE MINIX
24730 /* Analizar ruta 'path' y colocar su no…
884/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/path.c 863
24790 return(rip); /* salida normal */ 
2479…
885/959
864 Archivo: src/fs/path.c EL CÓDIGO FUENTE DE MINIX
24852 /*=====================================…
886/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/path.c 865
24910 if (rip == NIL_INODE) return(NIL_INODE)…
887/959
866 Archivo: src/fs/path.c EL CÓDIGO FUENTE DE MINIX
24970 if (flag != LOOK_UP) r = read_only(ldir…
888/959
www.elsolucionario.net
www.elsolucionario.net
889/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/path.c 867
25030 if (flag == ENTER && dp->d_ino == 0) { …
890/959
868 Archivo: src/fs/mount.c EL CÓDIGO FUENTE DE MINIX
25110 #include <sys/stat.h> 
25111 #include…
891/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/mount.c 869
25170 if (r 1= OK) { 
25171 dev_mess.m_type…
892/959
870 Archivo: src/fs/mount.c EL CÓDIGO FUENTE DE MINIX
25230 rip->i_mount = I_MOUNT; /* este bit di…
893/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/mount.c 871
25290 sp->s_imount = NIL_INODE; 
25291 sp.>…
894/959
872 Archivo: src/fs/link.c EL CÓDIGO FUENTE DE MINIX 
25420 #include "super.h" 
25421 
25422 #de…
895/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/link.c 873 
25480 if (r == OK) 
25481 if (rip->i_dev !=…
896/959
874 Archivo: src/fs/link.c EL CÓDIGO FUENTE DE MINIX 
25540 /* Sólo su puede desvincular directori…
897/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/link.c 875
25600 r = EINVAL; 
25601 break; 
25602 } 
…
898/959
876 ArchivQ: src/fs/link.c EL CÓDIGO FUENTE DE MINIX 
25660 if (new_ip != NIL_INODE) { 
25661 /* …
899/959
www.elsolucionario.net
www.elsolucionario.net
900/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/link.c 877 
25720 /* Quitar todas las zonas del nodo-i '…
901/959
878 Archivo: src/fs/1ink.c EL CÓDIGO FUENTE DE MINIX 
25780 char dir_name[NAME_MAX]; /* nombre dir…
902/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/link.c 879
25840 if (r == OK) { 
25841 rip->i_nlinks--;…
903/959
880 Archivo: src/fs/stadir.c EL CÓDIGO FUENTE DE MINIX 
25945 */ 
25946 fp->fp_realuid = 
25947 …
904/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/stadir.c 881
26005 put_inode(*iip); /* liberar directori…
905/959
882 Archivo: src/fs/stadir.c EL CÓDIGO FUENTE DE MINIX 
26065 /* Llenar la estructura statbuf. */ …
906/959
CODIGO FUENTE DE MINIX Archivo: src/fs/protect.c 883
26125 { 
26126 /* Ejecutar la llamada al sis…
907/959
884 Archivo: src/fs/protect.c EL CÓDIGO FUENTE DE MINIX 
26185 if (fP->fp_effgid 1= groUp) r = EPE…
908/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/protect.c 885
26245 { 
26246 /* Dado un apuntador a un …
909/959
 886 Archivo: src/fs/protect.c EL CÓDIGO FUENTE DE MINIX 
26305 struct inode *ip; /* apunt a nodo …
910/959
888 Archivo: src/fs/time.c EL CÓDIGO FUENTE DE MINIX 
26500 reply_t2 = t[1]; 
26501 reply_t3 = t[…
911/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/misc.c 889
26645 /* ¿Es válido el descriptor de archivo?…
912/959
890 Archivo: src/fs/misc.c EL CÓDIGO FUENTE DE MINIX 
26705 fl = f->filp_flags & (O_NONBLOCK I O_A…
913/959
 EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/misc.c 891 
26765 register struct fproc *cp; 
26766 in…
914/959
892 Archivo: src/fs/misc.c EL CÓDIGO FUENTE DE MINIX
26825 PUBLIC int do_exit() 
26826 { 
26827 …
915/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/misc.c 893 
26885 (*dmap[major] .dmap_close) (task, &dev…
916/959
894 Archivo: src/fs/device.c EL CÓDIGO FUENTE DE MINIX 
++++++++++++++++++++++++++++++++++++++++++…
917/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/device.c 895
27055 /* Invocar la tarea. */ 
27056 (*dma…
918/959
896 Archivo: src/fs/device.c EL CÓDIGO FUENTE DE MINIX 
27115 flags 1= O_NOCTTYj 
27116 } else { …
919/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/device.c 897
27175 rfp = &fproc[slot1]; 
27176 rfp->fp_…
920/959
898 Archivo: src/fs/device.c EL CÓDIGO FUENTE DE MINIX 
27235 if (major >= max_major) { 
27236 ma…
921/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/device.c 899
27295 printf( 
27296 "fs: strange device r…
922/959
900 Archivo: src/fs/utility.c EL CÓDIGO FUENTE DE MINIX 
+++++++++++++++++++++++++++++++++++++++++…
923/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/utility.c 901
27455 */ 
27456 
27457 register char *rp…
924/959
902 Archivo: src/fs/utility.c EL CÓDIGO FUENTE DE MINIX 
27515 sys_abort(RBT_PANIC); 
27516 } 
2…
925/959
EL CÓDIGO FUENTE DE MINIX Archivo: src/fs/putk.c 903
27615 
27616 /*=============================…
926/959
 
 APÉNDICE B 
 íNDICE DE ARCHIVOS 
 905 
www.elsolucionario.net
www.elsolucionario.net
927/959
B 
 
INDICE DE ARCHIVOS 
Directorio include 02000 sys/sigcontext.h 
01400 a.out.h 02300 sys/sta…
928/959
www.elsolucionario.net
www.elsolucionario.net
929/959
908 ÍNDICE DE ARCHIVOS 
13000 keyboard.c Sistema de archivos 
08000 klib.s 20100 buf.h 
08100 kl…
930/959
 
APENDICE C 
INDICE DE SIMBOLOS 
909 
www.elsolucionario.net
www.elsolucionario.net
931/959
c 
INDICE DE SÍMBOLOS 
A 3806 #define APGDN 3839 #define AVL_286_TSS 5292 #define 
A8S 2975 #def…
932/959
912 ÍNDICE DE SÍMBOLOS 
B134 11B9 #define CDIOAEADTDCHD 1905 #define CONFOAMING 5284 #define 
B15…
933/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 ÍNDICE DE SÍMBOLOS 913 
DEV_IDCTL…
934/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
914 ÍNDICE DE SÍMBOLOS 
EXIT 3402 …
935/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 ÍNDICE DE SÍMBOLOS 915
KB_BUSY 13…
936/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
916 INDICE DE SÍMBOLOS 
NUll 1006 …
937/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 ÍNDICE DE SÍMBOLOS 917
SCSI_STACK…
938/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
918 INDICE DE SÍMBOLOS 
S_IRUSR 23…
939/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 ÍNDICE DE SÍMBOLOS 919 
WINCH_STA…
940/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
920 ÍNDICE DE SÍMBOLOS 
boot_time …
941/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 ÍNDICE DE SÍMBOLOS 921
eff_user_i…
942/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
922 INDICE DE SÍMBOLOS 
milli_dela…
943/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 ÍNDICE DE SÍMBOLOS 923
sc_rstreg …
944/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
INDICE 
925 
www.elsolucionario.n…
945/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 INDICE 
A en MINIX, 356-396 
 li…
946/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 928 ÍNDICE 
 del avestruz, 170, 1…
947/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
ÍNDICE 929
param.h, 381, 473 asign…
948/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
930 ÍNDICE 
C código de corrección…
949/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 ÍNDICE 931
D SCSI, 155 
 secunda…
950/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
932 ÍNDICE 
 cliente-servidor, 42-…
951/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 ÍNDICE 933 
K FCNTL, 33,482, 500-…
952/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
934 ÍNDICE 
 UTIME, 36, 499 admini…
953/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
 ÍNDICE 935
 termios, 246 posición…
954/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
936 ÍNDICE 
 MULTICS, 11, 348-351 …
955/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
ÍNDICE 937
de inversión de priorid…
956/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
938 INDICE 
 montado, 160 multiniv…
957/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
ÍNDICE 939
 historia, 11 -13 vecto…
958/959
Digitalización con propósitos Académicos. SISTEMAS OPERATIVOS 
www.elsolucionario.net
www.elsoluc…
959/959


  • Previous
  • Next
  • f Fullscreen
  • esc Exit Fullscreen
@ProfGastonPerez

Share

El sistema operativo: principios y prácticas

Embed code

Report Inappropriate Content on Jaunt

Choose the reason you are reporting: El sistema operativo: principios y prácticas as inappropriate to Jaunt's content team.


Swipe LEFT
to view Related

Scroll DOWN
to read doc

We, and our third-party partners, use cookies, pixels, and other technologies (“cookies”) to collect, record, and share information you provide, as well as information about your interactions with, our site for ad targeting, analytics, personalization, and site functionality purposes. By clicking Allow All, you agree to the use of tracking technologies and acknowledge our privacy practices as described in our Privacy Notice.

Cookies to automatically collect, record, and share information about your interactions with our site for analytics purposes.
Cookies used to enable advertising on our site.

Login

OR

Forgot password?

Don't have an account? Sign Up