[ 更换 ]
热门城市
北京上海广州深圳成都杭州南京武汉天津西安重庆青岛沈阳长沙大连厦门无锡福州济南宁波昆明苏州郑州长春合肥南昌哈尔滨常州烟台南宁温州石家庄太原珠海南通扬州贵阳东莞徐州大庆佛山威海洛阳淮安呼和浩特镇江潍坊桂林中山临沂咸阳包头嘉兴惠州泉州三亚赣州九江金华泰安榆林许昌新乡舟山慈溪南阳聊城海口东营淄博漳州保定沧州丹东宜兴绍兴唐山湖州揭阳江阴营口衡阳郴州鄂尔多斯泰州义乌汕头宜昌大同鞍山湘潭盐城马鞍山襄樊长治日照常熟安庆吉林乌鲁木齐兰州秦皇岛肇庆西宁介休滨州台州廊坊邢台株洲德阳绵阳双流平顶山龙岩银川芜湖晋江连云港张家港锦州岳阳长沙县济宁邯郸江门齐齐哈尔昆山柳州绍兴县运城齐河衢州太仓张家口湛江眉山常德盘锦枣庄资阳宜宾赤峰余姚清远蚌埠宁德德州宝鸡牡丹江阜阳莆田诸暨黄石吉安延安拉萨海宁通辽黄山长乐安阳增城桐乡上虞辽阳遵义韶关泸州南平滁州温岭南充景德镇抚顺乌海荆门阳江曲靖邵阳宿迁荆州焦作丹阳丽水延吉茂名梅州渭南葫芦岛娄底滕州上饶富阳内江三明淮南孝感溧阳乐山临汾攀枝花阳泉长葛汉中四平六盘水安顺新余晋城自贡三门峡本溪防城港铁岭随州广安广元天水遂宁萍乡西双版纳绥化鹤壁湘西松原阜新酒泉张家界黔西南保山昭通河池来宾玉溪梧州鹰潭钦州云浮佳木斯克拉玛依呼伦贝尔贺州通化朝阳百色毕节贵港丽江安康德宏朔州伊犁文山楚雄嘉峪关凉山雅安西藏四川广东河北山西辽宁黑龙江江苏浙江安徽福建江西山东河南湖北湖南海南贵州云南陕西甘肃青海台湾内蒙古广西宁夏香港澳门
培训资讯网 - 为兴趣爱好者提供专业的职业培训资讯知识
当前位置: 首页 >> 培训 >> 解说天下之操作系统

解说天下之操作系统

系统 解说

解说天下之操作系统

本文由drawOn,云晶创始人根据多年从业经验, 从操作系统的起源,应用分类, 设计分类,以及资源使用角度对操作系统进行宏观的阐述,通过阅读本篇内容,您将大致对操作系统有更系统、更宏观,更深入的认识。我们每个人每天都在高频次的使用不同的操作系统,有必要对操作系统从宏观,深入浅出的有一个基本的认识和了解。

前后台系统

前后台系统为操作系统的原古时期。 在没有操作系统诞生之前,基本计算机系统就是前后台系统架构模型。

前后台系统的概念

在没有操作系统出现之前的系统为前后台系统,比如现在大多数嵌入式系统中所是用的MCU可以运行简单的C语言程序的单片机在裸跑的时候,我们认为为前后台系统,下面一张图介绍了前后台系统的模型:

解说天下之操作系统

从图中,我们可以看到,有如下特点

应用程序是一个无限的循环, 一般在主函数中,会写一个死循环,这个循环会有一定的延时,每隔一段时间循环执行一次。 循环中调用相应的函数,完成相应的操作, 这部分可以看成是后台的行为(background)。无限循环扫描,就是一个轮询 。

后台系统,总是会运行,(The background is always running)这个Main函数是不会停止的。

