目录
1.冯诺伊曼体系结构
冯诺依曼结构计算机的五大基本构件:
- 存储器: 用来存放数据和程序
- 运算器: 主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中
- 控制器: 主要用来控制和指挥程序和数据的输入运行,以及处理运算结果
- 输入设备: 用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等
- 输出设备: 可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等
2.操作系统
操作系统 (Operating System) 简称 OS。
操作系统是一组做计算机资源管理的软件的统称。
目前常见的操作系统有:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。OS分类:
- 管理者的任务种类分两种:硬件管理,软件管理
- 按照目标对象分两种:一种对内的管理,一种对外业务进行管理
3. 进程
3.1 什么是进程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
简单来说,进程就是一个“正在运行”的程序(exe),我们电脑磁盘上有很多exe文件,只有exe文件(可执行文件)运行了才能称作为进程!换言之,可以把进程看作程序的一次运行过程。同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。
要想让进程跑起来,就得给进程分配一定的资源:cpu,内存,磁盘,网络宽带...
我们可以打开我们的计算机任务管理,看看此时我们的操作系统上都跑了那些进程。
3..2 进程在系统中是如何被管理的
管理 = 描述(PCB)+ 组织
- 描述:进程控制块
- 组织:使用一定的数据结构来组织,常使用双向链表来实现。
查看进程列表: 本质上就是遍历操作系统内核中的这个链表,并显示其中的属性
创建一个进程: 本质上就是创建一个PCB对象,后加入到内核的链表中
销毁一个进程: 本质上就是删除内核链表中的这个PCB对象
3.3 进程控制块
进程控制块(PCB Process Control Block) ,我们可以把进程控制块看作 一个类或C语言的结构体。
一个PCB对象就对应一个进程
PCB中有哪些属性?
- pid : 一个进程的身份标识.一个机器同一个时刻不会存在2个pid相同的进程.
- 内存指针 : 描述了这个进程使用的内存空间是哪个范围(虚拟地址空间)
- 文件描述符表 : 描述了这个进程都打开了哪些文件.
- 进程调度信息(进程的状态,进程的优先级,进程的上下文,进程的记账信息)
3.4 操作系统的并发和并行式执行
3.4.1 并发式执行
由于CPU的运行速度非常快,虽然CPU在进行切换,但是用户却看不见这切换的过程。从宏观上来看是同时进行的,从微观上来看是交换进行的。
3.4.2 并行式执行
因为多核CPU可以同时执行多个程序,如 8核CPU 可以 同时执行8个程序。
CPU1执行了 进程1
CPU2执行了 进程2
进程1 和 进程2 不论从宏观上来看还是从微观上来看都是同时执行的。
3.5 进程的状态
- 创建状态: 进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。
- 就绪状态: 进程处于可运行的状态,只是CPU时间片还没有轮转到该进程,则该进程处于就绪状态。
- 运行状态: 进程处于可运行的状态,且CPU时间片轮转到该进程,该进程正-在执行代码,则该进程处于运行状态。
- 阻塞状态: 进程不具备运行条件,正在等待某个事件的完成。
- 终止状态: 进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行。
3.6 内核态与用户态
一般的操作系统(如Windows、 Linux)对执行权限进行分级:用户态和内核态。
- 操作系统内核作为直接控制硬件设备的底层软件,权限最高,称为内核态,或核心态。
- 用户程序的权限最低,称为用户态。
3.7 进程的虚拟地址空间
为什么要提出“虚拟地址空间”?
进程为什么不直接访问真实的物理地址?
为了一定程度减少内存访问越界带来的后果。
例如进程1 的内存范围是 0x100~0x400 ,此时如果尝试修改0x401的地址数据,这个操作就是越界访问。
在真实的物理地址情况下,如果修改了 0x401 ,这个地址可能是进程2的,此时进程2就可能出bug了
在虚拟地址的情况下,如果修改了 0x401 ,此时进行 0x401 的页表查询,由于0x401是非法地址,就查找不到,,于是就让 这个进程崩溃,防止影响其他的进程。
这样就让进程和进程之间相互影响的可能性变小了,隔离性增加了,进程也更稳定了,缺点就是两个进程需要相互配合的时候,沟通起来就麻烦了。