LLS.
码龄6年
关注
提问 私信
  • 博客:41,510
    41,510
    总访问量
  • 50
    原创
  • 1,543,926
    排名
  • 9
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山东省
  • 加入CSDN时间: 2018-12-01
博客简介:

weixin_43903568的博客

查看详细资料
个人成就
  • 获得19次点赞
  • 内容获得4次评论
  • 获得89次收藏
创作历程
  • 50篇
    2020年
成就勋章
TA的专栏
  • linux
    3篇
  • 计算机操作系统
    17篇
  • python
    19篇
  • 密码学基础
    11篇
兴趣领域 设置
  • 数据结构与算法
    数据结构
  • 移动开发
    kotlinflutterandroid studio
  • 软件工程
    性能优化
  • 学习和成长
    面试
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

页面置换算法

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

虚拟存储器

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

分页和分段的区别

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

基本分段存储管理方式

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

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

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

分区分配、算法与回收

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

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

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

如何避免死锁

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

详解死锁

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Python基础18——正则表达式

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

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

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