自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AI之家

端计算, 云计算 ,智能计算 ,人工智能技术【msp@myhaspl.com】

  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 erlang精要(7)-模块

1、模块是具有名字的文件,其中包含一组函数。2、Erlang中所有函数必须定义在模块中。3、erlang模块会被自动引入,其它模块需要 调用module:function(arguments)4、编写模块时,可定义2部分:(1)函数function属性是元数据,用来描述模块自身,如模块的名字、外部可见函数、模块的作者等。(2)属性采用-Name(attribute)方式。文件 的第一个属性必须是名字属性-module(Name)...

2020-12-31 12:13:21 35

原创 erlang精要(6)-二进制数据处理

7> X=16#F03A56. 157435748> X1 = <<X:24>>.<<"ð:V">>9> <<Y1:8,Y2:8,Y3:8>>=X19> .<<"ð:V">>10> Y1.24011> Y2.5812> Y3.8613> X1.<<"ð:V">>1、表示二进制格式为:<<Valu

2020-12-29 23:25:19 33

原创 linux内核杂记(15)-系统调用(2)

1、内核在执行系统调用时,处于进程上下文状态,current指针指向调用 系统调用的进程。2、在进程上下文中(1)内核可休眠(比如在系统调用阻塞或显式调用 schedule()时)。休眠说明系统调用可使用内核提供的绝大部分功能。(2)内核可被抢占就像用户空间内的进程一样,当前进程同样可被其它进程抢占。因为新的进程要使用相同的系统调用,所以必须小心,保证该系统是可重入。当系统调用 返回时,控制权仍然在system_call()中,它最终会切换到用户空间,让用户进程继续执行3、系统调用的绑定:系

2020-12-29 12:39:11 34

原创 linux内核杂记(14)-Linux kernel release 5.x(1)

