自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 操作系统第七次笔记(内存管理)

2)固定分区分配:将用户区分为若干固定大小的块,可化为全相等大小的块也可不一样。(2)可重定位装入:目标模块的起始地址为0,程序的其他地址都是相对于起始地址的。3)最佳适应算法:空闲分区按照分区大小递增串成一链,找到能满足其大小最小的一个分区分配他。1)单一连续分配:内存分为低地址的系统区和用户区,用户区只分配给一个用户程序,有内部碎片利用率最低。(3)动态运行时装入:在程序执行时用到该块时才对其进行地址转换,所以在程序运行时要动态的申请空间。1)首次适应算法:从分区链开始找到第一个能适合其加入的分区。

2023-07-15 17:55:49 121

原创 操作系统第六次笔记(死锁)

圆形表示进程,矩形表示资源节点,矩形里面的圆形表示一个资源,箭头指向圆形表示已经给他分配了多少资源,箭头指向矩形表示还需要多少资源,查看是否能满足某个进程,满足后可收回分配给其的资源。②银行家算法:安全状态的延申,先计算现在还有多少资源然后寻找现有资源能满足的进程需求,找到后收回该进程的所有资源一步一步做直到完成所有进程。③请求并保持条件:进程已经有了一个资源还要申请其他的资源,但是这个资源又不会被释放,会一直被占用。②破坏资源不剥夺条件:当已经拥有某资源的进程获得新资源失败时要把之前占用的资源都释放掉。

2023-07-11 19:19:00 86

原创 操作系统第五次笔记(经典进程同步互斥问题)

分析:主要是写者的问题,对于写者可直接写成独占临界区,而对于读者,必须判断临界区中是否有写者,其次临界区中有读者不能影响新的读者访问临界区所以可设置一个计数器,当第一个读进程进入时判断是否有写进程在写,若没有则屏蔽写进程,后面的读进程发现自己不是唯一的一个则可直接进入,因为此时肯定没有写进程在写。1.生产者消费者问题:一组生产者进程和一组消费者进程共享一个初始为空大小为n的缓冲区,缓冲区没满时生产者可以放入消息,反之缓冲区没空时消费者可以从中拿走消息否则需要等待,同时只允许一个生产者进程或一个消费者进程。

2023-07-11 17:55:28 165

原创 操作系统第四次笔记(同步互斥)

当P0把flag[0]改为true后再将turn标记改为1.此时能保证能直接进入P0进入,当P0、P1同时进入时,turn可能会被P1更改为0,此时flag[0]和flag[1]全为true但turn只会有一个值当为1时P0会被死循环限制,而P1则会进入临界区,turn值可理解为锁,P0进入后先声明自己要进入了然后对P1上锁,而P1进入后声明自己要进入了然后将自己的锁打开后将P0上锁,最后自己进入。互斥锁:两个函数当进程进入临界区前检查是否有锁,函数acquire()获得锁,release()释放锁。

2023-07-10 18:33:35 583

原创 操作系统第三次笔记(处理机调度)

⑦多级反馈队列调度算法(集合了优点):设置多个就绪队列,在每个队列的优先级逐层递减,赋予在每层的时间片不同,时间片逐层递增,在每一层都采用FCFS算法。⑤时间片轮转调度算法:主要用于分时系统,系统分出时间片后依次给各作业分配时间片,当时间片执行完毕后下处理机再执行下一个进程。在等待时间少的时候,长作业和短作业优先级差不多,等待时间越长短作业相应比越大优先级越高,所以能提高短作业的优先级且不会造成长作业饥饿。平均带权周转时间:多个作业平均的带权周转时间。带权周转时间:作业周转时间和作业实际运行时间的比值。

2023-07-10 16:15:34 42

原创 操作系统第二次笔记(进程管理)

3.进程的状态切换:创建态创建结束后进入就绪态->就绪态在就绪队列中等待到CPU后进入CPU执行进入运行态->进程执行时遇到如IO等操作需要阻塞以保证CPU的执行效率进入阻塞态进入不同的阻塞队列->阻塞的进程等待到了IO完成重新进入就绪态->就绪态在就绪队列中等待到CPU后进入CPU执行进入运行态->进程执行完毕后进入结束态。撤销父进程时,子进程也会随之撤销。4.进程的组织:进程控制块PCB,PCB是进程存在的唯一标志,创建进程就是创建PCB,PCB常驻内存,具有自己的内容,撤销进程就是删除PCB。

