在介绍操作系统之前,先说明一下为什么需要操作系统。在进行软件编程时需要对硬件进行控制,例如输入设备、输出设备及存储设备。如果没有操作系统程序员不仅需要编程的知识还要了解硬件,这么多的硬件会很耗费时间和精力。操作系统提供了对各种硬件的抽象,使得程序员就像控制水管的“水龙头”的开关一样,不必去关心到底水是怎么运送过来的“管道”。这样就可以极大的提高编程效率。
那么操作系统都有什么组成呢?主要有进程管理、内存管理、文件系统、输入输出设备驱动、网络通信、安全管理及图形界面。
进程管理
进程是操作系统处理各种活动,例如用户应用程序和系统应用程序。进程管理就是把所有的执行内容抽象为流程,建立任务列表,设置独立的存储空间,多进程的并发处理等等。
内存管理
程序和数据都存储在内存中内存管理需要考虑如何组织进程的内存,也需要支持
在进程之间共享数据。
文件系统
文件就是大量信息的抽象描述。文件系统包括辅助存储器进行创建、删除、复制和粘贴等标准操作,也包括搜索、备份等高级操作。
输入输出
如前所述,对输入输出的操作需要了解特定设备相关知识及设备驱动程序和标准接口。
不同的组件相互关联 ,如何组织所有组件就显得没有那么简单。另一个具有挑战性的软件工程问题是可靠性、向后兼容性、可扩展性、可移植性。
统一的操作系统中单个程序包含所有内核代码并提供所有操作系统服务,这就使得便携性较差且难以维护,一个小的错误会导致整个系统崩溃!例如Unix和Linux操作系统。
最小内核系统简化了内核设计(仅限特权模式)用户空间(可能有特权,但通常没有特权),这使得快速开发、单元测试、易于维护。存在的问题是内存占用多,频繁的上下文切换和进程间通信,不易实施。
总的来说统一的操作系统具有更好的性能,微内核操作系统具有更好的模块性和可扩展性但模式切换成本高。现代(大多数商业)操作系统采用混合方法,内核尽可能小,但大多数服务器都在特权内核空间中运行。例如Windows NT,XNU(OS X)。
操作系统的种类
网络操作系统,用于计算机网络的操作系统,允许并方便文件共享和硬件访问,在局域网(常见于企业环境)比单计算机操作系统更多的功能,如:更多的通信。典型的网络操作系统有Routers OS (Cisco IOS)
分布式操作系统,每个节点都有一个“核心”(微内核加上与其他节点协调的服务组件),各个节点共同完成操作系统的所有功能,单个节点可以完全访问所有系统资源。存在复杂的调度和并行性,用户不知道哪个节点正在执行程序,也不知道文件的物理位置——所有这些都由操作系统自动处理。
实时操作系统,专用于满足特定时间限制的实时操作系统。又分为硬实时(确保关键任务按时完成)和软实时(超过最后时限仍然值得完成任务),需要高级调度和内存分配。
可预测性和确定性,速度更重要,通常通过简化的操作系统设计实现,有时以可预测性和确定性为代价。足够快地做正确的事情,优先级可以由用户动态调整。故障安全,并不是简单地关闭所有设备。主要应用在机器人、飞机控制…
嵌入式操作系统,与实时操作并不完全相同,但大多数嵌入式操作系统都是实时操作系统,都需要满足时间限制。在本文中暂不区分实时操作系统和嵌入式操作系统,两个概念可以互换使用。
嵌入式系统RTOS与大循环模式
大循环模式易于实现,符和嵌入式的计算模型。依赖中断服务程序(ISR),需要保持ISR之间的同步,可预测性差(嵌套ISR)和可扩展性差,ISR或大循环的的改变会波及整个系统的稳定性和可靠性。
RTOS模式,将所有请求都封装到任务中,并根据需求进行调度,更好的程序流程和事件响应,多任务处理。相对简洁的中断服务程序(ISR),因此具有确定性。更好的沟通,更好的资源管理。
Keil公司 RTX,支持ARM Cortex-M内核的全面的RTOS,包含调度表/互斥量/事件/信号量/邮箱…
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
关于美狮贵宾会电子
美狮贵宾会电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。
20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。美狮贵宾会电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。
欢迎关注“美狮贵宾会电子”公众号
了解更多研发工具软件知识