1、程序和进程区别:
程序,编译好的二进制文件,存储在磁盘中,不占用系统资源(cpu,内存。。。),如a.out
进程,活跃的程序,需要占用系统资源,
a.out可以在多个终端中运行,即同一个程序可以加载为不同的进程,不同的进程互不影响。又如Qt程序也可以同时打开多个,但二者的id是不同的,
如下图windows进程图所示,同一个程序被打开了多次,pid进程号是不同的,即属于不同的进程,linux下也是如此。
2、并发:并行运行
单道程序设计模式:如DOS系统,一个程序A执行完,再执行下一个程序B;
执行效率低
多道程序设计模式:win7,程序看起来能够同时运行;
实质:cpu划分成多个时间轮片;每个进程会划分成多个任务片段。
cpu将时间片1给进程A的1任务片段,时间片1用完,触发时钟中断,
cpu将时间片2给进程B的1任务片段,时间片2用完,触发时钟中断,
cpu将时间片3给进程A的2任务片段,依次。。。。。
因为CPU的执行时纳秒级的,人的反应是毫秒级的,所以用户看起来是在同时执行多个进程,比如同时在听歌,又在浏览网页。