操作系统基础知识-用户空间实现线程-内核实现线程
来源:互联网 发布:软件测试外包 转型 编辑:程序博客网 时间:2024/06/11 21:13
(多)线程存在的意义
1.某些活动随着时间的推移会被阻塞,将应用程序分解成可准并行运行的多个顺序线程,程序设计模型会简单些。
2.线程比进程更轻量级,创建,销毁都方便。
3.多个线程允许计算和I/O处理类活动彼此重叠进行,从而加快应用程序执行速度。
4.为真正并行提供实现可能。
在用户空间实现线程
优
1.整个线程包放在用户空间,内核对此一无所知。所以它可以在不支持线程的操作系统上实现。
2.用户空间管理线程时,每个进程需要其专有的线程表,用来跟踪该进程中线程,与内核的进程表类似。不过他仅仅记录各个线程的属性,如线程的程序计数器,堆栈指针,寄存器和状态等。也就是说当一个线程的状态切换时,只需程序计数器,堆栈指针,寄存器的相应信息改变就可以,也即其线程切换速度极快。
3.允许进程有自己的调度算法,拓展性强(这是相比于内核空间内核线程需要一定固定表格和堆栈空间)。
缺
4.一个线程开始运行,除非该线程自动放弃CPU,否则该进程其他线程就不能运行(此时的单独进程无法进行轮转调度,也没有时钟中断)。
5.阻塞系统的调用问题,一个线程阻塞时,整个进程将阻塞。
在内核中实现线程
此时每个进程没有自己的线程表,而是内核中有该线程表,此时线程的切换等需要系统调用.
优
1.一个线程阻塞时,内核可以调用进程其他线程。
2.当有多个处理机时,一个进程的多个线程可以同时执行
缺
3.线程创建,销毁开销大(需要内核的调度)
参考《现代操作系统》
阅读全文
0 0
- 操作系统基础知识-用户空间实现线程-内核实现线程
- 操作系统之用户空间和内核空间实现线程
- 用户空间实现线程 内核实现线程 线程的调度
- 【操作系统】线程实现方式(内核级线程、用户级线程)
- linux 线程--内核线程、用户线程实现方法
- 操作系统:内核线程与用户线程
- 在用户空间中实现线程
- 在用户空间实现的线程
- 线程实现的两种方式——用户空间和内核中
- 线程实现的两种方式 —— 用户空间和内核中
- 操作系统之线程实现
- 线程的3种实现方式--内核级线程, 用户级线程和混合型线程
- linux内核线程 [实现]
- [No00003A]操作系统Operating Systems 内核级线程Kernel Threads内核级线程实现Create KernelThreads
- 操作系统 3. 线程基本概念; 线程于进程的比较; 用户线程与内核线程; 线程模型
- [操作系统原理] 内核级线程与用户级线程异同
- 操作系统之 用户级线程与内核级线程
- 线程的实现方式. (用户线程与内核线程的区别)
- css创建叉和勾
- DeepLearning(基于caffe)优化策略(2)--防拟合篇:Dropout
- 《学习正则表达式》读书笔记一
- iOS攻防
- 自制平衡小车:从入门到放弃——基于stm32的平衡小车系列(一)
- 操作系统基础知识-用户空间实现线程-内核实现线程
- hdu4825(Trie树+位运算)
- Flip Game
- 大数据-三
- 树莓派使用opencv时extension randr missing on display“:1”
- 最基础的urllib.request.urlopen()基本使用
- 商城项目基本介绍
- 两个整数相除
- 关于无线信号的RSSI和CSI的理解