windows操作系统的同步机制

最近看了下windows核心编程,虽然是比较老的书,但是感觉还是蛮有用的,顺便复习了一些操作系统的知识,比如本文的进程同步机制

用户模式下的线程同步

线程之间需要通信:

1.需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性

2.一个线程需要通知其他线程某项任务已经完成

方法一:原子访问:Interlocked系列函数

InterlockedExchangeAdd(long & ,int );

InterlockedIncrement;

InterlockedExchange;(实现旋转锁是有用)

必须保证传给这些函数的变量地址是对齐的,否则函数可能失败

interlockde函数不需要在内核模式与用户模式之间切换

旋转锁:禁用线程优先级提升

多处理器的机器旋转锁比较有用,

关键段:先循环一定次数,如果还是无法访问,线程切换至内核模式,直到资源可用

interlockedcompareexchange

方法二:关键段

CRITICAL_SECTION g_cs;

EnterCriticalSection(&g_cs)

LeaveCrititalSection(&g_cs)

关键段无法在多个进程之间对线程同步

方法三:Slim读/写锁

和关键段相似,但是区分读取线程和写入线程

SRWLOCK

用内核对象进行线程同步

在进程内核对象内部有一个布尔变量,当系统创建内核对象的时候会把这个变量的值初始化为false(未触发),当进程终止时,操作系统会把相应的内核对象中的值设置为true,表示已经触发。

等待函数:WaitForSingleObject(HANDLE,DWORD)

WaitForMultipleObjects(DWORD,CONST HANDLE* ,BOOL,DWORD)

事件内核对象

让一个线程执行初始化工作,然后出发另一个线程,让它执行余下的工作

createEvent()

OpenEvent()

SetEvent()//触发时

ResetEvetn()

可等待的计数器内核对象

createWaitableTimer()

OpenwaitableTimer()

SetWaitableTimer()//触发时

信号量

互斥量

(0)

相关推荐

  • Windows8系统设置同步(Windows设置同步.应用同步等)图文教程

    Windows设置同步 在Windows8中要想登录到系统中默认需要一个账户,账户类型有两种,一种是本地新创建的账户,另一种就是新的Microsoft帐户了。如果用本地账户登录的话不会将设置在你使用的 ...

  • Windows操作系统的安全模式

    对于Windows操作系统的安全模式,经常使用电脑的朋友肯定不会感到陌生,安全模式是Windows用于修复操作系统错误的专用模式,是一种不加载任何驱动的最小系统环境,用安全模式启动电脑,可以方便用户排 ...

  • Windows在与time.windows.com同步时出错?

    相信很多人在使用Windows系统同步桌面左下角时间的时候,都会有遇到"Windows在与time.windows.com同步时出错"的提示,其实这个出错的原因是没有将Window ...

  • 同步机制:互斥锁、读写锁、信号量锁、条件变量

    当两个或多个并发线程的执行次序错乱,造成了意想不到的错误结果时,"竞争"就会产生.防止"竞争"的一个方法是使用同步机制,对访问"共享资源"的 ...

  • Windows操作系统的发展历程

    windows操作系统的发展很快,先在讲一下windows操作系统是怎样发展过来的. 操作方法 01 Windows1.0是由微软在1983年11月宣布,并在两年后(1985年11月)发行的. 02 ...

  • Windows操作系统的几种文件系统

    Windows3.x和MS-DOS一直使用的是文件分配表(FAT)系统;Windows95使用的是扩展FAT文件系统;WindowsNT文件系统则在继续支持16位文件系统的同时,还支持两种32位的文件 ...

  • Zune软件教程 Windows Phone同步攻略

    操作方法 01 不同手机操作系统有各自的特点,尽管在用户体验上有相通之处,但对用户来说接触一个全新的手机操作系统终究需要了解其特点带来的不同之处.作为三大移动设备操作系统之一的Windows Phon ...

  • 微软不使用Windows9反而使用Windows10命名下一代Windows操作系统的真相

    近日,微软对外首次介绍并提供了Windows 10操作系统的预览。此次“预览会”,最令人吃惊的消息是Windows 8之后的下一代操作系统,不叫Windows 9,而是直接命名为Windows 10。 ...

  • 删除Windows 8同步到云端的个人设置

    当使用Microsoft帐户登录windows8时,用户的某些系统和应用设置将存储在云中,并与运行win8的电脑之间实现同步。那大家有没有想过,如果想删除云端中的这些设置,要如何操作呢? 来看看微软的 ...