(一)总体设计系统总体架构如图1所示,最右边部分为进程与资源管理器,属于操作系统内核的功能。
要求能够设计与实现一个简单的进程与资源管理器,具有如下功能:完成进程创建、撤销和进程调度;
完成多单元(multi_unit)资源的管理;
完成资源的申请和释放;
完成错误检测和定时器中断功能。
图1系统总体结构(二)Testshell设计应具有的功能:1、从终端或者测试文件读取命令;
2、将用户需求转换成调度内核函数(即调度进程和资源管理器);
3、在终端或输出文件中显示结果:如当前运行的进程、错误信息等。
(三)进程管理设计1、进程形态与操作2、进程控制块结构PCB3、主要函数:创建进程、撤销进程(四)资源管理设计1、主要数据结构RCB2、请求资源3、释放资源(五)进程调度与时钟中断设计关键:使用基于优先级的抢占式调度策略,在同一优先级内使用时间片轮转算法。
2022/9/7 10:52:48 753KB 操作系统 实验报告
1
sht30的基于c51单片机驱动程序:#include#include#include"I2C.h"#include"SHT30.h"#defineuintunsignedint#defineucharunsignedcharvoiddisplay();unsignedcharcodetableduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchardataDIS_ROME[6]={0,0,0,0,0,0};//显示缓存区(4)ucharDISP=0;//缓存区指针ucharSCANF=0xDF;//扫描指针sbitLED1=P1^0;sbitLED2=P1^1;sbitLED3=P1^2;sbitLED4=P1^3;sbitVOC_A=P3^5;sbitVOC_B=P3^6;sbitdula=P2^6;//IO口定义sbitwela=P2^7;sbitkey=P3^4;sbitbeep_dr=P2^3;uintpm1=0;uintpm2=0;uintpm10=0;ucharvr=0;uintintrcnt=0;bitF_1HZ;uintvoice_time_cnt;ucharUart_Buf;ucharRec_Addr=0;ucharmode=0;ucharRec_Uart=0;ucharRecive_Buf[30]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};#definekeyP34#defineconst_key_time150unsignedcharucKeySec=0;//被触发的按键编号unsignedintuiKeyTimeCnt1=0;//按键去抖动延时计数器unsignedcharucKeyLock1=0;//按键触发后自锁的变量标志unsignedchardisplaycnt=0;voidkeyscan(){if(key==1)//IO是高电平,说明按键没有被按下,这时要及时清零一些标志位{ucKeyLock1=0;//按键自锁标志清零uiKeyTimeCnt1=0;//按键去抖动延时计数器清零,此行非常巧妙,是我实战中摸索出来的。
}elseif(ucKeyLock1==0)//有按键按下,且是第一次被按下{uiKeyTimeCnt1++;//累加定时中断次数if(uiKeyTimeCnt1>const_key_time1){uiKeyTimeCnt1=0;ucKeyLock1=1;//自锁按键置位,避免不断触发ucKeySec=1;//触发1号键}}}voidkeyservice(){if(ucKeySec){displaycnt=!displaycnt;}ucKeySec=0;}voidUartInit(void)//9600bps@12.000MHz{TMOD=0x01;//设置定时器0为工作方式1TH0=0xf8;//重装初始值(65535-500)=65035=0xfe0bTL0=0x2f;SCON=0x50;TMOD=0X21;IP=0x10;//把串口中断设置为最高优先级,EA=1;ES=1;ET0=1;TR0=1;}voidT0_time(void)interrupt1//定时中断{TF0=0;//清除中断标志TR0=0;//关中断keyscan();keyservice();display();
2022/9/6 21:13:46 4KB sht30
1
为了节省信道资源,可以将多路不同速率、不同猝发时隙的数字信源复合为一路数据的异步数字复接器得到了广泛应用。
为了尽最大可能降低源包数据传输时延、提高信道利用率,提出了一种贪婪型异步动态数字复接器的设计方案,并给出了各路信源的优先级调度策略。
使用硬件描述言语对两种复接模型进行描述。
在不同物理帧和两种信源模式下,通过Modelsim对贪婪型动态复接器和虚拟信道复接器进行了仿真对比。
仿真结果表明,贪婪型动态复接的平均传输时延和时延抖动都优于虚拟信道复接,并能够更有效地节省信源缓存资源。
1
设计了半天的缺陷报告模板,里面记录的内容丰富,测试人员,指定处理人,严重程度优先级,缺陷模块,缺陷概述,预置条件,缺陷步骤,预期结果,实践结果,反测时间,反测人员等
2022/9/6 2:51:12 31KB 缺陷报告模板
1
c/c++/cpp/stl中文协助文档手册chm格式下载C/C++语言参考基本C/C++预处理命令操作符优先级转义字符ASCII码表基本数据类型关键字标准C库:StandardCI/OStandardCString&CharacterStandardCMathStandardCTime&DateStandardCMemoryOtherstandardCfunctionsC++C++I/OC++StringsC++标准模板库C++BitsetsC++Double-EndedQueuesC++ListsC++MapsC++MultimapsC++MultisetsC++PriorityQueuesC++QueuesC++SetsC++StacksC++VectorsIterators全部的C函数全部的C++函数
2020/1/11 10:49:50 115KB c++ c语言 stl chm
1
10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如何运用线程优先级?(VisualC++编程源代码)10.如
2019/9/18 21:55:14 194KB 10.如何使用线程优先级?(Vi
1
某小型实时操作系统采用优先级进行调度,就绪表最多容纳32个任务,用4个元素的数组P表示就绪表,每个元素为一个字节,每个字节的一位表示该优先级的任务能否就绪。
若P[0]=00100010,则表示优先级为1与优先级为5的任务已经就绪,若P的值为下表所示则表示,整个系统中目前有6个任务在就绪表中,分别是优先级为1,5,15,16,20,31优先级的任务就绪,若数字越低优先级越高,本例中优先级为1的任务具有最高优先级,且优先级是任务的唯一标识,请设计一程序,完成:1)根据P找到最高优先级的任务;
2)若某一优先级为x的任务进入就绪表,修改就绪表P.
2016/2/13 10:49:16 213KB 操作系统 优先级调度 源代码
1
输出一个运算字符串输出结果比如“(1+8)*8-5/6+4”里面用到堆栈判断运算符优先级
2017/10/20 7:20:56 18KB C#四则运算
1
一.C语言基础1.C语言特点(识记);
2.C语言程序基本组成(识记):3.基本数据类型:3.1标识符与基本数据类型(识记),3.2常量与变量(领会)3.3内存的概念(识记)4.基本输入、输出函数(领会):5.运算符与表达式(简单应用):5.1运算符的优先级与结合性二.程序控制结构1.C语言的语句(识记):2.顺序结构(领会):3.分支结构(简单应用):4.循环结构(综合应用):5算法特点6流程图三.构外型数据1.数组(综合应用):1.1定义和引用1.2字符数组1.3指针和数组2.结构类型:2.1结构类型的概念2.2结构类型定义及结构变量说明2.3结构变量的初始化2.4结构数组的初始化3.联合类型(识记):3.1联合类型的概念3.2联合类型定义和联合变量说明3.3联合类型的使用3.4Struct和Union区别4.枚举型(识记):4.1枚举型的定义4.2使用枚举型变量5.typedef的用途(识记):四.指针1.指针与指针变量(识记):2.指针运算符(领会):3.指针与函数4.指针数组与指向指针的指针(识记):5.指针与结构(领会):6.难点和易混淆五.函数1.常见的系统库函数(识记):2.用户自定义函数(简单应用):2.1函数定义2.2函数调用2.3函数声明2.4函数返回值2.5函数参数3.函数之间的数据传递(领会):4.函数的嵌套调用及递归调用(领会):5.局部变量与全局变量(识记):6.变量的存储类型与变量的初始化(领会):7.编译预处理(领会):六.文件1.文件的基本概念,C语言中的两种文件(识记)2.文件的打开、关闭和文件结束测试,文件的读写,文件的定位(识记)2.1文件操作函数2.2文件权限七.算法与编程(综合应用)1使用TurboC集成开发环境调试程序1.1.源程序的编写、编辑与改错(领会);
1.2.集成环境下的求助Help(识记);
1.3.程序的编译与目标代码的生成(识记);
1.4.程序的调试(综合应用):1.5.了解TurboC程序的常见错误提示(识记)。
2重点编程题八位运算1.&2.|3.^4.~5.>————————————————版权声明:本文为CSDN博主「kaikai_sk」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kaikai_sk/article/details/106061539
2019/1/19 6:33:11 7.7MB C语言 大学课程
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