当前位置: 首页 > news >正文

住房和城乡建设查询平台北京网站建设seo

住房和城乡建设查询平台,北京网站建设seo,h5教程入门,内涵 网站 源码一、多道程序设计技术(详情参考#xff1a;https://www.cnblogs.com/clschao/articles/9613464.html)所谓多道程序设计技术#xff0c;就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存#xff0c;并允许它们交替在CPU中运行#xff0c;它们共享系统中的各…一、多道程序设计技术(详情参考https://www.cnblogs.com/clschao/articles/9613464.html)所谓多道程序设计技术就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存并允许它们交替在CPU中运行它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时CPU便立即转去运行另一道程序。在A程序计算时I/O空闲 A程序I/O操作时CPU空闲(B程序也是同样)必须A工作完成后B才能进入内存中开始工作两者是串行的全部完成共需时间T1T2。将A、B两道程序同时存放在内存中它们在系统的控制下可相互穿插、交替地在CPU上运行当A程序因请求I/O操作而放弃CPU时B程序就可占用CPU运行这样 CPU不再空闲而正进行A I/O操作的I/O设备也不空闲显然CPU和I/O设备都处于“忙”状态大大提高了资源的利用率从而也提高了系统的效率A、B全部完成所需时间多道程序设计技术不仅使CPU得到充分利用同时改善I/O设备和内存的利用率从而提高了整个系统的资源利用率和系统吞吐量(单位时间内处理作业(程序)的个数)最终提高了整个系统的效率。单处理机系统中多道程序运行时的特点(1)多道计算机内存中同时存放几道相互独立的程序(2)宏观上并行同时进入系统的几道程序都处于运行过程中即它们先后开始了各自的运行但都未运行完毕(3)微观上串行实际上各道程序轮流地用CPU并交替运行。空间上的复用将内存分为几部分每个部分放入一个程序这样同一时间内存中就有了多道程序。时间上的复用当一个程序在等待I/O时另一个程序可以使用cpu如果内存中可以同时存放足够多的作业则cpu的利用率可以接近100%二、分时系统由于CPU速度不断提高和采用分时技术一台计算机可同时连接多个用户终端而每个用户可在自己的终端上联机使用计算机好象自己独占机器一样。分时技术把处理机的运行时间分成很短的时间片按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算则该作业暂时中断把处理机让给另一作业使用等待下一轮时再继续其运行。由于计算机速度很快作业运行轮转得很快给每个用户的印象是好象他独占了一台计算机。而每个用户可以通过自己的终端向系统发出各种操作控制命令在充分的人机交互情况下完成作业的运行。具有上述特征的计算机系统称为分时系统它允许多个用户同时联机使用计算机。特点(1)多路性。若干个用户同时使用一台计算机。微观上看是各用户轮流使用计算机宏观上看是各用户并行工作。(2)交互性。用户可根据系统对请求的响应结果进一步向系统提出新的请求。这种能使用户与系统进行人机对话的工作方式明显地有别于批处理系统因而分时系统又被称为交互式系统。(3)独立性。用户之间可以相互独立操作互不干扰。系统保证各用户程序运行的完整性不会发生相互混淆或破坏现象。(4)及时性。系统可对用户的输入及时作出响应。分时系统性能的主要指标之一是响应时间它是指从终端发出命令到系统予以应答所需的时间。分时系统的主要目标对用户响应的及时性即不至于用户等待每一个命令的处理时间过长。分时系统可以同时接纳数十个甚至上百个用户由于内存空间有限往往采用对换(又称交换)方式的存储方法。即将未“轮到”的作业放入磁盘一旦“轮到”再将其调入内存而时间片用完后又将作业存回磁盘(俗称“滚进”、“滚出“法)使同一存储区域轮流为多个用户服务。多用户分时系统是当今计算机操作系统中最普遍使用的一类操作系统。注意分时系统的分时间片工作在没有遇到IO操作的时候就用完了自己的时间片被切走了这样的切换工作其实并没有提高cpu的效率反而使得计算机的效率降低了。为什么下降了呢因为CPU需要切换并且记录每次切换程序执行到了哪里以便下次再切换回来的时候能够继续之前的程序虽然我们牺牲了一点效率但是却实现了多个程序共同执行的效果这样你就可以在计算机上一边听音乐一边聊qq了。三、进程 (详情参考https://www.cnblogs.com/clschao/articles/9629392.html?tdsourcetags_pctim_aiomsg)1、进程(Process)是计算机中的程序关于某数据集合上的一次运行活动是系统进行资源分配和调度的基本单位是操作系统结构的基础。(在早期面向进程设计的计算机结构中进程是程序的基本执行实体在当代面向线程设计的计算机结构中进程是线程的容器。程序是指令、数据及其组织形式的描述进程是程序的实体。我们自己在python文件中写了一些代码这叫做程序运行这个python文件的时候这叫做进程。)2、狭义定义进程是正在运行的程序的实例(an instance of a computer program that is being executed)。广义定义进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元在传统的操作系统中进程既是基本的分配单元也是基本的执行单元。3、进程的六大特征动态性进程的实质是程序在多道程序系统中的一次执行过程进程是动态产生动态消亡的。并发性任何进程都可以同其他进程一起并发执行独立性进程是一个能独立运行的基本单位同时也是系统分配资源和调度的独立单位异步性由于进程间的相互制约使进程具有执行的间断性即进程按各自独立的、不可预知的速度向前推进结构特征进程由程序、数据和进程控制块三部分组成。多个不同的进程可以包含相同的程序一个程序在不同的数据集里就构成不同的进程能得到不同的结果但是执行过程中程序不能发生改变。六大特征程序是静止的永久的而进程是暂时的。4、进程调度要想多个进程交替运行操作系统必须对这些进程进行调度这个调度也不是随即进行的而是需要遵循一定的法则由此就有了进程的调度算法。进程调度由操作系统完成。四、进程调度要想多个进程交替运行操作系统必须对这些进程进行调度这个调度也不是随即进行的而是需要遵循一定的法则由此就有了进程的调度算法。先来先服务(FCFS)调度算法是一种最简单的调度算法该算法既可用于作业调度也可用于进程调度。FCFS算法比较有利于长作业(进程)而不利于短作业(进程)。由此可知本算法适合于CPU繁忙型作业而不利于I/O繁忙型的作业(进程)。先来先服务调度算法短作业(进程)优先调度算法(SJ/PF)是指对短作业或短进程优先调度的算法该算法既可用于作业调度也可用于进程调度。但其对长作业不利不能保证紧迫性作业(进程)被及时处理作业的长短只是被估算出来的。短作业优先调度算法时间片轮转(Round RobinRR)法的基本思路是让每个进程在就绪队列中的等待时间与享受服务的时间成比例。在时间片轮转法中需要将CPU的处理时间分成固定大小的时间片例如几十毫秒至几百毫秒。如果一个进程在被调度选中之后用完了系统规定的时间片但又未完成要求的任务则它自行释放自己所占有的CPU而排到就绪队列的末尾等待下一次调度。同时进程调度程序又去调度当前就绪队列中的第一个进程。显然轮转法只能用来调度分配一些可以抢占的资源。这些可以抢占的资源可以随时被剥夺而且可以将它们再分配给别的进程。CPU是可抢占资源的一种。但打印机等资源是不可抢占的。由于作业调度是对除了CPU之外的所有系统硬件资源的分配其中包含有不可抢占资源所以作业调度不使用轮转法。在轮转法中时间片长度的选取非常重要。首先时间片长度的选择会直接影响到系统的开销和响应时间。如果时间片长度过短则调度程序抢占处理机的次数增多。这将使进程上下文切换次数也大大增加从而加重系统开销。反过来如果时间片长度选择过长例如一个时间片能保证就绪队列中所需执行时间最长的进程能执行完毕则轮转法变成了先来先服务法。时间片长度的选择是根据系统对响应时间的要求和就绪队列中所允许最大的进程数来确定的。在轮转法中加入到就绪队列的进程有3种情况一种是分给它的时间片用完但进程还未完成回到就绪队列的末尾等待下次调度去继续执行。另一种情况是分给该进程的时间片并未用完只是因为请求I/O或由于进程的互斥与同步关系而被阻塞。当阻塞解除之后再回到就绪队列。第三种情况就是新创建进程进入就绪队列。如果对这些进程区别对待给予不同的优先级和时间片从直观上看可以进一步改善系统服务质量和效率。例如我们可把就绪队列按照进程到达就绪队列的类型和进程被阻塞时的阻塞原因分成不同的就绪队列每个队列按FCFS原则排列各队列之间的进程享有不同的优先级但同一队列内优先级相同。这样当一个进程在执行完它的时间片之后或从睡眠中被唤醒以及被创建之后将进入不同的就绪队列。时间轮片调度前面介绍的各种用作进程调度的算法都有一定的局限性。如短进程优先的调度算法仅照顾了短进程而忽略了长进程而且如果并未指明进程的长度则短进程优先和基于进程长度的抢占式调度算法都将无法使用。而多级反馈队列调度算法则不必事先知道各种进程所需的执行时间而且还可以满足各种类型进程的需要因而它是目前被公认的一种较好的进程调度算法。在采用多级反馈队列调度算法的系统中调度算法的实施过程如下所述。(1) 应设置多个就绪队列并为各个队列赋予不同的优先级。第一个队列的优先级最高第二个队列次之其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同在优先权愈高的队列中为每个进程所规定的执行时间片就愈小。例如第二个队列的时间片要比第一个队列的时间片长一倍……第i1个队列的时间片要比第i个队列的时间片长一倍。(2) 当一个新进程进入内存后首先将它放入第一队列的末尾按FCFS原则排队等待调度。当轮到该进程执行时如它能在该时间片内完成便可准备撤离系统如果它在一个时间片结束时尚未完成调度程序便将该进程转入第二队列的末尾再同样地按FCFS原则等待调度执行如果它在第二队列中运行一个时间片后仍未完成再依次将它放入第三队列……如此下去当一个长作业(进程)从第一队列依次降到第n队列后在第n 队列便采取按时间片轮转的方式运行。(3) 仅当第一队列空闲时调度程序才调度第二队列中的进程运行仅当第1(i-1)队列均空时才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时又有新进程进入优先权较高的队列(第1(i-1)中的任何一个队列)则此时新进程将抢占正在运行进程的处理机即由调度程序把正在运行的进程放回到第i队列的末尾把处理机分配给新到的高优先权进程。多级反馈调度四、并发和并行通过进程之间的调度也就是进程之间的切换我们用户感知到的好像是两个视频文件同时在播放或者音乐和游戏同时在进行那就让我们来看一下什么叫做并发和并行并发是伪并行即看起来是同时运行。单个cpu多道技术就可以实现并发(并行也属于并发)并行同时运行只有具备多个cpu才能实现并行五、同步、异步、阻塞、非阻塞(详情参考https://www.cnblogs.com/clschao/articles/9629392.html?tdsourcetags_pctim_aiomsg)1、进程三态(1)就绪(Ready)状态当进程已分配到除CPU以外的所有必要的资源只要获得处理机便可立即执行这时的进程状态称为就绪状态。(2)执行/运行(Running)状态当进程已获得处理机其程序正在处理机上执行此时的进程状态称为执行状态。(3)阻塞(Blocked)状态正在执行的进程由于等待某个事件发生而无法执行时便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种例如等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。六、python 进程1、创建进程的两种方法方法一from multiprocessing importProcess#定义执行函数deffunc1():passif __name__ __main__:#pProcess(targetfunc1,args(10,)) #位置传参pProcess(targetfunc1,kwargs{a:10,b:20,})#关键字传参from multiprocessing importProcessimporttime,osdeffunc1():time.sleep(2)print(我是func1)deffunc2():time.sleep(2)print(子进程pid,os.getpid())print(子进程的父进程pid, os.getppid())print(我是func2)if __name__ __main__:#查看当前进程pidprint(主进程pid,os.getpid()) #查看主进程pidprint(主进程父进程pid,os.getppid())#查看主程序父进程start_timetime.time()pProcess(targetfunc2)#创建进程p.start() #就绪,告诉操作系统等待调度func1()end_timetime.time()dif_timeend_time-start_timeprint(时间差,dif_time)模块传参创建进程方法二from multiprocessing importProcess#方法二classMyProcess(Process):#引入Process中的属性def __init__(self,n): #n为传入的参数super().__init__()passif __name__ __main__:pMyProcess(10)p.start()importtimefrom multiprocessing importProcessclassMyProcess(Process):def __init__(self,n):super().__init__()#引入父类的属性进行self.nndefrun(self):time.sleep(2)print(传入的参数,self.n)print(我是类创建的进程)if __name__ __main__:pMyProcess(10)p.start()类方法创建进程2、进程相关的功能os.getpid( )  表示获取进程的pid号os.getppid() 表示获取父进程的pid号pProcess(target func1, args( ,)) 创建一个进程p,执行函数为func1,函数参数为argsp.start() 就绪等待操作系统开启进程和执行进程p.join( ) 等待进程p执行完后再继续执行p.terminate() 关闭进程不会立即关闭有个等待着操作系统去关闭这个进程的时间p.is_alive() 判断进程是否还存在如果存在就返回Truep.pid( ) 查看pidp.name() 查看pid名字3、join 实例importtimefrom multiprocessing importProcessdeffunc1(n,m):print(参数%s%n)print(m)time.sleep(2)print(我是func1)deffunc2():time.sleep(3)print(我是func2)if __name__ __main__:p1 Process(targetfunc1,args(10,20,))#p1 Process(targetfunc1,kwargs{n:10,m:20})p2 Process(targetfunc2)p1.start()p2.start()print(主进程运行到这里了)p1.join()#等待1号子进程运行结束p2.join()print(主进程结束)4、进程空间隔离验证思路如果进程能对全局变量进行更改就是进程空间不能隔离否则就是进程空间隔离from multiprocessing importProcessnum 20deffunc():globalnumnum 10print(子进程的num,num)if __name__ __main__:p Process(targetfunc,)p.start()p.join()print(主进程num:,num)
http://www.pierceye.com/news/24097/

相关文章:

  • 网站免费加速器搜索引擎推广的基本方法
  • 帮别人做网站的公司是外包吗龙泉市建设局网站
  • 云南省红河州蒙自建设局网站市场调研报告怎么做
  • 怎么做电影网站的wordpress 编辑器修改
  • 建立网站 要怎么做django做的网站有哪些
  • 成都网站建设工作室网站建设需要多少
  • 简约大方自助建站模板嘉祥做网站
  • 云企网站网站图标psd
  • 南昌新手网站建设费用php网站用到的知识
  • 怎么在各个网站免费推广信息免费行情软件app网站大全下载安装
  • 免费的行情网站下载安装西安网站开发公司
  • 俄语网站叫什么yandex商丘做网站sqlongliqi
  • 网站建设套餐表wordpress 优惠码
  • 公司网站建设及维护店铺网站平台建设方案
  • 微网站建设定制网站建设蓝色大气企业网站源码
  • 佛山制作网站公司推荐百度服务电话6988
  • 创业做社交网站有哪些校园网站建设需要哪些
  • 外国做动漫图片的网站叫什么名字中国建设人才服务信息网证书查询
  • 建站软件可以不通过网络建设吗知乎代运营
  • 如何将网站添加到域名网站全屏图片怎么做的
  • 潮品服饰网站建设规划书模仿做网站
  • html5 网站开发 适配wordpress dux主题设置
  • 做自由行的网站好找网站建设需要问什么
  • 县级林业网站建设管理做外贸网站用什么空间
  • 佛山专业网站设计公司南京建网站公司
  • 菜鸟网站建设司法鉴定网站建设的内容
  • 学网络营销要多少钱网站建设和网站优化哪个更重要
  • 做导购网站要多少钱手机销售网站模板
  • 厦门企业建站系统模板如何把网站做好
  • 网站建设服务市场分析中国建设监理协会网站继续教育