-
伙伴系统和slab内存分配机制详解
所属栏目:[安全] 日期:2020-12-24 热度:149
当在用户模式下运行进程请求额外内存时,从内核维护的空闲页帧列表上分配页面。这个列表通常使用页面置换算法来填充,如前所述,它很可能包含散布在物理内存中的空闲页面。也要记住,如果用户进程请求单个字节内存,那么就会导致内部碎片,因为进程会得到[详细]
-
页面置换算法及其优缺点详解
所属栏目:[安全] 日期:2020-12-24 热度:101
本节,讨论几种页面置换算法。为此,假设有 3 个帧并且引用串为: 7,1,2,3,4,7,1 FIFO页面置换 FIFO 算法是最简单的页面置换算法。FIFO 页面置换算法为每个页面记录了调到内存的时间,当必须置换页面时会选择最旧的页面。 注意,并不需要记录调入页面的确[详细]
-
什么是内存交换
所属栏目:[安全] 日期:2020-12-24 热度:53
进程必须在内存中以便执行。不过,进程可以暂时从内存交换到备份存储,当再次执行时再调回到内存中(图 1)。交换有可能让所有进程的总的物理地址空间超过真实系统的物理地址空间,从而增加了系统的多道程序程度。 图 1 使用磁盘作为存储仓库的两个进程的[详细]
-
(移动)硬盘物理结构详解
所属栏目:[安全] 日期:2020-12-24 热度:123
由于内存通常太小而且不能永久保存所有数据和程序,因此计算机系统必须提供外存来备份内存。现代计算机系统采用磁盘(硬盘)作为信息(程序与数据)的主要在线存储介质。换句话说,硬盘或磁盘为现代计算机系统提供大量外存。 图 1 硬盘的物理结构 在概念上[详细]
-
多线程模型:一对一模型、多对一模型和多对多模型
所属栏目:[安全] 日期:2020-12-24 热度:110
迄今为止,我们只是泛泛地讨论了线程。不过,有两种不同方法来提供线程支持:用户层的用户线程或内核层的内核线程。 用户线程位于内核之上,它的管理无需内核支持;而内核线程由操作系统来直接支持与管理。几乎所有的现代操作系统,包括 Windows、Linux、M[详细]
-
信号量及其使用和实现(超详细)
所属栏目:[安全] 日期:2020-12-24 热度:159
互斥锁,我们刚刚讨论过了,通常认为是最简单的同步工具。本节将会讨论一个更棒的工具,它的功能类似于互斥锁,但是它能提供更为高级的方法,以便进程能够同步活动。 一个信号量 S 是个整型变量,它除了初始化外只能通过两个标准原子操作:wait () 和 sign[详细]
-
临界区问题及其解决办法(抢占式内核和非抢占式内核)
所属栏目:[安全] 日期:2020-12-24 热度:128
我们从讨论所谓的临界区问题开始考虑进程同步。 假设某个系统有 n 个进程 {P 0 ,P 1 ,…,P n-1 }。每个进程有一段代码,称为临界区,进程在执行该区时可能修改公共变量、更新一个表、写一个文件等。该系统的重要特征是,当一个进程在临界区内执行时,其[详细]
-
先来先服务调度(FCFS)算法及优缺点
所属栏目:[安全] 日期:2020-12-24 热度:108
毫无疑问,最简单的 CPU 调度算法是先来先服务(FCFS)调度箅法。釆用这种方案,先请求 CPU 的进程首先分配到 CPU。 FCFS 策略可以通过 FIFO 队列容易地实现。当一个进程进入就绪队列时,它的 PCB 会被链接到队列尾部。当 CPU 空闲时,它会分配给位于队列[详细]
-
Windows线程调度策略(超详细)
所属栏目:[安全] 日期:2020-12-24 热度:115
Windows 采用基于优先级的、抢占调度算法来调度线程。 用于处理调度的 Windows 内核部分称为调度程序,Windows 调度程序确保具有最高优先级的线程总是在运行的。由于调度程序选择运行的线程会一直运行,直到被更高优先级的线程所抢占,或终止,或时间片已[详细]
-
多级队列调度算法(含实例分析)
所属栏目:[安全] 日期:2020-12-24 热度:111
在进程容易分成不同组的情况下,可以有另一类调度算法。例如,进程通常分为前台进程(或交互进程)和后台进程(或批处理进程)。这两种类型的进程具有不同的响应时间要求,进而也有不同调度需要。另外,与后台进程相比,前台进程可能要有更高的优先级(外[详细]
-
CPU调度准则(完整版)
所属栏目:[安全] 日期:2020-12-24 热度:111
不同的 CPU 调度算法具有不同属性,选择一个特定算法会对某些进程更为有利。为了选择算法以便用于特定情景,我们必须考虑各个算法的属性。 为了比较 CPU 调度算法,可以采用许多比较准则。选择哪些特征来比较,对于确定哪种算法是最好的有本质上的区别。这[详细]
-
多级反馈队列调度算法详解
所属栏目:[安全] 日期:2020-12-24 热度:86
通常在使用多级队列调度算法时,进程进入系统时被永久地分配到某个队列。例如,如果前台和后台进程分别具有单独队列,那么进程并不从一个队列移到另一个队列,这是因为进程不会改变前台或后台的性质。这种设置的优点是调度开销低,缺点是不够灵活。 相反,[详细]
-
优先级调度算法及其优缺点
所属栏目:[安全] 日期:2020-12-24 热度:95
SJF?算法是通用优先级调度算法的一个特例。每个进程都有一个优先级与其关联,而具有最高优先级的进程会分配到 CPU。具有相同优先级的进程按 FCFS 顺序调度。SJF 算法是一个简单的优先级算法,其优先级(p)为下次(预测的)CPU 执行的倒数。CPU 执行越长,[详细]
-
互斥锁的原理及作用
所属栏目:[安全] 日期:2020-12-24 热度:166
操作系统设计人员构建软件工具,以解决临界区问题,最简单的工具就是互斥锁(mutex lock)。我们采用互斥锁保护临界区,从而防止竞争条件。 也就是说,一个进程在进入临界区时应得到锁;它在退出临界区时释放锁。函数 acquire() 获取锁,而函数 release()[详细]
-
git丢弃本地修改的所有文件(新增、删除、修改)
所属栏目:[安全] 日期:2020-12-10 热度:68
一,未使用 git add 缓存代码时。 可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。 此命令用来放弃掉所有还没有加入[详细]
-
使用git上传到码云分支的实现
所属栏目:[安全] 日期:2020-12-10 热度:101
1.开发环境 vue+element 2.电脑系统 windows 10 专业版 3.在开发的过程中,我们总是会使用到 git管理代码!使用方法如下: 4.登录自己的码云账号: 5.在自己电脑中,新建一个文件夹: 6.双击进入这个文件夹,右击 选择 :Git Bash Here 然后输入命令如下: 6-1: gi[详细]
-
VSCode中画UML图的方法实现
所属栏目:[安全] 日期:2020-12-10 热度:125
vscode-drawio 是一款 vscode 插件,支持在 vscode 中画流程图、思维导图、 UML 图 github 地址: https://github.com/hediet/vscode-drawio 安装 在 vscode 插件窗口内,搜索 vscode-drawio ,安装即可 使用 在 vscode 中打开 .drawio 扩展名的文件,自动[详细]
-
10分钟教你本地配置多个git ssh连接的方法
所属栏目:[安全] 日期:2020-12-10 热度:190
你最近换电脑了吗?还记得如何在本地配置多个 git ssh 连接吗?一般公司用的是自己内网部署的 gitlab 服务器进行代码管理,开发者使用的是公司的用户名和公司的邮箱,而在个人的开源项目中,我们的代码托管于 github,这个时候就需要两个或多个以上的 SSH-[详细]
-
Git版本控制常用命令及pycharm 使用git方法
所属栏目:[安全] 日期:2020-12-10 热度:132
SVN (集中式版本控制工具) GIT (分布式版本控制工具) git 服务器 git代码托管平台 github 自己搭建私服 gitblib git 客户端 linux : sudo apt install git window : git.exe git常见的命令 设置 git 用户身份 git config --global user.name '名字' ; gi[详细]
-
在IDEA(2020.2)中配置Git及使用Git的图文详解
所属栏目:[安全] 日期:2020-12-10 热度:60
先配置好git的本地地址,然后test,出现版本号说明测试成功! 二、 idea中使用git可以直接在idea中使用命令操作git 1.初始化本地仓库 选好项目点击OK即可。 2.添加到暂存区 3.提交到本地仓库 也可以在这里提交,效果一样只是位置不一样 4.推送至远程仓库 5[详细]
-
20个提高开发效率的VS Code快捷键(推荐)
所属栏目:[安全] 日期:2020-12-10 热度:172
所以,下面我列出了我最喜欢的快捷键。 1.多行转一行 在 MAC 上:Ctrl + J 在 Ubuntu/Windows 上:通过FilePreferencesKeyboard shortcuts打开快捷键的设置,并且绑定editor.action.joinLines你自己的快捷键。 2.格式化代码 这个快捷键可以帮助我们对代码[详细]
-
idea集成Git实现团队合作分工的原理详解
所属栏目:[安全] 日期:2020-12-10 热度:83
1.2. 设置邮箱 1.3. 创建企业 首页中点企业版创建企业。 1.4. 公司添加成员 1.4.1. 公司添加成员 1.4.2. 复制链接 1.4.3. 成员加入公司 1.4.4. 成员看到公司信息 1.4.5. 公司查看成员信息 1.5. 创建仓库 1.6. 安装git Git是目前世界上最先进的分布式版本控[详细]
-
最新版Git2.29.2超详细安装流程(图文详解)
所属栏目:[安全] 日期:2020-12-10 热度:165
选择需要的 Mac、Window、Linux/Unix 版本 Git官网入口:点我下载 二、安装流程 流程如下 安装结束 一起学习进步,加油吧少年~ (如果安装过程出现其他问题,大家可以留言一起解决) 到此这篇关于最新版Git2.29.2超详细安装流程(图文详解)的文章就介绍到这[详细]
-
详解git基本操作和指令
所属栏目:[安全] 日期:2020-12-10 热度:120
基本操作 一、基本操作命令 创建进入空文件夹 右键 - 点击 Git Bash Here 启动命令行(MAC 在当前文件夹打开终端) git init 仓库初始化 创建一个初始化文件 index.html git add index.html 将文件加入到暂存区 git commit -m '注释' 提交到仓库 m 是 mess[详细]
-
详解idea中Git的Stash Changes和UnStash Changes用法
所属栏目:[安全] 日期:2020-12-10 热度:147
图上红框为新增方法 2,使用git的stash Changes功能,如下图 3,查看本地代码变化,可以看到自己新加的方法没有了,又回到了从git上pull下来的最新状态 4,查看git的UnStash Changes功能 点击上图view,可以对比代码,点击 apply stash ,可以将stash的代码[详细]
