重新整理操作系统概念系类——线程和多线程模型
2023-09-14 08:59:24 时间
前言
为什么有线程这个概念呢?
传统的进程只能串行执行一系列程序。因此,引入线程来增加并发度。
这个时候cpu执行的最小单位就是线程了。
线程是一个基本的cpu执行单元,也是程序执行流的最小单位。
引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务。
引入线程后,进程只作为除cpu之外的系统资源的分配单元。
正文
线程属性
线程的实现方式
线程分为用户级线程和内核级线程。
用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。
不需要用户态/核心态切换,速度快,操作系统内核不知道多线程的存在,因此一个线程阻塞将使得整个进程(包括它的所有线程)阻塞。
由于这里的处理器时间片分配是以进程为基本单位,所以每个线程执行的时间相对减少。
内核线程:由操作系统内核创建和撤销。内核维护进程及线程的上下文信息以及线程切换。一个内核线程由于I/O操作而阻塞,不会影响其它线程的运行。Windows NT和2000/XP支持内核线程。
操作系统只能知道内核级线程,因此只有内核级线程才是处理机分配的单位。
在上面的模型中,该进程由两个内核级线程,三个用户级线程,在用户看来,这个进程由3个线程。但是即使该进程在一个4核处理机上的计算机运行,也最多只能分配到两个核,最多只能有两个用户线程并发执行。
用户级线程和内核级线程映射问题
多对一模型
一对一模型
多对多模型
结
相关文章
- 数据统计分析的16个基础概念
- docker容器概念介绍和简单的应用
- Python文件:概念、作用、存储方式、文件类型
- 3. 线程概念篇/ 线程和进程的区别
- 9-线程概念与多线程模型
- 大数据必学Java基础(七十五):多线程与程序、进程、线程之间概念详解
- SpringCloud 学习(一)---- 微服务的概念
- 【现代操作系统】操作系统各个概念详解p12-p140
- 【云原生实战】Kubernetes实战之基础概念
- 【一】知识图谱基础概念、开发流程以及落地策略
- 12.88万的小魔驼2.0量产交付,末端物流自动配送从概念走向现实
- 【Airplay_BCT】关于Bonjour的概念解答
- 机器学习一些概念理解
- Python线程-线程概念和基础知识
- Hadoop:相关概念详解大数据
- XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax详解编程语言
- MySQL中table的概念和使用详解(mysql中table)
- 什么简介及使用方法MySQL 中的 DTP 是指 Data Transfer Protocol(数据传输协议),它可以帮助用户在数据库之间转移数据本文将为您介绍 DTP 的概念和使用方法