人
发表您的评论
计算机系统是由处理器、主存、磁盘、i/o设备等等 组成。
而操作系统是一个软件,用于管理计算机系统。
与用户交互的 基于文本的称为shell 基于界面的称为GUI 但这些并不属于操作系统
这里的用户接口程序就是 我们的Shell(命令行)和GUI(window的桌面)
多数计算机有两种运行模式:内核态和用户态
操作系统运行在内核态中(也称为管态、核心态)
在这个模式中
操作系统对所有硬件具有完全访问权,可以运行任何计算机课执行的指令。
而其余软件运行在用户态,只使用了机器指令中的一个子集,比如一些i/o指令时禁止的。
操作系统与普通软件的主要区别是
普通软件你不喜欢可以更换,或写一个但操作系统却不能写,这是受硬件保护的。
但嵌入式(要求人心净化先要求人生美化是谁的名言?朱光潜,要求人心净化先要求人生美化是朱光潜的名言。朱光潜坚信情感比理智重要,要洗刷人心,并非几句道德家言所可了事,一定要从“怡情养性”做起,一定要用饱食暖衣、高官厚禄等等之外,别有较高尚、较纯洁的企求。)操作系统(它没有内核态)和解释系统(java的操作系统)除外。
linux与window的源代码有500万行,如果包括共享库,则应该有7000万行
一本书1000页,一页50行,也要100本书。基本就是一个书架。如果包括共享库起码要10-20个书架。所以,操作系统是大型、复杂、且长寿的。
寿命长是因为,一旦编写出来,所有者就不愿丢弃去在写一个。
什么是操作系统
它是在内核态运行的软件
操作系统有两个基本上的独立任务;为应用程序提供抽象、管理硬件资源
硬件为操作系统提供了丑陋的接口,而操作系统又为用户(应用程序)提供美丽的接口
操作系统的历史
从1945 第一代计算机: 真空管和穿孔卡片 到1955年 第二代 晶体管和批处理系统 到1965年 第三代集成电路和多道程序设计 到1980 第四代个人计算机 到1990年 第五代移动计算机
计算机硬件
现在的计算机都可看做这个模型(目前还是够用的)
操作系统扩展了计算机的指令集、它要做的是了解大量硬件 并了解硬件如何面对程序员,在这里简要了解一下硬件。
如需详细了解请查阅 Tanenbaum和Autiin(2012) Patterson和Hennessy(2013)
处理器
他的一生都在 从内存中取出指令,解码-确定其类型与操作数之中(取指,解码)每个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个时钟周期延迟
再往下一层是主存,通常称为随机访问存储器(RAM)
除主存之外,还有一类 非易失性访问存储器
只读存储器(ROM) 闪存 电可擦除可编程存储器(EEPROM)
前一个在出厂时就已写好,不能被更改,后两个则可以被更改
还有易失的CMOS存储器 它靠一块小电池驱动保持时间和启动磁盘等配置,计算机
没上电也可更新时间
湖南耒阳县怎么读(耒阳怎么读耒阳简介)
WLK肯瑞托声望怎么开启(哪个地图做任务冲声望)
瑞典的国旗是哪几种颜色(瑞典的国旗是什么颜色的简介介绍)
2022年11月05日四川绵阳最新疫情状况及绵阳疫情最新确诊数详情
乌镇在哪个省哪个城市(乌镇在哪个城市简介介绍)
河北省有几个市分别是哪几个(河北省有几个市分别是什么)
如何理解规模效应(规模效应是指什么简介介绍)
付文化的父亲是谁(付文化)
机器码由什么组成(机器码是什么简介介绍)
孜孜矻矻是什么意思啊(孜孜矻矻是什么意思)
盘点10大做劳力士复刻最好的工厂
2021年牛年新年开场白年会开张白-
2020年中国医师节是哪一天 是几月几日 -
21世纪仅4次中秋国庆同一天下次是2031和2077年_
2022年11月04日安徽宿州疫情最新公布数据及宿州最新疫情共多少确诊人数
你还敢瞎蹭WiFi吗?女子蹭了一次WIFI 后,手机停机欠费超500块?
学会这个小妙招,再也不怕鞋带总开了
武器大讲堂-扬眉吐气的中国解放军大机炮!走在世界前列-张召忠
长治:幼儿园里 两岁女童手指被夹断 一
4岁偏瘫女孩挺过4次开胸手术 妈妈:我相信她一定会努力活下去!
想知道河北省是如何严控不合理医疗费的吗?那就快来看看吧!
摩登多元素衬衫,诠释成熟时尚个性
漂亮女友说了一句话,陈翔像疯了似的自残,终究还是一个梦啊!
南昌市青少年网球训练基地成立
小伙作死把媳妇做没了
百搭吸晴半身裙,尽显女性温柔风情
什么癖好?男子图书馆内大声朗读惹众怒 遭劝阻后竟当众打人撒泼
意外的受伤换难得的幸福,北京队陈磊诠释职业球员心酸的浪漫
漂亮女生被蒙在鼓里,男子半路突然发难,这次全湿了!
2岁起培养宝宝自己洗脸刷牙,激发宝宝独立潜能,长大了更聪明!