《Cisco IOS XR技术精要》一1.3 操作系统概念

简介:

本节书摘来自异步社区《Cisco IOS XR技术精要》一书中的第1章,第1.3节,作者 【美】Mobeen Tahir , Mark Ghattas , Dawit Birhanu , Syed Natif Nawaz,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.3 操作系统概念

Cisco IOS XR技术精要
计算机系统,包括路由器之类的嵌入式系统,都会带有一个负责向应用提供服务的操作系统。操作系统还提供了协调进程活动和访问硬件资源(如内存、网络接口、硬盘)等重要功能。图1-1给出了操作系统、应用,以及硬件资源之间的逻辑关系图。


e5f491a1fbe4a12817f372e10621f8dbfa49f89f

操作系统基本功能
操作系统为应用提供了多种多样的服务。可提供的基本功能包括进程调度、中断处理、内存管理、进程间通信,以及常见例行程序(常见库)。本节将对操作系统的这些基本功能做更详细的介绍。

1.进程调度
所谓进程(process),是指在具有执行多程序实例能力的系统上运行的软件程序执行实例。一个程序可并发生出多个进程。在一个多任务处理的操作系统上,多个进程可以分时请求CPU资源,使用户感觉多个进程是同时进行处理的。在多任务处理系统中,进程很可能需要在完成其当前任务之前交出对CPU的控制。

在协同多任务处理(cooperative multitasking)系统中,进程只有在完成执行任务或等待任务事件时才会主动地交出CPU控制权。这可能会导致其他进程在等待当前进程执行完毕的期间造成CPU饿死。

另一方面,抢占多任务处理(preemptive multitasking)系统中,当前运行的进程有可能会被强制交出CPU控制权。这种行为被称为抢占(preemption),有可能发生在高优先级进程准备就绪或当前进程已经运行满一定的时长的情况下。

当操作系统对进程进行抢占时,在向其他进程交出控制权之前保留进程状态是非常重要的,这样可以保证进程在重获CPU控制权时可以恢复之前的操作。内容交换(context switching)机制可以使进程在被抢占和重获控制的时候执行保存和恢复操作。

大多数今天的操作系统支持并发运行同一进程的多个实例,这种类型的操作系统被称为多线程(multithread)系统。线程是进程中的最小执行单元。

2.中断处理
中断(interrupt)是一种从硬件或软件发出的信号,用来指示CPU必须立刻进行处理。中断行为会导致操作系统挂起当前运行进程,转而去处理新的例行程序或进程。运行着的进程同样可以执行一个中断指令并触发中断处理例行程序的内容交换行为。当运行重要例行程序时,操作系统会阻止某些中断操作直至重要例行程序处理完毕。这种功能叫做中断屏蔽(interrupt masking)。

3.内存管理
操作系统负责管理全部的系统内存,包括对进程的内存分配,以及确保进程不会损坏分配给其他进程的内存数据。内存保护(memory protection)机制用来阻止进程去访问未分配给自身的内存空间。使用内存保护功能,每个进程各自运行在自身的内存空间中。某个进程的缺陷或针对某个进程的恶意攻击不会影响到其他进程。

在支持内存保护功能的操作系统中,进程间某些形式的通信可以使用共享内存(shared memory)来得到更好的处理。所谓共享内存,指的是可以由多个进程访问的内存资源。操作系统在共享内存区域执行读或写操作的进程之间提供了差异同步机制。

在单片式操作系统(monolithic operating system)中,所有进程共享相同的地址空间,而且不提供进程间的故障隔离机制。单片式系统具有更短的CPU周期,这是因为在内存访问、进程间通信、内容交换方面,单片式系统具有更低的负载,这适用于CPU资源密集和带有少量代码的简单系统场景中。

在支持内存保护功能的操作系统中,OS进程负责管理其他进程、内存以及其他被称为内核(kernel)的系统资源,因此这种OS也常被叫做基于内核的操作系统(kernel-based OS)。内核也可以包含其他服务,取决于其实现方式。内核运行在系统外的单独内存空间中,并且保护其不受内核外的其他进程引起的内存数据损坏。

非内核进程中的故障不会影响到内核以及其他进程。不过,内核进程中的故障将会影响所有应用。在微内核(microkernel)系统中,仅有关键性的核心OS服务被放置在内核中。所有其他服务,包括设备驱动器和网络驱动器,都被放置在自身所属的地址空间中。这种系统具有优秀的弹性,因为设备或网络驱动器内的故障将会自行控制而不会影响到内核或其他应用。设备和网络驱动器也可以在不重启整个系统的条件下完成单独重启。

4.同步
当多个应用同时运行并试图访问某个资源(例如硬盘)时,确保维护数据的完整性和资源的公平分配是非常重要的。网络操作系统可提供多种机制来同步事件和资源访问。

5.进程间通信
由于许多进程不能使用内存来交换数据,因此运行在独立的的地址空间中。操作系统为这些进程提供了进程间通信(IPC)机制。IPC通信同样可以在运行于主RP上的进程和运行于设备不同组件中的进程之间使用,包括线卡和电源。

