PDF de programación - Sistemas operativos II

Imágen de pdf Sistemas operativos II

Sistemas operativos IIgráfica de visualizaciones

Publicado el 6 de Julio del 2017
848 visualizaciones desde el 6 de Julio del 2017
6,4 MB
175 paginas
Creado hace 15a (25/09/2008)
Sistemas operativos II

Procesos en UNIX

Introducción sistema operativo UNIX
Procesos en UNIX
Planificación
Creación y terminación de procesos
Señales
Comunicación entre procesos

Procesos en UNIX

Introducción sistema operativo UNIX
Procesos en UNIX
Planificación
Creación y terminación de procesos
Señales
Comunicación entre procesos

Procesos en UNIX

Introducción sistema operativo UNIX
Procesos en UNIX
Planificación
Creación y terminación de procesos
Señales
Comunicación entre procesos

Antecedentes

I UNiplexed Information Computing Service (versión

monousuario de MULTICS)

I Primera implementación sobre SEC PDP-7 (1969) por Ken

Thomson y Dennis Ritchie

I portada a PDP-11/20 con runoff. Adoptada por Laboratorios

BELL como procesador de textos en 1970

I 1972 2nd Edition
I 1973 Implementación en C (Thompson y Ritchie)
I 1974 4th Edition
I 1977 5th & 6th Edition
I 1979 7th Edition (ascendiente directo de las versiones

actuales)

System V

I Introducido por ATT en 1983. System V release 1.

Compromiso para mantener compatibilidad ascendente

I System V release 1: vi, biblioteca curses
I System V release 2 (1985): protección y bloqueo de archivos
I System V release 2.1: paginación bajo demanda
I System V release 3 (1987): redes
I System V release 4: unifica versiones de distintos fabricantes

BSD

I Universidad de Berkley entró en contacto un UNIX 4th edition
I Bill Joy en 1977 diseño un añadido para las 6th edition

llamado Berkeley Software Distribution (compilador pascal,
cshell, ex..)
I 1978 2BSD
I 1979 3BSD basada en 2BSD y 7th edition: memoria virtual

(DEV VAX-11/780)

I DARPA(Defence Advanced Research Project Agency)

consolida la 4BSD

I 1983 4.1 BSD
I 4.2BSD: nuevo sistema de archivos
I 1987 4.3BSD
I Sun Microsystems añadió NFS a 4.3 BSD
I Actualmente freeBSD, openBSD netBSD

POSIX

I Término acuñado por Richard Stallman
I Portable Operating System Interface for uniX
I Designada con IEEE 1003, ISO/IEC 9945
I Familia de estándares que definen una API para software

compatible con distintas variantes de UNIX

I Varias extensiones

I POSIX.1: Incorpora estándar ANSI C
I POSIX.1b: Tiempo real
I POSIX.1c: Threads

Relación entre las distintas variedades de UNIX

I El núcleo reside en un fichero (/unix, /vmunix /vmlinuz
/kernel.GENERIC..) que se carga al arrancar la máquina
(procedimiento bootstrap)

I El núcleo (kernel) inicializa el sistema y crea el entorno para

que se ejecuten los procesos y crea unos pocos procesos que a
su vez crearán el resto.

I INIT (proceso con pid 1) es el primer proceso de usuario y

antecesor del resto de procesos de usuario en el sistema
I El núcleo (kernel) de UNIX interactua con el hardware
I Los procesos interactuan con el núcleo a través de la interfaz

de llamadas al sistema

freebsd 4.9

USER PID PPID PGID
0
root
1
root
2
root
3
root
4
root
5
root
6
root
7
root
root
90
root 107
root 112
root 115
root 117

0 c0326e60
0
1 c08058c0
0
0 c0326e60
0
0 c0326e60
0
0 c0326e60
0
0 c0326e60
0
0 c0326e60
0
0 c0326e60
0
1
90 c08509c0
1 107 c085cd80
1 112 c0874500
1 115 c0874600
115 115 c0874600

SESS JOBC STAT TT
??
??
??
??
??
??
??
??
??
??
??
??
??

0 DLs
0 ILs
0 DL
0 DL
0 DL
0 DL
0 DL
0 DL
0 Ss
0 Is
0 Is
0 Is
0 I

COMMAND
(swapper)
/sbin/init --
(taskqueue)
(pagedaemon)
(vmdaemon)
(bufdaemon)
(syncer)
(vnlru)
/sbin/natd -n ed0
/usr/sbin/syslogd -s
mountd -r
nfsd: master (nfsd)
nfsd: server (nfsd)

PID PPID C PRI NI ADDR SZ WCHAN

TTY

linux 2.4

F S UID
1
4 S
0
2
0
1 S
3
0
1 S
4
1 S
0
5
0
1 S
6
0
1 S
229
0
4 S
375
1 S
0
0
1 S
492
0 1571
1 S
0 1574
5 S
1 S
0 1592
0 1604
5 S

