计算机操作系统基础知识大全
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机操作系统基础知识大全
操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石;操作系统本质上是运行在计算机上的软件程序 ;操作系统为用户提供一个与系统交互的操作界面。
下面就让小编带你去看看计算机操作系统基础知识吧,希望能帮助到大家!
操作系统基础 - LFS和SSD
Log-Structured File System
设计思路
LFS的设计思路来自于以下几点观察:
内存变得越来越大,能够缓存越来越多的东西,因此写入性能渐渐地主宰了文件系统的性能
磁盘的随机I/O和顺序I/O的性能相差巨大,如果能把大部分I/O 都转换成顺序I/O,将能极大地提高性能
现有的文件系统在许多常见的工作负载下表现都不如意:它们的元数据和数据块是分开的,文件系统写入一个数据块要多次寻道和旋转,虽然FFS通过块组缓解了这个问题,但是依然避免不了大量短距离的寻道和旋转。
文件系统感知不到RAID,难以避免RAID-4/RAID-5的small write问题,即一个小块的数据写入会导致4次物理I/O。
因此,LFS尝试优化磁盘写入性能,尽可能地使用连续I/O,对于磁盘的读取性能则寄希望于内存能缓存更多内容。
这个出发点导致了它的数据结构不同与常见的文件系统。
连续写入
LFS所尝试的第一个优化就是在写入数据块的时候,同时在后面写入数据块的inode,比如下图在磁盘地址A0写入一个数据块之后再把它的inode写到后面:
然后对于大量小块的I/O,这样是不行的,因此LFS采用了写缓存技术,先在内存中缓存一定的大小写请求,直到达到一个足够大的值
(LFS中称为segment),然后再一次性写入磁盘中。
因此LFS的一次I/O通常会包含多个数据块和inode:
那么,多大的segment是合适的呢,这跟磁盘性能有关系,假如说我们希望磁盘95%的时间都在写入,只有5%的时间再寻道,对于一个写入速度为100MiB/s的磁盘来说,这个segment约为9MiB。
这里忽略了计算公式,有兴趣请参考43 Log-structured File System (LFS)。
inode
读者们肯定能注意到,数据块和inode混在一起之后,LFS要怎么找到这些inode?我们可以用一个map结构来存储inode,其key 是文件的inode number,value是inode再磁盘上的地址,称之为inode map(或imap)。
考虑到LFS的设计,imap不应该存储在磁盘的某个特定位置,这会引起来回寻道的问题,因此LFS在一个写I/O的最后把最新的imap也一起写进来了。
下一个问题是,LFS怎么知道最新的imap在什么地方?它必须得把最新imap的地址写在磁盘上一个固定的地方,这就是checkpoint region(CR)。
出于写入性能的考虑,CR一般30秒左右才更新一次,因此对性能的影响可以忽略。
目录
前面的讨论仅涉及了文件,其实目录也是类似的,假如在某个目录/dir下面创建了一个叫foo的文件:
LFS首先写入foo的内容和inode
然后写入目录D的内容,即inode number和磁盘地址的映射关系,如下图中的(foo,K),以及这个目录新的inode
最后写入写的imap
文件读取
LFS挂载后,会先读入CR,再根据CR的内容把imap缓存到内存中,之后这两个数据结构的更新就按照上面的描述进行更新,imap 在每次写I/O后追加到尾部,CR则定期写入。
从LFS读取一个文件如/dir/foo时,首先从imap缓存中找到根目
录/的inode地址(比如根据约定的inode number 2),读取其内容找到dir目录对应的inode number,再根据inode number从imap中找到dir对应的inode number,如此类推直到读入foo的inode,这之后的过程就跟普通uni__文件系统没太大区别了,inode里面有direct pointer, indirect pointer... LFS没有对读取做什么优化,而是寄希望于越来越大的内存能够缓存更多的inode和数据块。
垃圾回收
LFS写入新的数据块时,总是寻找一片连续的空闲磁盘空间,然后写入整个segment,因此磁盘中其实充满了过时的数据。
比如下面的i节点号为K的文件一开始保存在磁盘地址A0,当这个文件的内容更新的时候,LFS在磁盘地址A4写入了新的数据块和inode,此时A0和A1的数据就是过时的:
另一个例子,假设用户往文件中追加了一个块(A4),这种情况下过时的数据只有老的inode(A1):
在ZFS,btrfs等吸收了LFS设计思路的文件系统中,允许用户保留这些老版本的文件作为snapshot,并把这个feature作为了一个买点,这种方法就是著名的copy on write。
而在LFS中,只保留最新版本的文件。
不论如何,这些文件系统最终都需要回收这些不再使用的、过时的数据。
一个简单的实现是扫描这些数据,发现过时的数据就标记为空闲,但是这样会造成大量的磁盘碎片。
在LFS的实现中,定期启动一个cleaner线程,读出几个segment的数据,其中过时的数据会被直接丢弃,剩余的块则会合并到新的segment中写入磁盘。
这个方式保证了磁盘的数据大致是连续的,方便在写入时找到大片的空闲空间。
Solid State Drive
这里的Solid state disk(简称SSD)特指基于NAND Flash的存储设备,SSD不一定需要基于Flash,但是目前NAND Flash是SSD事实的标准,在深入SSD之前我们先了解Flash的特性。
Flash芯片组成
跟磁盘相比,它没有任何机械组件。
Flash芯片最底层的存储单
元叫做cell,一个cell可以存储一个或者多个bit:
只存储一个bit的cell叫做single-levle cell(SLC)
存储两个bit的call叫做multi-level cell(MLC)
存储三个bit的call叫做triple-level cell(TLC)
……
总体来说SLC的性能最好成本最高,每个cell的存储的bit数量越多性能就越差,成本也越低。
多个cell组成一个page,这是flash存取数据的最小单元,它的大小通常是几KiB,比如4KiB
多个page组成一个block,它的大小一般是128KiB或256KiB
多个block组成一个bank或者叫(plane),一个flash芯片一般会包含若干个bank
下图是一个缩小了规模的Flash芯片
Flash芯片的基本操作
Flash芯片的物理特性比较特殊,它最基本的底层操作有三种.
读取(read)一个page:flash芯片可以读取任意一个page,只要给出page号即可。
不像磁盘,ssd是一种随机存取设备,它没有机械部件,存取任意一个位置的速度都是一样的,读操作通常只要10微秒(10^-5)左右。
擦除(erase)一个block:flash的物理特性要求在写入一个page 之前,先擦除改page所在的整个block,整个个操作很慢,一般需要几毫秒(10^-3)。
这个操作会把整个block里面每一个比特都设置成1,因此在擦除前需要复制出里面有价值的数据。
block擦除完成之后就能够进行编码(或者说写入)。
编码(Program)一个page:在擦除一个block之后,flask可以把里面的一些比特从1改成0,因此把想要的内容写入page中。
编码操作通常需要100微秒左右(10^-4)。
总的来说,读取的速度远快于编码的速度,而编码的速度又快于擦除的速度。
Flash磨损
由于没有机械部件,flash的可靠性比磁盘要高很多,不会出现类似磁头划碰的问题,但是flash也有它的弱点,即磨损(wear out):每次擦除一个block或编码一个page时,都会造成一些轻微的损耗,这些损耗积累下来后最终会导致无法区分0和1,这时候这个block就变得不可用了。
一般一个基于MLC的芯片生命周期大约是10,000P/E(Program/Erase),也就是说每个block在失效前可以反复擦除和写入10,000次,而基于SLC的芯片生命周期大概是100,000P/E。
从Flash芯片到SSD
前面我们描述了Flash芯片的组成,而一块SSD中会包含多个Flash芯片,它们连接到一个Flash控制器上,Flash控制器对外提供了一个磁盘设备的接口,更有趣的是Flash控制器还连着一小块内存。
这片内存可以用来作为I/O的缓存,同时还保存了物理块到Flash 芯片的page的映射关系。
为什么SSD中需要这样一个映射关系?假设我们采用一种最简单的映射关系,把物理块0映射到第0个Flash芯片上第0个page,把物理块1映射到第0个Flash芯片上第个page……这种简单的映射有两个问题,主要出现在更新的场景:
一是性能上的,我们直到page在写入前需要先擦除,这种原地更新导致了三次I/O操作:
读出整个block,并在内存中更新对应的内容
擦除整个block,而flash擦除的速度很慢,跟磁盘基本是一个量级的
重新写入block
第二个问题是,经常更新的磁盘区域(比如swap和/tmp分区)会严重磨损,成为SSD寿命的短板
Flash Translation Layer
因此,Flash控制器最核心的功能就是,在主机发起I/O请求时,动态地完成物理块到SSD内部page的转换,这就是Flash Translation Layer(FTL),它的目标有几个:
并行地利用多个Flash芯片
减少写放大
使得Flash的磨损尽可能的平均
太阳底下无新事,第一个问题可以借鉴RAID,后两者可以从LFS 中得到启发。
大多数FTL的实现都类似于log-structured file system,当主机往SSD写入内容的时候,先在SSD的内存中缓存一定的大小,然后找到一片空闲的区域一次性的写入;同时SSD的内存和Flash中维护一个物理块和SSD内部page的映射表,即mapping table。
假设主机进行了这一系列的操作:
往物理块100写入内容a1
往物理块101写入内容a2
往物理块2000写入内容b1
往物理块2001写入内容b2
这一系列的操作会由FTL合并写入到一片临近的区域中,如下图所示,图上Table部分即mapping table。
垃圾回收
假设主机接下来需要修改物理块100和101的内容,分别改成了c1和c2,FTL不会原地修改,而是直接写入到后续的空闲page中,同时在mapping table中修改物理块100和101对应的page为4和5:
此时page 0和1中的数据是过时的,如果需要回收这两个page,FTL必须先把同一个block中有效的数据(page2和3)读取出来,写入到后续的空闲空间中,这个时候整个block0都是过时的数据,FTL才能擦除这个block。
mapping table 大小
按照上面的方式把一个物理块映射到ssd的一个page,如果这两者的大小都为4KiB,对于一个1TiB的SSD来说,mapping table需要有1TiB/4KiB个条目,假设每个条目的大小大小为4字节的话,整个mapping table的大小需要1GiB,对于SSD的内存来说,这实在太大了。
一种解决方案是只在SSD中缓存部分活跃的mapping,其余
部分持久化到Flash中,如果工作集能满足局部性原理的话,这个方式能保持不错的性能。
另一种方案是把一大块物理块映射到SSD的一个block中,这样mapping table可以非常小,但是它有一个严重的问题,如果只修改block中一个或几个page时,FTL必须把整块内容读取出来,在内存中完成对应page的修改后,再把整个block的内容写到一个新的空闲block中。
因此,实践中更常见的做法叫混合mapping,FTL中有两个mapping table,基于page的映射叫log table,基于block的映射叫data table,如果物理块能连续的映射到一个block中则保存到data table,否则保存到log table中。
DCS系统操作基础知识
熟读DCS操作手册
一、规程术语含义
注意:表示涉及的事物或操作可能引起不可预测的危险后果。
警告:表示涉及的事物或操作能引起可预见的系统运行故障。
危险:表示涉及的事物或操作将引起系统停运,甚至设备损坏及人身伤害。
二、操作员操作职责
1、监视DCS系统运行,预防可能产生的危险。
2、随时干预系统运行,确保安全、正常生产。
3、系统授权运行参数的更改。
三、系统异常情况处理
1、DCS操作界面数据不刷新(正常情况数据每秒刷新一次),手自动切换无法操作等情况,应联系DCS 维护人员进行维护,同时立即到现场操作。
2、出现变送器故障,自动控制过程应立即切回手动。
3、出现阀门执行机构,回路输出卡件等故障现象,应改为现场操作。
4、出现DCS系统回路输入卡件故障时应把相应控制回路切回手动,并更换故障卡件,检查确认故障消除后方可再次投入自动。
5、DCS系统出现异常断电,应改为现场操作。
重新上电后,要求工程师检查系统情况,检查回路参数等系统数据是否正常,确认各调节阀的开度。
若有异常应重新下传组态,一切正常后方可再次投入自动。
6、其他异常情况请参照岗位操作规程执行。
四、报警处理
工艺指标产生报警时会有声音提示,报警信息在报警信息栏和报警一览画面中指示,报警情况了解后,用消音按钮关闭当前的报警声音,分析报警原因后采取相应的操作。
五、检测控制点
随时密切监视与控制息息相关温度、压力、液位、电流、阀位等。
六、调节阀控制
系统工程师(工程师以上)职责
1、系统软、硬件维护。
2、 DCS系统的启动和停止。
3、操作员口令的设臵与修改。
4、系统重要运行参数的维护与修改。
5、其它涉及系统的职责。
6、注意事项:
▼当系统出现停电时,应立即将系统中投入自动控制的回路切到手动。
当供电正常时,首先检查系统运行及系统数据是否正常,如果有异常现象,重新下传组态,并检查核对系统参数。
一切正常后方可再次投入自动。
(参数表参见相关资料)
▼统启动运行上电顺序:UPS、控制站、显示器、操作站计算机。
▼停机次序:控制站计算机、显示器、控制站、UPS。
▼操作员口令维护:每台操作站上的操作员口令之间无任何关系,必须单独建立。
口令是保证系统安全正常运行的前提,必须严格执行。
▼历史数据保存在操作站硬盘上,与系统停电等因素无关。
历史数据是追查事故责任的重要手段。
▼操作站计算机是系统的重要组成部分,必须保持其正常运行和
整洁。
▼当系统卡件故障时应把相应控制回路立即切回手动,并通知DCS系统维护人员立即更换故障卡件,检查确认故障消除时方可再次将系统投入自动。
七、操作员职责
1、监视DCS系统运行,预防可能产生的危险。
2、随时干预系统运行,确保安全、正常生产。
3、系统授权运行参数的更改。
4、自动控制投运方法:将画面中的回路仪表的手/自动开关打到自动即可。
5、报警处理:工艺指标产生报警时会有声音提示,报警信息在报警信息栏和报警一览画面中指示,报警情况了解后,用消音按钮关闭当前的报警声音,并在报警一览中确认。
6、异常情况处理:
▼自动控制过程中,出现变送器故障,应立即切回手动。
▼如果出现阀门故障现象,此时应切回手动,改为现场操作。
▼系统出现断电,此时应立即切回手动,并要求工程师检查系统情况,确认完好后方可再次投入自动。
▼DCS操作界面数据不刷新(正常情况数据每秒刷新一次),手自动切换无法操作等情况,应联系仪表人员进行维护。
同时立即到现场操作。
▼出现系统卡件故障时应把相应控制回路切回手动,并由仪表人员更换故障卡件,检查确认故障消除后方可再次投入自动。
▼DCS系统出现异常断电,应改为手动操作。
重新上电后,要求工程师检查系统情况,检查回路参数等系统数据是否正常,确认各调节阀的开度。
一切正常后方可再次投入自动。
DCS系统一旦出现故障,如何用最短时间准确诊断故障?
看工经典案例
Q1:哪些情况是控制系统问题还是工艺问题?
A:出现以下情况时,说明控制系统发生问题,应立即通知微机维
修人员维修,同时操作工到现场进行处理。
1、经常变化的数据长时间不变,且几个数据或所有数据都不变。
2、控制分组画面中,手动自动无法切换,或手动输入数据后,一经确认,又恢复为原来的数据,修改不过来。
3、趋势图画面中,几条趋势都为直线不变。
4、监控画面中,多个数据同时波动较大。
判断波动数据是否为工艺上相关参数,若是相关参数则通知仪表及微机人员检查,看是否某调节系统波动引起相关参数变化,同时将相关调节系统打到手动状态,必要时到现场进行调节。
若波动数据工艺上彼此并无直接影响,则可能为微机某卡件发生故障,立即将相关自调系统打到手动调节,必要时到现场进行调节,同时,通知微机及仪表人员检查。
Q2:大修后DCS系统如何上电,如何对DCS供电检查?
A:DCS系统对供电质量有一定要求,大修后DCS上电应注意:
1、确认外部供电是否平稳,如检修期间电压不稳不要上电。
2、测试外部供电电压是否符合198V-242V要求。
3、上电时按先总电源,再操作站,控制柜,外配柜顺序上电(断电则相反)。
4、上电后对DCS卡件故障报警、电压故障报警、交换机和网络检查,对供电电压测试。
5、用万用表可检查DCS每个机笼的5V、24V电压,如低于5V、24V则不正常。
如需对供电质量深入检查,需用示波器或电能质量分析仪检测分析。
专家建议:系统维护负责人确认条件具备方可上电。
应严格遵照上电步骤进行。
Q3:中控室日常管理应注意些什么?
A:控制室的日常管理对系统稳定运行和维护很重要,日常管理应注意:
1)、控制室门窗位置布置合理,操作站、控制柜、UPS放置规范,标识清楚。
2)、控制室保持日常清洁,维持适当的温度和湿度,检查照明、空调运行情况。
3)、检查系统防水、防尘、防腐蚀和防振情况,日常发现有漏洞的地方及时整改。
4)、规范管理,不允许无关人员触碰控制柜卡件,对操作站设置密码,加强保密安全管理。
5)、对控制柜内开关、端子、外配等部件标识检查,使之标识清晰方便维护。
专家建议:控制室温度范围0-50摄氏度,20度左右适宜;湿度范围:10%-90%RH,无凝露。
Q4:DCS系统在日常维护时如何能了解到系统当前故障情况?
A:日常维护时注意观察很重要,重点观察了解的地方为:
1、控制站卡件指示等显示是否异常(fail灯是否亮红灯),
2、进入监控“故障诊断”画面查看是否有卡件运行故障提示、通讯网络异常提示,
3、检查系统供电是否正常。
4、检查控制站电源风扇是否运行,交换机指示灯是否正常,是否有腐蚀现象(接线头或机柜铜条处是否发黑等现象)。
Q5:如何简单检查DCS系统接地?
DCS系统的接地示意图
A:DCS接地是一个很复杂的问题,涉及到接地地点,接地方式,接地电阻大小等从现场到DCS机柜的诸多节点和环节。
但日常对DCS 的常规检查主要有几个方面:
1、DCS机柜应采用单点接地方式,检查是否有可能导致多点接地的地方出现,比如机柜与槽钢的接触,接地点是否为单条引下线(线径大于16mm2,长度小于30米)到地桩或地网,部件连接(或焊接)点是否良好(锈蚀)等。
2、检查DCS接地点与电气地或避雷针引下线接地是否共用,距离是否符合要求,一般情况要求DCS接地与电气地距离15米以上,与避雷针接地点15米以上。
3、测量DCS系统接地电阻是否小于4欧姆。
接地电阻的大小与很多因素相关,如接触良好,土壤湿度,导电率等,测量接地电阻可选用的仪器有摇表、钳形表等。
Q6:日常维护时如何检查DCS系统网络?
A:1、用网络测试仪测试网线硬件是否正常,检查交换机指示灯是否正常。
2、检查监控“故障诊断”画面是否有故障提示。
3、对每台计算机使用“ping”命令检查网络是否正常,IP设置是否正确。
4、检查网卡流控制是否关闭,网卡驱动安装是否正常。
5、使用组态软件自带SCDIAGNOSE软件检测网络情况。
Q7:DCS系统维护如何做好防静电?
A:如果维护不注意,静电可能对DCS卡件或通讯带来不小影响,DCS维护过程中特别是在触碰硬件卡件或通讯部件时应采取如下措施做好防静电。
1、保持环境有一定的湿度。
特别北方地区或在干燥的冬季,因静电产生故障的事例要远远大于在东南沿海地区或其他季节,所以在一些重要场所,如计算机机房、实验室、电子仪器的装调车间应考虑保持一定湿度的问题,特别是对那些封闭形的空调房间,更应有一定控制湿度的设备。
2、铺设防静电地板,控制室和操作室均需铺设防静电地板。
3、在维护插扒卡件时或用手拿捏卡件时一定注意先对手释放静电,注意尽量避免用手直接触碰卡件电子元件、面板电路和焊点。
4、卡件应存放在防静电塑料盛放器或防静电塑料袋中,并存放在卡件盒中。
5、系统维护时还应注意佩带DCS防静电手腕。
Q8:DCS日常维护时需要对哪些数据进行备份?
A:需要对组态、PID参数、工艺参数(设定值)、系统安装软件、电脑驱动以及认为重要的趋势、报表等数据进行备份。
Q9:DCS系统某测点信号(温度、压力或流量等)显示故障应如何
快速排除?
A:信号显示数据不准或无显示是可能常遇到的问题,它可能由于现场仪表引起,也可能由于DCS引起,可采取快速判断的方法有:
1、用信号发生器模拟标准信号测试(前提是现场必须有信号发生器可使用)或将另一同类型信号线缆改接到该通道信号引入测试,若正常表明DCS正常,再检查现场进DCS信号是否有误。
2、检查信号线正负是否接反、卡件跳线设置是否正确(特别是新增点),组态型号、量程、补偿等参数设置是否有误。
3、检查该信号所属卡件其他测点运行是否正常,并根据现场实际情况判断是否可采用对该卡件备件更换的方式检测是否为卡件故障,更换时注意跳线设置。
Q10:某操作站监控有时候会自动退出,是否异常?
A:系统退出的原因有很多,几个月偶尔退出1次,属于系统正常情况,因为如果计算机内存占用过大或运行程序过多有可能影响监控退出。
但如果频繁退出(比如每天或每周)则不正常。
一般系统退出主要有如下几种原因:
1、系统软件安装不规范,重新安装后可以解决。
2、同一个时间恰好出现了多个报警,导致计算机系统的资源不足报错。
3、系统调用的组态路径为网络路径,非本机路径。
4、硬件如主板或硬盘出现故障。
5、若硬盘空间不够,也可能自动退出。
Q11:计算机重启后异常?
A:用户现场使用DELL液晶显示器,操作系统为WIN NT。
某次重启操作系统后,无法正常进入桌面,提示不支持vga格式。
与维护人员交流,在重启计算机前做过何种操作,反馈为提高了显示器的分辨率。
判断可能是调高了分辨率后导致NT系统自检时无法识别显示系统。
进入BIOS,恢复系统默认设置后系统恢复正常。
Q12:操作员键盘为何会引起死机?
A:原因分析:键盘外壳未良好接地,人体静电对键盘的冲击,也
会导致键盘死机。
解决方案:
1、新键盘外壳生产时,要求外协单位在键盘上留出接地孔或接地杆;
2、安装时,使键盘外壳与键盘线屏蔽地可靠连接;
3、键盘外壳上去除部分涂层,使外壳有有效接地点。
Q13:压力信号异常是何原因?
A:压力信号出现满量程情况,与实际不符。
断开卡件后面的信号线正极,信号由满量程变仍有8公斤左右压力信号(量程为0-13公斤)。
经现场观察,该测点经过安全栅。
将信号线短路,不过安全栅后,信号显示正常。
初步判断是安全栅出现问题。
原因可能是同一组的信号,安全栅是共地的。
当安全栅故障后,另一毫安信号耦合到该信号上来,造成信号的干扰。
Q14:热电阻信号不准如何排查?
A:首先,检查热电阻的组态,确认了组态中的热电阻型号和实际的型号保持一致;其次,确保上下位机组态一致。
最后,如果还是怀疑测温有问题的话,可以测量现场热电阻A和B之间的阻值为R1;B和C 之间的阻值为R2。
根据3线制热电阻的测温原理,可以得到热电阻的实际电阻值为R1-2R2。
然后查表找出对应的温度。
然后用这个温度和监控上的温度再进行比较。
如果出入较大,请更换卡件后再次尝试。
Q15:如何快速排查系统通讯故障?
A:在系统运行过程中若发现通讯故障,应重点做如下检查:
1、了解清楚具体故障现象,是所有通讯中断还是某部分数据通讯异常,还是某操作站通讯异常,这对之后的排查很重要。
2、工程师权限进入监控故障诊断画面,观察是否有通讯卡件或总线故障报警(如数据转发卡,主控卡等)提示。
发现卡件故障用备件更换。
3、检查目前网络是否通畅,检查交换机、控制站供电是否正常。
可用计算机ping命令检查各网络节点是否通畅。