当有紧急任务需要处理时, 则MCU提供一种中断机制, 每个中断向量挂接一个中断处理函数, 进行紧急的处理。这种中断处理程序的行为,我们称之为前台行为(Foreground)。当紧急事件发生时, 中断处理机制会立即捕获它。 而紧急事件,一般都是外部IO触发, 触发行为有高电平变低触发,低电平变高触发,还有上升沿或者下降沿触发。 还有一种内部定时触发等。

如下为前后台系统的变成模型

{
    void main () {
        for(;;) {
            InitSystem();
            InitUartIsr(OnUartDataReceived);
            for(;;) {
                LED0 = ON;
                DelayMillisecs(500);
                LED1 = OFF;
                DelayMillisecs(500);
            }
        }
    } 
    void OnUartDataReceived(byte[] buffer, int count) {
        // doing something.
    }
}

前后台系统的优点

前后台系统的机制相对简单, 对编程人员要求比较低。 只要学点C语言, 了解点基础硬件相关的知识, 就能干点事情,如点亮LED灯。灯。 可以基于单片机来学习前后台系统。

如下推荐一些单片机的书籍, 可以借助这些书籍去学习前后台系统。

解说天下之操作系统

如下为前后台系统的优点:

  • 成本低, 一般情况下, 几毛钱,甚至几块钱就能买到一个单片机。
  • 需求量非常大, 只要带一些简单的控制逻辑的系统,大多数都采用简单的MCU, 内部运行一个前后台系统,如下我们给出一张操作系统的分布金字塔图。

解说天下之操作系统

  • 设计开发编码都比较简单。 一般是由嵌入式工程师完成前后台系统的开发与设计。

前后台系统的缺点

  • 应用场景比较简单, 控制简单的外围电脑和简单的运算。 对于大型复杂的逻辑或者交互,前后台系统很难胜任。还有一些比较厉害的高人, 使用前后台系统可以完成操作系统能够完成的任务,甚至操作系统都难以完成的事情(小才大用)。
  • 资源很难系统的调度,原地转圈圈前后台系统的CPU 一直都很忙,资源很难系统调度。
  • 开发系统时,代码的耦合度较高,你中有我,我中有你。前后台系统中,每为一个系统添加一个软件模块,都可能影响到之前的功能。所以如果要把前后台系统的系统玩好,一定得做到统领全局, 了解到别人的程序逻辑。

操作系统

基本概念

控制和管理计算机系统内部各种硬件和软件资源、有效的组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。

下面分享上面上,主流的操作系统

Windows操作系统

解说天下之操作系统

MAC OS 操作系统

解说天下之操作系统

Chome OS 操作系统

解说天下之操作系统

移动端的IOS, Android ,Windows Phone(过去式)

解说天下之操作系统

操作系统,决定了系统的交互方式,以及生态,每个人,都有自己喜欢的操作系统。

操作系统分类

按照家族分类

如下为Unic的家族史:

解说天下之操作系统

从上图可以看到, Unix(Unics)实际上是大部分操作系统的祖先。 很多操作系统都是从Unix演变而来。

Unix家族演进图

解说天下之操作系统

从上图可以看出:

  • 目前非常著名的苹果公司的PC领域的操作系统MAC OS以及移动端操作系统IOS均是由Unix系统改写而来。
  • 谷歌的Android操作系统,ChromeOS 均是由Linux系统修改而来。
  • Ubuntu 更是Linux系统的社区开源版本。
  • 还有在车载系统中,号称是实现很强的微内核系统 QNX均来自Unix系统。

按照内核类型分类

解说天下之操作系统

微内核/宏内核的概念

操作系统最核心的功能,任务调度、内存和设备的抽象和管理。然后 ,为了我们方便使用,才集成进了系统服务、驱动程序、文件系统之类的东西。

我们平时运行的程序,每个程序各运行几十毫秒,大家来回轮换,这样子我们看起来这些程序好像在“同时”运行一样。应用程序之所以能够被操作系统通过时间片的方式调度,是因为对于CPU而言,普通的应用程序和操作系统的内核运行在不同的特权级别上,我们叫作rings。应用程序运行在Ring 3,而内核运行在Ring 0。

