-
公开(公告)号:WO2008157567A3
公开(公告)日:2009-03-05
申请号:PCT/US2008067262
申请日:2008-06-18
Applicant: MICROSOFT CORP
Inventor: KLEIN MATTHEW D , ENGLAND PAUL
Abstract: Various technologies and techniques are disclosed for allowing a user mode stack to be shared by multiple contexts. A user mode stack can be shared between execution contexts that are guaranteed to not need the user mode stack at the same time. For example, each user mode portion of a kernel thread is provided with a dedicated backing thread. When a respective dedicated backing thread is sleeping and not using a respective user mode stack, the user mode stack is allowed to float with a respective user mode portion to other kernel threads. The user mode stack is disassociated from the kernel portion of the thread. The kernel is notified of an address of a user mode thread context. The kernel mode portion of the converted thread becomes a backing thread that waits. The user mode portion of the converted thread can be switched without entering the kernel.
Abstract translation: 公开了允许用户模式堆栈由多个上下文共享的各种技术和技术。 用户模式堆栈可以在保证不需要用户模式堆栈的执行上下文之间共享。 例如,内核线程的每个用户模式部分被提供有专用背衬线程。 当相应的专用后备线程正在休眠而不使用相应的用户模式堆栈时,允许用户模式堆栈以相应的用户模式部分浮动到其他内核线程。 用户模式堆栈与线程的内核部分取消关联。 内核被通知用户模式线程上下文的地址。 转换的线程的内核模式部分成为等待的后备线程。 可以切换转换后的线程的用户模式部分而不进入内核。
-
公开(公告)号:WO2008157561A3
公开(公告)日:2009-03-19
申请号:PCT/US2008067255
申请日:2008-06-18
Applicant: MICROSOFT CORP
Inventor: KLEIN MATTHEW D , ENGLAND PAUL
CPC classification number: G06F9/545 , G06F9/45537
Abstract: Various technologies and techniques are disclosed for virtualizing threads. An operating system thread is virtualized by intercepting accesses of the operating system thread state and emulating a normal operating system behavior. A kernel mode thread state is virtualized by intercepting kernel accesses of the kernel mode thread state and emulating a normal kernel mode behavior. A user mode thread state is virtualized by intercepting user mode accesses of the user mode thread state and emulating a normal user mode behavior. If the access is a write access, then the write access is applied to a virtual thread structure. If the access is a read access, then the read access is applied to the virtual thread structure.
Abstract translation: 公开了用于虚拟化线程的各种技术和技术。 通过拦截操作系统线程状态的访问并仿真正常的操作系统行为来虚拟化操作系统线程。 内核模式线程状态通过截取内核模式线程状态的内核访问并模拟正常内核模式行为进行虚拟化。 通过拦截用户模式线程状态的用户模式访问并模拟正常的用户模式行为来虚拟化用户模式线程状态。 如果访问是写入访问,则写访问被应用于虚拟线程结构。 如果访问是读访问,则读访问被应用于虚拟线程结构。
-
公开(公告)号:WO2008157587A3
公开(公告)日:2009-03-19
申请号:PCT/US2008067308
申请日:2008-06-18
Applicant: MICROSOFT CORP
Inventor: KLEIN MATTHEW D , ENGLAND PAUL
CPC classification number: G06F9/461
Abstract: Various technologies and techniques are disclosed for switching user mode thread context. A user mode portion of a thread can be switched without entering a kernel by using execution context directly based on registers. Upon receiving a request to switch a user mode part of a thread to a new thread, user mode register contexts are switched, as well as a user mode thread block by changing an appropriate register to point at the user mode thread block of the new thread. Switching is available in environments using segment registers with offsets. Each user mode thread block in a process has a descriptor in a local descriptor table. When switching a user mode thread context to a new thread, a descriptor is located for a user mode thread block of the new thread. A shadow register is updated with a descriptor base address of the new thread.
Abstract translation: 公开了用于切换用户模式线程上下文的各种技术和技术。 线程的用户模式部分可以通过直接基于寄存器使用执行上下文来切换而不进入内核。 在接收到将线程的用户模式部分切换到新线程的请求时,通过将适当的寄存器改变为指向新线程的用户模式线程块来切换用户模式注册上下文以及用户模式线程块 。 在具有偏移量的段寄存器的环境中可以进行切换。 进程中的每个用户模式线程块在本地描述符表中都有描述符。 当将用户模式线程上下文切换到新线程时,将为新线程的用户模式线程块定位描述符。 影子寄存器用新线程的描述符基地址更新。
-
公开(公告)号:WO2008157455A3
公开(公告)日:2009-03-05
申请号:PCT/US2008067052
申请日:2008-06-15
Applicant: MICROSOFT CORP
Inventor: KLEIN MATTHEW D , ENGLAND PAUL
IPC: G06F9/46
Abstract: Various technologies and techniques are disclosed for detecting and handling blocking events. A user mode thread is assigned a dedicated backing thread. System calls are made on the dedicated backing thread. The kernel detects when a system call results in a blocking event. A core that the dedicated backing thread is currently running on is observed. An entry in a per process table that maps cores to a currently associated primary thread waiting to be woken is consulted. The currently associated primary thread for the core is woken with a special result code to indicate that it was woken due to the blocking system call. The primary thread is released back to the application. A user mode scheduler is notified of the blocking event so a core can continue to be utilized.
Abstract translation: 公开了用于检测和处理阻塞事件的各种技术和技术。 用户模式线程被分配一个专用的背衬线程。 系统调用在专用后备线上进行。 内核检测系统调用何时导致阻塞事件。 观察到专用背衬线程正在运行的核心。 在每个进程表中将核心映射到等待被唤醒的当前关联的主线程的一个条目。 用于核心的当前关联的主线程用特殊结果代码唤醒,以指示由于阻塞系统调用而唤醒它。 主线程被释放回应用程序。 通知用户模式调度器阻塞事件,以便核心可以继续被利用。
-
-
-