网站大量收购闲置独家精品文档,联系QQ:2885784924

6.2linux进程和线程编程.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1 进程的概述 时间和空间是计算机的两个概念,操作系统将者两个概念实现为文件和进程。 进程是一个可以独立的可有OS调度的活动。 进程是一个抽象实体,当它执行的时候需要OS分配资源。 进程是一个正在执行的程序。 进程是一个程序的一次执行。 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元 6.1 进程的概述 进程的概念主要有两点: 第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。 第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。 进程是操作系统中最基本、重要的概念。 是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。 原因原因原因原因 操作系统引入进程的概念的原因: 从理论角度看,是对正在运行的程序过程的抽象; 从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。 6.1 .1进程的描述 进程的种类 交互进程:由一个Shell启动的进程,交互进程既可以在前台运行,也可以在后台运行。? 批处理进程:这种进程和终端没有联系,是一个进程序列。 监控进程:也称守护进程,Linux系统启动是启动的进程,并在后台运行。 进程不但包括程序指令和数据,还包括程序计数器和CPU的所有寄存器及其存储临时数据的进程堆栈。 Linux是一个多进程OS,其他进程必须等到当前正在执行的进程交出CPU的控制权后才能被内核调度执行。 当正在运行的进程等待其他系统资源时,linux内核获得CPU的控制权,并将CPU分配给其他正在等待的进程,内核中的调度算法决定将CPU分配给那个进程。 内存是计算机的敏感资源,熟练掌握对内存的操作是一个程序员的必备素质。 数据的内部存储方式:大小端法 在c中,不同的数据类型占用的空间是不同的,例如char类型占用1个字节,而int占用4个字节 时间和空间是计算机的两个基本的概念,操作系统将这两个概念实现未进程和文件,。 进程ID是一个进程的基本属性,其作用类似与人的身份证号,根据进程ID用户可以精确的定位一个进程,一个标识符对应于一个进程,,多个进程标识符可以对应于一个程序。进程标识符的类型是pit_t,他是一个无符号整数。 使用PS查看当前进程 ps -u [用户名] 第一列是进程id最后一列是对应的程序名称 Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。 交互进程——由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行(人机交互)。 批处理进程——这种进程和终端没有联系,是一个进程序列(多个进程)。 监控进程(也称守护进程)——Linux系统启动时启动的进程,并在后台运行。 运行状态:此时进程或者正在运行或者准备运行 等待状态:此时进程在等待一个事件的发生或者某种系统资源 停止状态:此时进程已经被终止 死亡状态:这是一个停止的进程,但是在进程向量数组中占有一个task_struct结构 R (TASK_RUNNING),可执行状态 S (TASK_INTERRUPTIBLE),可中断的睡眠状态。 D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态。 s进程的领导者 +前台进程 每一个进程有6个重要的ID,分别是进程ID、父进程ID、有效用户ID、有小组ID、实际用户ID和实际组ID。这六个ID保存在内核中的数据结构中,有些时候用户程序需要用到这些ID。 例如在/proc文件系统下每个进程有一个目录,里面存放进程的相关信息,当进程要读取这些文件时,应该先得到当前进程的ID才能确定进入那一个进程相关的子目录,由于这些ID存储在内核之中,因此linux提供一组专门的接口函数访问这些ID值。 Linux环境下使用getpid和getppid函数获得进程和父进程的ID,其函数原型如下: #include unistd.h Pid_t getpid(void) pid_t getppid(void) 函数成功返回进程的id ,失败返回-1, Linux环境下使用getuid和geteuid函数获得进程用户ID,其

文档评论(0)

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

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

1亿VIP精品文档

相关文档