进程控制

1.进程概述

操作系统的主要任务是管理计算机的软、硬件资源。现代操作系统的主要特点在于程序的并行执行。Linux操作系统亦是如此,操作系统借助于进程来管理计算机的软硬件资源,支持多任务的并行执行,操作系统最核心的概念就是进程。

2.什么是进程?

程序:
通常为二进制程序放置在储存介质中。(如硬盘,光盘,软盘,磁带等),以物理文件的形式存在。

进程:
程序被触发之后,执行者的权限与属性,程序的程序代码与所需数据等都会被加载到内存中,操作系统并给予这个内存的单元一个标识符(PID),可以说 :进程就是一个正在运行中的程序

3.进程标识

函数声明功能
pid_t getpid()获得进程ID
pid_t getppid()获得进程的父进程ID
pid_t getuid()获得进程的实际用户ID
pid_t geteuid()获得进程的有效用户ID
pid_t getgid()获得进程的实际组ID
pid_t getegid()获得进程的有效组ID

用户ID与组ID的相关概念如下所示

  • 实际用户ID(uid) :标识运行该进程的用户
  • 有效用户ID(euid):标识以什么用户身份来运行进程。
  • 实际组ID(gid):它是实际用户所属的组的组ID。
  • 有效用户组ID(egid):是有效用户所属的组的组ID。

3.进程的结构

Linux中一个进程由三部分组成:代码段 、数据段、堆栈段

代码段数据段堆栈段
可执行代码全局变量,常量静态变量动态分配内存变量

4.Linux进程状态

  • 运行状态R(unnable):
    进程正在运行或在运行队列中等待运行。
  • 可中断等待状态S(leeping):
    进程正在等待某个事件完成。等待过程中可以被信号或定时器唤醒。
  • 不可中断等待状态D(uninterruptible sleep):
    进程也正在等待某个事件完成,在等待中不可以被信号或定时器唤醒,必须等待直到等待的事件发生。
  • 僵死状态Z(ombile):
    进程已经终止,但进程描述符依然存在,直到副进程调用wait()函数后释放。
  • 停止状态T(raced or stopped):
    进程因为受到SIGSTOP、SIGSTP、SIGTIN、SIGTOU信号后停止运行或者该进程正在被跟踪(调试程序时,进程处于被跟踪状态)。

5.进程控制

在Linux系统中,对于进程进行控制的主要系统调用如下所示

系统调用功能
fork用于创建一个新进程
exit用于终止进程
exec用于执行一个应用程序
wait将副进程挂起
getpid获取当前进程的ID
nice改变进程的优先级
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值