特权指令、访管指令、陷入指令、广义指令
对操作系统、计算机组成原理入门具有一定指导意义,对计算机考研知识理解具有一定辅助作用,对工作中的实际应用可能基本没用。 特权指令 ○ 从指令系统(指令集)角度定义,在指令系统中拥有用于管理硬件和整个系统安全的指令,让程序随意使用具有极高危险性。不得在用户态(目态)执行,只能在核心态(管态)执行,用户态程序如果运行特权指令将发生异常,并切换到管态由操作系统接管cpu。所以用户程序不得使用特权指令,需要执行特权指令需要使用防管指令,进入核心态。 访管指令 ○ 同样从指令集的角度定义,或者说从硬件角度(cpu状态)。防管指令,是用户程序自愿进管的指令(进管同时也意味着程序放弃cpu的控制权),该指令本身属于非特权指令,可在用户态执行,执行后进入核心态。核心态是通过cpu置相应标志表明当前处于核心态。cpu进入核心态后可以执行指令集中的所有指令(包括特权指令和非特权指令,但不执行访管指令)。 陷入指令 ○ 原则上可看作访管指令,但是从操作系统的角度定义的。访管强调的是cpu从用户态切换到了核心态,可以执行指令集中的所有指令。而陷入(自陷、陷阱)指令强调程序从用户程序从用户台...
浅谈对计算机的理解--外设
首先声明本人非计算机专业,也不玩数码硬件,可以说我下面的内容既不偏向理论也不偏向实际应用。单纯是个外行人对计算机的初步印象,只做个人笔记,当然写在公开领域,自然避免不了外人看到,所以事先声明,以免误导各位。 1)硬件 提到计算机硬件,首先应该说一说开关。可以说简单的分析,计算机内部就是由一个个的开关组成。或者说就是由开关演化而来的。乍一听,可能很难接受,这种简单东西的组合是怎么认识代码,是怎么运行软件的。 我只能说你这种想法是把人的观点强加给计算机而已,它不过是一堆没有感情的芯片电路,就一铁疙瘩,懂什么代码。它不过是按既定的物理规律运行而已。 甚至从我的角度来看即便是为计算机量身定做二进制也是计算机看不懂的东西,计算机所理解的这一切都是人强加给它的。 这就相当于按下开关,通上电灯它亮了,而你把他看作是灯知道了你按下了开关,然后亮了,而且你还在这好奇,这灯它到底是咋知道我按下了开关的?灯知道个什么玩意,其实这不过是看待问题的角度本身强加给了它意义,计算机和灯本质上也并无差别。抛开人强加给它的意义,会更容易来理解计算机。 下面来简析一下计算机的基本结构,此处的计算机不以任何现实机器为...
IPV4地址划分详解
1. 概述: 早期网络分配是只能以网段为单位进行(可能是出于路由简单的目的,网段类似电话号区号)。类比到电话4位区号,7位座机号,共11位。当电话呼叫时,线路进行转接的时候只需看区号就可以直接把电话接到某个地区,地区再看座机号接到具体某一户。这样一来转接过程各自分工让电话接通变得更加简单。网络通信也是类似,ip地址总共32位(二进制),但是网络号(区号)和主机号(座机号)不像11位电话那样始终固定为4位7位。 ip的划分稍微复杂一点,其划分原则为:ip地址中若第一位为0,则网络号8位,主机号24位,被称为A类地址。若第一位为1第二位为0,则网络号16位,主机号16位,被称为B类地址。若第一二位为1第三位为0,则网络号24位,主机号8位,被称为C类地址。早期网络并非个人使用,而是科研机构军工学校企业等使用,故ip的分配也是以网络号为单位,而不是以单个ip为单位来售卖。类比到电话就是,直接区号分配给你,而不是分配手机号。机构的用户多就购买一个A类网段,约可以连16M(2^24,主机号24位)台电脑,人少就购买B类网段,约可以连64k(2^16)台电脑,更少则购买C类网段,约可以连2...
解决Windows各种dll缺失报错
动态链接库简单理解就是在软件装入内存时才进行动态的链接,与程序链接成完整的可执行文件。 简单明了的说明就是,和软件主体组装到一块,动态链接库多是一些模块化可复用的代码,实现了一些频繁使用,或者难以实现的操作,供程序直接调用。减少开发人员的工作量,同时动态库在需要执行时才调入内存,一个库可用供多个进程同时使用,可以降低内存占中。 另一方面,因为操作系统很多底层的系统调用操作或者频繁使用的操作,每个软件都要用,而且这些操作可能还比较危险,直接交给软件实现也存在一些风险。所以系统自带了很多动态链接库文件,编程人员需要使用相关功能,直接调用系统的链接文件即可。 于是就会出现很多软件运行时提示缺少dll文件的情况,因为软件使用的dll文件,系统中并不一定有,或者对应的dll版本不一样。 下面正式说明解决方案了,切忌不要提醒缺什么dll文件,就下载什么dll。 首先版本选择就很复杂,全靠运气,其次软件运行可能缺的不止这一个dll文件,而每次运行它只能发现一个报错一次,一次次运行然后一个个下肯定不现实。 微软的动态链接库全部包含在一个叫Microsoft Visual ...
hexo避坑小结
简单记录一下搭建过程 启动(可能需要安装python) hexo init / hexo init <dir> 此为hexo初始化,后加目录名则创建文件夹,将博客搭建环境部署在此文件夹下;否则将环境部署在当前文件夹下,故如果初始化不加文件夹,请手动创建一个文件夹后,在该文件夹下执行此命令。 远程部署 安装hexo-deployer-git,此为将hexo部署到github的插件,安装时若报错,提示缺eslint,则直接安装eslint即可,‘npm install hexo-deployer-git --save’,另外可能是hexo-deployer-git没有创建软链接,手动创建即可:‘sudo ln -s /usr/local/<nodejs安装目录>/lib/node_modules/hexo-deployer-git /usr/bin/hexo-deployer-git’. 标签 注意hexo配置文件中每个’:‘后都有一个空格’ ',不要忘记,其次标签’tags:‘多标签不可在用’,‘隔开的形式,而是分行来写,各行之前均有一个’...
MathJax
基本数学公式语法(of MathJax)[^queto1] [^queto1]: CSDN: 作者: ethmery 概述 在markdown中输入数学公式需要LaTaX语法的支持。 基本语法 呈现位置 正文(inline)中的LaTeX公式用$...$定义 例句为:$\sun_{i=0}^N \int_{a}^{b} g(t,i)\text{d}t$ 显示为:∑i=0N∫abg(t,i)dt\sum_{i=0}^N \int_{a}^{b} g(t,i)\text{d}t∑i=0N∫abg(t,i)dt 单独显示(display)的LaTeX公式用$$...$$定义,此时公式居中独立成块显示 例句为:$$\sum_{i=0}^N \int_{a}^{b} g(i,t)\text{d}t$$ 显示为:$$\sum_{i=0}^N \int_{a}^{b} g(i,t)\text{d}t$$ 下列描述语句中若非特别指出均省略$ 希腊字母 显示 命令 显示 命令 α\alphaα \alpha β\betaβ \beta γ\gammaγ \g...
Markdown第一篇文章
[TOC] 介绍 这是第一次使用markdown来写文章 基本语法 *来表示强调,一颗 **斜体、*两颗 ** 粗体、三颗 *** 粗斜体 块级引用 使用> 来标识 或者使用ESC 下方的`来标识,块内引用三个点 12这是块级引用这是块级引用 使用四个空格来表示块级引用 效果同上方 行内引用同样使用 ` 键,使用一个,效果如下:这是一段行内引用 文本样式修改 使用=和~可以改变文本样式,= 背景色 ==强调,~ 删除符号 上下标 2<sup>10</sup> 会变为为210,H<sub>2<sub>O 会变为为H2O 注释 链接 脚注 图片 注释使用*[],这是一个 注释 *[这是一个注释]: 悬停后现实此注释 使用超链接有三种方式 内部链接, 格式 1[内部链接](http://ahulearn.com) 外部链接, 格式 12[外部连接][1][1]: http://ahulearn.com 图片在的链接的基础上增加了一个’!',同样存在内部引用,和外部引用。 脚注用来注明引用来源格式为[^n] 例如:markd...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick Start Create a new post 1$ hexo new "My New Post" More info: Writing Run server 1$ hexo server More info: Server Generate static files 1$ hexo generate More info: Generating Deploy to remote sites 1$ hexo deploy More info: Deployment
