自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (37)
  • 问答 (2)
  • 收藏
  • 关注

原创 2019年江苏省职教高考计算机技能考试——一道程序改错题的分析

该函数的第一个形参char str[]表示要处理的字符串,第二个形参int m[]是一个一维数组,这与题目中所说的二维数组是不相同的,但在学习二维数组时,教课书中对二维数组介绍时写道:可以将二维数组看作是一维数组的一维数组,即可以将一个二维数组看成是一个特殊的一维数组,这个一维数组的元素又是一个一维数组,即二维数组是由嵌套的一维数组组成。在main中有个错误点,就是调用abstract,其中的两个实参,一个是str,一个是m[0],其中实参str对应的形参为char str[],符合调用规则。

2024-02-05 12:41:22 1162

原创 2023江苏职教高考计算机技能考试--填空题解析

假设s为大于1的奇数,可找到一个数p=s*s,以p为中点,在p的左右两各找(s-1)/2个连续的奇数,这s个奇数分别为:p-s+1, p-s+3, …另外,只要能设置一个能结束循环的条件,都能让程序找出正确的结果,比如【sum!同理,假设s为大于1的偶数,找到第一个数p=(s*s-2s+2)/2,然后依次找出2s-1个奇数,则这2s个奇数之和等于s的立方。=======(答案1)==============(答案2)==============(答案1)==============(答案2)=======

2024-01-20 06:47:23 1523

原创 xv6实验课程--系统调用

