随笔分类 - 操作系统原理
摘要:7.交互系统的调度算法时间片轮转调度算法(Round-Robin Scheduling) 时间片轮换调度算法是最古老、最简单、最公平并且使用最广泛的调度算法之一。每个进程被分配一段时间间隔,叫做时间片(quantum)。进程在这个时间间隔内允许运行,如果时间片用完了,那么CPU将会被抢占并且分给别的进程。如果在时间片结束之前,进程阻塞或者是结束了,那么CPU也会被分配给别的进程。调度器需要做的,就是要维护一个可运行程序的列表。如下图a所示。当一个进程的时间片结束了,那么这个进程会被放到这个列表的尾部,如图b所示。对于这种调度算法来说,一个比较重要的议题是时间片的长度设置为多少比较合理。从...
        阅读全文
                
摘要:很多时候,进程需要和其他的进程进行通信。比如shell中的管道命令:ps -ef | grep nginx,一个命令的输出,作为另一个进程的输入,这就是进程间通信(Interprocess Communication)。 进程间通信主要需要解决三个问题: 1.一个进程如何给另一个进程传递信息 2.如何确保进程之间不互相干扰、妨碍 3.当进程间出现依赖关系时,该如何处理。 尽管这里讨论的是进程之间的通信,但其实对于线程来说,他们之间的通信需要解决后两个问题。由于多个线程处在相同的进程,因此也处在同一个地址空间中,所以第一个问题自然很好解决。但是第二个、第三个问题还是存在的,当然解决...
        阅读全文
                
摘要:如果计算机支持多道程序设计,那么它会经常碰到多个进程或者线程在同一时刻竞争CPU。只要当两个进程同时进入就绪状态,这种情况就会发生。但是CPU只有一个,那么这时候就需要做一个选择:到底接下来该选择哪个进程运行。操作系统做这个选择的部分就叫做调度器(scheduler),而使用到的算法叫做调度算法(scheduling algorithm)。 很多对进程调度使用的东西对于线程调度同样适用。如果线程是内核管理的线程,那么调度的单位就是线程,而不管这个线程属于哪个进程。 1.调度简介 在以前还是批处理系统的时候,调度算法非常简单:无非是运行磁带上下一个作业(job)而已。但是对于多道程序设...
        阅读全文
                
                    
                
浙公网安备 33010602011771号