首页 > 其他分享 >操作系统

操作系统

时间:2024-11-01 22:44:14浏览次数:3  
标签:API 操作系统 指令 内存 数据 CPU

操作系统

cpu

CPU 的全称是 Central Processing Unit

CPU 的核心是从程序或应用程序获取指令并执行计算。此过程可以分为三个关键阶段:提取,解码和执行。CPU从系统的主存中提取指令,然后解码该指令的实际内容,然后再由 CPU 的相关部分执行该指令。

img

在这个流程中,CPU 负责的就是解释和运行最终转换成机器语言的内容。

CPU 主要由两部分构成:控制单元算术逻辑单元(ALU)

  • 控制单元:从内存中提取指令并解码执行
  • 算数逻辑单元(ALU):处理算数和逻辑运算

img

  • 寄存器是中央处理器内的组成部分。它们可以用来暂存指令、数据和地址。可以将其看作是内存的一种。根据种类的不同,一个 CPU 内部会有 20 - 100个寄存器。
  • 控制器负责把内存上的指令、数据读入寄存器,并根据指令的结果控制计算机
  • 运算器负责运算从内存中读入寄存器的数据
  • 时钟 负责发出 CPU 开始计时的时钟信号

在中央处理器(CPU)内部,指令和数据的处理流程可以分为几个主要步骤

取指(Fetch)

  • 控制器从内存中读取指令。程序计数器(PC)指向当前要执行的指令地址。
  • 指令被加载到一个特定的寄存器中(通常是指令寄存器IR)。

译码(Decode)

  • 控制器对指令进行译码,解析指令的操作码和操作数。
  • 根据指令的类型,确定需要进行的操作以及涉及的寄存器。

执行(Execute)

  • 运算器根据译码后的指令,从寄存器中读取所需的数据。
  • 运算器执行具体的计算或逻辑操作。

访存(Memory Access)

  • 如果指令需要访问内存(如加载数据或存储结果),控制器会发出相应的信号,从内存中读写数据。

写回(Write Back)

  • 将运算结果或数据写回寄存器或内存。

更新程序计数器(PC)

  • 控制器更新程序计数器,指向下一条指令的地址。

时钟信号

  • CPU的时钟会定期发出信号,控制整个流程的节奏,确保各个步骤按照固定的时间间隔进行。

寄存器的种类

种类 功能
累加寄存器 存储运行的数据和运算后的数据。
标志寄存器 用于反应处理器的状态和运算结果的某些特征以及控制指令的执行。
程序计数器 程序计数器是用于存放下一条指令所在单元的地址的地方。
基址寄存器 存储数据内存的起始位置
变址寄存器 存储基址寄存器的相对地址
通用寄存器 存储任意数据
指令寄存器 储存正在被运行的指令,CPU内部使用,程序员无法对该寄存器进行读写
栈寄存器 存储栈区域的起始位置

内存

内存(Memory)是计算机中最重要的部件之一,它是程序与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存对计算机的影响非常大,内存又被称为`主存`,其作用是存放 CPU 中的运算数据,以及与硬盘等外部存储设备交换的数据。只要计算机在运行中,CPU 就会把需要运算的数据调到主存中进行运算,当运算完成后CPU再将结果传送出来,主存的运行也决定了计算机的稳定运行。

内存的内部是由各种 IC 电路组成的,它的种类很庞大,但是其主要分为三种存储器

  • 随机存储器(RAM): 内存中最重要的一种,表示既可以从中读取数据,也可以写入数据。当机器关闭时,内存中的信息会 丢失
  • 只读存储器(ROM):ROM 一般只能用于数据的读取,不能写入数据,但是当机器停电时,这些数据不会丢失。
  • 高速缓存(Cache):Cache 也是我们经常见到的,它分为一级缓存(L1 Cache)、二级缓存(L2 Cache)、三级缓存(L3 Cache)这些数据,它位于内存和 CPU 之间,是一个读写速度比内存更快的存储器。当 CPU 向内存写入数据时,这些数据也会被写入高速缓存中。当 CPU 需要读取数据时,会直接从高速缓存中直接读取,当然,如需要的数据在Cache中没有,CPU会再去读取内存中的数据。

内存和磁盘的关系

磁盘缓存指的是把从磁盘中读出的数据存储到内存的方式,这样一来,当接下来需要读取相同的内容时,就不会再通过实际的磁盘,而是通过磁盘缓存来读取。某一种技术或者框架的出现势必要解决某种问题的,那么磁盘缓存就大大改善了磁盘访问的速度

