操作系统——进程

进程的状态

图片说明

进程的内部数据结构

图片说明

进程和线程的对比

具有类似的抽象:进程共享计算机资源、线程共享进程资源。
图片说明

图片说明

线程的实现模型

参考链接:https://blog.csdn.net/gatieme/article/details/51892437

用户级线程

当进程分配到时间片之后,库调度器选择该进程中的一个线程执行,有关线程的创建、销毁、管理、切换都是在用户空间执行。用户级线程是不是无法做到一个进程中的线程真正的并行??
图片说明

内核级线程

内核线程建立和销毁都是由操作系统负责、通过系统调用完成的。在内核的支持下运行,无论是用户进程的线程,或者是系统进程的线程,他们的创建、撤销、切换都是依靠内核实现的。

线程管理的所有工作由内核完成,应用程序没有进行线程管理的代码,只有一个到内核级线程的编程接口. 内核为进程及其内部的每个线程维护上下文信息,调度也是在内核基于线程架构的基础上完成。图2-2(b)说明了内核级线程的实现方式。

图片说明

混合模式

在一些系统中,使用组合方式的多线程实现, 线程创建完全在用户空间中完成,线程的调度和同步也在应用程序中进行. 一个应用程序中的多个用户级线程被映射到一些(小于或等于用户级线程的数目)内核级线程上。

下图说明了用户级与内核级的组合实现方式, 在这种模型中,每个内核级线程有一个可以轮流使用的用户级线程集合

图片说明

进程间通信

竞争条件:两个或多个进程读写某些共享数据,而最后的结果取决于进程运行的精确时序。

如何避免由竞争条件带来的不安全问题:互斥的访问共享资源。

实现互斥的几种方案

  1. 屏蔽中断。将时钟中断(进程的cpu时间片到了,引发进程切换)也屏蔽。
  2. 锁变量
  3. 信号量:可用于同步和互斥。 https://www.kancloud.cn/hanghanghang/os/116945

进程调度

全部评论

相关推荐

11-09 11:01
济南大学 Java
Java抽象带篮子:外卖项目真得美化一下,可以看看我的详细的外卖话术帖子
点赞 评论 收藏
分享
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务