当前位置: 首页 > article >正文

【OS】计算机系统概述|操作系统基本概念|并发|并行|虚拟异步


Blog’s 主页: 白乐天_ξ( ✿>◡❛)
🌈 个人Motto:他强任他强,清风拂山冈!
🔥 所属专栏:C++深入学习笔记
💫 欢迎来到我的学习笔记!

前言

一、操作系统的概念

操作系统(Operating System,OS):控制和管理整个计算机系统的硬件与软件资源(OS是系统资源的管理者),合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合(OS向上层提供方便易用的服务)。操作系统是计算机系统中最基本的系统软件(OS是最接近硬件的一层软件)。

画板

二、操作系统的目标和功能

2.1 OS是系统资源的管理者

例如,我们执行一个动作:打开QQ程序程序进行聊天。

  1. 首先通过一层一层的文件夹、目录找到QQ.exe(可执行程序)。这是操作系统的文件管理功能。
  2. 双击运行QQ.exe。执行一个程序之前需要将该程序放在内存中,才能被CPU处理。因此,操作系统需要将该程序相关数据放入内存,这是操作系统的存储器管理功能。
  3. QQ 程序正常运行。对应的进程被处理机(CPU)管理,这是操作系统的处理机管理功能。
  4. QQ进行视频聊天,操作系统为其分配摄像头资源,这是操作系统的设备管理功能。

2.2 OS向上层提供方便易用的服务

2.2.0 图形化界面(GUI)

  • 计算机最底层是纯硬件(裸机),只能听懂机器语言(二进制指令0、1)硬件对外暴露的就是不友好的交互接口。因此我们在其上方安装上操作系统,让它对外提供有好的交互接口。用户的命令经过操作系统传递给硬件。
  • 这就像汽车一样。汽车底层就是一些复杂的硬件、框架,但是对用户提供的是简单医用的刹车、油门、方向盘……用户不需要关心汽车底层是什么。
  • 这就是一种封装思想:操作系统将一些丑陋的硬件功能封装成简单易用的服务,使用户能更加方便地使用计算机。用户无需关心底层硬件原理,只需对操作系统发出命令即可。

  • 操作系统为了实现封装这一功能,提供了图形化界面这一功能。
  • 操作系统向上层提供了两种接口:命令接口和程序接口。

2.2.1 命令接口

  1. 联机命令接口

联机命令接口又叫做交互式命令接口。早期用户使用命令行的方式与操作系统进行交互。后来有了图形化界面(GUI)。打开GUI的方式:win+R输入cmd回车使用命令行操作……简而言之,就是用户说一句系统就做一句

  1. 脱机命令接口

脱机命令借口又叫做批处理命令接口。搜索打开计算机中的***.bat文件(可使用记事本打开),操作系统根据上面罗列的命令开始执行。简而言之,就是用户说一堆系统做一堆

2.2.2 程序接口

  • 操作系统对外还提供了程序接口。可以在系统调用(又称为广义指令)中使用程序接口。普通用户不能直接使用,只能通过程序代码间接使用。
  • 系统调用类似于函数调用,是应用程序请求操作系统服务的唯一方式。
  • 例如:C语言中实现“Hello world!”程序时,在printf()函数底层就使用到了操作系统提供的显示相关的“系统调用”。

画板
狭义的用户接口不包括图形化界面(GUI)。

2.3 OS是最接近硬件的一层软件

没有任何软件支持的计算机成为裸机,它仅仅是计算机系统的物质基础。所以我们需要实现对硬件机器的扩展。

例如:会转的发动机和可以带着会滚的轮子,使原始硬件机器得到扩展。类比:操作系统载着硬件裸机,实现对硬件功能的扩展。通常把覆盖了软件的机器称为扩充机器,又称为虚拟机

三、操作系统的特征⭐⭐⭐⭐

