进程作为操作系统基础,想要学好操作系统的理论知识,首先要掌握进程的概念。进程的理解可以抽象的思维来理解,也可以直接去挖掘 Linux 的源码来看看林纳斯大神是怎么用数据结构来描述进程的。对于大部分初学者而言,去看操作系统的源码几乎是不可能看懂的,所以也就只能通过抽象理解了。

想当初我学习操作系统时尤其苦逼,看完了一整教材,仍然云里雾里。后来多看了几本书后,才发现我学习操作系统理论知识时过于求成,对于最最最基本的进程的概念没掌握的情况下去学习后续内容所得到的效果甚微。

学习操作系统理论知识,千万不能死记硬背,可以通过类比、抽象等方式来理解。接下来我以“吃饭”这样浅显的道理来形象地解释一下进程的概念。嗯,开始!

==============================================================================================

假设饭桌上有一盘菜和两份碗筷,还有两个人


并且,将这两个人类比为操作系统的两个进程
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
就绪状态:
情景: 两个人在各自的碗中装满了饭,然后拿起了筷子,意为这两个人就做好了吃饭的准备。
以操作系统的角度来看:装饭相当于进程被分配了所需的资源,然后进程进入了就绪状态。
运行状态:
情景: 两个人中某人拿起筷子夹菜往嘴里吃,往肚子里咽,这吃菜的过程就是吃饭的核心。
以操作系统的角度看:吃菜的过程相当于进程的运行状态。
阻塞状态:
情景: 两个人中,如果有一个人吃完了一碗饭,并叫来服务员点多一碗饭,在饭还没到的期间只能等待和眼睁睁看着另一个人吃得欢乐。
以操作系统的角度看:这是进程提出资源请求而处于等待或称之为阻塞状态。
进程的优先级;
情景: 如果一起吃饭的两个人中,一个是老板,一个是员工,两人都做好吃饭的准备后,那自然是老板先吃,这是不同身份之间的吃饭顺序问题。
以操作系统的角度看:如果多个进程处于就绪状态,那么优先级高的进程可以先进入运行状态。
进程与CPU:
情景: 如果把饭桌上的菜看作是CPU,两个人中有且只能有一个人可以夹菜吃,另一个人不能动筷子。
以操作系统的角度看:这是某进程某时刻占有CPU并处于运行状态。
进程的死锁:
情景: 如果把饭桌上的菜看作是某个内存空间,两个人同时夹同一条菜时不放手,导致两人都不能好好吃饭。
以操作系统的角度看:这叫做进程的死锁,互相争夺和等待对方释放资源。
进程间的通信:
情景: 如果两个吃饭在过程中不是各自闷头吃饭,而是边吃边聊天,一个问问题另一个回答。
以操作系统的角度看:聊天就相当于进程间的通信。
父子进程并发:
情景: 如果两个人是父子关系,吃饭的过程中不是儿子必须等父亲吃完再吃,而是两人同时吃。
以操作系统的角度看:这是父进程与子进程并发执行。
进程的独立性:
情景: 如果两个人互不相识,各自吃着不同的菜,当其中某人吃完后不会等待另一个人而直接结账走人。
以操作系统的角度看:进程运行完毕进程结束。另外,进程有结束自然有创建,一般在进程变为就绪状态之前都是创建状态。
处理机调度:
情景: 如果两个人吃饭,总会有一个顺序的规则,比如甲先夹菜吃然后到乙夹菜吃,如果同时夹菜吃容易引发冲突情况。
以操作系统的角度看:多个进程的执行顺序问题是用处理机调度来解决的。
设备间的并行:
情景: 如果甲和乙两个人在吃饭,有第三个人丁是一个歌手,甲乙心血来潮点歌给丁唱,然后甲乙边吃饭边看丁的才艺表演,两者同时进行。
以操作系统的角度看:这是设备的并行执行,典型的例子是cpu跟通道的并行执行。

==============================================================================================

注意,以上浅显的吃饭道理来解释系统的进程概念也是很浅显的。所以仍然需要把计算机操作系统的书籍中关于进程的几十页部分仔仔细细地深入学习。“饭桌上的进程”只能用于辅助理解操作系统的进程的概念。

如果正在学习操作系统理论知识并被各种苦涩的概念和术语困住的童鞋,可以通过这样的方式来理解和学习操作系统,以免学习过程过于无趣和枯燥。由于本文是我凭记忆来写,所以文中某些术语也许有错误,还请读者带着批判性思维来阅读本文。文中有错误之处,请不要放过我,欢迎评论。