随着科技的发展,操作系统变得越来越复杂,内核里面的东西也越来越多。人们也就开始考虑是否应该改变原有的架构,从而提高操作系统的性能稳定性主要是精简内核降低开发的复杂度,还有就是把各种程序尽可能的隔离保证一个程序的崩溃不会牵连到其他的程序。

上世纪80年代人们讨论得火热的微内核就是这样一种架构。

几种内核架构

解说天下之操作系统

理论设计,放到现实的工程中都是要做折衷的。所以有混合内核的出现,综合宏内核和微内核的不同优点,在两个方案中折衷设计。OS X和Windows就属于这类。

微内核的优势

微内核考虑在操作系统的内核中保留操作系统最基本的功能,也就是任务调度、内存和设备的抽象和管理。其他的功能全部从内核移出,放到用户态中了实现,并以C/S模式对其他应用程序提供服务。

微内核带来的好处主要是稳定性实时性,即内核中模块数量少了,结构更精简更优化了,能够影响内核的程序和驱动也减少了,稳定性随之提高;另外就是实时性,内核精简了以后,响应的时延的减小。不过并不是精简了以后会使得性能提升,微内核使得内核中只有最关键的部分,其他模块和系统功能全部作为独立模块放到用户态空间中运行,功能分散了以后增加了通信的成本。不过微内核操作系统的特点尤其适合工控系统的控制,而且设计简单,在小型的系统中有不少的应用。另外亦有不少实时操作系统是使用微内核架构设计。

总结几句

  • Worse is better.
    • 计算机领域往往经过完善设计的产品,最终结果都是失败的。
    • 像Unix赢了Multics一样。
    • Lisp(通用高级计算机程序语言)并没有C语言流行。
    • OSI的愿景最后由TCP/IP协议完成。
    • 相信,国内号称真正的云上操作系统,最终是由云晶-新一代云上操作系统来完成(开玩笑)。
    • 微软的WPF, 把MVVM设计模式运用的淋漓尽致,设计的如此纯粹,并没有流行起来。
  • ......
  • 宏内核就是一座华丽的宫殿。
  • 微内核就是一座精致的小别墅。

Linux为什么不采用微内核或者混合内核模式?

理论上完美的问题在实践过程中都会遇到各种不得不妥协的折衷。因为你制造出的东西是要部署到实际生活生产环境中使用。不是要一个只在实验室中看起来很完美的作品。微内核的高度模块化,自然要付出成本的,那就是增加代码交互的冗余与效率的损耗, 而这恰恰是很大的问题。

Linus可以把这些乱七八糟的东西,全都一个人写了,一遍写对了,还能稳定跑起来,无bug,而我们这些渣渣,做不到,只能依靠保护模式来防止几百个工程师写出来的那一坨垃圾,动不动蓝屏,自己弱,却质疑天才的做法,和明知自己弱,还要模仿天才的做法,都是认不清现实的表现

Linux本身在实现之初仅仅作为Linus一个业余项目而存在。而Monolithic Kernel由于不需要处理消息队列等等原因从实现角度来说比Micro Kernel更为方便。

linus 这人对微内核不感兴趣,这个大家都知道,只要有他在一天,kernel就不会考虑微内核化。他是一名实用主义者, 他说过一句名言:Talk is cheap. Show me the code

Linus: "Gaah. Guys, this whole ARM thing is a fcking pain in the ass.” 推动了DeviceTree.(题外话,*霸气)。这就是Linus这个人的张扬与洒脱的一面。 仔细体会。

按照实时性分类

按照实时性,将操作系统分为硬实时和软实时。 那么什么优势硬实时和软实时,其实就是通过中断的响应时间来衡量的。