运行的虽然最初是为32位x86的pc(386或更高)开发的,但今天Linux也(至少)运行在康柏Alpha AXP、Sun SPARC和UltraSPARC、摩托罗拉68000、PowerPC、PowerPC64、ARM、日立SuperH、Cell、IBM S/390、MIPS、惠普PA-RISC、英特尔IA-64、DEC VAX、AMD x86-64 Xtensa和ARC架构上。Linux很容易移植到大多数通用的32或64位架构上,只要它们有一个分页内存管理单元(PMMU)和一个GNU C编译器(gc

2020-12-28 12:58:49 50

原创 linux内核杂记(13)-系统调用(1)

1、系统调用 在用户空间进程和硬件 设备之间增加了一具中间层。其作用如下:(1)为用户空间提供了一种硬件 的抽象接口。(2)保证了系统的稳定 和安全(3)每个进程 运行在虚拟系统中,而在用户空间和系统的其余部分提供这样一层公共接口。2、系统调用是用户空间访问内核的唯一手段,不能直接调用内核函数3、一般情况下用户程序通过在用户空间实现的应用编程接口(API)而不是直接通过系统调用 来编程 。最流行的应用编程接口基于POSIX标准 。4、访问系统调用通常通过C库中定义的函数调用 来进行。系统调用 在

2020-12-28 10:37:41 45

原创 操作系统设计与实现第3版笔记与minix3心得(5)-操作系统发展历史(3)

第三代计算机之分时系统1、由于多道程序极大地提高了效率,但程序员希望有更快的响应时间,于是,出现了分时系统。其实质是多道程序的变种。2、每个客户都有一个联机终端,通过终端可使用计算机的CPU资源,计算机可为多个用户提供交互式服务。3、当CPU为终端服务之余偶尔空闲时,还可运行较大批处理作业。4、...

2020-12-27 20:41:17 59

原创 汇编解析(2)-内存寻址之实模型平面模式(real mode flat mode)(2)

1、段可以开始于任何地址,在1M以内,但段地址必须可以整除162、20位地址表示1M的空间,需要用2个16位地址表示,因为8086和8088是16位CPU,16位寄存器。3、实模式下,地址就由2部分组成(1)第一部分是16位的段寄存器,这意味着段边界必须以16字节为间距,段地址必须可以整除16。(2)第二部分是另一个寄存器,存放4位地址,表示该字节离段地址的距离(就是相对于段地址的偏移地址。),(3)表示格式:第一部分:第二部分=段地址:偏移地址...

2020-12-25 13:58:28 52

原创 linux内核杂记(12)-进程调度(7)

与调度相关的系统调用nice() 设置进程的nice值sched_setscheduler()设置进程的调度策略sched_getscheduler()获得进程的调度策略sched_setparam() 设置进程的实时优先级sched_getparam() 获得进程的实时优先级

2020-12-24 20:12:51 37

原创 linux内核杂记(11)-进程调度(6)

LINUX实时调度策略调度策略分类1、SCHED_FIFO(1)简单的先入先出调度方法(2)不使用时间片,一旦SCHED_FIFO的进程处于可执行状态,就会继续执行,直到它自己执行完毕或显式释放。(3)处于可运行状态的SCHED_FIFO的进程比任何SCHED_NORMAL的进程得到优先调度。(4)只能在一种情况下被抢占:具有更高优先级的SCHED_FIFO或SCHED_PR任务才可以抢占它,如果存在多个相同优先级的SCHED_FIFO,则轮流执行,前提条件是,它们愿意主动让出处理器2、SCH

2020-12-24 13:11:58 47

原创 操作系统设计与实现第3版笔记与minix3心得(4)-操作系统发展历史(2)

3、第三代计算机-集成电路与多道程序第二代计算机-缺点(1)2条不兼容路线A. IBM7094负责科学与工程的数值计算,大规模计算机。B. IBM1401面向字符商用计算机,用于磁带归档和打印(2)CPU 浪费严重7094:作业等待磁带或其他I/O操作而暂停时,CPU空闲CPU科学计算作业繁忙时,I/O空闲空闲时,必须等待该作业完成第三代操作系统产生(1)IBM推出兼容计算机IBM system360是一个软件兼容的计算机系统,要求操作系统OS/360可在小计算机和大规模计算机上

2020-12-23 20:05:29 43

原创 linux内核杂记(10)-进程调度(5)

一、用户抢占1、用户抢占时机从系统调用返回用户空间从中断处理程序返回用户空间2、检查标志内核返回后检查need_resched标志如果被设置了,内核会选择一个更适合的进程投入进行3、返回路径与代码在entry.S汇编代码中,实现了 返回路径,并且还实现了内核入口部分程序、内核退出部分的相关代码。二、内核抢占1、LINUX完整支持内核抢占调度程序可在一个内核级任务执行时打断它,并重新调度,否则内核要执行完成或遇到阻塞为止,在2.6版的内核中引入了抢占能力。2、抢占时机(1)没持有锁,

2020-12-23 11:49:37 25

原创 汇编解析(1)-内存寻址之实模型平面模式(real mode flat mode)(1)

一、8080CPU1、8位CPU,16位地址线2、寻址范围4K3、寻址方案:16位地址的地址线,取出所在的8位内容(一个字节)一个字节存储8位无符号数,储存的数值范围为0-255。4、使用CP/M80操作系统CP/M(微型计算机控制程序)是数字研究公司(1991年被Novell所兼并)在1974年开发,为8位CPU(如Intel 8080、Zilog Z80等)的个人电脑(PC)所设计的操作系统。一个最小的8位CP / M系统需要以下硬件组件:一个使用ASCII字符集的计算机终端英特尔8

2020-12-22 17:52:08 89

原创 操作系统设计与实现第3版笔记与minix3心得(3)-操作系统发展历史(1)

1、第一代计算机(1)使用真空管A. 真空管(英语:Vacuum Tube)是一种在电路中控制电子流动的电子元件。参与工作的电极被封装在一个真空的容器内(管壁大多为玻璃),因而得名但是可以在音响扩大机、微波炉及人造卫星的高频发射机看见真空管的身影;许多音响特别使用真空管是因为其特殊音质,在音响界、老旧的真空管常与最新的数位IC共存。另外,像是电视机与电脑阴极射线管显示器内的阴极射线管以及X光机的X射线管等则是属于特殊的真空管。对于大功率放大(如百万瓦电台)及卫星(微波大功率)而言,大功率真空管及行波

2020-12-22 16:02:27 185

原创 linux内核杂记(9)-进程调度(4)

1、上下文切换从一个可执行进程切换到另一个要执行进程。由定义在kernel/sched.c中的context_switch()函数负责处理。2、每当一个新的进程被选出来准备投入运行时,schedule()就会调用该函数。完成两项基本工作:(1)调用声明在<asm/mmu_context.h>中的switch_mm()。把虚拟内存从上一个进程映射到新进程中。(2)调用声明在<asm/system.h>中的switch_to()。从上一进程的处理器状态切换到新进程的处理器状态。

2020-12-22 12:00:42 31

原创 操作系统设计与实现第3版笔记与minix3心得(1)-minix3简介

1、操作系统在计算机组成中的定位底层面对计算机系统部件上层提供易于理解和编程的接口2、minix3分为用户空间和内核空间

2020-12-21 20:11:04 89

原创 操作系统设计与实现第3版笔记与minix3心得(2)-minix3内核调用

minix3内核调用简介一般来说,内核调用允许系统进程请求内核服务,例如执行特权操作。minix3内核调用APIKernel Call PurposePROCESS MANAGEMENTSYS_FORK Fork a process; copy parent processSYS_EXEC Execute a process; initialize registersSYS_CLEAR Exit a user process; clear process slotSYS_EXIT Exit

2020-12-21 20:09:33 44

原创 嵌入式研究杂记(1)-RISC-V开源CPU

RISC-V(发音为“risk-five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA),简易解释为开源软件运动相对应的一种“开源硬件”。该项目2010年始于加州大学柏克莱分校,但许多贡献者是该大学以外的志愿者和行业工作者。与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件而不必支付给任何公司专利费。虽然这不是第一个开源指令集[1],但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式

2020-12-21 14:08:31 127

原创 RTEMS实时操作系统精要(2)-FLAGS、EFLAGS寄存器

FLAGS寄存器是Intel x86微处理器中的状态寄存器,它包含处理器的当前状态。这个寄存器是16位宽的。它的后继者EFLAGS和RFLAGS寄存器的宽度分别为32位和64位。较宽的寄存器保持了与较小的前辈的兼容性。位位置1、3和5的固定位,进位、奇偶校验、调整、零和标志标志都继承自更早的体系结构8080和8085。调整标志在8080中被称为辅助进位,在Zilog Z80架构中被称为半进位。所有标志寄存器都包含条件码,标志位可以让一个机器语言指令的结果影响另一个指令。算术和逻辑指令设置部分或全部标志

2020-12-21 11:22:24 62

原创 RTEMS实时操作系统精要(1)-简介

最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time Executive for Military Systems)1、RTEMS(多处理系统实时可执行体)是一个为嵌入式系统而设计的自由的开源实时操作系统。在缩写词RTEMS取其现在的含义之前,初始时代表导弹系统实时可执行体,然后变成了军用系统实时可执行体。RTEMS曾被移殖到多个以不同类型的中央处理器(CPU)为基础的计算机系统上。

