嵌入式linUX多进程应用程序的设计与实现

2018-04-15 11:07:28杨明东
电子测试 2018年8期
关键词:线程进程嵌入式

杨明东

(广州海格通信集团股份有限公司,广东广州,510663)

0 引言

嵌入式产品领域中,linux自身具有良好的优势,所以在嵌入式开发的操作系统中具备更好的应用。实施linux系统下的高级编程,不能忽略的一项内容就是进程。其属于一个运行的过程,即能够并发执行的以及具有良好独立功能的程序,在数据集合上面实施运行所产生的过程,作为一种基本单位,进程实施分配以及保护操作系统资源。相较于传统常规的程序而言,进程是针对系统,并非跟用户产生一定的联系。进程属于动态的实体,存在生命周期。

1 linux作为嵌入式操作系统的重要优势

嵌入式linux为遵循嵌入式操作系统要求标准的小型操作系统,其能够在很多的硬件平台实施应用。在很多年前,便已经把linux移植到多种硬件平台中,并且对于受到各种因素影响的研究以及开发项目具备更高的吸引力。原型能够于标准的平台进行开发,之后在具体的硬件设备上进行移植,也相对的推动开发软件以及硬件的过程。linux应用统一框架管理硬件,在硬件平台向着其他硬件平台实施改动时,不会关联于上层的应用情况。另外,linux能够进行随意的配置,能够免费的获得到源代码。因此,linux做操作系统不会产生版权纠纷等问题,大大的减少开发费用。嵌入式系统对于网络支持所提出的要求标准不断的提升,linux高度模块化能够让添加的部件也相对容易。

2 多进程与多线程介绍

大部分人在进行linux编程的学习时,具有认知上面的误差问题,往往具有采取多线程更具有优势的观点,认为多线程更迅速于多进程,具备较高的准确度,但是这种观念是明显不正确的。当前网络上普遍的将多进程比喻为立体交通系统,尽管具有高昂的价格,同时具有上坡下坡多耗点油的情况,但是不会出现堵车的弊端问题。多线程为一种平面交通系统,具有较低的成本支出,但是也具有红绿灯较多以及常常产生堵车的问题。根据实际的情况来看,这一比喻具有一定的恰当性。线程以及进程分别存在不同的优势、缺陷问题。

在多线程中,彼此会应用同样地址空间,对于诸多的数据信息实施共享,所以启动一个线程应用的空间,通常会比启动一个进程应用的空间要小的多。同时线程之间进行相互的切换时间,也相对更短,同进程间切换应用到的时间相比具备明显的差异性。而且线程之间通信机制良好,具备便捷、通常的通信。但是,不能忽略的问题就是,线程具有一定的限制性,即仅能在2GB地址空间内,而且线程之间具有相对繁琐的同步和加锁控制情况,一个线程一旦产生故障问题,则也许能够对于全部运行程序的平稳性构成严重的影响;在多进程中,进程间是不会进行数据信息的共享的,无锁问题,而且拥有更加简单的结构。如果一个进程出现了故障,则不会对于全部的程序运行构成影响以及威胁,所以具备良好的可靠性。另外,各进程存在2GB地址空间以及有关的资源,可以获得最佳的性能。并且经有效的将CPU增加以后,会将性能进一步的扩充以及施展。所以,通过进行严密的分析之后,显示出实施编程期间,需要严格的遵循实际情况,科学的判断各方面内容,最终评估应用哪一种方法是最佳的方案。

3 linux下的多进程程序设计方案

发出linux系统命令的基础上,依照要求输入进相关的内容,主要包括以下的几方面:#cd /home、#mkdir process、#vi process.c;将vi编辑器打开,将以下的几项程序进行输入:#include 、#include //标准库的头文件、#include 、#include //等待进 程中断或结束、int main(void)、{、intpid;、int status;int c;、pid = fork();//fork()函数经系统调用形成同原有进程基本上具有一致性的进程,pid表示fork函数返回的值。之后,输入 进 if(pid< 0)、{printf("fork error! ");、exit(1);//exit(0)表示进程正确返回值}、else if(pid == 0)、{for(;;)、{ printf("hello! ");、sleep(3);//进程等待时间函数、}、}else、{ for(;;)、{ c = getchar();、if(c =='q')、{ kill(pid, SIGKILL);//终止pid进程、break;、}、else if(c != ' ')、printf("The key %c is pressed ",c);、}、printf("wait child process ");、waitpid(pid,&status, 0);、}、return 0;、}。这种程序是采取C语言进行编写的一种基于linux形式下的多进程程序。

4 多进程实验的结果情况

将#gcc-o process process.c、#./process命令输入到linux系统的命令中,最终得到的结果为:[root @loca lhos jsj]#./process、hello!、hello!、t、the key t is a process.、hello!、hello! 、e、the key e is a process.、hello!、hello!、q、wait child process [root @loca host jsj]#。充分的确保程序./process于平稳顺利运行期间,从linux新建标签,采取ps aux 命令观察,结果显示在窗口内存在两个进程同一时间在一起运行。所以,此种程序能够做到模拟多进程程序,而且建立在 linux基础上。

5 结语

本研究提出的linux下多进程程序设计方案具有良好的实用性,得到理想的运行成效。在研究linux 系统中编程时,应用多进程具有重要的意义。在未来的研究中,会获得更多先进、科学的结论。

参考文献

[1]李长才.基于嵌入式Linux视频图像采集及其无线传输的研究[D].苏州科技大学,2017.

[2]张错玲,孙宝法.嵌入式linux多进程应用程序的设计与实现[J].电脑知识与技术,2017,13(14):81-82.

[3]桑耀辉.面向应用程序运行时行为的Android恶意应用检测系统的研究与实现[D].北京邮电大学,2017.

[4]屈鹏.基于ARM和Linux的嵌入式智能家居网络视频监控[D].天津理工大学,2017.

猜你喜欢
线程进程嵌入式
债券市场对外开放的进程与展望
中国外汇(2019年20期)2019-11-25 09:54:58
搭建基于Qt的嵌入式开发平台
浅谈linux多线程协作
环球市场(2017年36期)2017-03-09 15:48:21
嵌入式软PLC在电镀生产流程控制系统中的应用
电镀与环保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器
自动化博览(2014年4期)2014-02-28 22:31:15
社会进程中的新闻学探寻
民主与科学(2014年3期)2014-02-28 11:23:03
我国高等教育改革进程与反思
教育与职业(2014年7期)2014-01-21 02:35:04
Linux僵死进程的产生与避免
Linux线程实现技术研究