操作系统的特性

操作系统的性质

  • 并发性

    操作系统支持多道程序设计,即允许多个程序并发执行。通过进程管理和调度机制,操作系统能够在单个处理器上模拟出多个任务同时运行的效果,提高系统资源利用率和用户响应体验。并发性也要求操作系统具备进程同步、互斥和通信等机制,以协调并发执行的进程间的相互关系

    • 并发与并行
      • 并发:并发是指在一段时间内看似同时处理多个任务的现象。在并发环境中,多个任务(例如线程、进程或协程)可能在逻辑上同时进行,但实际上它们可能并未在同一时刻真正同时执行,实际在同一时间间隔内交替发生。
      • 并行:并行是指多个任务在物理层面的真正同时执行。这意味着,不同的任务被分配到不同的处理器核心(或分布式系统中的节点)上,这些核心或节点能够同时、独立地处理各自的任务。
      • 区别:
        1.执行方式:并发侧重于任务在逻辑上的重叠执行,通过时间切片和上下文切换在单一处理器或多处理器系统中交替执行;并行强调任务在物理上的同时执行,利用多处理器或多核架构真正地同时处理多个任务。
        2.资源利用:并发环境下,任务可能需要竞争共享资源,需要复杂的同步机制来保证正确性;并行任务可以充分利用独立的计算资源,减少资源争用,但在需要共享数据或协作时仍需同步。
        3.性能影响:并发有助于提高系统的响应性和任务处理的总体吞吐量,但单个任务的执行速度不会因为并发而加快;并行则可以直接缩短单个任务的执行时间,对于可并行化程度高的任务,能够实现显著的性能提升。
  • 共享性

    操作系统管理的资源(如内存、处理器、I/O设备等)通常是多个进程或用户共享的。操作系统必须确保资源的安全共享,防止因并发访问导致的数据不一致性、死锁等问题。

    • 互斥共享方式:互斥共享是一种访问控制策略,它规定在任意时刻,只允许一个线程或进程访问特定的共享资源(如数据结构、文件、设备等)。当一个线程进入临界区(即对共享资源进行操作的代码段)时,其他试图访问同一资源的线程必须等待,直至当前访问线程离开临界区。
      • 同步原语:实现互斥通常需要借助同步原语,如互斥锁(Mutex)、信号量(Semaphore)等。线程在访问共享资源前获取锁,访问结束后释放锁,从而实现对资源的保护。
      • 潜在阻塞:当某个线程持有互斥锁时,其他请求访问的线程可能会被阻塞,直到锁释放。这可能导致线程调度开销和潜在的死锁风险,需要谨慎设计和使用同步机制。
    • 同时访问方式:同时访问,特别是指并发读取的情况下,允许多个线程或进程在同一时刻对共享资源进行访问。这种访问方式并不限制所有线程都必须等待,而是允许在特定条件下(如仅读取不修改)多个执行单元同时操作共享数据。
      • 读写区分:对于读写操作,同时访问通常仅针对读操作进行放宽。多个线程可以同时读取共享资源,而写操作依然需要遵循互斥原则,以防止数据冲突。
      • 无锁条件:在某些场景下,可以使用无锁数据结构或原子操作来实现线程安全的同时访问。这些技术通常利用硬件提供的原子指令(如CAS)来避免锁定,从而降低同步开销,提高并发性能。
  • 虚拟性

    操作系统通过虚拟化技术为每个进程提供一个独立的、受保护的运行环境,即虚拟机。这包括虚拟处理器(每个进程拥有独立的指令流和执行上下文)、虚拟内存(每个进程看到自己的地址空间,通过页表进行映射)以及虚拟设备(通过设备驱动程序抽象,使得进程可以透明地访问设备)。虚拟性增强了系统的隔离性、安全性,同时也实现了对有限硬件资源的有效扩展和复用。

    • 时分复用技术:是一种在多任务环境中实现资源共享的技术,特别是在计算机操作系统中用于管理和调度处理器时间。该技术基于时间分割的概念,将处理器的执行时间划分为一系列离散的时间片(time slice),然后按照一定规则分配给多个并发执行的任务(如进程、线程)。这样,尽管在物理上只有一个处理器核心,但通过时分复用,可以为每个任务提供一种仿佛独占处理器的“虚拟性”。
    • 空分复用技术:如果说时分复用计数是通过利用处理机的空闲时间运行其他程序,提高了处理机的利用率,那么空分复用技术则是利用存储器的空闲空间分区存放和运行其他多道程序,以此来提高内存的利用率.但是单纯的空分复用只能提高内存的利用率,并不能在逻辑上扩大存储器容量,此时还必须引入虚拟存储技术.虚拟存储技术的本质是实现内存的时分复用,它通过时分复用的技术使一个程序在远小于他的内存环境中运行.
  • 异步性

    计算机系统中事件的发生往往是不可预测的、非同步的,如I/O中断、进程切换、定时器到期等。操作系统必须具备处理异步事件的能力,通过中断处理机制快速响应硬件事件,通过调度算法适时切换进程,确保系统的实时性和响应性。

  • 持久性

    操作系统通过文件系统管理磁盘等永久性存储设备,提供数据的长期保存和检索服务。文件系统确保即使在系统重启后,用户数据仍能保持不变,实现数据的持久存储。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark-机器学习(4)回归学习之逻辑回归

