欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 操作系统初步认识

操作系统初步认识

2025/4/22 21:38:22 来源:https://blog.csdn.net/2301_80030944/article/details/142829883  浏览:    关键词:操作系统初步认识

操作系统初步认识

目录

  1. 冯诺依曼体系结构
  2. 操作系统
    1. 核心功能
    2. 操作系统管理硬件
    3. 系统调用和库函数

1.冯诺依曼体系结构

为什么在学习操作系统前,要学习冯诺依曼体系结构,这是什么东西?

  • 冯·诺依曼体系结构(Von Neumann Architecture)是计算机系统的经典结构模型,由约翰·冯·诺依曼在1945年提出。
  • 这种体系结构是现代大多数计算机系统的基础。

简单点说,冯诺依曼体系结构决定了计算机硬件的结构。

存储程序的概念程序数据都存储在计算机的内存中,计算机通过读取内存中的指令逐条执行程序。这样,计算机不仅可以执行数据操作,还可以操作指令本身。

意味着现在你所用的计算机里的内存,不仅用于存放数据,还用于存放程序代码。

五大基本部件

  • 控制器:负责读取、解释和执行指令,控制计算机的操作流程。

  • 运算器(算术逻辑单元,ALU):负责执行基本的算术和逻辑操作。

  • 存储器:用于存储数据和指令,常包括随机存取存储器(RAM)和只读存储器(ROM)。

    这里的存储器就是内存

  • 输入设备:将外部数据输入到计算机中,如键盘、鼠标等。

  • 输出设备:将计算结果输出到外部,如显示器、打印机等。

单一存储空间:程序和数据共享同一个存储空间。这种结构导致了所谓的“冯·诺依曼瓶颈”,即处理器的速度被存储器的访问速度所限制。

顺序执行:程序按照存储器中的顺序逐条执行指令。控制器依次读取每条指令并执行,除非遇到跳转指令。

冯诺依曼体系结构图示

冯诺依曼体系结构

**中央处理单元(Central Processing Unit,简称CPU)**是计算机的核心部件,负责执行指令并处理数据。在冯·诺依曼体系结构中,CPU通常由两个主要部分组成:

  1. 控制单元(Control Unit, CU)
    • 控制单元负责解释和执行指令。它从内存中提取指令,并根据这些指令控制CPU的其他部分和整个系统的操作。
    • 控制单元还管理数据流,并决定如何将数据在CPU和其他部件之间传输。它协调输入、输出、内存和其他组件的交互。
  2. 算术逻辑单元(Arithmetic Logic Unit, ALU)
    • ALU是CPU中负责执行所有算术运算(如加法、减法等)和逻辑运算(如与、或、非等)的部分。
    • 当控制单元遇到需要进行计算的指令时,它将数据传送到ALU,ALU完成计算后将结果返回。

CPU的其他重要组成部分

  • 寄存器(Registers):CPU中的小型高速存储单元,用于临时存储指令、数据和地址等。寄存器可以极快地存取数据,因此在执行过程中发挥了重要作用。
  • 缓存(Cache):大多数现代CPU还集成了缓存,这是比主存(RAM)更快的存储器,用于存储频繁访问的数据或指令,减少CPU等待内存读取的时间。
  • 时钟(Clock):CPU依赖时钟脉冲来同步指令执行和数据流。时钟速度(时钟频率)通常用GHz表示,它决定了CPU的运算速度。

从图中可以发现:

  1. 不考虑缓存的情况下,CPU只能对内存进行读写,不能访问外设
  2. 外设要输入或输出数据,只能写入内存或从内存中读取

简单来说,所有的设备只能和内存打交道

2.操作系统

计算机由软件硬件组成,冯诺依曼体系结构为操作系统提供了硬件基础,软件方面则是依靠操作系统来完成。

  • 操作系统(Operating System, OS)是计算机系统中的核心软件,负责管理软硬件资源,并为用户和应用程序提供接口和服务。
  • 操作系统在计算机中起到桥梁作用,连接用户、应用程序和硬件,确保系统能够高效、安全地运行。