衡量实时性的标准:

  • 中断的相应时间。
  • 中断的相应时间==关中断的最长时间+保护CPU 内部寄存器的时间+进入中断服务函数的执行时间+开始执行中断服务例程(ISR)的第一条指令时间
  • 任务的切换时间, 就是从当前任务挂起,到要切换的任务开始运行的时间。
  • 一个硬实时操作系统面对变化的负载(从最小到最坏的情况)时,必须确定性地保证满足时间要求。跟CPU强悍无关,必须时间具有确定性。
  • 实时操作系统的代表
    • Linux为实时操作系统的代表
    • Vxworks(Wind River)为硬实时操作系统的代表。
  • 以下表中,该处了实时操作系统的实时性对比
  • WxWorksuCOS-IIRT-Linux2QNX6MACosXWindowsLinux-GP硬件平台MC6800033MHz-48660MHz-48633MHz-486任务切换3.8us< 9us不详12.57us中断响应< 3us< 7.5us25us7.54us

操作系统中与编程有关的基本知识

解说天下之操作系统

进程线程的基本概念

  • 并发和隔离。
  • 程序执行的上下文(Context of Execution)
  • 执行与调度的基本单位:thread
  • 资源所有权:process
  • 进程是资源的容器,包含(一个或)多个线程。 内核调度的基本单位是线程(不完全是)、而非进程。
  • 同一进程下的各个线程共享资源(address space、open files、signal handlers,etc),但寄存器、栈、PC指针等不共享。

进程和线程到底有什么区别? 以上其实已经说了一部分, 线程是调度和执行的基本单位,最终代码都在线程中执行。 而进程是资源的容器,包括一个或多个线程。 同一个进程下的各个线程共享资源。

如下图为区别:

解说天下之操作系统

Linux的线程进程概念

解说天下之操作系统

Linux的线程是用户级别的,也就是内核中不存在线程。

  • 所有的线程管理都在应用层去执行。
  • 内核不关心,实际上也觉察不到线程的存在。

Windows的线程进程概念

解说天下之操作系统

而从上图也可以看出,Windows和Linux显然采用不同的理念。

windows的线程是内核级别的。

  • Windows是这些概念的一个例子。
  • 内核维护着线程和进程的上下文。
  • 调度实际上是基于线程而运行的。

进程间的通信

有了线程,进程的隔离, 就需要线程进程之间的通信机制来保证协作完成任务,共享访问数据。

Windows进程间的通信

  • 文件映射
  • 共享内存
  • 匿名管道(单项,一端写,一端读)
  • 命名管道。
  • 动态链接库
  • 远程过程调用(可以在一台机器内,也可以跨机器)
  • UDS(Unix Domain Socket)
  • 基于Windows的消息机制 ……

Linux进程间的通信

  • 管道(Pipe),以及有名管道
  • 信号(Signal)
  • 报文(Message)队列(消息队列)
  • 共享内存(效率最高)
  • 信号量(Semaphore)
  • 主要作用是进程间,以及同一进程的不同线程之间的同步手段 (UDS)Socket 套接字

以上Window和Linux虽然采用了不同的方式,概念上有所不同的方式进行进程间的通信,实际上,他们的基本原理类似。

线程间的通信

  • 共享数据结构。共享内存
  • 事件(Event)传递
  • 消息队列
  • 邮箱(ucosII)

线程同步

线程同步,即当有一个线程在对内存或者外设进行操作时,其他线程都不可以对这个内存地址或者外设进行操作,直到该线程完成操作, 其他线程才可以进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多,如下。

  • 一般使用信号量(Semaphore)。
  • 高级语言如java 本身语言的设计 就为此考虑,如synchronized 关键字,wait, notify 方法。
  • 可以使用Mutex。
  • 临界区对象。

信号量与互斥锁

Semaphore(信号量,或者信号灯)

以一个停车场的运作为例。简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆直接进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。这时,有一辆车离开停车场,看门人得知后,打开车拦,放入外面的一辆进去,如果又离开两辆,则又可以放入两辆,如此往复。在微观世界里,计算机世界里,比如访问硬盘空间,读取数据,往往资源有限。 可以可以使用该机制,进行有效的对资源的访问进行协调控制。

相关内容

怎么学?如何干?西藏7市(地)委书记在西藏日报发表文章

