2. … yo me lo quería
“ejecutar”…
Universidad
Veracruzana
2
Un programa en ejecución
Entidad que puede ser asignada a un
procesador y ejecutada por él
Procesos
3. Universidad
Veracruzana
3
Consta de:
programa ejecutable,
datos necesarios para el programa (variables,
espacio de trabajo, buffers, etc.),
contexto de ejecución
4. Universidad
Veracruzana
4
Cada proceso tiene asociado un
espacio de direcciones
El proceso puede leer y escribir
información
Contiene el programa ejecutable, los
datos del programa y su pila
5. Registros de propósito general
Universidad
Veracruzana
pila del programa, contador del programa,
apuntador a la pila, registros de datos,
prioridad del proceso, etc.
5
Contexto de ejecución
EAX
EBX
ECX
EDX
ESI
EDI
EBP
ESP
31 0
CS
DS
SS
ES
FS
GS
Registros de segmentos
15 0
EFLAGS
EIP
Status del programa y Registro de control
31 0
Apuntador a Instrucción
31 0
Sistema general y registros para programación de aplicaciones
Y dónde están los
monitos!! Esto se
está poniendo muy
serio!!
6. Universidad
Veracruzana
6
Memoria
extendida 15 Mbytes en el 80286 o 80386SX
Área de sistema
384 Kbytes
640 Kbytes
31 Mbytes en el 80386SL/SLC
63 Mbytes en el 80386EX
4,095 Mbytes en el 80386DX, 80486 y Pentium
64 Gbytes en el Pentium Pro
1 Mbyte de memoria real (convencional)
Mapa de memoria de la computadora
personal
7. 9FFFF
9FFF0
Programa MSDOS
Direcciones
físicas
FFFFF
Universidad
Veracruzana
7
COMMAND.COM
Drivers tal como MOUSE.SYS
Programa MSDOS
Programa IO.SYS
Área de comunicación del DOS
Área de comunicación del BIOS
Vector de interrupciones
08E30
08490
02530
01160
00700
00500
00400
00000
espacio libre
F0000
E0000
D0000
C0000
B0000
A0000
90000
80000
70000
60000
50000
40000
30000
20000
10000
00000
Área de
instrucción de
reincio
Tabla de
apuntadores de
interrupciones
FFFFF
FFFF0
003FF
00000
1,048,576 bytes = 1024 MB
Cada bloque es
de 64 KB
Mapa de memoria del área de programa de usuario
en una PC
8. Universidad
Veracruzana
8
Vector de interrupciones
Conjunto de posiciones ubicada en la parte baja de la memoria.
Ahí se almacenan las direcciones de las rutinas de atención de las
interrupciones.
9. Registros
Memoria
principal
Universidad
datos
Código
Unidad
Aritmética
ROM
Veracruzana
Estado
Contador de programa
Registro de instrucción
Puntero de pila
Unidad de
control
Unidad de E/S
9 El hardware de una
computadora
15. Llamadas al sistema
Universidad
Veracruzana
15
Interfaz entre el sistema operativo y un
programa ejecutándose
Son piezas de software en lenguaje
ensamblador (MS-DOS) o de alto nivel
como C
16. Universidad
Veracruzana
16
Acciones Descripción
Control de procesos
Crear, finalizar, asignar o liberar memoria a un
proceso.
Manipulación de
archivos
Crear, borrar, renombrar, abrir, cerrar, etc.
Manipulación de
dispositivos
Solicitar o liberar.
Mantenimiento de la
información
Obtener o modificar hora del sistema, pedir
detalles sobre procesos o archivos.
Comunicaciones Con procesos.
Protección
Consulta o modificación de información de
acceso a objetos en disco.
Clasificación de las llamadas al
sistema
17. Universidad
Veracruzana
17
Ejecución del
proceso…
Llamada
al sistema
Vuelve al flujo
normal. Sale de
modo protegido
Espacio de usuario
Ejecución de la
llamada al
sistema
Regresa de la
llamada al
sistema
Continúa la
Entrega ejecución ejecución…
al núcleo. Entra en
modo protegido
Espacio de núcleo
Transición del flujo entre espacio usuario y espacio núcleo en una llamada al sistema
… y arre!..
18. Universidad
Veracruzana
18
Llamadas al sistema, arquitecturas y
APIs
Sistema Operativo Nombre API
Windows Win32, Win16
Mac OS X Cocoa, Carbón, POSIX
GNU/Linux, BSDs POSIX
19. Interfaz de llamadas al sistema GNU/Linux
Universidad
Veracruzana
19
Administración
de procesos
Administración
de memoria
Sistema de
archivos
Control de
dispositivos
Acceso a
redes
Interfaz de llamadas al sistema
Concurrencia,
multitarea
Memoria virtual Archivos y dirs: el
VFS
Ttys y acceso a
dispositivos
Conectividad
Código
dependiente de
la arquitectura
Administración de
memoria
Tipos de filesys
Block devices
Dispositivos
de carácter
Subsistema
de redes
IF drivers
CPU
Memoria
Discos y CDs
Consolas
Interfaces de
red
Subsistemas del
Kernel
Características
implementadas
Software de
soporte
Hardware
Características implementadas como módulos
20. A sus órdenes
Señor Operativo
Universidad
Veracruzana
20
Servicios de los procesos
Control de
procesos
Manipulación de
archivos
Manipulación
de periféricos
Mantto de la
información
Comunicaciones
• Crear
proceso
• Cargar
• Ejecutar
• Abortar
• Terminar
• Crear
• Abrir
• Escribir
• Leer
• Cerrar
• Eliminar
• Solicitar
• Escribir
• Leer
• Liberar
• Obtener hora-fecha
• Establecer
hora-fecha
• Obtener datos
del sistema
• Crear
conexión
• Enviar
mensajes
• Recibir
mensajes
• Eliminar
conexión
21. Universidad
Veracruzana
21
UNIX WIN32 DESCRIPCIÓN
fork CreateProcess Crea un nuevo proceso
waitpid WaitForSingleObjetct Puede esperar a que un proceso termine
execve (ninguno) CreateProcess = fork + execve
exit ExitProcess Termina la ejecución
open CreateFile Crea un archivo o abre uno existente
close CloseHandle Cierra un archivo
read ReadFile Lee datos de un archivo
write WriteFile Escribe datos en un archivo
lseek SetFilePointer Desplaza el apuntador del archivo
stat GetFileAttributesEx Obtiene varios atributos de un archivo
mkdir CreateDirectory Crea un directorio nuevo
rmdir RemoveDirectory Elimina un directorio vacío
link (ninguno) Win32 no soporta enlaces
unlink DeleteFile Destruye un archivo existente
mount (ninguno) Win32 no soporta el montaje
umount (ninguno) Win32 no soporta el montaje
chdir SetCurrentDirectory Cambia el directorio de trabajo actual
chmod (ninguno) Win32 no sporta la seguridad (aunque NT sí)
kill (ninguno) Win32 no sporta las señales
time GetLocalTime Obtiene la hora actual
Equivalencia
de llamadas
Unix-Windows
22. #include <sys/types.h>
main()
{
Universidad
Veracruzana
22
int i = 0;
switch (fork()) {
case -1:
Ejemplo
perror(“Error al crear procesos”);
exit(-1);
break;
case 0: /* código para el hijo */
while (1<10) {
sleep(1);
printf(“ttSoy el proceso hijo: %dn”, i++);
}
break;
default: /* código para el padre */
while (i<10) {
sleep(2);
}
};
exit(0);
}
¡cool!
23. Universidad
Veracruzana
23
Datos
del
proceso
Pila de
usuario
del
proceso
Archivos abiertos
Directorio actual
Directorio raíz
….
Pila del modo
supervisor
Tabla de regiones por
proceso
Área de usuario
PROCESO
24. Universidad
Tabla de archivos
.
.
.
Veracruzana
Creación de un nuevo
contexto de proceso
mediante fork
24
Código
compartido
.
.
.
.
.
.
.
.
.
Datos
del
hijo
Pila de
usuario
del hijo
Área de usuario
Archivos abiertos
Directorio actual
Directorio raíz
….
Pila del modo
supervisor
PROCESO HIJO
Tabla de regiones por
proceso
Datos
del
padre
Pila de
usuario
del
padre
Archivos abiertos
Directorio actual
Directorio raíz
….
Pila del modo
supervisor
Tabla de regiones por
proceso
Área de usuario
PROCESO PADRE
27. /bin/
Comandos binarios esenciales de usuario
Universidad
Veracruzana
27
GNU/Linux
/boot/
/dev/
/etc/
/home/
/lib/
/media/
/mnt/
/opt/
/sbin/
/srv/
/tmp/
/usr/
/var/
/root/
/proc/
Directorio
raíz de
toda la
jerarquía
de
archivos
del
sistema
/
Archivos estáticos del selector de arranque
Archivos de unidades
Configuración de sistema de Host específico
Directorio ‘home’ de usuario
Bibliotecas esenciales compartidas y módulos de Kernel
Punto de montaje para medios removibles
Punto de montaje temporal para sistemas de archivos
Agregados de paquetes de software y aplicaciones
Binarios de sistema
Datos para los servicios provistos por este sistema
Archivos temporales
Utilidades y aplicaciones de (multi) usuario
Jerarquía secundaria
Directorios requeridos: bin, include, lib, local, sbin, share
Variables de archivo
Directorio ‘home’ del usuario root
Documentación del sistema de archivos virtual del Kernel y las
condiciones de los procesos en archivos de texto
/usr/local
/usr/local/bin
/usr/local/games
/home/student
/home/student/dir