虚拟内存是内存和磁盘交互的第二个媒介。虚拟内存是指把磁盘的一部分作为假想内存来使用。这与磁盘缓存是假想的磁盘(实际上是内存)相对,虚拟内存是假想的内存(实际上是磁盘)。

通过借助虚拟内存,在内存不足时仍然可以运行程序。例如,在只剩 5MB 内存空间的情况下仍然可以运行 10MB 的程序。由于 CPU 只能执行加载到内存中的程序,因此,虚拟内存的空间就需要和内存中的空间进行置换(swap),然后运行程序。

虚拟内存与内存的交换方式

虚拟内存的方法有分页式分段式 两种。Windows 采用的是分页式。该方式是指在不考虑程序构造的情况下,把运行的程序按照一定大小的页进行分割,并以为单位进行置换。在分页式中,我们把磁盘的内容读到内存中称为 Page In,把内存的内容写入磁盘称为 Page Out。Windows 计算机的页大小为 4KB ,也就是说,需要把应用程序按照 4KB 的页来进行切分,以页(page)为单位放到磁盘中,然后进行置换。

img

压缩算法

文件存储

文件是将数据存储在磁盘等存储媒介的一种形式。程序文件中最基本的存储数据单位是字节。文件的大小不管是 xxxKB、xxxMB等来表示,就是因为文件是以字节 B = Byte 为单位来存储的。

文件就是字节数据的集合。用 1 字节(8 位)表示的字节数据有 256 种,用二进制表示的话就是 0000 0000 - 1111 1111 。如果文件中存储的数据是文字,那么该文件就是文本文件。如果是图形,那么该文件就是图像文件。在任何情况下,文件中的字节数都是连续存储的。

压缩算法的定义

有损和无损

无损压缩:能够无失真地从压缩后的数据重构,准确地还原原始数据。可用于对数据的准确性要求严格的场合,如可执行文件和普通文件的压缩、磁盘的压缩,也可用于多媒体数据的压缩。该方法的压缩比较小。如差分编码、RLE、Huffman编码、LZW编码、算术编码。

有损压缩:有失真,不能完全准确地恢复原始数据,重构的数据只是原始数据的一个近似。可用于对数据的准确性要求不高的场合,如多媒体数据的压缩。该方法的压缩比较大。例如预测编码、音感编码、分形压缩、小波压缩、JPEG/MPEG。


操作系统

api

应用程序向系统传递指令的途径称为 API(Application Programming Interface)

因为不同操作系统的 API 是有差异的。所以,如何要将同样的应用程序移植到另外的操作系统,就必须要覆盖应用所用到的 API 部分。

Windows 操作系统的特征

  • Windows 操作系统有两个版本:32位和64位
  • 通过 API 函数集成来提供系统调用
  • 提供了采用图形用户界面的用户界面
  • 通过 WYSIWYG 实现打印输出,WYSIWYG 其实就是 What You See Is What You Get ,值得是显示器上显示的图形和文本都是可以原样输出到打印机打印的。
  • 提供多任务功能,即能够同时开启多个任务
  • 提供网络功能和数据库功能
  • 通过即插即用实现设备驱动的自设定

32位操作系统

这里表示的32位操作系统表示的是处理效率最高的数据大小。Windows 处理数据的基本单位是 32 位。这与最一开始在 MS-DOS 等16位操作系统不同,因为在16位操作系统中处理32位数据需要两次,而32位操作系统只需要一次就能够处理32位的数据,所以一般在 windows 上的应用,它们的最高能够处理的数据都是 32 位的。

比如,用 C 语言来处理整数数据时,有8位的 char 类型,16位的short类型,以及32位的long类型三个选项,使用位数较大的 long 类型进行处理的话,增加的只是内存以及磁盘的开销,对性能影响不大。

现在市面上大部分都是64位操作系统了,64位操作系统也是如此。

通过 API 函数集来提供系统调用

Windows 是通过名为 API 的函数集来提供系统调用的。API是联系应用程序和操作系统之间的接口,全称叫做 Application Programming Interface,应用程序接口。

当前主流的32位版 Windows API 也称为 Win32 API,之所以这样命名,是需要和不同的操作系统进行区分,比如最一开始的 16 位版的 Win16 API,和后来流行的 Win64 API

API 通过多个 DLL 文件来提供,各个 API 的实体都是用 C 语言编写的函数。所以,在 C 语言环境下,使用 API 更加容易,比如 API 所用到的 MessageBox() 函数,就被保存在了 Windows 提供的 user32.dll 这个 DLL 文件中。