在之前的文章中,我们来学习我们回归中的线性回归,了解了它的算法,知道了它的用法,并带来了简单案例。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请…

Syncovery for Mac v10.14.3激活版:文件备份和同步工具

Syncovery for Mac是一款高效且灵活的文件备份与同步工具,专为Mac用户设计,旨在确保数据的安全性和完整性。该软件支持多种备份和同步方式,包括本地备份、网络备份以及云备份,用户可以根据实际需求选择最合适的方案。 Syncovery f…

信息系统项目管理师0062:需求分析(5信息系统工程—5.1软件工程—5.1.2需求分析)

点击查看专栏目录 文章目录 5.1.2需求分析1.需求的层次2.需求过程3.UML4.面向对象分析记忆要点总结5.1.2需求分析 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是…

【深度学习】烟雾和火焰数据集,野外数据集,超大量数据集,目标检测,YOLOv5

标注了2w张数据集,是目标检测yolo格式的,有火焰、烟雾两个目标。 训练方法看这里: https://qq742971636.blog.csdn.net/article/details/138097481 打包 依据不一样的需求, 详情请查看 https://docs.qq.com/sheet/DUEdqZ2l…

多元函数泰勒公式(含黑塞矩阵)

一元函数的泰勒公式: 接下来,由一元函数有关知识,我们有: 注意这里的dxn中,应把dx看作一个整体,即一个微小变量的n次方 我们接下来推导微分算子: 接下来,把一元泰勒公式转为微分形式: 对于二元…

React.js 3D开发快速入门

如果你对 3D 图形的可能性着迷,但发现从头开始创建 3D 模型的想法是不可能的 - 不用担心! Three.js 是一个强大的 JavaScript 库,它可以帮助我们轻松地将现有的 3D 模型集成到 React 应用程序中。因此,在本文中,我将深…

Linux tcp/ip 网路协议栈学习-00 前言

Linux tcp/ip 网路协议栈学习-00 前言 目录 Linux tcp/ip 网路协议栈学习-00 前言 (1)预备知识 (2)前置知识 (3)学习目标 (4)总结 (1)预备知识 好工具事半功倍,做任何事情都需要有方法和工具,同样,阅读 Linux 内核源码也是如此…

ExcelVBA把当前工作表导出为PDF文档

我们先问问Kimi Excel导出为PDF的方法有多种,以下是一些常见的方法: 1 使用Excel软件的内置功能: 打开Excel文件,点击“文件”菜单。选择“另存为”,在“保存类型”中选择“PDF”。设置保存路径和文件名,点…

【机器学习】重塑汽车设计与制造:实例与代码探索