6.动态链接库
多个应用使用一组常用例行程序的例子是很常见的。当这些应用各自运行在受保护的内存地址空间中时,常用例行程序将在每个地址空间中被复制一次,这将造成内存空间的浪费。为了避免这种问题的发生,操作系统提供了一种共享常用例行程序的机制,称作动态链接库(DLL)或Libc(C标准库)。该机制允许OS仅将活动库加载进设备内存,并启动不同的进程来共享相同的库。这是一种健壮的错误控制和软件模块化机制。该机制还可允许常用代码在不同应用之间进行共享。

7.可移植操作系统接口
可移植操作系统接口(POSIX)是一套用来规定内核API、线程接口、内核应用等技术的IEEE规范。POSIX还定义了一致性测试程序组。通过了测试程序的操作系统将被称为POSIX一致OS。遵循POSIX规范的OS被认为具有高度的灵活性,并可以为日后的特性或应用部署提供最大的可移植性。一款基于POSIX OS规范开发的应用程序可以方便、轻松地移植到另一台符合POSIX规范的OS上。

相关文章
|
26天前
|
安全 Android开发 iOS开发
Android vs iOS:深入剖析两大移动操作系统的优劣与未来趋势####
【10月更文挑战第21天】 本文旨在通过技术视角,全面对比分析Android与iOS两大主流移动操作系统的架构差异、用户体验、安全性及生态系统等方面,探讨其各自优势与不足,并预测未来发展趋势。 ####
37 1
|
1月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
28天前
|
机器学习/深度学习 人工智能 Android开发
移动应用开发与操作系统的协同进化:探索现代技术融合之道###
随着移动互联网的迅猛发展,移动应用已成为人们日常生活中不可或缺的一部分。本文深入探讨了移动应用开发的最新趋势、关键技术以及移动操作系统的发展如何相互促进,共同推动移动互联网的创新与变革。通过分析当前市场动态和技术挑战,本文旨在为开发者提供有价值的见解和指导,帮助他们在竞争激烈的市场中脱颖而出。
|
19天前
|
人工智能 安全 物联网
Android与iOS:移动操作系统的双雄争霸
在智能手机市场中,Android和iOS作为两大主流操作系统,各自拥有庞大的用户群体和独特的生态系统。本文将深入探讨这两种系统的发展历程、技术特点、市场表现以及未来趋势,以期为读者提供全面而深入的了解。通过对比分析,我们可以发现,尽管Android和iOS在某些方面存在竞争关系,但它们也在相互借鉴中不断进步和完善。
|
15天前
|
安全 生物认证 Android开发
深入探索iOS与Android操作系统的安全性差异
本文旨在通过对比分析iOS和Android两大主流移动操作系统在安全性方面的差异,揭示它们各自的安全机制、面临的挑战以及用户如何提升自身设备的安全保护。通过对系统架构、应用审核机制、数据加密方式及隐私政策的深入探讨,本文为读者提供了一个全面了解两大平台安全性的视角,并提出了实用的安全建议。
|
28天前
|
API 数据处理 C语言
探索操作系统:从基础概念到实际应用
本文将带你进入操作系统的世界,了解它的基本概念、发展历程和应用场景。我们将一起探讨操作系统的核心功能、体系结构以及它在计算机系统中的重要作用。同时,我们还将介绍一些常见的操作系统类型,并分析它们的特点。最后,通过一个简单的代码示例,展示操作系统在实际应用中的重要作用。让我们一起揭开操作系统的神秘面纱,探索它的奥秘吧!
|
24天前
|
IDE 安全 Android开发
深入探索Android与iOS操作系统的架构差异
本文旨在对比分析Android和iOS两大主流移动操作系统在架构设计上的根本差异。通过详细解读两者的系统架构、开发环境、以及安全性等方面,揭示它们各自的特点及优势,为开发者选择合适的平台提供参考。
|
29天前
|
安全 定位技术 Android开发
深入探索Android与iOS操作系统的安全性差异
【10月更文挑战第21天】 在当今数字化时代,智能手机已成为我们生活中不可或缺的一部分。其中,Android和iOS作为两大主流操作系统,各自拥有庞大的用户群体。然而,它们在安全性方面的表现却大相径庭。本文将深入探讨Android与iOS在安全机制、隐私保护以及应对恶意软件方面的差异,帮助读者更全面地了解这两个平台的安全特性。
|
1月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
29 2
|
1月前
|
存储 安全 算法
深入探索iOS系统安全机制:保护用户隐私的前沿技术
本文旨在探讨苹果公司在其广受欢迎的iOS操作系统中实施的先进安全措施,这些措施如何共同作用以保护用户的隐私和数据安全。我们将深入了解iOS的安全架构,包括其硬件和软件层面的创新,以及苹果如何通过持续的软件更新来应对新兴的安全威胁。此外,我们还将讨论iOS系统中的一些关键安全功能,如Face ID、加密技术和沙箱环境,以及它们如何帮助防止未经授权的访问和数据泄露。
下一篇
DataWorks