嵌入式系统 第六章 嵌入式Linux操作系统.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:87 大小:1.8MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

嵌入式系统 第六章 嵌入式Linux操作系统.ppt

嵌入式系统第六章嵌入式Linux操作系统.ppt

预览

免费试读已结束,剩余 77 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章嵌入式Linux操作系统5.1与Linux相关术语5.1与Linux相关术语5.2嵌入式Linux操作系统Linux具有的特点完整的Linux架构图进程状态进程在生存周期中的各种状态及状态的转换。Linux系统的进程状态模型的各种状态:用户状态:进程在用户状态下运行的状态。内核状态:进程在内核状态下运行的状态。内存中就绪:进程没有执行,但处于就绪状态,只要内核调度它,就可以执行。内存中睡眠:进程正在睡眠并且进程存储在内存中,没有被交换到SWAP设备。就绪且换出:进程处于就绪状态,但是必须把它换入内存,内核才能再次调度它运行。睡眠且换出:进程正在睡眠,且被换出内存。被抢先:进程从内核状态返回用户状态时,内核抢先于它做了上下文切换,调度了另一个进程。原先这个进程就处于被抢先状态。创建状态:进程刚被创建。该进程存在,但既不是就绪状态,也不是睡眠状态。这个状态是除了进程0以外的所有进程的最初状态。僵死状态(zombie):进程调用exit结束,进程不再存在,但在进程表项中仍有记录,该记录可由父进程收集。在Linux中,进程是以进程号PID(ProcessID)作为标示。任何对进程进行的操作都要给与其相应的PID号。每个进程都属于一个用户,进程要配备其所属的用户编号UID。此外,每个进程都属于多个用户组,所以进程还要配备其归属的用户组编号GID的数组。进程运行的环境成为进程上下文。Linux中进程的上下文由进程控制块PCB(ProcessControlBlock)、正文段、数据段以及用户堆栈组成。其中,正文段存放该进程的可执行代码,数据段存放进程中静态产生的数据结构,而PCB包括进程的编号、状态、优先级以及正文段和数据段中数据分布的大概情况。一个称作进程表(ProcessTable)的链表结构将系统中所有的PCB块联系起来。启动一个进程有两个主要途径:手工启动和调度启动,后者是事先进行设置,根据用户要求自行启动。由用户输入命令,直接启动一个进程便是手工启动进程。但手工启动进程又可以分为很多种,根据启动的进程类型不同、性质不同,实际结果也不一样。(1)前台启动前台启动是手工启动一个进程的最常用的方式。用户键入一个命令“df”,就已经启动了一个进程,而且是一个前台的进程。(2)后台启动直接从后台手工启动一个进程用得比较少一些,除非是该进程甚为耗时,且用户也不急着需要结果。Linux还支持实时进程。这些进程必须对外部时间作出快速反应(这就是“实时”的意思),系统将区分对待这些进程和其他进程。虽然task_struct数据结构庞大而复杂,但它可以分成一些功能组成部分:State进程在执行过程中会根据环境来改变state。SchedulingInformation调度器需要这些信息以便判定系统中哪个进程最迫切需要运行。Identifiers系统中每个进程都有进程标志。进程标志并不是task数组的索引,它仅仅是个数字。Inter-ProcessCommunicationLinux支持经典的UnixIPC机制。LinksLinux系统中所有进程都是相互联系的。TimesandTimers核心需要记录进程的创建时间以及在其生命期中消耗的CPU时间。Filesystem进程可以自由地打开或关闭文件,进程的task_struct结构中包含一个指向每个打开文件描叙符的指针以及指向两个VFSinode的指针。Virtualmemory多数进程都有一些虚拟内存(核心线程和后台进程没有),Linux核心必须跟踪虚拟内存与系统物理内存的映射关系。ProcessorSpecificContext进程可以认为是系统当前状态的总和。task_struct结构中有四对进程和组标志符:uid,gid表示运行进程的用户标志符和组标志符。effectiveuidandgid有些程序可以在执行过程中将执行进程的uid和gid改成其程序自身的uid和gid(保存在描叙可执行映象的VFSinode属性中)。这些程序被称为setuid程序,常在严格控制对某些服务的访问时使用,特别是那些为别的进程而运行的进程,例如网络后台进程。有效uid和gid是那些setuid执行过程在执行时变化出的uid和gid。当进程试图访问特权数据或代码时,核心将检查进程的有效gid和uid。filesystemuidandgid它们和有效uid和gid相似但用来检验进程的文件系统访问权限。如运行在用户模式下的NFS服务器存取文件时,NFS文件系统将使用这些标志符。此例中只有文件系统uid和gid发生了改变(而非有效uid和gid)。这样可以避免恶意用户向NFS服务器发送KILL信号。