Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Ingeniero electronico
Universidad Nacional de Colombia
Universidad de la Amazonia
5 de noviembre de 2014
Temas suplementarios: El sistema operativo Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
los estandares
de UNIX.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
El kernel
basico
de Linux es completamente original, pero
puede ejecutar mucho software libre UNIX, resultando en
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
La version
Linux exclusivamente para la plataforma PC.
Temas suplementarios: El sistema operativo Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
2.0 anadi
o dos
Lanzada en junio de 1996, la version
caractersticas importantes:
Soporte para multiples
arquitecturas (incluyendo un puerto
de memoria mejorado.
Codigo
de gestion
TCP/IP mejorado.
Desempeno
automatica
de modulos
por demanda.
estandarizada.
Interfaz de configuracion
Disponible para sistemas PowerMac, Sun Sparc y Motorola
68000.
Temas suplementarios: El sistema operativo Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
anadieron
un sistema de archivos de registro diario, un
kernel
preventivo y soporte de memoria de 64 bits.
3.0, lanzada en 2011, vigesimo
La version
aniversario del
mejoro la
kernel,
mejoro el soporte de virtualizacion,
de memoria, y creo un nuevo Planificador
gestion
Completely Fair
Completamente Justo (en ingles
Scheduler ).
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
E L SISTEMA L INUX
Linux usa muchas herramientas desarrolladas como parte
del sistema operativo BSD de la universidad de Berkeley,
el Sistema de Ventanas X del MIT y el proyecto GNU de la
Free Software Foundation.
Las bibliotecas principales del sistema fueron iniciadas por
el proyecto GNU, con mejoras proporcionadas por la
comunidad de Linux.
de red de Linux derivaban de
Las herramientas de gestion
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
D ISTRIBUCIONES L INUX
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
El kernel
de Linux es distribuido bajo los terminos
de la
GPL (Licencia publica
general de GNU). Linux no
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
P RINCIPIOS DE DISE NO
Linux es un sistema multitarea, multiusuario con un
conjunto completo de herramientas compatibles con UNIX.
eficiencia y la estandarizacion.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
El kernel
es responsable por mantener las abstracciones
importantes del sistema operativo.
El codigo
del kernel
corre en modo kernel
con acceso total
a todos los recursos fsicos del computador.
Todo el codigo
y las estructuras de datos del kernel
se
mantienen en un mismo y unico
espacio de direcciones.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Historia de Linux
El sistema Linux
con el kernel
e implementan mucha de la funcionalidad del
sistema operativo que no necesita los completos
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
RNEL
M ODULOS
DEL K E
Los modulos
son secciones del kernel
que pueden ser
compiladas, cargadas y descargadas independientemente
Un modulo
implementa por lo general un controlador de
dispositivo, un sistema de archivos o un protocolo de red.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Los modulos
del kernel
permiten que un sistema Linux
Sistema de gestion
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
DE M ODULOS
S ISTEMA DE GESTI ON
de modulos
El sistema de gestion
soporta modulos
de
carga en la memoria y deja que hablen al resto del kernel
La carga de modulos
se divide en dos secciones
separadas.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
R EGISTRO DE CONTROLADORES
El kernel
mantiene tablas dinamicas
de todos los
controladores conocidos, y proporciona un conjunto de
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
DE CONFLICTOS
R ESOLUCI ON
Es un mecanismo que permite que diferentes
controladores de dispositivos reserven recursos de
hardware y protejan esos recursos del uso accidental por
otro controlador.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
entre procesos
Comunicacion
DE PROCESOS
G ESTI ON
de procesos de UNIX separa la creacion
de
La gestion
de un nuevo programa en dos
procesos y la ejecucion
operaciones distintas.
La llamada a sistema fork() crea un nuevo proceso.
de una llamada a exec() se ejecuta un nuevo
Despues
programa.
que el
En UNIX, un proceso abarca toda la informacion
sistema operativo debe mantener para rastrear el contexto
de un solo programa.
de una sola ejecucion
En Linux, las propiedades de los procesos caen en tres
grupos: la identidad, el entorno y el contexto.
Temas suplementarios: El sistema operativo Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
entre procesos
Comunicacion
I NDENTIDAD DE UN PROCESO
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
entre procesos
Comunicacion
E NTORNO DE UN PROCESO
El entorno del proceso es heredado de su padre y
esta compuesto de dos vectores terminados en NULL.
El vector argumento
El vector entorno
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
entre procesos
Comunicacion
C ONTEXTO DE UN PROCESO
Contexto es el estado (constantemente cambiante) de un
en cualquier punto en el tiempo.
programa en ejecucion
importante
es la parte mas
El contexto de planificacion
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
entre procesos
Comunicacion
P ROCESOS E HILOS
interna para los
Linux usa la misma representacion
procesos y para los hilos; un hilo es simplemente un nuevo
proceso que comparte el mismo espacio de direcciones
que su padre.
Tanto los procesos como los hilos se llaman tareas en
Linux.
Solo se distingue entre procesos e hilos cuando se crea
un nuevo hilo con clone().
fork() crea una nueva tarea con su propio contexto de
tarea completamente nuevo.
clone() crea una nueva tarea con su propia identidad,
pero se le permite compartir las estructuras de datos de su
padre.
Temas suplementarios: El sistema operativo Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
entre procesos
Comunicacion
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
entre procesos
Comunicacion
ENTRE PROCESOS
C OMUNICACI ON
Como UNIX, Linux informa a los procesos que un evento
de senales.
ha ocurrido a traves
Hay un numero
limitado de senales,
y estas no pueden
llevar informacion:
ocurrida esta disponible para un proceso.
El kernel
de Linux no usa senales
para comunicarse con
corriendo en modo kernel,
bien, la comunicacion
se logra a traves
y estructuras wait_queue.
de estados de planificacion
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
entre procesos
Comunicacion
cualesquiera
extremadamente rapida
de comunicacion;
de memoria
datos escritos por un proceso a una region
compartida puede ser leda inmediatamente por
a
cualquiera otro proceso que haya mapeado esa region
su espacio de direcciones.
sin embargo, la memoria
Para obtener sincronizacion,
compartida debe ser usada en conjunto con otro
entre procesos.
mecanismo de comunicacion
Temas suplementarios: El sistema operativo Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
EN L INUX
P LANIFICACI ON
es la
Aunque se cree normalmente que la planificacion
e interrupcion
de procesos, en Linux, la
ejecucion
tambien
incluye la ejecucion
de diversas
planificacion
La ejecucion
abarca tanto las tareas
como por
que son solicitadas por un proceso en ejecucion
las que se ejecutan internamente de parte de un
controlador de dispositivos.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
CFS
de
CFS elimina la idea tradicional y comun
de porcion
tiempo.
de
En vez de eso, a las tareas se les asigna una porcion
tiempo del procesador.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Considerese
el caso simple de dos tareas ejecutables con
igual peso y latencia destino de 10 ms - cada tarea se
ejecuta en 5 ms.
Si hay 10 tareas ejecutables, cada una se ejecuta en 1 ms.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
DE MEMORIA
G ESTI ON
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
El asignador de pagina
asigna y libera todas las paginas
paginas
fsicas disponibles.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
estaticamente
(los controladores reservan un area
contigua de memoria durante el tiempo de arranque del
del asignador de
sistema) o dinamicamente
(a traves
paginas).
se usa un asignador de piezas (slabs) para la
Tambien
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
El cache de pagina
y el sistema de memoria virtual
gestionan la memoria fsica.
tambien
El cache de pagina
es el cache principal del kernel
para
los archivos y el mecanismo principal para E/S para
bloquear dispositivos.
El cache de pagina
almacena paginas
enteras de
contenidos de archivo para E/S de archivos locales y de
red.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
F IGURA : Division
binaria
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
M EMORIA VIRTUAL
El sistema de memoria virtual mantiene el espacio de
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
El almacen
vienen las
pagina
o copia por escritura).
El kernel
crea un nuevo espacio de direcciones virtuales.
1
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
El kernel
copia los descriptores VMA del proceso padre y
cada pagian
cubierta aumentando cada vez.
del fork el proceso padre y el proceso hijo
Despues
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
constante del
El kernel
de Linux reserva una region
espacio de direcciones virtuales de cada proceso para su
propio uso interno.
Esta area
de memoria virtual contiene dos regiones:
Un area
estatica
que contiene referencias de tablas de
pagina
a cada pagina
fsica de memoria disponible en el
simple de
sistema, de modo que haya una traduccion
direcciones virtuales o fsica cuando se este ejecutando
codigo
kernel.
reservada no esta reservada para
El resto de la seccion
ningun
proposito especfico; sus entradas de tabla de
pagina
pueden modificarse para apuntar a cualquiera otra
area
de memoria.
Temas suplementarios: El sistema operativo Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
de pagina.
El cargador ELF funciona leyendo el encabezado y
mapeando las secciones del archivo a regiones separadas
de la memoria virtual.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
pequena
enlazada cuando el
proceso comienza.
Mapea la biblioteca del enlazador en memoria.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
Memoria virtual
y carga de programas de usuario
Ejecucion
Enlazado dinamico
en Linux
dinamicas
requeridas por los proceso y los nombres de las
variables y funciones necesarias.
Mapea las bibliotecas en medio de la memoria virtual y
resuelve las referencias a los smbolos contenidos en las
bibliotecas.
Las bibliotecas compartidas compiladas tienen que ser de
(position-independent
codigo
independiente de posicion
code (PIC)) para que puedan ser cargadas en cualquier
parte.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
S ISTEMAS DE ARCHIVOS
como un arbol
de directorio jerarquico
que obedece la
semantica
de UNIX.
Internamente, el kernel
oculta los detalles de la
y gestiona diferentes sistemas de archivos
implementacion
de una capa de abstraccion,
el sistema virtual de
a traves
archivos (VFS).
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
del estandar
de Linux (como FAT, por ejemplo).
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
de bloques de ext3
F IGURA : Polticas de asignacion
Temas suplementarios: El sistema operativo Linux
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
E NTRADA Y SALIDA
caches:
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
D ISPOSITIVOS DE BLOQUE
dispositivo de bloque.
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
a Linux
Introduccion
Modulos
del kernel
de procesos
Gestion
Planificacion
de memoria
Gestion
Sistemas de archivos
Entrada y salida
El kernel
no realiza casi ningun
procesamiento de un
archivo ledo o solicitud de escritura a un dispositivo de
caracter,
sino que simplemente pasa la solicitud al
dispositivo.
a esta regla es que el subconjunto
La principal excepcion
el kernel
mantiene una interfaz estandar.