进程,线程有关知识以及进程间的通信!

一、什么是进程

1.程序和进程间的区别

程序:程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念

进程:进程是动态的,它是程序执行的过程,正在运行的程序,进程是程序执行和资源管理的最小单位 

2.进程是程序执行和资源管理的最小单位

也就是说每个进程都有独立的虚拟资源空间,当进程被创建时,OS会给每个进程都分配4G的虚拟内存空间,1G的内核空间和3G的用户空间

1G的内核空间:即PCB相关的信息,这些资源只有通过系统调用才能使用,这一资源在当前进程退出,只能由另一进程(父进程)来回收,若无回收,会造成僵尸进程.为了更好的管理Linux所访问的资源,在系统内核文件include/linux/sched.h中定义一个结构体struct task_struct专门管理进程的资源,每个进程都有一个唯一的结构体。

3G的用户空间:进程的代码段,数据段,堆栈以及可以共享访问的库的内存空间,这些资源进程可以直接访问,该资源在进程退出时释放。

二、进程的分类

1.交互式进程:交互式进程(经常使用),可以在前台运行,也可以在后台运行比如:shell命令进程,文本编辑器,图形应用程序运行等

2.批处理进程:这类进程不必与用户进行交互,因此通常在后台运行,不会优先被调度比如:编译器的编译操作,数据库的搜索引擎等

3.守护进程:这类进程一直在后台运行,和任何终端都不关联。通常系统启动时开始执行,系统关闭时才结束比如各种服务等

三、进程的状态

1.运行态:  R  进程当前正在运行,或者正在运行队列中等待调度(就绪态)

2.等待态

           可中断的等待    S   sleep(1)

           不可中断的等待  D

3.停止态   T 进程的执行被暂停,当进程收到SIGSTOP,SIGTSTP,SIGTTIN,SIGTTOU等信号。

4.死亡态   X这是最终状态

5.僵尸态   Z 是个错误,需要我们去处理

优先级:IN 的值-20到19 ,值越大,优先级越低,普通用户设置优先级最大为0,nice  按用户指定的优先级运行进程,renice 改变正在运行进程的优先级

四、进程相关函数

如图:图片压缩严重,见谅

五、进程间的通信方式

UNIX平台进程通信方式

早期进程间通信方式

AT&T的贝尔实验室,对Unix早期的进程间通信进行了改进和扩充,形成了“system V IPC”,其通信进程主要局限在单个计算机内

BSD(加州大学伯克利分校的伯克利软件发布中心),跳过了该限制,形成了基于套接字(socket)的进程间通信机制

 六、进程间通信的相关函数

 

 一、什么是线程

1.线程是轻量级的进程。

2.什么时候用多线程,什么时候多进程?

1)创建和销毁较频繁使用线程,因为创建进程花销大。

2)需要大量数据传送使用线程,因为多线程切换速度快,不需要跨越进程边界。

3)安全稳定选进程;快速频繁选线程;

3.线程之间除了栈区的内容其他都是共享的

二、线程的相关函数

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值