2020-12-21 09:07:07 85

原创 linux内核杂记(8)-进程调度(3)

1、红黑树存储了系统中所有的可运行进程,节点的键值 是可运行进程的虚拟运行时间。2、进程高度的主要 入口点是函数schedule(),定义在kernel/sched.c中。是内核其它部分用于调用进程调度器的入口:(1)选择哪个进程可以运行,何时将其投入运行。(2)schedule()需要和一个具体的调度类相关联A.会找到一个最高优先级的调度类(有自己的可运行队列),问该调度类谁才是下一个该运行的进程。B.调用pick_next_task()(定义在kernel/sched.c),以优先级为序,从高

2020-12-21 08:52:23 34

原创 python3精要(34)-import工作原理

1、import导入模块,不是将一个文件插入到另一个文件中,它额外做了以下三方面工作:(1)搜索找到模块文件使用标准模块搜索路径找到该模块文件,并没有指定文件所在路径,可以是以点号分隔的相对路径名。(2)编译成字节码(需要时)检查模块文件的时间戳,如果比字节码pyc时间晚,说明模块文件已经修改,则重新编译成字节码。如果‘没有发现模块文件的源文件,只有pyc,则跳过源文件,不编译。(3)执行模块代码这3方面工作只会在第一次导入时进行。模块文件的所有代码得到运行。2、python将导入的模块存储

