简述操作系统中的作业、进程、线程、管程

来源:互联网 发布:中国银行安全控件mac 编辑:程序博客网 时间:2024/05/17 22:50

作业:用户在一次解题或者一个事务处理过程中要求计算机系统所做工作的集合,它包括用户程序、所需数据及控制命令等,作业是由一系列有序的步骤组成的。

进程:一个程序在一个数据集合上的一次运行过程。所以一个程序在不同数据集合上运行,乃至一个程序在相同数据集合上的多次运行都是不同的进程。

线程:线程是进城中的一个实体,是被系统独立调度和执行的基本单位。

管程:管程实际上是定义了一个数据结构和在该数据结构上的能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。

管程由四部分组成:

1.管程的名称;
2.局部于管程内部的共享数据结构说明;
3.对该数据结构进行操作的一组过程;
4.对局部于管程内部的共享数据设置初始值的语句。
局部于管程的数据结构,只能被局部于管程的过程所访问,任何管程之外的过程都不能访问它;反之,局部于管程的过程也只能访问管程内的数据结构。由此可见,管程相当于围墙,它把共享变量和对它进行操作的若干个过程围了起来,所有进程要访问临界资源时,都必须经过管程才能进入,而管程每次只允许一个进程进入管程,从而实现了进程的互斥。
管程的条件变量:条件变量是在管程内部的数据结构,且只有在管程内才能被访问,它对管程内所有过程是全局的,只能通过wait(),signal()两个操作访问。
wait():挂起调用进程并释放管程,直至另一进程在条件变量上执行signal()。
signal():如果有其他进程因对条件变量执行wait()而被挂起,便释放之,如果没有进程等待,则信号被忽略,不保存。

0 0
原创粉丝点击