启航新征程 开创新局面为全面建设社会主义现代化新拉萨努力奋斗自治区党委常委、拉萨市委书记 普布顿珠党的二十大大笔擘画坚持以中国式现代化全面推进中华民族伟大复兴的宏伟蓝图,区党委十届三次全会全面铺开建设美丽幸福西藏、共圆伟大复兴梦想的壮阔实践···

2023年全区智慧旅游专业人才培训班圆满结业

6月2日,自治区旅游发展厅主办的全区智慧旅游专业人才培训班在拉萨圆满结业。培训共历时三天,累计完成全区旅游行政管理部门工作人员及涉旅企业专业技术人员培训100人。本次培训是区旅发厅深入推进学习贯彻习近平新时代中国特色社会主义思想主题教育重要···

徐汇萨迦共同举办大美西藏首届口腔学习班

随着现代医学的发展,口腔健康越来越受到人们的关注,为提高西藏地区口腔技术水平和服务质量,近日,徐汇区牙病防治所和萨迦县中心医院远程连线共同举办首届口腔学习班开班仪式。徐汇区卫生健康委副主任胡强,上海援藏干部、萨迦县委常务副书记、常务副县长沈···

自觉抵制“一对一”“一对多”等学科类培训!哈尔滨中小学生暑期预警来了

17日,记者从哈尔滨市各区教育局获悉,2023年暑假将至,南岗区、道里区、香坊区教育局向家长发出预警,自觉抵制违规培训,各区义务教育阶段学科类培训机构已经全部注销,暑假期间以任何形式开展的学科类培训均属于违规培训。家长要自觉抵制任何机构或个···

哈尔滨市道里区企投局举办“招商大讲堂”专题培训

黑龙江网讯(记者 王惠婷)10月24日,哈尔滨市道里区企投局组织开展“招商大讲堂”专题培训班,全区各招商专班负责同志及业务骨干参加培训。本次培训从实际需求出发,紧紧围绕当前招商工作中的热点、难点,对“什么是招商引资”“道里区的产业结构和主导···

团黑龙江省委举办全省青年文明号青年岗位能手学习宣传贯彻党的二十大精神培训交流会

中国青年报客户端讯(李海涛)为深入学习贯彻党的二十大精神,充分发挥青年文明号、青年岗位能手示范引领作用,在全省职业青年中掀起学习党的二十大精神热潮,11月22日,团黑龙江省委举办全省青年文明号青年岗位能手学习宣传贯彻党的二十大精神培训交流会···

辽宁葫芦岛举办外贸政策培训会推动外贸保稳增量

辽宁省葫芦岛市外贸政策培训会4月3日举办。 辽宁省贸促会供图中新网葫芦岛4月3日电 (李晛)辽宁省葫芦岛市外贸政策培训会4月3日举办。本次活动由辽宁省贸促会支持、葫芦岛市商务局主办,葫芦岛市贸促会、葫芦岛海关、中国出口信用保险辽宁分公司和辽···

山西运城:严查无证校外培训机构 查封9家警告2家

新华社太原8月5日电(记者王飞航)记者从山西省运城市政府了解到,运城市教育局近日联合市公安局等多家单位,对中心城区无证校外培训机构进行了一次突击检查,共检查了13家校外培训机构,查封9家,警告2家,发放整改通知书4份。今年7月,运城市教育局···

山西开展培训筑牢森林“防火墙”

山西新闻网3月30日讯(记者 卢奕如)今日,记者从山西省应急管理厅获悉,全省举办森林草原防灭火业务培训,邀请专家以视频会议形式,围绕森林扑火指挥实操、森林草原火灾防控经验做法、火灾现场各级各类指挥员具体操作中遇到的问题等内容进行授课。培训内···

校外培训机构治理工作取得进展 山西停办近1300所

资料图:小学生排队等待进入校园。中新社记者 刘文华 摄中新网5月11日电 据教育部网站消息,按照校外培训机构专项治理工作整体安排,教育部、民政部、国家市场监管总局启动了校外培训机构治理专项督查工作。5月9日至10日,督查组率先在北京市开展华···