2020-12-18 20:14:37 51 1

原创 access开发精要(14)-货币与数字类型格式(2)

2020-12-14 20:02:57 88

原创 access开发精要(13)-货币与数字类型格式(1)

1、小数点(句号). 句号:指定要显示小数点的位置2、逗号(千位分隔符), 千位分隔符

2020-12-13 10:50:53 425

原创 access开发精要(12)-文本 和 备注 数据类型格式(1)

格式 属性会影响仅数据的显示方式。 它不会影响数据的存储方式。Microsoft Access 为"日期/时间"、“数字"和"货币”、"文本"和"备注"以及"是/否"数据类型提供预定义格式。如果在表 “设计” 视图中设置字段的format属性, Access 将使用该格式来显示数据表中的数据。 它也会对窗体和报表上的新控件应用该字段的 Format 属性。在任意数据类型的自定义格式中都可以使用下列符号。符号 含义(空格) 将空格显示为原义字符。“ABC” 将双引号内的字符显示为原义字符。! 实

2020-12-12 20:29:46 142

原创 access开发精要(11)-对象命名规定

加上前缀表示不同类型的对象表格:tbl查询:qry窗体:frm报表:rpt宏:mcr模块:bas或mod

2020-12-10 14:25:03 46

原创 access开发精要(10)-筛选

1、普通 筛选2、高级筛选

2020-12-10 09:29:41 59

原创 linux内核杂记(7)-进程调度(2)

1、进程调度的效果应如同系统具备一个理想中的完美多任务处理器,每个进程 能获得1/n 个处理器时间,n指可运行进程数量。2、调度时进程抢占会带来一定的代价,换入与换出进程消耗,缓存效率等。CFS考虑了这类额外消耗,确保系统性能不受损失。3、CFS允许每个进程运行一段时间 、循环轮转、选择运行最少的进程 作为下一个运行进程。4、在所有可运行进程总 数基础 上计算出一个进程应运行多久,nice作为进程 获得的处理器运行比的权重 ,高的nice值低处理器使用权重。‘5、每个进程 按其权重 在全部可运行进程

2020-12-09 16:05:20 37

原创 access开发精要(9)-排序

单字段排序多字段排序

2020-12-09 11:41:13 36

原创 access开发精要(8)-设置行高、列宽、隐藏字段,取消隐藏字段,冻结列,取消冻结列,网格线

2020-12-09 11:30:24 93

原创 linux系统编程之使用C++(1)-打开关闭文件

本系列全部基于codelite调试#include <iostream>#include <sys/stat.h>#include<fcntl.h> #include<unistd.h>using namespace std;int main(int argc, char **argv){ cout<<"打开main.cpp文件\n"<<endl; int inputFd; inputFd=open("/home/m

2020-12-08 21:17:33 60

原创 linux内核杂记(6)-进程调度(1)

1、LINUX2.5系列内核中,采用了一种O(1)调度程序的新调度程序,该算法对调度响应时间 敏感的程序(比如交互的桌面系统 )不足,但对大服务器的工作 负载很理想 。2、自内核2.6开发初期,引用了反转楼梯 最后期限调度算法(1)吸取了队列理论(2)引入公平调度(3)在2.6.3内核版本中替代了O(1)调度算法,称为完全公平调度算法(CFS)3、LINUX对进程的响应做了优化(缩短响应时间),更倾向于调度I/O消耗型进程。4、优化级高的进程先运行,低的后运行,相同优先级的进程 按轮转方式来调度

