qq_43412960 2020-05-04 17:09 采纳率: 78.6%
浏览 196
已采纳

这是一个关于操作系统的相关问题

操作系统可以负责对进程分配内存,我猜过程是这样

1首先分出一部分内存,放置若干进程控制块PCB,放在三个队列中,就绪,阻塞,执行。然后根据调度算法,找到将要执行进程相应进程块,计算进程所需进程块大小,然后分配。如果还以剩余内存,也不会占用,毕竟cpu一次只能执行一个程序嘛

2CPU并发操作,就因为时间片方法执行嘛,当一个程序执行一段时间,就释放内存空间,相对应PCB块进阻塞队列,这么样,CPU循环分配个进程各种资源
请问我对操作系统执行进程分配的功能理解有错误吗?

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-04 21:32
    关注

    你说的模型过于简单化了。比如说c语言malloc,这种运行的过程中动态分配内存的,显然不能直接在进程运行一开始就知道要分配多少。
    操作系统内存管理,包括段、页、虚拟内存、交换,这些书上都有的,不需要“猜”。看看就知道了。

    程序切换的时候,天哪,可不能“释放内存空间”,要不切换回来,内存都没了怎么继续运行。程序切换的时候,操作系统要做的,是把当前进程的状态(一般来说是cpu寄存器的值)保存下来
    内存不能动它。除非内存不够,内存不够需要交换。在另一个进程执行完后,切换回来。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。