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

news/2024/9/30 4:20:02/


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

前言

一、操作系统的概念

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

画板

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

OS_24">2.1 OS是系统资源的管理者

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

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

OS_38">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)。

OS_73">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.ppmy.cn/news/1532234.html

相关文章

DTOF(direct Time-of-Flight,直接飞行时间)

一、基本概念 1.1 定义 dToF,即直接飞行时间(direct Time-of-Flight),是一种通过测量光脉冲发射出去并反射回来的时间差来直接计算距离的技术。 TOF应用场景非常多,电子消费品领域有人脸识别,照相机辅助对…

Python爬虫爬取王者荣耀英雄信息并保存到图数据库

爬取信息说明 英雄名称英雄类型英雄包含的所有皮肤名称 创建英雄类型节点 王者荣耀官方给出的英雄类型是以下几种: 直接准备好英雄类型词典 hero_type_dict [战士, 法师, 坦克, 刺客, 射手, 辅助 ]添加到图数据库中 def create_hero_type_node():for hero_ty…

STM32LL库之printf函数重定向

1. 加入以下代码 int fputc(int ch,FILE *f) {LL_USART_TransmitData8(USART1,ch);while(!LL_USART_IsActiveFlag_TXE(USART1));//需要等待发送完成return(ch); }记得添加 stdio.h 头文件 2. 在MDK中勾选:Use MicroLIB

极狐GitLab 17.4 重点功能解读【四】

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…

java.lang.IllegalArgumentException: Could not resolve placeholder

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 配置文件里面的内容没有生效。 需要指定一下Active profiles:

MySQL的基础用法一

数据库的操作 对库的操作 SQL通用语法规则介绍 创建数据库 使用数据库 查询所有数据库 查询当前数据库 删除数据库 对库中表的操作 创建一个表 查询当前数据库所有表 查询表结构 查询指定表的建表语句 🚘🚘🚘正片开始 SQL通用语…

python requests模块学习

1、模块介绍 Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。 2、get请求示例 # 导入 requests 包 import requests# 发送请求 x requests.get(https://www.run.com/)# 返回 http 的状态码 print(x.stat…

C语言基本语法————基本数据类型、变量与常量

一、基本数据类型 在C语言这门严谨的语言中,所有的数都不能像数学中一样直接写,为了节省计算机的储存空间和优化计算,将数据分为一下几种类型; 1、整型 (1)、有符号整型 有符号整型的数据类型通常包括 int、short、long、long lo…