|
2008 Windows Core Theme
Project Invitation for Proposal
2008 Invitation For Proposal has been closed
Background
In 2005, Microsoft launched “The Windows Academic
Program” initiative aimed to help academies to enhance
the teaching of Operating System (OS) principles in the
Computer Science curriculum. This initiative was in
response to the academic communities’ increasing
interests in the Windows -based operating system,
especially with the increasing adoption of Windows XP
and Windows Server 2003 products in the market place.
The objectives of this program were three-fold: first,
to improve the diversity of OS instruction by supporting
inclusion of cases based on NT; second, to enable the
use of Windows as a platform for teaching OS courses;
and third, to help reviving the interest in operating
systems topics among students by increasing the
excitement and relevance of OS courses.
Accompanying this program, Microsoft released Windows
Research Kernel (WRK). The WRK contains the bulk of the
source code of the NT kernel, compatible with Windows
Server 2003/XP for x86 and AMD64. In addition to WRK,
Microsoft also released Windows OS Internals Curriculum
Resource Kit (CRK), a collection of instructional
material that follows the IEEE-CS/ACM Operating System
Body of Knowledge to illustrate OS concepts using
Windows XP as a case study, to aid universities to
develop their own OS teaching curriculum. CRK is based
on the book “Windows Internals”, and contains
experiments, quizzes, and assignments that are
integrated with the course materials.
In 2006, Microsoft released an updated version of WRK,
compatible with the latest code base of Windows Server
2003 SP1 or Windows XP x64 Edition. In addition, an
experimental environment that is built on top of the
native NT API for universities to use as a platform for
OS projects, called “ProjectOZ”, was also included in
the latest WRK/CRK package. Various projects are
suggested in ProjectOZ that allow faculties and students
to experiment with OS data structures and algorithms by
making modifications to a basic operating system called
BasicOZ, and measuring the resulting change in system
behavior and performance.
Since its latest release, the WRK/CRK/ProjectOZ
resources package has greatly assisted universities
worldwide in enhancing the quality of their OS teaching
curriculum. Universities in Russia, for example, have
successfully built their own operating systems this year
using the WRK source code, and use that knowledge to
effectively teaching OS principles and concepts to the
students.
In China, under the Windows Core project theme, MSRA UR
team launched an initiative to support pioneer faculties
from top universities to develop experimental course
based on WRK teaching kit.
Six well-known faculties teaching Operating
System (OS) in top universities in China joined the
program. The faculties have completed an analysis of WRK
source code and development of sample experimental
cases, and they designed a course structure that’s based
on their teaching experience, and authored guidelines of
the future course content design, and developed some
case studies that enable students experiencing how to
change the configuration parameters of these cases to
influence system behavior and performance. The team also
designed some topics for students to develop new cases
based on the course platform. Students can also replace
some algorithms of Windows components by their own code
to change the functionality and performance. The overall
experiment and knowledge from these faculties will be
packaged into a Teaching Resource Kit (TRK), for other
faculties in the Greater China region (GCR) and Asia
Pacific (AP) region to leverage to build their own OS
curriculum.
With the initial success of this initiative in China,
MSRA UR is launching a region-wide Windows Core Theme
program in the Asia Pacific region, to leverage the
initial work results from the pioneer faculties in
China, and to enable more faculties in the AP region to
take the advantages and resources offered by WRK/CRK, to
build or enhance their own OS teaching curriculum in
their universities.
[Back to top]
Curriculum Development Project
·
In your proposal you can propose to use WRK & TRK to
develop your curriculum program. You can design and
build at least one OS experiment using WRK , or
improving TRK , either based on the suggested topics
list below or on your own design;
·
We suggest you to integrate your experiment in your OS
teaching content, Design a student participated
experiments.
·
Submit a white paper to summarize your experiment
development, which will be shared on a future Asia
Pacific region WinCore on-line forum with other
professors in the region;
Experiment
topics List
1. User-mode scheduling of CPUs
In NT threads consist of both a
user-mode portion (registers, user-mode stack and,
Thread Environment Block), and a kernel-mode portion
(registers, kernel-mode stack, and kernel data
structures). Switching between threads requires that a
thread enter the kernel and block.
Implementation options:
1)
A user-mode facility to switch between the user-mode
portion of threads without entering the kernel;
2)
A kernel-mode facility to switch between the kernel-mode
portion of threads that already switched user-mode
portions;
3)
A facility in the NT scheduler to pass the CPU back to a
user-mode scheduler whenever a thread enters the kernel
and blocks;
4)
A user-mode cooperative scheduler for managing switches
between the user-mode portions of threads.
2. User-mode cross-process thread migration
Threads are normally bound to
processes.
Within NT a thread executing in kernel-mode can actually
migrate between processes. This works because the
kernel-mode stacks and the kernel-mode addresses they
contain are valid in all processes, since kernel-mode is
part of every process.
If threads could migrate between processes in user-mode,
it would be easier to use processes as an isolation
boundary to keep un-trusted code apart from trusted
code. This
can be done in NT today by creating separate threads in
both processes and using remote procedure calls (RPCs)
to switch execution between processes, or using events
to signal the execution of co-routines running on
threads in the alternate process.
Instead why not allow user-mode threads to move
between processes?
Implementation options:
1)
changes to the NT scheduler to allow a thread to move from
one process to another;
2)
manage the separate user-mode stacks that will be needed in
each process;
3)
implement a mechanism for passing data between processes
using shared memory.
3. Cross-process object invocation
NT uses a unified object management
facility that manages user-mode references (handles) on
objects and controls object naming, creation, and
deletion.
Native NT APIs operate on these handles by using the
object manager to convert the handles into actual
references on the kernel-mode data structures.
The code (methods) operating on the data
structures executes within the kernel.
In this project this model is extended to user-mode,
with the kernel continuing to manage proxy objects
within the kernel, but the actual data structures and
code are implemented in user-mode processes.
Implementation options:
1)
a proxy object type which can represent generic invocation
of cross-project objects, and can be opened by name;
2)
implement NT APIs for creating, naming, and initializing
proxy objects that run in a user-mode process;
3)
implement cross-process invocation that allows one process
to invoke methods on objects in another process;
4)
manage the teardown of proxy objects, including dealing
correctly with the termination of processes.
4. Freeze-drying of processes
The state associated with a process
consists of virtual memory, the state in kernel data
structures including, in particular, the contents of the
object table.
Freeze-drying is a process of capturing the state
of a process on disk so that the process can be
restarted at a later point.
Even after a reboot.
Implementation options:
1) the necessary mechanisms to capture
the state of a running process and save it to disk, as
well as the mechanisms to restart
a saved process.
Make as few restrictions as necessary on the
processes that can be saved and restarted.
5. User-mode filing
system
The NT object manager allows the NT
namespace to be extended through objects that supply
parse routines.
This facility can be used to extend the NT
namespace into a user-mode process.
Implementation Options:
1)
create a program which implements a simple in-memory file
system consisting of names associated with data when the
program runs it creates an LPC port that names and then
listens on for file system operations;
2)
create a new object type which represents an open instance
of one of these user-mode files;
3)
create a new object type which supplies a parse routine
which communicates with the file system process using
LPC messages,
the parse routine passes the remaining file name
to the process, and receives back an ID which it
associates with a new object instance
representing an open user-mode file;
4)
implement APIs which perform read and write operations on
open user-mode files, using the ID and LPC to the file
system process, as well as a close operation.
6. Continuations and kernel stack sharing
In NT every thread has a full
kernel-mode stack that is used whenever a thread is
blocked or executing in the kernel (meaning for every
thread except those running in user-mode).
Many kernel threads are blocked in operations
like NtWaitForSingleObject or NtWaitForMultipleObject.
Operations like these could instead be
implemented as continuations, and thus not need a
complete kernel-mode stack.
Since not all threads need stacks, the stacks can
be shared among threads when they enter the kernel.
Sharing has possible advantages of improved cache
efficiency, in cases where the same kernel stack is used
for multiple threads.
Implementation Options:
1)
rewrite the Wait operations so that they use continuations
instead of the kernel stack when invoked from user-mode;
2)
create a pool of kernel-mode stacks rather than assigning
them to threads.
Assign stacks to kernel threads only after a
thread enters the kernel (a stub stack will be needed
per processor for saving the initial state after a trap
-- which must then be copied to the assigned stacks).
Threads must block until a stack becomes
available, so a minimum amount of state per thread must
always be available to save the state that must be
copied to the stack.
Release stacks for threads that call into the
Wait operations which are implemented as continuations;
3)
experiments to measure the cost in time against the savings
in memory of these changes.
And
you can also design your
own projects that are not listed above.
[Back to top]
Funding Awards
-
Microsoft Research Asia anticipates giving a number
of awards to innovative proposals. The number and
value of the awards will be determined by a
“Proposal Review Board” comprising Research Managers
and senior researchers from Microsoft Research
Asia.All awards will be given to the institution to
support the proposed research project.
-
It
is expected that awards amount will be according to
those listed in the tables above, and/or based on
the level of your participation to the different
tier of the program.
Awards will be made per project for winning
submissions based on the review result.
-
All awards will be given to the institution to
support the proposed research project.
-
Payments of awards will only be made
to academic institutions. Personal or business
accounts for award payments will not be accepted
under any circumstances.
-
Awards under this program are for one year
only, but may be renewable at the sole discretion of
Microsoft Research Asia.
-
The award should be used solely to support
the project in the area
described in your proposal.
-
The award will not be used to cover any
overhead costs but dedicated solely to direct
project expenditure
Eligibility
Any faculty member in the universities in the AP region
can submit a proposal to participate in the Windows Core
project, and receive funding support for your research
effort. However, for any proposal to be considered, it
must meet the following requirements:
-
Proposals can only be submitted through the
invitation by Microsoft Research Asia University
Relations, and submitted to the UR manager of each
subsidiary in the AP region;
-
An institution will be awarded a maximum of
one proposal award, regardless of the
number of proposals submitted from the institution.
However, collaborative proposals embracing multiple
groups across the organization are encouraged.
-
Proposals that are incomplete, inaccurate
or not responsive to the terms and conditions of
this program will be excluded from consideration.
[Back to top]
Submission Process
·
Proposal application is by Email invitation. 2008
submission deadline is March.20.
·
Proposals submitted to Microsoft will not be returned.
Microsoft cannot assume responsibility for the
confidentiality of information in submitted proposals.
Therefore, proposals should not contain information that
is confidential.
·
Microsoft will not review drafts of proposals prior to
their submission, nor provide feedback on the reasons
why a particular proposal was not selected.
Selection Criteria
All proposals received will be reviewed by the proposal
Review Board. Evaluations will be conducted anonymously.
Based on evaluations by the review board, Microsoft
Research Asia can select the most worthy proposals for
funding. Due to the volume of submissions, Microsoft
Research Asia may not provide individual feedback on
proposals that are not funded.
All proposals will be evaluated based upon the following
criteria:
-
Demonstrates the need, identifies and
explains the importance of the curriculum
development you will conduct.
-
Scope and quality of deliverables,
including the addressed range of topics, the created
type of assets, procedures for ensuring the quality
of those assets, and rationale for the production
budget.
-
Potential for wide dissemination and use of
intellectual property created, including specific
plans for publications, conference presentations,
distance learning, as well as plans to distribute
content in multiple formats and/or under
non-restrictive (e.g.
BSD-like) licensing terms.
-
Demonstration of ability to complete the
project, including the adequacy of available
resources, timelines, qualifications and number of
identified contributors.
-
Qualifications of principal investigator,
including previous history of work
in the topic area, publications, and papers
delivered at conferences, successful completion of
previously funded projects, teaching awards, books
published, and so on.
Additional References
& Resources
[Back to top]
|