3.进程和线程

2023-03-18  本文已影响0人  sunshine_5219

进程和线程

进程

进程即是操作系统对运行程序的一种抽象,操作系统需要识别运行的程序以及分配内存空间等,实现的方式也就是进程,通俗的说法就是操作系统资源分配的基本单位。
[图片上传失败...(image-a51dea-1679213878869)]

进程的组成

组成元素:进程(进程实体)由程序段、数据段、PCB(进程控制块)三部分组成
同一个程序多个进程的代码段是共享的

进程的特征

进程运行原理

进程的运行原理主要分为进程的创建、调度和终止三个阶段。

  1. 进程创建:当用户需要执行某个程序时,操作系统会为该程序创建一个新的进程。在进程创建的过程中,操作系统会为该进程分配一定的内存空间,并为其初始化各种数据结构。此外,进程的创建还包括打开程序的代码和数据文件,将程序代码装入内存等操作。

  2. 进程调度:当进程被创建后,操作系统会按照一定的调度算法,将其放入就绪队列中等待调度。在调度时,操作系统会根据进程的优先级、进程的执行状态等因素来决定调度顺序。当一个进程被调度后,它会被分配一段时间片(time slice)来执行,时间片结束后,操作系统会将该进程暂停,并将其状态置为就绪状态,等待下一次调度。

  3. 进程终止:当进程执行完毕或者出现异常情况时,操作系统会将其从系统中清除。在进程终止的过程中,操作系统会关闭进程打开的文件,释放进程占用的内存空间,更新进程控制块等操作。此外,当一个进程终止时,它会向操作系统发送一个终止信号,通知操作系统将其从系统中清除。

总之,进程的运行原理是一个复杂的过程,它涉及到进程的创建、调度和终止等多个方面。操作系统通过精细的调度算法,保证了不同进程之间的资源共享和并发执行,从而提高了系统的性能和效率。

进程的状态及转换

进程状态之间的转换如下:

进程控制(原语)

创建原语:create, 阻塞原语:block, 唤醒原语:wakeup, 撤销原语:destroy

线程

线程(Thread)是计算机中的一种基本执行单位,是程序执行的最小单元。线程是进程中的一部分,一个进程可以包含多个线程。多个线程可以共享同一进程的内存空间和其他资源,但每个线程都有自己的程序计数器、栈和局部变量等线程私有的数据。其目的是提高OS的并发性,注意包含用户级线程和内核级线程。

进程和线程的区别

线程相较于进程,大大降级了撤销、创建和切换可执行实体的成本和难度。

进程的通信方式

进程的上下文切换

在进行上下文切换之前,操作系统需要先保存当前进程的上下文(包括寄存器的值、程序计数器、栈指针等状态信息),以便在将来恢复该进程的执行。

接着,操作系统会将处理器的控制权交给另一个进程,并将其之前保存的上下文信息恢复到寄存器中,使该进程能够从之前暂停的地方继续执行。这个过程称为进程切换,通常需要消耗一定的处理器时间和系统资源。

需要注意上下文切换对于多任务操作系统的性能和稳定性非常重要。如果上下文切换的频率太高,会导致处理器花费过多时间在保存和恢复进程上,从而影响系统的整体性能。因此,操作系统需要对进程进行合理的调度,以最小化上下文切换的次数,并确保所有进程都能够得到公平的处理器时间。

线程间同步方式

死锁TODO

进程调度算法TODO

进程通信方式细解TODO

上一篇 下一篇

猜你喜欢

热点阅读