教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

Windows进程与线程实验

来源:网络收集 时间:2026-02-02
导读: 关于windows的进程和线程设计的讲义,给力呀。。。。 《操作系统实验课程》 Windows进程与线程实验二 主讲:黄伯虎 关于windows的进程和线程设计的讲义,给力呀。。。。 Windows线程调度调度算法(Windows XP/2000/2003) 采用动态优先级多队列调度算法 优先级

关于windows的进程和线程设计的讲义,给力呀。。。。

《操作系统实验课程》

Windows进程与线程实验二

主讲:黄伯虎

关于windows的进程和线程设计的讲义,给力呀。。。。

Windows线程调度调度算法(Windows XP/2000/2003)

采用动态优先级多队列调度算法

优先级

关于windows的进程和线程设计的讲义,给力呀。。。。

Windows线程调度Windows线程的基本优先级Win32 Process ClassesRealtime High Above Below Normal Normal Normal Idle

Win32 Thread Priorities

Time-critical Highest Above-normal Normal Below-normal Lowest Idle

31 26 25 24 23 22 16

15 15 14 13 12 11 1

15 12 11 10 9 8 1

15 10 9 8 7 6 1

15 8 7 6 5 4 1

15 6 5 4 3 2 1

动态优先级:每个线程的“动态优先级”以线程的基本优先级为初始值,随着进程所做工作类型的不同而上下浮动

Xidian University

OS Experiments

-3-

关于windows的进程和线程设计的讲义,给力呀。。。。

Windows线程调度

调度器

Dispatcher(分发器):内核中负责调度的例程的集合。为方便调度,内核维护着一个数据结构,称为“Dispatcher Database”(分发器数据库)

分发器数据库(就绪队列)

关于windows的进程和线程设计的讲义,给力呀。。。。

Windows线程调度

Windows Server 2003线程状态

抢占备用

延迟的就绪

自愿切换

转换

关于windows的进程和线程设计的讲义,给力呀。。。。

Windows线程调度Windows线程的基本状态抢占,时间约束

preemption, quantum end

Ready (1)

Running (2)

voluntary switch自愿切换Waiting (5)

Xidian University

OS Experiments

-6-

关于windows的进程和线程设计的讲义,给力呀。。。。

Windows线程调度调度情形 Preemption(抢占)Running Ready from Wait state 18 17 16 15 14 13

Xidian University

OS Experiments

-7-

关于windows的进程和线程设计的讲义,给力呀。。。。

Windows线程调度 Ready after Wait Resolution(等待结束进入就绪状态)

Running Ready

18 17 16 15 14 13

from Wait state

Xidian University

OS Experiments

-8-

关于windows的进程和线程设计的讲义,给力呀。。。。

Windows线程调度 Voluntary Switch(自愿切换)Running Ready

18 17 16 15 14 13

to Waiting state

Xidian University

OS Experiments

-9-

关于windows的进程和线程设计的讲义,给力呀。。。。

Windows线程调度 18 17 16 15 14 13

Quantum End (时间片用完)Running Ready

Xidian University

OS Experiments

-10-

关于windows的进程和线程设计的讲义,给力呀。。。。

线程的同步和互斥

同步对象

Windows 2000/XP中提供了同步对象来解决线程同步和互斥问题。

在任何时刻,同步对象都处于两种状态中的一种

信号态(signaled state)

或者非信号态(nonsignaledstate)

这些对象包括

事件对象

信号量对象

临界区对象

定时器对象

队列对象等

关于windows的进程和线程设计的讲义,给力呀。。。。

线程的同步和互斥

事件对象(Event)

是最简单的同步对象,它包括有信号和无信号两种状态。在线程访问

某一资源之前,需要等待某一事件的发生,这时用事件对象最合适。 相关API:

CreateEvent:创建一个事件对象,返回对象句柄。

OpenEvent:返回一个已存在的事件对象句柄,用于后续访问。 SetEvent:设置指定事件为可用状态。

ResetEvent:设置指定事件对象为不可用状态。

关于windows的进程和线程设计的讲义,给力呀。。。。

线程的同步和互斥

信号量对象(Semaphore)

信号量对象是同步对象,初值为0至某个最大值之间的正整数,它允

许同时对多个线程共享资源进行访问,用于限制并发资源的线程数。 相关API:

CreateSemaphore:创建一个信号量对象,返回对象句柄。

OpenSemaphore:返回一个已存在的信号量对象句柄,用于后续访问。 ReleaseSemaphore:释放对信号量对象的占用。

关于windows的进程和线程设计的讲义,给力呀。。。。

线程的同步和互斥

互斥体对象(Mutex)

互斥体对象的状态在它不被任何线程拥有时才有信号,而当它被拥有

时则无信号。互斥体对象适合用来协调多个线程对共享资源的互斥访问,它在同一时刻只能被一个线程占用。

相关API:

CreateMutex:创建一个互斥对象,返回对象句柄。

OpenMutex:打开并返回一个已存在的互斥对象句柄,用于后续访问。 ReleaseMutex:释放对互斥体对象的占用,使之成为可用。

关于windows的进程和线程设计的讲义,给力呀。。。。

线程的同步和互斥

临界区对象(CriticalSection)

临界区对象只能用于同一进程的线程之间共享资源处理,同一进程内

各线程对它的访问是互斥进行的。把变量类型说明为

CRITICAL_SECTION,就可作为临界区使用。

相关API:

InitializeCriticalSection:对临界区对象进行初始化。

EnterCriticalSection:等待占用临界区的使用权,得到使用权时返回。 LeaveCriticalSection:释放临界区的使用权。

DeleteCriticalSection:释放与临界区对象相关的所有系统资源。

关于windows的进程和线程设计的讲义,给力呀。。。。

线程的同步和互斥

用户级等待同步函数

WIN32提供了一组能使线程阻塞其自身执行的等待函数。线程调用函

数而被阻塞,知道函数参数中的一个或多个同步对象产生了信号,或者阻塞超过了规定的等待时间才会返回。在等待函数未返回时,线程处于等待状态,此时线程只消耗很少的CPU时间。使用等待函数既可以保证线程的同步,又可以提高程序的运行效率。最常用的等待函数是用户级等待同步函数:

WaitForSingleObject与WaitForMultipleObjects。

WaitForSingleObject可以用来监测单个同步对象。

WaitForMultipleObjects可以用来监测单个同步对象。

…… 此处隐藏:1289字,全部文档内容请下载后查看。喜欢就下载吧 ……
Windows进程与线程实验.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1418477.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)