创建状态和退出状态描述进程创建的过程和进程退出的过程。3)阻塞状态:当进程由于等待I/O操作或进程同步等条件而暂停运行时,它处于阻塞状态。由于性能、内存等原因,系统会限制并发进程总数。从就绪状态或阻塞状态到结束状态的释放转换可能是由于多种原因引发,如父进程可在任何时间终止子进程。分布式操作系统强调单一操作系统对整个分布式系统的管理、调度。
进程的状态转换可以出现等待到运行,就绪到等待吗
进程在运行过程中主要是在就绪、运行和阻塞三种状态间进行转换。创建状态和退出状态描述进程创建的过程和进程退出的过程。1)运行状态(Running):进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。
2)就绪状态(Ready):进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排人低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。
3)阻塞状态(Blocked):当进程由于等待I/O操作或进程同步等条件而暂停运行时,它处于阻塞状态。
4)创建状态(New):进程正在创建过程中,还不能运行。操作系统在创建状态要进行的工作包括分配和建立进程控制块表项、建立资源表格(如打开文件表)并分配资源、加载程序并建立地址空间表等。
5)退出状态(Exit):进程已结束运行,回收除进程控制块之外的其他资源,并让其他进程从进程控制块中收集有关信息(如记帐和将退出代码传递给父进程)。
五状态进程模型中的状态转换主要包括下列几种。操作系统中多个进程的并发执行是通过调度与超时两种转换间的循环,或调度、等待事件和事件出现三种转换间的循环来描述的。
1)创建新进程:创建一个新进程,以运行一个程序。创建新进程的可能原因包括用户登录、操作系统创建以提供某项服务、批处理作业等。
2)收容(Admit,也称为提交):收容一个新进程,进入就绪状态。由于性能、内存等原因,系统会限制并发进程总数。
3)调度运行(Dispatch):从就绪进程表中选择一个进程,进入运行状态。
4)释放(Release):由于进程完成或失败而终止进程运行,进入结束状态。
为了简洁,状态变迁图中只画出了运行状态到退出状态间的释放转换;但实际上,还存在从就绪状态或阻塞状态到退出状态的释放转换。运行到结束的转换可分为正常退出(Exit)和异常退出(abort);其中异常退出是指进程执行超时、内存不够、非法指令或地址访问、I/0操作失败、被其他进程所终止等原因而退出。从就绪状态或阻塞状态到结束状态的释放转换可能是由于多种原因引发,如父进程可在任何时间终止子进程。
5)超时(Timeout):由于用完时间片或高优先级进程就绪等原因导致进程暂停运行
6)事件等待(Event Wait):进程要求的事件未出现而进入阻塞;可能的原因包括申请系统服务或资源、通信、I/O操作等。
7)事件出现(EventOccurs):进程等待的事件出现;如操作完成、申请成功等。
更多资料可参考:
软件工程专业
我就是软件工程专业的。当时我的第一志愿不是软件工程,而是被调剂的,这个专业学费高。给你介绍一下湖南大学软件工程专业的开课情况
第一学期:
微积分,数学,物理,化学,英语等基础课,因为现在中国提倡通式教育。鄙视教育部的!
第二学期:
除了基础课,还开设了c++。
第三学期:
仍然是基础课,不过这些课程都是和软件工程密切相关的,比如离散数学,数值计算与最优化,线性代数。
第四学期:
这个时候所有的专业课都来了。有数据结构,计算机组成,数据库,数字设计,操作系统,计算及图形学.
给你的建议:
学习语言的话当仁不让首先就是c语言。所有的语言都是相似的,主要掌握的还是数据结构,就是算法,建议你从c语言入门。推荐的书最经典的当然还是谭浩强的c语言。
其实你没有必要急的,大一建议你把基础打牢了,这样以后学习才有后劲。
另外想提示你的是:自己独立学习一门语言是比较困难的,最好找个人知道一下,或者加个qq群向前辈请教一下。
哥向来鄙视复制的人。其实建议你还是学习一下语言比较好。因为这样你才能够深刻的了解哪些基础知识是自己必须的,哪些是没有必要学习的。建议开始上机多操作,找一下手感。