操作系统--线程

多线程的由来

多进程存在进程之间通讯与共享数据的问题,与进程设计相悖
多进程系统开销大,包含创建进程,进程结束和进程之间的切换
需要在进程内部增加一类实体满足实体之间可以并发执行实体之间可以共享相同的地址空间

线程的概念

线程是进程的一部分,描述指令流执行状态.它是进程中指令流的最小单元,是CPU调度的基本单位。

优点:

一个进程中可以同时存在多个线程
各个线程之间可以并发执行
各个线程之间可以共享地址空间和文件资源

缺点:

一个线程崩溃,会导致所属进程全线崩溃

线程的实现

用户线程

有一组用户级的线程库函数来完成线程的管理,包括线程的创建 终止 同步和调度

特征

不依赖与操作系统的内核 内核不了解用户线程的存在
可用于不支持线程的多进程操作系统
每个进程有私有的线程控制块(TCB)列表
TCB由线程库函数维护
同一进程内用户线程切换速度快 无需用户态与内核态切换
允许每个进程拥有自己的线程调度算法

缺点

线程发起系统调用而阻塞时,则整个进程进入等待
不支持基于线程的处理机抢占 除非当前运行的线程主动放弃,它所在的进程的其他线程无法抢占CPU
只能按进程分配CPU时间 多个线程进程中,每个线程分配的时间片比较少

内核线程

由内核通过系统调用实现的线程机制,由内核完成线程的创建 终止和管理

特征

由内核维护PCB和TCB
线程执行系统调用而被阻塞不影响其他线程
以线程为单位进行CPU时间分配 多线程的进程可获得更多CPU时间片

缺点

线程的创建 终止 切换通过系统调用在内核种实现所以开销较大

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 线程的实现方式 线程已在许多系统中实现,但各系统的实现方式并不完全相同,有的系统,特别是一些数据库管理系统,如in...
    我永远爱02阅读 5,920评论 0 1
  • 传统进程的缺点 fork一个子进程的消耗是很大的,fork是一个昂贵的系统调用,即使使用现代的写时复制(copy-...
    tracy_668阅读 12,384评论 1 13
  • 1 硬件 三个部件最为关键:CPU、内存、I/O控制芯片北桥芯片:协调CPU、内存和高速的图形设备(高速交换数据)...
    王侦阅读 4,402评论 0 1
  • 前言 什么是线程 引入线程的原因 线程的概念 线程和进程的关系 线程结构 线程有点 多线程模型 用户线程和内核线程...
    ZhengYaWei阅读 4,916评论 1 2
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 127,763评论 2 7

友情链接更多精彩内容