detalles, driver de disco (minix 3)

detalles, driver de disco (minix 3) Hay un driver básico, lento, como último remedio. Los discos han evolucionado desde los primeros "pc’s"hasta ahor

4 downloads 100 Views 31KB Size

Story Transcript

detalles, driver de disco (minix 3)

Hay un driver básico, lento, como último remedio. Los discos han evolucionado desde los primeros "pc’s"hasta ahora. Anchura del bus de datos 8,16,32. Tamaño 10M..500G La compatibilidad da lugar a variantes en la interpretación de los registros ... (LBA, ...) La bios explora los periféricos y ofrece una primera información. En minix 3 se decidió que el driver de disco sea secuencial.

cap 3– p.

licencias ¿Cuál es la licencia de MINIX 3? La licencia de MINIX 3 es una copia de la licencia de Berkeley (BSD). En resumen, la licencia dice que usted puede hacer lo que quiera con el sistema siempre y cuando usted (1) acepte no perseguirnos legalmente bajo bajo ninguna condición, y (2) mantenga las acreditaciones de autor´ıa en el código fuente, la documentación y la publicidad a menos que se hagan otros acuerdos. Específicamente, usted tiene la libertad de modificar el código fuente, redistribuirlo e incorporarlo a productos comerciales sin otras restricciones más que las mencionadas previamente

cap 3– p.

fuentes de la red http://www.minix3.org/download/ IDE-3.1.2a.iso.bz2 (296 MB) MD5 checksum ac83e516f9f1451ab9579872b1fcdc09

cap 3– p.

at_wini herramienta: find . -name ’*.[ch]’ -exec grep $1 {} \; -ls

drivers$ head libdriver/driver.c # 376 li. /* This file contains device independent * device driver interface. ... Apr 02, 1992 constructed from AT wini and flopp * drivers$ head at_wini/at_wini.c # 2485 lin /* This file contains the device dependent * part of a driver for the IBM-AT * winchester controller. Written by Adri Koppes. cap 3– p.

at_wini .. llama a ..

main.c

at_wini.c

398,411

driver_task

libdriver/driver.c

73,103

do_rdwt

libdriver/driver.c

169,194

dp->dr_transfer

libdriver/driver.h

30,36

w_dtab->dr_transfer

at_wini.c

378,384

w_transfer

at_wini.c

1188,1247

do_transfer

at_wini.c

1112,1192

com_out

at_wini.c

1411,1455

sys_voutb

lib/syslib/sys_voutb.c

6,25

_taskcall

../src/lib/syslib/taskcall.c

1,17

_sendrec sys_vdevio outb

SYS_VDEVIO ../src/kernel/system/do_vdevio.c

26,66-77cap 3– p.

(1) inicio de registro, PASCAL .. C r record a: integer; b: integer; end r.a := 3; r.b := 6;

struct sr { int a; int b; } ; r.a = 3; r.b = 6;

struct sr r = { 3, 6 }

struct sr r = { 6, 3 }

cap 3– p.

(2)

do_rdwt llama a dp->dr_transfer

libdriver/driver.c, línea 194

(valor de una) variable que contiene la dirección de .. que es igual que dp w_dtab w_dtab->dr_transfer (valor de una) variable que contiene la dirección de .. la función ... w_transfer

En resumen: do_rdwt llama a

w_transfer

cap 3– p.

at_wini .. llama a ..

main.c

at_wini.c

398,411

driver_task

libdriver/driver.c

73,103

do_rdwt

libdriver/driver.c

169,194

w_transfer

at_wini.c

1188,1247

do_transfer

at_wini.c

1112,1192

com_out

at_wini.c

1411,1455

sys_voutb

lib/syslib/sys_voutb.c

6,25

_taskcall

../src/lib/syslib/taskcall.c

1,17

sys_vdevio

../src/kernel/system/do_vdevio.c

26,66-77

outb

cap 3– p.

at_wini funciones

main.c driver_task

loop de servicio + switch/case

do_rdwt

llamada a procedimientos especif.

w_transfer do_transfer

determina cabeza, cilindro, sector

com_out

construye un vector

sys_voutb _taskcall sys_vdevio

e/s de octetos, pal-16, pal-32

outb

cap 3– p.

at_wini io_vect libdriver/driver.c: The drivers support the following operations... DEV GATHER, DEV SCATTER Los dirver de minix-3 aceptan peticiones de leer y escribir con un vector de peticiones elementales. Cuando se piden varias escrituras se deben realizar todas (para que la operacion sea OK.) Una aplicación, una escritura atómica de nivel superior. Cuando se piden varias lecturas, basta con que se realice alguna (la primera?). Haz lo que puedas. Una aplicación, adelantarse (adivinar) lo que nos va a pedir el proceso de usuario, bloques consecutivos.

cap 3– p. 1

at_wini preguntas

Ventajas/inconvenientes, pros y contras, de que el driver de disco duro atienda las peticiones de e/s de una en una, o de varias en varias. Queremos que el driver de disco duro acepte varias peticiones de e/s. Habrá que modificar el código. Primeras cuestiones a considerar.

cap 3– p. 1

at_wini p1

el hardware, los discos el/los clientes los usuarios observación / medida el código corrección

cap 3– p. 1

at_wini p2

algoritmo variables concurrencia cambios fuera de drivers

cap 3– p. 1

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.