2023-07-08 19:35:12 30

原创 操作系统第一次笔记(操作系统概述)

6.操作系统的引导:操作系统启动分为三部分:CPU、主存、磁盘,其中CPU负责启动的全程指挥,主存内的ROM区域含有自举系统,磁盘中含有MBR(包含硬盘分区表、磁盘引导程序)C盘(系统盘,包含分区引导记录PBR(负责找到启动管理器)和根目录)。4.系统调用:操作系统给用户的特殊指令集合,只有在核心态时才能被调用。主要流程为CPU->主存ROM->磁盘MBR->磁盘C区->分区引导记录PBR->启动管理器。1.操作系统的四大特征:并发、共享、虚拟、异步。2.操作系统的目的:尽可能的提高运行效率。

2023-07-08 16:53:42 26

原创 计算机组成原理第十七次笔记(I/O)

外设准备好数据时会向CPU发送中断使其暂停正在执行的程序而去执行中断处理程序,而I/O中断的中断处理程序就是CPU将I/O外设准备好的数据进行操作,当一次数据操作完成后直接返回原程序继续执行。(2)中断优先级判断:判段当前状态下请求的中断是否可以被相应,高优先级的会被相应,一般来说优先级:不可屏蔽中断>内部异常>可屏蔽中断 硬件故障>软件故障 DMA的中断请求>I/O设备的中断请求 高速设备>低速设备 输入设备>输出设备 实时设备>普通设备。③引出中断服务程序找到该中断专属的解决程序。

2023-07-04 17:42:59 89

原创 计算机组成原理第十六次笔记(总线)

三总线结构:主存总线负责CPU和主存的连接,I/O总线负责CPU和各输入输出设备之间联系,DMA线路可直接从I/O接口连接到主存而不需要CPU的连接。优点:结构简单、成本低。总线带宽:总线的最大数据传输率:单位时间总线最多可传输的数据的位数。总线传输周期:完成一次总线传输操作所需的时间,包括申请阶段、寻址阶段、传输阶段、结束阶段。7.总线事务:从请求总线到完成总线使用的操作序列叫总线事务。总线工作频率:总线上操作的频率,是总线传输周期的倒数。总线宽度:总线上能传输的数据位数,指总线的数据线根数。

2023-07-04 15:03:10 72

原创 计算机组成原理第十五次笔记(异常和中断机制的概念、流水线)

对于缺页应在处理结束后再执行该指令,而除0这一类指令应直接终止进程的执行。控制冒险:当跳转指令有效时下一条应该执行的指令应该在跳转的位置而可能不是地址上挨着的下一条指令,流水线事先已经执行了,就会造成控制冒险。自陷:自己事先写好的一个trap指令,在接收到trap指令后根据不同的trap指令执行不同的操作,结束后跳到下一条指令执行。超长指令字结构:寻找各个指令中使用不同部件的指令合成一个指令,在执行时各个指令互不干涉。异常时指令在执行过程中发生的,而中断不和任何指令有关系,也不阻止任何指令的完成。

2023-07-04 10:40:36 369

原创 计算机组成原理第十四次笔记(硬布线和微程序控制器)

2.硬布线控制器:根据指令的要求、当前的时序及外部和内部的状态,按时间的顺序发送一系列微操作控制信号,由复杂的门电路和触发器构成,主要靠硬件实现。硬布线内的结构在出厂时就已经设计好,不同的指令译码和状态信息会导致唯一的一条信号出路被联通,产生唯一的一个操作信号。①同步控制方式:所有的控制信号均来自一个统一的时钟信号,采用最长的微操作作为标准采用完全统一的具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令。3.CPU的控制方式:控制单元控制一条指令的运行实际上是执行一串微操作序列的过程。

2023-07-03 18:01:20 1092

原创 计算机组成原理第十二次笔记(CPU)

3.指令周期:CPU从主存中取出并执行一条指令的时间为指令周期,指令周期由若干个机器周期组成,机器周期由若干个时钟周期组成,指令周期常由:取值周期、间址周期、执行周期、中断周期组成,不同的指令可能没有间址和中断。2.CPU的基本结构:CPU可分为运算器和控制器两个部分,运算器包括多个通用寄存器、ACC、ALU、MU、PSW等控制器包括PC、IR、CU、MAR、MDR等。4.机器周期:机器周期指完成指令周期一个环节所需要的时间,例如取指令就为一个机器周期,一条指令周期中的机器周期时间可以不同。

