3. Conceptos de sistemas operativos
-
Upload
rcarrerah -
Category
Engineering
-
view
251 -
download
2
Transcript of 3. Conceptos de sistemas operativos
UniversidadVeracruzana
Sistemas Operativos
Conceptos Básicos
Ricardo Carrera Hernández
UniversidadVeracruzana
2
Procesos
Un programa en ejecución
Entidad que puede ser asignada a un procesador y ejecutada por él
… yo me lo quería “ejecutar”…
UniversidadVeracruzana
3
Consta de:
programa ejecutable, datos necesarios para el programa
(variables, espacio de trabajo, buffers, etc.),
contexto de ejecución
UniversidadVeracruzana
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
UniversidadVeracruzana
5
Contexto de ejecución
pila del programa, contador del programa, apuntador a la pila,
registros de datos, prioridad del proceso, etc.
EAX
EBX
ECX
EDX
ESI
EDI
EBP
ESP
31 0Registros de propósito general
CS
DS
SS
ES
FS
GS
15 0
Registros de segmentos
EFLAGS
EIP
31 0
31 0
Status del programa y Registro de control
Apuntador a Instrucción
Sistema general y registros para programación de aplicaciones
Y dónde están los monitos!! Esto se
está poniendo muy serio!!
UniversidadVeracruzana
6
640 Kbytes
Área de sistema
384 Kbytes
Memoria extendida 15 Mbytes en el 80286 o 80386SX
31 Mbytes en el 80386SL/SLC63 Mbytes en el 80386EX4,095 Mbytes en el 80386DX, 80486 y Pentium64 Gbytes en el Pentium Pro
1 Mbyte de memoria real (convencional)
Mapa de memoria de la computadora personal
UniversidadVeracruzana
7
Vector de interrupciones
Área de comunicación del BIOS
Área de comunicación del DOS
Programa IO.SYS
Programa MSDOS
Drivers tal como MOUSE.SYS
COMMAND.COM
00000
00400
00500
00700
01160
02530
08490
08E30
9FFF0
9FFFF
espacio libre
Programa MSDOS
Mapa de memoria del área de programa de usuario en una PC
00000
10000
20000
30000
40000
50000
60000
70000
80000
90000
A0000
B0000
C0000
D0000
E0000
F0000
FFFFF
Direcciones físicas
Tabla de apuntadores de interrupciones
Área de instrucción de
reincio
00000
003FF
FFFF0
FFFFF
1,048,576 bytes = 1024 MB
Cada bloque es de 64 KB
UniversidadVeracruzana
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.
UniversidadVeracruzana
9El hardware de una computadora
Registros
Unidad Aritmética
datos
Código
ROM
Memoria principal
Puntero de pila
Registro de instrucción
Contador de programa
EstadoUnidad de
control
Unid
ad d
e E
/S
UniversidadVeracruzana
10
Interrupciones de Hardware
UniversidadVeracruzana
11
UniversidadVeracruzana
12
UniversidadVeracruzana
13
UniversidadVeracruzana
14
UniversidadVeracruzana
15
Llamadas al sistema
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
UniversidadVeracruzana
16
Acciones Descripción
Control de procesosCrear, 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ónConsulta o modificación de información de acceso a objetos en disco.
Clasificación de las llamadas al sistema
UniversidadVeracruzana
17
Ejecución del proceso…
Llamada al
sistema
Ejecución de la llamada al
sistema
Regresa de la llamada al
sistemaContinúa la ejecución…Entrega ejecución
al núcleo. Entra en modo protegido
Vuelve al flujo normal. Sale de modo protegido
Transición del flujo entre espacio usuario y espacio núcleo en una llamada al sistema
Espacio de usuario
Espacio de núcleo
… y arre!..
UniversidadVeracruzana
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
UniversidadVeracruzana
19
Administración de procesos
Administración de memoria
Sistema de archivos
Control de dispositivo
s
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
Hardware
Subsistemas del Kernel
Características implementadas
Software de soporte
Características implementadas como módulos
Interfaz de llamadas al sistema GNU/Linux
UniversidadVeracruzana
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
A sus órdenes Señor Operativo
UniversidadVeracruzana
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
UniversidadVeracruzana
22
Ejemplo
#include <sys/types.h>
main(){
int i = 0;
switch (fork()) {case -1:
perror(“Error al crear procesos”);
exit(-1);break;
case 0: /* código para el hijo */while (1<10) {
sleep(1);printf(“\t\tSoy el
proceso hijo: %d\n”, i++);}
break;default: /* código para el padre */
while (i<10) {sleep(2);
}};exit(0);
}
¡cool!
UniversidadVeracruzana
23
Datos del
proceso
Pila de usuario
del proceso
Archivos abiertos
Directorio actualDirectorio raíz
….Pila del modo
supervisor
Tabla de regiones por proceso
Área de usuario
PROCESO
UniversidadVeracruzana
24
Creación de un nuevo contexto de proceso mediante
fork
Código compartido
.
.
.
.
.
.
.
.
.
.
.
.
Tabla de archivos
Datos del hijo
Pila de usuario del hijo
Archivos abiertos
Directorio actualDirectorio raíz
….Pila del modo
supervisor
Área de usuario
Tabla de regiones por proceso
PROCESO HIJO
Datos del
padre
Pila de usuario del padre
Archivos abiertos
Directorio actualDirectorio raíz
….Pila del modo
supervisor
Tabla de regiones por proceso
Área de usuario
PROCESO PADRE
UniversidadVeracruzana
25
Archivos
¡¿Quién se ha llevado mi tarea de mi archivero?!
UniversidadVeracruzana
26
… mi ventanita es más bonita…
UniversidadVeracruzana
27
GNU/Linux
/proc/
/root/
/var/
/usr/
/tmp/
/srv/
/sbin/
/opt/
/mnt/
/media/
/lib/
/home/
/etc/
/dev/
/boot/
/bin/
Directorio raíz de toda la jerarquía de archivos del sistema
/
Documentación del sistema de archivos virtual del Kernel y las condiciones de los procesos en archivos de texto
Directorio ‘home’ del usuario root
Utilidades y aplicaciones de (multi) usuarioJerarquía secundaria
Directorios requeridos: bin, include, lib, local, sbin, share
Variables de archivo
Archivos temporales
Datos para los servicios provistos por este sistema
Binarios de sistema
Agregados de paquetes de software y aplicaciones
Punto de montaje temporal para sistemas de archivos
Punto de montaje para medios removibles
Bibliotecas esenciales compartidas y módulos de Kernel
Directorio ‘home’ de usuario
Configuración de sistema de Host específico
Archivos de unidades
Archivos estáticos del selector de arranque
Comandos binarios esenciales de usuario
/usr/local
/usr/local/bin
/usr/local/games
/home/student
/home/student/dir
UniversidadVeracruzana
28
Actividad:
Instalar de manera individual GNU/Linux en:
Partición Virtual
UniversidadVeracruzana
29
Investigación
Clasificación de los Sistemas Operativos por su estructura:
1. Sistemas monolíticos2. Sistemas por capas3. Microkernels4. Modelo Cliente-Servidor5. Máquinas virtuales6. Exokernels
¡No! ¡Por favor no!
UniversidadVeracruzana
30
¡Hasta mañana!