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


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

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

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

  • 相关阅读:
    Nginx日志管理
    Nginx负载均衡
    Nginx 缓存
    Nginx代理服务器
    Nginx搭建 Web服务
    Nginx HTTP模块
    洛谷P1012拼数
    洛谷 P1876 开灯
    洛谷P2084 进制转化
    关于typedef的用法
  • 原文地址:https://www.cnblogs.com/guojieying/p/13532719.html
Copyright © 2020-2023  润新知