栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

操作系统原理,在进程的基础上,处于性能考虑引入线程,线程的概念,线程的三种实现

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

操作系统原理,在进程的基础上,处于性能考虑引入线程,线程的概念,线程的三种实现

操作系统原理,在进程的基础上,处于性能考虑引入线程,线程的概念,线程的三种实现

O、在进程的基础上引入线程主要处于应用需要,开销,性能方面的考虑
进程本身需要线程实现并发的任务处理以提升进程的总体处理效率,相比进程,线程的创建和释放,上下文切换更快,相互通信不需要通过内核,而是在进程中共享文件和内存。

一、进程的两个基本属性:资源拥有者,CPU调度单位
随着线程的引入,进程仍然是资源拥有着,但是线程继承了进程的CPU调度单位这一属性。

二、线程:进程中的一个运行实体,是CPU的调度单位,有时将线程称为轻量级进程。
线程的属性:
1、标识符ID
2、有状态和状态装欢操作
3、不运行时保存上下文,程序计数器等寄存器
4、有自己的栈和栈指针
5、共享所在进程的地址空间和其他资源
6、可以创建、撤销另一个线程,程序开始是以一个单线程进程的方式运行的,和操作系统一开始只有一个进程一样。

三、线程的实现:
1、用户级线程
2、核心级线程
3、混合-两者结合方法

四、用户级线程(user level thread)实现方法
1、在用户空间建立线程库,提供一组管理线程的过程(函数接口)
2、运行时系统runtime,完成线程的管理工作,维护相关操作(函数接口)和数据结构(线程表)
3、内核管理的时进程,不会感知到线程的存在
4、线程切换不需要内核态特权

示例:unix使用的线程库,遵循了POSIX线程库标准规定的接口
例如unix和Linux下编程常用的pthread_create,pthread_exit,pthread_yield这样的接口
其中pthread_yield接口使线程自愿让出CPU,因为线程感知不到时钟中断,一个线程占用所有CPU资源时,其他的线程就会无法运行,所以给线程自愿让出CPU的接口。

五、用户级线程的优点:
1、创建,释放,切换速度快,效率高
2、调度算法可以由应用程序自行决定
3、用户级线程可以运行在任何操作系统上,只需要实现相应的运行时库runtime就可

六、应用级线程的不足之处:
1、内核只能将处理器分配给进程,进程内部的多线程并发从进程的视角看其实是串行运行的,同一个进程下的两个线程不会同时运行在两个CPU处理器上。
2、大多数系统调用是阻塞的吗,如果进程中某个线程进行系统调用导致内核阻塞了进程,进程中的其他线程也会被阻塞。

七、核心级线程kernel level thread
1、内核管理所有线程,并向应用程序提供API接口
2、内核维护进程和线程的上下文信息和切换工作
3、示例:Windows操作系统

八、混合型线程
1、线程的创建在用户空间完成,线程调度等在核心态完成,例如Solaris系统
2、多个用户及线程通过多路复用机制对应到多个内核级线程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884877.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号