机器学习重塑汽车设计与制造 一、机器学习在汽车设计中的应用二、机器学习在智能制造与生产中的应用 在数字化浪潮的推动下,机器学习技术正逐步成为汽车行业的创新引擎。从概念设计到智能制造,机器学习正以其独特的优势助力汽车产业的革新与发展。本文将…

数据挖掘实验(Apriori,fpgrowth)

Apriori:这里做了个小优化,比如abcde和adcef自连接出的新项集abcdef,可以用abcde的位置和f的位置取交集,这样第n项集的计算可以用n-1项集的信息和数字本身的位置信息计算出来,只需要保存第n-1项集的位置信息就可以提速…

day06 51单片机-点阵led

1 点阵LED 1.1 需求描述 本案例介绍如何使用点阵LED显示一排由左上到右下的斜线。 1.2 硬件设计 1.2.1 硬件原理图 点阵内部的原理图: 点阵LED的原理也非常简单,就是LED点灯。例如,我们想要让13列(阳极端)9行(阴极端)的LED点亮,需要13为高电平,9为低电平。注意对于…

【Git】git revert 命令(撤销 commit 改动)

基本语法 Git revert命令用于通过创建一个新的commit来撤销一个或多个之前的commit。这样做的好处是保持了项目历史的完整性,并且可以将撤销的改动应用到其他分支。 撤销单个commit:如果你只想撤销一个commit,你可以使用以下命令 git revert…

Oracle进阶(3)——索引、权限、角色管理、分区表

一、索引 在 Oracle 数据库中,索引是一种数据结构,用于加快数据库表的数据检索速度。索引存储着表中一个或多个列的值以及对应的行的物理地址或指针。通过使用索引,数据库可以更快地定位到符合特定条件的行,而不必扫描整个表。索引…

logback添加日志行号

logback打印行号 全量配置如下 在包名后面添加\(%F:%L\\)这样打印的日志是带类名加行号,支持 ide 点击跳转(xxx.main.java:18)精简配置如下 打印全量类占用显示位置去掉主类名直接打印行号%clr(%4.4L{4})这样打印的日志只是加行号解释:%4:这…

【源码】Spring validation参数校验之分组序列校验@GroupSequenceProvider、@GroupSequence的实现原理

Spring validation参数校验系列 1、Spring validation参数校验基本使用 2、Spring validation参数校验之自定义校验规则及编程式校验等进阶篇 3、Spring validation参数校验原理解析之Controller控制器参数校验中RequestBody参数校验实现原理 4、Spring validation参数校验…

苍穹外卖day8(2)用户下单、微信支付

文章目录 前言一、用户下单1. 业务流程2. 接口设计3. 数据库设计3.1 订单表orders3.2 订单明细表 order_detail 4. 代码实现 二、订单支付 前言 用户下单 因为订单信息中包含了其他业务中的数据,在逻辑处理中涉及了多个其他业务,比如要判断地址簿、购物…

描述一下PHP与HTML和CSS的关系

描述一下PHP与HTML和CSS的关系 PHP、HTML和CSS在Web开发中各自扮演着不同的角色,它们之间的关系密切而互补,共同构建了一个完整且富有动态性的Web应用程序。下面我将详细阐述PHP与HTML和CSS之间的关系。 首先,HTML(HyperText Ma…

面试复习基础题目-c#相关

面试复习基础题目 c#相关问题 delegate和event的区别是什么? Delegate用来声明委托类型,event用来声明委托对象; 事件是委托的一种应用,事件是带有event关键词的委托对象,对委托对象进行了封装,本质就是委…

聚类与分类的区别

聚类和分类是机器学习中的两个基本概念,两者的主要区别在于用于分类的数据已经预先标记好类别,而用于聚类的数据则没有预先标记的类别。以下是详细介绍: 目的不同。聚类的目的是发现数据中的自然分组,将相似或相关的对象组织在一…

基于SSM+Vue的护工预约服务小程序和后台管理系统

1、系统演示视频(演示视频) 2、需要请联系