0 -
0 0 68
1 0 69
0 -
1 0 79 19 -
1 0 69
0 -
0 -
1 0 69
1 0 69
0 -
1 0 67 -4 -
1 0 69
0 -
0 -
1 0 69
0 -
1 0 69
0 -
1 0 69
1 0 69
0 -
0 -
1 0 69

373 select ?
0 contex ?
0 ksofti ?
0 kswapd ?
0 bdflus ?
0 kupdat ?
369 select ?
0 down_i ?
?
0 ?
561 select ?
547 syslog ?
637 select ?
555 select ?

CMD
init
keventd
ksoftirqd_CPU0
kswapd
bdflush
kupdated
udevd
knodemgrd_0
khubd
syslogd
klogd
dirmngr
inetd

solaris 7 sparc

F S
19 T
8 S
19 S
19 S
8 S
8 S
8 S
8 S
8 S
8 S
8 S
8 S
8 S
8 S
8 S
8 S
8 S

UID
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

PID PPID C PRI NI
0 0
0 SY
0 0 41 20
0 SY
0 0
0 0
0 SY
279 0 40 20
1 0 41 20
1 0 41 20
1 0 45 20
1 0 57 20
1 0 41 20
1 0 40 20
1 0 41 20
1 0 41 20
1 0 41 20
1 0 51 20
1 0 41 20
279 0 46 20

0
1
2
3
282
123
262
47
49
183
174
197
182
215
198
179
283

SZ
0
98
0
0
2115
278
212
162
288
313
230
444
3071
387
227
224
627

TTY
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?

CMD
sched
init
pageout
fsflush
Xsun
rpcbind
sac
devfseve
devfsadm
automoun
lockd
syslogd
in.named
lpsched
cron
inetd
dtlogin

estructura de un sistema UNIX

En UNIX son necesarios dos modos de ejecución

I modo usuario se ejecuta el código de usuario
I modo kernel se ejecutan las funciones del kernel

1. Llamadas al sistema: Los procesos de usuario solicitan

servicios explicitamente a través de la interfaz de llamadas al
sistema.

2. Excepciones: Situaciones excepcionales (división por 0,

errores de direccionamiento..) causan excepciones hardware
que requieren intervención del kernel.

3. Interrupciones: Los dispositivos periféricos interrumpen para

notificar al kernel de diversos sucesos (terminación de e/s,
cambio de estado..)

I Algunas instrucciones hardware solo pueden ser ejecutadas en

modo kernel.

En un sistema UNIX tradicional un proceso viene definido por

I espacio de direcciones: Conjunto de direcciones de memoria

que el proceso puede referenciar.

I punto de control del proceso que indica cual es la siguiente

instrucción a ejecutar utilizando un registro hardware que se
llama C.P.

En un sistema UNIX moderno puede haber varios puntos de
control (threads).
Los procesos manejan direcciones virtuales de memoria. Una parte
de este espacio corresponde al código y los datos del kernel. Se
llama system space o kernel space
El system space solo puede ser accedido en modo kernel
El kernel mantiene

I estructuras de datos globales
I estructuras de datos específicas de cada proceso

El espacio de direcciones del proceso actual es accesible
directamente pues los registros de la MMU tienen la información
necesaria.

Mapa de memoria en linux

0xc0000000 the invisible kernel

initial stack
room for stack grouth
shared libraries
unused
malloc memory
uninitialized data
initialized data
text

0x60000000
brk

end data
end code
0x00000000

Mapa de memoria en solaris

Salida del comando pmap

I en solaris

08046000
08050000
0806A000
0806B000
D16D0000
D16E0000
D17A9000
D17AF000
D17C0000
D17CA000
D17FB000
D17FC000

I en linux

8K rwx--

[ stack ]

44K r-x-- /home/antonio/so2tex/Practicas/a.out
4K rwx-- /home/antonio/so2tex/Practicas/a.out
8K rwx--
4K rwx--

[ heap ]
[ anon ]

740K r-x-- /lib/libc.so.1
24K rw--- /lib/libc.so.1
8K rw--- /lib/libc.so.1

24K rwx--

[ anon ]

132K r-x-- /lib/ld.so.1
4K rwx-- /lib/ld.so.1
8K rwx-- /lib/ld.so.1

08048000
08051000
08052000
b7e7c000
b7e7d000
b7fa4000
b7fa9000
b7fab000
b7fbb000
b7fbf000
b7fc0000
b7fd5000
bf8a0000

36K r-x--
4K rw---
4K rw---
4K rw---
1180K r-x--
20K r----
8K rw---
12K rw---
16K rw---
4K r-x--
84K r-x--
8K rw---
88K rw---

