ISO Tema 4

Anuncio
ISO Tema 4
Introducción a los Sistemas Operativos,
2015-2016
Pablo González Nalda
Depto. de Lenguajes y Sistemas Informáticos
24 de febrero de 2016
Modificado el 24 de febrero de 2016
Contenidos de la presentación
Contenidos
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
1
Introducción
2
Canales de E/S y Redirección de Entrada/Salida/Error
3
¿Más preguntas?
¿Más preguntas?
2 / 18
Contenidos
Introducción
Introducción
1
Introducción
2
Canales de E/S y Redirección de Entrada/Salida/Error
3
¿Más preguntas?
Canales de E/S y
Redirección de
Entrada/Salida/Error
¿Más preguntas?
3 / 18
Introducción
Contenidos
Introducción
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
La independencia de dispositivo consiste en que el
funcionamiento de un programa es indiferente del dispositivo
en el que se encuentre un fichero.
¿Más preguntas?
El sistema operativo gestiona la información de la ubicación de
cada fichero y de las rutinas (código del sistema operativo,
módulos) necesarias para acceder a cada dispositivo.
De esta forma los programas no cambian para incorporar el
código dependiente del hardware.
4 / 18
Tablas de canales
La tabla de canales es la estructura de datos que contabiliza los
ficheros abiertos por un programa en un momento de su
ejecución. Hay una tabla de canales por cada proceso.
Contenidos
Introducción
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
Para obtener la tabla de canales con los ficheros abiertos por el
demonio de MySQL, o todas en general, se puede hacer:
¿Más preguntas?
1
4
7
10
# en dos lı́neas con el salto de la barra invertida
# y el > que pide terminar la lı́nea
ls -al /proc/$(ps aux |grep mysqld|grep usr|xargs \
> |cut -d " " -f 2)/fd
# de otra forma
PIDSQL=$(ps aux|grep mysqld|grep usr|xargs|cut -d " " -f 2)
ls -al /proc/$PID/fd
# Para listar todas las tablas de canales
# (o todas si somos root)
cd /proc/ ; ls -al [0-9]*/fd/ 2> /dev/null
5 / 18
Tabla de Ficheros Abiertos (TFA)
Contenidos
Introducción
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
¿Más preguntas?
La TFA gestiona para todo el sistema los ficheros abiertos por
cualquier proceso, y la forma en que están abiertos (lectura o
escritura, etc). Para consultarla se puede usar el comando
lsof. Hay muchos ejemplos de uso.
6 / 18
Tabla de inodos y Tabla de dispositivos
Contenidos
Introducción
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
La Tabla de inodos contiene los inodos de los ficheros que
están abiertos (y probablemente los que se han cerrado en
forma de caché). De esta forma se accede a su información
rápidamente. Con cada inodo se mantiene la información del
dispositivo y sistema de ficheros en el que se encuentra el
archivo y por tanto el inodo.
¿Más preguntas?
Por tanto, la Tabla de dispositivos contiene las caracterı́sticas
de cada uno, por tipo de acceso y por tanto las rutinas de
código necesarias.
En la actualidad, la Tabla de Dispositivos es una estructura de
datos accesible por un sistema de ficheros virtual: udev en
/dev
Consultar la página de Wikipedia sobre Udev.
7 / 18
Algunas entradas de /dev
Contenidos
3
Introducción
6
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
9
12
¿Más preguntas?
15
18
21
24
27
30
$ ls -al *
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
crw-rw-rwcrw------crw-rw----+
brw-rw---brw-rw---crw-r----crw-rw-rwcrw------lrwxrwxrwx
crw------brw-rw---brw-rw---brw-rw---brw-rw----+
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
crw-rw-rwcrw--w---crw--w---crw------crw-rw---crw-rw-rwcrw------crw------crw-rw----+
crw-rw-rw-
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
disk
disk
kmem
root
root
root
root
disk
disk
disk
cdrom
root
root
root
tty
tty
tty
root
dialout
root
root
root
video
root
10,
10,
10,
7,
7,
1,
1,
10,
251,
8,
8,
8,
11,
5,
4,
4,
5,
4,
1,
10,
10,
81,
1,
3
3
13
229
183
232
0
1
1
3
1
4
0
0
1
2
0
15
15
15
0
0
1
3
64
9
56
54
0
5
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
23
23
24
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
23
23
23
23
23
23
23
23
23
23
23:51
23:51
00:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
00:51
00:51
00:51
23:12
23:51
23:52
23:51
23:51
23:51
23:52
23:52
23:51
23:51
cdrom -> sr0
cdrw -> sr0
fd -> /proc/self/fd
fuse
hwrng
kvm
loop0
loop1
mem
null
psaux
rtc -> rtc0
rtc0
sda
sda1
sda2
sr0
stderr -> /proc/self/fd/2
stdin -> /proc/self/fd/0
stdout -> /proc/self/fd/1
tty
tty0
tty1
ttyprintk
ttyS0
urandom
vboxdrv
vboxnetctl
video0
zero
8 / 18
Dispositivos de bloques en /dev
Dispositivos loop
Contenidos
mount -o loop disco.iso /dir1
Introducción
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
¿Más preguntas?
2
block:
lrwxrwxrwx
5 lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
8 lrwxrwxrwx
lrwxrwxrwx
1
1
1
1
1
1
root
root
root
root
root
root
root
root
root
root
root
root
11 bus:
drwxr-xr-x 10 root root
8
8
8
6
7
7
14 $ lsusb
Bus 002 Device 001:
Bus 008 Device 001:
17 Bus 007 Device 001:
Bus 006 Device 002:
Bus 006 Device 001:
20 Bus 001 Device 003:
Bus 001 Device 001:
Bus 005 Device 002:
Processor
23 Bus 005 Device 001:
Bus 004 Device 001:
Bus 003 Device 001:
ID
ID
ID
ID
ID
ID
ID
ID
feb
feb
feb
feb
feb
feb
23
23
23
23
23
23
23:51
23:51
23:51
23:51
23:51
23:51
7:0
7:1
7:2
8:0
8:1
8:2
->
->
->
->
->
->
../loop0
../loop1
../loop2
../sda
../sda1
../sda2
200 feb 24 00:51 usb
1d6b:0002
1d6b:0001
1d6b:0001
0461:4d22
1d6b:0001
0c45:63f2
1d6b:0002
0a5c:5800
Linux Foundation 2.0 root hub
Linux Foundation 1.1 root hub
Linux Foundation 1.1 root hub
Primax Electronics, Ltd
Linux Foundation 1.1 root hub
Microdia
Linux Foundation 2.0 root hub
Broadcom Corp. BCM5880 Secure Applications
ID 1d6b:0001 Linux Foundation 1.1 root hub
ID 1d6b:0001 Linux Foundation 1.1 root hub
ID 1d6b:0001 Linux Foundation 1.1 root hub
9 / 18
Dispositivos de caracteres en /dev
Contenidos
Introducción
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
¿Más preguntas?
char:
2 lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
5 lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
8 lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
11 lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
14 lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
17 lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
20 lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
23 lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
26 lrwxrwxrwx
lrwxrwxrwx
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
8
8
16
10
6
13
11
10
10
16
15
7
7
18
18
18
18
10
12
17
7
7
6
12
9
8
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
feb
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23:51
23:51
23:51
23:51
23:51
23:52
23:52
23:52
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
23:51
10:1 -> ../psaux
10:183 -> ../hwrng
10:184 -> ../cpu/microcode
10:200 -> ../net/tun
10:232 -> ../kvm
10:54 -> ../vboxnetctl
10:55 -> ../vboxdrvu
10:56 -> ../vboxdrv
116:1 -> ../snd/seq
116:2 -> ../snd/controlC0
116:3 -> ../snd/pcmC0D0p
1:3 -> ../null
1:5 -> ../zero
189:0 -> ../bus/usb/001/001
189:128 -> ../bus/usb/002/001
189:2 -> ../bus/usb/001/003
189:513 -> ../bus/usb/005/002
1:9 -> ../urandom
226:0 -> ../dri/card0
226:128 -> ../dri/renderD128
4:0 -> ../tty0
4:1 -> ../tty1
5:0 -> ../tty
5:3 -> ../ttyprintk
81:0 -> ../video0
89:0 -> ../i2c-0
10 / 18
Dispositivos de tipo disk en /dev
Contenidos
Introducción
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
¿Más preguntas?
/dev/disk/by-id:
total 0
3 lrwxrwxrwx 1 root root
lrwxrwxrwx 1 root root
sda1
lrwxrwxrwx 1 root root
sda2
6 lrwxrwxrwx 1 root root
sda3
lrwxrwxrwx 1 root root
../../sr0
lrwxrwxrwx 1 root root
9 lrwxrwxrwx 1 root root
lrwxrwxrwx 1 root root
lrwxrwxrwx 1 root root
12
/dev/disk/by-label:
total 0
15 lrwxrwxrwx 1 root root
lrwxrwxrwx 1 root root
9 feb 23 23:51 ata-Hitachi_HTS7232_09 -> ../../sda
10 feb 23 23:51 ata-Hitachi_HTS7232_09-part1 -> ../../
10 feb 23 23:51 ata-Hitachi_HTS7232_09-part2 -> ../../
10 feb 23 23:51 ata-Hitachi_HTS7232_09-part3 -> ../../
9 feb 23 23:51 ata-TSSTcorp_DVD+_-RW_TS-U633F_R3486 ->
9
10
10
10
feb
feb
feb
feb
23
23
23
23
23:51
23:51
23:51
23:51
wwn-0x5000cca5 -> ../../sda
wwn-0x5000cca5-part1 -> ../../sda1
wwn-0x5000cca5-part2 -> ../../sda2
wwn-0x5000cca5-part3 -> ../../sda3
10 feb 23 23:51 Datos -> ../../sda3
10 feb 23 23:51 SO -> ../../sda1
18 /dev/disk/by-uuid:
total 0
lrwxrwxrwx 1 root root 10 feb 23 23:51 017ef249-a49f-4716-a136-d687dfb13924 ->
../../sda5
21 lrwxrwxrwx 1 root root 10 feb 23 23:51 18753509-ad3c-4723-8234-c59cbf81e781 ->
../../sda1
lrwxrwxrwx 1 root root 10 feb 23 23:51 916b7f58-e8ab-46b5-a105-9b7d853a1cc6 ->
../../sda3
11 / 18
Dispositivos en /dev
Contenidos
Introducción
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
¿Más preguntas?
shm:
2 -rwx------
1 pablo pablo 67108904 feb 24 01:12 pulse-shm-2969295364
snd:
5 drwxr-xr-x
2 root root
crw-rw----+ 1 root audio
crw-rw----+ 1 root audio
8 crw-rw----+ 1 root audio
crw-rw----+ 1 root audio
crw-rw----+ 1 root audio
11 crw-rw----+ 1 root audio
crw-rw----+ 1 root audio
crw-rw----+ 1 root audio
14
v4l:
drwxr-xr-x 2 root root
17 drwxr-xr-x 2 root root
60
116, 2
116, 6
116, 7
116, 4
116, 3
116, 5
116, 1
116, 33
feb
feb
feb
feb
feb
feb
feb
feb
feb
23
23
23
23
23
24
23
23
23
23:51
23:51
23:51
23:51
23:52
01:13
23:52
23:51
23:51
by-path
controlC0
hwC0D0
hwC0D2
pcmC0D0c
pcmC0D0p
pcmC0D3p
seq
timer
60 feb 23 23:51 by-id
60 feb 23 23:51 by-path
lrwxrwxrwx 1 root root 12 feb 23 23:51 usbCN0D664T7248799A039L_Integrated_Webcam_2M-video-index0 -> ../../video0
20
/dev/v4l/by-path:
total 0
23 lrwxrwxrwx 1 root root 12 feb 23 23:51 pci-0000:00:1a.7-usb-0:6:1.0-videoindex0 -> ../../video0
12 / 18
Contenidos
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
1
Introducción
2
Canales de E/S y Redirección de Entrada/Salida/Error
3
¿Más preguntas?
Canales de Entrada/Salida
Redirección de
Entrada/Salida/Error
¿Más preguntas?
13 / 18
Canales de Entrada/Salida
Contenidos
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
Todos los programas pensados para que tengan:
Canales de Entrada/Salida
Redirección de
Entrada/Salida/Error
¿Más preguntas?
Canal de entrada estándar de datos
Canal de salida estándar de datos
Canal de entrada estándar de errores
Se numeran como canales 0, 1 y 2, respectivamente.
14 / 18
Redirección de Entrada/Salida/Error
Contenidos
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
Por defecto, la E/S se hace por teclado (canal 0) y pantalla (1 y
2).
Redirecciones:
Canales de Entrada/Salida
Redirección de
Entrada/Salida/Error
./programa < entrada.txt
¿Más preguntas?
./programa > salida.txt
./programa | ./programaB
./programa >> salidaappend.txt
./programa 2> errores.txt
./programa 2>&1 | ./programaB
15 / 18
Contenidos
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
1
Introducción
¿Más preguntas?
2
Canales de E/S y Redirección de Entrada/Salida/Error
3
¿Más preguntas?
¿Más preguntas?
16 / 18
¿Más preguntas?
Contenidos
Introducción
Canales de E/S y
Redirección de
Entrada/Salida/Error
¿Más preguntas?
¿Más preguntas?
¿Más preguntas?
17 / 18
ISO Tema 4
Introducción a los Sistemas Operativos,
2015-2016
Pablo González Nalda
Depto. de Lenguajes y Sistemas Informáticos
24 de febrero de 2016
Modificado el 24 de febrero de 2016
Descargar