山西综改区举办省技术创新中心申报培训

  8月18日,山西综改区科技金融部举办2023年度省技术创新中心申报培训会,来自区内企业、科研院所及有关单位代表160余人参加了培训。  山西省技术创新中心是以产业前沿引领技术和关键共性技术研发为核心的产业技术创新平台,承担着为区域和产业···

山西汾阳医院开展健康教育与控烟知识培训

来源:【吕梁日报-吕梁新闻网】本报讯 (记者 刘少伟) 5月18日,在“世界无烟日”到来之际,山西汾阳医院组织开展健康教育与控烟知识培训。近年来,山西汾阳医院全面落实健康中国战略,根据国家卫健委《关于2011年起全国医疗卫生系统全面禁烟的决···

山西省文物局年度田野考古技术培训班开班

10月10日,山西省文物局在运城闻喜上郭城址、邱家庄墓群举办2023年度田野考古技术培训班开班仪式。该次培训为期三个月,通过理论和实践两部分教学,旨在推进山西考古工作高质量发展,提升考古业务人员专业技术水平。本次培训由山西省考古研究院和山西···

最低每课时9元!全省学科类校外培训课时长和收费标准出台

近日,山西省发改委、省教育厅下发《关于中小学学科类校外培训收费标准及有关事项的通知》,明确全省中小学学科类校外培训收费标准,从12月17日起执行。《通知》对全省线上线下学科类校外培训基准收费标准和浮动幅度制定了科学标准。其中,义务教育阶段线···

山西天镇 阳光职业培训学校培养乡村“新农人”乡村振兴添动能

(记者 贺文生) 山西天镇县阳光职业培训学校紧紧围绕乡村振兴战略,按照“政府引导、农民自愿、立足产业、突出重点”的原则,创新高素质农民技能培训方式方法,采取以“授人以渔”的方式,让人才振兴成为助推农业农村现代化的内生动力,以高素质农民引领现···

山西:建立全过程 全链条 无缝隙安全培训制度

黄河新闻网讯(记者杨江涛)日前,山西省应急管理厅下发了《山西省安全培训管理暂行办法》(以下简称《办法》)。我省将进一步抓好安全生产这个基本盘、基本面,推动全省安全培训工作制度化、规范化、科学化,促进安全培训工作高质量发展。山西省应急管理厅厅···

山西:艺考培训机构纳入全国监管平台管理

央广网太原10月6日消息(记者郎麒) 日前,山西省教育厅、省发改委、省公安厅等部门联合制定《加强面向高中阶段学生艺考培训规范管理工作方案》,针对艺考培训的突出特点和实际情况,全面规范艺考培训行为,将艺考培训机构统一纳入全国校外教育培训监管与···

太平财险阳泉中支开展消防安全教育和有限空间作业培训

为强化员工安全意识,进一步提升员工消防和有限空间突发事件应急处理能力,9月14日,太平财险阳泉中支邀请北京市卫民安消防教育咨询中心山西分中心讲师向全体员工开展了一次消防安全教育和有限空间作业课程培训。按照防消结合、预防为主的原则,本次讲座通···

山西省数字化转型贯标试点工作宣贯培训会在太原举行

  10月20日消息,山西省数字化转型贯标试点工作宣贯培训会在太原举行。省工信厅介绍,作为国家数字化转型贯标试点省份,试点启动后将引导企业加快数字化转型,助力制造业高端化、智能化、绿色化发展。  今年,工信部启动数字化转型贯标试点工作,我省···

山西马兰花创业培训讲师大赛收官 太原市获多个奖项

山西新闻网8月31日讯(记者 冯耿姝)8月29日,山西省第四届马兰花创业培训讲师大赛圆满收官,太原市代表队在比赛中分获多个二、三等奖和优秀奖。本届大赛以“启迪创新思维·激发创业梦想”为主题,全省共有56名教师晋级复赛,其中,太原市有7名选手···