2020-12-08 18:26:12 39

原创 python源码精要(9)-CPython内部原理快速指南(1)

对于那些有兴趣了解更多关于CPython内部原理的人,这是一个快速指南。它提供了一个摘要的源代码结构,并包含对资源的引用。对于Python模块,典型的布局是:• Lib/<module>.py• Modules/_<module>.c (if there’s also a C accelerator module)• Lib/test/test_<module>.py• Doc/library/<module>.rst对于只支持扩展的模块,典.

2020-12-08 09:13:55 52

原创 python源码精要(10)-python源代码阅读概要(1)

位于Doc/reference目录中的是Python语言中每个特性的重构文本解释。这在docs.python.org上形成了官方的Python参考指南。目录内的文件,你需要了解整个语言,结构,和关键字:文档位于Doc/reference目录中的是Python语言中每个特性的重构文本解释。这在docs.python.org上形成了官方的Python参考指南。cpython/Doc/reference*.rst是reStructuredText体系reStructuredText是一种易于阅读、您看

2020-12-08 09:10:09 58

原创 python3精要(33)-字典解析与集合解析,if else 用于解析

z1=[(x if x%2==0 else x**2) for x in range(20)]print(z1)z2={x:(x if x%2==0 else x**2) for x in range(20)}print(z2)z3={(x if x%2==0 else x**2) for x in range(20)}print(z3) z1属于列表解析z2属于字典解析z3属于集合解析[0, 1, 2, 9, 4, 25, 6, 49, 8, 81, 10, 121, 12, 1

2020-12-07 14:33:36 74

原创 access开发精要(7)-定位记录、查找空值

2020-12-06 14:57:17 170

原创 python3精要(32)-生成器表达式

生成器表达式实质迭代加列表解析,用()包围表示。rndg=(x for x in range(50))for i in rndg: print(i,end=",")```bash0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,rndg=(x for x

2020-12-05 20:25:47 83

原创 python3精要(31)-生成器函数yield

1、生成器函数和常规函数一样,使用def定义。2、生成器函数包括yield,也可能包括return。3、生成器函数创建时,自动实现迭代协议。4、生成器函数与常规函数不同,返回值,并不退出函数,而是挂起函数,向调用者返回一值**(返回的是生成器对象,可进行迭代)**。5、生成器函数挂起时,会保存状态,包括本地作用域,函数恢复时,则恢复状态。6、可迭代对象定义了一个__next__方法,返回迭代中的下一项,或者引发一个异常。7、生成器函数,使用return停止值生成。...

2020-12-05 19:40:59 106

原创 python3精要(30)-深入列表解析

1、列表解析通用格式[表达式 for 对象1 in 迭代对象 [if 条件1] for 对象2 in 迭代对象 [if 条件2] ......]a=range(1,5)b=range(100,105)print([(x,y) for x in a for y in b ])print([(x,y) for x in a if x%2 ==0 for y in b if y%2 ==0 ])print([(x,y) for x in a for y in b if (x+

2020-12-04 13:19:06 104

原创 python3精要(29)-reduce

reduce接受迭代器进行反复迭代,并返回单一结果from functools import reducex=range(1,20)print(reduce((lambda x,y:x+y),x))累加190

2020-12-04 13:06:03 107

原创 python3精要(28)-filter

x=range(1,20)y=filter(lambda x:x%2==0,x)for i in y: print(i)print(list(filter(lambda x:x%2==0,x)))filter与map类似,根据指定的函数对象进行过滤24681012141618[2, 4, 6, 8, 10, 12, 14, 16, 18]

2020-12-04 12:58:41 104

Eigen 3.3.9

Eigen 3.3.9

2021-04-11

空空如也

空空如也

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

TA关注的人 TA的粉丝

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