进程执行模式与进程间通讯
执行模式 指令分为 特权指令 (只能由操作系统内核使用的指令)和 非特权指令 (只能由用户程序使用的指令),因为指令有特权和非特权之分,所以 CPU 也分为 2 种执行模式: 系统态 (可以执行所有指令,使用所有资源以及改变 CPU 状态)和 用户态 (只能执行非特权指令)。 CPU 的系统态和用户态之间的切换。 进程间通讯 当进程之间需要数据传输、共享数据时,进程间就需要互相通讯,通讯方式有如下几种,这里只是简单概括一下,不展开讲,咱的重点在于多线程,进程咱们简单了解一下就可以,感兴趣的同学可以根据要点进行深入学习。 管道(Pipe) 管道是半双工通讯,数据是单向流动,要建立进程间互相通讯,则需要 2 个管道,这种通讯方式只能在亲戚关系的进程间使用,比如父子进程。 流管道(Flow Pipe) 流管道是管道进化来的,数据不再是单向流动,可以双向流动,但是依旧是只能在亲戚关系的进程间使用。 有名管道(Named Pipe) 有名管道提供了新的功能,就是给管道设置名字,它改善了上面 2 种管道通讯方式,支持了非亲戚关系的进程通讯。 信号量(Semophore) 信号量相当于计数器,利用它来控制多个进程访问共享资源,当一个进程A在访问共享资源时,信号量防止其他进程来访问,只有当进程A不访问共享资源了,其他进程才能访问。 信号(Signal) 信号可以在任何时候发给某一进程