操作体系知识点梳理
进程和线程的差异联络
进程和线程的关系:
(1)一个线程只能属于一个进程,而一个进程能够有多个线程,但至少有一个线程。
(2)资源分配给进程,同一进程的一切线程同享该进程的一切资源。
(3)线程在履行过程中,需要协作同步。不同进程的线程间要运用音讯通讯的办法完结同步。
(4)线程是指进程内的一个履行单元,也是进程内的可调度实体。
线程与进程的差异:
(1)线程作为调度和分配的基本单位,进程作为具有资源的基本单位。
(2)体系在运转的时分会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,体系不会为线程分配内存(线程所运用的资源来自其所属进程的资源),线程组之间只能同享资源。
(3)在操作体系中能一起运转多个进程(程序);而在同一个进程(程序)中有多个线程一起履行(经过CPU调度,在每个时刻片中只有一个线程履行)
(4)每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开支;线程能够看做轻量级的进程,同一类线程同享代码和数据空间,每个线程都有自己独立的运转栈和程序计数器(PC),线程之间切换的开支小。
线程调度
线程调度:依照特定机制为多个线程分配CPU的运用权。
有两种调度模型:
分时调度:一切线程平分cpu的时刻片,轮番占用CPU
抢占式调度:依据优先级占用CPU
调度算法:依据体系的资源分配战略所规则的资源分配算法
(1)时刻片轮转法
在早期的时刻片轮转法中,体系将一切的安排妥当进程按先来先服务的原则排成一个行列,每次调度时,把CPU分配给队首进程,并令其履行一个时刻片。时刻片的大小从几ms到几百ms。当履行的时刻片用完时,由一个计时器宣布时钟中断恳求,调度程序便据此信号来停止该进程的履行,并将它送往安排妥当行列的结尾;然后,再把处理机分配给安排妥当行列中新的队首进程,一起也让它履行一个时刻片。这样就能够确保安排妥当行列中的一切进程在一给定的时刻内均能获得一时刻片的处理机履行时刻。换言之,体系能在给定的时刻内呼应一切用户的恳求。
(2)高呼应比优先调度算法
在批处理体系中,短作业优先算法是一种比较好的算法,其首要的不足之处是长作业的运转得不到确保。假如我们能为每个作业引进前面所述的动态优先权,并使作业的优先级随着等候时刻的添加而以速率a进步,则长作业在等候一定的时刻后,必定有机会分配到处理机。该优先权的改变规则可描绘为:
呼应比=(等候时刻+服务时刻)/服务时刻
依据公式可知:
当作业的等候时刻相一起,则要求服务时刻越短,其呼应比越高,有利于短作业。
当要求服务时刻相一起,作业的呼应比由其等候时刻决定,等候时刻越长,其呼应比越高,因而它完结的是先来先服务。
对于长作业,作业的呼应比能够随等候时刻的添加而进步,当其等候时刻足够长时,其呼应比便可升到很高,然后也可获得处理机。克服了饥饿状态,兼顾了长作业。
(3)先来先服务算法
先来先服务(FCFS)调度算法是一种最简略的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中选用该算法时,每次调度都是从后备作业行列中挑选一个或多个最早进入该行列的作业,将它们调入内存,为它们分配资源、创立进程,然后放入安排妥当行列。在进程调度中选用FCFS算法时,则每次调度是从安排妥当行列中挑选一个最早进入该行列的进程,为之分配处理机,使之投入运转。该进程一向运转到完结或发作某事情而堵塞后才抛弃处理机。
(4)最短优先调度算法
最短优先调度算法是指对短作业或短进程优先调度的算法。它们能够分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备行列中挑选一个或若干个估计运转时刻最短的作业,将它们调入内存运转。而短进程优先(SPF)调度算法则是从安排妥当行列中选出一个估计运转时刻最短的进程,将处理机分配给它,使它立即履行并一向履行到完结,或发作某事情而被堵塞抛弃处理机时再重新调度。
Linux进程间通讯(IPC)
(1)管道(Pipe)
管道包括三种:
①普通管道PIPE:一般有两种约束,一是单工,只能单向传输;二是只能在父子或许兄弟进程间运用.
②流管道s_pipe:去除了第一种约束,为半双工,只能在父子或兄弟进程间运用,能够双向传输.
③命名管道:name_pipe:去除了第二种约束,能够在许多并不相关的进程之间进行通讯.
(2)音讯行列(messagequeue)
①音讯行列能够认为是一个大局的一个链表,链表节点钟存放着数据报的类型和内容,有音讯行列的标识符进行标记。
②音讯行列答应一个或多个进程写入或许读取音讯。
③音讯行列的生命周期随内核。
④音讯行列可完结双向通讯。
(3)同享内存(sharedmemory)
同享内存便是映射一段能被其他进程所访问的内存,这段同享内存由一个进程创立,但多个进程都能够访问。同享内存是最快的IPC方法,它是针对其他进程间通讯方法运转功率低而专门设计的。它往往与其他通讯机制,如信号两两合作运用,来完结进程间的同步和通讯。
(4)信号(sinal)
信号是一种比较复杂的通讯方法,用于告诉接纳进程某个事情已经发作。
(5)套接字(socket)
套接字也是一种进程间通讯机制,与其他通讯机制不同的是,它可用于不同机器间的进程通讯。
(6)信号量(semophore)
信号量是一个计数器,能够用来控制多个进程对同享资源的访问。它常作为一种锁机制,避免某进程正在访问同享资源时,其他进程也访问该资源。因而,首要作为进程间以及同一进程内不同线程之间的同步手段。
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com