最近开始看操作系统的书(本身不是这个方向的),单看书本管程还是不能完全理解,现在简单总结一下吧。1.管程 (英语:Monitors,也称为监视器) 是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。这些共享资源一般是硬件设备或一群变数。管程实现了 ...
最近开始看操作系统的书(本身不是这个方向的),单看书本管程还是不能完全理解,现在简单总结一下吧。
1.管程 (英语:Monitors,也称为监视器) 是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。这些共享资源一般是硬件设备或一群变数。管程实现了在一个时间点,最多只有一个线程在执行管程的某个子程序。与那些通过修改数据结构实现互斥访问的并发程序设计相比,管程实现很大程度上简化了程序设计系统中的各种硬件资源和软件资源,均可用数据结构抽象地描述其资源特性,即用少量信息和对资源所执行的操作来表征该资源,而忽略了它们的内部结构和实现细节。利用共享数据结构抽象地表示系统中的共享资源,而把对该共享数据结构实施的操作定义为一组过程。
像一个中介站,程序利用共享资源要通过这个的子程序(操作具体共享资源的一个过程,已经将具体硬件软件资源抽象成一种数据结构,对这个过程进行操作相当于使用资源),最多一个线程执行保证互斥。
2.管程的条件变量:条件变量是在管程内部的数据结构,且只有在管程内才能被访问,它对管程内所有过程是全局的,只能通过wait(),signal()两个操作访问。
wait():挂起调用进程并释放管程,直至另一进程在条件变量上执行signal()。
原标题:操作系统:管程理解
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。