操作系统线程

简介: 操作系统线程

进程那一章,我们留下了一个问题

第一个cpu调用进程,进程调用i/o设备,主动进入ready 队列

第二个cpu将程序执行时间平均分时,进程执行时间到

第三个fork函数,我们上一章的lab有实践,可以看出是父进程主动条用fork函数产生子进程

第四个interrupt,上一章我们有演示wait等待,所以这个也是主动的。

上一章我们做的实验可以看出,这里的执行流内存不一样,pid不一样,但子进程的内存数据是clone父进程的。

这里有个坏处

如果能在一个进程当中出现两个一样的执行流,这两个执行流共享内存空间

我们管这样的方式叫做并发的线程

多进程通信和多线程通信的区别:

多进程通信如父进程正在进行copy文件,而子进程有一个取消按钮

点击之后取消按钮产生一个子进程,父进程等待子进程执行,发现子进程是中断父进程

多线程通信 父线程1在copy文件,产生n个子线程(因为可能要copy多个文件夹),然后当点击取消时,产生要给wait abouting线程,去通知父线程取消copy文件。

两者的区别在于,点击取消事件时,进程会产生一此clone,子进程要clone父进程,产生一个内存空间

这里需要实验进行演示,不然不好理解。

进程切换开销

我们推出线程这个概念的动机

线程的定义

下面我们可以看到单线程的单进程只有一个PCB+code+date区域;而单进程多线程是共享code+data+files区域的。其实就是共享了存储数据、代码、全局变量,但每个线程都有自己的堆栈空间和寄存

单cpu多线程

线程并发,需要来回切换

多cpu多线程

多线程在多cpu环境下也可以设置为并行模式

现在操作系统的线程概念

多核编程

我们需要设计程序时将多核的性能应用起来,不然全是顺序执行的单进程单线程的应用,完全是浪费资源的行为。

多核线程模型

多线程模型

多对一模型,用户线程在用户模式下一个进程有多个线程,这个进程对应一个内核线程,这个进程有多个线程,也就达成了多个用户线程对应一个内核线程

如果只有一个内核

虽然我们也有多个进程(执行流),在用户感觉上是多个进程并行,但是其实因为我们只有一个内核,所以一次只能运行一个线程,所以这里还是并发,但这里不止是进程的并发,也是线程的并发,上面那个一对多每个进程最少有一个线程可以和其他进程进行并发,这就是单核和多核的区别。

一对一

这里可以看出不管是进程还是线程都做到一对一,实现逻辑上基本可以说这些进程是并行的,但是这也取决于核心数量

多对多

多路复用,取决于cpu的调度,每个进程的开销不一样,需要cpu进行调度去分配内核线程

线程库

linux关注于posix pthread 这个p代表用户线程和内核线程都可以被创建

相关文章
|
1月前
|
消息中间件 存储 算法
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
92 0
|
1月前
|
存储 消息中间件 算法
《操作系统》——进程与线程
《操作系统》——进程与线程
114 0
|
1月前
|
存储 缓存 安全
浅谈OS进程和线程
浅谈OS进程和线程
44 0
|
1月前
|
Linux 调度
操作系统-线程同步
操作系统-线程同步
39 0
|
1月前
|
存储 Java API
操作系统,进程与线程(一)(下)
操作系统,进程与线程(一)(下)
46 0
|
3天前
|
存储 调度 C++
【操作系统】进程与线程的区别及总结(非常非常重要,面试必考题,其它文章可以不看,但这篇文章最后的总结你必须要看,满满的全是干货......)
【操作系统】进程与线程的区别及总结(非常非常重要,面试必考题,其它文章可以不看,但这篇文章最后的总结你必须要看,满满的全是干货......)
23 1
|
1月前
|
Unix 调度
操作系统(6)----线程相关
操作系统(6)----线程相关
25 0
|
10天前
|
消息中间件 分布式计算 物联网
深入理解操作系统之进程与线程管理
操作系统的核心职责之一是进程与线程管理,它关乎系统的效率和稳定性。本文将剖析进程与线程的基本概念、生命周期以及它们在现代操作系统中的实现机制。通过对比分析,我们将揭示进程与线程的区别、优势及其适用场景,并探讨它们对系统性能的具体影响。进一步,文章将讨论进程间通信(IPC)的几种方式,以及同步和异步处理在多任务环境中的重要性。最后,我们将展望未来操作系统在进程与线程管理方面可能的发展趋势。
|
1月前
|
算法 调度
【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程
【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程
103 3
|
1月前
|
Linux 调度 Windows
【操作系统】线程、多线程模型
【操作系统】线程、多线程模型
32 1

热门文章

最新文章