什么是进程?

要想了解多线程编程,那就必须从本质上开始什么是进程?

首先,进程和可执行文件很像(文件名.exe)->这就是可执行文件.但是他们又有所不同.

但是可执行文件就像是静态的,躺在我们的硬盘中,但是,我们在任务管理器中可以明显的看到我们的进程是动态的,是在内存中不断被加载的.

我们可以理解为一个可执行文件是一个静态的,当我们双击运行的时候,操作系统就会把这个可执行文件中的关键信息加载到内存中,并且开始运行里面的代码,这样就形成了一个进程.

这就是可执行文件和进程的关系------>进程是怎样形成的.


进程管理:

我们的一个操作系统中跑着这么多程序,但是我们的CPU的资源是有限的,我们要如何管理这些进程,保证进程能够正常运行,这就需要我们操作系统对进程的管理有一定的要求.

那么我们先说说管理:

管理的大致流程是这样的.

1.先描述:使用一个类/结构体将这东西有啥特征都给表示出来.

2.再组织:使用一个数据结构,将这些 对象/结构体 给整合到一起

我们的CPU也是这样进行管理的.

 进程控制块(PCB:Processing Control Block),是操作系统核心中一种数据结构,主要表示进程状态,其作用是使一个程序成为一个能够独立运行的基本单位,并且可以并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理。PCB通常是占用系统内存中一块连续的内存空间,存放着操作系统用于描述进程情况及控制进程运行的全部信息。

在进程创建状态的时候创建pcb、在进程终止的时候销毁pcb----->这一点很重要

其中PCB中包含了信息:

a.进程标识符.

内部标识符SID:操作系统为每个进程赋予的位移数字标识符,系统使用

外部标识符:由创建者提供,通常有字母与数字组成,往往是由(进程)在访问该进程时使用.描述进程的家族关系,设置父进程表示和子进程表示,还可以设置用户表示,以指示拥有该进程的用户.

b.上下文数据

主要是有处理机的各种寄存器中的内容组成的,处理机被中断的时候,所有这些信息都必须保存在pcb中,以便在该进程重新执行时能够冲断电继续执行.

c.进程的调度信息

进程的状态:创建,就绪,阻塞,执行,终止

进程的优先级:进程共有6个优先级

进程调度所需的其他信息,比如已等待CPU的时间综合,进程一直只想的时间总和.

事件,指进程由执行状态转为阻塞状态所等待发生的时间,即阻塞原因

d.进程控制信息

程序和数据的地址

进程同步的通信机制

支援清单链接指针

PCB的作用:

PCB可以被操作系统中的多个模块读写或者修改,如被调度程序,资源分配程序,中断处理程序以及监督分析程序等读或者修改.操作系统是根据pcb来对并发执行的进程进行控制和管理,所以说PCB是操作系统中最重要的记录型数据结构,作用如下:

1.作为独立运行的基本单位

2.能实现间断性运行方式

3.提供进程管理所需要的信息

4.提供进程调度所需要的信息

5.实现与其他进程同步与通信

操作系统内核中将若干个pcb串成一个双向链表

进程的调度

这个进程中的主要属性-----用来实现进程的调度.

当前计算机的CPU是有限的,但是进程的数量是比较多的,总的来说就是狼多肉少

所以我们要尽可能公平分配,就需要合理的分配调度,CPU就轮流使用.

CPU的论断速度实际上是非常快的  例如1.9GHz,一秒有19亿个时钟周期

因此,我们认识感知不到这样的轮转~站在宏观的角度来看,就好像这些进程在同时执行,但是微观上而是,"轮流使用"的方式占用CPU执行~

同时,我们还有两个概念就是"并发式执行" 和"并行式执行"

其实两者在宏观上两者就像是在CPU中的进程不断执行

但是在微观上"并发式执行"->"轮流" 的方式占用CPU

"并行式执行" ->微观上有CPU上有多个核心,每个核心都可以跑一个进程,某一时刻就是在两个CPU上同时执行的.

 

进程的调度

进程的调度需要考虑很多因素

1.进程的优先级

对于进程有很多状态,但是最经典的就是:

就绪状态:进程是准备就绪的,随时可以上CPU执行

阻塞状态:进程在等待某个任务完成(读写磁盘),完成之后才能上CPU,完成之后才能上CPU,否则就没办法完成.

2.进程的上下文:

每次执行进程PCB都要记录好,执行进程的关键信息,当前处理进度,当前处理的进出/中间结果

对于进程来说,上下文具体的就是CPU里面一堆寄存器里面的值,上下文就会在进程被切出CPU的时候,把寄存器的状态保存到排查表中(内存)

3.进程的虚拟地址空间

进程需要使用一些系统资源,其中内存资源,就是一个很关键的资源.

为了让各个进程之间不要相互打扰,操作系统就引用了"虚拟地址空间"这样的概念

每个进程都只能访问到自己的地址空间,互相之间不会有影响,哪怕你指针出错,操作系统也能即使发现问题,不会影响其他的进程,就算出问题,问题也被限制在进城内部.

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值