并发编程(理论)之——程序,进程,操作系统(含多道技术)

一、程序  
  程序就是一堆代码文件

二、进程
   进程一个抽象的概念
 进程指的是程序的运行过程

进程是操作系统最核心的概念,进程的概念起源于操作系统
  操作系统的其他所有内容都是围绕进程概念展开,研究操作系统就是在研究进程。
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---

posted @ 2020-08-20 00:15  1024bits  阅读(148)  评论(0编辑  收藏  举报