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

进程、线程、内存管理

目录

进程和线程区别

进程和线程切换的区别

系统调用流程

系统调用是否会引起线程切换

为什么需要使用虚拟内存


进程和线程区别

本质区别:

进程是资源分配的基本单元。

线程是操作系统调度的基本单元。

地址空间:

进程具有独立的虚拟地址空间。

线程共享进程的虚拟地址空间。

内存:

系统为每个线程分配不同的内存空间

线程使用的资源来源于所属进程。

并发性:

线程是系统调用的最小单位,线程切换性能好,并发性能好。

进程和线程切换的区别

本质是上下文的切换。

  • 用户级上下文
  • 系统级上下文:进程标识信息、进程线程信息、进程控制信息、系统内核栈
  • 寄存器上下文:硬件上下文 cpu各寄存器的内容

何时切换:

  • 主动:条件不满足
  • 被动:时间片结束

进程切换过程:

  • 保存当前进程的硬件上下文
  • 修改进程的PCB,状态由运行改为就绪或者阻塞 加入相关队列
  • 调度另外一个进程
  • 修改该调度进程的PCB,状态修改为运行
  • 把当前进程的存储管理数据改为被调度进程的存储管理信息(页表,TLB)
  • 恢复被调度进程的硬件上下文,让PC指向被调度的进程代码

系统调用流程

请求准备:系统调用号 -> eax寄存器

(设置系统调用号,每个系统调用都有一个特有的系统调用号放到寄存器中)

触发中断:执行int 0x80 用户态 切换到 内核态 

  • 1 保存用户态状态
  • 2 运行内核代码 - 执行中断处理
  • 3 恢复运行现场 - 中断返回

2 执行中断处理:

根据中断号从系统调用表的查找表来找到与该号码关联的具体函数,内核开始执行这个函数。

3 中断返回:

iret 将返回值返回,并从内核态切换到用户态

系统调用是否会引起线程切换

不一定,如果是阻塞IO且IO未就绪,就是他在阻塞等待了,那么线程会切换;

非阻塞IO不会导致线程切换。

为什么需要使用虚拟内存

也就是为什么进程需要通过一个页表映射到物理内存。

内存利用率:通过需求分页或需求分段,只有当进程真正访问一个页面或段时,它才会被加载到物理内存中。这使得更多的进程可以同时在内存中运行(即便它们的总虚拟内存使用超过了可用的物理内存),从而提高了内存的利用率和系统的吞吐量。

抽象与隔离:虚拟内存为每个进程提供了它自己的地址空间,使其看起来好像它独占了全部的物理内存。这样,每个进程都不能直接访问其他进程的内存,从而实现了进程间的隔离,提高了系统的安全性和稳定性。

磁盘与内存之间的交换:当物理内存不足时,操作系统可以将不常用的内存页面移到磁盘上的交换区或页面文件中,从而释放物理内存供其他进程使用。当进程再次访问被换出的页面时,操作系统可以将其换回内存中。

http://www.lryc.cn/news/153295.html

相关文章:

  • 设计模式系列-创建者模式
  • 加工生产调度
  • Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式
  • Android OkHttp源码阅读详解一
  • UG\NX CAM二次开发 查询工序所在的方法组TAG UF_OPER_ask_method_group
  • npm获取函数名称和测试js脚本
  • ISO/IEC/ITU标准如何快速查找(三十九)
  • git私房菜
  • docker安装grafana,prometheus,exporter以及springboot整合详细教程(GPE)
  • cka/ckad应试指南 从docker到kubernetes完全攻略
  • js中如何使用可选函数参数
  • 基于Open3D的点云处理17-Open3d的C++版本
  • GIT相关内容总结
  • golang清空数组的方法
  • postgresql并行查询(高级特性)
  • Python所有方向的学习路线图!!
  • 2022年03月 C/C++(七级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 使用 Laf 一周内上线美术狮 AI 绘画小程序
  • Kubernetes(k8s)当中安装并使用ingress暴露应用
  • 03-Flask-工程配置加载方式
  • Orangepi安装外设库 wiringPi
  • [dasctf]misc3 chrchrchr.pcapng
  • 微服务--Sentinel(实现:服务高可用)
  • 【MySQL】4、MySQL备份与恢复
  • python后端,一个账户,多设备登录管理
  • Django实现音乐网站 ⒁
  • 服务器监控可视化
  • Redis网络模型
  • Super Resolve Dynamic Scene from Continuous Spike Streams论文笔记
  • 操作视频的开始与暂停