OpenBSD? Biglock? Az SMP-ben (Symmetric Multi Processing) járatosak erre két szóra biztos felkapják a fejüket. Mit is jelent a Biglock? A biglock-ot a több processzoros rendszerekben használják, a neve a Big Kernel Lock (BKL) szavakból áll össze. A biglock feladata működése: ha egy processz végre akar hajtódni, akkor tartania kell a Biglock-ot. Ha a BKL-t egy másik processz "fogja", akkor a futni kívánó processznek várnia kell addig, amíg a Biglock fel nem szabadul. Láthatjuk, hogy ez nem egy optimális működés, a Biglock elképzelés egy nagyon egyszerű SMP implementáció, és egy kicsit idejétmúlt.
Ennek ellenére nagy szó ez az OpenBSD-s világban, ahol egyelőre csak néhány erőtlen próbálkozás volt eddig a több processzoros támogatás megvalósítására. Most Niklas Hallqvist állt elő egy Biglock ötlettel. Az implementáció többé-kevésbé működik, a kód a NetBSD-ből került portolásra. További fejlemények várhatóak az OpenBSD SMP ügyében. Szóval van remény ;-)
Niklas levele:List: openbsd-cvs
Subject: CVS: cvs.openbsd.org: src
From: Niklas Hallqvist
Date: 2003-05-15 4:08:03
[Download message RAW]
CVSROOT: /cvs
Module name: src
Changes by: niklas@cvs.openbsd.org 2003/05/14 22:08:03
Modified files:
sys/arch/i386/i386: Tag: SMP apm.c bios.c cpu.c gdt.c
genassym.cf ipifuncs.c lapic.c locore.s
machdep.c mptramp.s process_machdep.c trap.c
sys/arch/i386/include: Tag: SMP cpu.h gdt.h intr.h lock.h
segments.h
sys/arch/i386/isa: Tag: SMP icu.s vector.s
sys/arch/i386/pci: Tag: SMP pci_machdep.c
sys/dev/pci : Tag: SMP cy82c693.c
sys/kern : Tag: SMP init_main.c init_sysent.c kern_exit.c
kern_fork.c kern_lock.c kern_resource.c
kern_sig.c kern_synch.c subr_pool.c subr_prf.c
sys_generic.c sys_process.c syscalls.c tty.c
vnode_if.c
sys/sys : Tag: SMP lock.h proc.h sched.h signalvar.h
simplelock.h syscall.h syscallargs.h systm.h
vnode_if.h
Log message:
Biglock! Most of the logic comes from NetBSD. Also a lot of fixes, enough to get a dual cpu machine actually run MP for a
very short while (we are just talking about seconds) before starving out one of the cpus. More coming very soon.