理解操作系统的进程的概念就如吃饭一样简单相关推荐

  1. 形象理解操作系统的进程与线程

    在网上看到一个特别形象的举例,让我们理解操作系统中的进程与线程,以及线程同步方式中的"互斥锁"(Mutual exclusion,缩写 Mutex)."信号量" ...

  2. 从进程组、会话、终端的概念深入理解守护进程

    从进程组.会话.终端的概念深入理解守护进程 一.写在前面 「守护进程」是 Linux 的一种长期运行的后台服务进程,也有人称它为「精灵进程」.我们常见的 httpd.named.sshd 等服务都是以 ...

  3. 进程的概念与基本介绍

    文章目录 一.冯诺依曼体系结构 二.操作系统 1.操作系统的概念 2.管理的本质 3.操作系统是如何进行管理的 ****系统调用和库函数**** 4.操作系统上下层关系图 三.进程 1.进程的概念 2 ...

  4. 【Linux】基础:进程的概念

    [Linux]基础:进程概念 摘要:本文的主要目的是理解进程的概念.文章通过介绍进程的管理方式来引入进程的概念,从而提出进程的理解--PCB与程序.然后对PCB内容进行详细介绍,并同时介绍了关于进程的 ...

  5. 【Linux】进程的概念(1)

    冯诺依曼体系结构 我们常见的计算机,如笔记本.我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系. 关于冯诺依曼,必须强调几点: 这里的存储器指的是内存 不考虑缓存情况,这里的CPU能且只能对内存 ...

  6. Linux进程的概念

    文章目录 一.冯·诺依曼体系结构 二.操作系统(operating system) 2.1 系统调用和库函数概念 三.进程 3.1 描述进程-PCB 3.2 查看进程 3.2.1 通过系统目录查看 3 ...

  7. Linux系统下进程的概念《一》

     个人主页:欢迎大家光临-->沙漠下的胡杨   各位大帅哥,大漂亮  如果觉得文章对自己有帮助  可以一键三连支持博主  你的每一分关心都是我坚持的动力   ☄: 本期重点:Linux下的进程的 ...

  8. 深入理解Linux进程管理(1.0)

    学习方法论 写作原则 标题括号中的数字代表完成度与完善度 0.0-1.0 代表完成度,1.1-1.5 代表完善度 0.0 :还没开始写 0.1 :写了一个简介 0.3 :写了一小部分内容 0.5 :写 ...

  9. 进程控制概念简介 多线程上篇(三)

    进程控制 进程的基本数据信息是操作系统控制管理进程的数据集合,这些信息就是用来控制进程的,此处我们说的进程控制就是进程的管理. 比如进程有状态,那么进程的创建.终止,状态的切换,这都不是进程自主进行的 ...

最新文章

  1. POJ 3126 Prime Path BFS搜索
  2. sqlserver2000 中文排序问题
  3. Cordova打包教程知识体系整理(Vue项目打包成ipa)
  4. 博客园今天将排名计算错误了
  5. CSS3制作文字特效
  6. win10 子系统 ubuntu 16.04 安装 docker
  7. HH SaaS电商系统的商城模块设计
  8. oracle10g rac启动,ORACLE 10G RAC启动与关闭
  9. ajax请求成功和失败方法_创新需要反馈和失败的新方法
  10. 解决‘.../rqt_virtual_joy/plugin.xml‘ has no Root Element问题
  11. npm 删除依赖包_npm 和 yarn 你选哪个?
  12. echarts折线图,纵坐标数值显示不准确的问题解决
  13. Linux下svn 安装搭建配置流程
  14. 如果估算IT的测试Pattern数
  15. python学习第十八天 --文件操作
  16. (转)以太坊的 Merkle 树
  17. python网络爬虫实践收获_python网络爬虫实习报告
  18. 单语种语料库 平行语料库 多语种语料库 可比语料库
  19. Viddy上视频营销最成功的6家公司
  20. 用HTML和JavaScript写的RSA加密小工具

热门文章

  1. 基于STM32实现W25Q16读写操作(spi)
  2. PySerial:Python串口通信库的详细介绍、安装及使用方法攻略
  3. RabbitMQ集群搭建、镜像队列、实现高可用负载均衡、Federation Exchange、Federation Queue、Shovel
  4. 质数||素数(分解质因数、筛素数、质数定理)
  5. RTA OS系列介绍04-Alarm
  6. 16万装饰复古家 独享130平欧式生活
  7. 人像美白的python实现
  8. 微服务[学成在线] day16:基于Spring Security Oauth2开发认证服务
  9. imgareaselect + php 裁剪和上传,jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能
  10. python之 python 起源、语言特点