LINUX平台软件开发及跨平台软件开发技术介绍.ppt_第1页
LINUX平台软件开发及跨平台软件开发技术介绍.ppt_第2页
LINUX平台软件开发及跨平台软件开发技术介绍.ppt_第3页
LINUX平台软件开发及跨平台软件开发技术介绍.ppt_第4页
LINUX平台软件开发及跨平台软件开发技术介绍.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LINUX平台软件开发及跨平台软件开发技术介绍,丰晓东 2011117,一:LINUX与VXWORS的平台特点,VXWORKS :微内核 1:无用户态,内核态的区别 2:所有任务运行在同一地址空间 3:用户程序通过函数调用而不是系统调用的方式请求内核服务 4:所有这些特点,使得VXWORKS的内核更具实时性,小型化,和高效率的特点,一:LINUX与VXWORS的平台特点,LINUX宏内核 1:存在着用户态,内核态的隔离 2:用户态程序通过系统调用访问内核的功能。 3:不同的进程运行在不同的地址空间 所有这些特点,使得LINUX下的用户进程的错误不易波及到内核,以及其它的用户进程,提高了系统的安

2、全性,可靠性,及稳定性。,一:LINUX与VXWORS的平台特点,linux用户程序与内核交互信息的方式,一: LINUX与VXWORS的平台特点,linux用户程序与内核交互信息的实例,一: LINUX与VXWORS的平台特点,案例 修改LINUX系统的消息队列的最大消息队列 数: echo 18 /proc/sys/kernel/msgmni 问题1 Linux下用户程序与内核交互的几种方式 问题2 你认为两个操作系统的各自最大特点是什么?,二:LINUX 与VXWORKS 的平台差异,LINUX下的进程 进程的基本属性: 通过ps ef 可以看到一个进程的 UID所有者 PID进程ID

3、PPID 父进程ID CMD 对应程序名,二: LINUX 与VXWORKS 的平台差异 linux的进程树,二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程状态),Init 进程还负责管理系统中的“孤儿”进程。如果某个进程创建子进程之后,在子进程终止之前终止,则子进程成为孤儿进程。init 进程负责“收养”该进程,即孤儿进程会立即成为 init 进程的子进程。 一个已经终止,但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源如进程表项)的进程被称为僵死进程(Zombie Process) 僵尸进程将会导致资源浪费,而孤儿则不会,二: LINU

4、X 与VXWORKS 的平台差异 ( LINUX下的进程创建),1) 系统初始化阶段:在操作系统的初始化过程中,将程序名写入相应的启动脚本中。 2)用户与操作系统的交互操作过程中:在操作系统提供shell 中,输入程序名。 原理:shell 是一个进程,在shell下输入一个命令(程序名),实际上是由shell 进程创建一个子进程(fork)来执行这条命令( exec ) 。 3)编程:,二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建),fork( ) 用于创建一个子进程 1:子进程会继承(挎贝)父进程的很多东西,包括: 2:打开的文件描述符 3:堆栈 4:当前工作

5、目录 5:控制终端 6:正文代码,二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建),图示fork,二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建),图示fork:,二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建),exec( ) 用于在一个进程执行新程序 该调用不会产生新的进程,只会改变进程执行的正文。,二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建),system( ) 调用 在程序中执行一个命令字符串的更方便的方法, system 的实现是fork 与exec的组合。 例:sys

6、tem( “ ls l log” ),二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程退出),在进程所执行的程序中 调用 exit 1)关闭进程打开的所有描述符 2)如果进程有子进程,则将子进程的父进程设置为init 这是为了避免本进程的子进程成为孤儿进程 3)向父进程发送信号SIGCHLD 这是为了避免本进程成为僵尸进程,二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程退出),在进程环境中使用信号通知进程退出 Kill pid ( 发送的是 SIGTERM) Kill ( -9) pid( 发送的是SIGKILL) Killall 进程名,父进程处

7、理处理子进程中止的几种方式的比较,二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程退出),二: LINUX 与VXWORKS 的平台差异 ( LINUX下的信号 ),信号,二: LINUX 与VXWORKS 的平台差异 ( LINUX下的信号 ),不可被捕捉的信号 SIGKILL SIGSTOP 用于强制杀死失去控制的进程 案例 ping 一个IP,结果导致webs进程挂掉 原因何在?如果解决,二: LINUX 与VXWORKS 的平台差异 ( LINUX下的信号 ),常用信号相关的函数,二: LINUX 与VXWORKS 的平台差异,回顾 1: linux系统中如何创建

