美文网首页
关于进程

关于进程

作者: qratosone | 来源:发表于2016-02-29 23:58 被阅读0次

进程控制块用于表示进程状态——每个PCB包括进程的一系列实体:
1、 识别信息:进程自己的PID和父进程PPID
2、 运行时信息:寄存器,虚拟内存地址空间(PTE)打开文件的句柄
3、 账户信息:总CPU使用,最近CPU使用,起始时间,优先级
进程自己其实不做什么

线程:进程最重要的角色其实是作为线程的容器——每个进程开始的时候都从主线程开始执行,即程序中的main函数
线程也有控制块TCB,包括:
1、 识别信息——tid和pid
2、 运行时信息:寄存器,程序计数器和栈指针,县城状态
3、 同进程

进程,线程的五个状态模型:
NEW,READY,RUNNING,BLOCKED,FINISHED

对比:2进程1线程VS 1进程2线程
创建时间2线程更短
当一个线程意外终止时整个进程结束
进程不共享内存空间——因此信息通讯(IPC)需要克服共享内存缺乏问题,而线程要简单得多
进程之间基本什么都不共享,线程之间共享很多东西
pthread_create参数:

#include<pthread.h>
int pthread_create(pthread_t *tidp,const pthread_attr_t *attr,
(void*)(*start_rtn)(void*),void *arg);

第一个参数为指向线程标识符指针
第二个参数用来设置线程属性。
第三个参数是线程运行函数的起始地址。(需转化成void)
最后一个参数是运行函数的参数。

pthread_join()函数,以阻塞的方式等待thread指定的线程结束。当函数返回时,被等待线程的资源被收回。如果线程已经结束,那么该函数会立即返回,并且thread指定的线程必须是joinable的.
参数:
tid,被等待线程的返回值地址
void ** 返回值的地址,必须为void指针,现用现转换

要实现多线程拆分,必须将create和join的过程放在不同的循环中,不然实际上并没有实现拆分。

线程安全——一个函数是线程安全的,当且仅当该函数可以被多个线程同时访问,如果这个函数存储了某些全局变量,那么在没有调度下它就不是线程安全的。

例如strtok函数:
strtok()用来将字符串分割成一个个片段——参数s 指向欲分割的字符串,参数delim 则为分割字符串,当strtok()在参数s 的字符串中发现到参数delim 的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s 字符串,往后的调用则将参数s 设置成NULL。每次调用成功则返回下一个分割后的字符串指针。

Paste_Image.png

当系统中供多个进程所共享的资源,不足以同时满足它们的需要时,引起它们对资源的竞争而产生。实际的多线程编程中并不一定会真的遇到资源竞争,但可能会遇到未预期的结果。

多线程加速公式Sp=T1/Tp
P为处理器总数
Sp为给定CPU数的加速幅度
T1为顺序执行的执行时间
Tp为运行在P个处理器上的并行算法执行时间

相关文章

  • 关于进程

    Hello 进程 代码在没有运行的时候叫程序 ,而运行着的代码叫进程一、fork函数 (注意,fork函数只能在U...

  • 关于进程

    进程控制块用于表示进程状态——每个PCB包括进程的一系列实体:1、 识别信息:进程自己的PID和父进程PPID2、...

  • Linux 死循环脚本控制CPU使用率

    批量杀进程命令(例如杀关于nginx的进程)

  • Linux-5 进程管理

    关于进程 process ============================================...

  • 二.进程(2)进程控制

    2.2 进程控制 进程控制的基本过程: 进程的创建 进程的终止 进程的阻塞与唤醒 进程的挂起和激活 关于进程的亲属...

  • 第2章 2-2进程控制与同步

    进程控制的基本过程: 进程的创建 进程的终止 进程的阻塞与唤醒 进程的挂起和激活 关于进程的亲属关系 系统中运行的...

  • 六、进程管理、端口和作业控制

    一、关于进程 process 1.1. 什么是进程? 进程是已启动的可执行程序的运行实例 进程状态 1.2 .查...

  • 第二章 (二)进程控制与同步

    1.进程控制的基本过程: 进程的创建 进程的终止 进程的阻塞与唤醒 进程的挂起和激活 2.关于进程的亲属关系 系统...

  • python 多进程+协程 爬虫

    多进程 关于多进程爬虫和多进程方面的知识可以参考崔庆才的博客和python文档 协程 关于协程的介绍,强烈推荐大家...

  • 关于守护进程

    最近在Linux环境下交叉编译一个挺庞大的工程软件,目标机器是mips开发板。因为程序原来是在arm板上运行的,都...

网友评论

      本文标题:关于进程

      本文链接:https://www.haomeiwen.com/subject/lmigkttx.html