1.定义地形服务,绘制施工区域//在使用地形服务前,请设置好Cesium.Ion.defaultAccessTokenvarterrainProvider=Cesium.createWorldTerrain({requestWaterMask:true,requestVertexNormals:true});//定义填挖方的基准面高度varexcavateHeight=2300;//开挖高度varburyHeight=6000;//填埋高度//定义施工区域varscope=[Cesium.Cartesian3.from
2023/7/28 17:23:23 6KB Cesuim; 挖填方分析
1
【实验目的】1.理解死锁的概念;
2.用高级语言编写和调试一个银行家算法程序,以加深对死锁的理解。
【实验准备】1.产生死锁的原因竞争资源引起的死锁进程推进顺序不当引起死锁2.产生死锁的必要条件互斥条件请求和保持条件不剥夺条件环路等待条件3.处理死锁的基本方法预防死锁避免死锁检测死锁解除死锁【实验内容】1.实验原理银行家算法是从当前状态出发,逐个按安全序列检查各客户中谁能完成其工作,然后假定其完成工作且归还全部贷款,再进而检查下一个能完成工作的客户。
如果所有客户都能完成工作,则找到一个安全序列,银行家才是安全的。
与预防死锁的几种方法相比较,限制条件少,资源利用程度提高了。
缺点:该算法要求客户数保持固定不变,这在多道程序系统中是难以做到的;
该算法保证所有客户在有限的时间内得到满足,但实时客户要求快速响应,所以要考虑这个因素;
由于要寻找一个安全序列,实际上增加了系统的开销.Bankeralgorithm最重要的一点是:保证操作系统的安全状态!这也是操作系统判断是否分配给一个进程资源的标准!那什么是安全状态?举个小例子,进程P需要申请8个资源(假设都是一样的),已经申请了5个资源,还差3个资源。
若这个时候操作系统还剩下2个资源。
很显然,这个时候操作系统无论如何都不能再分配资源给进程P了,因为即使全部给了他也不够,还很可能会造成死锁。
若这个时候操作系统还有3个资源,无论P这一次申请几个资源,操作系统都可以满足他,因为操作系统可以保证P不死锁,只要他不把剩余的资源分配给别人,进程P就一定能顺利完成任务。
2.实验题目设计五个进程{P0,P1,P2,P3,P4}共享三类资源{A,B,C}的系统,{A,B,C}的资源数量分别为10,5,7。
进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。
要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;
显示和打印各进程依次要求申请的资源号以及为某进程分配资源后的有关资源数据。
3.算法描述我们引入了两个向量:Resourse(资源总量)、Available(剩余资源量)以及两个矩阵:Claim(每个进程的最大需求量)、Allocation(已为每个进程分配的数量)。
它们共同构成了任一时刻系统对资源的分配状态。
向量模型:R1R2R3矩阵模型:R1R2P1P2P3这里,我们设置另外一个矩阵:各个进程尚需资源量(Need),可以看出Need=Claim–Allocation(每个进程的最大需求量-剩余资源量)因此,我们可以这样描述银行家算法:设Request[i]是进程Pi的请求向量。
如果Request[i,j]=k,表示Pi需k个Rj类资源。
当Pi发出资源请求后,系统按下述步骤进行检查:(1)if(Request[i]<=Need[i])goto(2);elseerror(“overrequest”);(2)if(Request[i]<=Available[i])goto(3);elsewait();(3)系统试探性把要求资源分给Pi(类似回溯算法)。
并根据分配修改下面数据结构中的值。
剩余资源量:Available[i]=Available[i]–Request[i];
已为每个进程分配的数量:Allocation[i]=Allocation[i]+Request[i];
各个进程尚需资源量:Need[i]=Need[i]-Request[i];(4)系统执行安全性检查,检查此次资源分配后,系统是否处于安全状态。
若安全,才正式将资源分配给进程以完成此次分配;
若不安全,试探方案作废,恢复原资源分配表,让进程Pi等待。
系统所执行的安全性检查算法可描述如下:设置两个向量:Free、Finish工作向量Free是一个横向量,表示系统可提供给进程继续运行所需要的各类资源数目,它含有的元素个数等于资源数。
执行安全算法开始时,Free=Available.标记向量Finish是一个纵向量,表示进程在此次检查中中是否被满足,使之运行完成,开始时对当前未满足的进程做Finish[i]=false;
当有足够资源分配给进程(Need[i]<=Free)时,Finish[i]=true,Pi完成,并释放资源。
(1)从进程集中找一个能满足下述条件的进程Pi①Finish[i]==false(未定)②Need[i]<=Free(资源够分)(2)当Pi获得资源后,认为它完成,回收资源:Free=Free
2023/7/22 22:21:56 17KB 银行家算法 操作系统
1
此驱动已将QODBCDriverPrivate类的变量unicode值改为true,并重新编译过,将其放在\Qt\Qt5.6.3\5.6.3\mingw49_32\plugins\sqldrivers文件夹覆盖,然后重新编译程序即可解决读取数据库中文乱码问题。
2023/7/21 20:13:47 331KB qt ODBC 中文乱码
1
模拟风扇(满分50分)版本1:满分15分模拟实现电风扇,可以调3档速度(慢速、中速、快速);
开关按钮;
定时吹风;
描述风扇的扇叶大小、颜色等。
设计Fan类,属性包括:3个常量SLOW(1)、MEDIUM(2)、FAST(3)代表风扇的速度;
1个int属性speed指定速度,默认值为SLOW;
1个boolean属性on指定开关机,默认值false;
1个double属性radius指定风扇扇叶大小;
1个String属性color指定扇叶颜色,默认值为blue。
方法包括这些属性的访问器、构造函数、重写Object类的toString()和equals()方法等。
运行测试代码:publicstaticvoidmain(String[]args){Fan1fan1=newFan1();fan1.setSpeed(Fan1.FAST);fan1.setRadius(10);8fan1.setColor("yellow");fan1.setOn(true);System.out.println(fan1.toString());}版本2:满分15分修改版本1中Fan类,让其继承JPanel类,并且把color属性设置为Color类型,默认属性为red。
随机产生radius,取值范围为1-5;
随机产生颜色,取值范围为red、blue、yellow、green、orange;
根据color、radius属性值绘制风扇。
版本3:满分20分让版本2中的风扇转起来。
创建一个FanControl类包含以下内容:Start、Stop、Reverse按钮,用于开启、关闭、反转控制;
一个滚动条控制速度。
2023/7/13 12:39:49 17KB 风扇 java 三个版本
1
直接下载,之前在本地使用VGG19预训练模型,不女妖下载.pth文件到本地.chche中,之后再使用torchvision.models.vgg19(pretrained=True)就会自动从cache中读取。
2023/7/6 22:55:05 548.05MB .pth
1
效果与PHP中的hash_hmac(data,key,true)相同,注释掉returnsafehashInBase64;这里可以返回URL安全的base64编码
2023/7/4 22:24:06 290KB ASP HS256
1
在原有的maxmin属性上,添加了两个属性:notmax(不出现最大化),notmin(不出现最小化),后两个属性只有maxmin属性为true时才生效.
2023/6/6 23:34:26 56KB 前端 layer插件 最大化 最小化
1
TheCC2541isa电源优化true为片上系统(SoC)解决方案蓝牙low能源和专有的2.4-GHz应用.它使建立强大的网络节点,同时降低总体材料清单成本.CC2541结合了领先的RF收发器,业界标准的增强型8051MCU,性能优良的系统内可编程闪存,8KBRAM和许多其他强大的支持功能和外设.CC2541是非常适合需要超低功耗的系统.这是指定的各种操作模式.操作模式之间的转换时间短进一步实现低功耗.
2023/5/31 12:34:20 1.97MB CC2541
1
破产描摹:用多线程轮回向一个账户充值1元,测试账户余额能否普通。
类:Account(账户类)、AddMoney(充值破产类)以及Test(main函数实施测试类)。
三个不合package:一、惟独多线程;
二、同步账户内充值方式;
三、同步破产挪用充值方式。
线程实施竣事分辨语句:假如executorService.isShutdown()以及executorService.isTerminated()都为true,则实施竣事。
2023/5/12 10:37:39 18KB 多线程
1
namespace约莫通讯录{publicpartialclassForm4:Form{privateBooleanischange=true;publicForm4(){InitializeComponent();}publicvoidaddlistviewitem(String[]a){ListViewItemitem=newListViewItem(a);listView1.Items.Add(item);}//留存publicvoidsave(){FileStreamfs=newFileStream(@"通讯录.txt",FileMode.Create,FileAccess.Write);StreamWritersw=newStreamWriter(fs,Encoding.Default);for(inti=0;i<this.listView1.Items.Count;i++){sw.WriteLine(string.Format("{0}|{1}|{2}|{3}|{4}|{5}",listView1.Items[i].SubItems[0].Text,listView1.Items[i].SubItems[1].Text,listView1.Items[i].SubItems[2].Text,listView1.Items[i].SubItems[3].Text,listView1.Items[i].SubItems[4].Text,
2023/5/9 18:08:58 1.1MB 真心不错
1
共 142 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