进程基础

进程相关概念:

1. 进程的基本概念

进程是一个独立的可调度的任务。

进程是一个程序的一次执行的过程。

 

2. 进程与程序的区别

1)程序是静态的,它是保存在磁盘上的一些指令的有序集合,没有任何执行的概念;进程是动态的,它是程序执行的过程,包括创建、调度、消亡。

2)进程是一个独立的可调度的任务,是一个抽象实体,当系统在执行某个程序时,系统会分配和释放各种需要的资源。进程不仅包括程序的指令和数据,还包括程序计数器值、CPU寄存器值以及存储数据的堆栈等。

3)进程是一个程序的一次执行的过程。

4)进程是程序执行和资源管理的最小单位。

 

3. Linux下的进程结构

1)主要的进程标识

进程号(PID)

父进程号(PPID)

2) PID唯一的标识一个进程

3)Linux中的进程包含三个段

a) 数据段,存放全局变量、常数、以及动态数据分配的数据空间(如malloc函数取得空间等。

b) 正文段,存放的是程序中的代码

c)堆栈段,存放函数的返回地址、函数参数以及程序中局部变量。

 

4. Linux系统中的进程类型

1)交互式进程:这类进程用于操作系统与用户进行交互,由shell控制和运行,需要用户的输入(键盘、鼠标等操作)。

2)批处理进程:这类进程无需与用户进行交互,通常在后台运行。常见的批处理进程有编译器的编译操作、数据库搜索操作等。

3)守护进程:这类进程一直在后台运行,与任何终端无关,通常情况下在系统启动时开始执行,系统关闭时才结束。许多系统进程(服务类进程)都是以守护进程的形式存在。

 

5. 进程运行状态

       TASK_RUNNING                  进程正在运行或准备运行

       TASK_INTERRUPTIBLE         进程处在阻塞(睡眠)状态,等待某些事件发生。若被唤醒,则转变成TASK_RUNNING状态

       TAST_UNINTERRUPTIBLE     与前者类似,不过不会接收信号

       __TASK_STOPPED               进程被停止

       __TASK_TRACED                 进程被debugger等进程监视

       EXIT_ZOMBIE                      进程被终止,但是其父进程还未使用wait()函数族函数回收

       EXIT_DEAD                         进程最终退出的状态

1)运行状态(TASK_RUNNING):

       该状态下进程正在运行,或已经准备就绪等待调度

2)可中断阻塞状态(TASK_INTERRUPTIBLE):

       该状态下进程出于阻塞(睡眠)状态,正在等待某些事件发生或等待分配某些系统资源。处在该状态下可以接收信号并被信号中断。当进程被唤醒(事件发生/获得资源/接收到某些信号/被系统显示唤醒)后,进程转换为TASK_RUNNING状态

3)不可中断阻塞状态(TASK_UNINTERRUPTIBLE):

       该状态类似可中断阻塞状态(TASK_INTERRUPTIBLE),只不过该状态下进程不能接收或处理信号。在某些情况下(例如让进程必须等待直至事件发生/获得资源)这种状态是十分有用的。

4)暂停状态(TASK_STOPPED):

       进程的执行过程被暂停。当进程收到某些信号(SIGSTOP、SIGTSTP、SIGTTIN、SIGTTOU等信号)时,就会进入该状态。当进程收到SIGCONT信号后,会恢复运行,进入TASK_RUNNING状态

5)僵死状态(EXIT_ZOMBIE):

       进程的运行已经结束,但该进程的父进程尚未使用wait()函数族对其回收。处在该状态下的进程已经放弃了系统资源和内存空间,没有任何执行代码,也不能被调度,仅仅在进程队列内保留一个位置记载该进程的退出状态,等待父进程收集。

6)消亡状态(EXIT_DEAD):

       父进程对该进程调用wait()函数族,该进程彻底退出。

 

6.进程模式

进程的执行模式分为用户模式与内核模式

 

 

用户态

访问资源受限

内核态

所有资源都可以访问处理器指令集,全部内存,IO空间

 

如何进入内核态

系统调用 swi 每一个系统调用都有一个编号

中断、swiprefetchabort***** ARM

 

7.Linux下的进程管理

1)启动进程

手动启动:

       由用户输入命令直接启动进程

       前台运行和后台运行

调度启动:

       系统根据用户事先的设定自行启动进程

       at在指定时刻执行相关进程

       cron周期性执行相关进程

2)一些进程操作命令

       ps          查看系统内进程

       top         动态监测系统中进程

       nice        按用户指定优先级运行进程

       renice    改变运行中的进程优先级

       kill          杀死进程

       bg          将进程放在后台运行

       fg           将后台进程放到前台进行

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值