首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何启用计算机的休眠,电脑休眠

大家好,又见面了,我是你们的朋友全栈君。 电脑休眠指的是将当前处于运行状态的数据保存在硬盘中,整机将完全停止供电。...中文名 电脑休眠 处 于 运行状态的数据保存在硬盘中存 储 在硬盘中 进 入 休眠状态和唤醒的速度都相对较慢 电脑休眠工作模式 编辑 语音 为什么需要休眠 尽管电脑硬件运行速度越来越快...与待机相比,休眠是不能通过外部设备来唤醒的,它和正常开机一样启动电脑;不过和开机相比,休眠后启动电脑无需一个一个进程地来启动,只须要将硬盘中的内存镜像读取到内存中即可。...由于内存中的资料就是电脑当前的“状态”,为保持这个状态不变(可理解为不能压缩),系统必须在硬盘中开辟一个和内存容量大小相等的空间以保证能装下整个内存的“当前状态”,而这个空间的名字就叫hiberfil.sys...这样当希望恢复的时候,就可以直接恢复到待机前状态。这种模式并非完全不耗电,因此如果在待机状态下供电发生异常(例如停电),那么下一次就只能重新开机,所以待机前未保存的数据都会丢失。

1.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【面试官】知道synchronized锁升级吗

    任何对象都有一个monitor与之关联,当monitor被持有后,对象就会处于锁定状态。而在同步代码块的开始位置,在编译期间会被插入monitorenter指令。...synchronized需要频繁的获得锁、释放锁,这会带来了不少性能消耗。 另外没有获得锁的线程会被操作系统进行挂起阻塞、唤醒。而唤醒操作需要保存当前线程状态,切换到下一个线程,也就是进行上下文切换。...上下文切换是很耗费资源的一种操作。 2.2 保存线程状态 面试官:为什么上下文切换要保存当前线程状态?...这就跟读英文课文时查字典一样,我们要先记住课文里的页数,查完字典好根据页数翻到英文课文原来的位置。 同理,CPU要保证可以切换到上一个线程的状态,就需要保存当前线程的状态。...而这四种锁状态就是为了适应各种不同场景来使得线程并发的效率最高。 没有任何线程访问同步代码块,此时synchronized是无锁状态。 只有一个线程访问同步代码块的场景的话,会进入偏向锁状态。

    21698

    MIT 6.S081 教材第七章内容 -- 调度 -- 上

    另一个问题是,为什么RISC-V中有32个寄存器,但是swtch函数中只保存并恢复了14个寄存器?...这里遵循RISC-V函数调用约定,只保存callee-saved registers,但是大家可以思考为什么内核线程之间切换只需要保存callee-saved registers,而用户态到内核态之间的切换却需要保存所有通用寄存器状态呢...而内核线程之间的切换其实还是函数调用的过程,不涉及异常指令流,所以属于RISC-V正常的函数调用约定,因此按照约定,我们这里需要保存相关callee-saved registers。...我记得sleep最后也调用了sched函数,虽然bracktrace可能看起来会不一样,但是还是会包含sched。所以我这里只介绍了一种进程间切换的方法,也就是因为定时器中断而发生切换。...我记得sleep最后也调用了sched函数,虽然bracktrace可能看起来会不一样,但是还是会包含sched。所以我这里只介绍了一种进程间切换的方法,也就是因为定时器中断而发生切换。

    37531

    区块链技术与应用04 北大肖臻

    对于merkle tree,叶节点是账户信息,如果不规定叶节点在账户中的出现顺序,那么构建出的merkle tree 不是唯一的,算出的根哈希值也不一样。 问题:比特币中也不排序,为什么没有问题?...image.png 问题:为什么要保留历史状态? 以太坊把出块时间降到10几秒后,临时分叉是常态。上面的胜出了,下面的回滚。靠这些历史记录。比特币中只是简单的转账交易,回滚很容易。...但是以太坊中智能合约很强,要想回滚必须保持历史状态。 image.png block header 的数据类型。 ParentHash:前一个区块块头的哈希值。 UncleHash:叔父区块的哈希值。...交易树和收据树只是把当前区块中的交易和收据组织起来,而状态树是要把系统中所有账户的状态都包含进去,不管账户和当前区块是否有关系。 bloom filter数据结构。...交易驱动的状态机(Transaction-driven state machine)。 状态转移必须是确定性的。 状态树可否设计成只包含这个区块涉及的交易的账户的状态而不是全部账户的状态?

    3.9K00

    synchronized就该这么学

    synchronized需要频繁的获得锁、释放锁,这会带来了不少性能消耗。 另外没有获得锁的线程会被操作系统进行挂起阻塞、唤醒。而唤醒操作需要保存当前线程状态,切换到下一个线程,也就是进行上下文切换。...上下文切换是很耗费资源的一种操作。 1.4 保存线程状态 面试官:为什么上下文切换要保存当前线程状态?...这就跟读英文课文时查字典一样,我们要先记住课文里的页数,查完字典好根据页数翻到英文课文原来的位置。 同理,CPU要保证可以切换到上一个线程的状态,就需要保存当前线程的状态。...而这四种锁状态就是为了适应各种不同场景来使得线程并发的效率最高。 没有任何线程访问同步代码块,此时synchronized是无锁状态。 只有一个线程访问同步代码块的场景的话,会进入偏向锁状态。...而volatile只适用于状态独立的场景,例如上文对flag变量的读写。 volatile编写的代码是比较难以理解的,不清楚整个流程和原理很难维护代码。

    15165

    MYSQL MVCC实现原理详解

    在读多写少的OLTP应用中,读写不冲突是非常重要的,极大的增加了系统的并发性能 了解MVCC前,我们先学习下Mysql架构和数据库事务隔离级别 MYSQL 架构 MySQL从概念上可以分为四层,顶层是接入层...一个事务在执行后,数据库必须从一个一致性状态转变为另一个一致性状态。...事务日志采用的是追加的方式,因此写日志的操作是磁盘上一小块区域内的顺序I/O,而不像随机I/O需要在磁盘的多个地方移动磁头,所以采用事务日志的方式相对来说要快得多。...SELECT InnoDB会根据以下两个条件检查每行记录: InnoDB只查找版本早于当前事务版本的数据行(也就是,行的系统版本号小于或等于事务的系统版本号),这样可以确保事务读取的行,要么是在事务开始前已经存在的...UPDATE InnoDB为插入一行新记录,保存当前系统版本号作为行版本号,同时保存当前系统版本号到原来的行作为行删除标识。 保存这两个额外系统版本号,使大多数读操作都可以不用加锁。

    1.3K41

    xv6(15) 进程一:数据结构

    这种形式来分配资源到现在应该也很熟悉了,像文件系统部分的 $inode$,缓存块都是这样分配与回收的。 进程结构体表是一个全局的数据,配了一把锁给它,这把锁主要用来保护进程的状态和上下文。...$scheduler$,调度器就是一段内核代码,当需要调度的时候,它来决定当前 $CPU$ 执行哪一个状态为 RUNNABLE 的进程,或者说为状态是 RUNNABLE 的进程分配 $CPU$,怎样理解都没问题逻辑上都对...栈对于程序的重要性不言而喻,不同特权级下有不同的栈,所以 4 种特权级按理说应该有 4 种特权级栈(虽然只是用 0 和 3),但为什么 $TSS$ 中只记录了 3 种特权级栈(0,1,2)呢?...上一个任务的指针 这个属性字段与任务嵌套有关,任务嵌套就是指当前任务是被前一个任务调用才执行的,也就是当前任务嵌套于前一个任务当中,执行完之后还要回到前一个任务,有点类似与函数调用的意味,函数调用留下了返回地址...; uint eip; }; 同样是上下文,为什么内核态的就只用保存这么几个寄存器?

    30510

    Raft

    日志就是草稿,记录了所有操作,而状态机就是最终的书,反映了系统的当前状态。主从模型为了实现上述目标,Raft使用强领导模型,即要求集群中的一个副本充当Leader,其他副本充当Follower。...Raft算法中规定,如下情况可以投赞成票:这个任期中当前节点谁都没投过,这个消息来源第一个来拉票的,那就投给消息来源节点;这个任期中当前节点投过了,而且我投的就是同个节点,那就不介意再投一次。...然而,一个Leader不能断定一个之前任期里的日志块被保存到大多数服务器上的时候就一定已经提交了。...这样在同一时刻就同时保证了,前的所有老的日志块就会被提交。...角色(只复制不参与选主)横向扩展集群的读能力。

    5200

    Raft算法之快照篇

    一、什么是快照 快照(snapshot)是最简单的压缩方式。在快照中,全部的当前系统状态都被写入到快照中,存储到持久化的存储中,然后在那个时刻之前的全部日志都可以被丢弃。...打个比方,像Redis这样的KV系统,系统的当前状态就是当前所有key的值及过期时间,把这些信息全部写入到磁盘中就是快照。...二、Raft算法中为什么需要快照 Raft算法是通过日志来保证节点最终一致的,而日志是持续增加的,对于一个7*24小时运行的系统,日志会一直增加,这样导致几个问题: 1、磁盘占用空间过大; 2、新的节点加入进来后...7、丢弃全部日志 上面条件满足后,将快照保存到本地,本地所有日志全部丢弃。 当然前提是前面的条件都不满足,具体不细述。...8、能够使用快照来恢复状态机(并且装载快照中的集群配置) 恢复状态机就不用说了,直接拿快照恢复状态机的数据,举例来说KV系统,发送的快照如果只有a=1, b=2这样的状态,即把所有数据清空,只保留上面2

    1.4K30

    线程的中断

    设备出错或是传输结束 每一种类型的中断事件都对应一位二进制的比特位,系统中也对应一个中断寄存器用于保存当前系统所遇到的所有中断事件,1 表示该类型的中断事件发生,0 表示未发生。...而我们的中断处理程序首先会将当前所有寄存器中的数据经由主存保存到磁盘,接着停止 CPU 的运行,直至停机。 下次开机时,中断处理程序会从磁盘加载中断前的寄存器数据,恢复现场。...你可以思考一下,一个 WAITING 状态的线程被中断为什么要抛出一个异常?...那么,我们的主线程在调用 interrupt 方法中断一个线程,当发现它的状态为 WAITING 时,将唤醒它并更改指令寄存器的值以指向异常代码块,期待你自己来处理这个中断。...这也是为什么 wait、sleep、join 这些方法必须处理一个受检查的异常 InterruptException 的原因,因为这些方法会阻塞线程,而如果在阻塞期间收到中断,你也应当提供中断的处理逻辑

    1.8K30

    52.说一下 synchronized 底层实现原理?_synchronized底层实现

    大家好,又见面了,我是你们的朋友全栈君。...其中,Lock Record 中还保存了以下信息: Lock Record 描述 Owner 初始时为NULL表示当前没有任何线程拥有该 monitor record,当线程成功拥有该锁后保存线程唯一标识...Candidate 用来避免不必要的阻塞或等待线程唤醒,因为每一次只有一个线程能够成功拥有锁,如果每次前一个释放锁的线程唤醒所有正在阻塞或等待的线程,会引起不必要的上下文切换(从阻塞到就绪然后因为竞争锁失败又被阻塞...是否已经指向当前线程的 LockRecord 了,如果是说明已经获取到锁了,直接重入,否则说明还在竞争锁,此时进入自旋等待; 其实这个有个疑问,为什么获得锁成功了而CAS失败了?...,synchronized 无论如何都会直接加 Monitor 锁,实际上针对无锁情况或者锁竞争不激烈的情况,这样会比较消耗性能,因此,在 JDK6 引入了锁升级的概念,即:无锁状态-》偏向锁状态-》轻量级锁状态

    1.6K11

    固态硬盘掉电怎么恢复数据

    把闪存的块信息写入到闪存(比如当前写的是哪个闪存块,以及写到该闪存块的哪个位置,哪些闪存块已经写过,哪些闪存块又是无效的,等等); l 把SSD其它信息写入到闪存。...正常掉电不会导致数据的丢失,重新上电后,SSD只需把掉电前保存的相关信息(比如映射数据,闪存块信息等等)重新加载,又能接着掉电前的状态继续工作。...异常掉电恢复的目的一方面是尽可能恢复用户数据,把损失减到最低;另一方面是让SSD经历异常掉电后还能正常工作。 SSD为什么怕异常掉电?它不是用闪存做存储介质吗?它不是数据掉电不丢失吗?没错。...不过,一个SSD,除了数据掉电不丢失的闪存,还需要有掉电数据丢失的RAM,SRAM或者DRAM。...一种办法就是SSD定期的把SSD中RAM的数据(包括映射表和缓存的用户数据)和SSD相关的状态信息(诸如闪存块擦写次数,闪存块读次数,闪存块其它信息等等)写入到闪存中去,与正常掉电前SSD要做的事情类似

    2.7K30

    01 | 日志系统:一条SQL更新语句是如何执行的?

    checkpoint 是当前要擦除的位置,也是往后推移并且循环的,擦除记录前要把记录更新到数据文件。write pos 和 checkpoint 之间的是还空着的部分,可以用来记录新的操作。...“追加写”是指binlog文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。 我想你肯定会问,为什么会有两份日志呢? 因为最开始 MySQL 里并没有 InnoDB 引擎。...而 InnoDB 是另一个公司以插件形式引入 MySQL 的,既然只依靠 binlog 是没有 crash-safe 能力的,所以 InnoDB 使用另外一套日志系统——也就是 redo log 来实现...这个参数我建议你设置成 1,这样可以保证 MySQL 异常重启之后数据不丢失。...一个原因是,redolog只有InnoDB有,别的引擎没有。 另一个原因是,redolog是循环写的,数据会被清理,不持久保存,binlog的“归档”这个功能,redolog是不具备的。

    46520

    全网最火Java面试题

    当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。...ThreadLocal 为每一个线程提供一个变量的副本。每个线程可以单独访问自己的副本,而不与其他线程共享,当前线程结束后GC。...2).sleep()方法会将线程转入阻塞状态,直到经过阻塞时间才会转入就绪状态;而yield()方法不会将线程转入阻塞状态,它只是强制当前线程进入就绪状态。...发生在cup执行线程期间,cpu执行下一个任务前会保存上一个任务的任务状态,以便下次切换回这个任务的时候可以加载任务的执行状态,继续执行。从任务保存,到再加载的过程,就是一次上下文切换。...INSERT时,保存当前事务版本号为行的创建版本号 DELETE时,保存当前事务版本号为行的删除版本号 UPDATE时,插入一条新纪录,保存当前事务版本号为行创建版本号,同时保存当前事务版本号到原来删除的行

    67210

    浅析 synchronized 底层实现与锁相关 | Java

    切出:一个线程被剥夺处理器的使用权而被暂停运行 切入:一个线程被选中占用处理器开始运行或者继续运行 切出切入的过程中,操作系统需要保存和恢复相应的进度信息,这个进度信息就是*上下文* 3....优缺点 自旋锁尽可能的减少线程的阻塞,这对于锁的竞争不激烈,且占用锁时间非常短的代码块来说性能能大幅度的提升,因为自旋的消耗会小于线程阻塞挂起操作的消耗。...自适应自旋锁 JVM 对于自旋次数的选择, jdk 1.5 默认为 10次 ,在1.6引入了适应性自旋锁,适应性自旋锁意味着自旋的时间不再是固定的了,而是由前一次在同一个锁上的自旋时间以及锁的拥有者的状态来决定...轻量级锁的加锁过程: 在代码进入同步块的时候,如果同步对象锁状态无锁状态且不允许进行偏向(锁标志位为"01"状态,是否为偏量锁为"0"),虚拟机首先将在当前线程的栈帧中建立一个名为锁记录 (Lock Record...同步块执行速度较长。 总结 到了这里,我们知道了为什么 synchronized 关键字的底层实现以及锁的状态变化过程。

    34130

    【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用

    #pragma pack(push) 保存当前对齐方式,但不改变对齐值。 此形式仅保存当前对齐设置,不做修改,适合复杂的嵌套对齐场景。...#pragma pack(push, n) 保存当前设置,并设置新的对齐方式。 局部修改对齐方式,可嵌套使用。 #pragma pack(push) 保存当前设置,不修改对齐方式。...3.1 基本语法 #pragma warning 用于控制编译器发出的警告信息,主要有以下几种形式: 语法形式 作用 说明 #pragma warning(push) 保存当前警告状态。...\n"); } // 保存当前警告状态 #pragma warning(push) // 禁用警告 C4700:局部变量初始化前使用 #pragma warning(disable : 4700)...保存警告状态并禁用警告 C4700: #pragma warning(push) 保存当前警告状态。

    75510

    腾讯面经汇总--C++后端

    对于同步调用来说,很多时候当前线程还是激活的,只是从逻辑上当前函数没有返回而已。 就是调用我(函数),我(函数)没有接收完数据或者没有得到结果之前,我不会返回。...事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样 一致性 一致性是指事务使得系统从一个一致的状态转换到另一个一致状态。...右值指临时对象,只在当前语句有效,右值又可以细分为纯右值、将亡值。...mysql中的视图 改变一个视图其它事务能看到吗 mysql为什么用b+树 线程如何调度 多路复用 消息队列 1.什么是消息队列 2.如何保证消息不丢失 3.如何保证消息不重复 如何保证线程安全...大端小端问题,怎样通过网络发送(考察网络序主机序转换的问题) 大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址端。

    1.6K30

    出门右转不用关门(已升级自动门),只要会CRUD的!

    上期有人说没有自动门,所以这一期我特地造了自动门,这门没有四五块造不下来。 注意:只是CRUD的搬砖工就不需要看了,看了也忘了,只需要拉到最后,点赞、在看、分享,一键三连然后收藏起来就行了。...事务特性 事务特性就是普通都知道的ACID,那么什么是ACID,估计有些货跟我之前一样,只知道这个词,不知道每个字母代表的是什么,这次就给翻译翻译什么叫TMD惊喜(不,说错了,是字母),我还特地下了一个有道词典...并发事务问题 脏读: 一个事务正在对一条记录做修改,在这个事务完成并提交前,这条记录的数据就处于不一致状态;这时,另一个事务也来读取同一条记录,如果不加控制,第二个事务读取了这些“脏”数据,并据此做进一步的处理...每一次对数据库的修改,都会在 Undo 日志中记录当前修改记录的事务号及修改前数据状态的存储地址(即 ROLL_PTR),以便在必要的时候可以回滚到老的数据版本。...注意:MVCC 只在 Read Commited 和 Repeatable Read 两种隔离级别下工作。 「如何区分快照读和当前读呢?」

    52120

    shiro源码篇 - 疑问解答与系列总结,你值得拥有

    朋友哭得稀里哗啦的说:兄弟你别说了,我幸福个锤子,就是她把我打骨折的。 揣摩下此刻男人的内心   路漫漫其修远兮,吾将上下而求索!   ...创建一个关联request/response对的WebSubject实例,用于后续request/response的执行   也就是目前我们还只是看到了当前请求有认证状态,当前会话还没有看到认证状态;撇开...归纳下这个问题:shiro是如何保存当前会话认证状态的,是上述中的某种实现方式,还是shiro有另外的实现方式   shiro是如何保存会话认证状态的     每次请求都会生成新的subject,如果我们把认证状态只放到...为什么获取subject的authenticated,而不是直接获取session的认证状态,我还没弄清楚为什么,难道是为了组件的分工明确?...)中的authenticationInfo进行匹对验证;认证信息不建议缓存;     授权由注解方式,配合aop实现目标方法前的增强织入;认证过程是将缓存(或数据库)中的authorizationInfo

    41850
    领券