当前位置: 首页 > news >正文

八股训练营第 10 天 | 进程和线程之间有什么区别?并行和并发有什么区别?解释一下用户态和核心态,什么场景下,会发生内核态和用户态的切换?

进程和线程之间有什么区别

进程是资源分配和调度的基本单位。线程是程序执行的最小单位。线程是进程的子任务。一个进程可以有一个或多个线程,这些线程共享相同的内存空间。

资源开销:

  • 每个进程都有独立的内存空间。进程的创建和销毁开销较大。进程间切换需要保存整个进程的状态。因此进程的上下文切换开销较大
  • 线程共享相同的内存空间。线程的创建和销毁开销较小。线程间切换只要保存少量上下文信息。因此线程的上下文切换开销较小。

通信与同步:

  • 进程之间相互隔离,想要通信必须借助特殊的方式,如管道、消息队列、共享内存等。
  • 线程共享相同的内存空间,数据同步比较容易。

安全性:

  • 进程由于相互隔离,一个进程的崩溃一般不会影响其他进程。
  • 线程由于共享内存空间,一个线程崩溃可能会影响整个进程的稳定性。

并行和并发有什么区别

  • 并行是在同一时间执行多个任务。这些任务运行在不同的处理单元(如多个 CPU 核心)上。一个并行系统通过并行执行多个任务来加速系统整体的任务执行。
  • 并发是在一个时间段内执行多个任务。这些任务并不是同时执行,而是交替执行。由时间片轮转或调度算法决定。

解释一下用户态和核心态,什么场景下,会发生内核态和用户态的切换?

用户态和内核态是操作系统为了实现权限控制、保护系统资源而设计的两种 CPU 运行级别。用于控制进程 / 程序对计算机硬件资源的访问权限和操作范围。

  • 用户态:进程 / 程序只能执行受限的指令,不能访问操作系统的核心,不能直接访问硬件资源。
  • 内核态:进程 / 程序可以执行特权指令,能够访问操作系统核心,能够直接访问操作系统资源,执行系统调用、内存管理、文件系统等操作。

在以下场景会发送用户态到内核态的切换:

  • 系统调用:当进程 / 程序需要请求操作系统内核的服务时,会通过系统调用请求操作系统使 CPU 进入内核态。
  • 异常:当进程 / 程序出现错误或异常时,操作系统会将 CPU 由用户态转为内核态,由内核的异常处理程序来处理错误或异常。
  • 中断:当有外部设备(鼠标、键盘等)产生中断时,操作系统会将 CPU 由用户态转为内核态,由内核的中断处理程序来响应这个设备,处理完后再转换为用户态。
http://www.dtcms.com/a/581870.html

相关文章:

  • AIDAv2:重新定义DeFi的AI驱动金融基础设施
  • SAP PP未清生产订单关闭物料退料、新工单发料批量处理
  • 下载软件的网站哪个好用哪个网站做首页好
  • 【零基础一站式指南】Conda 学习环境准备与 Jupyter/PyCharm 完全配置
  • 滨州制作网站深圳优化公司
  • mysql第四次做业
  • clusterProfile包用于宏基因组学富集分析
  • 湖北网站开发培训写一篇软文多少钱
  • python+django/flask基于协同过滤算法的理财产品推荐系统
  • h5个网站的区别某颜值女主播低俗内容流出视频
  • 做网站600房产管理局官网查询入口
  • 品牌网站建设要选磐石网络安阳县
  • 深圳企业网站托管长春专业网站建设模板
  • 陕煤建设集团韩城分公司网站免费的效果图设计软件
  • Web APIs 入门到实战(day5):解决数据丢失痛点——JS 本地存储 + BOM 操作实战案例(实现数据持久化学生就业表)
  • 本地前端独立开发(后端未启动)登录解决方案
  • HTML<output>标签
  • 淘宝客建网站要钱的吗房产信息网站模板
  • 山东省住房建设厅网站首页宝宝身上出现很多小红疹怎么办
  • 环境配置|GPUStack——为大模型而生的开源GPU集群管理器
  • 【 IDEA2022转移C盘.IntelliJIdea索引文件】
  • 广州现在哪个区不能去落实20条优化措施
  • MVC 数据库
  • 抚州哪里有做企业网站的公司电子商务网站建设外包服务的企业
  • Oracle 19C实测:重命名分区表后又重命名分区索引,分区索引会失效吗?DBA必看避坑指南!
  • 网页设计网站建设流程平面设计师上的网站
  • 和网站用户体验相关的文章抖音代运营服务合同
  • 如何解决VMware虚拟机中Linux系统终端不显示ens33 inet IP地址的问题
  • 大酒店网站源代码信用信息公示网官网
  • 广告模板在哪个网站好自媒体seo是什么意思