LINUX平台软件开发及跨平台软件开发技术介绍.ppt

LINUX平台软件开发及跨平台软件开发技术介绍.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LINUX平台软件开发及跨平台软件开发技术介绍 丰晓东  2011-11-7 一:LINUX与VXWORS的平台特点 VXWORKS :微内核 1:无用户态,内核态的区别 2:所有任务运行在同一地址空间 3:用户程序通过函数调用而不是系统调用的方式请求内核服务 4:所有这些特点,使得VXWORKS的内核更具实时性,小型化,和高效率的特点 一:LINUX与VXWORS的平台特点 LINUX 宏内核 1:存在着用户态,内核态的隔离 2:用户态程序通过系统调用访问内核的功能。 3:不同的进程运行在不同的地址空间 所有这些特点,使得LINUX下的用户进程的错误不易波及到内核,以及其它的用户进程,提高了系统的安全性,可靠性,及稳定性。 一:LINUX与VXWORS的平台特点 一: LINUX与VXWORS的平台特点 案例 修改LINUX系统的消息队列的最大消息队列 数:   echo 18 /proc/sys/kernel/msgmni 问题1 Linux下用户程序与内核交互的几种方式 问题2  你认为两个操作系统的各自最大特点是什么? 二:LINUX 与VXWORKS 的平台差异 LINUX下的进程 进程的基本属性:  通过ps –ef 可以看到一个进程的  UID    所有者  PID    进程ID  PPID    父进程ID  CMD    对应程序名 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程状态) Init 进程还负责管理系统中的“孤儿”进程。如果某个进程创建子进程之后,在子进程终止之前终止,则子进程成为孤儿进程。init 进程负责“收养”该进程,即孤儿进程会立即成为 init 进程的子进程。 一个已经终止,但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源如进程表项)的进程被称为僵死进程(Zombie Process) 僵尸进程将会导致资源浪费,而孤儿则不会 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建) 1) 系统初始化阶段:在操作系统的初始化过程中,将程序名写入相应的启动脚本中。 2)用户与操作系统的交互操作过程中:在操作系统提供shell 中,输入程序名。 原理: shell 是一个进程,在shell下输入一个命令(程序名),实际上是由shell 进程创建一个子进程(fork)来执行这条命令( exec ) 。  3)编程: 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建) fork( ) 用于创建一个子进程 1:子进程会继承(挎贝)父进程的很多东西,包括: 2:打开的文件描述符 3:堆栈 4:当前工作目录 5:控制终端 6:正文代码 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建) 图示fork 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建) 图示fork: 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建) exec( ) 用于在一个进程执行新程序 该调用不会产生新的进程,只会改变进程执行的正文。 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程创建) system( ) 调用 在程序中执行一个命令字符串的更方便的方法, system 的实现是fork 与exec的组合。 例: system( “ ls –l log” ) 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程退出) 在进程所执行的程序中 调用 exit 1)关闭进程打开的所有描述符 2)如果进程有子进程,则将子进程的父进程设置为init 这是为了避免本进程的子进程成为孤儿进程 3)向父进程发送信号SIGCHLD 这是为了避免本进程成为僵尸进程 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程退出) 在进程环境中使用信号通知进程退出 Kill pid ( 发送的是 SIGTERM) Kill ( -9) pid( 发送的是SIGKILL) Killall 进程名 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的进程退出) 二: LINUX 与VXWORKS 的平台差异 ( LINUX下的信号 ) 信号 二: LINUX 与VXWORKS 的平台差异 (

文档评论(0)

bbnm58850 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档