自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 页面置换算法

最佳置换算法:理论上的算法。原理:所选择的被淘汰的页面是以后永远不再使用的,或许是在最长(未来)时间内不再被访问的页面。因为无法预知页面走向,所以是无法实现的。但能用该算法去评价其他算法。当需要换出时往后看页面走向,看看后续不会再用哪些,或者说短时间内不会再用哪个,就将哪个调换出先进先出(FIFO)置换算法:顾名思义就是先来到的,等需要被换出时则找最先进来的换出最近最久未使用(LRU)置换算法:和最佳置换算法相反,是看已经被换入的页面走向,看哪个最近最久没被使用过,就换出简单Clock置换算

2020-05-19 22:35:05 252

原创 虚拟存储器

为了扩充内存而出现。原理就是先将一部分必要的先引入内存,其他的放在外存,等需要的时候再调入,将长时间不用的及时调出内存以给调入的分配空间。虚拟存储器的定义:指具有请求调入功能和置换公功能,能从逻辑上对内存容量加以扩充的一种存储器系统。虚拟存储器的特征:离散性;多次性;对换性;虚拟性虚拟存储器的实现:一、请求分页系统:1、硬件支持:请求分页的页表机制;缺页中断机制;地址变换机构2.实现请求分页的算法:请求调页软件、页面置换算法二、请求分段系统:1、硬件支持:请求分段的段表机制:缺段中断机制;地

2020-05-19 22:34:18 178

原创 分页和分段的区别

分页和分段的区别:二者都采用离散分配方式,且都通过地址映射机构来实现地址变换,但再概念上二者时完全不同的。因为:1.页时信息的物理单位,分页式为实现离散分配方式,提高内存利用率。分页仅仅是由于系统管理的需要而并不是用户的需要。而段则是信息的逻辑单位,是为了更好地满足用户的需要。2.页的大小固定且由系统决定,而段的长度取决于用户所编写的程序。3.分页的作业地址空间时一维的,而分段的作业地址空间是二维的。...

2020-05-19 22:33:23 2469

原创 基本分段存储管理方式

页的大小是固定的,段的大小是不固定的方便编程:将作业按逻辑关系划分为若干个段,每个段都是从0开始编址。逻辑地址由段名(段号)和段内偏移量(段内地址)决定信息共享;信息保护;动态增长;动态链接地址结构:段号和段内地址,允许一个作业最长有64K个段,每个段最大长度为64KB段表的作用:实现从逻辑段到物理内存的映射和页表相比类似,但因为段的长度是不固定,所以如果超过段长也会发生越界中断,这是页所不具备的,也就是说段要判断两次,第一次判断段号,看是否越界,第二次判断段长,看是否越界。...

2020-05-19 22:32:53 350

原创 对换与地址变换机构与访问内存的有效时间

对换的目的:解决内存不足的问题,防止不运行的进程长时间占用内存类型:整体对换:以整个进程为单位,广泛适用于分时系统中部分对换:(页面对换/分段对换):对换时"页"或"段"为单位实现对换必要功能:对换空间的管理:外存划分:(1)文件区:离散分配,存放文件(2)对换区:连续分配,存放从内存换出的进程进程的换出:处于阻塞状态且优先级最低的进程;把该进程的程序和数据传送到磁盘的对换区;若传送无误则回收该进程内存空间并修改PCB进程的换入:定时查看所有进程状态,找到“就绪”态但被换出的进程,找

2020-05-19 22:32:21 387

原创 分区分配、算法与回收

单一连续分配:最简单的一种存储管理方式就是将内存分为系统区和用户区;只能用于单用户,单任务的操作系统中。优点:方法简单缺点:内存和CPU利用率低,难于实现共享固定分区分配:把内存用户区划分成若干固定大小的分区,每个分区只装入一道作业划分方法:1.分区大小相等缺点:不灵活,分区太大或太小都不行2.分区大小不相等把用户区分成含有多个较小的分区,适量的中等分区及少量的大分区。内存分配的具体实现:把分区按大小进行排队并建立分区使用表,表项包括:分区好,分区起始地址,分区大小,分区状态要装

