zoukankan      html  css  js  c++  java
  • 7.2.1

    一 什么是进程

    进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。

    二 进程与程序的区别

    程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。

    举例:

    我在家做韭菜炒鸡蛋,我有做韭菜炒鸡蛋食谱,厨房里有所需的原料:鸡蛋、韭菜,蒜泥,大葱,生姜等。

    1. 韭菜炒鸡蛋食谱就是程序。

    2. 而做韭菜炒鸡蛋的各种原材料就是数据输入。

    3. 进程就是厨师阅读食谱、取来各种原料以及炒韭菜炒鸡蛋等一系列动作的总和

    需要强调的是:同一个程序执行两次,那也是两个进程,比如你打开两个QQ,两个QQ是独立的。

    三 并发与并行

    无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务

    一 并发:是伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发

    二 并行:同时运行,只有具备多个cpu才能实现并行

    四 进程的状态

    tail -f access.log |grep '404'

    执行程序tail,开启一个子进程,执行程序grep,开启另外一个子进程,两个进程之间基于管道'|'通讯,将tail的结果作为grep的输入。

    进程grep在等待输入(即I/O)时的状态称为阻塞,此时grep命令都无法运行

    其实在两种情况下会导致一个进程在逻辑上不能运行,

    1. 进程挂起是自身原因,遇到I/O阻塞,便要让出CPU让其他进程去执行,这样保证CPU一直在工作

    2. 与进程无关,是操作系统层面,可能会因为一个进程占用时间过多,或者优先级等原因,而调用其他的进程去使用CPU。

    因而一个进程由三种状态

  • 相关阅读:
    _bzoj1061 [Noi2008]志愿者招募【最小费用最大流】
    _bzoj2243 [SDOI2011]染色【树链剖分】
    _bzoj1013 [JSOI2008]球形空间产生器sphere【高斯消元】
    _bzoj1002 [FJOI2007]轮状病毒【瞎搞】
    leetcode 273 Integer to English Words
    leetcode 12 Integer to Roman
    leetcode 1071 Greatest Common Divisor of Strings
    lc6 ZigZag Conversion
    lc13 Roman to Integer
    leetcode 171 Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/caimengzhi/p/8511385.html
Copyright © 2011-2022 走看看