linux进程和线程编程

linux进程和线程编程

ID:9882548

大小:3.05 MB

页数:59页

时间:2018-05-11

linux进程和线程编程_第1页
linux进程和线程编程_第2页
linux进程和线程编程_第3页
linux进程和线程编程_第4页
linux进程和线程编程_第5页
资源描述:

《linux进程和线程编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux进程和线程编程1、Linux中的进程相关概念2、Linux中的进程的创建3、Linux中的进程的管理和守护进程6.1进程的概述时间和空间是计算机的两个概念,操作系统将者两个概念实现为文件和进程。进程是一个可以独立的可有OS调度的活动。进程是一个抽象实体,当它执行的时候需要OS分配资源。进程是一个正在执行的程序。进程是一个程序的一次执行。进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元6.1进程的概述进程的概念主要有两

2、点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(textregion)、数据区域(dataregion)和堆栈(stackregion)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的

3、活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。原因原因原因原因操作系统引入进程的概念的原因:从理论角度看,是对正在运行的程序过程的抽象;从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。6.1.1进程的描述进程的种类交互进程:由一个Shell启动的进程,交互进程既可以在前台运行,也可以在后台运行。批处理进程:这种进程和终端没有联系,是一个进程序列。监控进程:也称守护进程,Linux系统启动是启动的进程,并在后台运行。进程不但包括程序指令和数据,还

4、包括程序计数器和CPU的所有寄存器及其存储临时数据的进程堆栈。Linux是一个多进程OS,其他进程必须等到当前正在执行的进程交出CPU的控制权后才能被内核调度执行。当正在运行的进程等待其他系统资源时,linux内核获得CPU的控制权,并将CPU分配给其他正在等待的进程,内核中的调度算法决定将CPU分配给那个进程。内存是计算机的敏感资源,熟练掌握对内存的操作是一个程序员的必备素质。数据的内部存储方式:大小端法在c中,不同的数据类型占用的空间是不同的,例如char类型占用1个字节,而int占用4个字节高785634低12345612786

5、.1.1进程的描述-进程内存管理-数据内部存储时间和空间是计算机的两个基本的概念,操作系统将这两个概念实现未进程和文件,。进程ID是一个进程的基本属性,其作用类似与人的身份证号,根据进程ID用户可以精确的定位一个进程,一个标识符对应于一个进程,,多个进程标识符可以对应于一个程序。进程标识符的类型是pit_t,他是一个无符号整数。进程标识符1进程标识符2进程标识符3进程1进程2进程3程序2程序16.1.1进程的描述-进程标识符进程ID使用PS查看当前进程ps-u[用户名]第一列是进程id最后一列是对应的程序名称6.1.1进程的描述-进程

6、标识符进程IDLinux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程——由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行(人机交互)。批处理进程——这种进程和终端没有联系,是一个进程序列(多个进程)。监控进程(也称守护进程)——Linux系统启动时启动的进程,并在后台运行。6.1.1进程的描述-Linux进程分类运行状态:此时进程或者正在运行或者准备运行等待状态:此时进程在等待一个事件的发生或者某种系统资源停止状态:此时进程已经被终止死亡状态:这是一个停止的进程,但是在进程向量数组中占有

7、一个task_struct结构R(TASK_RUNNING),可执行状态S(TASK_INTERRUPTIBLE),可中断的睡眠状态。D(TASK_UNINTERRUPTIBLE),不可中断的睡眠状态。s进程的领导者+前台进程6.2.1Linux进程运行状态每一个进程有6个重要的ID,分别是进程ID、父进程ID、有效用户ID、有小组ID、实际用户ID和实际组ID。这六个ID保存在内核中的数据结构中,有些时候用户程序需要用到这些ID。例如在/proc文件系统下每个进程有一个目录,里面存放进程的相关信息,当进程要读取这些文件时,应该先得到

8、当前进程的ID才能确定进入那一个进程相关的子目录,由于这些ID存储在内核之中,因此linux提供一组专门的接口函数访问这些ID值。Linux环境下使用getpid和getppid函数获得进程和父进程的ID,其函数原型如下

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。