2023-07-01 20:25:23 45

原创 计算机组成原理第十一次笔记(程序的机器级表示,指令集概念)

1.常用汇编指令。

2023-07-01 18:00:45 106

原创 计算机组成原理第十一次笔记(指令格式)

2.2扩展操作码:高阶的操作码留出一条来作为低阶操作码的扩展,例:0000 0000 0000是一个指令格式,地址为4位,可以有2^4个二地址指令,则可以把1111留下作为操作码的扩充,则可以扩充出16个一地址指令。4.2.8基址寻址:将CPU中的基址寄存器的内容加上指令格式中的形式地址A形成操作数的有效地址,基址寄存器的内容不会变,可给出不同的指令来改变形式地址,所以有利于编制浮动程序,扩大寻址范围。4.2.1隐含寻址:指令中不给出操作数的地址,在指令中暗含了操作数的地址,例如ACC累加器的地址。

2023-07-01 15:41:36 321

原创 计算机组成原理第十次笔记(虚拟存储器)

计算机空间中主存空间很小但外存(辅存)空间很大,通常计算机只能从主存中交互数据,再由主存向外存交换数据,如果使用虚拟存储,可以将主存和外存合并,只需给出地址,若该块已在主存中则直接与主存交互,若其不在主存中则需采用替换算法将其换入主存。页表存放在主存中,保存着所有的虚页号和实页号的对照,记录着虚页调入主存所保存的位置,常驻主存。(1)页表:对应Cache中的Cache标记行,包含有效位(是否在主存中)、脏位(在主存中是否被修改)、替换算法位、物理页号(在主存中时)或磁盘地址(不在主存中时)。

2023-06-28 19:51:39 243

原创 计算机组成原理第九次笔记(外存+Cache)

(2)写回法:当CPU对Cache命中时,只将数据写回Cache不写入主存,当Cache换出时才整体写入主存,减少访存次数,但有隐患。需要一个脏位来记录是否改变。10.Cache的基本工作原理:将最近执行过的程序从主存中复制一份放入Cache中,当CPU执行时会根据访存地址优先查看Cache,若Cache未命中再查主存,并把该数据块放入Cache。(1)全写法:当CPU对Cache写命中时,必须把数据同时写入Cache和主存,能随时Cache和主存的数据统一,但会增加访存次数,降低Cache的效率。

2023-05-25 17:46:34 76

原创 计算机组成原理第八次笔记

数据字数的扩展指的是对存储器包含的存储字的数量的增加,而对于存储字本身不变化。CPU的数据线数和芯片的数据位数不一定相同,比如计算机以为32位为机器字长,每次数据传输32位二进制数,而芯片只有1k×8位的芯片,所以就要对芯片进行位扩展,用4片1k×8位的芯片组成一个1k×32位的存储器,每片芯片作为存储器的8位。存储器同时扩充字数和位数,原理相当于字扩展和位扩展的相加,在字扩展时根据地址选择一块芯片,而在字位同时扩展时会根据地址选择一块多个芯片,这些芯片是构成一个位扩展的组合,在相同地址上存储不同的位数。

2023-05-23 16:51:31 101

原创 计算机组成原理第七次笔记

相隔的时间为刷新周期。2)多体并行存储器:由多个存储模块组成,当存入一个数据时该体进入恢复时间,则将下一个数据存入下一个体,当一个循环回到第一个体时其恢复时间已经结束,大大减少了恢复时间的影响。SRAM(static):静态随机存储器,由双稳态触发器(6晶体MOS管组成)造价昂贵,集成度低(单位面积上能安装的SRAM的数量少),所以一般用于Cache的成分。2)分散刷新:把每行的刷新分散在每个工作周期中,当一次存取操作后刷新某一行,优点是不存在死区,缺点是每次存取都要多耗时,降低了整机的速度。

2023-05-21 18:42:15 113

原创 计算机组成原理第六次笔记

41A4C000H展开为0100 0001 1010 0100 1100 0000 0000 0000按照IEEE754单精度表示则符号位为0表示正数,阶码为1000 0011偏置值为127表示阶数为+4,尾数为1.010010011,阶数为4将尾数左规4次结果为10100.010011结果为20.59375。0舍1入法:将计算舍去的后两位保留下,经计算后看保留位的最高位为1则将最终答案末位加1,反之则不变。(3)规格化:将相加后的尾数进行规格化,阶码也要随之变动。恒置1法:只要有舍去就将尾数末位置1.

