预计阅读本页时间:-
2.7 小结
为了隐蔽中断的影响,操作系统提供了一个由并行运行的顺序进程组成的概念模型。进程可以动态地创建和终止。每个进程都有自己的地址空间。
对于某些应用而言,在一个进程中使用多个控制线程是有益的。这些线程被独立调度,每个线程有自己的堆栈,但是在一个进程中的所有线程共享一个公共地址空间。线程可以在用户空间或内核中实现。
进程之间通过进程间通信原语彼此通信,如信号量、管程或消息。这些原语用来确保同一时刻不会有两个进程在临界区中,免除了出现混乱的情形。进程可以处在运行、可运行或阻塞状态,并且在该进程或其他进程执行某个进程间通信原语时,可以改变其状态。线程间通信也是类似的。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
进程间通信原语可以用来解决诸如生产者-消费者问题、哲学家就餐问题和读者-写者问题等。即便有了这些原语,也要仔细设计以避免出错和死锁。
已经有一大批研究出来的调度算法。某些算法主要用于批处理系统中,如最短作业优先调度算法。其他算法常用在批处理系统和交互式系统中,它们包括轮转调度、优先级调度、多级队列、保证调度、彩票调度以及公平分享调度等。有些系统将调度策略和调度机制清晰地分离,这样可以使用户对调度算法进行控制。