2020-05-19 22:31:19 1425 1

原创 存储器的层次结构与程序的装入和链接

多级存储器结构:CPU寄存器,主存(这两个时可执行存储器,在时钟周期内使用指令进行访问,是电子动作),辅存(通过I/O设备实现访问,是I/O动作)CPU寄存器:寄存器主存:高速缓存、主存、磁盘缓存(上面两个由OS管理,断电信息则丢失)辅存:磁盘、可移动存储介质从上往下、从左往右容量依次由小到大,速度依次由快到慢程序的装入和链接编译:由编译程序将用户源代码编译成若干个目标模块链接:由链接程序将目标模块以及它们所需的库函数链接在一起,形成一个完成的装入模块装入:由装入程序将装入模块装入内存

2020-05-19 22:30:00 132

原创 如何避免死锁

系统安全状态:1.安全状态:按某种进程顺序来分配资源,直至满足每个进程对资源的最大需求,使每个进程都能顺利完成,如果系统找到这样一个安全序列,则成系统处于安全状态系统处于不安全状态不意味着一定会转入死锁死锁定理:S为死锁状态的充分条件是:当且仅当S状态的资源分配图是不可完全简化的。若分配图不能完全简化,则所有的简化顺序,都讲得到相同的不可简化图。就是当前空闲资源无论如何分配都不能满足任何一个进程使其完成从而造成死锁的发生。死锁的解除:1.剥夺资源:剥夺其他进程的资源给死锁进程;剥夺死锁进程本身的资

2020-05-19 22:29:25 209

原创 详解死锁

资源问题:按是否能被抢占:可剥夺性资源,如cpu,主存;不可剥夺性资源,如磁带机,打印机按是否能重复使用:可重用性资源,如打印机;临时性/消耗性资源死锁产生可能的原因:1、竞争资源:1.竞争不可抢占性资源而引起的死锁,简单来说就是想申请的资源已被其他进程占用,自己又没办法抢夺被占用的资源2.竞争可消耗资源而引起的死锁:简单来说就是你想用的资源在别人手里,别人想用的资源在你手里,要想不死锁,就要先抛出手中的资源,这样就能不产生死锁,而当每个人都比较自私,都不抛出自己手中的资源,就会产生死锁2、进

2020-05-19 22:28:55 146

原创 最早截止时间有限(EDF)算法、最低松弛度优先(LLF)算法

最早截止时间有限(EDF)算法:截止时间越早,优先级越高最低松弛度优先(LLF)算法:松弛度=完成截止时间-仍需运行时间-当前时间松弛度越低优先级越高,当正在执行时有其他松弛度更低的进程进入队列也不会暂停当前队列,而是当更低的进程松弛度减为零时才会进行进程切换。优先级倒置:形成:优先级高的进程被优先级低的进程延迟或阻塞,因共享临界资源问题如何解决:进入临界区后处理机不允许被抢占;发生倒置时,将高优先级进程的优先级给低优先级,也就是将优先级互换...

2020-05-14 16:30:13 5876 1

原创 轮转调度算法、多队列调度算法

轮转调度算法(RR):主要用于分时系统按先来先服务原则进行调度,但有时间片,当时间片用完时,进程无论是否完成,就会切换下一个进程,而未完成的进程则会排队到末尾等待其他进程时间片用完后再被调度。特点:简单易行、平均响应时间短,不利于处理紧急任务多队列调度算法:适用于多处理机系统就绪队列可以有多个,每个就绪队列的调度算法可以不同。梯队优先级:一梯队>二梯队>三梯队>…多级反馈队列调度算法:设置多个就绪队列,每个队列有不同的优先级和不同长度的时间片;每个队列都用先来先服务算法;

2020-05-14 16:29:09 1214

原创 先来先服务算法、短作业优先、非抢占式优先权调度算法、高响应比优先调度算法(动态优先权)

