指令寄存器-现代操作系统(一) ,对于想了解历史故事的朋友们来说,指令寄存器-现代操作系统(一)是一个非常想了解的问题,下面小编就带领大家看看这个问题。
原文标题:现代操作系统(一)
计算机系统计算机
而操作系统是一个软件,用于管理计算机系统。
与用户交互的 基于文本的称为shell 基于界面的称为GUI 但这些并不属于操作系统
这里的用户接口程序就是 我们的Shell(命令行)和GUI(window的桌面)
多数计算机有两种运行模式:内核态和用户态
操作系统运行在内核态中(也称为管态、核心态)
在这个模式中
操作系统对所有硬件具有完全访问权,可以运行任何计算机课执行的指令。
而其余软件运行在用户态,只使用了机器指令中的一个子集,比如一些i/o指令时禁止的。
操作系统与普通软件的主要区别是
普通软件你不喜欢可以更换,或写一个但操作系统却不能写,这是受硬件保护的。
但嵌入式(要求人心净化先要求人生美化是谁的名言?朱光潜,要求人心净化先要求人生美化是朱光潜的名言。朱光潜坚信情感比理智重要,要洗刷人心,并非几句道德家言所可了事,一定要从“怡情养性”做起,一定要用饱食暖衣、高官厚禄等等之外,别有较高尚、较纯洁的企求。)操作系统(它没有内核态)和解释系统(java的操作系统)除外。
linux与window的源代码有500万行,如果包括共享库,则应该有7000万行
一本书1000页,一页50行,也要100本书。基本就是一个书架。如果包括共享库起码要10-20个书架。所以,操作系统是大型、复杂、且长寿的。
寿命长是因为,一旦编写出来,所有者就不愿丢弃去在写一个。
什么是操作系统
它是在内核态运行的软件
操作系统有两个基本上的独立任务;为应用程序提供抽象、管理硬件资源
硬件为操作系统提供了丑陋的接口,而操作系统又为用户(应用程序)提供美丽的接口
操作系统的历史
从1945 第一代计算机: 真空管和穿孔卡片 到1955年 第二代 晶体管和批处理系统 到1965年 第三代集成电路和多道程序设计 到1980 第四代个人计算机 到1990年 第五代移动计算机
计算机硬件
cpu、 存储器 、i/o设备现在的计算机都可看做这个模型(目前还是够用的)
操作系统扩展了计算机的指令集、它要做的是了解大量硬件 并了解硬件如何面对程序员,在这里简要了解一下硬件。
如需详细了解请查阅 Tanenbaum和Autii
处理器
cpu他的一生都在 从内存中取出指令,解码-确定其类型与操作数之中(取指,解码)每个CPU都有一套可执行的指令集(x86不能执行ARM程序 反过来也不行)
cpu内有个临时寄存器。由于取指比解码的时间长,所以就有处理临时数据的寄存器,这个临时寄存器在cpu内,有了这个临时寄存器就可以从内存读取到临时寄存器里,也可以将变量和结果保存在这个临时寄存器上,也可以从临时寄存器存入内存。
有个专用寄存器。他保存了下一个要读取指令的地址,指向下一个后续指令。
有一个堆栈指针寄存器。指向内存中栈的顶端,该栈包含每个指执行过程的栈帧。一个栈帧保存了有关的输入参数、局部变量、及没保存在寄存器中的临时变量。
有一个程序状态字(Program Status Word (PSW))寄存器。保存着包含条件的码位,cpu优先级、模式,及各种其他控制位。
所有cpu有四个寄存器
临时寄存器 、专用寄存器、 堆栈指针寄存器 、程序状态字寄存器(PSW)
操作系统必须了解每一个寄存器
因为在多路复用(同时使用)的操作系统中,操作系统不停的启动关停程序
每关停一次,就必须知道这些寄存器运行到了哪里,等待启动继续运行
为了性能,设计师早就放弃了同时读取、解码、执行的简单模型。现在的cpu有单独的取指单元,取n指令时,可以对n+1指令解码,这样的机制称为流水线。
比流水线更厉害的是超标量cpu。这种机制在解码单元和执行单元之间添加了一个保持缓冲区,两旁有很多的执行单元,一旦有空闲的执行单元就立马检查缓冲区是否有可执行的指令。
前面说过,用户态运行下的程
为了从操作系统中获取这些服务,用户程序必须使用系统调用(system call),在这里先把他
但是计算机使用陷阱来执行系统调用而非指令,其他多数陷阱是由硬件引起的,用来警告有异常情况的发生。
多线程与多核芯片
moore定律是芯片中的晶体管没18个月翻一倍。它已经保持了30年,有望再保持10年,这么多的晶体管的必然结果是,在cpu中加入了更大的缓存(后面解释),随后某种控制逻辑也会出现,比如多线程或超线程
多线程允许cpu保持两个不同的线程状态,然后再纳秒级的时间尺度来回切换。(线程是一种轻量级进程,后面解释)
多线程对操作系统是有益的,因为一个线程相当于单个cpu,对于实际只有两个cpu的操作系统来说,则相当于4个cpu。
除了多线程外,还有多核,就是一个多核芯片可以安放多小芯片,每个小芯片相当于cpu,目前最多的有60多个核,如Intel Xeon Phi等
但操作系统使用这类多核芯片,必须使用多处理器操作系统
论数量最多的没什么赢过GPU(显卡的组成部分)的,GPU是由成千上万个微核组成的处理器,擅长图形渲染,但不能胜任串行任务,且很难编程。GPU在加密及网络传输方面对操作系统很有用,但让他运行在GPU上就不太可能了。
存储器
存储器可分为寄存器、缓存、内存、硬盘等
任何一种计算机中,第二种主要部件都是存储器
理想的储存器应有三个目标
极为迅速,cpu不会受到储存器限制
充分大
非常便宜
但目前是无法同时满足着三个目
顶层是存储器,寄存器在cpu中,没有时延,容量为 在32位CPU为32*32,64位中则64*64,其储存容量都小于1kb
下一层是高速缓存,当某个程序读取存储字时,先会检查高速缓存中是否有对应的字,是,则被称为高速缓存命中,就不需要通过主线去访问主存了,当高速缓存的价格昂贵,大小有限。
操作系统一直在使用缓存,避免重复地调取主存中的文件,以提高效率
缓存是一个好方法,在现代CPU中设计了两个缓存
第一级称为L1缓存,在CPU中,将以解码的指令调入cpu执行,无延迟
第二级称为L2缓存,在CPU外,用来存放使用过的内存字,有1-2个时钟周期延迟
cpu读取过程再往下一层是主存,通常称为随机访问存储器(RAM)
除主存之外,还有一类 非易失性访问存储器
只读存储器(ROM) 闪存 电可擦除可编程存储器(EEPROM)
前一个在出厂时就已写好,不能被更改,后两个则可以被更改
还有易失的CMOS存储器 它靠一块小电池驱动保持时间和启动磁盘等配置,计算机
没上电也可更新时间
原文出处:http://www.cnlishi.cn/news/12745.html
以上是关于指令寄存器-现代操作系统(一)的介绍,希望对想了解历史故事的朋友们有所帮助。
本文标题:指令寄存器-现代操作系统(一);本文链接:http://gazx.sd.cn/zgrw/2444.html。