1、试解释操作系统原理中的作业、进程、管程的各自定义。
作业:用户在一次解题或者食物处理过程中要求计算机所做工作的集合。它包括用户程序所需的数据以及控制命令。作业是由一系列的步骤组成。
进程:一个程序在一个数据集合上的一次运行。所以一个程序在不同数据集合上的运行是不同的线程,一个程序在同一个数据集合上的多次运行都是不同的进程。
线程:是进程中的一个实体,是被系统独立调度和执行的基本单位。
管程:管程实际上定义了一个数据结构和在这个数据结构上能为并啊进程所执行的一组操作。这组操作能够同步进程和改变管程中的数据。
2、进程间的通信如何实现?
现在常用的进程间的通信方式有信号、信号量、消息队列、共享内存。所谓进程通信,就是不同进程之间的“接触”。这种接触有简单的也有复杂的。机制不同复杂程度也不同。通信是一个广义上的意义,不仅仅指传递一些message。它们的使用方法基本一致,所以只要掌握了一种使用方法,记住其他方法即可。信号和信号量是不同的,虽然它们都可以实现同步和互斥。但是前者是通过信号处理器实现的,后者是通过PV操作进行的。消息队列是比较高级的通信方式, 因为它真的可以在进程间传递message。
一个消息队列可以被多个进程共享,如果一个进程的消息过多,可以用多个消息队列。共享消息队列的进程所发送的消息中除了message以外,还有一个标志。这个标志说明了,该消息由哪个或哪类进程共享,每一个共享消息队列的进程针对这个队列也有自己的标志,可以用来生命自己的身份。
3、在windows编程中互斥器和作用临界区的区别?
互斥器实现的是进程间的通信,临界区实现的是线程间的通信。