提供采用了 GUI 的用户界面

GUI(Graphical User Interface) 指得就是图形用户界面,通过点击显示器中的窗口以及图标等可视化的用户界面,举个例子:Linux 操作系统就有两个版本,一种是简洁版,直接通过命令行控制硬件,还有一种是可视化版,通过光标点击图形界面来控制硬件。

通过 WYSIWYG 实现打印输出

WYSIWYG 指的是显示器上输出的内容可以直接通过打印机打印输出。在 Windows 中,显示器和打印机被认作同等的图形输出设备处理的,该功能也为 WYSIWYG 提供了条件。

借助 WYSIWYG 功能,程序员可以轻松不少。最初,为了是现在显示器中显示和在打印机中打印,就必须分别编写各自的程序,而在 Windows 中,可以借助 WYSIWYG 基本上在一个程序中就可以做到显示和打印这两个功能了。

提供多任务功能

多任务指的就是同时能够运行多个应用程序的功能,Windows 是通过时钟分割技术来实现多任务功能的。时钟分割指的是短时间间隔内,多个程序切换运行的方式。在用户看来,就好像是多个程序在同时运行,其底层是 CPU 时间切片,这也是多线程多任务的核心。

img

提供网络功能和数据库功能

Windows 中,网络功能是作为标准功能提供的。数据库(数据库服务器)功能有时也会在后面追加。网络功能和数据库功能虽然并不是操作系统不可或缺的,但因为它们和操作系统很接近,所以被统称为中间件而不是应用。意思是处于操作系统和应用的中间层,操作系统和中间件组合在一起,称为系统软件。应用不仅可以利用操作系统,也可以利用中间件的功能。

img

相对于操作系统一旦安装就不能轻易更换,中间件可以根据需要进行更换,不过,对于大部分应用来说,更换中间件的话,会造成应用也随之更换,从这个角度来说,更å换中间件也不是那么容易。

通过即插即用实现设备驱动的自动设定

即插即用(Plug-and-Play)`指的是新的设备连接(plug) 后就可以直接使用的机制,新设备连接计算机后,计算机就会自动安装和设定用来控制该设备的`驱动程序

设备驱动是操作系统的一部分,提供了同硬件进行基本的输入输出的功能。键盘、鼠标、显示器、磁盘装置等,这些计算机中必备的硬件的设备驱动,一般都是随操作系统一起安装的。

有时 DLL 文件也会同设备驱动文件一起安装。这些 DLL 文件中存储着用来利用该新追加的硬件API,通过 API ,可以制作出运行该硬件的心应用。

时钟周期(GHZ)

什么是时钟周期?计算机处理器或 CPU 的速度由时钟周期来确定,该时钟周期是振荡器两个脉冲之间的时间量。一般而言,每秒脉冲数越高,计算机处理器处理信息的速度就越快。 时钟速度以 Hz 为单位测量,通常为兆赫(MHz)或千兆赫(GHz)。 例如,一个4 GHz处理器每秒执行4,000,000,000个时钟周期。

计算机处理器可以在每个时钟周期执行一条或多条指令,这具体取决于处理器的类型。 早期的计算机处理器和较慢的 CPU 在每个时钟周期只能执行一条指令,而现代处理器在每个时钟周期可以执行多条指令。

进程

进程的本质就是操作系统执行的一个程序。你可以把进程看作是容纳运行一个程序所有信息的一个容器。

对进程建立一种直观感觉的方式是考虑建立一种多程序的系统。考虑下面这种情况:用户启动一个视频编辑程序,指示它按照某种格式转换视频,然后再去浏览网页。同时,一个检查电子邮件的后台进程被唤醒并开始运行,这样,我们目前就会有三个活动进程:视频编辑器、Web 浏览器和电子邮件接收程序。操作系统周期性的挂起一个进程然后启动运行另一个进程,这可能是由于过去一两秒钟程序用完了 CPU 分配的时间片,而 CPU 转而运行另外的程序。

地址空间

地址空间是指一个计算机系统中可用于地址标识的内存范围。简单来说,它是指 CPU 或操作系统可以访问的内存地址的集合。地址空间通常分为以下几种:

  1. 物理地址空间:这是计算机物理内存的实际地址范围。每个物理地址对应于一个实际的内存单元。
  2. 虚拟地址空间:现代操作系统使用虚拟内存技术,给每个进程提供一个独立的地址空间。这意味着每个进程认为自己拥有整个地址空间,而实际的物理内存则通过操作系统管理和映射。
  3. 用户空间与内核空间:地址空间通常分为用户空间和内核空间。用户空间是普通应用程序运行的地方,而内核空间是操作系统核心运行的地方,具有更高的权限。

