操作系统复习笔记 05 Thread 线程

进程的两个基本属性
1.拥有资源的独立单位
2.可独立调度和分派的基本单位


进程的数目不宜过多,进程切换频率不宜过高,限制了并发程度。
操作系统的设计目标是:提高并发度、减小系统开销。
引入线程的目的是简化线程间的通信,以小的开销来提高进程内的并发度。
只有进程时:进程是资源分配的单位和CPU调度的单位。
有线程时:线程作为CPU调度的单位,而进程只作为其他资源分配的单位。
线程只拥有必不可少的资源,如线程状态、程序计数器、寄存器上下文、栈。
同样具有就绪、阻塞、执行三种基本状态。
线程的优点:创建时间比进程短、终止时间比进程短、切换时间比进程短、共享进程内线程间的文件资源,可不通过系统内核。
多线程更适用于多处理及结构。
线程分为内核线程和用户级线程。
内核线程(Kernel-level thread):由内核支持,在内核空间执行线程创建、调度和管理,依赖于OS核心。
——内核维护进程和线程的上下文信息
——线程切换由内核完成
——一个线程发起系统调用而阻塞不会影响其他线程的运行。
——时间片分配给线程,所以多线程的进程获得更多的CPU时间。
用户线程(User Threads):由用户级线程库进行管理的线程,无需内核支持。 
缺点:
——如果内核是单线程的,那么一个用户发起系统调用而阻塞,则整个进程阻塞。
——时间片分配给进程,多线程则每个线程就慢。
轻权进程(LWP LightWeight Process):内核支持的用户线程,是内核数据结构,驻留在内核空间。一个进程可以有多个轻权进程,每个轻权进程由一个单独的内核线程来支持。
轻权进程允许一个进程中发出多个并发的系统调用。


多线程:
1.多对一:多个用户及线程映像进单个内核级线程,通常用于不支持内核线程的系统中。
缺点:任意时刻只能有一个县城可以访问内核(并发度低)。
一个用户线程发起系统调用而阻塞,则整个进程阻塞。
2.一对一:每个用户级线程映像进内核线程。
——提供良好的并发行,一个用户线程发起系统调用而阻塞时允许另一个线程运行。
——每创建一个用户线程需创建一个相应的内核线程,带来了额外开销,所以许多系统限制应用中线程的数目。
3.多对多:不限制应用的线程数、多个线程可以并发。


两种线程取消方式:
1.异步取消:一个线程理机中止目标线程
2.延迟取消:目标线程检查它是否应该终止。


线程池Thread Pool:
——目的:1.避免创建和撤销开销 2.限制线程的数量。


用户级线程在使用系统调用时,需要“捆绑”在一个LWP上。
——永久捆绑:一个LWP固定被一个用户级线程占用,该LWP移到LWP之外。
——临时捆绑:从LWP池中临时分配一个未被占用的LWP。
一个进程对应的LWP组成LWP池,线程库动态挑中池中LWP的数目,以保证应用最佳性能。





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用SonarCloud对.NET Core项目进行静态代码分析

本文将介绍如何使用SonarCloud进行.NET Core项目的静态代码分析。SonarCloud是SonarQube提供的基于云的版本,特别针对于开源项目是免费的。首先,在sonarcloud.io创建一个账号,你可以使用Github/BitBucket/Microsoft Live账户进行注册&#xf…

