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


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

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

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

  • 相关阅读:
    <img>的onClick属性的问题。
    Struts2的声明式异常处理
    beginner项目
    Visual Studio 2010 SP1将支持HTML5和CSS3 狼人:
    技巧:你未必知道的IE8九大功能 狼人:
    Mozilla公布Firefox 2011年开发计划 狼人:
    如何真正提高ASP.NET网站的性能 狼人:
    互联网之父Vint Cerf谈重组互联网 狼人:
    一位资深IT自由职业者的2010年回顾 狼人:
    PHP框架 Raxan 1.0 最终版发布 狼人:
  • 原文地址:https://www.cnblogs.com/guojieying/p/13532719.html
Copyright © 2020-2023  润新知