*
Quick Links|Home|Worldwide
Microsoft*
Search for


Asia Pacific University Relation

MSR Asia UR Home > Windows Core Technology > 2008 Asia Pacific Windows Core IFP

 


 
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]

 

 

On this page

·         Background

·         Curriculum Development Project

·         Experiment topics List

·         Funding Awards

·         Eligibility

·         Submission Process

·         Selection Criteria

·         Additional References & Resources

 


©2008 Microsoft Corporation. All rights reserved. Terms of Use |Trademarks |Privacy Statement