并发性是因为多个程序交替运行,真的对吗,操作系统也是程序,操作系统应该是在内存里一直运行把?
我查了下,操作系统一般是C语言写的,那么为啥能进行java等语言程序的交替工作呢?
无论什么语言,计算机只认识机器语言。
操作系统管理的进程,都是机器语言的程序。
java程序虽然不是机器语言,但是jvm是机器语言,操作系统调度的是jvm的进程。
无论哪个语言写的,差异只是对我们人类。计算机一个都不认识,计算机只认识机器语言,因为0101太麻烦了,所以搞出个汇编语言,面向指令的。以CPU为例,只管一群指令。各种语言可以通过编译器转换成相应的机器指令,CPU就能运行了。操作系统的确是C写的,情况也一样。因为要一直操纵各种硬件太麻烦了,所以中间搞了个操作系统有关硬件和软件的管理全由他来做,这样程序员就能解放出来只管应用层之上的软件问题。回过头来,由于CPU只管指令,所以你哪个语言写的对它来说都一样,这些语言全是开发出来面向软件开发的。硬件的一般是汇编,C介于两者之间,所以操作系统百分之90的代码是C,另外的全是汇编。早期的操作系统全是汇编,那维护起来特别麻烦。