8、一个进程,如何终止一个进程 2:什么是孤儿进程,僵尸进程 3: linux 中常见的信号有哪些,二: LINUX 与VXWORKS 的平台差异,进程,线程与任务 1: 进程,线程是LINUX下的说法 ,任务是VXWORKS下的说法 2: LINUX中可以包含多个进程,每个可以包含1到多个线程。 不同的进程有独立的地址空间,同一进程的不同线程,共享同一地址空间 3: LINUX 的线程与VXWORKS的任务是比较相近的。 VXWORKS相当于LINUX系统下的一个单进程多线程的系统。而LINUX系统下的一个单进程多线程的程序,由于各线程运行的地址空间是一样的,所有一样可能由于一个线程的内存越界,

9、导致整个进程的崩溃。,进程,线程与任务间通信 1:消息队列,共享内存(非vxworks平台下),信号量(简称IPC) 都是用一个key 来唯一标识。 1) KEY的产生方法 2) 是创建一个新的IPC,还是引用一个已存在的IPC 通常来说,通信的两方分为服务器与客户端。作为服务器端,一般会创建一个IPC,供客户端使用,(意味着,服务器每次重启时,如果已存在一个key标识的IPC,先要删除之,并重新创建并初始化,具有该key标识的IPC。作为一个客户端,只需要绑定到此key标识的IPC,就可访问之。 小结: 服务器创建 IPC 客户端绑定 IPC,二: LINUX 与VXWORKS 的平台差异,

10、进程,线程与任务间通信 2:共享内存 对于VXWORS 和LINUX的线程来说,共享内存就是一些全局的数据结构 对于LINUX的进程来说,共享内存是IPC机制的一种, 一般来说,进程A的逻辑地址与进程B的逻辑地址对应着物理内存的不同的地方,但是两者的共享内存对应着同一段物理内存 一般来说,全局的数据结构需要得到互斥保护,二: LINUX 与VXWORKS 的平台差异,进程,线程与任务间通信 3:消息队列 提供了一种不同任务间进行异步的交互的方法, 消息通常为定长, 并存在着消息的最大字节字节数的限制,以及消息的个数的限制 VXWORKS下的消息队列与LINUX中的消息队列比较类似,二: LIN

11、UX 与VXWORKS 的平台差异,进程,线程与任务间通信 4: 管道 VXWORKS 中的管道和 消息队列的含义比较相似,但可以用标准的IO接口来操作 LINUX 中的管道, 用标准的IO接口来操作, 带有流的性质,二: LINUX 与VXWORKS 的平台差异,每个平台一个版本 不同的版本在用到平台相关的机制时,选用平台特定的API。 一个版本,在程序中用宏区分不同的平台 缺点, 与平台相关的宏的使用,使得程序逻辑将变得非常复杂,,三:支持多平台的软件开发技术,中间层设计 JAVAVM为不同的平台,提供统一的开发库 对上提供统一的JRE库,针对不同的平台,JRE库有不同的实现,如针对WIN

12、DOWS平台有一个JRE实现,针对LINUX平台有一个JRE实现,但是上层应用使用的是统一的API接口。应用不需要修改 缺点,性能将会下降 优点:优点:应用程序与平台无关,三:支持多平台的软件开发技术,三:支持多平台的软件开发技术,中间层设计案例之一:JVM,三:支持多平台的软件开发技术,中间层设计案例之二:TATA架构 TAPA架构(Trillium Advanced Portability Architecture (TAPA) 1:所有的应用基于一种可移植的软件架构上开发。 2:将所有的编程资源进行平台无关的抽象,三:支持多平台的软件开发技术,中间层设计案例之二:TATA架构,中间层设计案例之二:TATA架构 SSI系统服务接口 先抽象出与平台无关的SSI ,供应用程序使用,而针对不同的平台,进行对应的SSI实现,有了SSI后,各功能模块的开发就独立于操作系统了。 SSI有两个主要的部分: 核心系统服务 (Core System Service)和 系统依赖服务 (Dependent System Service),三:支持多平台的软件开发技术,三:支持多平台的软件开发技术,核心系统服务提供S接口 系统依赖服务提供SSD接口,提供

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论