操作系统进程管理论文

操作系统进程管理论文

问:研究windows操作系统的进程的管理并试比较linux操作系统进程的管理的异同点
  1. 答:以下引自:Linux操作系统下的多进程编程
    WIN32里的进程/线程是继承自OS/2的。在WIN32里,"进程"是指一个程序,而"线程"是一个"进程"里的一个执行"线索"。从核心上讲,WIN32的多进程与Linux并无多大的区别,在WIN32里的线程才相当于Linux的进程,是一个实际正在执行的代码。但是,WIN32里同一个进程里各个线程之间是共享数据段的。这才是与Linux的进程最大的不同。
    在WIN32下,使用CreateThread函数创建线程,与Linux下创建进程不同,WIN32线程不是从创建处开始运行的,而是由CreateThread指定一个函数,线程就从那个函数处开始运行。此程序同前面的UNIX程序一样,由两个线程各打印1000条信息。threadID是子线程的线程号,另外,全局变量g是子线程与父线程共享的,这就是与Linux最大的不同之处。大家可以看出,WIN32的进程/线程要比Linux复杂,在Linux要实现类似WIN32的线程并不难,只要fork以后,让子进程调用ThreadProc函数,并且为全局变量开设共享数据区就行了,但在WIN32下就无法实现类似fork的功能了。所以现在WIN32下的C语言编译器所提供的库函数虽然已经能兼容大多数Linux/UNIX的库函数,但却仍无法实现fork。
    对于多任务系统,共享数据区是必要的,但也是一个容易引起混乱的问题,在WIN32下,一个程序员很容易忘记线程之间的数据是共享的这一情况,一个线程修改过一个变量后,另一个线程却又修改了它,结果引起程序出问题。但在Linux下,由于变量本来并不共享,而由程序员来显式地指定要共享的数据,使程序变得更清晰与安全。至于WIN32的"进程"概念,其含义则是"应用程序",也就是相当于UNIX下的exec了。
  2. 答:户接口工具
    这个图片是我自己画的简单的操作系统构架图
    windows将图形界面嵌入到内核中,所以更适合作为桌面机使用。
    而linux则偏向于做为服务器较色,因为linux是开源的,所以更多的是被应用于开发和测试环境,真正实际使用环境大多还是unix,当然除非你们公司有很强的技术实力自行制定内核,像google这种
    linux 的 shell 类似于 windows 的CMD
    只是一个命令行接口,用于用户和内核去沟通的工具,就像你用鼠标点击一样的道理。
    内核则下达二进制的命令道硬件,然后硬件执行操作。
    如果再要深入研究什么是linux,就是内核开发问题了。暂时还没那技术能力,回答不了你。
    请参考,希望能帮到你。
问:操作系统—进程管理
  1. 答:signal(full)操作即V(full),full+1,习惯上用V()更好,因为更简短。
    如果缺少了signal(full),会导致当消费者程序把缓冲区中的产品全部取走时,full为0,但是生产者程序生产了的产品放进缓冲区,却不能改变full的值,进而导致消费者程序阻塞,缓冲区满后,生产者也阻塞。
    同理,如果缺少了signal(empty),当消费者向缓冲区存入max{empty}个数据后,会导致生产者不能向缓冲区存入数据,缓冲区空后,消费者也阻塞。
  2. 答:很无厘头的问题,这是初中的政治?。
问:关于计算机操作系统的进程管理
  1. 答:25个
    假设只有24个资源R,则有可能发生这样的死锁情况:
    每个进程都有4个R,都要求第5个R,而这时系统没有资源R了,那么任何一个进程都无法继续,也就无法释放自己已经申请的资源R,死锁。
    反之如果有25个,则可以满足其中一个进程,该进程执行完后,释放资源,其他进程可继续执行完。
操作系统进程管理论文
下载Doc文档

猜你喜欢