一、认识进程

目录

1.冯诺伊曼体系结构

2.操作系统

3. 进程

3.1 什么是进程

 3..2 进程在系统中是如何被管理的

3.3 进程控制块

3.4 操作系统的并发和并行式执行 

3.4.1 并发式执行

3.4.2 并行式执行

3.5  进程的状态

 3.6 内核态与用户态

3.7 进程的虚拟地址空间 


1.冯诺伊曼体系结构

   冯诺依曼结构计算机的五大基本构件:

  • 存储器: 用来存放数据和程序
  • 运算器: 主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中
  • 控制器: 主要用来控制和指挥程序和数据的输入运行,以及处理运算结果
  • 输入设备: 用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等
  • 输出设备: 可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等

2.操作系统

操作系统 (Operating System) 简称 OS。

操作系统是一组做计算机资源管理的软件的统称。
目前常见的操作系统有:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等。

OS分类:

  1. 管理者的任务种类分两种:硬件管理,软件管理
  2. 按照目标对象分两种:一种对内的管理,一种对外业务进行管理

3. 进程

3.1 什么是进程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

简单来说,进程就是一个“正在运行”的程序(exe),我们电脑磁盘上有很多exe文件,只有exe文件(可执行文件)运行了才能称作为进程!换言之,可以把进程看作程序的一次运行过程。同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

要想让进程跑起来,就得给进程分配一定的资源:cpu,内存,磁盘,网络宽带...

我们可以打开我们的计算机任务管理,看看此时我们的操作系统上都跑了那些进程。

 3..2 进程在系统中是如何被管理的

管理 = 描述(PCB)+ 组织

  1. 描述:进程控制块
  2. 组织:使用一定的数据结构来组织,常使用双向链表来实现。

查看进程列表: 本质上就是遍历操作系统内核中的这个链表,并显示其中的属性

创建一个进程: 本质上就是创建一个PCB对象,后加入到内核的链表中

销毁一个进程: 本质上就是删除内核链表中的这个PCB对象

3.3 进程控制块

进程控制块(PCB Process Control Block) ,我们可以把进程控制块看作 一个类或C语言的结构体。

一个PCB对象就对应一个进程

PCB中有哪些属性?

  1. pid : 一个进程的身份标识.一个机器同一个时刻不会存在2个pid相同的进程.
  2. 内存指针 : 描述了这个进程使用的内存空间是哪个范围(虚拟地址空间)
  3. 文件描述符表 : 描述了这个进程都打开了哪些文件.
  4. 进程调度信息(进程的状态,进程的优先级,进程的上下文,进程的记账信息)
     

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是非法地址,就查找不到,,于是就让 这个进程崩溃,防止影响其他的进程。

这样就让进程和进程之间相互影响的可能性变小了,隔离性增加了,进程也更稳定了,缺点就是两个进程需要相互配合的时候,沟通起来就麻烦了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值