$NetBSD: system,v 1.13 2017/01/13 10:14:58 dholland Exp $ NetBSD System Roadmap ===================== This is a roadmap document dealing deals with core system aspects of the operating system. The following elements, projects, and goals are considered strategic priorities for the project: 1. Tickless timing and scheduling (discussed in the mobile roadmap) 2. Long-term graphics architecture (discussed in the desktop roadmap) 8. Processor and cache topology aware scheduler The following elements, projects, and goals are not strategic priorities but are still important undertakings worth doing: 3. Full kernel preemption for real-time threads on non-x86 4. POSIX shared memory 6. Better resource controls 7. Improved observability: online crashdumps, remote debugging The following elements, projects, and goals are perhaps less pressing; this doesn't mean one shouldn't work on them but the expected payoff is perhaps less than for other things: Some explanations ================= 3. Full kernel preemption for real-time threads on non-x86 ---------------------------------------------------------- With the revamp of the kernel concurrency model, much of the kernel is fully multi-threaded and can therefore be preempted at any time. In support of lower context switch and dispatch times for real-time threads, full kernel preemption is being implemented. This has been implemented already for i386 and x86_64 (and is in 5.0), but needs to be extended to support ARM and other ports. MIPS has this, as does PowerPC, but it is not yet enabled. Responsible: rmind 4. POSIX shared memory ---------------------- Implement POSIX shared memory facilities, which can be used to create the shared memory objects and add the memory locations to the address space of a process. Changes were proposed on tech-kern, although there were some concerns with the kernel implementation, and so a different approach using wrapper functions on tmpfs is being aimed at for 6.0. XXX: what's the current state? Responsible: rmind 6. Better resource controls --------------------------- A resource provisioning and control framework that extends beyond the traditional Unix process limits. Responsible: TBD 7. Improved observability: online crashdumps, remote debugging -------------------------------------------------------------- XXX crashdumps while the system is running XXX firewire support in libkvm Responsible: TBD 8. Processor and cache topology aware scheduler ----------------------------------------------- Implement the detection of the topology of the processors and caches. Improve the scheduler to make decisions about thread migration according to the topology, to get better thread affinity and less cache thrashing, and thus improve overall performance in modern SMP systems. Code has been written, but did not show any performance improvement. We will continue to monitor this area. Responsible: rmind Alistair Crooks Sat Jan 14 11:40:49 PST 2012