(FCFS)先来先服务调度算法:既能用于作业调度,也能用于进程调度,简单来说就是谁先到谁先执行周转时间=完成时间-到达时间带权周转时间=周转时间/服务时间有利于长作业,不利于短作业短作业优先调度算法:完成时间=开始执行时间+服务时间周转时间=完成时间-到达时间带权周转时间=周转时间/服务时间平均周转时间=全部周转时间/总(作业/进程)个数不利于长作业,没有考虑作业的紧迫度,不准确。优先级调度算法:能用于作业和进程调度非抢占式优先权调度算法:等进程完成或阻塞时才会分配给其他进程抢

2020-05-14 11:03:48 8566

原创 计算机操作系统05——作业调度

作业:程序和数据+作业说明书。作业步:编译、链接、运行作业调度的主要任务:1.决定接纳多少个作业:多道程序度的确定根据系统的规模和运行速度2.决定接纳哪些作业:取决于调度算法:(FCFS)先来先服务调度算法、(SJF)短作业/(SPF)短进程优先调度算法、基于优先级的调度算法、响应比高者优先调度算法分时系统和实时系统中不需要作业调度,因为作业调度只适用于批处理系统...

2020-05-13 22:21:20 535

原创 计算机操作系统04——处理机调度

三级调度:高级调度:调度对象为作业,将外存的作业调入内存,只用于批处理系统,运行频率低中级调度:内外存的信息对换,内->外,外->内。便于内存管理低级调度:调度对象为进程,决定就绪队列中哪个进程获得处理机,最基本的调度,适用于所有操作系统,运行频率高处理机调度算法的目标:处理机调度算法的共同目标:资源利用率:CPU利用率=CPU有效工作时间/(CPU有效工作时间+CPU空闲等待时间)公平性;平衡性;策略强制执行批处理系统的目标:平均周转时间:周转时间是指从作业呗提交系统(外存)

2020-05-13 22:20:44 165 1

原创 计算机操作系统03——进程通信与线程

进程通信:1.共享存储器系统(低级)2.基于共享存储器的通信方式(高级)消息传递系统直接通信和间接通信1.直接通信:发送Send(),接收Receive()。源进程直接把消息发送给目标进程2.间接通信方式:利用第三方传递消息,第三方称为信箱(1.)信箱的创建和撤销(2.)信箱结构:信箱头,信箱体(3.)消息的发送和接收:信箱可由操作系统创建,也可由用户进程创建,分为三类:私用信箱,共享信箱,共用信箱直接消息传递系统实现:1.通信链路:建立:显式和隐式(主要用于单机)2.消息的格式:

2020-05-12 21:20:19 120

原创 计算机操作系统02——进程与管程

进程控制:创建进程;进程状态转换;终止进程原语:由若干条指令组成用于完成一定功能的一个过程,用于实现进程的通信和控制。CPU执行状态:系统态和用户态引起创建进程的事件有:因系统创建引起:用户登录;作业调度;提供服务用户进程自行创建:应用请求创建过程:调原语Create():申请空白PCB;分配资源;初始化PCB;将新进程插入就绪队列进程终止:1.正常结束2.异常结束:越界错;保护错;非法指令;特权指令错;运行超时3.外界干预终止进程:调原语destroy():根据标识符读取其状态

2020-05-11 22:27:54 503 1

原创 计算机操作系统01——基础

单道批处理系统:只有一个程序在内存,其余都在外存多道批处理系统:优点:提高内存和利用率。缺点:周转时间长,无交互能力分时系统:TSS关键问题:及时接收,及时处理特征:多路性,独立性,及时性,交互性实时系统:实时控制实时任务:按是否呈现周期性来划分为周期性实时任务和非周期性实时任务按对截止时间的要求来划分为硬实时任务(规定时间内必须完成)和软实时任务操作系统的基本特性:并发性:并发:在同一段时间内交替运行并行:同时发生,同时运行共享性:共享才能实现并发,二者相互依存虚拟性:时分复用

2020-05-09 22:26:23 217

原创 Python基础19——进程、线程与协程

进程>线程>协程进程在Linux中用fork调用,在Windows中用multiprocessing 里的process来调用进程,可以理解为程序,线程可以理解为程序里的功能,或者说窗口,而协程就是更合理地分配资源,对资源进行调度的进程阻塞式和非阻塞式进程池:Pool非阻塞式:进程池名称.apply_async()全部添加至队列,立刻返回,没有等其他进程执行完毕再返回,回调函...

