操作系统
一起荡起双桨
这个作者很懒,什么都没留下…
展开
-
什么是非抢占式和抢占式调度方式?抢占式调度方法和非抢占式调度方法有哪些?
非抢占式方式:在采用这种调度方式时,一旦把处理机分配给某进程后,就一直让它运行下去,决不会因为时钟中断或任何其它原因去抢占当前正在运行进程的处理机,直至该进程完成,或发生某事件而被阻塞时,才把处理机分配给其它进程。非抢占式调度方法有:先来先服务(每次调度是从就绪的进程队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后,进程调度程序才将处理机分配给其它进程),短作业优先,非抢占式优先级调度,高响应比优先调度算法抢占式方式:这种调度程序根据某种原则,去原创 2021-12-29 12:07:33 · 14023 阅读 · 0 评论 -
怎么避免死锁?
1、判断“系统安全状态”法在进行系统资源分配之前,先计算此次资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程; 否则,让进程等待。所谓安全状态是指系统能按某种进程推进顺序(P1,P2,P3,…Pn)为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都顺利地完成。此时称(P1,P2,…,Pn)为安全序列。2、银行家算法1、申请的贷款额度不能超过银行现有的资金总额2、分批次向银行提款,但是贷款额度不能超过一开始最大需求量的总额3、暂时不能满足客户申请原创 2021-12-25 18:57:41 · 343 阅读 · 0 评论 -
什么是死锁
如果⼀个进程集合中的每⼀个进程都在等待只能由该进程集合中的其他进程才能引发的事件,那么,该进程集合就是死锁;所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 因此我们举个例子来描述,如果此时有一个线程A,按照先锁a再获得锁b的的顺序获得锁,而在此同时又有另外一个线程B,按照先锁b再锁a的顺序获得锁;...原创 2021-12-25 15:49:53 · 91 阅读 · 0 评论 -
死锁产生的必要条件
互斥条件:每个资源要么已经分配给⼀个进程,要么就是可⽤的,即在一段时间内某资源仅为一进程所占用。请求和保持条件:已经得到了某个资源的进程可以再请求新的资源,当进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件:进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时由自己释放。环路等待条件:死锁发⽣时,系统中⼀定有由两个或两个以上的进程组成的⼀条环路,该环路中的每个进程都在等待着下⼀个进程所占有的资源。...原创 2021-12-25 16:24:59 · 157 阅读 · 0 评论 -
产生死锁的原因
可归结为如下两点:a. 竞争资源产生死锁中的竞争资源之一指的是竞争不可剥夺资源(例如:系统中只有一台打印机,可供进程P1使用,假定P1已占用了打印机,若P2继续要求打印机打印将阻塞、 系统中只有一台打印机R1和一台磁带机R2,可供进程P1和P2共享。假定PI已占用了打印机R1,P2已占用了磁带机R2,若P2继续要求打印机R1,P2将阻塞;P1若又要求磁带机,P1也将阻塞。于是,在P1和P2之间就形成了僵局,两个进程都在等待对方释放自己所需要的资源,但是它们又都因不能继续获得自己所需要的资源而不能继续推进原创 2021-12-25 16:17:48 · 413 阅读 · 0 评论 -
进程间的通信方式有哪些?
进程间通信常见方式如下:管道FIFO消息队列信号量共享内存UNXI域套接字套接字(Socket)管道管道是一种古老的IPC通信形式。它的特点:1.它是半双工的,具有固定的读端和写端;2.它只能用于父子进程或者兄弟进程之间的进程的通信;3.它可以看成是一种特殊的文件,对于它的读写也可以使用普通的 read、write 等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存中。命名管道FIFO 可以在无关的进程之间交换数据,与无名管道不同;FIFO 有路径名与之原创 2021-12-17 16:02:29 · 5910 阅读 · 0 评论 -
进程的调度算法
1、批处理系统中的调度(1)先来先服务:⾮抢占式的调度算法,按照请求的顺序进⾏调度。有利于⻓作业,但不利于短作业,因为短作业必须⼀直等待前⾯的⻓作业执⾏完毕才能执⾏,⽽⻓作业⼜需要执⾏很⻓时间,造成了短作业等待时间过⻓。(2)最短作业优先:⾮抢占式的调度算法,按估计运⾏时间最短的顺序进⾏调度。⻓作业有可能会饿死,处于⼀直等待短作业执⾏完毕的状态。因为如果⼀直有短作业到来,那么⻓作业永远得不到调度。(3)最短剩余时间优先:最短作业优先的抢占式版本,按剩余运⾏时间的顺序进⾏调度。当⼀个新的作业原创 2021-12-17 16:25:32 · 232 阅读 · 0 评论 -
进程与线程的区别?
(1)调度:进程是资源分配的最小单位,而线程是 CPU 调度的最小单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.(4)系统开销:创建进程或撤销进程,系统都要为之分配或回收资源,操作系统开销远大于创建或撤销线程时的开销;(5)地址空间:不同进程地址空间相互独立,同一进程内的线程共享同一地址空间。一个进程的线程在另一个进程内是不可见的;...原创 2021-12-11 21:42:53 · 213 阅读 · 0 评论 -
什么是进程和线程
进程:1、用户角度: 进程是程序的一次动态执行过程;2、操作系统: 进程是系统进行资源分配和调度的一个独立单位,是系统中的并发执行的单位;每个进程都拥有独立的地址空间;一个进程可以拥有多个线程;一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。线程:线程是进程的一个实体,也是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,有时又被称为轻权进程或轻量级进程。...原创 2021-12-11 21:11:13 · 432 阅读 · 0 评论 -
什么是同步、异步、阻塞、非阻塞
同步是指:当程序1调用程序2时,程序1停下不动,直到程序2完成回到程序1来,程序1才继续执行下去。异步是指:当程序1调用程序2时,程序1继续执行自己的下一个动作,不受程序2的的影响。也可以说是程序2的结果是程序1主动去发现的,还是程序2通过通知或者回调来告诉程序1的阻塞:A调用B ,A一直等着B的返回,别的事情什么也不干,就是说当前线程会被挂起,即阻塞。非阻塞:A调用B,A不用一直等着B的返回,可以先去忙别的事情了,即B的调用结果没返回,也不会阻塞当前线程...原创 2021-12-11 20:36:19 · 1527 阅读 · 0 评论