现代操作系统(一)-


计算机系统是由处理器、主存、磁盘、i/o设备等等 组成。

而操作系统是一个软件,用于管理计算机系统。

与用户交互的 基于文本的称为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和Autiin(2012) Patterson和Hennessy(2013)

处理器

cpu


他的一生都在 从内存中取出指令,解码-确定其类型与操作数之中(取指,解码)每个CPU都有一套可执行的指令集(x86不能执行ARM程序 反过来也不行)

cpu内有个临时寄存器。由于取指比解码的时间长,所以就有处理临时数据的寄存器,这个临时寄存器在cpu内,有了这个临时寄存器就可以从内存读取到临时寄存器里,也可以将变量和结果保存在这个临时寄存器上,也可以从临时寄存器存入内存。

有个专用寄存器。他保存了下一个要读取指令的地址,指向下一个后续指令。

有一个堆栈指针寄存器。指向内存中栈的顶端,该栈包含每个指执行过程的栈帧。一个栈帧保存了有关的输入参数、局部变量、及没保存在寄存器中的临时变量。

有一个程序状态字(Program Status Word  (PSW))寄存器。保存着包含条件的码位,cpu优先级、模式,及各种其他控制位。

所有cpu有四个寄存器

临时寄存器 、专用寄存器、 堆栈指针寄存器 、程序状态字寄存器(PSW)

操作系统必须了解每一个寄存器

因为在多路复用(同时使用)的操作系统中,操作系统不停的启动关停程序

每关停一次,就必须知道这些寄存器运行到了哪里,等待启动继续运行

为了性能,设计师早就放弃了同时读取、解码、执行的简单模型。现在的cpu有单独的取指单元,取n指令时,可以对n+1指令解码,这样的机制称为流水线。


比流水线更厉害的是超标量cpu。这种机制在解码单元和执行单元之间添加了一个保持缓冲区,两旁有很多的执行单元,一旦有空闲的执行单元就立马检查缓冲区是否有可执行的指令。

前面说过,用户态运行下的程序只能执行cup整个指令集的子集,而这些都是由PSW一个二进制位控制,用户态下很多有关I/O和内存保护的所有指令的是禁止的

为了从操作系统中获取这些服务,用户程序必须使用系统调用(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存储器 它靠一块小电池驱动保持时间和启动磁盘等配置,计算机

没上电也可更新时间 


本文标题:现代操作系统(一)- - 明星
本文地址:www.fk0591.com/content/1-45068-0.html

特别声明:以上文章内容仅代表作者本人观点,不代表FK娱乐网观点或者立场,如有关于作品内容、版权或其它问题请于作品发后的30日内与FK娱乐网联系
热门话题
每日一题

鹿晗炒工作室鱿鱼

鹿晗炒工作室鱿鱼

愚人节,艺人们纷纷在微博开启了“愚人节整蛊大赛”~鹿晗说今儿过节发张自拍~他的工作室评论说自己要辞职,结果鹿boss爽快地说准了~后知后觉的工作室哭唧唧发微博说自己要凉凉了,2333~阿信说自己决定要公开了,然而附图看半天也看不出啥名堂来~这种事情他...~~~~~