2020-05-06 09:57:35 92

原创 Python基础18——正则表达式

爬虫的基础,正则表达式^开头,$结尾re模块re.match():从第一位即开头找,没有就返回None,有就返回下标和内容re.search():将要匹配的都匹配一遍,就算不在开头也能找到,但找到一个以后就不会再找了re.findall():找全部,没找到则返回一个空列表re.sub(pattern, repl, string, count=0, flags=0):替换,repl可为字...

2020-05-06 09:57:03 109

原创 Python基础17——包及一些类库的使用

包的导入和模块导入差不多,为from 包名 import 模块名有个__init__.py的模块,是初始化模块,导包时如果有这个模块就会加载此模块没有__all__时,不能导入 * ,有则可以循环导入的原因:将导包代码放在了方法的上面,因为导包就意味着加载,这样无法执行方法而在加载包的时候卡住,无限循环导包循环导入问题解决方法:1.重构代码 2.把导包语句放在方法里 3.把导包语句放在最后...

2020-05-06 09:56:30 126

原创 密码学基础11——SSL和SET

安全套接层协议:SSLIPSec是在替代IP,而SSL是在TCP头前加上SSL通过使用证书来确认身份六步骤:接通阶段、密码交换阶段(一般使用RSA)、会谈密码阶段、检验阶段、客户认证阶段、结束阶段只支持双方通信,是点对点的关系SSL协议有两层结构:底层:SSL记录协议层(机密性、消息完整性),分片、压缩、附加MAC、加密、附加SSL报头高层有三个协议:SSL握手协议层(4阶段,重用...

2020-05-06 09:55:46 236

原创 Python基础16——多继承、单例和导入模块

多继承就是一个类继承多个类如class 类名(父类1,父类2)在Python2中多继承的顺序是从左到右,深度优先,就是一条路走到头,如果没有发现自己想要的方法就再换一条路一直到头而以后都为广度优先,即每层的搜索完没搜索到才会向下一层搜索单例是为了某些特定的情况而使用的,就是不管你创建了多少个对象,这些对象始终都是同一个地址Python中是不存再方法的重载的,也就是说只要方法名相同,无论你...

2020-05-06 09:55:14 280

原创 密码学基础10——网络安全协议

OSI七层网络模型从上往下依次为:应用层(大量协议)、表示层(语法和语义,编码方式)、会话层(不同的机器上建立会话,上下文环境)、传输层(进程之间可靠传输、端口号)、网络层(ip地址、报文)、数据链路层(有效端到端,Mac地址,帧,帧尾用来效验)、物理层(传送比特流)套接字:IP-Adress:portTCP/IP协议簇模型应用层(包含OSI上三层)、传输层(TCP/UDP)、网络层(IP...

2020-05-05 19:42:37 348

原创 Python基础15——has a 和is a

has a:一个类中调用了另一个类的对象,就是把另一个类当做一种类似于int,或者str等类型的一种属性is a:就是继承,一个类继承了另一个类公式:class 类名(父类):如果子类中没有定义构造方法,就会去自动调用父类中的构造方法子类可以继承父类的属性,也可以重写父类的方法,如果子类和父类中有重名的方法,那么调用时就会以子类中的为准,即使子类中定义的方法有参数,而你实例化对象是时未...

2020-05-05 19:41:16 720

原创 密码学基础09——防火墙

防火墙基本原理就是对通过防火墙的数据包的信息进行检查,检查的越多,越安全,但速度也就会越慢。功能:服务控制,方向控制,用户控制,行为控制安全策略:1.除了特别允许的,其他的全拒绝2.除了特别拒绝的,其他的全允许软件防火墙:就是软件当防火墙用,安全性比硬件防火墙差,当攻击较多时可能会拦不全硬件防火墙:专门的硬件当防火墙,需要系统芯片级防火墙:不需要系统个人防火墙、边界防火墙:内网和外...

2020-05-05 19:40:41 269

原创 密码学基础08——信息隐藏

隐藏发送消息的事实。信息隐藏:隐秘通道;信息隐秘技术:语义隐秘、技术隐秘;匿名技术;数字水印:鲁棒性水印:数字指纹、数字水印:可见数字水印、不可见数字水印;脆弱性水印应用:数据保密、数据的不可抵赖性、数据的完整性、数字作品的版权保护、防伪常见技术:替换技术、变换技术、扩频技术、统计方法、变形技术、载体生成方法、其他...

2020-05-05 19:40:02 284

原创 密码学基础07——密钥管理与信息隐藏

对称密码体制密钥管理:密钥分类、密钥分配公钥密码体制密钥管理:公钥的分配、数字证书、X.509证书、公钥基础设施PKI密钥生命周期:产生、分配、启用/停用、更新/替换、撤销、销毁对称密钥分配:A选择好密钥并分给B;第三方选择并分给A和B;用最近用过的密钥加密新的密钥并发给对方;使用秘密信道公钥密钥分配:A通过PKI得到B的公钥,A随机产生一个对称密钥,并用B的公钥加密对称密钥发给B,B得到...

2020-05-05 19:39:13 389

原创 Python基础14——初始面向对象

静态方法:和类方法一样,只不过不需要传参数,且装饰器不同,需要的装饰器为@staticmethod,都可以调用类方法,但都无法调对象方法。魔法方法:new():开辟空间,将空间传给__init__()用的,因为Python本身是由这个方法的,所以当你写了这个方法后,自带的方法就不能用了,所以你要返回它本身带的__new__()方法的值,这个返回值返回的时开辟的地址空间,将这个地址传递给ini...

2020-05-05 19:38:42 96

原创 密码学基础06——身份认证与访问控制

身份认证手段:一、口令认证技术:1.静态口令认证:就比如及时通讯软件,或者银行密码,等不常常更改的密码。登录时,用户系统会产生一个时间戳,将时间戳用口令和固定的密码算法加密,然后和用户名一起发送到相应的平台,平台进行解密来验证时间戳,但平台时看不到用户密码的,对于用户的账号密码只能通过比对加密后的值来判断是否登录成功。容易受到字典攻击,暴力破解,社工,种植木马等攻击2.动态口令认证:采...

2020-05-05 19:38:06 1278

原创 Python基础13——初识面向对象

类的创建就是用classclass 类名:类,顾名思义,就是具有相同属性的物体,所以创建好一个类时,这个类所产生的对象都会具有类的特征,也就是属性像这个就是一个很简单的类,这里明定义了魔法函数,也就是def init(),这就像java里的构造器。你在类里定义的属性,那么当你创建对象时用到该属性,它就会先在自己的对象的空间里找这个属性,没有就去类里面找,而当你把属性直接创建在def i...

2020-05-05 19:37:27 136

原创 密码学基础05——消息认证与数字签名

消息认证:用来确认消息没有被篡改且是由真正的发送发发来的数据报文鉴别:鉴别的内容:报文源、报文时间性、报文内容报文源鉴别:对称密码:可以先使用函数将明文产生一段验证码放在明文后,再一起加密然后发送,对方解密后比对验证码就可以进行比对(不能先加密再签名)非对称密码:先使用自己的私钥对数据进行加密产生一段验证码放在明文后面,再一起使用对方的公钥进行加密,对方收到后先使用自己的私钥解密,再使...

2020-05-05 19:36:01 844

原创 Python基础12——推导式、生成器、迭代器

列表推导式:当条件后再接条件时则意味着后面的条件实在前面条件里面,即是一个嵌套但当条件里有else时,则格式为[表达式 if 条件 else 表达式 for 变量 in 列表名]集合推导式:与列表推导式差不多,就是括号变成了{},且会自动去除重复项生成器(generator):将符号[]换成符号()即将推导式变为生成器生成器的作用,减少不必要的内存占用调用时可使用生成器内置函数....

2020-05-05 19:35:31 78

原创 密码学基础04——非对称加密、RSA算法

非对称加密:有两个密钥,一个是公钥一个是私钥,公钥是公开的,私钥是自己保存的。A与B通信,A要给B发送消息,就要用B的公钥加密,在公钥环上找到B的公钥,用公钥加密完后发送给B,B用自己的私钥解密。当需要验证身份时,则A先在消息后面写上用自己私钥加密后的签名,然后再用B的公钥进行加密,再交给B,B先用自己的私钥解密,解密后再用A的公钥解密看消息是否由A发送。不能先加密信息然后再签名。因为这样当...

2020-05-05 19:33:59 367

原创 Python基础11——异常

try:放执行语句,定义最好在外面定义,因为如果在里面定义则只能在try里使用except:或except 异常:有异常才会进入,放可能出现的异常,except后可加异常类型来规定当出现什么类型的异常时显示什么内容当为except 异常 as err:print(err)时,会打印出异常的具体内容else:当不出现异常时才会进入else语句finally:无论是否出现异常,最后...

2020-05-05 19:33:11 71

原创 密码学基础03——双重DES与3重DES、分组加密与序列加密

双重DES原理:两个加密密钥:用第一个加密密钥加密后,再用另一个密钥进行二次加密,解密则先用第二次加密的密钥解密,然后再用第一次加密的密钥进行解密三重DES原理:使用第一个密钥对明文进行加密得到密文1,再使用第二个密钥对明文进行解密(第二个密钥不等于第一个密钥),之后再使用第一个密钥进行加密得到密文三重DES的四种模型:DES-EEE3DES-EDE3DES-EEE2DES-EDE2...

2020-05-05 19:30:58 2989

原创 密码学基础02——详解DES算法

Feistel模型:基于四方面进行设计:1.数据映射设计:可映射(一一对应)和不可映射(不是线性关系)2.扩散和扰乱:一.扩散:把明文的统计特征消散到密文中,让明文的每个数字影响许多密文的数字,反之亦然一般采用方式:平均操作进行加密重复使用对数据的某种置换,并对置换结果在应用某个函数二.扰乱:密文的统计特性与加密密钥的取值之间的关系尽量复杂。一般采用方式:复杂的替代算法(...

2020-05-05 19:27:45 1125

原创 密码学基础01——大纲-初识密码学

加密三要素:明文/密文密钥:一个固定长度的字符串,根据加密算法算得长度算法:加密算法和解密算法例:=================加密明文:520密钥:222算法:明文+密钥密文:742=================解密密文:742密钥:222算法:密文-密钥明文:520=================对称加密与非对称加密对称加密:双方使用同一个密钥进...

2020-05-04 13:00:11 922

原创 Python基础10——文件

open(r’路径’,’r或者w’)函数进行对文件的操作r为读,rb为读转为二进制,rt是读txt等文本文档时用的w为写,wb为写转为二进制,为w时,是将原来的东西覆盖,而使用a时,则是在原来的内容上追加当开了流之后就要关闭流Python直接使用with open() as 名称:此模板即可在用完流后自动关闭流读read():将所知路径的所有内容读出来readline():只读一行...

2020-05-04 12:50:52 99

原创 Python基础09——全局变量与局部变量、内部函数、闭包、装饰器、匿名函数等

全局变量:顾名思义,全局变量就是在函数外部定义的变量,在函数内部可以查看,即可以打印,且可以再整个文件中都可以使用,可变的如list,dict,set,在函数内部想要修改直接修改即可,但想int,str,tuple等不可变的类型的变量想要在内部函数修改时则需要使用global 变量名来进行定义局部变量:只能在自己函数定义内使用,出去函数则无法使用,当为嵌套函数时,如果想在内层函数里改变外部函数里...

2020-05-04 11:35:13 166

原创 Python基础08——方法

增加代码的复用性,减少冗余度使用def 定义方法def 方法名([参数]):内容也需要缩进调用为方法名()当传入的参数为*参数名时,意味着传入的可以是多个值,为tuple类型当想传入一个元组类型时,要用*元组名的形式传入,也就是拆包与装包,**同理为**时,为字典,即一个key对应一个value的形式,也就是往里面传参数时要用key=value这样的形式,不能只写值,也就是关键字参数...

2020-05-04 11:31:21 69

空空如也

空空如也

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

TA关注的人

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