qq_43412960
qq_43412960
2020-05-04 17:09
采纳率: 79.1%
浏览 182

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

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

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • caozhy
    已采纳

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

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

    点赞 评论

相关推荐