9/17操作系统原理与Linux内核分析

线程

线程… 1

1.      线程的引入… 2

2.      线程的概念… 2

3.      线程的控制… 3

4.      线程的实现… 4

1.      线程的引入

1.1.       
目的

1.1.1.        
减少程序并发执行时所付出的时空开销

1.1.2.        
提高进程执行的并发程度

1.1.3.        
提高资源的利用率和吞吐量

2.      线程的概念

2.1.       
定义

2.1.1.        
即可由操作系统的内核控制,也可以由用户控制

轻权进程,线程

2.2.       
与进程的区别和联系

一个进程下不同线程切换的效率高于不同进程间切换的效率。

2.2.1.        
存在控制线程运行的线程控制块

Thread Control Block,TCB

指示被执行指令的程序计数器,以及保留局部变量,少数状态参数和返回地址的一组寄存器和堆栈

2.2.2.        
线程作为一个独立运行的基本单位

2.2.3.        
一个系统可以有多个进程,一个进程可以有多个线程(至少有一个)。线程能并发执行

2.2.4.        
同一进程的不同线程共享该进程的资源

2.2.5.        
存在着共享资源和相互合作的制约关系。也具有三种基本状态:运行、阻塞、就绪。

3.      线程的控制

3.1.       
线程的建立与撤销

3.2.       
线程调度

与进程调度算法类似

3.3.       
进程全局变量和线程(私有)全局变量

3.3.1.        
进程全局变量

对该进程中所有线程中的过程可见

3.3.2.        
线程全局变量

对该线程中的所有过程可见

3.3.3.        
过程局部变量

只对该过程可见

3.4.       
线程互斥与同步

与进程类似

4.      线程的实现

4.1.       
用户态线程

进程管理线程

4.2.       
核心态线程

系统管理线程

4.3.       
对用户态线程和核心态线程的评价

4.3.1.        
用户态线程的优点和核心态线程的缺点

可以再不支持线程的操作系统上实现

最明显

开销与性能

每个进程都有自己的调度算法

可扩充性好

4.3.2.        
用户态线程的缺点和核心态线程的优点

阻塞型系统

轮转式调度

4.3.3.        
共同存在的问题

所有线程共享该进程的所有数据区和信号等资源,可能会导致资源使用的冲突,导致很多库程序变成不可再入代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值