进程调度的基本过程

进程是操作系统对运行程序的抽象,是资源分配的基本单位,而线程是调度执行的基本单位。操作系统通过进程控制块(PCB)管理进程,包括创建和销毁。进程调度关注状态、优先级、记账信息和上下文。线程是进程内的执行单元,允许多个执行流共享资源,提高效率。进程与线程的主要区别在于资源分配和独立性,线程更轻量级,但共享内存可能导致相互影响。

一 什么是进程

进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看作程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。

注意以下的运行出来的可执行程序,这些程序就是"进程".

 

二、操作系统是如何管理进程的:

首先,先搞定一个名词: 进程控制块抽象 PCB(Process Control Block):包含进程的唯一标识(pid)、进程关联的程序信息、分配给该资源使用的各个资源、进程调度信息。
1.先描述一个进程(明确一个进程上面的一些相关属性);

2.再组织若干个进程(使用一些数据结构,把很多描述进程的信息放在一起,方便进行增删改查):就是使用双向链表来把每个进程的PCB给串起来.

然后是俩个进程的操作:

创建进程:先创建出PCB,然后把PCB加入到双向链表中;

销毁进程:找到链表上的PCB,将其从链表上删除;

三、进程调度的基本属性
1.状态:   

   就绪状态: 随时可以去CPU上运行,或者已经在CPU上运行.

   阻塞状态/睡眠状态:暂时不能在CPU上运行.

2.优先级   :

    时间分配的优先级别以及多少,就是先给谁分配时间,后给谁分配时间,以及谁分的多,给谁分的少。

3.记账信息

    统计了每个进程,都分别被执行了多久,分别都执行了哪些指令。分别都排队等了多久,目的是给进程调度提供指导依据的。

4.上下文

    表示上次进程被调度出CPU时程序的执行状态

四、进程调度:

进程调度又称 CPU 调度,指的是决定哪个线程被优先运行和运行多久。

操作系统创建一个进程后,进程的入口程序被分配到了一个主线程执行,这样看上去操作系统是在调度进程,其实是调度进程中的线程。

当进程从运行状态变化到其他状态,或者从其他状态变化到运行状态时,就会触发一次调度。

 五、线程以及线程与进程之间的关系

进程是一个应用程序, 而 线程 则是一个 进程 中的执行单元.

可以说 进程 包含 线程,一个 进程中至少有一个 线程,你可以这样理解:如果进程是一家公司,那么线程就是公司里的一名员工.

六 、线程

如图A,左边是一个进程在运行,而右边是多创建一个进程来执行,因此右边的工作效率要比左边的高,那么为什么并没有采取呢,是因为创建进程和销毁进程需要资源,一个俩个没事,那么成千上万个呢,而且工作A与工作B之间无法联系,不知道工作情况,看图B,一个进程中创建了俩个线程,俩个线程公用同一块空间,这种是不是更好呢.

 

 

七、谈谈进程与线程的区别与联系(面试题)
1.进程包含线程,一个进程里可以有一个线程,也可以有多个线程。
2.进程和线程都是为了处理并发编程这样的场景。
但是进程有问题,频繁创建和释放的时候效率较低,相比之下,线程更轻量,更高效。
3.操作系统创建进程,要给进程分配资源,进程是操作系统分配资源的基本单位。
操作系统创建的线程,是要在CPU上调度执行,线程是操作系统调度执行的基本单位。
4.进程具有独立性,每个进程都有各自独立的虚拟地址空间,一个进程挂了,不会影响到其他进程。然而,同一个进程中的多个线程,共有同一个内存空间,如果一个线程挂了,那么很可能影响其他线程,甚至是整个进程崩溃。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值