/home/antonio/so2tex/Practicas/a.out
/home/antonio/so2tex/Practicas/a.out

[ anon ]
[ anon ]

/lib/tls/i686/cmov/libc-2.3.6.so
/lib/tls/i686/cmov/libc-2.3.6.so
/lib/tls/i686/cmov/libc-2.3.6.so

[ anon ]
[ anon ]
[ anon ]

/lib/ld-2.3.6.so
/lib/ld-2.3.6.so

[ stack ]

tras asignarse 100M de memoria . . .

I en solaris

08046000
08050000
0806A000
0806B000
D16D0000
D16E0000
D17A9000
D17AF000
D17C0000
D17CA000
D17FB000
D17FC000

I en linux

8K rwx--
44K r-x--
4K rwx--
97672K rwx--
4K rwx--
740K r-x--
24K rw---
8K rw---
24K rwx--
132K r-x--
4K rwx--
8K rwx--

08048000
08051000
08052000
b1f1d000
b7e7d000
b7fa4000
b7fa9000
b7fab000
b7fbb000
b7fbf000
b7fc0000
b7fd5000
bf8a0000

36K r-x--
4K rw---
136K rw---
97664K rw---
1180K r-x--
20K r----
8K rw---
12K rw---
16K rw---
4K r-x--
84K r-x--
8K rw---
88K rw---

[ stack ]

/home/antonio/so2tex/Practicas/a.out
/home/antonio/so2tex/Practicas/a.out

[ heap ]
[ anon ]

/lib/libc.so.1
/lib/libc.so.1
/lib/libc.so.1

[ anon ]

/lib/ld.so.1
/lib/ld.so.1
/lib/ld.so.1

/home/antonio/so2tex/Practicas/a.out
/home/antonio/so2tex/Practicas/a.out

[ anon ]
[ anon ]

/lib/tls/i686/cmov/libc-2.3.6.so
/lib/tls/i686/cmov/libc-2.3.6.so
/lib/tls/i686/cmov/libc-2.3.6.so

[ anon ]
[ anon ]
[ anon ]

/lib/ld-2.3.6.so
/lib/ld-2.3.6.so

[ stack ]

tras crear una zona de memoria compartida . . .

I en solaris

08024000
08050000
0806A000
0806B000
D1693000
D16D0000
D16E0000
D17A9000
D17AF000
D17C0000
D17CA000
D17FB000
D17FC000

I en linux

144K rwx--

[ stack ]

44K r-x-- /home/antonio/so2tex/Practicas/a.out
4K rwx-- /home/antonio/so2tex/Practicas/a.out

97672K rwx--
236K rwxs-
4K rwx--

[ heap ]
[ shmid=0xe ]
[ anon ]

740K r-x-- /lib/libc.so.1
24K rw--- /lib/libc.so.1
8K rw--- /lib/libc.so.1

24K rwx--

[ anon ]

132K r-x-- /lib/ld.so.1
4K rwx-- /lib/ld.so.1
8K rwx-- /lib/ld.so.1

08048000
08051000
08052000
b1ee2000
b1f1d000
b7e7d000
b7fa4000
b7fa9000
b7fab000
b7fbb000
b7fbf000
b7fc0000
b7fd5000
bf891000

36K r-x--
4K rw---
136K rw---
236K rw-s-
97664K rw---
1180K r-x--
20K r----
8K rw---
12K rw---
16K rw---
4K r-x--
84K r-x--
8K rw---
148K rw---

/home/antonio/so2tex/Practicas/a.out
/home/antonio/so2tex/Practicas/a.out

[ anon ]
[ shmid=0x3c800f ]
[ anon ]

/lib/tls/i686/cmov/libc-2.3.6.so
/lib/tls/i686/cmov/libc-2.3.6.so
/lib/tls/i686/cmov/libc-2.3.6.so

[ anon ]
[ anon ]
[ anon ]

/lib/ld-2.3.6.so
/lib/ld-2.3.6.so

[ stack ]

tras mapear un fichero de 152739840 bytes . . .

I en solaris

08024000
08050000
0806A000
0806B000
C8400000
D1693000
D16D0000
D16E0000
D17A9000
D17AF000
D17C0000
D17CA000
D17FB000
D17FC000

I en linux

144K rwx--

[ stack ]

44K r-x-- /home/antonio/so2tex/Practicas/a.out
4K rwx-- /home/antonio/so2tex/Practicas/a.out

97672K rwx--

[ heap ]

149160K r---- dev:102,7 ino:29125

236K rwxs-
4K rwx--

[ shmid=0xe ]
[ anon ]

740K r-x-- /lib/libc.so.1
24K rw--- /lib
  • Links de descarga
http://lwp-l.com/pdf4961

Comentarios de: Sistemas operativos II (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad