操作系统可以负责对进程分配内存,我猜过程是这样
1首先分出一部分内存,放置若干进程控制块PCB,放在三个队列中,就绪,阻塞,执行。然后根据调度算法,找到将要执行进程相应进程块,计算进程所需进程块大小,然后分配。如果还以剩余内存,也不会占用,毕竟cpu一次只能执行一个程序嘛
2CPU并发操作,就因为时间片方法执行嘛,当一个程序执行一段时间,就释放内存空间,相对应PCB块进阻塞队列,这么样,CPU循环分配个进程各种资源
请问我对操作系统执行进程分配的功能理解有错误吗?
操作系统可以负责对进程分配内存,我猜过程是这样
1首先分出一部分内存,放置若干进程控制块PCB,放在三个队列中,就绪,阻塞,执行。然后根据调度算法,找到将要执行进程相应进程块,计算进程所需进程块大小,然后分配。如果还以剩余内存,也不会占用,毕竟cpu一次只能执行一个程序嘛
2CPU并发操作,就因为时间片方法执行嘛,当一个程序执行一段时间,就释放内存空间,相对应PCB块进阻塞队列,这么样,CPU循环分配个进程各种资源
请问我对操作系统执行进程分配的功能理解有错误吗?
你说的模型过于简单化了。比如说c语言malloc,这种运行的过程中动态分配内存的,显然不能直接在进程运行一开始就知道要分配多少。
操作系统内存管理,包括段、页、虚拟内存、交换,这些书上都有的,不需要“猜”。看看就知道了。
程序切换的时候,天哪,可不能“释放内存空间”,要不切换回来,内存都没了怎么继续运行。程序切换的时候,操作系统要做的,是把当前进程的状态(一般来说是cpu寄存器的值)保存下来
内存不能动它。除非内存不够,内存不够需要交换。在另一个进程执行完后,切换回来。