2023-05-21 14:49:04 138

原创 计算机组成原理第五次笔记

IEEE754有两种标准一种是32位包含1位符号位,8位阶码位,23位尾数的位,另一种为64位,包含1位符号位,11位阶码位52位尾数位。正下溢:以32位浮点数举例,正下溢表示超出了浮点数的精度表示范围,浮点数正数的最小值为符号位为正,阶数最小,尾数最小为0.其中阶码用移码表示为000 0000表示2的-7次方为-128次。最大值:阶码全1、尾数全1.阶码全1表示为2^7-1=127尾数全1表示为1-2的-24次方但IEEE754为省略一位的所以尾数应乘2,固最大值为2的127次方×2-2的-23次方。

2023-05-17 15:55:44 777 1

原创 计算机组成原理第四次笔记

原码的乘法每次加0或x,补码乘法每次要加x的补码或-x的补码或0取决于辅助位和MQ最低位的差。1.原码的乘法:原码的乘法将符号独立出来,两个乘数的符号异或得到得数的符号,数值部分分步乘得最终的答案。2.补码的乘法:补码的乘法采用双符号位和辅助位计算,将MQ的最后一位后添加一位辅助位,初值为0.x的补码11.0011,y的补码00.1011,-x的补码00.1101。MQ的最低位为1,则将X的值加上ACC的值再置于ACC中。MQ的最低位为1,则将X的值加上ACC的值再置于ACC中。

2023-05-10 20:52:12 68

原创 计算机组成原理第三次笔记

(2):采用双符号位时:采用双符号位的优点相当于将符号提前存储起来了,若产生溢出必定导致符号位的变化,这时可以通过和提前存储的符号位进行比对,若不同则表明计算溢出了。CF(Carry),无符号数的进位借位标志位,仅对无符号数有效,计算方式为最高位进位异或Sub位(减为1,加为0),若为1则发生进位/借位(溢出)。SF(Sign ),符号位,仅对有符号数有效,作为判断结果正负的标志,最高位即为SF的标志,为1时符号为负。ZF(zero),零位,对所有数都有效,判断结果是否为0,若为0则标志位为1。

2023-05-10 17:16:25 508

原创 计算机组成原理第二次笔记

知识点4:原码,补码,反码,移码;正数原码反码补码相等,负数原码符号位以外取反得反码,反码末位加1得补码。知识点7:原码,反码的0有两种表示方式,补码、移码的0只有一种表示方式,所以补码、移码在负数可表示的数值要多一个(2^-n<=x<=2 ^n-1)知识点2:十进制转二进制,整数部分除2余1则记1,除2余0则记0;小数部分乘2乘2大于1则记1,减去一后继续乘2,小于1则记0.知识点6:x的相反数的补码为x的补码包括符号位在内各位取反末位加1.知识点8:比较负数移码时:数值部分越大,绝对值越小,真值越大。

2023-05-07 17:14:13 26

原创 【无标题】

机器字长:计算机一次能处理的二进制数的最大位数,一般为存储字长的整数倍,ALU、通用寄存器大小为机器字长。指令字长:一条指令长度的二进制位数,一般为存储字长的整数倍,IR长度为指令字长。指令和数据在存储时不区分,系统在指令执行的不同阶段取的二进制码来区分是指令还是数据,在取指阶段取到的是指令,在执行阶段取到的是数据。知识点6:源程序的生成步骤:1.预处理 2.编译:将预处理后的源文件进行编译生成汇编程序 3.汇编:将汇编程序翻译成机器语言指令 4链接:将机器语言指令连接成为可执行文件。

2023-05-06 17:24:08 15

原创 Steam显示Failed to load steamui.dll解决方法

找到目录文件下的Steam.exe随便重命名后重新启动就可以了

2022-02-20 12:32:26 8692 4

原创 编译原理前五章知识点整理

第一章:翻译程序:将源语言程序转换为目标语言程序。编译程序:源语言是高级语言,目标语言为低级语言(汇编语言、机器语言)的翻译程序叫做编译程序。诊断编译程序:用于帮助程序开发和调试的编译系统。优化编译系统:着重于提高目标代码效率的编译系统。编译过程:(1)词法分析(2)语法分析(3)语义分析与中间代码产生(4)优化(5)目标代码生成遍:对于源程序或者中间结果扫描一次,加工处理生成新的中间结果或目标程序。编译原理前端:与源代码有关与目标机无关。编译原理后端:与目标及有关与源代码无关。为什么要分

