首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
【重学计算机】操作系统D2章:处理器管理
】的更多相关文章
【重学计算机】操作系统D3章:存储管理
1. 存储管理的基本概念 逻辑地址:用户地址,从零开始编号 一维逻辑地址:(地址) 二维逻辑地址:(段号: 段内地址) 主存储器的复用方式 按分区:主存划分为多个固定/可变分区,一个程序占一个分区 按页架:主存划分为多个固定页架,一个程序占多个页架 存储管理的模式 单连续:一维逻辑地址程序,占一个固定/可变分区 段 式:二维逻辑地址程序,占多个可变分区 页 式:一维逻辑地址程序,占多个页架 段页式:二维逻辑地址程序,占多个页架 地址转换:逻辑地址 --> 物理地址 静态重定位:程序装入内…
【重学计算机】操作系统D1章:计算机操作系统概述
1. 计算机软硬件系统 冯诺伊曼结构 以运算单元为核心,控制流由指令流产生 程序和数据存储在主存中 主存是按地址访问,线性编址 指令由操作码和地址码组成 数据以二进制编码 其他:参考<重学计算机-计算机组成原理> 2. 计算机操作系统的发展 概述:任何一台机器都有其操作平台和操作系统 洗衣机:开关表示.按钮控制.亮灯显示 演进过程 手工操作:手动调动地址和数据按钮录入内存,然后点运行 引进装入程序:用卡片和纸带,通过ROM上的装入程序载入内存 汇编语言:对指令提供了助记符号 高级语言:面向问题…
【重学计算机】操作系统D2章:处理器管理
1. 指令与处理器模式 指令执行周期:取指.译码.执行 指令分类(根据权限) 特权指令:只能被操作系统内核使用(启动IO,置PC值) 非特权指令:所有程序都能使用 处理器模式: 共有四种:0内核模式,1系统调用,2共享库程序,3用户模式 一般来说:只有0内核模式(能执行全部指令)和3用户模式(只能执行非特权指令) 模式切换: 用户模式 --> 内核模式(系统调用.异常.响应中断) 内核模式 --> 用户模式(中断返回指令) 2. 中断 概念: 操作系统是中断驱动的.即中断是激活操作系统的唯一方…
【重学计算机】操作系统D6章:并发程序设计
1. 并发程序的基本概念 程序顺序性 内部顺序性:CPU严格按照顺序执行指令 外部顺序性:程序员设计程序时往往用顺序设计的思想 顺序程序特性 程序执行的顺序性 计算环境的封闭性: 程序执行时犹如独占资源 计算结果的确定性 计算过程的可再现性 并发进程 无关的并发进程:一组并发进程,在不同变量集上运行 交往的并发进程:一组并发进程,共享某些变量,相互影响 并发进程制约关系 进程互斥:争夺某一个资源 进程同步:共同完成某一个任务,协调先后顺序 发生问题: 与时间有关的错误:结果错误.永远等待 临界区…
【重学计算机】操作系统D4章:设备管理
1. IO的控制方式 演进过程:轮询 --> 中断 --> DMA --> IO通道 经典布局:南北桥 PS:详见<计算机组成原理> 2. IO的实现 软件实现层次:硬件 --> 中断处理程序 --> 设备驱动程序 --> 独立于设备的IO软件 --> 用户空间的IO软件 IO缓冲: 解决问题: 设备与CPU速度不匹配 逻辑记录大小和物理记录大小不一致 减少IO操作对CPU的中断次数 实现:缓冲区 内存中开辟一个专门临时存放IO数据的区域 分类:单缓冲…
【重学计算机】计组D2章:数据表示
1.基本概念 真值:+0101,-0100:机器数: [x]原=0101 2.几种机器数 原码:x = -0101,[x]原 = 1101 反码:x = -0101,[x]反 = 1010 补码:x = -0101,[x]补 = 1011 移码:x = -0101,[x]移 = 2^n + x = 0011 PS:这里说说对补码与移码自己的理解.补码是为了化减法为加法方便计算机设计运算,移码是为了方便比较大小,用在浮点数的阶码中. 补码——任何一个有模的系统中,减法都可以通过加其补码来表示.最简…
【重学计算机】操作系统D5章:文件系统
1. 文件系统 文件系统概述 文件的组织: 逻辑结构:流式.记录式 物理结构:顺序.连接.直接.索引 文件的存取:顺序.直接.索引 文件的控制:逻辑控制.物理控制 文件的使用:打开.关闭.读.写.控制 文件的存储 块:存储介质上连续存储的区域,是主存与辅存信息交换的单位 顺序存取设备:光盘.磁带 直接存取设备:磁盘 2. 文件 文件的逻辑结构 流式文件:只是由一段字节序列构成的 记录式文件:有含义有结构的信息,比如员工工资记录 文件的物理机构 顺序文件:块块之间相连,批处理文件和系统文件一般都这…
【重学计算机】机组D4章:存储系统
1. 存储系统层次结构 主存速度缓慢的原因:主存增速与CPU不同步,执行指令期间多次访问主存 主存容量不足的原因: 存在制约主存容量的技术因素:如由CPU.主板等相关技术指标规定了主存容量 应用对主存容量需求不断扩大:window98 -- 8M,windows 8 -- 1G -----> 存储体系结构化层次: CPU -- Cache1 -- Cache2(解决速度) -- 主存 -- 辅存(解决容量) 存储体系结构化层次理论基础: 时间局部性:程序体现为循环结构 空间局部性:程序体现为顺…
【重学计算机】计组D1章:计算机系统概论
1.冯诺依曼计算机组成 主机(cpu+内存),外设(输入设备+输出设备+外存),总线(地址总线+数据总线+控制总线) 2.计算机层次结构 应用程序-高级语言-汇编语言-操作系统-指令集架构层-微代码层-硬件逻辑层 3.计算机性能指标 非时间指标 [字长]机器一次能处理的二进制位数 ,常见的有32位或64位 [总线宽度]数据总线一次能并行处理的最大信息位数,一般指运算器与存储器之间的数据总线的位数 [主存容量]主存的大小 [存储带宽]单位时间内与主存交换的二进制位数 B/s 时间指标 [主频f]时…
【重学计算机】机组D8章:输入输出系统
1. 输入输出系统概述 组成:外设.接口.总线.管理软件 基本功能 完成计算机内外的信息传递 保证CPU正确选择输出设备 利用缓冲等,实现主机与外设的速度匹配 特点:异步性.实时性.设备无关性 输入过程:CPU把地址值放入总线 --> CPU等候设备数据有效 --> CPU从总线读入数据存入寄存器 输出过程:CPU把地址值放入总线 --> CPU把数据值放入总线 --> 设备等数据有效取走数据 IO系统性能:存储IO.通信IO 连接特性:哪些设备可以和IO相连 IO系统容量:IO系…
【重学计算机】机组D7章:总线
1. 系统总线的特性及应用 总线概念:将计算机系统中各部件连接起来 总线分类:(外部/内部,系统/非系统,串行/并行,同步/异步...) 按用途分类: 存储总线:cpu与存储器 系统总线:连接存储总线和IO总线的中间总线 IO总线:连接外部设备 按位置分类: 外部总线:USB,火线(IEEE1394) 内部总线:PCI(连网卡),AGB(连显卡) (芯)片内总线:AMBA(ARM处理器) 按组成分类 数据总线:传数据,双向三态 地址总线:传地址,单向三态 控制总线:控制信号和时序信号 电源线和地…
【重学计算机】机组D6章:中央处理器
1. CPU的组成与功能 2. 数据通路 概念:执行部件间传送信息的路径,分共享通路(总线)和专用通路 抽象模型:时钟驱动下,A --> 组合逻辑 --> B D触发器定时模型: 时钟触发前要稳定一段时间:建立时间(Setup Time) 时钟触发后要稳定一段时间:保持时间(Hold Time) 时钟触发到输出稳定的时间:触发器延迟(Clk_to_Q) 与时钟周期的关系: 时钟周期 > Clk_to_Q + 关键路径时延 + Setup Time Clk_to_Q + 最短路径时延 &g…
【重学计算机】机组D5章:指令系统
1. 指令系统基本概念 指令集:一台机器所有指令的集合.系列机(同一公司不同时期生产):兼容机(不同公司生产) 指令字长:指令中包含的二进制位数,有等长指令.变长指令. 指令分类 根据层次结构:高级.汇编.机器.微指令 根据地址码字段个数:零.一.二.三地址指令 根据操作数物理位置 存储器-存储器(SS) 寄存器-寄存器(RR) 寄存器-存储器(RS) 根据指令功能:传送.算术运算.位运算.控制转移 指令格式:操作码+数据源+寻址方式 2. 寻址方式 指令寻址方式:顺序寻址,跳跃寻址 操作数寻址…
【重学计算机】计组D3章:运算方法与运算器
1. 定点数运算及溢出 定点数加减法:减法化加法,用补码直接相加,忽略进位 溢出:运算结果超出了某种数据类型的表示范围 溢出检测方法:统一思想概括为正正得负或负负得正则溢出,正负或负正不可能溢出 方法1:V = XYS + XYS(XY为两个加数的符号位,S为结果的符号位,_表示非),那么V = 1则为溢出 方法2:V = C0 ⊕ C1(C0是最高数据位产生的进位,C1是符号位产生的进位),那么V = 1则为溢出 方法3:V = Xf1 ⊕ Xf2(数据采用变型补码 Xf1Xf2 X0X1X2…
重学计算机组成原理(七)- 程序无法同时在Linux和Windows下运行?
既然程序最终都被变成了一条条机器码去执行,那为什么同一个程序,在同一台计算机上,在Linux下可以运行,而在Windows下却不行呢? 反过来,Windows上的程序在Linux上也是一样不能执行的 可是我们的CPU并没有换掉,它应该可以识别同样的指令呀!!! 如果你和我有同样的疑问,那这一节,我们就一起来解开. 1 编译.链接和装载:拆解程序执行 写好的C语言代码,可以通过编译器编译成汇编代码,然后汇编代码再通过汇编器变成CPU可以理解的机器码,于是CPU就可以执行这些机器码了 你现在对这个过…
重学计算机组成原理(五)- "旋转跳跃"的指令实现
CPU执行的也不只是一条指令,一般一个程序包含很多条指令 因为有if-else.for这样的条件和循环存在,这些指令也不会一路平直执行下去. 一个计算机程序是怎么被分解成一条条指令来执行的呢 1 CPU如何执行指令 CPU里差不多几百亿个晶体管 实际上,一条条计算机指令执行起来非常复杂 好在CPU在软件层面已经为我们做好了封装 对于程序员来说,我们只要知道,写好的代码变成了指令之后,是一条一条顺序执行 不管几百亿的晶体管的背后是怎么通过电路运转起来的 逻辑上,我们可以认为,CPU其实就是由一堆寄…
重学计算机组成原理(十一)- 门电路的"千里传音"
人用纸和笔来做运算,都是用十进制,直接用十进制和我们最熟悉的符号不是最简单么? 为什么计算机里我们最终要选择二进制呢? 来看看,计算机在硬件层面究竟是怎么表示二进制的,你就会明白,为什么计算机会选择二进制. 1 怎么做到"千里传书" 马拉松的故事相信你听说过.公元前490年,在雅典附近的马拉松海边,发生了波斯和希腊之间的希波战争.雅典和斯巴达领导的希腊联军胜利之后,雅典飞毛腿菲迪皮德斯跑了历史上第一个马拉松,回雅典报喜.这个时候,人们在远距离报信的时候,采用的是派人跑腿,传口信或者送信…
重学计算机组成原理(六)- 函数调用怎么突然Stack Overflow了!
用Google搜异常信息,肯定都访问过Stack Overflow网站 全球最大的程序员问答网站,名字来自于一个常见的报错,就是栈溢出(stack overflow) 从函数调用开始,在计算机指令层面函数间的相互调用是怎么实现的,以及什么情况下会发生栈溢出 1 栈的意义 先看一个简单的C程序 function.c 直接在Linux中使用GCC编译运行 [hadoop@JavaEdge Documents]$ vim function.c [hadoop@JavaEdge Documents]$…
重学计算机组成原理(十)- "烫烫烫"乱码的由来
程序 = 算法 + 数据结构 对应到计算机的组成原理(硬件层面) 算法 --- 各种计算机指令 数据结构 --- 二进制数据 计算机用0/1组成的二进制,来表示所有信息 程序指令用到的机器码,是使用二进制表示的 存储在内存里面的字符串.整数.浮点数也都是用二进制表示的 万物在计算机里都是0和1,搞清楚各种数据在二进制层面是怎么表示的,是我们的必修课. 在实际应用中最常遇到的问题,也就是文本字符串是怎么表示成二进制的,特别是我们会遇到的乱码究竟是怎么回事儿 在开发的时候,所说的Unicode和UT…
深入理解计算机操作系统——12章:多进程,IO多路复用
三种并行的应用程序: 1. 基于进程的并发编程: 2. 基于IO多路复用的并发: 3. 基于线程的并发编程: 12.1 基于进程的并发编程 进程的优劣: (1)进程间共享文件表,但不共享用户地址空间,拥有独立的地址空间,这样一个进程不会不小心将另一个进程的虚拟 存储器给覆盖了. (2)独立的地址空间使得进程间通信很困难,很难共享信息,需要IPC(进程间通信机制),这样开销很大. 进程间通信机制: (1)waitpid函数 (2)unix信号 (3)套接字 (4)管道 (5)FIFO (…
12天,这本《重学Java设计模式》PDF书籍下载量9k,新增粉丝1400人,Github上全球推荐榜!
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言…
重学C语言---01概述
1.什么是C语言 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.计算机语言是从第二次世界大战以后,经历了戏剧性的发展过程.从机器语言到汇编语言和高级语言.C语言是与硬件无关的,并且有许多独特的优点. 2.为什么使用C语言 C语言是一种融合了控制特性的现代语言,在现在的计算机科学的理论和实践中,控制特性是很重要的.其设计使得用户可以自然地采用自定向下的规划.结构化的编程.,以及模块化得设计,这样的编程可以使得编写出来的程序更可靠,更易懂.因为C语言具有设计特性.高效…
计算机操作系统处理机调度读后感—–关于进程概念的剖析。从RING3到RING0(32位操作系统)
计算机操作系统处理机调度读后感: 笔者在看操作系统西安电子科技大学那本书的时候,初次感觉本科教的不会太难,所以没有认真的看,但是随后这本书讲的刷新了我的世界观.这本书居然是ring0级别的,这时不禁吐槽一下..如果没调试过程序,没接触过ring0的同学,这本书就和马原一样.全背完还不知道学了啥. 由于笔者之前做过逆向工程.而调试的大都是ring3级别的,这本书是ring0级别的.我必须要把这些知识和之前学的连接起来,以便以后接触ring0的时候能更轻松一些. 1.创建进程. 在这个模块我会从一个…
重学Java(一):与《Java编程思想》的不解之缘
说起来非常惭愧,我在 2008 年的时候就接触了 Java,但一直到现在(2018 年 10 月 10 日),基础知识依然非常薄弱.用一句话自嘲就是:十年 IT 老兵,Java 菜鸡一枚. 于是,我想,不如静下心来,重新读一遍那些经典的 Java 技术书,并且没读完一章就输出一篇原创技术文章.从哪一本开始呢?想了一想,还是从<Java 编程思想>开始吧!毕竟这本书赢得了全球程序员的广泛赞誉,从 Java 的基础语法到最高级特性,都能指导我们 Java 程序员轻松掌握. 记得刚上大学那会,就买了…
重学js之JavaScript 面向对象的程序设计(创建对象)
注意: 本文章为 <重学js之JavaScript高级程序设计>系列第五章[JavaScript引用类型]. 关于<重学js之JavaScript高级程序设计>是重新回顾js基础的学习. 1. 什么是面向对象 面向对象的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是,再前面提到过.ES中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. 对象的定义:'无序属性的集合,其属性可以包含基本值.对象或者函数.' 严格来讲,这就相当…
打算写一个《重学Node.js》系列,希望大家多多支持
先放上链接吧,项目已经开始2周了:https://github.com/hellozhangran/happy-egg-server 想法 现在是2019年11月24日,还有人要开始学习Node.js吗? Node.js大概从2014年开始火热,现在搜一下学习教程,很多开源教程都是3~5年前写下的.再详细搜一下express.mongodb相关文章,时间点大部分也是2017,大量的Node.js开源项目也已经停更了.当年大家都在讨论Node.js为何这么火,而此刻我发现大家开始讨论为何Node.…
Python重学记录1
写下这个标题觉得可笑,其实本人2014年就自学过一次python,当时看的是中谷教育的milo老师的视频,也跟着写了一些代码,只是因为当时工作上用不到也就淡忘了.不过说实话当时的水平也很低下,本来也没学到个什么.当时看过的书有<和孩子一起学编程><可爱的python>等 现在由于要学机器学习,重拾python,时过境迁,当时python还是很小众的一门语言,网上的资料也较少,那时候还为到底学2.x还是3.x纠结了半天,在当时的环境下虽然3.x刚出来没多久,但似乎业界用2.x还是主流…
重学 Java 设计模式:实战抽象工厂模式
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获!…
重学hadoop技术
最近因为做了些和hadoop相关的项目(虽然主要是运维),但是这段经历让我对hadoop的实际运用有了更加深入的理解. 相比以前自学hadoop,因为没有实战场景以及良好的大数据学习氛围,现在回顾下的确相当肤浅. 因此我要好好重学下hadoop,短期计划如下: 1.重学HDFS知识 2.重学mapreduce,包括老版的mr以及新的yarn 3.学习hive和pig 4.学习hbase 5.以上学习都是通过理解其架构原理为目的,最后结合大型网站架构里存储的问题,进一步完善关于解决存储瓶颈的知识.…
Java集合类简单总结(重学)
java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例:姓名-电话,通过姓名得到电话),通过Map创建的对象key都 不可以重复. 它的两个常用子类:HashMap类和HashTable类. HashMap类:无序存放的,key不允许重复 HashTable类:无序存放,key不允许重复 key值可通过Map的方法keyset获取全部的key值,返回是个…