|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式操作系统基础知识 > 处理器管理 > 多道程序 >
|
相关知识点:41个
|
|
|
|
嵌入式操作系统可以分为两种类型:单道程序设计和多道程序设计。所谓单道程序设计,就是在操作系统当中,在任何时候只能有一个程序在运行。所谓多道程序设计,就是在操作系统当中,允许多个程序同时存在并运行。在现代操作系统当中,为了提高系统资源的利用率,普遍采用多道程序技术。
|
|
|
下图是单道和多道程序设计的一个例子。甲、乙两个程序,它们在运行过程中都要用到CPU和输入/输出设备。如下图所示,我们用不同的方框来表示这两个程序对两种资源的使用情况,方框的长度表示使用的时间。
|
|
|
|
|
在单道程序设计的环境下,在任何时候,系统中只能有一个程序在运行,因此,这两个程序的执行只能顺序运行:首先执行程序甲,从t0时刻开始,到t6时刻结束。然后再执行程序乙,从t6时刻开始,一直到它所有的工作都已完成。
|
|
|
在多道程序设计的环境下,允许多个程序同时运行,当一个程序在访问I/O设备时,会主动把CPU交出来,交由另一个程序去运行,这样就提高了系统资源的使用效率。具体来说,首先,在t0时刻,甲和乙都打算运行,它们的第一件事情都是进行I/O操作,由于资源有限,只能满足一个程序的请求。假设甲的请求得到满足,它先开始执行,从t0到t1,甲一直在使用I/O设备,在此期间,乙一直处于等待状态。在到达了t1时刻后,甲已经执行完了I/O操作,下一步要执行一小段CPU操作。这样,它就把刚刚占用的I/O设备释放出来,交给程序乙去使用。因此,在t1到t2期间,程序甲在使用CPU,程序乙在使用I/O设备,它们互不影响。在到达t2时刻后,甲又要执行一小段I/O操作,而乙恰巧要执行一小段CPU操作,因此,在t2到t3期间,它们相互交换了资源,继续执行。同样的情形也发生在t3时刻和t4时刻。但是在t5时刻,甲已经使用完了I/O设备,而乙仍然在使用CPU,因此甲只能处于等待状态,等到t6时刻再交换资源。这样一直进行下去,在t7时刻,甲执行完毕,在t8时刻,乙也执行完毕。显然,在多道程序设计的操作系统中,由于CPU和输入/输出设备的使用是并行进行的,因此在总的执行时间上要明显少于单道程序系统。
|
|
|