随着现代信息越来越丰富,更多的信息需要被处理及计算,仅仅的单台计算机已经满足不了计算,需要将更多的计算机进行同时计算,对操作系统的要求则越来越高,各种各样云计算的的操作系统也应运而生。
操作系统是什么?
操作性系统:OS(Operating System)是一组主管并控制计算机操作的,运用和运行硬件、软件资源和提供公共服务来组织用户交互的相关联的系统软件程序。
1)有效性:提高系统资源利用率;
2)方便性:用户能够更加方便处理事物;
3)可扩从性:能够增加并操纵新的硬件设备;
4)开放性:能够遵守世界标准的规范;
纵观电脑之历史,操作系统与电脑的硬件信息的发展息息相关,操作系统之本意就是提供简单的工作排序能力,后来辅助更新更复杂的硬件设备而渐渐演变的。
单任务操作系统是指一台计算机同时只能有一个用户在使用,该用户一次只能提交一次作业,一个用户独享系统的全部的硬件。
单任务操作系统 = 装载器+通用的子程序库
利用率% = 执行时间/(执行时间+读卡时间)
缺点:
1)操作复杂;
2)利用率低;
3)计算能力不足;
批处理系统是把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下使这批作业能一个接一个地连续处理。
通过批处理系统,硬件利用率提高了,但是由于任务只能一个接一个运行,总体的利用率并不高。
优点:
1)减少CPU的等待时间;
2)多作业不间断进行;
缺点:
1)任务串行,总体利用率不高;
多程序系统是允许多个相互独立程序同时允许在计算机的内存当中,并且他们都存在在开始与结束之间。
从宏观上看是并行的,多道程序都处于运行中,并且都没有运行结束;从微观上看是串行的,各道程序轮流使用CPU,交替执行;
优点:
1)允许多个程序能够在内存中存在
2)提高了CPU等硬件的利用率
缺点:
1)单任务时间过长,会影响其他任务的运行
分时操作系统是使一台计算机采用时间片轮转的方式同时为几个、几十个甚至几百个用户服务的一种操作系统。 把计算机与许多终端用户连接起来,分时操作系统将系统处理机时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。 由于时间间隔很短,每个用户的感觉就像他独占计算机一样。
优点:
1)最大限度提高CPU的利用率:通过CPU中断的方式,合理的将CPU按照时间片的方式提供给每一道程序,让多道程序都能使用到CPU资源,让程序执行的效率更高;
2)用户处理及时:用户能在短时间可到系统大的及时回答;
3)用户相互独立;
缺点:
1)响应时间受硬件设备、时间片大小,信息交互量,信息交互速度影响。
单一体结构是最早期的结构,整个OS都是巨大的单一体,运行在内核下,为用户提供服务;
存在问题:
1)功能模块复杂,修改困难
2)容易造成循环调用死锁
将操作系统分为不同的层次,低层次的功能为紧邻其上一个层次的功能提供服务,而高层次的功能又为更高一个层次的功能提供服务:
优点:
1)保证系统的正确性
2)易扩从和易维护性
存在问题:
1)系统效率低
2)系统开销大
将操作系统的核心中的核心才放在内核态运行,其他功能都迁移到用户态运行,于是就有了下面的微内核结构。
优点:
1)提高系统的可扩展性
2)增强系统的可靠性
3)可移植性性
4)减少开发系统的开销
存在问题:
1)用户态与内核态交互频次高,利用率不高
1)Windows
2)Linux
3)Android
4) Mac
随着运算能力要求越来越高,云计算应运而生,从此操作系统不再是简单管理与控制单台机器的硬件的设备,其最核心的问题是如何把100台、1千台、1万台机器高效的组织起来,灵活的进行任务调度和管理,从而使得可以像使用台式机一样使用。在云计算,最核心的模块是分布式调度模块,它好比于单台机器中的中央处理器。目前,业界已存在多种分布式调度操作系统的实践,如腾讯VStation、伏羲、Hadoop MR、YARN、Mesos等系统。
以下是针对VStation与伏羲两个国内比较出名的分布式调用操作系统的分析与对比:
现有的调度系统架构如下,分为统一调度架构,两级调度架构和共享状态调度架构。
调度架构 | 优点 | 缺点 |
---|---|---|
统一调度架构 | 设计点的,能便捷保持资源数据一致性 | 请求量过大时,调度器的吞吐量不足,无法支持大规模的宿主机 |
两级调度架构 | 更加灵活,更大并发 | 缺乏全局资源视图,并发仍然受限 |
共享状态调度 | 调度系统中存在多个调度器,每个都有全局资源视图,可接受待调度请求,采用的是无锁乐观并发机制,吞吐率高 | 并发大情况下,调度冲突概率大,重新调度代价很大 |
VStation是基于共享状态的调度架构进行优化调整,业界也有比较典型的代表Google Borg和Omega。
在VStation中使用的是MQ(消息队列)来进行不同模块组件的通信,主要包含以下模块。
Fuxi是基于两级调度架构进行改优化调整的,业界也有比较有代表的YARN和Mesos系统。
在Fuxi中包含以下的几个模块:
分析过程
VStation的调度策略分几点:
Fuxi的调度策略:
分析过程:
VStation的容错机制:几乎没有
Fuxi的容错机制:
分析过程:
-Fuxi在容错机制上考虑到自己系统可恢复性,相比VStation采用近乎人工的方式,更加完善,更加快捷,也是VStation的应该考虑待优化的点, 建议VStation在将每个任务都记录下来,在发生错误时,能够第一时间恢复对应的业务的状态
VStation:在安全与性能隔离中,还没有完善。
Fuxi:则是通过全链路的反问控制,通过Capability和token进行安全的访问控制,并采用Docker和LXC混合部署的方式来实现性能的隔离。
分析:VStation在这个方面上需要完善起来,才能更好的支持好ToB的业务,因为ToB的业务也是追求安全性,机密性。
VStation的调度规模在单集群10W节点的规模,速度也是非常快,每分钟能到数万台。
Fuxi的调度规模在单集群5000台的规模,速度也是非常的有限。
分析:VStation在调度模块和速度都是采用先进的技术,整体的规模大,速度也非常快。
1.在业务层面:VStation更加适合ToC业务,在ToB的业务上还需要继续完备,Fuxi本来就是做ToB的业务的,在ToC的业务性能就比较欠缺。
2.在性能上:VStation性能明显优于Fuxi。
参考链接:
https://www.infoq.cn/article/tecent-cloud-distributed-system-vstation
https://developer.aliyun.com/article/72526
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。