进程介绍

进程是操作系统中资源的容器,所有程序都必须依附于一个进程运行,进程管理程序的代码、数据、线程、信号量等资源。当一个进程销毁时,所有属于该进程的资源也会被销毁,如:文件句柄、socket套接字、线程等。

SylixOS支持进程,就如前面介绍的一样,SylixOS进程管理应用程序资源。与linux、Windows操作系统不一样的是,SylixOS是充分考虑实时系统需求设计的,我们称之为实时进程。SylixOS主要从以下两个方面改进进程实时性:

首先、SylixOS进程中的所有线程使用实时调度算法调度。

其次、SylixOS所有进程公用一个地址空间,在任务切换过程中不需要切换页表,进程的存在对任务切换实时性没有任何影响。

在SylixOS Shell中执行一个可执行文件,便会在系统中建立一个进程。使用ps命令可以查看当前运行的进程。如下:

[root@sylixos_station:/]# /apps/app/app&

[root@sylixos_station:/]# app is running

 

[root@sylixos_station:/]# ps

 

      NAME             FATHER           PID   GRP   MEMORY       UID       GID  USER

----------------- ----------------- ----- --------------- ----- ----- ------

kernel          <orphan>              0     0     0            0     0      root

app              <orphan>              2    2     65536       0     0      root

 

total vprocess : 2

       在命令后添加“&”符号表示进程后台执行。SylixOS系统中进程的用户程序部分从main函数开始执行,main函数所在线程便是进程的主线程,主线程可以通过API创建其它线程。

进程状态机

进程状态反映进程执行过程的变化,这些状态随着进程的执行和外界条件的变化而转换。SylixOS进程存在以下四种状态。

l  初始化态。进程尚在初始化过程中,正在执行程序加载、内存初始化等操作,尚不具备运行条件。

l  运行态。进程正在运行,进程中的线程参与调度。

l  退出态。进程已经结束运行,进程在进入退出态时会发送信号给其父进程,父进程受到信号后回收进程残余资源。如果是僵尸进程,则在进入退出态后立刻回收资源。

l  停止态。部分进程在运行过程中会进入停止态,在停止态下,进程所有线程停止运行,不参与调度。如:在调试进程时,调试器会经常让进程进入停止态进而观察进程数据。

图 1‑1  进程状态机

进程API

除了在SylixOS shell中执行程序创建进程外,SylixOS也提供在程序中创建进程以及设置进程参数的API。当一个进程创建另外一个进程时,本进程成为被创建进程的父进程,被创建进程则成为本进程的子进程。父子进程相互关联,可以利用API相互查找到对方,而在子进程退出时,子进程会发送信号通知父进程,此时父进程可以获取子进程退出码,回收子进程资源。如果一个进程的父进程先于子进程退出,则子进程成为孤儿进程,孤儿进程的资源回收工作在退出时由系统自动完成。

SylixOS提供一套高度POSIX兼容API,POSIX兼容系统程序员可以方便的编写SylixOS程序或移植程序到SylixOS。


SylixOS官网:www.sylixos.com

SylixOS源码下载:git.sylixos.com

SylixOS百科:wiki.sylixos.com


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