安阳网站开发,商标查询软件哪个app好,大理州建设局投诉网站,好的网站或网页目录 进程和线程区别
进程和线程切换的区别
系统调用流程
系统调用是否会引起线程切换
为什么需要使用虚拟内存 进程和线程区别 本质区别#xff1a; 进程是资源分配的基本单元。 线程是操作系统调度的基本单元。 地址空间#xff1a; 进程具有独立的虚拟地址空间。 线程…目录 进程和线程区别
进程和线程切换的区别
系统调用流程
系统调用是否会引起线程切换
为什么需要使用虚拟内存 进程和线程区别 本质区别 进程是资源分配的基本单元。 线程是操作系统调度的基本单元。 地址空间 进程具有独立的虚拟地址空间。 线程共享进程的虚拟地址空间。 内存 系统为每个线程分配不同的内存空间 线程使用的资源来源于所属进程。 并发性 线程是系统调用的最小单位线程切换性能好并发性能好。 进程和线程切换的区别
本质是上下文的切换。
用户级上下文系统级上下文进程标识信息、进程线程信息、进程控制信息、系统内核栈寄存器上下文硬件上下文 cpu各寄存器的内容
何时切换
主动条件不满足被动时间片结束
进程切换过程
保存当前进程的硬件上下文修改进程的PCB状态由运行改为就绪或者阻塞 加入相关队列调度另外一个进程修改该调度进程的PCB状态修改为运行把当前进程的存储管理数据改为被调度进程的存储管理信息页表TLB恢复被调度进程的硬件上下文让PC指向被调度的进程代码
系统调用流程
请求准备系统调用号 - eax寄存器
设置系统调用号每个系统调用都有一个特有的系统调用号放到寄存器中
触发中断执行int 0x80 用户态 切换到 内核态
1 保存用户态状态2 运行内核代码 - 执行中断处理3 恢复运行现场 - 中断返回
2 执行中断处理
根据中断号从系统调用表的查找表来找到与该号码关联的具体函数内核开始执行这个函数。
3 中断返回
iret 将返回值返回并从内核态切换到用户态
系统调用是否会引起线程切换
不一定如果是阻塞IO且IO未就绪就是他在阻塞等待了那么线程会切换
非阻塞IO不会导致线程切换。
为什么需要使用虚拟内存
也就是为什么进程需要通过一个页表映射到物理内存。
内存利用率通过需求分页或需求分段只有当进程真正访问一个页面或段时它才会被加载到物理内存中。这使得更多的进程可以同时在内存中运行即便它们的总虚拟内存使用超过了可用的物理内存从而提高了内存的利用率和系统的吞吐量。
抽象与隔离虚拟内存为每个进程提供了它自己的地址空间使其看起来好像它独占了全部的物理内存。这样每个进程都不能直接访问其他进程的内存从而实现了进程间的隔离提高了系统的安全性和稳定性。
磁盘与内存之间的交换当物理内存不足时操作系统可以将不常用的内存页面移到磁盘上的交换区或页面文件中从而释放物理内存供其他进程使用。当进程再次访问被换出的页面时操作系统可以将其换回内存中。