九、操作系统基础知识

我们今天来讲一下你需要了解的操作系统最基础的知识点,这些都只是皮毛,博主这一篇讲的都很浅,只会讲些基础概念,如果需要深入学习,一定要仔细读《计算机组成原理》《操作系统》这两本书呀!

一、计算机基本部件

(一)五大部件

基于冯诺伊曼体系,将计算机分为5大组成部分:

  1. 运算器:也叫算数逻辑单元,完成对数据的各种常规运算,如加减乘除,也包括逻辑运算,移位,比较等。要注意PC机32位或64位表示的是运算器计算能力,ALU的宽度,一次计算能够计算的数据的位数。
  2. 控制器:它是整个计算机系统的控制中心,它指挥计算机各部分协调工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。
  3. 存储器:存储程序和各种数据。
  4. 输入设备:把人所熟悉地信息,如,图片,声音,文字,转换为计算机能够识别地信息存储起来。
  5. 输出设备:把计算机能识别地信息转换为人能识别地信息,及逆行呈现。

CPU包含控制器和运算器,内存就是存储器,I/O设备就是输入设备和输出设备,如键盘,显示器,鼠标等。在计算机中通过总线将这些部件连接,如下图:
在这里插入图片描述

(二)总线

总线主要分为3类:

  1. 数据总线:用来在各个功能部件中间传递数据,是双向传输总线。
  2. 地址总线:用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址,寻址能力和总线根数有关。
  3. 控制总线:由于各个连接在数据总线和地址总线的部件都是共享这两类总线的,那么在某一时刻谁来使用,就是控制总线负责完成的,即控制传输方向。

(三)存储器

我们常用的存储器可以分为以下几种:

在这里插入图片描述
寄存器,缓存,主存是临时存储,即计算机断电或关机数据就会消失,而后面的几个是永久性存储。

(四)指令

  1. 指令:是只是计算机执行某种操作的命令,一条指令通常由两部分构成,地址码,操作码。
  2. 程序:由一条条的指令构成。
  3. 指令周期:cpu每取出并执行一条指令所需的全部时间称为指令周期。
  4. 指令系统:计算机能够执行的全部指令的集合称为该计算机的指令系统。
  5. RISC:精简指令系统计算机,如单片机。
  6. CISC:复杂指令系统计算机,如PC机。
  7. 程序和指令:高级语言写出程序,编译器翻译为汇编助记符,机器指令,让计算机执行的二进制。

二、进程

(一)进程概念

  1. 进程:一个正在运行的程序,由一条条指令构成。
  2. PCB:进程控制块,是进程的唯一标志,PID是进程的标识,用来描述进程的属性信息,每一个进程都会拥有一个PCB,系统通过双向循环链表管理所有的PCB。
    (1)PCB就是一个结构体struct task_struct:里面包含PID,堆区,栈区等成员信息。
    (2)创建一个进程:操作系统会先申请一个PCB,然后加载程序,生成进程实体。
    (3)进程结束时:先结束进程实体,再释放PCB,释放PCB,需要一定的条件,那么如果进程实体释放了,但是PCB结点没有被释放,那么这个进程就是一个僵尸进程。会造成大量的资源占用。
  3. 孤儿进程:父进程创建子进程,init是所有进程的祖先,如果父进程已经结束,但是子进程未结束,那么子进程就是孤儿进程,系统将所有孤儿进程都直接挂载到init进程下。
  4. 僵尸进程:进程实体释放了,但PCB还未释放。

(二)进程状态

  1. 最基本的三种状态:就绪,运行,阻塞

在这里插入图片描述

  • 执行:CPU正在执行进程中的指令,采用时间片轮转法执行进程,所以当一个正在执行的进程时间片到了后,就会变为就绪状态。
  • 阻塞:等待事件发生的进程,如等待打印机。如果打印机无人使用,那么进程状态为就绪。
  • 就绪:等待CPU调度执行,就绪进程拥有打印机后,就等待cpu执行,CPU调度它,它就变为执行状态。
  1. 复杂的7种状态:
    增加了创建,阻塞挂起,就绪挂起,结束这四个状态。
    在这里插入图片描述
    挂起状态:将进程从主存中移至外存中,是一种暂停,用户不唤醒,就会一直暂停。
  2. 挂起和阻塞的区别:
    挂起是一种主动行为,因此唤醒也应该要主动完成,而阻塞则是一种被动行为,是在等待事件或资源时任务的表现。

(三)并行 && 并发

  1. 并行:两个进程一起运行。并行需要硬件支持,多个CPU。
  2. 并发:两个进程根据时间片轮询运行,因为时间短,故给人的感觉就是一起运行。并发效率慢,但一个CPU即可。
    在这里插入图片描述

三、内存管理

(一)分页

  1. 操作系统将内存划分为大小相等的4k的块,称为页帧,会对页帧进行编号。
  2. 程序在磁盘上存储,把磁盘分为4k大小的块,称为页,每一个页会记录页对应的权限。
  3. 如果运行一个程序,操作系统将程序的页加载到内存的页帧上。操作系统会为每一个进程维护一个页表,页表中存储的是进程的页到内存的页帧的映射。
    在这里插入图片描述
  4. 物理地址:在真实的物理内存上的偏移地址。逻辑地址:在程序上的偏移地址。
    如:a:在 2号页上,偏移 128字节。访问a时,需要转换为物理地址:先根据页表将2号映射为17号页帧,偏移128,那么我们转为实际物理地址:17*4k+128,这才是a在内存上存储的真正地址。
  5. 在程序中直接访问的时逻辑地址,在CPU访问逻辑地址时,需要通过地址映射到其物理地址,才能访问此地址上的数据或指令。如printf(“&a=%x”,&a)为a的逻辑地址;所以如果在两个进程中打印的变量的地址相等,并不能证明这两个变量是同一个变量,因为加载的物理内存不一样,所以不一定。

(二)虚拟内存

  1. 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,使得能够运行比内存大得多的进程。
  2. 它为每个进程提供了一致的地址空间,从而简化了存储管理
  3. 它保护每个进程的地址空间而不被其他进程破坏。
  4. 交换分区:在磁盘上开辟一块空间,以内存管理方式来管理,作为对内存的补充,一个内存的所有页不一定非得在内存上存储,这就用到页面置换算法,将内存上的页和交换分区的页置换。

四、操作系统发展

操作系统:管理计算机上的软硬件资源,为用户提供一个交互的接口。

  1. 串行处理:程序一个一个按顺序提交处理
  2. 批处理:一次提交多个程序,最后给一个处理,减少交互。其中过程还是串行
  3. 多道程序设计:一次提交多个程序,多个同时执行,和并行类似
  4. 分时系统:类似并发,提交多个,轮询处理。

猜你喜欢

转载自blog.csdn.net/qq_43411555/article/details/106101822