实时操作系统复习重点整理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进程切换部分:完成两项任务,首先从正在运行的进程收回处理器;然后再把处理器让给已经确定可以使用处理器的就绪进程来占用。
调度算法:时间片轮转法:要求系统中的每个进程轮流占用处理器运行一个相同的时间片。
优先级调度法:按进程的优先级别来确定待运行的进程。
多级反馈队列调度法:把系统中的所有进程分成若干的具有不同优先级的组,同一组的进程都具有与所在组同样的优先级别,并且把每组进程组织成一个先进先出的队列。在设计时,按优先级别越高的组中的进程应得时间片越短的原则分配时间。
5.实时系统的概念及特点,实时系统必须要满足的条件,
概念:如果计算机系统完成任务所需的时间可预知,并且小于完成任务所要求的最低时限的系统就叫实时系统。
特点:(1)实时任务具有确切的完成期限(2)实时任务的活动是不可逆的(3)实时任务大多由外部事件激活
条件:(1)实时操作系统必须是多任务的(2)内核应该是可剥夺的
通信就需要依赖中间媒介。在μC/OS-II中,使用信号量、消息邮箱和消息队列这些数据结构来作为中间媒介进行通信。
14.掌握各种同步与通信方法的区别以及他们各自适用的情况?
参考课本9.1.2节事件
15.优先级反转问题以及在ucos-II中的解决方法?
优先级反转:任务优先级低的任务先于任务优先级高的任务运行
特征:动态性、并发性、独立性、异步性、结构性
组成:程序代码、数据集合、进程控制块
状态转换:
进程控制块:操作系统感知和控制一个进程的依据。
线程:线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
次低优先级的任务:统计任务。这个任务每秒计算一次处理器在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量OSCPUUsage中,以便应用程序通过他来了解处理器的利用率。
13.任务的同步与通信方法有哪些?为什么要同步与通信?
为了实现各任务之间的合作和无冲突的运行,在有关联的任务之间必须建立一些制约关系。这些制约关系主要有两种:直接制约关系和间接制约关系。直接制约关系源于任务之间的合作,间接制约关系源于对资源的共享。因此,在多任务合作工作的过程中,操作系统应解决两个问题:一是各任务间应具有一种互斥关系;二是相关的任务在执行上要有先后次序。任务之间的这种制约性的合作运行机制叫做任务间的同步。
初始化:OSInit()
创建:OSTaskCreate()
切换:
11.μC/OS-II调度算法中如何确定优先级最高的就绪任务,如何保证实时性的?
内容太多,自己看课本吧
12.μC/OS-II中最低优先级和次低优先级任务的功能,ucos-II最多支持多少个任务?
最低优先级的任务:空闲任务。该任务几乎不做任何事情,只是对系统定义的一个空闲任务运行次数计数器OSIdelCtr进行加1操作。当然,这个空闲任务是系统中所有任务中优先级别最低的一个,这样就保证一旦出现其他任务就绪时,即可马上终止空闲任务而去运行那个就绪的任务。
4.进程调度以及常见的调度方法?
进程调度:是指在系统中所有的就绪进程里,按照某种策略确定一个合适的进程并让处理器运行它。
分类:可剥夺方式、不可剥夺方式
调度器或分配器:分为调度部分和进程切换部分
调度部分:完成两项任务,一是把当前进程的状态信息记录在进程的控制块中;二是按照某种策略确定应获得处理器使用权的就绪进程。
OS_CPU_A.ASM:集中了所有与处理器相关的汇编语言代码模块。
OS_CPU_C.C:集中了所有与处理器相关的C语言代码模块。
系统内核的各种服务文件:
OS_CORE.C//核心服务模块文件
OS_FLAG.C//信号量集服务模块文件
OS_MBOX.C//消息邮箱服务模块文件
OS_MEM.C//存储管理服务模块文件
(3)可达截止期限最早算法
(4)最小裕度算法
实时进程的可调度性:指的是多个实时进程是否可经过适当的调度使它们都能正确的完成工作。
在不考虑系统的其他开销时,对于使用单调速率算法的周期性进程集,若满足:
则这个进程集被称为是可调读的。
7.实时时钟的作用?
(1)在按时间片实施调度的实时系统中,如果没有时钟中断,就有可能使系统停止进程调度,从而也就不能实现所谓的并发运行。
商业:VxWorksQNXpSOSWindows CE
9.μC/OS-II的文件结构?
与应用程序相关的文件:INCLUDES.H:是μC/OS-II的主头文件,在每个.c文件中都要包含这个文件。这个文件把
工程项目中应包含的头文件都集中到了一起。
OS_CFG.H:配置文件。μC/OS-II是依靠编译时的条件编译来实现软件系统的裁剪性的,
静态优先级算法:给系统中所有的进程都静态的分配一个优先级
动态优先级算法:根据进源自文库的资源需求动态地分配进程的优先级
调度算法:(1)单调速率RM算法:一种典型的静态优先级调度算法
主要是用来处理周期性实时进程的,它根据进程执行周期的长短来决定进程的优先级
(2)截止期限最早优先算法:进程的截止期限越近,这个进程紧急程度越高。因此,在确定系统中进程优先级别时是按进程截止期限的远近来确定的。
实时操作系统复习重点整理
1.操作系统概念、功能?
概念:操作系统:计算机系统硬件的软件封装,使计算机成为功能强大的虚拟计算机,使应用程序可以使用软件的方式使用计算机的底层功能,提高程序的执行效率和增强计算机的安全性,负责对计算机的资源进行管理。
功能:(1)操作系统是硬件的封装和功能的扩充
◇从计算机的角度来看,操作系统扩充了计算机硬件的功能,使得带有操作系统的计算机比只有硬件的计算机功能更强,更容易编程。
出现的原因:因为一个优先级别较低的任务在获得了信号量使用共享资源期间被具有较高优先级的任务所打断而
不能释放信号量,从而使正在等待这个信号量的更高优先级的任务因得不到信号量而被迫处于等待状态,在这个等待期间,就让优先级低的任务先运行了。
解决的办法:使获得信号量的任务的优先级在使用共享资源期间暂时提升到所有任务最高优先级的高一个级别上,
因为高级语言不支持中断,所以达到上述目的的一个方法就是用中断的方法来实现内核模块的调用,从而使高级语言应用程序不可能直接接触到内核模块。
另外就是进程切换的实现问题。进程切换实质上也是处理器执行流程的转移,但这种转移不是由正在执行的进程决定的,所以也要用中断技术来实现。
因此,操作系统内核的运转是由中断驱动的,中断时内核的声明之源。
以使该任务不被其他任务多打断,从而能尽快的使用完共享资源并释放信号量,然后在释放了信号量之后,再恢复该任务原来的优先级别。在μC/OS-II中,通过互斥信号量来解决这个问题。
16.信号量集是为了解决什么问题?
在实际应用中,任务常常需要与多个事件同步,即要根据多个信号量的组合作用的结果来决定任务的运行方式。μC/OS-II为了实现多个信号量组合的功能定义了一种特殊的数据结构——信号量集。
(3)任务的切换时间应与系统中的任务数无关并且可预知
(4)系统提供所有服务所需的时间应尽可能短并且是可预知的
(5)中断延迟的时间可预知并尽可能短
6.实时调度算法,实时进程的可调度性?
为了使内核是可剥夺的,实时系统的调度器必须采用基于优先级的调度算法。
根据不同的优先级分配方法,基于优先级的调度算法可分为静态优先级调度算法和动态优先级调度算法
OS_MUTEX.C//互斥型信号量服务模块文件
OS_Q.C//消息队列服务模块文件
OS_SEM.C//信号量服务模块文件
OS_TASK.C//任务管理服务模块文件
OS_TIME.C//时间管理服务模块文件
uCOS_II.C//
uCOS_II.H//与应用相关的配置文件
10.μC/OS-II中系统的初始化、任务的创建、任务的5种状态切换?
◇从应用程序设计人员的角度来看,操作系统是计算机硬件系统与应用程序之间的接口
(2)操作系统是计算机资源的管理者
◇处理器的管理:中断管理和进程调度
◇存储器的管理
◇I/O设备的管理
◇文件的管理
◇网络和通信的管理
◇提供用户接口
2.进程、线程概念及其区别?
进程:定义:可并发执行且具有独立功能的程序在一个数据集合上的运行过程,是操作系统进行资源分配和保护的基本单位。
(2)在每次中断服务程序中,要对处在等待或睡眠中的进程进行查询,以观察其是否已经到了等待或睡眠的截止时间:如果到了,则要负责唤醒该进程;如果没到,则要负责修改进程等待或睡眠的时间记录。
(3)在实际应用中,有许多进程需要周期性地运行。
8.至少知道5种嵌入式操作系统的名字?
开源:μC/OS-II、RTLinux、ARM-Linux、KURT、TimeSysLinux、Mach
即把用户可裁剪的代码段写在#if和#endif预编译指令之间,在编译时根据#if预编译指令后面常数的值来确定是否该代码段进行编译。
此外,该文件还包括与项目有关的其他一些常数的设置。
与计算机硬件相关的文件:OS_CPU.H:这是一个与计算机硬件相关的文件,其中有些内容在系统移植时需要根
据工程项目的实际使用的处理器来进行修改,有的则无需修改。
区别:在多线程操作系统中,进程是资源分配的基本单位,线程是系统调度的基本单位,进程是线程的组成部分,同一进程中的所有线程共享其所获得的资源。
3.为什么说内核是由中断驱动的?
由于操作系统内核的重要性,为防止因用户程序错误调用内核模块而使系统崩溃,所以对操作系统的内核必须加以特殊保护。解决这个问题的一个方法就是,在实现方法上把内核模块的调用与应用程序的一般过程调用区别开来,并对一般用户不公开内核模块的调用方法,从而使应用程序不能直接调用内核模块。
调度算法:时间片轮转法:要求系统中的每个进程轮流占用处理器运行一个相同的时间片。
优先级调度法:按进程的优先级别来确定待运行的进程。
多级反馈队列调度法:把系统中的所有进程分成若干的具有不同优先级的组,同一组的进程都具有与所在组同样的优先级别,并且把每组进程组织成一个先进先出的队列。在设计时,按优先级别越高的组中的进程应得时间片越短的原则分配时间。
5.实时系统的概念及特点,实时系统必须要满足的条件,
概念:如果计算机系统完成任务所需的时间可预知,并且小于完成任务所要求的最低时限的系统就叫实时系统。
特点:(1)实时任务具有确切的完成期限(2)实时任务的活动是不可逆的(3)实时任务大多由外部事件激活
条件:(1)实时操作系统必须是多任务的(2)内核应该是可剥夺的
通信就需要依赖中间媒介。在μC/OS-II中,使用信号量、消息邮箱和消息队列这些数据结构来作为中间媒介进行通信。
14.掌握各种同步与通信方法的区别以及他们各自适用的情况?
参考课本9.1.2节事件
15.优先级反转问题以及在ucos-II中的解决方法?
优先级反转:任务优先级低的任务先于任务优先级高的任务运行
特征:动态性、并发性、独立性、异步性、结构性
组成:程序代码、数据集合、进程控制块
状态转换:
进程控制块:操作系统感知和控制一个进程的依据。
线程:线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
次低优先级的任务:统计任务。这个任务每秒计算一次处理器在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量OSCPUUsage中,以便应用程序通过他来了解处理器的利用率。
13.任务的同步与通信方法有哪些?为什么要同步与通信?
为了实现各任务之间的合作和无冲突的运行,在有关联的任务之间必须建立一些制约关系。这些制约关系主要有两种:直接制约关系和间接制约关系。直接制约关系源于任务之间的合作,间接制约关系源于对资源的共享。因此,在多任务合作工作的过程中,操作系统应解决两个问题:一是各任务间应具有一种互斥关系;二是相关的任务在执行上要有先后次序。任务之间的这种制约性的合作运行机制叫做任务间的同步。
初始化:OSInit()
创建:OSTaskCreate()
切换:
11.μC/OS-II调度算法中如何确定优先级最高的就绪任务,如何保证实时性的?
内容太多,自己看课本吧
12.μC/OS-II中最低优先级和次低优先级任务的功能,ucos-II最多支持多少个任务?
最低优先级的任务:空闲任务。该任务几乎不做任何事情,只是对系统定义的一个空闲任务运行次数计数器OSIdelCtr进行加1操作。当然,这个空闲任务是系统中所有任务中优先级别最低的一个,这样就保证一旦出现其他任务就绪时,即可马上终止空闲任务而去运行那个就绪的任务。
4.进程调度以及常见的调度方法?
进程调度:是指在系统中所有的就绪进程里,按照某种策略确定一个合适的进程并让处理器运行它。
分类:可剥夺方式、不可剥夺方式
调度器或分配器:分为调度部分和进程切换部分
调度部分:完成两项任务,一是把当前进程的状态信息记录在进程的控制块中;二是按照某种策略确定应获得处理器使用权的就绪进程。
OS_CPU_A.ASM:集中了所有与处理器相关的汇编语言代码模块。
OS_CPU_C.C:集中了所有与处理器相关的C语言代码模块。
系统内核的各种服务文件:
OS_CORE.C//核心服务模块文件
OS_FLAG.C//信号量集服务模块文件
OS_MBOX.C//消息邮箱服务模块文件
OS_MEM.C//存储管理服务模块文件
(3)可达截止期限最早算法
(4)最小裕度算法
实时进程的可调度性:指的是多个实时进程是否可经过适当的调度使它们都能正确的完成工作。
在不考虑系统的其他开销时,对于使用单调速率算法的周期性进程集,若满足:
则这个进程集被称为是可调读的。
7.实时时钟的作用?
(1)在按时间片实施调度的实时系统中,如果没有时钟中断,就有可能使系统停止进程调度,从而也就不能实现所谓的并发运行。
商业:VxWorksQNXpSOSWindows CE
9.μC/OS-II的文件结构?
与应用程序相关的文件:INCLUDES.H:是μC/OS-II的主头文件,在每个.c文件中都要包含这个文件。这个文件把
工程项目中应包含的头文件都集中到了一起。
OS_CFG.H:配置文件。μC/OS-II是依靠编译时的条件编译来实现软件系统的裁剪性的,
静态优先级算法:给系统中所有的进程都静态的分配一个优先级
动态优先级算法:根据进源自文库的资源需求动态地分配进程的优先级
调度算法:(1)单调速率RM算法:一种典型的静态优先级调度算法
主要是用来处理周期性实时进程的,它根据进程执行周期的长短来决定进程的优先级
(2)截止期限最早优先算法:进程的截止期限越近,这个进程紧急程度越高。因此,在确定系统中进程优先级别时是按进程截止期限的远近来确定的。
实时操作系统复习重点整理
1.操作系统概念、功能?
概念:操作系统:计算机系统硬件的软件封装,使计算机成为功能强大的虚拟计算机,使应用程序可以使用软件的方式使用计算机的底层功能,提高程序的执行效率和增强计算机的安全性,负责对计算机的资源进行管理。
功能:(1)操作系统是硬件的封装和功能的扩充
◇从计算机的角度来看,操作系统扩充了计算机硬件的功能,使得带有操作系统的计算机比只有硬件的计算机功能更强,更容易编程。
出现的原因:因为一个优先级别较低的任务在获得了信号量使用共享资源期间被具有较高优先级的任务所打断而
不能释放信号量,从而使正在等待这个信号量的更高优先级的任务因得不到信号量而被迫处于等待状态,在这个等待期间,就让优先级低的任务先运行了。
解决的办法:使获得信号量的任务的优先级在使用共享资源期间暂时提升到所有任务最高优先级的高一个级别上,
因为高级语言不支持中断,所以达到上述目的的一个方法就是用中断的方法来实现内核模块的调用,从而使高级语言应用程序不可能直接接触到内核模块。
另外就是进程切换的实现问题。进程切换实质上也是处理器执行流程的转移,但这种转移不是由正在执行的进程决定的,所以也要用中断技术来实现。
因此,操作系统内核的运转是由中断驱动的,中断时内核的声明之源。
以使该任务不被其他任务多打断,从而能尽快的使用完共享资源并释放信号量,然后在释放了信号量之后,再恢复该任务原来的优先级别。在μC/OS-II中,通过互斥信号量来解决这个问题。
16.信号量集是为了解决什么问题?
在实际应用中,任务常常需要与多个事件同步,即要根据多个信号量的组合作用的结果来决定任务的运行方式。μC/OS-II为了实现多个信号量组合的功能定义了一种特殊的数据结构——信号量集。
(3)任务的切换时间应与系统中的任务数无关并且可预知
(4)系统提供所有服务所需的时间应尽可能短并且是可预知的
(5)中断延迟的时间可预知并尽可能短
6.实时调度算法,实时进程的可调度性?
为了使内核是可剥夺的,实时系统的调度器必须采用基于优先级的调度算法。
根据不同的优先级分配方法,基于优先级的调度算法可分为静态优先级调度算法和动态优先级调度算法
OS_MUTEX.C//互斥型信号量服务模块文件
OS_Q.C//消息队列服务模块文件
OS_SEM.C//信号量服务模块文件
OS_TASK.C//任务管理服务模块文件
OS_TIME.C//时间管理服务模块文件
uCOS_II.C//
uCOS_II.H//与应用相关的配置文件
10.μC/OS-II中系统的初始化、任务的创建、任务的5种状态切换?
◇从应用程序设计人员的角度来看,操作系统是计算机硬件系统与应用程序之间的接口
(2)操作系统是计算机资源的管理者
◇处理器的管理:中断管理和进程调度
◇存储器的管理
◇I/O设备的管理
◇文件的管理
◇网络和通信的管理
◇提供用户接口
2.进程、线程概念及其区别?
进程:定义:可并发执行且具有独立功能的程序在一个数据集合上的运行过程,是操作系统进行资源分配和保护的基本单位。
(2)在每次中断服务程序中,要对处在等待或睡眠中的进程进行查询,以观察其是否已经到了等待或睡眠的截止时间:如果到了,则要负责唤醒该进程;如果没到,则要负责修改进程等待或睡眠的时间记录。
(3)在实际应用中,有许多进程需要周期性地运行。
8.至少知道5种嵌入式操作系统的名字?
开源:μC/OS-II、RTLinux、ARM-Linux、KURT、TimeSysLinux、Mach
即把用户可裁剪的代码段写在#if和#endif预编译指令之间,在编译时根据#if预编译指令后面常数的值来确定是否该代码段进行编译。
此外,该文件还包括与项目有关的其他一些常数的设置。
与计算机硬件相关的文件:OS_CPU.H:这是一个与计算机硬件相关的文件,其中有些内容在系统移植时需要根
据工程项目的实际使用的处理器来进行修改,有的则无需修改。
区别:在多线程操作系统中,进程是资源分配的基本单位,线程是系统调度的基本单位,进程是线程的组成部分,同一进程中的所有线程共享其所获得的资源。
3.为什么说内核是由中断驱动的?
由于操作系统内核的重要性,为防止因用户程序错误调用内核模块而使系统崩溃,所以对操作系统的内核必须加以特殊保护。解决这个问题的一个方法就是,在实现方法上把内核模块的调用与应用程序的一般过程调用区别开来,并对一般用户不公开内核模块的调用方法,从而使应用程序不能直接调用内核模块。