Gestió De Processos En El Linux Kernel 2.4

Slides:



Advertisements
Presentaciones similares
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors MULTITHREADING & JAVA SYNCHRONIZATION David.
Advertisements

Subsistema de Administración de Procesos en GNU/Linux.
TFG – Àrea Enginyeria del programari
Serialització i persistència
La figura del Data Protection Officer a les institucions europees
T4-Entrada/Sortida.
La Placa Base Izan Sánchez 4º C.
Symbian: un sistema operatiu per mòbils
1 u n i t a t Sistemes informàtics. Treball en xarxa.
Campus Virtual.
TEMA3: Gestió de correu i agenda electrònica
Virtualització amb Open VZ
Projecte Fi de Carrera Disseny i desenvolupament d’un esquema criptogràfic per gestionar de forma segura els historials mèdics dels pacients a través d’una.
Sistemes microinformàtics i xarxes
ACCÉS  Inicia/ Tauler de control
Eines col·laboratives que conté Google Site
L’ordinador i els Sistemes Operatius(S.O)
Carlos Herrero Joan Torras
1 u n i t a t Sistemes informàtics. Treball en xarxa.
Eines digitals TIC © McGraw-Hill.
SEMINARI: L’ORIENTACIÓ I LA PREVENCIÓ DE L’ABANDONAMENT ESCOLAR ALS CENTRES D’ADULTS. CURS Grup 1 La informació dels centres d’adults.
Ciències per al món contemporani
Introducció de TEDIs (COACs) Versió 4.0
Un exemple de Màquina Virtual: el programa VMware
1.9. Nivells d’organització
Library and Information Science Abstract
Creació d’un mapa personalitzat
Control de Retirada de Vehicles
GESTIÓ PER PROCESSOS.
TEMA 6 LLENGÜES EN CONTACTE
El nou pla docent de la UB: Adequació al sistema ECTS
PERIFÈRICS ... Descobreix el que envolta l’ordinador!
El sistema operatiu JavaOS
Les Restriccions d’accés
Com enllaçar des de PubMed al gestor de
Tutorials Campus Virtual Càrrega automàtica d’alumnes
Sistemes operatius per a dispositius mòbils inalàmbrics - Symbian OS -
Projecte eTaller Disseny i implementació d’una aplicació de gestió web JEE per a petits tallers de reparació d’automòbils © Jaume López Diaz – Treball.
DISC DUR Dispositiu encarregat d’emmagatzemar informació de forma permanent al nostre ordinador.
EL PROCÉS DE DIRECCIÓ DE L’EMPRESA
Disseny de la persistència Serialització
L’AIGUA A LA NATURA.
Gestió electrònica del Dipòsit Legal
Jonathan Ceballos Rodriguez ( ) Zenón Perisé Alía ( )
Nova eina de descobriment
Càrrega dinàmica de mòduls al kernel de Linux
Explicació de l’enunciat
LES XARXES LOCALS i els seus components.
TEMA 2 XARXES LOCALS David Bermúdez 4tC Vanesa Elvira 4tB
ERIC Manual d’ús.
COM AJUDAR ELS NOSTRES FILLS EN LA TASCA EDUCATIVA
XARXES PRIVADES VIRTUALS ( VPNs )
BEGINNER EV3 PROGRAMMING Lesson
Sistemes Operatius (S.O.) Onion: Mecanisme d'entrada al sistema
Multithreading i sincronització Edgar Ros Ferrer Xavier Farré Barbera
Passes a seguir per iniciar un nou curs acadèmic en el GestIB
Threads en Java David Gañán Jiménez.
CFA Sebastià Juan Arbó Curs
Xavi Fabregat 4tA Karim Atsailali 4tA
La literatura i les matemàtiques van de la mà.
Linux i Temps Real Alexei Lebedev.
Funcionament intern d’un ordinador
PROTOCOLS DE XARXA Regles i especificacions tècniques que han de seguir els dispositius connectats a la xarxa per poder comunicar-se El protocol més utilitzat.
FUNCIONAMENT INTERN D’UN ORDINADOR
Sistema de descàrrega d’aplicacions per a mòbils intel·ligents
Propostes de millora en el GIR
Projecte: Videojocs.cat
Estils i Plantilles Ms Word.
Desenvolupament d'una aplicació web per a viatgers
Aprendre junts alumnes diferents: Una escola per a tothom
Transcripción de la presentación:

Gestió De Processos En El Linux Kernel 2.4 Albert Aixendri Morales Francesc Guim Bernat Albert Riera i Poblet

Contingut Introducció El task_struct i les taules de processos Creació i destrucció de processos La política de planificació de processos Cues de processos Implementacions internes

Introducció El kernel de Linux està format per cinc subsistemes: L’ scheduler de processos (SCHED): responsable de controlar l’accés dels processos a la CPU. Memory Manager (MM): Permet que els processos accedeixin i comparteixin de forma segura la memòria principal. Permet que els processos ocupin més espai lògic que el físic disponible (Memòria Virtual)

Introducció (cont.) Virtual File System (VFS): agrupa les característiques de la varietat de dispositius físics permetent treballar amb dispositius lògics. Network interface (NI): facilita mitjans per accedir als diferents protocols i recursos de la xarxa. Comunicació entre processos (IPC): ofereix mecanismes de comunicació procés-a-procés dins d’un mateix sistema.

