首页 > 系统服务 > 详细

理解操作系统2——进程

时间:2019-09-28 23:04:52      阅读:131      评论:0      收藏:0      [点我收藏+]

进程是计算机操作系统中非常重要的概念。是一种非常重要的抽象。

 

一、为什么要引入进程这个概念?

  先从计算机的体系结构——冯诺依曼体系结构。它是一种将程序指令存储器数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。这个体系结构有三大原则:采用二进制逻辑、程序存储执行和计算机由五大部分组成。这五大部分是:运算器、存储器、控制器、输入设备、输出设备。

技术分享图片

 

 这种结构特点是“程序存储,共享数据,顺序执行”,需要 CPU 从存储器取出指令和数据进行相应的计算。

这种操作系统有以下几个特点:

(1)单处理机结构,机器以运算器为中心;
(2)采用程序存储思想;
(3)指令和数据一样可以参与运算;
(4) 数据以二进制表示;
(5)将软件和硬件完全分离;
(6) 指令由操作码和操作数组成;
(7)指令顺序执行。 
这里的存储器包括了:内部存储器(也就是内存)和寄存器。其中寄存器、控制器和运算器共同构成了CPU。这是一个以存储器为核心的计算机体系结构。所以存储交换数据的快慢很大程度上决定了计算机的速度。此外可以发现指令是顺序执行,也就是说处理器是串行执行指令的
 
这种串行特点在应对多个作业(也叫做程序吧)的时候,就必须把作业一个个做完,一旦其中一个作业是I/O密集型的话,限制作业执行效率的因素就是I/O的读写速度,且大多数时候CPU是空闲的。使得在处理多个作业时,整体效率偏低。为了提高CPU的利用率,那么最好的方式就是让CPU并行地处理这些作业。但是实际上CPU是串行工作的。这该怎么办呢?
 
这里要谈到两个概念“并行”、“并发”:并行是指同时处理多个任务,并发是指由处理多个任务的能力,但是实际上不一定要同时进行。
所以只能串行执行任务单核CPU为了看起来像是能够同时执行多个任务,采用了并发的方式同时处理多个任务,看起来像是并行那样。并发技术的实现相当复杂,最容易理解的就是“时间片轮转进程调度”算法。我们这里先理解成有多个任务,所有的任务轮流使用CPU,每个任务占用CPU的时间非常短。使得用户根本感觉不到CPU是在轮流为多个任务提供服务,就好像多个任务在不间断地运行那样。但是实际上在任何一个时间内,只有一个任务占用着CPU。所以这里就是理解并发的关键,它不是并行,因为CPU本质是串行的,只是通过并发技术使得其看起来像并行。
 
但是并发运行产生了一些问题,
  1、间断性:任务A和任务B根本没啥关系,它们俩是并发执行的,一会儿执行任务A,一会儿执行任务B。
  2、失去封闭性:并发执行的程序,系统中的资源都是共享的,那么任务A执行了的时候改变了资源的状态,在任务B来执行时发现状态改变了,不知它之前想要的状态。这就使得任务A和任务B相互影响。
  3、不可再现性:就是由于程序的运行速度不同,程序的运行环境也有影响,则程序多次执行,虽然它们的初始条件一样,但是运行的结果不一样。因为这个可程序在运行时由于并发,每次运行的环境都不一样,每次运行都是独一无二的。
  以上都是并发的问题,这可怎么办。但是进程的概念的引入很好地解决了上述问题。
======================================================================
 二、什么是进程
引入进程的概念是为了使得计算机在多程序环境下并发执行,并且能够对并发执行的程序加以控制,规避上述的问题。
 
 
 
 

 

理解操作系统2——进程

原文:https://www.cnblogs.com/grooovvve/p/11605178.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!