3.1 并发(Concurrence)

  • 并发:是指两个或者多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但是在微观上是交替发生的。(任何时刻都是多项任务
    • 易混淆概念:并行,是指两个或多个事件在同一时刻同时发生。(任何时刻都是一项任务
  • 操作系统的并发性:是指计算机系统“同时”进行着多个程序,这些程序宏观上是同时进行的,微观上是交替进行的。操作系统就是伴随着“多道程序技术”而出现。因此,操作系统和程序并发是一起诞生的
  • 注意:
    • 单核CPU同一时刻只能执行一个程序,各个程序只能并发地进行。
    • 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。
    • 比如:Intel第八代i3处理器就是4核CPU,意味着可以并发地执行4个程序
    • 如果它有4个以上的程序需要“同时”执行,那么并发性依然必不可少。因此,并发性是操作系统一个最基本的特征。

3.2 共享(Sharing)

3.2.1 互斥共享方式

  • 系统中的某些资源,虽然可以提供给多个进程使用,但是一个时间段内只允许一个进程访问该资源
  • 例如:QQ视频与微信视频,同一时间段内摄像头只能分配给其中一个进程。

3.2.2 同时共享方式

  • 系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问
  • 例如:使用QQ发送文件A,同时使用微信发送文件B。宏观上,两边都在同时读取发送文件,说明两个进程都在访问硬盘资源,从中读取资源。微观上看,两个进程是交替着访问硬盘的。
  • 并发和共享的关系:互为存在条件。例如:QQ发送文件A,微信发送文件B。
    • 两个进程正在并发执行(并发性);
    • 需要共享访问硬盘资源(共享性)。
      • 如果失去并发性,则系统中只有一个程序正在运行,则共享型失去存在的意义。
      • 如果是去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,就无法并发。
  • 所以:并发与共享互为存在条件。此外,没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征。

3.3 虚拟

虚拟:是指一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。

已知:一个程序需要放入内存并给它分配CPU才能执行。

  • Q:为什么可以在4GB内存的计算机同时执行需要内存为4GB的GTA5、256MB的QQ、256MB的网易云音乐……呢?
    • A:使用了虚拟存储器技术。实际上只有4GB内存(物理上的实体),在用户看来运行这些应用需要大于4GB的内存,似乎只有4GB内存的计算机内存明显不够(用户角度:逻辑上的对应物)。
    • 这就是虚拟技术中的“空分复用技术”
  • Q:为什么单核计算机可以执行多个程序呢?
    • A :使用了虚拟处理器技术。实际上只有一个单核CPU,在用户看来似乎由多个CPU在同时为自己服务。
    • 这就是虚拟技术中的“时分复用技术”微观上处理机各个微小的时间段内交替着为各个进程服务

3.4 异步

异步:在多道程序情况下,允许多个程序并发执行,但是由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。只要运行环境相同,操作系统就须保证多次运行进程前后都能获得相同的结果。

异步技术的优势:

  1. 提高并发性:异步技术允许多个任务同时进行,而不需要等待其他任务完成。这使得系统能够更有效地利用资源,处理更多的任务,从而提高并发性。
  2. 增强响应速度:在处理长时间运行的任务时,异步技术可以避免阻塞主线程或进程,从而保持系统的响应速度。例如,在用户界面编程中,异步操作可以避免界面冻结,提高用户体验。
  3. 资源高效利用:通过异步I/O操作,系统可以在等待I/O操作完成时,继续处理其他任务。这避免了资源的闲置,提高了系统的整体效率。


http://www.kler.cn/a/325413.html

相关文章:

  • 【Ubuntu24.04】使用服务器
  • VSCode插件
  • 排序算法(基础)大全
  • 《C语言程序设计现代方法》note-5 数组
  • 加速 AI 创新:引入 Elastic AI 生态系统
  • Redis在高性能缓存中的应用
  • 如何在O2OA中使用ElementUI组件进行审批流程工作表单设计
  • C++:模拟实现vector
  • 2025秋招内推|招联金融
  • 推荐常用的搜索渠道
  • Unity 热更新(HybridCLR+Addressable)-创建Addressable资源
  • H.264与H.265
  • FFmpeg源码:avio_seek函数分析
  • Codeforces Round 301 (Div. 2) C题 Ice Cave(BFS)
  • 昇思MindSpore进阶教程--高级自动微分
  • 基于springboot+小程序的儿童预防接种预约管理系统(疫苗1)(源码+sql脚本+视频导入教程+文档)
  • 依赖倒置原则(学习笔记)
  • PostgreSQL的表碎片
  • 学习Java (五)
  • Go Sonyflake学习与使用
  • 新能源汽车充电桩怎么选?
  • Linux基础(二):磁盘分区
  • js替换css主题变量并切换iconfont文件
  • uniapp中h5环境添加console.log输出
  • 2024年7月大众点评沈阳美食店铺基础信息
  • 数据结构和算法之树形结构(4)