本质上,操作系统也是软件,它的工作就是管理软硬件资源,类似于QQ的工作就是聊天

2.1核心功能

  1. 资源管理
    • 处理器管理:操作系统通过调度算法(如时间片轮转、优先级调度等)分配CPU资源给不同的进程,确保多任务运行的流畅。
    • 内存管理:操作系统负责分配和回收内存资源,管理物理内存和虚拟内存,以确保应用程序之间的数据隔离并防止内存溢出。
    • 存储管理:操作系统管理硬盘等存储设备,负责文件系统的组织、文件的读写权限控制,以及数据的持久化存储。
  2. 进程管理
    • 操作系统将每个运行的程序视为一个进程,并为每个进程分配独立的资源。进程管理包括进程的创建、调度、同步和终止。
    • 操作系统使用进程控制块(PCB)来维护进程的状态和上下文信息,从而确保任务可以在中断后恢复。
  3. 文件管理
    • 操作系统提供文件系统,使用户和应用程序能够在存储设备上创建、读取、写入和删除文件。文件系统还提供文件权限管理,以控制不同用户和进程的文件访问权限。
  4. 设备管理
    • 操作系统负责管理输入输出设备(如键盘、鼠标、显示器、打印机等),并通过设备驱动程序(Device Driver)实现设备与系统的通信。
    • 操作系统使用中断机制处理设备请求,使得CPU能够高效地响应设备输入输出。

计算机系统整体结构图示

计算机系统整体结构

2.2操作系统管理硬件

  1. 操作系统不直接控制硬件

    原因:如果操作系统自己来完成键盘的读取操作,那么只要你的键盘读取方式进行了改变,操作系统的内核源代码就需要进行重新编译,这对操作系统来说维护成本太高了。

  2. 为了方便控制硬件,在硬件的上面添加了驱动程序,通过驱动程序来驱动硬件,即驱动程序是专门为特定硬件编写的,负责直接控制设备,例如发送数据到设备、接收设备反馈等。因此可以将硬件和驱动看作是一体的

  3. 操作系统管理硬件的方法:先描述再组织

  4. 将硬件描述出来,硬件抽象层(Hardware Abstraction Layer,HAL)是一种在操作系统和驱动之间的中间层,用于将硬件的具体实现细节封装起来,向上层提供一个统一的接口,进而方便去组织和管理硬件。

2.3系统调用和库函数

**系统调用(System Call)**是操作系统提供的一组接口,允许应用程序请求操作系统内核执行特定的低级操作,例如文件管理、内存分配、进程控制、网络通信等。

为什么会存在系统调用?

  1. 操作系统由较高的权限,如果直接不封装起来,操作系统内部可能就会受到破坏。
  2. 但是有一些软件需要操作硬件或者管理资源,那么操作系统就需要将相关的功能封装成接口,调用接口就不再有对操作系统内部破坏的可能。

虽然操作系统已经提供了系统调用的接口,但是对于用户的要求还是相当高的,继而有了二次封装,形成了库

**库函数(Library Function)**是一种由编程语言或操作系统提供的现成的函数集合,供开发者在程序中调用以实现常见的操作,而无需手动编写相关代码。这些库函数封装了许多基础功能,比如数学运算、字符串处理、输入输出、内存管理等,从而提高了代码的重用性和开发效率。

在 C 语言中,使用库函数时,需要先引入相应的头文件。例如,要使用输入输出相关的库函数,可以引入 stdio.h 头文件:

#include<stdio.h>int main()
{printf("hello world!\n");		// 使用库函数 printf 输出字符串return 0;
}

在这个例子中,printf 是一个库函数,用于将文本输出到控制台。通过引入 stdio.h 头文件,程序就可以调用 printf 函数,而无需了解其底层实现细节。

rld!\n"); // 使用库函数 printf 输出字符串
return 0;
}


在这个例子中,`printf` 是一个库函数,用于将文本输出到控制台。通过引入 `stdio.h` 头文件,程序就可以调用 `printf` 函数,而无需了解其底层实现细节。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词