2021-11-27 10:41:00 399

原创 Android Studio获取EditText值时容易犯的错误,新人必看!

AS小白一枚,今天我在写AS时遇到一个错误,就一个简单的调取EditText值时出错了,怎么看得到的值都是空值,对比网上搜到的代码感觉差不多啊,结果就是只能获取到空值,最后才发现获取EditText文本值时的代码password = (EditText) findViewById(R.id.s_password);放在了按钮监听器外面,这就导致当我们打开那个Activity时马上我们声明的EditText值就获取了,这样获取到的就只能是一个空值,我们把这句移到OnClick里面就正常了,希望大家以我为戒不要

2021-09-24 19:49:22 1214

原创 [Android Studio java文件获取布局中元素存在的问题

Android Studio java文件获取布局中元素存在的问题 明明声明了按钮变量也获取到了控件ID了,在使用按钮点击监听器的时候也没报错,结果到了Android Studio的模拟机却直接闪崩。问题代码如下class SignupActivity extends AppCompatActivity { private Button signup = null; @Override protected void onCreate(Bundle savedInstanceStat

2021-09-22 23:45:09 2839 1

原创 c++蓝桥杯准备笔记1

1.一个特殊值的用法:includeusing namespace std;double const PI=3.14159265358979323;int main(){主要内容}2.确定的显示小数点后位数的方法:引用iomanip拓展包在输出时格式为:cout<<fixed<<setprecision(7)<<s<<endl;fi...

2019-12-16 17:08:20 467 1

原创 Java学习4.1

字节变化:将一个负数和一个超出字节原范围(155)通过&(与)运算可将字节范围转化为0-255.如果是一个正数则不会改变。若要三维数组横向打印:如下图一只需改变循环的是行,列,高即可改变。矩阵:二维数组。矩阵转置即为将矩阵的行和列互换。oop面向对象编程;ooa面向对象分析ood面向对象设计。C语言面向过程。Java面向对象。类:对现实事物的软件抽象。对象:切实存...

2019-11-18 08:46:32 72

原创 JAVA学习3.2

函数的重载函数类型,参数个数不同皆可通过除非void型其它函数类型最后一句一定是返回语句,一旦运行出现返回语句,返回语句后的代码为不可达代码,不会运行。数组:同一种数据的集合;相当于一个容器。java数组定义区别于cpp格式为:int [] arr=new int[10]数组的默认值是0java不存在指针...

2019-11-18 08:41:15 53

原创 java学习3.1

将一个字节byte范围转换成0~255之间的整数将符号位转化为数字位,而不是符号位。byte原本范围为-128—127或 且可用电路串联并联联想帮助记忆运行符号常用于银行密码上函数:function(方法)1.函数格式:1.修饰符2.返回值类型3.函数名(参数类型,参数名称,…){//函数体return …;}public static viod main()1:修饰...

2019-11-12 17:32:16 81

原创 java学习2.2

弱类型:var强类型:javajava有八种基本类型如图一各类型所占存储空间和cpp相同但相较下多了Boolean 所占一字节引用类型1.class2.interface3.数组[]整数默认int型小数默认double型java不同类型降格需添加(降后类型)强制转化会导致精度丢失如cpp中float型转为int型升格不需添加额外标志字符型和数字型转换遵循ASCII码特...

2019-11-11 17:21:11 78

原创 Java学习2.1

path:顺序搜索class path:java类的目录java的制作过程1:编写(记事本)2:编译(javac+源文件路径)3:运行程序(java+类名)jvmjava virtual machine=java虚拟机jrejava runtime environment=java运行时环境jdkjava development kitjava home:供基于java的软...

2019-11-10 20:49:12 65

原创 JAVA学习1

1:常识操作:1.操作系统Windows:桌面级操作系统,流畅,用户体验好,不稳定,安全性差。Linux:服务器操作系统,稳定,安全性好,用户体验差。快捷键:Ctrl+c=复制;Ctrl+v=粘贴;Ctrl+z=撤销;Ctrl+s=保存;Ctrl+a=全选;end=行尾(光标);home=行首;shift+home=光标到行首的内容选中;shift+end=光标到行尾的内容选中;Win...

2019-11-03 20:20:06 66

空空如也

空空如也

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

TA关注的人

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