【操作系统】【进程】进程与线程

”进程实现了让我们能够在上QQ的时候听歌,还写着文档... 这些都是进程”

进程由程序段,数据段,PCB三部分组成。

PCB:系统通过PCB来管理进程,因此PCB中应该包含操作系统对其进行管理所需的各种信息。

数据段:程序运行时使用产生的数据,如全局变量,局部变量等等。

进程的独立性:进程是资源分配,接受调度的基本单位。

 

进程的三种基本状态:

运行态 就绪态 阻塞态

占有CPU,并在CPU上运行。单核处理机环境下,

每一时刻最多只有一个进程处于运行状态。

已经具备运行条件,但由于没有空闲CPU而暂时不能运行。 因等待某一事件而暂时不能运行。

新建态

终止态  

王正在被创建操作系统,为进程分配资源,初始化PCB。

进程正在从系统中撤销,操作系统会回收进程拥有的资源,撤销PCB。  

进程状态的转换:

 

 进程控制:通过原语实现进程之间的转换。

 

 

 

 为了防止程序从一个态到另一个态但PCB数据没被修改,就发明了原语进行程序的控制。原语的特点是执行期间不允许中断,只能一气呵成。,原语采用关中断指令和开中断指令实现,只有执行完原语代码,别的程序才开始执行。是只能在核心态下执行的特权指令。

 

 

 

 

 进程通信:

进出层是分配系统资源的单位,包括内存地址空间,因此各进程拥有的内存地址空间相互独立。为了保证安全,一个进程不能直接访问另一个进程的地址空间。所以衍生出来进程通信的三种方法分别是共享存储、消息传递、管道通信。

共享存储:两个进程可以通过共享空间相互访问。但访问的时候是互斥的,如进程一写入的时进程二不能写入。共享存储分为基于数据结构的共享和基于存储器的共享,前者是低级通信方式,后者是高级通信方式。

管道通信:“管道”是指用于应该了解读写进程的一个共享文件,又名pipe文件。其实就是在内存中开辟一个大小固定的缓冲区。

 

 消息传递:进程间的数据交换以格式化的消息为单位。经常通过操作系统提供的”发送消息/收消息”的两个言语进行数据交换。

消息传递分为直接通信方式和间接通信方式。接通信方式是将消息直接挂到接收进程的消息缓冲队列上。间接通信方式是消息要通过原语先发送到中间实体(信箱)中,在通过原语被另一个进程接收。

 

线程:

一个进程可以拥有多个线程,进程在被处理的时候这些线程被并发的执行。县城是一个基本的CPU执行单元,也是指程序执行流的最小单位。可以使一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件),引入线程和进程只作为除CPU之外的系统。资源的分配单元(如打印机,内存地址空间等都是分配给进程的。)

线程是处理机调度的单位,进程是资源分配的单位

 

 

 

进程的实现方式:

用户级线程,内核级线程(内核级线程才是处理机分配的单位

 

 

 

 

 

 多线程模型:

 

 

 

 

 

posted @   七月猫合  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示