《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上。

相关文章
|
9天前
|
存储 缓存 Linux
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
|
16天前
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
|
16天前
|
人工智能 安全 Android开发
【专栏】在人工智能时代,Android和iOS两大移动操作系统巨头正加速融合与创新
【4月更文挑战第27天】在人工智能时代,Android和iOS两大移动操作系统巨头正加速融合与创新。Android以其开放性占据广阔市场,集成AI功能如语音助手;而iOS以其稳定性和生态优势,如Siri,提供卓越体验。两者在AI技术、应用场景上相互借鉴,拓展至医疗、教育等领域,并逐步打通生态系统。然而,技术竞争、数据隐私和标准不一是挑战,新市场需求、技术创新和产业合作则带来机遇。未来,二者将继续推动AI发展,为社会进步贡献力量。
|
2天前
|
安全 Android开发 iOS开发
探索安卓与iOS手机操作系统的发展趋势与差异
在移动互联网时代,安卓和iOS手机操作系统一直处于激烈的竞争之中。本文将从技术角度出发,探讨两大操作系统的发展趋势、特点以及差异,并分析其对用户体验和开发者生态的影响,旨在为读者提供对移动操作系统发展方向的深入了解。
|
3天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用深入理解操作系统内存管理:原理与实践
【5月更文挑战第28天】 随着人工智能技术的飞速发展,图像识别作为其重要分支之一,在多个领域展现出了广泛的应用潜力。尤其是在自动驾驶系统中,基于深度学习的图像识别技术已成为实现车辆环境感知和决策的关键。本文将深入探讨深度学习算法在自动驾驶图像识别中的作用,分析其面临的挑战以及未来的发展趋势,并以此为基础,展望该技术对自动驾驶安全性和效率的影响。
|
4天前
|
安全 物联网 区块链
未来交织:新兴技术趋势与多维应用场景探索深入理解操作系统:进程管理与调度策略
【5月更文挑战第27天】 随着数字化转型的深入,新兴技术如区块链、物联网(IoT)、虚拟现实(VR)等正在重塑我们的世界。本文将探讨这些技术的发展脉络,并分析其在不同领域的融合与创新应用。区块链技术以其不可篡改和去中心化的特性,在金融、供应链管理中展现出独特的价值;物联网通过连接万物实现智能化管理,推动智慧城市和智能家居的发展;虚拟现实技术则在娱乐、教育和医疗等领域提供沉浸式体验。这些技术的交叉融合预示着一个全新的未来,其中安全性、隐私保护和可持续发展是核心议题。
|
4天前
|
存储 人工智能 安全
移动应用与系统:探索开发与操作系统的融合安卓应用开发:打造高效用户界面的关键技术
【5月更文挑战第27天】 随着移动互联网的飞速发展,移动应用和操作系统已经成为了我们日常生活中不可或缺的一部分。本文将深入探讨移动应用开发的关键要素,以及移动操作系统的核心功能。我们将分析移动应用开发的挑战和机遇,并讨论移动操作系统如何适应不断变化的技术环境。通过深入研究这些主题,我们希望为读者提供对移动应用和系统领域的全面理解。
|
6天前
|
机器学习/深度学习 缓存 算法
深入理解操作系统的虚拟内存管理利用机器学习技术优化数据中心能效
【5月更文挑战第25天】 在现代计算机系统中,虚拟内存是允许用户程序逻辑地址空间与物理内存解耦的关键概念。它为每个进程提供了一个独立的、连续的地址空间,通过内存管理单元(MMU)硬件的支持,将程序使用的虚拟地址映射到实际的物理内存地址。这种机制不仅简化了程序的编写和内存的管理,还提供了保护机制,防止不同进程之间的相互干扰。本文将探讨虚拟内存的工作原理、分页系统的实现以及虚拟内存带来的性能影响,并讨论操作系统如何优化内存使用和管理。
|
7天前
|
算法 调度
【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程
【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程
21 3
|
7天前
|
调度 索引
【操作系统】进程的基本概念&进程的状态与转换&进程的组织方式
【操作系统】进程的基本概念&进程的状态与转换&进程的组织方式
15 2