关于操作系统:程序员不得不学的操作系统知识一

3次阅读

共计 2885 个字符,预计需要花费 8 分钟才能阅读完成。

计算机硬件

计算机的重要组成部分,蕴含了 5 个重要的组成部分:运算器、控制器、存储器、输出设施、输出设备。

  • 运算器 :运算器最次要的性能是对数据和信息进行加工和运算。它是计算机中执行算数和各种逻辑运算的部件。运算器的根本运算包含加、减、乘、除、移位等操作,这些是由 算术逻辑单元(ALU) 实现的。而运算器次要由算数逻辑单元和寄存器形成。
  • 控制器:指依照指定程序扭转主电路或控制电路的部件,它次要起到了管制命令执行的作用,实现协调和指挥整个计算机系统的操作。控制器是由程序计数器、指令寄存器、解码译码器等形成。

运算器和控制器独特组成了 CPU

  • 存储器 :存储器就是计算机的 记忆设施,能够保存信息。存储器分为两种,一种是主存,也就是内存,它是 CPU 次要交互对象,还有一种是外存,比方硬盘软盘等。
  • 输出设施:输出设施是给计算机获取内部信息的设施,它次要包含键盘和鼠标。
  • 输出设备:输出设备是给用户出现依据输出设施获取的信息通过一系列的计算后失去显示的设施,它次要包含显示器、打印机等。
  • I/O 设施:Input/Output 设施是零碎和内部世界的连贯。
  • 总线:贯通整个零碎的一组电子管道,通常被设计成用来传送定长的字节块,也就是字。字的大小与零碎相干,比方在 32 位操作系统当中,一个字是 4 个字节。
  • 主存 :主存是一个 长期存储设备 ,而不是永久性存储,磁盘是 永久性存储 的设施。主存既保留程序,又保留处理器执行流程所解决的数据。从物理组成上说,主存是由一系列动态随机存储形成的汇合。
  • CPU:由 ** 用于保留变量和长期后果的寄存器、程序计数器(下一条要执行的指令地址)、堆栈指针、PSW 程序状态字寄存器(IO 和零碎调用罕用到)** 等寄存器组成。CPU 在指令的要求下会做如下操作:
  1. 加载:把一个字节或者一个字从主存复制到寄存器,以笼罩寄存器原来的内容
  2. 存储:把一个字节或者一个字从寄存器复制到主存的某个地位,以笼罩这个地位上原来的内容
  3. 操作:把两个寄存器的内容复制到 ALU,ALU 对这两个字做算术操作,并把后果寄存到一个寄存器中,以笼罩寄存器原来的内容
  4. 跳转:从指令自身中抽取一个字,并将这个字复制到程序计数器(PC)中,以笼罩 PC 中原来的内容。

计算机概念

计算机是由软件与硬件组成的,而硬件又包含了总线、I/ O 设施、主存以及处理器,其中信息是由位以及上下文示意的,而信息则是从 I / O 设施以位的模式通过总线进入主存,而后由处理器从主存将信息取出解决。

字与字长

指令集构造形容的是每条机器代码指令的成果,而微体系结构形容的是处理器实际上是如何实现的。

计算机一次解决的数据长度称为字,一个字通常由一个或多个字节形成,字的位数叫做字长。因为虚拟地址空间中的地址就是应用一个字来编码的,因而字长决定了零碎的虚拟地址空间的最大大小。字长指的是 CPU 一次能并行处理的二进制位数。

对于逾越多个字节的程序对象来说,有两个问题:

  • 这个对象的地址是什么?
  • 在存储器中如何排列这些字节?

对象的地址:在简直所有的机器上,多字节对象都被存储为间断的字节序列,对象的地址为所应用字节中最小的地址。

排列形式:

  • 小端法:依照从最低无效字节到最高无效字节的顺序存储对象,也就是最低无效字节在最后面。
  • 大端法:和小端法相同。是依照从最高无效字节到最低无效字节的顺序存储对象,也就是最高无效字节在最后面。

程序的运行

程序的编译:

