2-什么是进程 Process

What is process?

Process can be seen as a dynamic instance of program, or say it's an instance of a computer program that is being executed./in execution.

Program其实就是指我们通常写的程序,这些都是静态的代码,当这些程序被执行的时候,它们就叫做process,进程。所以我们说,进程就是执行中的程序。

当程序运行的时候,操作系统会为这个程序提供它需要的资源。例如memory for storing data, system resource like file system access. 一个进程其实就是一个container, 其中存放了运行需要的资源,和这段运行的代码。

A process is defined as an entity which represents the basic unit of work to be implemented in the system.

When a program is loaded into the memory and it becomes a process, it can be divided into four sections ─ stack, heap, text and data. The following image shows a simplified layout of a process inside main memory.  Program指的就是我们平时写的代码。

what does a process include

Stack:The process Stack contains the temporary data such as method/function parameters, return address and local variables.

Heap:This is dynamically allocated memory to a process during its run time.

Text:This includes the current activity represented by the value of Program Counter and the contents of the processor's registers. 储存处理器执行的代码。

Data: This section contains the global and static variables. 存储全局和静态变量。

States of Process

操作系统通常都支持多任务处理,即多个进程同时执行,这样的系统也叫做multi-processing, multi-tasking or time-sharing system。对于这种多任务同时处理,并不需要很多CPU,当CPU的个数小于运行的进程的数量的时候,就会通过改变进程的状态,来安排这些进程‘同时’运行。

这里‘同时’并不是真正的多个进程同时运行,而是通过快速切换多个进程,让用户觉得好像这些进程是同时在运行的,实际上并不是。每个进程占用CPU很短的时间,然后就放弃资源,让给下一个进程。或者当这个进程在等待I/O的时候或其他很慢的操作的时候,也会放弃CPU资源,进入wait/block/sleep状态,让给其他进程。

进程的三种状态

进程执行时的间断性,决定了进程可能具有多种状态。事实上,运行中的进程可能具有以下三种基本状态。

1)就绪状态(Ready)

进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。

The process is waiting to be assigned to a processor. Ready processes are waiting to have the processor allocated to them by the operating system so that they can run. Process may come into this state afterStartstate or while running it by but interrupted by the scheduler to assign CPU to some other process.

2)运行状态(Running):

进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。

Once the process has been assigned to a processor by the OS scheduler, the process state is set to running and the processor executes its instructions.

3)阻塞状态(Blocked):

由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理器资源分配给该进程,也无法运行。[3]

Process moves into the waiting state if it needs to wait for a resource, such as waiting for user input, or waiting for a file to become available.

*如果计算机有多个cpu,或者一个cpu中有多核(multi cores),那么我们就可以让多个进程真正的同时运行(simultaneously),每个进程的状态转变也遵循上面的规律。 

Process Scheduling

什么时候进程被从cpu上移开,接下来哪个进程会被从queue里拿出来,放在cpu上执行是有一定规律的,这个规律取决于该操作系统用的什么scheduling algorithm。对于multiprogramming operating system来说,process scheduling是必不可少的一部分。

Process Scheduling Queues

The Operating System maintains the following important process scheduling queues −

Job queue− This queue keeps all the processes in the system.

Ready queue− This queue keeps a set of all processes residing in main memory, ready and waiting to execute. A new process is always put in this queue.

Device queues− The processes which are blocked due to unavailability of an I/O device constitute this queue.



程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块(Program Control Block,简称PCB),包含进程的描述信息和控制信息,是进程存在的唯一标志。

进程具有的特征:

动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;

并发性:任何进程都可以同其他进程一起并发执行;

独立性:进程是系统进行资源分配和调度的一个独立单位;

结构性:进程由程序、数据和进程控制块三部分组成。

Most modern operating systems support multiple concurrent users(并行用户,即同一个时间有多个user), and by implication multiple concurrent processes(同一时间有多个进程). In such systems, the same program may be executed more than once at the same time, leading to several different processes all associated with the same program file. In the example, two of the users are executing the chrome command, resulting in two chrome processes.

现在很多操作系统通过实现同个时间多个进程同时运行,来支持多并行用户。在这样的系统里,可能有些程序会被同个时间多次执行,例如,两个用户同时都在执行chrome command,就会开启两个chrome 进程。

Most of the code that is executed in a process is that of the actual program. This is known as "user code". The user code of each process is well insulated from that of other processes. However the process may need the operating system to do some work for it. The process makes a call into the operating system, causing operating system code to run on its behalf. When this happens the process is said to be running in kernel mode.

一般来说, 应用程序是在User mode中执行程序,普通的数值计算或变量指派都可以在此模式完成,但是若要执行一些危及系统安全的指令(例如对磁盘写入资料),而这些指令是不准在User mode中执行的,强要执行那些特殊指令只会让系统给你一个错误信息而已,应用程序必须呼叫一些OS定义好的函数才能达成那些功能,例如printf(),这些OS事先定义好的函数我们称为system call(系统调用)。

当应用程序执行了system call,并不是傻傻地让应用程序想做什么就做什么,他们首先会严密地检查这个调用的应用程序的权限以及操作的内容(是否读取不属于自己的存储器范围,是否读写没有权限读写的文件,是否想把资料往错误的装置送过去......),若是有任何错误,system call将会停止执行并回传一个错误代号,让应用程序知道自己错在何处。相反地​​一切检查都没问题,system call将会通知CPU进入Kernel mode,并依照应用程序送过来的参数执行特权指令。当特权指令执行完毕,system call将会通知CPU返回User mode,并回到应用程序中。

为了不让程序任意存取资源,大部分的CPU架构都支持Kernel mode与User mode两种执行模式。当CPU运行于Kernel mode时,任务可以执行特权级指令,对任何I/O设备有全部的访问权,还能够访问任何虚拟地址和控制虚拟内存硬件;这种模式对应x86的ring0层,操作系统的核心部分,包括设备驱动程序都运行在该模式。当CPU运行于User Mode时,硬件防止特权指令的执行,并对内存和I/O空间的访问操作进行检查,如果运行的代码不能通过操作系统的某种门机制,就不能进入内核模式;这种模式对应于x86的ring3层,操作系统的用户接口部分以及所有的用户应用程序都运行在该级别。

*kernel:内核。kernel可以看作一台车子的发动机,如果说操作系统是一台车子的话。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • word直接复制来了,格式就不改了。至于这门课怎么复习,只要平时实验都认真完成、报告认真写,平时分都很高;考试的话...
    Jozhn阅读 4,545评论 0 8
  • 结晶 结晶是指从饱和溶液中凝结,或从气体凝华出具有一定的几何形状的固体(晶体)的过程。在自然环境下,气温的下降压力...
    OD张阅读 1,453评论 0 2
  • 噢!烟灰儿!一地烟灰儿! 每次烟灰儿介绍自己的雅称之后都会附上一句抽的烟那个烟灰儿,这样一来一地烟灰儿倒显得有点雅...
    Pingzi就是瓶子阅读 1,029评论 4 0
  • 目录 夜色阑珊 08 季帆结束了自己的讲述,抬头看了看季敏:“事情的经过就是这样。我希望她先治好自己的病,毕竟她还...
    南歌吟阅读 344评论 0 5
  • 为什么一匹千里马 需要一个伯乐? 难道万里腾空的自在 还抵不上一匹雕花的马鞍? 曾有人在幽州台上 望天地之悠悠 为...
    柳枫林阅读 408评论 21 17