一 什么是进程
进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看作程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。
注意以下的运行出来的可执行程序,这些程序就是"进程".

二、操作系统是如何管理进程的:
首先,先搞定一个名词: 进程控制块抽象 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.进程具有独立性,每个进程都有各自独立的虚拟地址空间,一个进程挂了,不会影响到其他进程。然而,同一个进程中的多个线程,共有同一个内存空间,如果一个线程挂了,那么很可能影响其他线程,甚至是整个进程崩溃。
进程是操作系统对运行程序的抽象,是资源分配的基本单位,而线程是调度执行的基本单位。操作系统通过进程控制块(PCB)管理进程,包括创建和销毁。进程调度关注状态、优先级、记账信息和上下文。线程是进程内的执行单元,允许多个执行流共享资源,提高效率。进程与线程的主要区别在于资源分配和独立性,线程更轻量级,但共享内存可能导致相互影响。

686

被折叠的 条评论
为什么被折叠?