Introducció (cont.)

El task_struct i les taules de processos Linux guarda la informació d’un procés en l’estructura struct task_struct Cada task_struct ocupa 1.680 bytes El nombre de processos està limitat per la memòria max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 2;

El task_struct i les taules de processos (cont.) Mètodes d’accés al task_struct: una taula de hash per pid. pid_hashfn(x) ((((x) >> 8) ^ (x)) & ((4096 >> 2) - 1)) static inline struct task_struct *find_task_by_pid(int pid) una llista circular doblement encadenada per poder fer un recorregut de tots els processos: #define for_each_task(p) \ for (p = &init_task ; (p = p->next_task) != &init_task ; )

El task_struct i les taules de processos (cont.) Estats d’un procés: volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ #define TASK_RUNNING 0 #define TASK_INTERRUPTIBLE 1 #define TASK_UNINTERRUPTIBLE 2 #define TASK_ZOMBIE 4 #define TASK_STOPPED 8 #define TASK_EXCLUSIVE 32

El task_struct i les taules de processos (cont.) Els flags contenen informació d’un procés que no té perquè ser independent unsigned long flags; /* per process flags, defined below */ #define PF_ALIGNWARN 0x00000001 /* Print alignment warning msgs */ /* Not implemented yet, only 486*/ #define PF_STARTING 0x00000002 /* being created */ #define PF_EXITING 0x00000004 /* getting shut down */ #define PF_FORKNOEXEC 0x00000040 /* forked but didn't exec */ #define PF_SUPERPRIV 0x00000100 /* used super-user privileges */ #define PF_DUMPCORE 0x00000200 /* dumped core */ #define PF_SIGNALED 0x00000400 /* killed by a signal */ #define PF_MEMALLOC 0x00000800 /* Allocating memory */ #define PF_VFORK 0x00001000 /* Wake up parent in mm_release */ #define PF_USEDFPU 0x00100000 /* task used FPU quantum (SMP) */

Creació i destrucció de processos Tipus de processos: threads idle threads de sistema tasks d’usuari Un procés d’usuari es pot crear amb les crides clone() i fork().

Creació i destrucció de processos (cont.) Creació d’un procés: Buscar memòria per alocatar el procés Es copia el task_struct del pare al fill Comprovacions més importants: màxim processos d’usuari Es modifiquen els paràmetres no hereditaris del nou procés. Assignació del nou pid. S’introdueix el procés a pidhash[ ]i a la llista. Estat a TASK_RUNNING. Introducció a la cua d’execució.

Creació i destrucció de processos (cont.) Com es pot matar un procés: Amb la crida exit(). Enviant un signal que mati el procés. Que el procés produeixi una excepció. Amb la crida bdflush(). (antigues versions del kernel)

Creació i destrucció de processos (cont.) Destrucció d’un procés: Es bloqueja el procés Estat a TASK_ZOMBIE. S’envia el signal rebut a tots els fills (sempre que no sigui 0) S’avisa al pare amb un signal SIGCHLD. S’alliberen els recursos, es tanquen els fitxers...

La política de planificació de processos L’scheduler està dividit en quatre mòduls: La política de planificació Escull el següent procés a executar en funció de la política. Les funcions específiques de l’arquitectura Codi assembler que manipula els registres i instruccions específics a la CPU. Les funcions independents de l’arquitectura Realitza la gestió global de la planificació. La interfície de crides a sistema L’interfície a través de la qual un procés pot accedir al kernel. En particular, el SO per executar l’scheduler.

La política de planificació de processos (cont.)

La política de planificació de processos (cont.) Polítiques de planificació de procés: SCHED_FIFO SCHED_RR SCHED_OTHER

La política de planificació de processos (cont.) La funció goodness() retorna el pes que té cada procés, en funció de la prioritat i de si és real time. Els processos real time s’executen abans. si és un procés real time: weigth = counter + 1000 sino: weigth = weigth + prioritat

La política de planificació de processos (cont.) En plataformes SMP, un procés és penalitzat si s’ha de passar a executar a una altra CPU que l’anterior on s’estava executant.

Cues de processos: Task Queues Són mecanismes del kernel per a executar tasques més tard. En el kernel 1.x s’anomenaven Bottom Halves i eren més limitades N’hi ha quatre de predefinides: tq_timer tq_scheduler tq_immediate tq_disk Se’n poden crear de pròpies

Cues de processos: Wait Queues Aquestes cues serveixen per guardar els processos que no poden ser atesos pel Kernel. Els processos es queden en estat “sleep” i es desperten quan poder ser atesos. Podem definir cues pròpies.

Cues de processos: Kernel Timer Es tracta d’un llista de funcions particulars a executar en un temps especificat en el futur. L’estructura de cada node de la llista es: struct timer_list { struct list_head list; unsigned long expires; unsigned long data; void (*function)(unsigned long); volatile int running; };

Implementacions Internes Linked List. Es tracta d’una llista doblement encadenada. Algunes operacions estan definides amb macros Task Queues

Implementacions Internes (cont.) Kernel timers

Bibliografia http://www.moses.uklinux.net/patches/lki-2.html http://iamexwiwww.unibe.ch/studenten/schlpbch/linuxScheduling/LinuxScheduling.html