P6477-[NOI Online #2 提高组]子序列问题【线段树】

正题 题目链接:https://www.luogu.com.cn/problem/P6477 话说这是luogu的冥间数据 题目大意 nnn个数的序列,f(l,r)f(l,r)f(l,r)表示l∼rl\sim rl∼r有多少个不同的数字。 求∑l1n∑rln(f(l,r))2\sum_{l1}^n\sum_{rl}^n(f(l,r))^2l1∑n​rl∑n​(f(l,r))2 解题思路…

操作系统复习笔记 06 CPU Scheduling CPU调度

CPU的三级调度:1.高级调度(Long-term):作业调度,从外存进内存2.低级调度(Short-term):进程调度,分配处理机3.中级调度(Medium-term):对换通过多道程序设计得到CPU的最高使用率。CPU-IO脉冲周期:…

【动态规划】 石子合并问题(环形) (ssl 1597)

石子合并问题石子合并问题石子合并问题 Description 在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成…

P6102-[EER2]谔运算【位运算】

正题 题目链接:https://www.luogu.com.cn/problem/P6102?contestId26472 题目大意 nnn个数的序列aaa,求 ∑i1n∑j1n∑k1n∑l1n(aioraj)xor(akandal)\sum_{i1}^n\sum_{j1}^n\sum_{k1}^n\sum_{l1}^n(a_i\ or\ a_j)\ xor\ (a_k\ and\ a_l)i1∑n​j1∑n​k1∑n​l1∑n…

操作系统复习笔记 07 Process Synchronization 进程同步

背景:1.对共享数据的并发访问可能导致数据的不一致性。2.要保持数据的一致性,就需要一种保证并发进程正确执行顺序机制。3.解决有界缓冲区问题的共享内存方法在count上存在竞争条件。4.进程间的制约关系:——间接制约:有些资源需要…

【动态规划】拔河比赛 (ssl 1638)

拔河比赛拔河比赛拔河比赛 Description 一个学校举行拔河比赛,所有的人被分成了两组,每个人必须(且只能够)在其中的一组,要求两个组的人数相差不能超过1,且两个组内的所有人体重加起来尽可能地接近。 In…

特长生考试相关

水一手游记 一大早起来像个那啥一样在校训石前等(旁边一群看猴子一样) 然后车上点个人就去公费旅游(半个小时车程,甚至没有饭吃) 然后到那边量完体温见了一下熟人就开始了 T1高精度,历年最难T1还要判负数然…

Build 2018,给你带来全新的开发者体验, .NET Core 3.0带来桌面支持

Build 2018 主旨演讲的主题是 Azure 云和 AI、物联网、AR等技术,以及开发者相关内容的宣布。在今天的Build大会上,微软宣布目前已有超过7亿台设备运行Windows 10系统。去年这个数字为5亿。Office 365目前每个月有1.35亿活跃的商业用户,去年为…

【动态规划】大厅安排 (ssl 1212)

大厅安排大厅安排大厅安排 Description 有一个演讲大厅需要GEORGE管理,演讲者们事先定好了需要演讲的起始时间和中止时间。GEORGE想让演讲大厅得到最大可能的使用。我们要接受一些预定而拒绝其他的预定,目标自然是使演讲者使用大厅的时间最长。为方便起…

《你必须掌握的Entity Framework 6.x与Core 2.0》书籍出版

前言到目前为止写过刚好两百来篇博客,看过我博客的读者应该大概知道我每一篇博客都沿袭着一贯的套路,从前言到话题最终到总结,本文依然是一如既往的套路,但是不是介绍技术,也可说是介绍技术,不过是介绍书中…

Loj#2035-[SDOI2016]征途【斜率优化】

正题 题目链接:https://loj.ac/problem/2035 题目大意 nnn个数字分成mmm段,要求方差最小。 解题思路 首先方差的公式∑i1n(xi−∣x∣)2\sum_{i1}^n(x_i-|x|)^2i1∑n​(xi​−∣x∣)2 其中∣x∣|x|∣x∣是不变的,定义w∣x∣w|x|w∣x∣ 设fi,jf_{i,j}fi,…

可持久化线段树小结

学了可持久化线段树有一段时间了,一直没拿出时间来整理一下,刚好今天有空,就写一写。 可持久化的含义是对于每次修改操作都将产生一个新版本的线段树,并且旧版本的线段树仍然保留可以随时访问。 基于这个目的,我们可…

【动态规划】 数字游戏 (ssl 1653)

数字游戏 题目大意: 有n个数,分别为a[1] (序号为1),a[2] (序号为2),a[3]…a[n],让你选m个数,每选一个数,就要减去已选个数(不算当前数)*b[i] (i为当前值的序号),所选数的最大值(要减去相应的b) 原题 小…

.NET Core玩转机器学习

ML.NET 专门为.NET开发者提供了一套跨平台的开源的机器学习框架。ML.NET支持.NET开发者不需要过度专业的机器学习开发经验,就能轻松地训练自己的模型,并且嵌入到自己的应用中。一切尽在.NET之中。ML.NET早期是由Microsoft Research开发,近十年…

P2900-[USACO08MAR]Land AcquisitionG【斜率优化】

正题 题目链接:https://www.luogu.com.cn/problem/P2900 题目大意 nnn块hi∗wih_i*w_ihi​∗wi​的土地,购买一组土地需要max(h)∗max(w)max(h)*max(w)max(h)∗max(w),求购买所有土地的最小费用。 解题思路 首先如果hhh和www都小于另一块土地显然是不需…

二元运算 FFT+分治

题目: 4836: [Lydsy2017年4月月赛]二元运算 Time Limit: 8 Sec Memory Limit: 128 MB Submit: 486 Solved: 162 [Submit][Status][Discuss] Description 定义二元运算 opt 满足 现在给定一个长为 n 的数列 a 和一个长为 m 的数列 b ,接下来有 q 次询问。…

【记忆化搜索】【线性化DP】滑雪 (ssl 1202/luogu 1434/pku 1088)

滑雪滑雪滑雪 ssl 1202 luogu 1434 pku 1088 题目大意: 有一个N*M的矩阵,每个位置都有一个数,可以从大的数走向小的数,问可走的路最长是多少 原题 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获…

POJ2942-Knights of the Round Table【tarjan】

正题 题目链接:http://poj.org/problem?id2942 题目大意 有nnn个骑士,有mmm组讨厌关系,要求讨厌的不能坐相邻,而且要求每次会有都有奇数个人,求有多少个骑士一组会议都不能参加。 解题思路 首先构一个补图,然后求有…

UVA4671 K-neighbor substrings FFT+字符串hash

题解: 将字符串A、B中的a和b分别以1和-1表示,对字符串B进行反转。 将A和B看成多项式,求卷积,这样的话从结果区间的[lenB−1,lenA)[lenB−1,lenA)中的每一个点的值valval,(lenB−val)/2(lenB−val)/2代表当前位置的字串…