在开始编码之前,请阅读xv6手册的第2章、第4章的4.3节、4.4节以及下面所列相关源文件:系统调用的用户空间代码:在user/user.h和user/usys.pl中。内核空间代码:在kernel/syscall.h和kernel/syscall.c中。与进程相关的代码:在kernel/proc.h和kernel/proc.c中。 开始本实验前,请切换到syscall分支: $ git fetch $ git checkout syscall $ make clean1. 系统调用跟踪 (难度:中等

2021-05-07 10:01:57 8641 2

原创 C语言辨析——声明int a[3][6], a[0][9]越界吗?

和一维数组一样,二维数组定义后,系统会在内存中为二维数组分配一块连续区域,从内存的低地址开始依次存放二维数组的各元素数据。给定声明int a[4][5],显然左值表达式a[1][7]给定的下标是可以访问的,但其数组下标越界了(6.5.6)。如果i*6+j<3*6,且0<=i<3, j>=6,我们定义这种情况为假越界,程序可以正常访问,这是一个假bug。对于声明int a[3][6]来说,a[i][j]等价于 *(a+(i*6+j)*sizeof(int))。类型说明符 数组名[元素长度1][元素长度2];

2024-02-09 10:08:16 927

原创 C程序训练:二分查找法的应用之2

前面成双成对的都ht是0、1,0、1这样的节奏对应的数据都是相等的,当8出现时,打破了这个僵局。所以我们在设计算法时,第一次查寻如下图所示,mid是偶数,所指元素如果仍保留这种节奏,下一次查寻区间在mid+2与up之间查找,否则,查找区间在low与mid之间。假设所有元素都出现两次且相邻,那么我们可以按照一定的节奏给它们编号,这个节奏就是0,1,0,1,……这时mid指向奇数位置,该位置的值与它上一个值比较,如果仍保持这种节奏,下一次查找区间应该在mid+1与up之间,否则,查找区间应在low与mid之间。

2024-02-05 18:02:33 481

原创 统计1亿以内素数的个数,要求运行时间小于1秒

欧拉筛选素数法的原理是从2开始,留下2,把2的倍数剔除掉,然后,留下3,把3的倍数剔除掉,再把下一个没有被剔除的数作为素数留下,再把它的倍数剔除掉,以此类推,直到最后一个数。另外,在网上看到一个更好的程序,也使用的是筛选法,但优化了很多,感兴趣的读者可参看[1]。[2]李红卫,李秉璋. C程序设计与训练(第四版)[M],大连,大连理工大学出版社,2023.程序运行结果如下图所示,超过1s,不能满足题目要求。程序运行结果如下图所示,满足了题目的要求。运行结果如下图所示,仅仅用了0.3s。

2024-01-21 14:56:32 390 2

原创 C语言基本概念——正确理解C,不要被错误的题目误导

对于不同的计算机系统其采用的字节序可能是不同的,因此,上述分析不完全正确。程序的前几行用来判断计算机的字节序,从输出结果看可知是大端序的,在看本题的输出结果是'm',与上面分析一致。因x的数值为1,子表达式x--的值为1,子表达式y+x的值也为1,因此,x-->y+x不成立,即该表达式的值为0,因此,输出结果是a=20。因为子表达式x--的值为1,但其自减1的发生可能在y+x之前,或之后,如果在y+x之前发生,则x--等于1,y+x等于0,x-->y+x条件成立,如果在之后发生,则x-->y+x不成立。

2024-01-18 18:53:29 347

转载 C程序训练:蛇形矩阵

如图1所示,对于5*5的矩阵而言,有2*5-1=9条斜线,我们把斜线分为上半部和下半部来写,上半部从1到5共5条斜线,下半部从6到9共4条斜线。编号为偶数的从右上到左下填写,其行变换递减,列编号递增,按此思路编写程序即可。观察图1的5*5矩阵,我们发现a[0][0]=1, a[4][4]=n*n=25;按编号从小到大的顺序,将数字从小到大填入各条斜线,其中编号为奇数的从左下向右上填写,编号为偶数的从右上到左下填写。共n行,为蛇形矩阵。只有1行,为一个整数n,代表蛇形的阶数,n的范围是1-15。

2024-01-18 10:17:07 51

原创 C程序技能:彩色输出

在终端上输出的字体总是单色,但在一些场景彩色输出更能满足需求,在Linux环境中,可以使用终端控制字符来设置输出字符的颜色,在部分版本的Windows系统中也可以使用。适用于Windows 10的解决方案是在输出文字前执行system("")函数,执行后允许在本机的命令提示符和Powershell中输出彩色文字。在终端上不仅能够显示程序的输出,还可以以不同的配色方案输出。16色的配色方案包含两个颜色设置,每个8色,一个是背景色,一个是字体色(也即前景色),这个配色方案的语法格式如图1所示[1]。

2024-01-16 06:04:01 581

原创 C语言辨析——int a=5;为什么++a=1能编译通过而a++=1不行呢?

在C标准中,由自增和自减运算符构成的表达式是右值(在C标准中,有时把右值(rvalue)描述为表达式的值),但在C++中,前缀形式的运算符构成的表达式是左值。例如 表达式(a=3*4)=5+6在C中是错误的,但在C++ 中是正确的。对于表达式a=3*4来说,在C中不是左值,因此不能将表达式5+6赋值给它,但在C++ 中它是左值,因此,可以将5+6赋值给(a=3*4)。解释:不管是++a=1还是a++=1在C编译环境下都无法编译通过,但在C++中,++a=1可以编译通过,而a++=1无法编译通过,这也是。

2024-01-16 06:00:44 1096

原创 C程序训练:两个数组按规则结合形成一个集合

设A数组[0, 1, 3, 5, 6]中的元素可看成多项式(1+x+x^3+x^5+x^6)的系数,B数组中[2,3,4]中的元素可看成多项式(x^2+x^3+x^4)的系数。计算这两个多项式的乘法(1+x+x^3+x^5+x^6)*(x^2+x^3+x^4),然后看结果中哪些项前面有系数,统计有系数项的个数,即为所求答案。本题时间限制较严格,由于暴力解法时间复杂度为O(n^2),可能无法满足本题要求,因此请尽可能优化你的算法( 6000ms,512MB)。小花有一个数组A,小树有一个数组B。

2024-01-15 09:10:49 383

原创 C语言辨析——深入理解字符常量与表达式

对于选项C和D,没有什么可说的,它们两个就是正确的赋值语句,对于C选项,字符常量’7‘和'9',它们的类型都是int,如果字符编码采用ASCII,它们的值分别是0x37和0x39,两者相加结果是0x70,0x70对于的字符是'p',因此,对于C选项,赋值语句执行后ch的值为字符'p'。,例如,'a'、'b'、'1'和 '\123' 等都是有效的字符常量。进行解释:对于单个字符的整型字符常量的值映射到文字编码中的单个值(注,在实现中一般采用ASCII码),其值是被映射字符在文字编码中表示为整数的数值。

2024-01-14 07:45:24 592

原创 C语言辨析——深入理解格式字符的用法

函数pow的返回类型是double,因此表达式pow(a,2)+pow(b,2)的类型是double。目前我们所用计算机系统大多数以8字节存储double类型数据,以4字节存储int类型数据,因此,可以得出结论:由于输出格式字符与表达式类型不匹配而产生错误输出。在错误的程序中,输出格式字符"%d"对应前4个字节,它们的值都是00,因此,输出结果为0。我们来分析表达式pow(a,2)+pow(b,2)的存储值,下面程序可以输出该表达式所占8个字节的值。(1)修改输出格式字符为“%f"或“%lf"。

2024-01-14 07:40:50 525

原创 C语言辨析——这个字符串长度是多少?

这10个字符分别是水平制表符'\t','a','c',两个退格符'\b','\x41'对应的字符’A',换行符'\n','c',’\104'对应的字符'D',还有字符'\"',其中,'\t'、'\b'、'\x41'、'\n'、’\104'和'\"'都是转义字符,'\x41'表示十六进制数,’\104'表示八进制数,它们对应的字符分别是'A'和'D'。'\b'退格符,该字符对应键盘上的退格键。\b\b这两个字符是退格键,让光标往回移动两个字符位,即光标在a字符处,因没显示一个字符,光标会移动到下一个位置。

2024-01-13 15:59:55 392

原创 C程序训练:大数相乘与阶乘的计算

2. 完成被乘数与一位数的乘法,完成上面的第2步和第4步。注意低位的0,比如第4步,123和乘数的十位2相乘,结果还需乘10。在实现时,可以预先留出0的位数,计算的结果放在前面。[1]李红卫,李秉璋. C程序设计与训练(第四版)[M],大连,大连理工大学出版社,2003.对上面的算法进行优化,将add和multiply两个函数合并在一起,代码更紧凑。为了让程序看起来更加容易,对程序进行改进、优化,代码如下。同样,按此思路,我们可以计算出任何数的阶乘。1. 计算两个数的加,完成上面的3和4步。

2024-01-13 14:11:21 383

原创 C程序训练:与输入有关的错误

进行查看,无意间发现光标在移过空格时和平时的印象不一样,仔细分析,发现了问题,此处的字符“ ”不是空格字符“ ”。检查程序,也没有看出问题来,打开文件的方式是"w+",这意味着对一个文本文件进行读写,如果打开文件时文件不存在,则创建,否则打开已存在文件,截断所有内容,从头再写,然后可以读。该字符长度为2,这两个字节值都是0xa1,它中文语境中用它来作为空格的,有的中文输入法,在输入空格时,可能用它代替空格。细心观察输入逗号,发现它非常的圆润,不像西文的逗号,问题是不是它呢?再次运行,结果正确了。

2024-01-13 10:39:07 440

原创 C程序训练:阶乘与溢出

4. 假设n是unsigned long long int类型,即64位无符号整数。[1]李红卫,李秉璋. C程序设计与训练(第四版)[M],大连,大连理工大学出版社,2003.已知n是整数,计算1+2!3. 假设n是unsigned int类型,即32位无符号整数。2. 假设n是long long int类型,即64位整数。1. 假设n是int类型,系统用32位表示int类型。程序运行结果如下图所示。程序运行结果如下图所示。程序运行结果如下图所示。程序运行结果如下图所示。

2024-01-13 10:27:32 432

原创 xv6实验课程--xv6的写时复制fork(2023)

对于大的地址空间,这样的复制过程很慢,并且是数据密集的。更糟糕的是,这项工作的大部分往往被浪费了,例如,fork()后的子进程紧接着执行exec()函数,这将导致子进程丢弃复制的内容,也就是说,这些复制的内容根本就没有被用到。修改uvmcopy()。fork函数会调用kernel/vm.c里的uvmcopy进行复制,因此只需要修改uvmcopy函数即可:删去uvmcopy中的kalloc函数,将子进程页表映射到父进程的物理地址,清除父子进程PTE的PTE_W位,增加COW标志位,增加物理内存引用计数。

2023-11-06 05:46:20 560

原创 该进程创建了多少个子进程,该语句执行结束后,该进程有多少个子孙进程

从上面的分析可知,A进程有3个子进程,其中一个子进程可以创建3个子孙进程,一个子进程可以创建1个子进程,还有一个子进程没有创建子进程,A进程共7个子进程。观察到的进程情况如下,系统中共有8个进程,14543是题目中所描述的A进程,14544、14545、14546是A的3个子进程,14547、14548是A的第一个子进程的子进程,14549是A的第二个子进程的子进程,14550是A的第一个子进程的孙进程。当n=2时,A进程创建了2个子进程,第1个子进程的i从n-1=1开始执行该循环语句;

2022-10-26 16:14:14 591 1

转载 xv6:一个简单的类Unix的教学操作系统-01

Xv6大体上遵循了v6的结构和风格,但它是用ANSI C[7]在多核RISC-V[15]上实现。在阅读本文时应该与xv6的源代码一起阅读,xv6的灵感来自John Lions的《Commentary on UNIX 6th Edition》[11]。参见https://pdos.csail.mit.edu/6.1810上xv6和xv6的线上资源,包括几个使用xv6进行实验的作业。

2022-10-25 10:27:45 924

原创 C 语言基本概念----再议副作用

通过上面的分析,可以肯定地说,这个表达式存在未定义行为。虽然这个表达式在VC++6.0和Dev C++ 5.11环境下运行结果相同,但仍不能说它是正确的表达式。在执行第7行时,整型变量i和j的值分别是1和2。当计算表达式++j+i+++j时,需要计算++j和i++,而这两个子表达式的副作用是修改i和j的值。上面程序中的表达式 k=++j+i+++j对吗?=>i=2, 所以,表达式++j+i+++j的值为6。++j+i+++j等价于(++j)+(i++)+j。所以,表达式++j+i+++j的值为7.

2022-10-14 20:23:31 597

原创 用C语言编写与多线程相关的某个面试题

题目描述:有四个线程1、2、3、4。线程1的功能输出1,线程2的功能输出2,以此类推。现有四个文件A、B、C和D,初始都为空。为了查看结果,我们定义N等于10,各个线程循环10次结束,编译程序,然后运行。用go语言实现,相对来说简单些,下面是用C语言实现。查看A、B、C和D的内容,看是否符合题意。用go语言编程实现的该题。...

2022-08-07 08:36:13 1407

原创 C语言基本概念----类型

有符号位精确整数类型类型说明符为_BitInt(N),其中N是整数常量表达式,指定用于表示该类型的位数,包括符号位。另外,实数是一个数学概念,它包括有理数和无理数,有理数中又包括整数和分数,显然浮点数无法表示无理数和所有的小数,例如无法表示无限循环小数,也无法表示大于0.1小于0.2之间的所有实数。存储在对象中的值或由函数返回的值,其含义由访问它的表达式的类型决定。该类型的关键字在C99、C11、C17等标准中是_Bool,在即将发布的最新版本中是bool,我们用最新的关键字表示此类型。...

2022-07-31 16:53:49 1198

原创 在1至9之间任意位置放置任意的+、-、*、/,使得表达式的值等于100

然后我们修改算法,以便除了“+”和“-”外,再增加“*","/"以及在数字之间不加任何运算符,即“无”。根据深度优先算法对树进行遍历,产生不同的表达式,然后对表达式计算,判断是否等于100,若等于100,即为找到的一种答案,直到找到所有解为止。为了方便分析,我们将该问题简化设有数字1234,将+或者-号插入其中间,选出表达式结果是6式子。程序说明,eval(path)是用来计算中缀表达式达式的值,因其不重要,故略。下面是用C语言编写的程序,仅供参考。程序运行结果如下,共有97种结果。............

2022-07-28 11:47:53 413

原创 xv6实验课程--xv6的写时拷贝(COW)(2021)

虚拟内存提供了一个间接层(a level of indirection):内核可以通过将PTE标记为无效或只读来拦截内存引用,从而导致页面错误,并可以通过修改PTE来更改地址的含义。在计算机系统中有一种说法,任何系统问题都可以通过间接层来解决。懒页分配实验提供了一个例子,本实验探索了另一个例子:写时拷贝。注:懒页分配实验是2020年课程中的一个实验,目前,在2021年课程中缺少了这个实验,感兴趣的读者可在本公众号中找到。请切换到cow分支,开始本次实验。$ git fetch$ git checkout c

2021-10-09 14:15:59 3274 1

原创 xv6实验课程--页表(2021)

本文转自微信公众号:操作系统学习在本实验中,我们将探索页表并对其进行修改,以加快某些系统调用,并检测那些页面已被访问。在开始编码之前,请阅读xv6 book[1]和以下相关源程序:kern/memlayout.h,定义内存的布局。kern/vm.c,包含大多数虚拟内存(vm)代码。kernel/kalloc.c,包含分配和释放物理内存的代码。还可以参考RISC-V特权体系结构手册[2]。在启动实验时,请切换到pgtbl分支:$ git fetch$ git check..

2021-09-26 09:15:01 6354 3

原创 xv6--内存管理

文章来源: https://mp.weixin.qq.com/s/hEdFqOZfYnDmx_nIzcv6CA我们知道,用户程序和内核程序中的机器指令使用的地址是虚拟地址,而访问RAM或物理内存用的是物理地址。在xv6中通过页表硬件将每个虚拟地址映射到物理地址的方法来保证程序的正确执行。最新版的xv6是基于Sv39 RISC-V实现的,Sv39支持39位虚拟内存空间。每一页占用4KB内存,页内使用虚拟地址低12位寻址,虚拟地址的高27位划分为三级页号,每一级都有512个可用的页号。Sv39的页表对.

2021-08-30 15:50:03 2119 1

原创 数据结构中的环形队列

文章来源:https://mp.weixin.qq.com/s/HMQJ3ZF2wy8IFkSRTu1naQ管理环形队列的一个难点就是如何判断队空和队满的条件。在教科书中我们一般采用3种方法来判断,下面先简要介绍这三种方法,然后再看一种比较灵活的改进方法。先定义环形队列的数据结构:#define MAXSIZE 1024 //顺序队列的最大容量typedef int QElemType; //定义队列中元素类型,可调整typedef struct { QElemType dat

2021-08-30 15:32:19 374

原创 与时俱进学习C语言

本文选自:https://mp.weixin.qq.com/s/D_NjVesiFtz5_TTjH9myxQ和https://mp.weixin.qq.com/s/WdYJN4Xc4ns4xhY-lBxhzQ1983年,美国国家标准协会(American National StandardsInstitute)开始对C语言进行标准化,并于1989年推出C语言和C标准库的标准。该标准通常被称为ANSIC。由于该标准是1989年推出的,因此也被称为C89。时隔一年,1990国际标准协会ISO参照ANS.

2021-03-29 08:09:18 232

原创 编写思路清晰的代码

本文来自:https://mp.weixin.qq.com/s/_Z4fjXFJtEYSXVG2eXzR3Q更多内容访问:https://mp.weixin.qq.com/s/rHpW_eVKQ7Xs3WfMghJwLw一位老师看了2020年江苏省计算机对口单招考试中一道程序设计题的参考答案后,和我说他的学生写的程序很条理、便于理解。我看了他给的答案后,感觉这位中职生了不起,编程思路非常清晰。现将该题的参考答案和这位同学的答案分享给大家。题目:已知半径为5,圆心为(6,9)的圆,字符串s给.

2021-03-11 20:41:48 272

原创 C编程:运算符==可用以两个浮点数比较吗?

本文来自:https://mp.weixin.qq.com/s/JVdnSk7xafHhy444izwmxw请看下面一段程序:#include <stdio.h>int main(){ float x=7.6,y; y=x*x*x; printf("x=%f\ny=%f\n",x,y); if(y==438.976) printf("YES\n"); else printf("NO\n"); .

2021-03-08 14:16:29 367

原创 北航操作系统实验入门

我给部分读者分配了登录北航操作系统实验平台的账号,但有读者反映不会操作,做起实验很困难。为了让读者尽快了解实验平台的操作,下面介绍lab0的实验步骤,希望读者能尽快掌握实验平台的使用方法。1.用学生账号登录2.点击【操作系统实验】进入实验界面3. lab0实验环境介绍,仔细阅读后点击【开始实验】4. 进入实验主界面5. 调整窗口,将窗口分成左右两个,左边是文档,右边是操作平台6. 直接从【0.6 实战测试】开始做实验,如果你对Linux/git/sed/...

2021-02-07 08:02:49 6954 2

原创 有趣的汉诺塔问题的非递归算法

汉诺塔问题的递归程序很简单,也很容易理解,C源程序如下。// 程序1#include <stdio.h>int n;void move(int k, char from, char to) { static int Ser_num; Ser_num++; printf("%3d k=%2d %c-->%c\n",Ser_num,k,from, to); return;}void hanoi(int k,char from,char pass,char

2021-01-22 10:49:07 288

原创 Linux共享内存实验

1. 共享内存的优缺点共享内存是在系统内核分配的一块缓冲区,多个进程都可以访问该缓冲区。共享内存通信方式的优点是进程间传递信息最快,因为客户进程和服务进程传递的数据直接从内存里存取,数据不需要在两进程间复制。另外,共享内存的生命周期随内核,即所有访问共享内存区域对象的进程都已经正常结束,共享内存区域对象仍然在内核中存在(除非显式删除共享内存区域对象),在内核重新引导之前,对该共享内存区域对象的任何改写操作都将一直保留。简单地说,共享内存区域对象的生命周期跟系统内核的生命周期是一致的,而且共享内存区域对.

2020-11-02 17:23:57 1566

原创 计算机中Dump的含义

本文来自:https://mp.weixin.qq.com/s/d5wRo72Kf3vYpUrkTLd5zADump的本意是"倾卸垃圾"、"把(垃圾桶)倒空"。在计算机技术中使用Dump的主要意思依然如此,即当电脑运行出现故障而无法排除时,通常要重新启动。为了找出故障的原因,需要分析现场(即出现故障时整个内存的当前状况),在重新启动系统之前需要把内存中的一片0、1(这时它们尤如一堆垃圾)"卸出"保存起来,以便由专家去分析引起故障的原因。dump在IBM词汇表[1]中是这样定义的:1.n. A co.

2020-10-14 18:35:33 24471

原创 CRT (C run-time library)简介

来自https://mp.weixin.qq.com/s/qg1mFzMEYv7GDDM72H1DOQ操作系统学习1.什么是CRTcrt是C run-time library的简称,称为C运行时库,它诞生于20世纪70年代,是程序在运行时所需要的库文件,属于C语言世界的概念。C语言是由贝尔实验室的Dennis Ritchie从1969年到1973年开发的。1973年,Ken Thompson和Ritchie使用C语言重写了90%以上的UNIX系统函数,并且把其中最常用的部分独立出来,形...

2020-10-10 23:13:23 3490

原创 UNIX操作系统发展史简介

本文来自https://mp.weixin.qq.com/s/GgXAGj0Kbo1gKPT4D4WYSA1964年贝尔实验室(Bell Labs)、通用电气(General Electric)和麻省理工学院(MIT)联合启动研发第二代分时操作系统MULTICS(Multiplexed Information and Computing Service)(注:MULTICS正式研制始于1965年)1969年,贝尔实验室研究人员Ken Thompson在退出MULTICS项目时,准备将原本在MULT.

2020-10-02 21:37:32 5814

原创 麻省理工学院“新工程教育转型”计划简介

本文来自https://mp.weixin.qq.com/s/qJBAnbJCJmOTpPR0m5NxSQ2017年8月,麻省理工学院启动了“新工程教育转型”(The New Engineering Education Transformation, NEET)计划,旨在重构麻省理工学院的工程教育。NEET致力于跨部门(学科),以项目为中心的综合学习,培养学生必要的技能,知识和素质,以应对21世纪带来的严峻挑战。麻省理工学院是由美国自然科学家威廉·巴顿·罗杰斯于1861年创办的世界著名私立研究型大学

2020-10-01 16:29:52 2909

原创 xv6 第5章 中断与设备驱动程序

第5章 中断与设备驱动程序驱动程序是操作系统中管理特定设备的代码:它配置设备硬件,告诉设备执行操作,处理由此产生的中断,并与可能正在等待来自设备的I/O的进程交互。驱动程序代码可能很棘手,因为驱动程序与它所管理的设备同时执行。此外,驱动程序必须了解设备的硬件接口,这可能是复杂的和缺乏文档的。需要操作系统注意的设备通常可以配置为生成中断,中断是陷入的一种类型。内核陷入处理代码识别设备何时引发中断并调用驱动程序的中断处理程序;在xv6中,这种调度发生在devintr(kernel/trap.c:1.

2020-09-21 20:59:21 658

原创 Windows下使用VS2019调用PBC

本文直接参考Windows下使用VS2017调用PBC,首先感谢daiyugege,他让我们节省不少时间。由于编译pbc太费劲,直接拿来现成的使用更方便。本文直接使用《Windows下使用VS2017调用PBC》已编译好的库。1.下载已经编译好的Pbc库。https://pan.baidu.com/s/1oreOoZEg-wg0SoLu67XjcQ 提取码: yn5p2.解压到某个盘,比如D盘。3.创建C++项目4.创建新的源程序 ,代码如下。#i...

2020-09-19 10:22:25 960 1

《数据结构》实验指导书

数据结构是一门实践性很强的课程,只靠读书和做习题是不能提高实践能力的,尤其是在数据结构中要解决的问题更接近于实际。数据结构的实验是对学生的一种全面的综合训练,与程序设计语言课程中的实验不同,数据结构课程中的实验多属创造性的活动,需要学生自己进行问题分析、进行数据结构和算法的设计、再上机调试和测试程序。数据结构的实验是一种自主性很强的学习过程,其教学目的主要有两个:⑴ 深化理解和掌握书本上的理论知识,将书本上的知识变“活”;⑵ 理论和实践相结合,使学生学会如何把书本上有关数据结构和算法的知识用于解决实际问题,培养数据结构的应用能力和软件工程所需要的实践能力。 为了达到上述目的,本手册按章顺序安排了11个实验,这些实验包含了数据结构基本知识,通过实验学生可进一步掌握数据结构知识。

2018-12-02

oRTP-0.16.3 软件包下载 2010年7月发布。

What is it ? ************ oRTP is a LGPL licensed C library implementing the RTP protocol (rfc3550). It is available for most unix clones (primilarly Linux and HP-UX), and Microsoft Windows. What are the build prequisites ? ******************************** libc library and header files. How do you I test ? ******************* There are shorts and easy to understand programs given with the library. There are good example to understand how to use oRTP api. - rtpsend : sends a stream from a file on disk. - rtprecv : receives a stream and writes it to disk. - mrtpsend: sends multiple streams from a file on disk to a range of remote port. - mrtprecv: receives mutiple streams on a range of local ports and writes them on disk. Is there some documentation ? ***************************** See the doxygen generated API documentation in docs/html. Program examples are a very good starting point. What are the current features ? ****************************** - works with ipv6 - packet scheduler - adaptive jitter compensation - automatic sending of RTCP SR or RR coumpounded with a SDES - RTCP parser API What are the planned features ? ******************************* - multi-endpoint rtp sessions. In which application oRTP is being used ? ***************************************** - linphone (http://www.linphone.org) was the first. - the OCMP platform (a Hewlett Packard product). How to compile my program using ortp ? ************************************** gcc -o myprogram `pkg-config --cflags ortp` myprogram.c \ `pkg-config --libs ortp` What about Windows port ? ************************* There are instructions and Microsoft Visual C++ project files in build/win32native/oRTP.

2010-11-29

串口调试工具V2.1

实时串口调试工具,请TX使用,多提宝贵意见。谢谢。

2010-09-09

802.15.4-文档

包括802.15.4-2003和802.15.4-2006 规范文本。

2010-08-17

串口工具(版本为1.2.30)

一个比较好用的串口工具,实时发送输入的数据,处理退格键,修订了一些BUG

2010-08-03

串口程序(版本1.2.20)

一个见面友好的串口程序,目前版本是1.2.20

2010-08-03

DM355 DVEVM软件安装

DM355 DVEVM软件安装,DM355 DVEVM软件安装

2010-05-12

Understanding ZigBee RF4CE (理解 ZigBee RF4CE)

介绍RF4CE技术。实现ZigBee在消费领域的应用。

2009-09-10

RF4CE specification (RF4CE 规范)

RF4CE规范,2009年9月板,The ZigBee RF4CE specification is based on IEEE 802.15.4. MAC/PHY radio technology in the 2.4GHz unlicensed frequency band and enables worldwide operation, low power consumption and instantaneous response time. It allows omni-directional and reliable two-way wireless communication, channel agility for enhanced co-existence with other 2.4GHz wireless technologies, simple secure set-up and configuration.

2009-09-10

ZIGBEE 与 RF4CE介绍

ZigBee 联盟与 RF4CE 联合会已达成协议,要提供基于射频 (RF) 的远程控制标准化规范。RF 远程速度更快、更可靠、更自由,可从更远的距离操作设备,去除了今日红外线(IR) 远程的视线 (line-of-sight) 屏障。在协议生效后,ZigBee 联盟将涉足范围广泛的消费产品竞技场,以此作为长期集成与成长计划的一部分。

2009-04-13

Jennic bos 简介

BOS是一个简单的调度调度器。它采用非抢先式调度机制,且所有任务具有相同的优先权。在BOS中,任务之间没有上下文切换,因此任务不需要单独的栈,这样做可节省存储空间。 通过BOS提供的事件机制可在任务之间进行通信。使用简单的消息机制完成任务之间的数据传递。 BOS控制ZigBee协议栈和用户任务的执行。用一个单任务实现ZigBee协议栈,该任务可处理网络层、APS和ZDO等事件。有一个默认用户的任务作为BOS初始化的一部分被创建。此外,该任务可以为应用定义任务。位于ZigBee协议栈之下的MAC子层管理中断上下文,以及片上外设产生的事件。

2009-04-09

计算机考试(上机考试)

2008 年江苏对口升学上机考试题目 计算机考试

2009-02-07

一个比较好用的串口工具

推荐给大家一个比较好用的串口工具,推荐给大家一个比较好用的串口工具,推荐给大家一个比较好用的串口工具,推荐给大家一个比较好用的串口工具,推荐给大家一个比较好用的串口工具,

2009-01-19

ZigBee 标准(2004,2006,2007)

ZigBee 2004标准,ZigBee 2006标准,ZigBee 2007标准 ZigBee 2004标准,ZigBee 2006标准,ZigBee 2007标准 ZigBee 2004标准,ZigBee 2006标准,ZigBee 2007标准

2009-01-07

李红卫《操作系统原理与实践教程》课件

李红卫《操作系统原理与实践教程》前7章的课件。

2008-12-29

求子集问题--一个ACM程序竞赛题

已知N个大于0的整数构成一个集合,即{1,2,3,……,N},求其所有的非空且元素不相邻的子集,计算所有子集的乘积的平方的和。

2008-12-02

μC/OS-II在x86保护模式下的移植

介绍μC/OS-II在x86保护模式中的移植步骤及关键技术。着重介绍Boot Loader引导程序的设计、PE目标文件的修改以及移植μC/OS-II时主要解决的问题。移植后的μC/OS-II应用系统在x86保护模式下能够正常运行。

2008-12-02

八皇后问题的解决,92种结果

八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。

2008-10-02

为文本增加行号和去掉行号

本程序可以为程序增加行号和去掉行号,在排版文档时,有时需要增加行号,有时需要去掉行号,使用该程序可以实现。

2020-11-07

2009-2019研究生全国统考(408)--操作系统试题分析

2009-2019研究生全国统考计算机--操作系统试题分析

2019-08-23

一个简单的文件下载服务器

使用方法,在与本程序相同的目录下创建一个子目录file, 在file目录下存放需要下载的文件,然后启动本服务器程序。服务器启动后,即可在客户端通过浏览器访问服务器,比如:http://xxx.xxx.xxx.xxx:8080, xxx.xxx.xxx.xxx指IP地址。 文件服务器地址和端口号为:192.168.156.1:8080 文件服务器已启动

2018-12-09

2009-2018研究生全国统考计算机--操作系统试题分析

2009-2018研究生全国统考(408)--操作系统试题分析。

2018-10-31

2018 年研究生全国统考计算机真题

2018年408计算机考研真题与答案,照片,清晰。pdf文档。

2018-10-28

2018 年研究生全国统考计算机试题——操作系统部分试题解析

2018 年研究生全国统考计算机试题——操作系统部分试题解析,408操作系统真题与解析

2018-10-27

为源程序增加行号或去除行号的程序

为源程序增加/去除行号。使用方法:1. 运行edit.exe,启动服务器。2. 在浏览器中访问 http://127.0.0.1:8080 3. 在文本框中粘贴程序 4. 点击upload按钮, 5. 显示带行号或去除行号的源程序 6. 粘贴复制后,按网页退回键继续转换。

2018-01-21

基于Web的上传下载工具

执行updown程序启动服务器,可选择监听端口,在浏览器中访问服务器即可实现上传/下载文档,上传的文档存入服务器的upload子目录下。软件包中有使用说明文档。

2017-12-23

基于HTTP文件上传工具--服务器端程序

执行upload.exe程序启动服务器,监听端口8080,在浏览器中访问服务器即可实现上传文档,上传的文档存入服务器的upload子目录下。例如,upload.exe在IP地址为192.168.1.222的机器上启动,即可在局域网中的任何一台机器访问http://192.168.1.222:8080, 然后将文档上传给服务器。

2017-12-06

基于HTTP文件下载工具--服务器端程序

执行http9090.exe启动服务器,监听端口9090,在浏览器中访问服务器即可下载ABC目录下的文档。例如,http9090.exe在IP地址为192.168.1.222的机器上启动,即可在局域网中的任何一台机器访问http://192.168.1.222:9090下载服务器上的文档。

2017-11-30

在123456789中插入+-*/使表达式等于100

在123456789中任意位置插入任意个+-*/使表达式等于100,用go语言实现,Count函数借用他人,主要功能是计算表达式的值,本文没有提供。

2017-11-19

2009-2017 计算机统考408题目汇总

2009-2017 计算机统考408题目汇总,2009-2017 计算机统考408题目汇总,2009-2017 计算机统考408题目汇总。

2017-11-03

2017年计算机统考408考研真题与答案解析

2017年计算机统考408考研真题与答案解析

2017-10-15

Cryptography and Network Security (Forouzan)

Cryptography and Network Security英文版,Benrouz A. Forouzan著

2016-12-19

ArcGIS三维从入门到精通

ArcGIS三维从入门到精通,是学校ArcGIS的入门书。

2016-02-17

按照RFC3984协议实现H264视频流媒体源代码

本程序是在yanyuan9527提供的程序(http://download.csdn.net/source/1961862)的基础上进行了微小的改动,使它适合我的机器。因yanyuan9527的程序在我的机器上无法播放,修改了Windows socket后,在我机器上就可以播放了。我想可能有人会遇到与我相似的情况,故上传共享。 下面引用yanyuan9527的软件说明。 本示例代码在我的电脑上实现了对标准H264码流的RTP打包发送到本机的1234端口,用VLC播放器从1234端口能接收到该码流并实时播放。代码附有详细的注释,应该很容易理解(前提是大家稍微对RFC3550 RFC3984协议有了解)。使用方法:直接在VC6上打开工程,编译。(需要注意的是大家要把IP地址改为自己的。在h264.h的#define DEST_IP "192.168.0.30"和#define DEST_PORT 1234这两行修改就行了。同时w.sdp文件里也要改成一致的IP和端口号,不然VLC是接受不到数据的。在c=IN IP4 192.168.0.30 和m=video 1234 RTP/AVP 96这两行。中间的1234是我设置的端口号。)在执行程序之前,先用VLC打开w.sdp文件,然后执行程序,就可以看到画面了:)

2010-12-29

H.264 中文文档 视听及多媒体系统

通用视听业务的先进视频编码,h.264中文文档。 本建议书|国际标准是由已有视频编码标准发展而来(H.261,H.262和H.263),以适应各种应用,如视 频会议,数字存储媒体,电视广播,互联网流式传输和通信等,对运动图像压缩比提出的更高要求,本编 码标准正是为了满足这种日益增长的需求而开发的。同时,本标准的设计也能够使编码图像能够以灵活的 方式在不同的网络环境中使用。使用本建议书|国际标准可使得运动图像能以计算机数据的形式被使用,并 能够存储在各种存储媒体上,在现有或未来网络中传送和接收,在现有或未来广播信道中分发。 本版本于2005年3月通过,包含的修改是对视频编码标准增加了四个简表,分别是高级,高级 10,高 级 4:2:2和高级 4:4:4,提高了视频质量能力,从而扩展了标准的应用的范围(如,通过包括支持更大范围 的图像样点精度和更高解析度的色度格式来实现)。另外,定义了补充数据的新类型,更进一步扩展视频 编码标准的适用性。最后,对已印刷版本中的若干错误进行了修正。本版本除了增强了视频编码能力以 外,还用来和联合研发的ISO/IEC 14496-10标准在技术上保持一致。 ITU-T H.264 建议书的勘误表1修改和更新了一些次要的方面,使之与于2005年4月通过的联合开发并 且技术一致的ISO/IEC 14496-10的最新版本的文本相一致。它还改正了一些次要错误,进行了一些必要的 澄清,并且定义了三个前面预留的幅型比标识符。 本版本包括 2005年 3月通过的文本以及在 2005年9月通过的勘误表 1。

2010-12-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除