多进程是怎么回事
来源:互联网 发布:mac地址查询品牌 ieee 编辑:程序博客网 时间:2024/04/28 09:48
在从接触到电脑,就一直有个疑惑为什么电脑可以同时运行多个程序,照理说只有一个Cpu,为什么呢
在系统启动时,一般都是先启动一个主进程,其他的进程都是由他派生而来,什么是派生的,说白了就是受管理的一方(仔细想想什么是受管理)。
说到这,我们得先说说,为什么你单击一下桌面的图标,为什么这个程序就运行了呢:
第一点:当我们运行一个程序的时候,这个程序运行的是在系统之上运行的,换句话说,这个程序是受到操作系统管理,那是怎么管理的呢--->>系统会生成一个循环的队列(任务队列),想其中添加有执行的程序信息(程序在内存中的什么地方,现在已经执行到了哪一步这类的数据)
第二点:当我们双击程序的图标,系统首先将会从磁盘上将这个程序加载到内存,并开辟一个内存空间来存储,而这段内存空间中中存放的其实就是cpu的要执行的指令集(运行在虚拟机上的除外,虚拟机的作用就是将平台无关的指令序列转换为本地的机器码)
例:10101100 01010011 11111111
操作 左操作数 右操作数
第三点:既然已经有了我们要指令的指令集,那就需要一个游标,制定当前需要执行的到底是哪个指令了,这就是pc指针,pc指针就是个寄存器,pc寄存器中保存着你要执行的机器码在内存中的存储地址,这样程序就可以一次执行了
第四点:已经弄明白程序是怎么执行的,系统的多进程是不是已经有些眉目了呢。没错,就是要动态的改变当前pc指针所指向的地址(有木有一点想明白)。
接着原来的方向说,什么是受管一方呢,其实操作系统原生的进程只有一个,在这个进程中,他会使用轮询的方法,轮询什么呢,就是上面所讲的第一点,轮询任务队列,首先会设置一个定时器(要不然怎么轮询呢,当然了,这里只是剖析一下实现原理,具体的线程调度方法:抢占调度,优先级什么呢还很多呢)------>>有了时间片,这下应该知道时间片轮转速算法是什么了吧
与进程相对的还有线程,线程是工作在进程内部的,划分原理差不多,当然啦,现在的多核计算机,已经可以并行执行多个程序喽
- 多进程是怎么回事
- 南宁大便多是怎么回事
- 两个进程调用同一函数, 这是怎么回事?
- 进程的地址空间是怎么回事?虚拟内存是如何实现的
- 多出的类是怎么回事(来源于项目)
- 这是怎么回事?
- “返祖现象”是怎么回事
- 打雷是怎么回事
- 今天 是怎么回事
- GPU 是怎么回事
- JNDI是怎么回事?
- .NET2.0调用NET3.5的wcf 的,proxy多出来的2个参数是怎么回事?
- 原始套接字接收是多了4个字节,是怎么回事?
- 谁知道people是怎么回事?
- Dual表到底是怎么回事
- 线程安全是怎么回事?
- 儿童假性近视是怎么回事?
- 炒股到底是怎么回事?
- CCTouchDelegateProtocol(CCTouchDelegate触摸事件委托 两子类:1CCTargetedTouchDelegate,2CCStandardTouchDelegate)
- sequence的MAXVALUE、NOMAXVALUE和CYCLE、NOCYCLE参数
- Yii cookie与session使用
- Hadoop自学笔记(七)Hadoop环境配置和优化
- OpenCV2.4.9的安装
- 多进程是怎么回事
- 《C和指针》第三章 数据
- CCTouch
- 有关php学习的相关笔记
- objective C中的@class, SEL , IMP等灵活机制
- eclipse 改包名
- 使用再生龙制作一键还原系统
- 爱奇艺“舌尖2”引疯投 上桌广告超1500万
- Android: NDK编程