嵌入式实时操作系统论文-Unix内核进程管理

嵌入式实时操作系统论文-Unix内核进程管理

ID:37760908

大小:32.20 KB

页数:8页

时间:2019-05-30

嵌入式实时操作系统论文-Unix内核进程管理_第1页
嵌入式实时操作系统论文-Unix内核进程管理_第2页
嵌入式实时操作系统论文-Unix内核进程管理_第3页
嵌入式实时操作系统论文-Unix内核进程管理_第4页
嵌入式实时操作系统论文-Unix内核进程管理_第5页
资源描述:

《嵌入式实时操作系统论文-Unix内核进程管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程名称嵌入式实时操作系统论文名称Unix内核进程管理Unix内核进程管理【摘要】内核本身并不是一个进程,而是进程的管理者。进程/内核模式假定:请求内核服务的进程使用所谓系统调用(systemcall)的特殊编程机制。每个系统调用都设置了一组识别进程请求的参数,然后执行与硬件相关的CPU指令完成从用户态到内核态的转换。【关键字】进程/内核模式进程实现可重入内核进程地址空间同步和临界区非抢占式内核避免死锁信号和进程间通信进程管理僵死进程进程组和登录会话内存管理内核内存分配器进程虚拟地址空间处理高速缓存设备驱动程序模

2、块分析进程的创建(FORK)进程调度进程的终止EXIT()【正文】Unix内核提供了应用程序可以运行的执行环境。因此,内核必须实现一组服务及相应的接口。应用程序使用这些接口,而且通常不会与硬件资源直接交互。现在,我们先从对内核管理的一些功能方面进行讲述,然后,分析进程模块。l进程管理的一些功能Ø进程/内核模式CPU既可以运行在用户态下,也可以运行在内核态下。实际上,一些CPU可以有两种以上的执行状态。例如,Intel80x86微处理器有四种不同的执行状态。但是,所有标准的Unix内核都仅仅利用了内核态和用户态。当

3、一个程序在用户态下执行时,它不能直接访问内核数据结构或内核的程序。然而,当应用程序在内核态下运行时,这些限制不再有效。每种CPU模型都为从用户态到内核态的转换提供了特殊的指令,反之亦然。一个程序执行时,大部分时间都处在用户态下,只有需要内核所提供的服务时才切换到内核态。当内核满足了用户程序的请求后,它让程序又回到用户态下。进程是动态的实体,在系统内通常只有有限的生存期。创建、撤消及同步现有进程的任务都委托给内核中的一组例程来完成。内核本身并不是一个进程,而是进程的管理者。进程/内核模式假定:请求内核服务的进程使用

4、所谓系统调用(systemcall)的特殊编程机制。每个系统调用都设置了一组识别进程请求的参数,然后执行与硬件相关的CPU指令完成从用户态到内核态的转换。在单处理器系统中,任何时候只有一个进程在运行,它要么处于用户态,要么处于内核态。如果进程运行在内核态,处理器就执行一些内核例程。Ø进程实现为了让内核管理进程,每个进程由一个进程描述符(processdescriptor)表示,这个描述符包含有关进程当前状态的信息。当内核暂停一个进程的执行时,就把几个相关处理器寄存器的内容保存在进程描述符中。当内核决定恢复执行一个

5、进程时,它用进程描述符中合适的字段来装载CPU寄存器。因为程序计数器中所存的值指向下一条将要执行的指令,所以进程从它停止的地方恢复执行。当一个进程不在CPU上执行时,它正在等待某一事件。Unix内核可以区分很多等待状态,这些等待状态通常由进程描述符队列实现。每个(可能为空)队列对应一组等待特定事件的进程。Ø可重入内核所有的Unix内核都是可重入的(reentrant),这意味着若干个进程可以同时在内核态下执行。当然,在单处理器系统上只有一个进程在真正运行,但是有许多进程可能在等待CPU或某一I/O操作完成时在内核

6、态下被阻塞。例如,当内核代表某一进程发出一个读磁盘请求后,就让磁盘控制器处理这个请求并且恢复执行其他进程。当设备满足了读请求时,有一个中断就会通知内核,从而以前的进程可以恢复执行。提供可重入的一种方式是编写函数,以便这些函数只能修改局部变量,而不能改变全局数据结构,这样的函数叫可重入函数。但是可重入内核不仅仅局限于这样的可重入函数(尽管一些实时内核正是如此实现的)。相反,可重入内核可以包含非重入函数,并且利用锁机制保证一次只有一个进程执行一个非重入函数。如果一个硬件中断发生,可重入内核能挂起当前正在执行的进程,即

7、使这个进程处于内核态。这种能力是非常重要的,因为这能提高发出中断的设备控制器的吞吐量。一旦设备已发出一个中断,它就一直等待直到CPU应答它为止。如果内核能够快速应答,设备控制器在CPU处理中断时就能执行其他任务。Ø进程地址空间每个进程运行在它的私有地址空间。在用户态下运行的进程涉及到私有栈、数据区和代码区。当在内核态运行时,进程访问内核的数据区和代码区,但使用另外的私有栈。因为内核是可重入的,因此几个内核控制路径(每个都与不同的进程相关)可以轮流执行。在这种情况下,每个内核控制路径都引用它自己的私有内核栈。尽管看

8、起来每个进程访问一个私有地址空间,但有时进程之间也共享部分地址空间。在一些情况下,这种共享由进程显式地提出;在另外一些情况下,由内核自动完成共享以节约内存。进程间也能共享部分地址空间,以实现一种进程间通信,这就是由SystemV引入并且已经被Linux支持的“共享内存”技术。最后,Linux支持mmap()系统调用,该系统调用允许存放在块设备上的文件或信息的一部分映射到进

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。