进程描述与控制随笔
进程控制块:标识符,状态,优先级,程序计数器,内存指针,上下文数据,I/O状态信息,记账信息
进程控制块是操作系统能够支持多进程和提供多处理的关键工具。可以说,进程是由程序代码和相关数据还有进程控制块组成。
模式切换与进程切换不同,发生模式切换可以不改变正处于运行态的进程状态,在这种情况下,保存上下文环境和以后恢复上下文环境只需要很少的开销。
为执行进程管理功能,操作系统维护者对每个进程的描述,或者称为进程映像,它包括执行进程的地址空间和一个进程控制块。
一个正在运行的进程可能被一个在进程外发生且被处理器识别的中断事件打断,或者被执行操作系统的系统调用打断。不论哪种情况,处理器都执行一次模式切换,把控制转交给操作系统例程。
用户级线程相对于内核级线程有两个明显的缺点:
1>在典型的操作系统中,许多系统调用都会引起阻塞。因此,当用户级线程执行一个系统调用时,不仅这个线程会被阻塞,进程中的所有线程都会被阻塞。
2>在纯粹的用户级线程策略中,一个多线程应用不能利用多处理技术。
可以通过把应用程序写成一个多进程程序而不是多线程程序来解决这两个问题。另一种克服线程阻塞问题的方法是使用一种称作jacketing的技术。jacketing的目标是把一个产生阻塞的系统调用转化为一个非阻塞的系统调用。
用户级线程和内核级线程之间,内核级线程和进程之间都有一个数量级以上的性能差距。
如果应用程序中的大多数线程切换都需要内核态的访问,那么基于用户级线程的方案不会比基于内核级线程的方案好多少。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。