管道(pipe)

是一种虚文件,他可以连接两个进程

如果 A 和 B 希望通过管道对话,他们必须提前设置管道。当进程 A 相对进程 B 发送数据时,它把数据写到管道上,相当于管道就是输出文件。这样,在 UNIX 中两个进程之间的通信就非常类似于普通文件的读写了。

标签:API,操作系统,指令,内存,数据,CPU
From: https://www.cnblogs.com/cloudwangsa/p/18521406

相关文章

  • 操作系统 实验三 文件管理
    实验目的    编写一个简单的二级文件系统实现程序,加深对文件系统的内部功能和内部实现的理解。实验内容    文件系统的管理功能是将其管理的程序和数据通过组织为一系列文件的方式实现的。而文件则是指由创建者所定义的、具有文件名的一组相关元素的集合。......
  • ravynOS 0.5.1 - 基于 FreeBSD 的 macOS 兼容开源操作系统
    ravynOS0.5.1-基于FreeBSD的macOS兼容开源操作系统ravynOS-一个旨在提供macOS的精致性和FreeBSD的自由度的操作系统请访问原文链接https://sysin.org/blog/ravynos/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgravynOS我们喜欢macOS,但我们不喜......
  • Linux操作系统网站提示“Internal Server Error”报错
    可能原因及解决方法服务器资源超载解决方法:检查服务器资源使用情况,如CPU、内存和磁盘空间。如果资源使用率过高,考虑优化应用或升级服务器配置。PHP版本过低解决方法:检查当前PHP版本,并确保与WordPress兼容。可以通过以下命令查看PHP版本:   PHP文件配置错......
  • 【操作系统实验课】Linux操作基础
    1.打开UbuntuUbuntu-22.04虚拟机安装-CSDN博客打开虚拟机软件启动其中的Ubuntu22.04打开Ubuntu系统终端2.创建目录和文件创建test3目录:在终端中输入命令:mkdir/test3。此命令用于在根目录下创建test3目录。(注意在命令中,“mkdir”是创建目录的命令,“/test3”是要......
  • Linux 操作系统 3 (VIM篇)
    什么是Vim?Vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说,vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim则可以说是程序开发者的一项很好用的工具。连vim的官方网......
  • 操作系统知识要点
    一.操作系统的特性1.并发性在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但实际上在单CPU的运行环境,每一个时刻只有一个程序在执行。因此,从微观上来说,各个程序是交替、轮流执行的,如果计算机系统中有多个CPU,则可将多个程序分配到不同CPU上实现并行运行......
  • 驰骋软件与多版本麒麟操作系统完成兼容性适配认证
            驰骋软件成功完成了与多版本麒麟操作系统的兼容性适配认证。这一里程碑式的成果标志着驰骋软件在国产操作系统生态建设领域迈出了坚实的步伐,为我国信息化建设注入了新的活力。        麒麟操作系统作为我国自主研发的操作系统,在安全性、稳定性和性能......
  • 鸿道Intewell操作系统架构介绍之Intewell-Hyper I 虚拟化构型
    鸿道Intewell-HyperI虚拟化构型是鸿道Intewell-V虚拟化架构下的构型体系!鸿道Intewell-V是科东软件自主研发的实时虚拟化操作系统,包括鸿道Intewell-HyperI和鸿道Intewell-HyperII。鸿道Intewell-V可以实现多个操作系统在同一物理硬件上并行运行,并具有实时性保障。其对......
  • 国产操作系统成功安装微信
    微信目前几乎是上网必备软件,不仅在移动设备上普遍使用,也因其文件处理能力强、与移动设备端可同步,其在电脑上也普遍使用。随着国产操作系统的蓬勃发展,使用该系统的用户越来越多,但微信官网上的微信安装包没有支持国产操作系统的。经过本人的长时间搜索下载与安装试用,发现了一个可......
  • 操作系统——进程同步互斥经典题目
    操作系统——进程同步互斥经典题目前言这里是操作系统课程中老师布置的作业,主要是关于进程同步互斥的考研真题。题目题目一有4个进程P1、P2、P3、P4。要求P1必须在P2、P3开始前完成,P2、P3必须在P4开始前完成,且P2和P3不能并发执行。试写出这4个进程的同步互斥算法。解答:......