预处理器、编译器、汇编器和链接器一起形成了编译系统。

  • 预处理阶段:预处理器 cpp 依据以字符 # 结尾的命令,批改原始的 C 程序,解决头文件使得援用代码插入源代码中,失去以 .i 作为文件扩展名的源程序。
  • 编译阶段:编译器 ccl 将文本文件 hello.i 翻译成文本文件 hello.s,它蕴含一个汇编语言程序,汇编语言程序中的每条语句都以一种规范的文本格式确切的形容一条低级机器语言指令。汇编语言能为不同高级语言的不同编译器提供通用的输入语言。
  • 汇编阶段:汇编器 as 将 hello.s 翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格局,并将后果保留在字节编码为机器码的 hello.o 中。
  • 链接阶段:链接器 ld 就是负责解决相干调用,将相干调用的机器码合并到源文件中,后果就失去一个 hello 文件,它是一个可执行目标程序,能够被加载到内存中,由零碎运行。

计算机组成预览:

一个程序的执行,是经验了预处理器、编译器、汇编器以及链接器的解决之后,才最终成为可执行的文件。

操作系统概念

概念

** 操作系统是治理硬件和软件的一种应用程序。** 是治理计算机硬件与软件资源的零碎 软件 ,同时也是计算机系统的 内核与基石。计算机有两种运行模式:内核态(管态和外围态)和用户态。操作系统提供了几种形象模型:

  • 文件:对 I/O 设施的形象
  • 虚拟内存:对程序存储器的形象
  • 过程:对一个正在运行程序的形象
  • 虚拟机:对整个操作系统的形象

次要性能

  • 处理器治理:进行相干的任务调度,解决解决其调度、调配、回收等。
  • 存储器治理:负责管理内存的调配、回收,在过程须要时分配内存以及实现时回收内存,协调内存资源。
  • 设施治理:依据确定的设施分配原则对设施进行调配,使设施与主机可能并行工作。
  • 文件治理:无效地管理文件的存储空间,正当地组织和治理文件系统,为文件拜访和文件爱护提供更无效的办法及伎俩。
  • 提供用户接口:提供了拜访应用程序和硬件的接口,不便用户应用。

操作系统个性

操作系统还具备四个重要个性:并发性、共享性、虚拟性、异步性。

并发性

  • 并行是指两个或多个事件能够在同一时刻产生
  • 并发是指两个或多个事件能够在同一时间距离刻产生

共享性

  • 共享性体现为操作系统中的资源可供多个并发的程序独特应用
  • 互斥共享:资源互斥拜访
  • 同时拜访:某一个资源在一段时间内并发地被多个程序拜访,这种“同时”是宏观的

虚拟性

虚拟性体现为把一个物理实体转变为若干个逻辑实体。

  • 时空复用技术:在工夫上复用,程序并发应用。
  • 物理设施虚构为多个逻辑设备
  • 每个程序占用一个逻辑设备
  • 多个程序通过逻辑设备并发拜访
  • 借助多道程序的技术
  • 为每道程序建设过程
  • 多个程序分时复用处理器
  • 虚构处理器技术:
  • 虚构设施技术:
  • 空分复用技术:实现虚构磁盘、虚拟内存,进步资源利用率和编程效率。
  • 在逻辑上扩充了程序的存储容量,程序能够应用比理论内存大的空间(暂不须要的程序局部挂起在磁盘)
  • 将物理磁盘虚构为多个逻辑磁盘
  • 虚构磁盘技术:
  • 虚拟内存技术:

异步性

过程是以不可预知的速度向前推动的,不晓得程序何时执行、何时暂停、何时实现,这么多的不可预知的事件,就导致了程序的异步性。

局部性原理

局部性原理指的是 CPU 拜访存储器时,无论是存取指令还是存取数据,所拜访的存储单元都趋于汇集在一个较小的间断区域中。这个原理也是使得虚拟内存技术能够实现的一个起因

因为有局部性原理

  • 所以计算机在加载程序时,无需全副逻辑空间装入内存,装载局部即可(须要应用的局部)
  • 如果发现所应用的内存不在物理内存中,则收回缺页中断,发动页面置换,把保留在辅存中的页面置换到物理内存中,这样程序又能够持续运行上来了
  • 从用户层面看,程序领有很大的空间,既是虚拟内存

虚拟内存实际上是对物理内存的裁减,速度靠近于内存,老本靠近于辅存

理解更多文章,🙋‍♂️关注公众号:学编程的文若

正文完
 0