CN1804806A - Java操作系统中进程的实现和进程状态转换的方法 - Google Patents
Java操作系统中进程的实现和进程状态转换的方法 Download PDFInfo
- Publication number
- CN1804806A CN1804806A CN 200610049099 CN200610049099A CN1804806A CN 1804806 A CN1804806 A CN 1804806A CN 200610049099 CN200610049099 CN 200610049099 CN 200610049099 A CN200610049099 A CN 200610049099A CN 1804806 A CN1804806 A CN 1804806A
- Authority
- CN
- China
- Prior art keywords
- attitude
- hang
- ready
- java
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种应用于Java操作系统中进程的实现和进程状态转换的方法。在Java操作系统中,定义了原子化的七个不同的进程状态:新建态、运行态、就绪态、等待态、挂起就绪、挂起等待、终止态,并且Java操作系统中的进程可以按照系统条件和状态,根据设定的进程状态切换条件,进行明确的状态切换。这一方法在突出了Java操作系统中进程在安全性、灵活性方面的优势,从整体上提高了Java操作系统的运行速度,特别是在嵌入式平台这类本身硬件运行速度不是很快时,更具有明显的效果。
Description
技术领域
本发明涉及Java操作系统,尤其是涉及一种Java操作系统中进程的实现和进程状态转换的方法。
背景技术
操作系统的进程是对正在运行的程序的抽象,是一种数据结构,目的在于清晰地刻画动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。
进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,由数据结构以及在其上执行的程序(语句序列)组成,是程序在这个数据集合上的运行过程,也是操作系统进行资源分配和保护的基本单位。它具有如下属性:
●(结构性)进程包含了数据集合和运行于其上的程序。
●(共享性)同一程序同时运行于不同数据集合上时,构成不同的进程。或者说,多个不同的进程可以共享相同的程序。
●(动态性)进程是程序在数据集合上的一次执行过程,是动态概念,同时,它还有生命周期,由创建而产生,由撤销而消亡。
●(独立性)进程既是系统中资源分配和保护的基本单位,也是系统调度的独立单位。凡是未建立进程的程序,都不能作为独立单位参与运行。
●(制约性)并发进程之间存在着制约性,进程在进行的关键点上需要相互等待或互通消息,以保证程序执行的可再现性。
●(并发性)进程可以并发地执行。对于一个单处理器的系统来说,m个进程P1,P2,…,Pm是轮流占用处理器并发地执行。例如可能是这样进行的:,进程P1执行了n1条指令后让出处理器给P2,P2执行了n2条指令后让出处理器给P3,…,Pm执行了nm条指令后让出处理器给P1,…。因此,进程的执行是可以被打断的,或者说,进程执行完一条指令后在执行下一条指令前,可能被迫让出处理器,由其它若干个进程执行若干条指令后才能再获得处理器而执行。
发明内容
为了对正在Java操作系统中运行的程序做出抽象,清晰地刻画动态系统的内在规律,有效管理和调度在Java操作系统中运行的程序,本发明的目的在于提供一种Java操作系统中进程的实现和进程状态转换的方法。
本发明解决技术问题所采用的技术方案是:
一种Java操作系统中进程的实现和进程状态转换的方法,为了便于管理进程,按进程在执行过程中的不同状况,Java操作系统定义不同的进程状态:
●新建态:对应于Java进程刚刚被创建的状态;
●运行态:Java进程占有处理器正在运行;
●就绪态:Java进程具备运行条件,等待系统分配处理器以便运行;
●等待态:Java进程不具备运行条件,正在等待某个事件的完成;
●挂起就绪态和挂起等待态:Java进程对换到磁盘镜像区中,暂时不参与进程调度;
●终止态:Java进程以后不再执行。
2、进程状态转换的具体方式如下:
空NULL—→新建态:执行一个程序,创建一个子进程;
新建态—→就绪态:Java操作系统完成了进程创建的必要操作,并且当前系统的性能和虚拟内存的容量均允许,提交到就绪态队列;
新建态—→挂起就绪态:考虑到系统当前资源状况和性能要求,可以决定新建的进程将被对换出去成为挂起就绪态;
挂起就绪态—→就绪态:当内存中没有就绪态进程,或者挂起就绪态进程具有比就绪态进程更高的优先级,系统将把挂起就绪态进程转换成就绪态;
就绪态—→挂起就绪态:Java操作系统根据当前资源状况和性能要求,也可以决定把就绪态进程将被对换出去成为挂起就绪态;
就绪态—→运行态:Java操作系统在就绪态进程队列里面选中一个进程,在中心处理器中运行;
运行态—→终止态:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结;
运行态—→挂起就绪态:当一个具有较高优先级的挂起等待态进程的等待事件结束后,它需要抢占了中心处理器,,而此时主存空间有不够,从而可能导致正在运行的进程转化为挂起就绪态。另外处于运行态的进程也可以自己挂起自己;
终止态—→空NULL:完成善后操作,退出执行;
就绪态—→终止态:Java操作系统中允许父进程终结子进程;
等待态—→终止态:Java操作系统中操作系统允许父进程终结子进程;
等待态—→挂起等待态:如果当前不存在就绪进程,那么至少有一个等待态进程将被对换出去成为挂起等待态;操作系统根据当前资源状况和性能要求,也可以决定把等待态进程将被对换出去成为挂起等待态;
挂起等待态—→挂起就绪态:引起进程等待的事件发生之后,相应的挂起等待态进程将转换为挂起就绪态;
挂起等待态—→等待态:当一个进程等待一个事件时,原则上时不需要把它调入内存的。但是当一个进程退出后,主存已经有了一大块自由空间,而某个挂起等待态进程具有较高的优先级并且操作系统已经得知导致它阻塞的事件即将结束,此时便发生了这一状态变化。
本发明具有的有益效果是:首先,在Java操作系统中这种进程实现和建立状态的方法,清晰刻画了进程的每一个状态,在某一个特定时刻,一个特定的进程只能处于一个特定的状态;其次,进程状态转换沿着固定的路线和状态导向进行,对于特定的触发条件和系统环境,Java操作系统中的进程向特定的状态进行状态切换。本Java操作系统的设计方案严格遵循了背景中所提及的进程结构性、共享性、动态性、独立性、制约性、并发性的特点,在Java操作系统的实现中得到了巨大的灵活性和可控制性。
附图说明
附图是本发明的流程图。
具体实施方式
1、一种应用于Java操作系统中进程实现和建立状态的方法,其特征在于为了便于管理进程,按进程在执行过程中的不同状况,Java操作系统定义不同的进程状态:
●新建态(new):对应于Java进程刚刚被创建的状态。
●运行态(running):Java进程占有处理器正在运行。
●就绪态(ready):Java进程具备运行条件,等待系统分配处理器以便运行。
●等待态(blocked):Java进程不具备运行条件,正在等待某个事件的完成。
●挂起(suspend):Java进程对换到磁盘镜像区中,暂时不参与进程调度
●终止态(exit):Java进程以后不再执行
一个Java进程在创建后将处于就绪状态。每个进程在执行过程中,任一时刻当且仅当处于上述状态之一。同时在一个进程执行过程中,它的状态将会发生改变。运行状态的进程将由于出现等待事件而进入的等待状态,当等待事件结束之后等待状态的进程将进入就绪状态,而处理器的调度策略又会引起运行状态和就绪状态之间的切换。
新建态对应于Java进程刚刚被创建的状态。创建一个进程要通过两个步骤,首先是为一个新进程创建必要的管理信息,然后是让该进程进入就绪态。此时进程将处于新建态,它并没有被提交执行,而是在等待操作系统完成创建进程的必要操作。Java操作系统有时将根据系统性能或主存容量的限制推迟新建态Java进程的提交。
进程的终止通过两个步骤,首先是等待操作系统进行善后,然后退出主存。当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,将进入终止态。进入终止态的进程以后不再执行,但依然临时保留在操作系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,Java操作系统建删除该进程。
由于进程的不断创建,系统的资源已经不能满足进程运行的要求,这个时候就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的。
2、按照附图说明所示,进程状态转换的具体方式如下:
在具有挂起进程功能的Java操作系统中,进程增加了两个新状态:挂起就绪态(ready,suspend)和挂起等待态(blocked,suspend)。挂起就绪态表明了进程具备运行条件但目前在二级存储器中,只有当它被对换到主存才能被调度执行。挂起等待态表明了进程正在等待某一个事件且在二级存储器中。
空NULL—→新建态:执行一个程序,创建一个子进程。
新建态—→就绪态:Java操作系统完成了进程创建的必要操作,并且当前系统的性能和虚拟内存的容量均允许,提交到就绪态队列。
新建态—→挂起就绪态:考虑到系统当前资源状况和性能要求,可以决定新建的进程将被对换出去成为挂起就绪态。
挂起就绪态—→就绪态:当内存中没有就绪态进程,或者挂起就绪态进程具有比就绪态进程更高的优先级,系统将把挂起就绪态进程转换成就绪态。
就绪态—→挂起就绪态:Java操作系统根据当前资源状况和性能要求,也可以决定把就绪态进程将被对换出去成为挂起就绪态。
就绪态—→运行态:Java操作系统在就绪态进程队列里面选中一个进程,在中心处理器中运行。
运行态—→终止态:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结。
运行态—→挂起就绪态:当一个具有较高优先级的挂起等待态进程的等待事件结束后,它需要抢占了中心处理器,,而此时主存空间有不够,从而可能导致正在运行的进程转化为挂起就绪态。另外处于运行态的进程也可以自己挂起自己。
终止态—→空NULL:完成善后操作,退出执行。
就绪态—→终止态:Java操作系统中允许父进程终结子进程。
等待态—→终止态:Java操作系统中操作系统允许父进程终结子进程。
等待态—→挂起等待态:如果当前不存在就绪进程,那么至少有一个等待态进程将被对换出去成为挂起等待态;操作系统根据当前资源状况和性能要求,也可以决定把等待态进程将被对换出去成为挂起等待态。
挂起等待态—→挂起就绪态:引起进程等待的事件发生之后,相应的挂起等待态进程将转换为挂起就绪态。
挂起等待态—→等待态:当一个进程等待一个事件时,原则上时不需要把它调入内存的。但是当一个进程退出后,主存已经有了一大块自由空间,而某个挂起等待态进程具有较高的优先级并且操作系统已经得知导致它阻塞的事件即将结束,此时便发生了这一状态变化。
引起进程挂起的原因是多样的,主要有:
●操作系统中的进程0均处于等待状态,处理器空闲,此时需要把一些进程对换出去,以腾出足够的内存装入就绪进程运行。
●进程竞争资源,导致系统资源不足,负荷过重,此时需要挂起部分进程以调整系统负荷。
●把一些定期执行的进程(如审计程序、监控程序、记账程序)对换出去,以减轻系统负荷。
●用户要求挂起自己的进程,以根据中间执行情况和中间结果进行某些调试、检查和改正。
●父进程要求挂起自己的后代进程,以进行某些检查和改正。
●当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障。
Java操作系统把一个挂起进程等同于不在主存的进程,因此挂起的进程将不参与进程调度直到它们被对换进主存。一个挂起进程具有如下特征:
●该进程不能立即被执行。
●挂起进程可能会等待一个事件,但所等待的事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。
●进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行。
●结束进程挂起状态的命令只能通过操作系统或父进程发出。
本Java操作系统软件已经向中华人民共和国版权局申请计算机软件著作权登记。
Claims (2)
1、一种Java操作系统中进程的实现和进程状态转换的方法,其特征在于为了便于管理进程,按进程在执行过程中的不同状况,Java操作系统定义不同的进程状态:
●新建态:对应于Java进程刚刚被创建的状态;
●运行态:Java进程占有处理器正在运行;
●就绪态:Java进程具备运行条件,等待系统分配处理器以便运行;
●等待态:Java进程不具备运行条件,正在等待某个事件的完成;
●挂起就绪态和挂起等待态:Java进程对换到磁盘镜像区中,暂时不参与进程调度;
●终止态:Java进程以后不再执行。
2、进程状态转换的具体方式如下:
空NULL—→新建态:执行一个程序,创建一个子进程;
新建态—→就绪态:Java操作系统完成了进程创建的必要操作,并且当前系统的性能和虚拟内存的容量均允许,提交到就绪态队列;
新建态—→挂起就绪态:考虑到系统当前资源状况和性能要求,可以决定新建的进程将被对换出去成为挂起就绪态;
挂起就绪态—→就绪态:当内存中没有就绪态进程,或者挂起就绪态进程具有比就绪态进程更高的优先级,系统将把挂起就绪态进程转换成就绪态;
就绪态—→挂起就绪态:Java操作系统根据当前资源状况和性能要求,也可以决定把就绪态进程将被对换出去成为挂起就绪态;
就绪态—→运行态:Java操作系统在就绪态进程队列里面选中一个进程,在中心处理器中运行;
运行态—→终止态:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结;
运行态—→挂起就绪态:当一个具有较高优先级的挂起等待态进程的等待事件结束后,它需要抢占了中心处理器,,而此时主存空间有不够,从而可能导致正在运行的进程转化为挂起就绪态。另外处于运行态的进程也可以自己挂起自己;
终止态—→空NULL:完成善后操作,退出执行;
就绪态—→终止态:Java操作系统中允许父进程终结子进程;
等待态—→终止态:Java操作系统中操作系统允许父进程终结子进程;
等待态—→挂起等待态:如果当前不存在就绪进程,那么至少有一个等待态进程将被对换出去成为挂起等待态;操作系统根据当前资源状况和性能要求,也可以决定把等待态进程将被对换出去成为挂起等待态;
挂起等待态—→挂起就绪态:引起进程等待的事件发生之后,相应的挂起等待态进程将转换为挂起就绪态;
挂起等待态—→等待态:当一个进程等待一个事件时,原则上时不需要把它调入内存的。但是当一个进程退出后,主存已经有了一大块自由空间,而某个挂起等待态进程具有较高的优先级并且操作系统已经得知导致它阻塞的事件即将结束,此时便发生了这一状态变化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610049099 CN1804806A (zh) | 2006-01-16 | 2006-01-16 | Java操作系统中进程的实现和进程状态转换的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610049099 CN1804806A (zh) | 2006-01-16 | 2006-01-16 | Java操作系统中进程的实现和进程状态转换的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1804806A true CN1804806A (zh) | 2006-07-19 |
Family
ID=36866840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610049099 Pending CN1804806A (zh) | 2006-01-16 | 2006-01-16 | Java操作系统中进程的实现和进程状态转换的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1804806A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081720A (zh) * | 2010-11-18 | 2011-06-01 | 腾讯科技(深圳)有限公司 | 一种实时防护中检测进程创建的方法及系统 |
CN105993001A (zh) * | 2014-03-20 | 2016-10-05 | 英特尔公司 | 用于在操作系统之间切换的技术 |
-
2006
- 2006-01-16 CN CN 200610049099 patent/CN1804806A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081720A (zh) * | 2010-11-18 | 2011-06-01 | 腾讯科技(深圳)有限公司 | 一种实时防护中检测进程创建的方法及系统 |
CN102081720B (zh) * | 2010-11-18 | 2013-01-02 | 腾讯科技(深圳)有限公司 | 一种实时防护中检测进程创建的方法及系统 |
CN105993001A (zh) * | 2014-03-20 | 2016-10-05 | 英特尔公司 | 用于在操作系统之间切换的技术 |
CN105993001B (zh) * | 2014-03-20 | 2021-02-09 | 英特尔公司 | 用于在操作系统之间切换的技术 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10891158B2 (en) | Task scheduling method and apparatus | |
CN100342342C (zh) | 支持多进程的Java虚拟机实现方法 | |
CN1801101A (zh) | Java操作系统中线程的实现和线程状态切换的方法 | |
JP5770721B2 (ja) | 情報処理システム | |
CN1873615A (zh) | 一种定时器任务服务方法 | |
CN1702623A (zh) | 一种微内核嵌入式实时操作系统的任务级资源管理方法 | |
JP2012522320A5 (zh) | ||
US20100082848A1 (en) | Increasing available fifo space to prevent messaging queue deadlocks in a dma environment | |
CN100346307C (zh) | Java操作系统中实时任务调度的实现方法 | |
CN1842769A (zh) | 用于在多线程微处理器中对并行指令流进行初始化的指令 | |
CN1601478A (zh) | 用于在被争夺的互斥锁上被动态限定的自旋线程的方法与系统 | |
JP2008186136A (ja) | 計算機システム | |
CN101414270A (zh) | 硬件辅助的辅核任务动态优先级调度的实现方法 | |
CN1818875A (zh) | 嵌入式操作系统分组硬实时任务调度的实现方法 | |
WO2014110702A1 (zh) | 协同并发式消息总线、主动构件组装模型及构件拆分方法 | |
CN102135903A (zh) | 基于硬件虚拟化的Xen实时性增强系统及其方法 | |
CN1783016A (zh) | 计算机系统 | |
JP4348639B2 (ja) | マルチプロセッサシステム、ワークロード管理方法 | |
CN1423456A (zh) | 共享线程实现和调度方法 | |
CN102662636B (zh) | 一种基于两层虚拟机的并行作业调度的方法 | |
CN109614222B (zh) | 一种多线程资源分配方法 | |
CN103677959A (zh) | 一种基于组播的虚拟机集群迁移方法及系统 | |
CN1804806A (zh) | Java操作系统中进程的实现和进程状态转换的方法 | |
CN1851652A (zh) | 嵌入式sram操作系统进程优先级轮转调度的实现方法 | |
CN109656716B (zh) | 一种Slurm作业调度方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |