一、程序
程序就是一堆代码文件
二、进程
进程一个抽象的概念
进程指的是程序的运行过程
进程是操作系统最核心的概念,进程的概念起源于操作系统
操作系统的其他所有内容都是围绕进程概念展开,研究操作系统就是在研究进程。
ps:例如:要做一道菜,
食谱就是程序,计算机科学家就是处理器(cpu),而做菜的各种原料就是输入数据,进程就是厨师阅读食谱、取来各种原料以及炒菜等一系列动作的总和。
需要强调的是:同一个程序执行两次,那也是两个进程,比如打开暴风影音,虽然都是同一个软件,但是一个可以播放苍井空,一个可以播放饭岛爱。
三、操作系统
1、操作系统的作用
1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口
2:管理、调度进程,并且将多个进程对硬件的竞争变得有序
2、多道技术
现在计算机还在用
产生背景:针对单核,实现并发 ps: 现在的主机一般是多核,那么每个核都会利用多道技术 有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,会被调度到4个 cpu中的任意一个,具体由操作系统调度算法决定。 空间上的复用:如内存中同时有多道程序,复用内存的空间
1、多道/个程序的代码都存入内存
2、内存空间是物理隔离的 时间上的复用:复用一个cpu的时间片
cpu的切换:
1、任务的运行遇到IO阻塞=》提升效率
2、任务占用cpu时间过长=》降低效率 强调:遇到io切,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样 才能保证下次切换回来时,能基于上次切走的位置继续运行
如果我们的核心目标是想让多个任务并发起来:那么无论是遇到IO还是没有遇到IO都应该让cpu在多个任务之间切换起来
如果我们的核心目标是想让多个任务的运行效率提升:我们应该只控制一个任务在遇到IO情况下切换到另外一个任务
ps:
串行:多个任务依次运行,一个运行完毕再运行下一个
并行:多个任务是真的在同时运行,只有多个cpu才有并行的概念
并发:多个任务看起来是在同时运行,本质还是一个个的运行
进程彼此之间的内存空间隔离,而且是物理隔离
---34---