Windows进程与线程实验
关于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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [法律文档]苏教版七年级语文下册第五单元教学设计
- [法律文档]向市委巡视组进点汇报材料
- [法律文档]绵阳市2018年高三物理上学期第二次月考
- [法律文档]浅析如何解决当代中国“新三座大山”的
- [法律文档]延安北过境线大桥工程防洪评价报告 -
- [法律文档]激活生成元素让数学课堂充满生机
- [法律文档]2014年春学期九年级5月教学质量检测语
- [法律文档]放射科标准及各项计1
- [法律文档]2012年广州化学中考试题和答案(原版)
- [法律文档]地球物理勘查规范
- [法律文档]《12系列建筑标准设计图集》目录
- [法律文档]2018年宁波市专技人员继续教育公需课-
- [法律文档]工会委员会工作职责
- [法律文档]2014新版外研社九年级英语上册课文(完
- [法律文档]《阅微草堂笔记》部分篇目赏析
- [法律文档]尔雅军事理论2018课后答案(南开版)
- [法律文档]储竣-13827 黑娃山沟大开挖穿越说明书
- [法律文档]《产品设计》教学大纲及课程简介
- [法律文档]电动吊篮专项施工方案 - 图文
- [法律文档]实木地板和复合地板的比较
- 探析如何提高电力系统中PLC的可靠性
- 用Excel函数快速实现体能测试成绩统计
- 教师招聘考试重点分析:班主任工作常识
- 高三历史选修一《历史上重大改革回眸》
- 2013年中山市部分职位(工种)人力资源视
- 2015年中国水溶性蛋白市场年度调研报告
- 原地踏步走与立定教学设计
- 何家弘法律英语课件_第十二课
- 海信冰箱经销商大会——齐俊强副总经理
- 犯罪心理学讲座
- 初中英语作文病句和错句修改范例
- 虚拟化群集部署计划及操作流程
- 焊接板式塔顶冷凝器设计
- 浅析语文教学中
- 结构力学——6位移法
- 天正建筑CAD制图技巧
- 中华人民共和国财政部令第57号——注册
- 赢在企业文化展厅设计的起跑线上
- 2013版物理一轮精品复习学案:实验6
- 直隶总督署简介




