进程和线程:进程的实现

进程表

为了实现进程模型,操作系统维护了一张进程表。每一个进程占用一个进程表项(又称进程控制块)。进程表项中保存了进程状态切换时所必要的信息,如程序计数器、堆栈指针、内存分配状况、打开的文件、账号和调度信息等。

典型进程表表项字段:
在这里插入图片描述

怎么实现进程切换

进程切换一般利用中断。每一个 I/O 类关联一个中断向量(interrupt vector)的位置(靠近内存底部的固定区域),它包含中断服务程序的入口地址。

中断发生后操作系统的底层工作步骤:

  • 硬件压入堆栈程序计数器等
  • 硬件从中断向量装入新的程序计数器
  • 汇编语言过程保存寄存器值
  • 汇编语言过程设置新的堆栈
  • C 中断程序运行
  • 调度程序决定下一个将运行的程序
  • C 过程返回至汇编
  • 汇编语言过程开始运行新的当前进程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值